Tuesday, October 7th, 2008
Is it my imagination or is Microsoft releasing technologies faster and faster than ever before? When I was a young developer using Visual C++ it seemed that you could easily know all the technologies at any one time. All you had to learn was a language, a framework and a library (C++, MFC and STL).
Fast forward to today and there would seem to be inflation in the number of product releases from Microsoft. From the release of Vista onwards we have the following client side technologies…
WPF WCF WF LINQ
Each of these covers a large area that would require many months to really understand well. In fact WPF alone is going to take you a year of full time use before you can say you’re truly proficient in it. If you want to include the server side then add the following into the mix…
ASP.NET AJAX
ASP.NET MVC
ASP.NET Dynamic Data
ADO.NET Entity Framework
Silverlight
I think I know why this rapid increase has happened and it’s all the fault of the .NET Framework. When I switched from developing applications with MFC/ATL to WinForms I noticed my productivity increased several fold. Maybe as much as a 5 fold increase in output once I was up to speed with using all the .NET goodness. Now you apply this same productivity increase to all the cubicles at the mothership and you have the above technology tsunami.
When I started as a Windows developer the only real distinction between us was the language that you used (C++ or VB). With the rise of the Internet the community split into server side and client side specialists. It was very hard to master both areas because of the sheer amount of knowledge needed although the better programmers could probably just about manage it.
Now I see the community is splitting again into even smaller groupings. Do you use WinForms or WPF? Do you use classic ASP.NET or the MVC Framework? Over time I expect to see this kind of fracturing into smaller and smaller groups to continue. Or at least that’s what I was expecting to happen. Maybe Microsoft has seen this trend and decided to try and reverse it. Is the use of XAML with WPF and Silverlight an attempt to unify your client and web developers back into one happy community again? Time will tell.
A worrying trend for Microsoft is that your average programmer is not even bothering to try and learn all the latest goodness. How many developers in your outfit actually use generics beyond List<T>? Generics have been around forever, at least compared to the above technologies, and still most developers are hardly using it. I heard a podcast where an interviewer for a .NET position found that only around 20% of the candidates actually used generics at all. Yikes.
Actually this is not really surprising as the majority of developers spend all day working on business applications that are going to generate revenue. When do you have the time to learn WPF/WCF/LINQ/etc when learning them is almost a full time job in itself? It is all very well for Scott Guthrie or Scott Hanselman to tell the world how great the new stuff is but real developers just don’t have the schedule to stop and learn for six months.
For me this is the biggest problem that Microsoft is facing. They have some great technologies but the challenge is how to get the bulk of developers, the average developer, to move forward and learn them. I expect the upcoming PDC2008 will release even more new tech but I wonder what they are going to do that makes it easier or more compelling for businesses to move forward and actually use them.
Posted in .NET | 9 Comments »
Friday, October 3rd, 2008
Did you realise that Microsoft are releasing a new operating system in just four weeks that is currently being called Windows Cloud? No, me neither. Steve Ballmer made the announcement at a conference in London on Wednesday. Luckily ‘Cloud’ is just the project name as it gets a snazzier name at release.
It seems that if you are building on .NET then they want to make it real easy to just push a button and have that application deployed into the ‘cloud’ so that it just works. Taking away the headache of finding a hosting provider, installing and configuring software such as SQL Server would certainly appeal to many. I suspect that the operating system is really just some extensions on top of Windows Server 2008. Just like Small Business Server is not really a different operating system but just Windows with some packaging for businesses placed on top.
Amazon are also extending some love to .NET developers by adding support for Windows Server and SQL Server within their EC2 (Elastic Compute Cloud) service. Currently in private beta testing this addition will help Windows developers that need to scale their web service without needing to handle all the scaling issues themselves. You pay only for the compute time used.
If we look into the future a little way we can image what Microsoft would like to achieve. They want .NET developers working on web applications to be able to sign up for a ‘cloud’ account and then just press a button within Visual Studio to have it deployed as a live system. With Microsoft, Amazon, Network Solutions and so on being providers of the actual hardware and providing a scalable system for you. Then you pay only for the amount of CPU/Disk used and need never worry about where the server is located. Add in Hyper-V and it becomes much easy for a provider to give every account their own isolated operating system that can then be moved around to different servers as needed.
Another new technology from Microsoft called Live Mesh is going to be presented at the PDC later this month and may well integrate into this story. It seems that the mothership has well and truely embraced ‘cloud computing’. But whatever you do don’t use that term with Larry Ellison from Oracle. When someone asked Larry what ‘cloud computing’ meant he said…
“The interesting thing about cloud computing is that we’ve redefined cloud computing to include everything that we already do. I can’t think of anything that isn’t cloud computing with all of these announcements. The computer industry is the only industry that is more fashion-driven than women’s fashion. Maybe I’m an idiot, but I have no idea what anyone is talking about. What is it? It’s complete gibberish. It’s insane. When is this idiocy going to stop?
We’ll make cloud computing announcements. I’m not going to fight this thing. But I don’t understand what we would do differently in the light of cloud computing other than change the wording of some of our ads. That’s my view.”
Posted in .NET | 2 Comments »
Tuesday, September 30th, 2008
When WPF was first released I wrote a blog post stating that it would take a little time for it to take off. It has been over two years now and I’ve been proved more right than I expected. I think WPF has great potential and allows some amazing user interfaces to be created. But somehow it just hasn’t taken off.
I expected it to take time because any new platform needs a chance to mature and the associated tooling be created. Even so I expected that by now it would be getting into its stride and starting to overtake WinForms as the client technology of choice. I think there are two reasons why this has not happened.
WPF Tooling
So far this has not reached the level needed to make it easy for average developers to use. Sure, we have Expression Blend and the Visual Studio design time environment but neither is as simple to use as the WinForms design time surface. If you’re not a designer, and most coders never will be, then Blend is really not that easy to use. It’s easy to create bad designs with Blend but you’re going to need to be a skilled designer to make it really sing for you.
So unless your organization has the resources to employ a designer you’re stuck with using the standard out of the box look and feel. That standard appearance will not have your customers or boss into begging for WPF applications.
Now this would not be such as issue if there were some great component suites that you could buy and just drop into your application, along with a selection of great themes. The current component suites for WPF are getting better all the time but still at least 1 or 2 years away from providing the depth and range required.
WPF Applications
Our second roadblock to adoption is that we have no good examples of WPF applications in the wild. Yes there are plenty of cool niche apps but I mean really popular apps that are on everyone’s desktop. Something along the lines of Microsoft Word with a WPF front end. Something that gets the mass market asking for the same sophistication from all the applications they use. This would create a demand side pull on software companies.
Of course, the problem here is that you cannot take several million lines of code inside Office and just stick a WPF front end on. This reminds me of an interview I heard from a developer on the Outlook team. It took a team of three developers two years to create the Outlook 2007 navigation control that you see on the left hand side. So we cannot expect the consumer market to get anything from Microsoft in the immediate future that is going to really fire them up.
Supply Side Push
If a demand side pull is unlikely to bring WPF to the masses then the only alternative is for Microsoft to create a supply side push. I think this is the main reasoning behind the recent announcement that Visual Studio 2010 is to have a new text editor built using WPF. They also stated that Version 11 (Visual Studio 2012?) will have the entire shell rewritten in WPF.
Now you can imagine that a million Visual Studio developers will see the cool and slick WPF environment and decide they want to get in on the act. At this point WPF will be the default choice for developing rich client applications and by then the component vendors will also have some nice offerings.
So my new prediction for WPF uptake is a slow but steady increase over the next four years and a tipping point at around 2012 that sees it become the de facto standard for developing client applications. But if you think differently then let me know in the comments!
Posted in .NET | 8 Comments »
Microsoft Source Code Analysis for C#
Microsoft has just released a tool that integrates into Visual Studio and is used to look at your C# source code and report style violations. This is great for any project manager that wants to become style enforcer. The intent is to provide compile time warnings/errors about C# code that violates its rules.
For example, you might want to enforce a rule that all source files have a header at the top containing a copyright notice along with the company name. You can configure the utility so that it produces either a warning or an error whenever this rule is violated. The current list of rules that it comes with can be turned on or off depending of which are applicable to you.
Personally I like the idea and I think it would be a great tool to use on a new project. Everyone of the team can sit down at the start and agree a set of style guidelines that can then be automatically enforced. But on existing projects I think it would be almost pointless, as the number of violations is going to be huge and the time needed to prettify your code not really be justifiable.
Download Current Release
Associated Microsoft Blog
Posted in .NET | 3 Comments »
Friday, January 25th, 2008
I’ve been missing the Larkware News web feed since it stopped being produced at the end of 2007. It provided a useful round up of interesting links relating mostly to .NET developers. It was a great time saver. But there seems to be a new kid on the block producing something very similar called The Morning Brew.
I hope Chris can manage to keep up the current level of detail. Maybe he should try offering advertising spots to help cover the bandwidth and server costs.
Posted in .NET | No Comments »