Santosh Benjamin's Weblog

Adventures with AppFabric, BizTalk & Clouds

WSCF blue – The Road Ahead – What does the dev community want?

with 10 comments

WSCFblue v1 has been a really successful project and we’ve had some great discussions on the forums, feature requests (most of which we have been able to provide) and so on. For a long time the team has been thinking about the next generation of WSCF tooling, taking what we have now to the next level and we have put together a list of things for which we would love to get your feedback and ideas to help prioritise.

So here’s our laundry list. You can provide feedback here or on the CodePlex workspace where I shall put them up as work items so you can vote on them if you like.

  1. T4 templates : We’ve had numerous requests for additional settings to allow users to ‘tweak’ the generated code ‘ever so slightly!’. To an extent, this can be done quickly as we implement ‘decorators’ to allow us to change the code depending on the options, but for many folk the ‘Rolls Royce’ of customising the code generation would be to control it through T4 templates. Having said this. there are (big) issues to consider. The first thing is that the onus is on the end user to not mess with the templates because T4 (as well as other code gen tools) will provide a long rope on which we could easily hang ourselves 🙂 . The second issue is that if we upgrade the templates, then again the end user  will have to migrate any customisations. So in some ways T4 could be a double edged sword.
  2. Merge ‘Classic’ and ‘Blue’ : The ‘Classic’ / ASMX code generator is still available on a separate CodePlex project. While we havent made any formal MSI releases, there have been a number of contributions to the source especially to the command line options etc. While WCF is the preferred web services implementation framework, IMO, ASMX will be around for a long time and it would be useful to support that. It would be too much work for us to maintain two separate code-bases so perhaps it’s time to bring Classic into the Blue workspace.
  3. API : While WSCF is primarily an add-in at the moment, it would be useful to externalize the API of the engine. The framework currently covers major services such as WSDL Generation, WSDL Import/Parsing, Service side stub generation, data contract gen and client side proxy gen and configuration management. A proper API would make it usable by other tools (such as my own MockingBird – which could ‘outsource’ the metadata import of multi-part WSDLs to WSCF) as well as other tools that developers may write.
  4. Persistence + Reload of settings (all dialogs and WSDL wizard ) : For some of the code gen dialogs we allow the user to save the settings. However, this file is in the users profile temp folders. Storing these settings along with the code as well as allowing the code-gen dialogs (and the WSDL Wizard) to load a pre-existing config file would be very useful in scenarios where we only need to change one setting but dont want to go through the entire series of steps in the wizard.
  5. New command line (can use “settings” files)  : The command line interface is in need of an overhaul. We could allow the user to use the ‘settings’ files mentioned above as part of the command line. The new command line would also target both Classic and Blue if possible.
  6. Support other bindings : We only use BasicHttpBinding now. So far no one has asked for anything else. Should we consider adding an option to the dialogs that allow you to pick the binding (perhaps including custom bindings, say, via MEF?)
  7. Customized mapping of endpoints to SVC files?  (multiple svc files) : We currently support only one endpoint (SVC file which points to the generated interface) out of the box. Business services usually have different endpoints (possibly with different bindings) to support things like customer access, management/ops access and so on. Is this something you would want ? Currently you can do this by creating another WSDL (importing the same schemas if needed) and driving the code gen from there, but since the metadata/WSDL for a service is always the same no matter how many endpoints, perhaps there needs to be an option for going from one WSDL to multiple SVC files ?
  8. Incremental code-gen  (ie: what if we want to add extra operations to an SVC file or WSDL) : This is in early stages of thinking. Should the tooling allow you to add extra ops or would it be better to run the wizards again ? If we persist/re-load all wizard settings, then this wont be an arduous process anymore. I’m leaning towards the latter option because I would rather not tinker with code that could have been customized.
  9. Additional behaviors :  Christian Weyer wrote a custom “FlatWSDL” behavior that allows the service to expose a single consolidated flattened WSDL. Perhaps this can be provided as one of the options for the service. Again, (via MEF) we could pick up any number of custom behaviors and allow the user to select them.
  10. WS-Addressing support in WSDL wizard : The title says it all.
  11. More flexible naming conventions : What would you like to see here? would T4 supersede this?
  12. Contract First Workflow Services (.NET 4) : There is no support in WF4 for proper contract first development for various reasons. IMO, its more of a lack of time to provide the tooling and we may see something in service packs or upcoming versions if enough folks shout loud enough and/or if there are commercial justifications for the same. Anyway,rationale aside, is this something you would like to see in WSCF? Now do keep in mind that we havent worked through this issue in detail and it maybe that the lack of support goes beyond tooling so being able to code-gen the XAML will not provide any guaranteees it will actually work, be rendered correctly by the designer and so on.  But i think its worth considering and if you are a WF expert and have done anything in this area , we’d love to hear from you and maybe work with you on the same.
  13. Integration with Service Factory : Would it be useful / make sense to link this with the Service Factory Modeling Edition (in its VS2010 or beyond incarnation). What are the touchpoints you see?
  14. Feature Builder :  Now that Feature Builder has emerged as the primary vehicle for providing automated guidance, we’ve been thinking that WSCF should leverage Feature Builder. One of the reasons is that as we expand our functionality , wizards and single screen code gen dialogs are just too linear and do not provide enough guidance on what options or sets of options should be chosen for your scenario.
  15. WPF UI :  We’ve (at least Alex has) been playing around with MVVM a little to see if we can rewrite the WSDL Wizard which is currently tightly coupled to the code gen engine. Given that we have opted for a full on refactoring (explained below), this may not be necessary, but on the other hand if we are going to support lots more options etc then the UI’s are going to need an overhaul. Let us know what you think of this idea.

That’s our list as it stands now. We are continuing to provide point releases of V1 but for many (if not all) the features listed above,  a full on refactoring of our code base is essential, which is already underway (For example, if we merged Classic and Blue, I would expect to be able to use the same core engine of ‘Blue’ , which evolved significantly from the ASMX days, and just ‘plugin’ the ASMX generation, but with the current code structure this is not possible). So it’s quite likely that most of the features above will be v2.x.

Please do provide your comments and feedback on the roadmap and help us to prioritise. We want to continue to make WSCF blue the premier web services development toolset for the .NET community. Looking forward to your feedback.


Written by santoshbenjamin

May 3, 2010 at 1:43 PM

Posted in WCF, WSCF

Tagged with ,

10 Responses

Subscribe to comments with RSS.

  1. […] WSCF blue – The Road Ahead – What does the dev community want? – Santosh Benjamin canvases for developer opinion on the future direction of the WSCF (Web Services Contract First) Blue tool for WCF, sharing the current feature points they are interested in implementing, asking for feedback via votes on their Codeplex site. […]

  2. […] features we should be targeting for the next release. Benjy has done a great job summarising the current roadmap on his blog and is inviting feedback. You might feel that important features are missing, or […]

  3. […] had previously written about the WSCF Roadmap. These have now been entered into the IssueTracker on the workspace. WSCF vNext is underway but we […]

  4. I would like to see WSCF blue include .NET code generation where support for WS-Policy is provided. The specific example I have is where I need to change generated proxy class to decorate the MessageContractAttribute, OperationContractAttribute and ServiceContractAttribute with ProtectionLevel=ProtectionLevel.Sign
    I need to do this so the request body and headers are signed in compliance with #SignedParts ws-policy. If I refresh the service definition currently I lose the decoration and manually have to re-enter the code.

    Huw Jones

    November 8, 2010 at 4:52 PM

    • Hi Huw,
      Thanks for the feedback. I will incorporate this into the issue tracker. Currently this could be done by adding another ‘decorator’ (the existing system has decorators for changing case, setting the collection type and so on), but it does require a change in the code. I’ll have a look at potentially adding in a set of Policy Decorators.


      November 9, 2010 at 11:18 AM

  5. Thanks guys.
    I would add my vote for command line interface, since it will allow to generate code automatically during the build process.

    Alex Che

    December 3, 2010 at 11:42 AM

  6. I thinks that a command line option (to support automation of the generation process) should be at the top of the priority list.

    Brad Friedlander

    May 4, 2011 at 2:56 PM

  7. System.ServiceModel.TransactionFlow attribute would be useful


    November 8, 2011 at 8:38 AM

  8. Ur blog post, “WSCF blue – The Road Ahead – What does the dev community want?
    Santosh Benjamin’s Weblog” was well worth writing a comment on! Only desired to announce you actually did a good job. Thanks for your effort -Victorina

  9. This paragraph presents clear idea for the new viewers
    of blogging, that actually how to do blogging.

    JJ Usher

    June 14, 2013 at 8:01 PM

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: