Open thread on WCF Configuration Usability

We're looking at making some improvements to our configuration system in the next release of WCF.

I'm very interested in hearing peoples impressions of today's configuration experience with WCF. What works well? What irritates you? What's easy and what's hard? If you could change one thing (or five) about WCF configuration and the SvcConfigEditor.exe, what would it be? What's really important to you that we absolutely should not change?

I'm particularly interested in real-world feedback on how you'd grade the current solution on the following:

  • Out-of-box developer experience
  • Managing change across development lifecycle (dev/test/production)
  • Separating out "stuff the IT Pro twiddles" from "stuff the service developer twiddles"

But any and all feedback you have in this area would be valuable, so don't be shy. Lots of folks from the product team will be watching the comments on this post as well as it's link cloud. If you prefer email, send me mail at smaine @ microsoft . com and I'll make sure it gets to the right people.

#1 Dan Rigsby on 8.28.2008 at 8:41 AM

Overall, i think the svcconfigeditor is very good so far. Some people dont know it is there. I wonder if there is a way to make it more apparent. Perhaps by automatically displaying it in the solution tab when a wcf template is selected, or make it part of the template wizard. If GAX ever makes it completely into VS, there may be more options here.

The common complaints I hear are that its too hard to know what to setup. I couple of nice improvements I can see are:

1. Common Scenarios: Perhaps a list of 5 or so common scenarios based on needs. These could be things such as: Web w/ no security, Web w/ Windows, Local Network, Same machine, etc.

2. Wizard: It seems we could come up with a simple wizard to help drive common configurations. Just have a few basic quetions to build out a new endpoint.

I do love being able to edit in xml and once you do it a few times, it becomes second nature. I think the real problem is that this configuration is not something that people do often. Normally, they may setup a wcf service, and forget it about. The average developer may only right a couple a year. This leads to forgetting a lot of common things.

Feel free to contact me for more information. Or if you guys have some ideas, i would love to hear what is being bounced around. I am always looking for ways to get more of the community to use WCF.

#2 Yaron on 8.30.2008 at 7:50 AM

I have the following ideas in mind:

1. The UI should show only relevant fields for current configuration. For example, if client credentials are x.509 then the field to fill this certificate should be shown, but in other cases it shouldn't be. Required fields out of the relevant ones should be highlighted. I know this might be hard due to the reusability of behaviors but currently user has no feedback on what's relevant/required and what's not until run time.

2. Selecting a certificate should be easier: A combo box should show available certificates from the windows store; There should be an option to choose certificate from file system; There should be an option to import certificate out of a java key stroe (this can be an external tool)

3. Renaming a service/behavior today is hard since you have to fix all references. This should be done automatically (like "refactor" in VS)

4. In some cases today a "dirty" configuration file is created. One example is when you set a x.509 from UI but then delete it - configuration file still reference the deleted certificate. Another example is when one updates service reference and a new binding configuration is created - the old one still exists and it is confusing.

5. Sometimes one creates a behavior and forgets to link it to an endpoint. There should be a warning on this.

Since you promised this post to be watched by members of the team I must say that the number one pain for me with Wcf is the lack of on-the-wire interoperability with other (mainly java) frameworks.

Thanks,

Yaron

#3 paul van brenk on 8.30.2008 at 12:09 PM

It should be easier to use a proxy server from code, which can be completely configured and doesn't depend on the configuration used by IE.

#4 Mp3 Film Program on 9.13.2008 at 11:02 PM

Thanks

#5 Jeff on 11.05.2008 at 5:26 PM

I'm not sure if this qualifies what you are describing as configuration but one big frustration for me has always been what seems to be a requirement to use .svc files in order to expose WCF Services through IIS. Currently I'm developing an application with 100+ services and it is just plain tedious to define a custom .svc file for each service I want to expose. To top it off we also have a Stand Alone server console app that does not use IIS and thus we are finding ourselves defining the same things in several places. What I would like to do is use reflection to find my Services - maybe by a special custom Attribute - and then expose these services in both our IIS and non-IIS cases.

social.msdn.microsoft.com/.../13c10940-e705-4