Survey RESULTS: What .NET Framework features do you use?
Here's the results, as promised, of the .NET Survey I took last week.
Also, here's the disclaimer. I did this on a whim, it's not scientific, so the margin of error is +/-101%. That said, the results feel intuitively right to me, personally.
It was a single question with 14 checkboxes. You were asked to "check al the .NET Framework features that you use in your projects." The results are here after 4899 responses:
There were lots of good responses on Twitter and comments on the original blog post.
Folks wanted choices like "Other," "None" and "I don't use .NET." Of course, not answering the survey is a good way of reporting that. ;) In fact, 29 people looked at the survey, checked nothing and then just clicked Finish.
Here's some choice feedback:
- A raw survey like this will be biased towards "new and cool stuff".
- Sure you ain't shopping for an answer?...I use datareaders a lot. And datarepeaters. Everything else goes clunk.
- Where's Silverlight?
- No Linq-to-Objects?
I organized the survey in terms of what I called "subsystems." You could also say "product teams," I suppose. It was more trying to get a sense of the tools people reach for when they start a project.
I probably could have included IIS6, II7, etc., but I'm sure it would have gotten unruly. I could have included languages as well, but that feels like another survey. The one thing I regret not including was Silverlight. I wanted to add it, but by the time I'd realized it, I had already got 1000+ results and I decided adding it at that point would skew the results.
Of course, this could have been a multi-question, multi-page survey, but they you probably wouldn't have filled it out, right? I wanted to find a balance between getting a LARGE enough number of responses and getting data that's useful in some way to both you, Dear Reader, as well as the bosses I'll show it to.
As with all online surveys, this one is worth exact the paper its printed on. :) If you think it is useful, cool, if not, it only wasted 5 seconds of your time when you filled it out. Thanks for filling it out.
What is your analysis of the results?
About Scott
Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.
About Newsletter
Taking the survey wasn't a waste of time, been waiting for the results ever since I submitted :p
Like I mentioned on twitter, CardSpace got a very low rating.
I think this is because it's either very difficult to implement or there aren't enought real-world examples out there?
We'd love to add CardSpace support... but we always end up hitting a brick wall.
As for WPF, wel it might take quite some time before being adopted... but I do hope it will
(If Novell decided to implement WPF support for Mono that might really change things as well)
I read a statistic that said that 99.9% of the statistics are not true. :)
Just my $0.02
The bosses I've shown this to TOTALLY agree with you, though. It is skewed. Still, darned interesting.
this technology (and similarly for Entity Framework). Other than the great blogs of Stephen Naughton, Matt Berseth and Roger Jennings there seems to be a lack of materials on them. But if upcoming ASP.NET 4.0 puts more priority on Dynamic Data, then I suppose these figures will increase.
Not quite the whole world. There are some things that don't work so well in a web page. Medical imaging, for example.
I took the test but can’t really remember if I answered from the perspective of: nerd wet-dreams or business dry-fact.
Btw, I’m sad to see that CardSpace is rated so low.. The world would be a better place with more space.. Card space that is.. OpenID?
Ryan
Ryan
Example: I've used WCF and WWF.
WCF is very high on the results. If WCF dies tomorrow however, I'd convert to web service and survive. (Some people would have scenarios that cannot do that, but bear with me here).
If WWF dies tomorrow (especially since it got such a lot score here), I'm losing several HUNDREDS OF THOUSANDS of lines of code worth of work. Projects using WWF are much more likely to be large scale apps involving douzens of developers (Sharepoint!). A project using Dynamic Data is much more likely to be a prototype.
So if a manager DARES use numbers like that to allocate ressources... I'll find where they live! (just kidding just kidding!)
cheers
WLN
Interesting to see that WPF is relatively low. Would be interesting to understand why this is so, when compared to the other UI technologies.
Nice survey - not nearly as annoying as the ones on Microsoft.com
One example - I highly doubt more people are using Entity Framework or ASP.NET MVC than Workflow Foundation, especially considering how widespread SharePoint 2007 is. We're talking one of the main extensibility points for one of our most popular products, and it's been out there for a couple of years now... and more people are using bits that were just released last month or are still in beta? No chance. (But you don't really talk about WF or SharePoint on your blog, hence many of those people aren't here to take your survey.)
From what I've seen interacting with customers and the developer community, there is a BIG drop-off in usage once you get beyond .NET 2.0. Something like a 10-to-1 ratio (at least) would be my guess if I had to. I think in the past year we've finally approached the point where the majority of development is now 2.0... it's taken that long for many organizations to make the leap from 1.1.
It would be a great thing for Microsoft if technology was adopted at the rate this suggests, but it's simply unrealistic. It also paints an inaccurately negative picture about certain technologies that are being widely utilized today, which is definitely not a good thing.
Once Silverlight starts picking up speed, I assume WPF will gain momentum. Hey, why wasn't Silverlight part of the survey? MVC is beta too so don't smack me with that :) I suppose technically it's only a control..
Maybe we should have 2 questions:
1. "Please check all the .NET Framework features that you have uses in your projects"
2. "Please check all the .NET Framework features that you feel comfortable about to include in a very important project"
or something along those lines. Keep it short and leave it openened for a longer period of time.
Thanks for publishing the result. I am happy about the response for MVC. I could not agree with Jonas Stawski's comments. He indicate that the participants are speakers, MVPs, advanced .NET developers. However if it is true, nothing wrong with the survey results because advanced .NET developers and Architects are the key people of every company to take decisions for technology and they are driving junior people of their companies.
And this is great evidence to hear from community what real technology that serve well instead of prototypes.
thanks
I think myself and one other person are the only developers, out of 9, that read blogs on .NET. If I would give this poll to the 7 others, I'm almost positive the only things they would even know are WinForms, WebForms and DataSets, maybe Ajax in the sense that they have heard the term before.
For me, I've really only used Webforms, Winforms, ASMX, and DataSets; however, if we get approval, I'm going to be trying for the other stuff as well... though I'm sure I'll lose many of the others if they ever have to look at my code. I'm scared they are going to scream when they see the anonymous methods I've been using in the latest project.
Interesting results though anyway.
I hope you will use this survey as evidence that WPF is not done. I guess we'll see at PDC if Microsoft understands that. As much cooler as WPF is (in the demos at least) than WinForms, to be trailing in usage by that much should be a wake-up call. Of course, the survey doesn't differentiate between applications people are just starting to write today and applications written over the last 5 years that are being maintained. I would hope WPF would fare better if we were just talking about new apps.
Eric
Yes, the results are skewed that much from the readership. A large percentage of your twitter followers are also your blog readers. And my guess is that you and Brad Abrams have a very similar following (you are both on my blog reader). And even if there is some significant divergence, we are still talking about people who a) spend enough time in the .NET community to be following you and/or Brad AND b) care enough to actually go to the survey and answer the question. By definition that limits the responders to those on the leading edge of .NET technology. On the other hand, as Jason said, neither you nor Brad talk much about WF (or CardSpace or Dynamic Data or Entity Framework for that matter), so your readers are less likely to be using those technologies.
I also don't understand why Silverlight was not included. Surely it has as much or more right than ASP.NET MVC, given that it has two major versions in RTM?
The DataSet number is just outright depressing. Microsoft did the .NET community an enormous disservice when it pushed DataSets as THE ANSWER to data access in .NET. No single part of the framework has caused me more grief across my entire .NET career than the use of DataSets as a data access medium. I just pray that the newer technologies will gain traction and we can finally put the DataSet out of its misery.
The MVC/WPF numbers also surprise me. I simply find it impossible to believe that a beta product is being used on par with a product that has been RTM for over 2 years, even one as difficult to use as WPF. Maybe web developers also tend to spend more time on the web? Maybe people answered the question based on what they would like to be using, instead of what they are currently using like the question asked? Or maybe even after all this time Microsoft has still not made a compelling case for using WPF over WinForms? I'm not sure, but of all the numbers in that survey, that is the pair that most loudly cries out for an explanation.
Agreed on the DataSets thing. Satan.
Perhaps MVC is filling a vacuum and it really resonates with folks?
If there has been any significant misstep in .NET, it was Datasets. They're a relic of the crappy drag-and-drop "development" days of VB6.
I think the WPF thing is simply a long transition. There are a bazillion crappy line-of-business apps in WinForms out there, and they'll be slow to retire. I wouldn't read into it beyond that.
- Enterprise
- Shrink Wrapped
- Mobile
- hobby
- etc
From the enterprise space this has been my experience...
UI
Deployment is a hassle particularly with the locked down SOEs and the blanket application of group policies enterprises like to roll out - never is the phrase "It works on my PC" more frequent. So you develop Winforms apps to be deployed to Citrix like environments or you develop Webforms. When you consider how much easier web servers are to deploy to and publish from than Citrix servers - for us at least - web ends up being the first preference. So given how rich you can make a web app with Ajax, JQuery etc we almost never develop new Winforms apps and therefore WPF apps. The best shot XAML has for us (by us I mean my employer not enterprise developers generally) is via the Silverlight route. Most .Net developers I know have a very active interest in MVC because they feel the model is neater (than ASP.Net) and more consistent with the how the web works, plus they already know HTML, many of the web based protocols and the many well known patterns used to make their apps scalable etc.
Services
If you have a service requirement WCF wins hands down - particularly if you're calling services as well as hosting them. You'd be nuts to use ASMX for any new development.
Persistence
I'm sure my employer represents a fairly small minority because we currently use NHibernate. We ditched DataSets etc years ago. Linq to SQL is cool, but we don't use SQL Server - we'd like to but are mandated to use DB2. So Linq to Entities are being considered against NH 2.0.
Work flow
On a recent project we had a work flow requirement, but chose to roll our own for two main reasons. One we don't run SQL Server so we didn't fancy the prospect of implementing our own WorkflowPersistenceService. Two we felt our workflow requirements were too simple to warrant the WF stack. In retrospect I think that second conclusion could have been reconsidered ;o).
Single Sign On
We didn't even come close to considering CardSpace. Instead we went for a SAML implementation. In the end we chose to use ComponentSpace. BTW if CardSpace does do SAML, I'm all ears.
I've always wondered how the usage compared between LinqToSql and EF. I'm not a huge fan of the EF and it seems I might not be alone.
You'd be hard pressed to find new blog entries on it but it shows that older (tried) technologies don't sync up with what's popular. The last few projects I've worked on have had development cycles that far exceed the excitement of their underpinning technology. One needs to remember that excitement and hype aren't what make something useful, it's use. So the people who talk down DataSets do so in the face of what obviously works for a silent majority who are busy getting stuff done.
2. Some new stuff won't take, some new stuff takes off
The respondents using CardSpace and WorkFlow are dismal. I can match the "unscientific" survey with a lot of my own experience in the last few years and conclude it's within a broader trend. On the other hand, LINQ To SQL has very heavy use for something relatively new, almost on par with ADO DataSets which one could argue are in the same competitive space. That says to me that in some cases adoption is just slow when there's a "legacy" counterpart for a technology but in others, when the new technology is compelling, people take to it very quickly.
3. WinForms > WPF
More than twice the respondents but here's my conclusion: it's all about the toolset, not the technology. WPFs tools are not on par with their WinForms equivalents. The dual Blend + VS strategy doesn't make sense for a large majority of us who don't have full time designers we work with and the lack of built in controls (such as a DataGridView) mean as cool as rounded edges are, function trumps form when programming.
4. MVC?
Last I checked this was *just* released as a beta. More people claim to use that than WPF which seems to indicate a Hanselman type majority in respondents. Even if I wanted to jump into MVC, until it's at a "1.0" release I couldn't (and I'm wondering how others seem to be doing so) justify starting or migrating a major product to a product/framework that isn't yet complete.
Overall, cool survey, skewed or not skewed.
"So the people who talk down DataSets do so in the face of what obviously works for a silent majority who are busy getting stuff done."
The "silent majority" are busy banging their heads against a brick wall trying to accomplish their task with outdated and hard to use tools. Sure, they can get it done eventually, but that doesn't mean anything; I can scrub a swimming pool with a toothbrush if you give me enough time and feed me intravenously. Most developers simply take what they are handed and try to work with it, instead of investigating (or even asking) whether there is a better alternative. Particularly for DataSets, the amount of blogs and sample code that poured out of Microsoft in the early days of .NET touting DataSets as "the answer" for data access was enough to overwhelm anyone, and many .NET developers simply succumbed to the pressure. The fact that they haven't stopped to consider using Linq to SQL or Entity Framework or even NHibernate does not mean that DataSets are working for them, it just means that they cannot or will not lift their heads up long enough to find something better. Even worse, DataSets were not just promoted for use in the data access layer, but in all three layers, as "business objects" with validation, and as presentation models with data binding capabilities. So DataSets end up getting passed through every layer of the application, making them all but impossible to remove even if you want to.
I agree with your other points though :) Especially WPF tools versus WinForms tools; Blend is a scam, and although WPF is clearly a better technology, until it becomes as easy to use as WinForms it will lag behind in adoption.
What technologies does Microsoft promote today that will be considered a failure 3-4 years from now?
Comments are closed.