November 2006 - Posts
I've seen a lot of projects over the years throw asmx Web Services at a problem simply because that was the person's hammer, and every problem became a nail. I'm sure there are a number of reasons for this - most courses and articles around communication in .net focussed on this technology, and combined with deadlines, fear of the unknown, or just lack of awareness of other (and, for some problems, better...) options. One of the other issues with this, though, is the perception it brought with it that services and service approaches basically meant asmx Web Services.
In my mind, this highlights one of the less tangible benefits of WCF. It codifies and encourages through its design better service implementations, but at the same time it makes it clear that a variety of physical implementation options (A & B of the ABCs of WCF - Address, Binding and Contract) are targeted. You can design one 'service' that can be implemented using TCP/Binary, HTTP/XML, or both. It will be interesting to see how much this helps WCF make inroads into, and perhaps facilitate some of the warm fuzzy promises of SOA...
I was thinking about the concept of Microsoft's Community Technology Previews (CTPs)recently, and I wonder if anyone shares my views. By and large everyone seems much more satisfied with them, and I have yet to hear any downside, but there is something that strikes me about the recent product releases.
Before discussing it further, I think Microsoft's words on CTPs touch on much of what I want to mention:
"[CTP] builds do not go through the same rigorous testing that beta builds undergo. While betas receive a much higher level of testing and feature work, CTPs are intended to expose developers to the latest working build"
So far I've noticed both positives and negatives from the multiple CTPs vs. minimul beta drops:
Positives:
1) More frequent releases, so we're able to understand and thus plan better for the final release
2) A far more feedback-intensive process, where the community is able to get in touch with the product team much earlier in the cycle, and thus influence the feature set and functionality to better-suit our needs
Negatives:
1) Far less consistency between releases, so if you are producing anything dependent on the releases you are more affected more regularly. For example, my WCF tutorials have had to change with every single CTP. Companies planning products around the technology would be even worsely affected.
2) This is a contentious one - but, it seems to me, that the fact that we do influence the product team means the functions and features of the product are more in line with our requirements, but it seems to me that the some of the final products are a little less stable than we are used to. For example, Visual Studio 2005 seems to have more quirks than 2003 did. SQL Server Management Studio also exhibits a number of gremlins - more so than I would expect from a product of this type. I know VS2005 is a tremendous IDE, and it has taken a lot of work, but it's still just the .net 2.0 IDE; the VB6 to VB.Net IDE changes were considerably more intense, surely? Is this part of the nature of converting CTPs to RTMs?
In short, I definitely prefer the CTP approach, but I think we need to be aware it's not all strawberries-and-cream and there are some potential downsides we need to deal with.
Ernst posted recently about Ms. Dewey and, I must admit, it's the first time I've really considered switching search engines! When you find yourself actually _watching_ your search engine, you know there's trouble..
Still, I guess it's just a wrapper around the services, so Google won't be long to compete. Also, I don't like how the results are returned - they're less accessible. Very cute idea though.
Well, I guess I can scratch my previous post about WCF being in "GoLive" - it has indeed GoneLive. I suppose it all makes sense considering Vista is due so very, very soon, but for those who're not aware, the .net framework 3.0 went
live to RTM yesterday.
I was thinking a little earlier about some of the recent changes in the latest WCF drop, and two things struck me. The first was the sudden serious performance hit, which I mentioned a few days ago, and the second is the fact that the ability to easily view the wsdl has now been disabled. If you go through my WCF tutorials, you'll see that one of the earlier steps is actually having a look at this wsdl, and I made a point of examining it with the audience during DevDays. This behaviour is very similar to the current .net 1.x and 2.0 asmx behaviour, where you just browse to http://[myserver]/myservice.asmx?wsdl. However, in the most recent WCF build, you need to implement a decent couple to steps to re-enable this behaviour, and it is on a service-by-service (even within the same web etc. application) basis.
I suspect this change relates to some security goal, like not providing too much detail initially, but it still seems like a lot of work to get back a feature we had in the first place. Perhaps something like simple would have sufficed, like:
<... address="..." binding="..." contract="..." enableWsdl="true" ...>
What's also strange is that the technology has been in GoLive status for a couple of months already. I can imagine that this could be a pretty major change for some people who might be relying on this behaviour in a GoneLive deployment.
If ever I saw a topic that finally SHOULD be in a chain mail, it's a link to http://www.getsafeonline.org/, a Microsoft-co-sponsored site for "your mom and dad" on how to protect themselves online.
"Pass this on to 10 people and USE THE INFO yourself or (pc-)evil might befall you"?
I mentioned during my sessions that I had updated the slides a bit from what was originally submitted. You can find the updated slides at:
1) WPF Data Binding - CLI311
2) Offline Data Caching & Synchronisation with SQL Server Everywhere Edition
2.2) An 'Alternate Ending' to the above session with a demo from Steve Lasker on SyncAdapters - the new synch technology coming in a few months.
(Can't read the new PowerPoint 2007 pptx file format? Then download the Microsoft Office Compatibility Pack)
The slides from my DevDays sessions are now available for those who want them. The full list is here and you can also directly download the A Lap around Windows Communications Foundation slides as well as the Moving from username and password to Infocard.
Incidentally, someone acutally commented recently on one of my WCF tutorials about this, but I was working with WCF again last night to test the service proxy array handling, and I noticed that a basic WCF service is considerably slower in this build. Very interesting. I wonder what's changed?
aka Test Post ... Please Ignore ;-). I'm testing posting using the new Windows Live Writer beta to post directly to my blog.
[Update - now testing from my new Vista RTM installation]