Koen about .Net

August 19, 2010

If I ran DevDiv

Filed under: General — Tags: — koenwillemse @ 00:16

I read this post by Ayende today and started thinking about this myself. So, what is it all about: “What would you do if you were running the developer division of Microsoft (or… what would you do if you were the Gu ;-))?”.

If I would run DevDiv I would:

  1. embrace successful open source project instead of trying to build our own.
    I was very pleased to see that Microsoft stops working on a specific ASP.NET Ajax library but instead is helping to make jQuery better. jQuery has proved to be a very good JavaScript library which makes the life of a web developer so much easier.
    On the other side however, you’ve got Entity Framework opposed to NHibernate. NHibernate has proved to be a very good open source ORM with a very active community. Several very good and influential developers are contributing to it and make it a great framework. In my opinion, it would have been great if Microsoft had made the same decision here as they did with ASP.NET AJAX and would have assigned a few dedicated developers to help improve and extend NHibernate to be an even better Open Source project with dedicated support. Now they are working very hard on Entity Framework to try to compete with NHibernate. Why?
  2. encourage my developers to write blog posts with more ‘real life’ code examples.
    A lot of times, when a new technology or framework is announced by Microsoft, a lot of Microsoft people start blogging about it with examples etc. That’s great and helpful. However, a lot of times, the examples that are written in the blog posts are written as ‘throw away code’. For example, for ASP.NET MVC you would see examples of actions that execute SQL queries directly etc. Code that you would be ashamed of when it was in your enterprise applications. And that’s my frustration sometimes. In my opinion, Microsoft (and it’s employees) should advocate better structured code, which follow good practices like SOLID, TDD, etc.
  3. make sure that when new products are announced (lately you’ve got LightSwitch, WebMatrix, etc…) the marketing about the audience is done right.
    A lot of blog posts are written lately about LightSwitch, WebMatrix, etc. The problem I have with this is that the target audience is not made clear in most blog posts. I read those blog posts when they pass by in my RSS reader, but they absolutely not suitable for me. Those new products are suitable for entry-level developers that want to start playing with MS technology or that want to create some temporary application, not for the experienced developers that are writing enterprise applications. When you are working with stuff like Dependency Injection, Task based user interfaces, CQRS, etc, then these new applications are absolutely useless.
  4. give every Microsoft developer 1 day a week to contribute to open source project(s)
    A lot of great open source projects are out there on codeplex, github or sourcefourge, but a lot of them would really benefit if there had more involved developers. A lot of developers would be willing to spend (some of) their time on it, when they have it, but a lot of us also have more to do then just work (at least I have ;-)). I try to contribute to projects, like Fluent Assertions, but it’s very difficult to find the time for it. When (big) companies give their developers time to contribute to open source projects (and not only their personal time) we can make those projects a lot better, which eventually lead to better applications which we create by using those projects again.
  5. try to get influential developers from the community to talk to the product teams to improve the quality of Microsoft products
    There are some very influential developers in the community. Some of them are MVP’s and involved in decisions made in the product teams at Microsoft. But there are also a lot of other people who are pretty judicial (and a lot of times they have some very interesting points) when it comes to the Microsoft frameworks. Just to name two: Ayende and Jeremy D. Miller. I would try to get those people (and more that have proved to know what they are talking about and have some good ideas) to Redmond and talk to the product teams and try to share ideas to eventually improve the frameworks we are all building. There are some very smart people out there that can really help stuff for everyone.
  6. try to get Silverlight working on as many of the mobile platforms as possible
    A point of frustration I’ve got is that when you want to develop an application for mobile clients, there are two options. Create a great mobile web application, or create native applications. Some recent studies show that most users prefer the native applications. I was pleased to see that Windows Phone 7 will support Silverlight to build applications for it. This makes it possible to keep the advantages of simple deployment and all the good stuff that it offers, like the known .NET Framework and all the other already known advantages, but give the users the look and feel of a native application. The problem however is that when you want to create an application for the masses, you also have to consider the iPhone, Android and Blackberry phones. If you want to do this, you have to build the same application in several different programming languages for the different platform. This is very inefficient, time consuming and error prone. When we could use Silverlight for the other platforms also it would help for the adaption of Silverlight and it would make the life of us developer a lot easier.
  7. make sure that the WIF team would do a lot of work to improve the usability of the framework
    This last one comes from a bit of frustration of our current project. WIF makes developing claims enabled application easier, because you don’t have to worry about all the WS-Trust and SAML related stuff that are required. However, the quality of the framework is not what we’re used to. There is almost no decent documentation available. There are some tricks you have to know, and the API is not always as easy. Since claims based security is a very promising way of arranging the security of your application, it is essential to have a good, easy to use framework to help you with this.

So, what would YOU do when you ran the DevDiv?

3 Comments »

  1. […] This post was mentioned on Twitter by Dennis Doomen, Koen Willemse. Koen Willemse said: Just published a new blog post: "If I ran DevDiv" http://wp.me/plwkW-3f […]

    Pingback by Tweets that mention If I ran DevDiv « Koen about .Net -- Topsy.com — August 19, 2010 @ 11:31

  2. […] to VoteIf I ran DevDiv (8/18/2010)Wednesday, August 18, 2010 from koenwillemseI read this post by Ayende today and started thinking […]

    Pingback by ASP.NET MVC Archived Blog Posts, Page 1 — December 13, 2010 @ 23:28

  3. I disagree with your comment about nHibernate. While indeed, nHibernate is a mature, solid project, it doesn’t really address the concerns that Microsoft wants to address with EF. nHibernate is, at it’s core, XML based. You could say that EF is as well, but EF was designed with XML that easily maps to a designer. nHibernate has been difficult to do that. Certainly, there are fluent mappings, and linq to nHibernate, but these projects are sort of like bastard step-children and not well supported, or at least not as well supported as the main project.

    Finally, nHibernate is more of a loosely federated group of projects. Unlike jQuery that has a pretty controlled infrastructure. It might also be unwelcome to have Microsoft participate in the nHibernate development. Some people might not like the direction Microsoft wants to take it. jQuery is a great project for Microsoft to contribute to, because by and large, it’s compatible with MS’s ideas. nHibernate is a much more “complex” situation and would likely not mesh well.

    Comment by nobody — December 8, 2011 @ 21:30


RSS feed for comments on this post. TrackBack URI

Leave a comment

Create a free website or blog at WordPress.com.