22 Mar

An Open Letter to Scott Guthrie

Category:UncategorizedTag: , :

Mr. Guthrie and Whom It May Concern,

Thank you for your team’s contributions to the software development industry. ASP.Net, the CLR, and your other significant additions to the .Net platform have genuinely advanced the state of software development. Although it may seem that you are damned if you do and damned if you don’t, most of us developers out here do appreciate your work.

Speaking and working with developers who live daily with your tools, I find confusion and concern over your relationship to the open source community that has grown up around the .Net platform. While Sun, IBM, other platform providers, and ISVs clearly see the open source community as a complimentary codebase to their products, Microsoft tends to use the best and brightest work from the community space as a feature map for .Net.

This is perfectly reasonable considering the your challenge to create the ubiquitous development platform for Windows based application development. It seems that the .Net open source community is a metering rod of what we (in the trenches developers) care about and also serves as a free R&D lab for Microsoft. This is a nice, symbiotic relationship resulting in fewer necessary acquisitions for Microsoft and more heterogeneous tools baked in to .Net.

We can all live happily with that. On one condition.

When rolling something from the community into the .Net platform or tools, please add value above that of the original community solution. It is not enough to simply bake it in and consider that the value proposition. We all know how to include assemblies in our projects, thank you very much. Merely including something in the CLR so that we don’t have to link in an outside assembly is a poor excuse for success. You owe something more to the people who built the original solution. Make it better. Make it rock.

Take, for example, MSUnit. Boo. Hiss. That was a big miss. Can’t they be easier to run in the UI? Where are all of the baked in Asserts from NUnit?

Or take MSBuild. No please, take it. No out of the box task to Zip files? C’mon.

And SandCastle? We’ll just leave that alone for now.

So you can understand our concern when we hear rumor of your new toy, a MVC model for ASP.Net that uses an HttpHandler to invoke controllers. Awesome. Perfect! Yes! About time! Bring it! AND… Please do Monorail justice and don’t kill it without doing something as good or better.

If you cant improve upon the functionality of MonoRail, just point to it as a good practice until you can. This one is far too important for anything less than a home run.

Waiting with trepidation and wide-eyed optimism,

.Net Developers of the World

68 thoughts on “An Open Letter to Scott Guthrie

  1. Pingback: Ayende @ Rahien
  2. Pingback: Jason's Blog!
  3. Pingback: Crad's .NET Blog
  4. Pingback: DotNetKicks.com
  5. [beautifully put! Don’t everyone hold their breaths waiting for the response, if any. I seriously doubt there will be any form of an acknowledgment.]

  6. Pingback: Ayende @ Rahien
  7. Nice Letter, now is time to kick it, digg it, etc =)

    Thanks for writting it, we are fighting for a lot of time against this idiot practices from M$, the last big battle was the Ribbon Licensing, the .NET 3.0 name and so other ones,

    In the .NET Open Source World, everybody say that in Java there is an ecosystem, every tool and library (commercial or not) is proud to use open source libraries or code, but M$ dont said anything about NDoc, NUnit, NAnt, only old articles of the MSDN Magazine (I remember an excellent article of Ayende about this)

    Anyway we need to keep fighting

    Open Source Developer

  8. Well, looks like it always was a “Microsoft Way”: just wait for a good idea and (re)implement it, and make it a standard. So I don’t think that a letter from an open-source community will change anything. Btw, nice try 🙂

  9. @ Kirill

    I disagree with you regarding Microsoft way of reimplementing good ideas and even if you right don’t you think that continue to succsess in harder than succsess.. so MS doing the hard part..

    making an idea continue to succssed.

  10. I agree with your high-level principal – which is if a framework or tool already exists today, you shouldn’t build something new that provides no additional value (or worse something less). I think this is true for OSS projects, commercial projects, as well as things already within the .NET Framework.

    I don’t think it is fair to say that Microsoft does not encourage OSS projects on .NET, although I agree that we need to do more from an evangelism support perspective (we have actually been working with a few .NET OSS leaders over the last few months on ways to improve this). In the web space, we do promote many OSS projects on the http://www.asp.net site today. A few examples: the main download page hosts the DotNetNuke and the Commerce Starter Kit OSS projects, the site hosts podcasts about SubSonic, hosts the forums for Rainbow, etc. As people who attend my talks know, I also frequently point people at various projects – in particular NUnit/MBUnit, DNN, SubSonic, NHibernate and MonoRail. I think these projects offer a tremendous amount of value, and are frameworks .NET developers should seriously look at when writing applications.

    Enabling developers to have options and flexibility is always goodness, and the design of .NET is focused on delivering the extensibility to enable this customization – and *not* box you into an “all or nothing” approach. I actually think we do a very good technical job with this today.

    A few examples: If you don’t like LINQ to SQL/Entities, you can build LINQ to NHibernate extensions and get all the goodness of the LINQ language/compiler/intellisense work using NHibernate (note: Ayende published an early version of this already on his blog). If you don’t like the WebForms postback model, you can write your own ASP.NET IHttpHandler and re-use all of the non-UI ASP.NET features and plug in your own controller/templating system (like what MonoRail has done). If you don’t like the default ASP.NET Membership/Role management providers in the box you can easily plug in your own; if you want to bypass the Membership/Role API you can skip them entirely, while still taking advantage of the ASP.NET FormsAuthentication and IPrincipal security context features.

    These layered extensibility points within .NET didn’t occur by accident – but were rather conscious technical decisions made by us to enable rich flexibility and customization by frameworks, products, and projects created outside of Microsoft (both OSS and Commercial ones).

    When it comes to adding new functionality into the .NET framework, we usually try to be deliberate about why we are adding it, and look at a couple of different aspects:

    1) Is it a feature that only we can enable (meaning it can’t be easily built outside of the core .NET Framework library)? Some examples: Generics, modifying HttpContext to be easily mockable, adding page compiler parser support for a specific feature (master pages, localization, etc), integrating encryption into the configuration system, etc.

    2) Is it a fundamental feature that – when implemented in an extensible way – helps integrate a wide range of scenarios, and/or enables a broad ecosystem of partner opportunities? Some common examples: Control/component frameworks that enable reusable libraries to be built; provider models for authentication/authorization/state management; LINQ query extensibility support that can be used to integrate data providers; etc.

    3) Is it a feature that a lot of .NET customers are asking for, and/or is it something that we think a broad range of developers will want to use? Is it something where we can add unique value to the scenario above and beyond what has been done before (for example: can we enable end to end framework/tools integration? Can we integrate it into the rest of the framework to make it easier and more broadly approachable, etc.)

    With regard to adding MVC support directly into the framework – that is something that we are investigating. A lot of people have asked to have a MVC model directly supported by the framework and tools, and there are some rich extensibility/ecosystem opportunities that could be enabled by having it supported directly in the framework.

    We haven’t talked publically about any plans we have for a MVC model yet because we are still investigating it, and we are still looking for feedback that: a) we are heading in the right direction with any approach we take, and that b) we would be providing unique value.

    We showed one prototype to a handful of MVPs at the MVP summit last week who all had a deep patterns and TDD background, and the feedback was very supportive of the direction we were going with it. We won’t be talking about it publically, though, until we are further along and confident that it adds a lot of additional value that people want.

    Hope this helps,


    P.S. Just to clarify the original post above – neither MSUnit nor Sandcastle are part of the .NET Framework. They are built by Microsoft, but are not part of the .NET Framework.

  11. If you said that Microsoft if glad with open source (and you must be because the port of NUnit, NAnt, NHibernate, help a lot to incentivate Java developers to give .NET a real try at first) maybe you can answer some of this questions:

    1) Why MS dont said nothing about Mono (not in the MSDN Magazine, not in news, NOTHING!! ) you were to first to talk about PORTABILITY !! ??

    2) Why you dont let Mono to be part of the Mix or some of these events 1 or 2 years ago ???

    3) I read on the Ayende blog that the MS sopport dont give answer if the client use things that dont are in the MS Stack ?? like with NHibernate ??

    4) Why the MSDN magazine and other news resources dont talk about NUnit or NDoc for 3 years now ???

    5) Why you dont give financial support to the NDoc developer knowing that that tool IS INVALUABLE for all in the .NET WORLD !! ??

    6) Why you dont give the NDoc developer a license to use Visual Studio for free and some MVP need to give it a MVP invitation ???

    y have so so many others question, let me know if you want to hear more =) I feel day by day how the community dont have new OSS projects, the grat old ones (Log4Net, NAnt, etc) are a bit dismotivated or without time, so dont tell us that M$ is taking the OSS seriusly, or is doing it bad…

    Just my 2 cents to the discussion

    I love .NET, I was a Microsoft FAN, but from 1.5 years to now, I lose a lot of my love for it =(

    Marcos Meli
    Open Source Developer

  12. Hi Marcos,

    To answer a few of your questions:

    1&2) Mono actually had a booth/precense (I think even BOF talk) at the last two TechEd’s I believe. Miguel sent me email asking for help with it, and I worked to make that happen. I haven’t heard about their plans for MIX this year (but they are ceretainly welcome).

    Note that people who want to give talks at conferences like TechEd and MIX should make sure to send us mail. Rob Conery (who runs the OSS SubSonic project) sent me mail asking to be on a panel at MIX, and we were able to help get him on it pretty easily.

    3) Microsoft product support will absolutely provide technical support for a .NET application that is built using an OSS library. What they can’t provide direct support for are questions related to how to use a particular library (for example: what is the best way to run a query xyz using NHibernate).

    This isn’t an OSS vs. Commercial point – but rather that it would be hard/impossible to train all product support engineers to understand how to use all popular projects/products.

    If a customer application has a bug within the source code of a OSS or commercial library, and the customer has the source code to that library with symbols available, the product support engineer can also help debug and find the error (specifically: they can find the error flashpoint – not necessarily the root error if it is a logic issue with code they don’t know). If an error is caused within a .NET framework library then Microsoft can and will provide patches to fix it.

    Microsoft Consulting Services (MCS) also support projects that use NHibernate, NUnit/MBUnit, and other OSS .NET projects.

    4) I don’t read the MSDN Magazine too closely, but did a quick search online and found references and samples to NUnit in the 2006 articles within MSDN Magazine – so I think they are there.

    Note that projects like the Microsoft Web Client Factory also ship unit testing samples in both NUnit and MSUnit format.

    5&6) Providing finnancial support to .NET OSS projects is something we have looked at doing. As I mentioned in my first reply above, we have been brainstorming on ways to better support OSS incubations and projects – and that is one approach we have talked about.

    The challange with direct money support is that it can open a lot of sticky questions (is the project then independent or not?, who gets to decide how much people get?, is there a review process each year for whose grants get renewed?, and how would the decision process work and who makes the call whether a project is supported?).

    We are investigating a way to help formalize a process where OSS projects can get free software and hosting services (and get a continuous integration build server). The proposal is that we’d then have an independent board of OSS project leads who would work to nominate and decide who would be eligible. Someone on my team is coordinating this proposal, and my hope is that we can role something out later this year.

    Hope this helps,


  13. These are really good news so =)

    Thanks a lot for explain me about all these topics.

    I´m from Argentina so I dont know too much and I´m glad that Mono now become part of your conferences.

    I hope that all your efforts about make the OSS comunity to be and Ecosystem go for the right path.

    We really love this kind of contact in what you can explain easily each point, some times the image is MS make a lot of people like me, to hate a lot of things, you must know that a lot of people dont like the .NET 2.0 name (and the problems are begin to arise with hard confusions with C# 3 and .NET 3.0) and a lot of others.

    So the comunity feels that MS simply dont care about us, and so we begin to feel that Microsoft win a big battle in the .NET vs Java battle and not thanks to the marketing team that propose idiot names for the framework (or the framework addons like WinFX) either thanks to all the developers that port open source libraries and tools to .NET and dont get an official recognition.

    Just me view.
    Thanks again to take time to talk with us, is relly Apreciate
    (Sorry for my bad english)


  14. I cannot thank the people on this thread enough. The passionate debate is always healthy as long as we maintain positive mutual regard. For Mr. Guthrie to respond as thoughtfully and sincerely as he has is certainly a credit to him.

    To be clear, the intent of my original post was:

    1. Promote the idea that a baked in MVC model for ASP.Net is a very important feature that will be undoubtedly have a major impact on the way most .Net web applications will be built in the future. Let’s all pay close attention and ensure that the MVC framework 90% of enterprise developers in the world will end up using will be worthy of the task.

    2. Ask that the development team working on this issue be sensitive to the passionate views held on this particular feature. Because of the wide range of competing solutions, this particular implementation will be easy to take pot shots at. Don’t just give away the ammunition.

    Mr. Guthrie,

    I appreciate your answers and would like to point out the most salient point of your reply:

    “Is it something where we can add unique value to the scenario above and beyond what has been done before (for example: can we enable end to end framework/tools integration? Can we integrate it into the rest of the framework to make it easier and more broadly approachable, etc.)”

    This is exactly what I was asking for, so… asked and answered :). I can’t wait to see the tool deliver on exactly this. One particular request: let’s have views that are TRULY workable by non-programmer User Experience type people without Visual Studio. How about view definitions that can be created in (dare I say it) Front Page or something similar?

    And by the way, the C# syntactic sugar and Extension Methods? Pure sweetness.

  15. hi,
    interesting discussion.

    Btw, what really did happen to NDoc? I read somewhere (might have been on the owners blog/site) that he (the owner) got fed up of a lack of support from the community (not MS) and that he was recieving unpleasant emails from someone and so he finally got disillusioned and gave up. If thats so, then we cant fault MS for bringing out Sandcastle can we?

    Im still largely stuck in the .net 1.1 world for various reasons, so i use NDoc all the time and i think its a pity no one participated to make it usable for .net 2.0 (wish i was a coding guru, then i could have joined the project) . I havent used Sandcastle, so im not sure why D.Starr made that particular comment here (is it a bad tool?)

    I’ve also just started playing around with MSBuild and w.r to the comment on zipping not being available out of the box, may i just ask, “so what?” . Theres a big MSBuild community (with tasks on Tigris and on GDN) and we can always get stuff from there. Just because MSBuild doesnt include it doesnt mean it aint a good tool (or does it?)


  16. I have worked both J2EE and Microsoft products for years. I feel that the original authors letter to Microsoft is a little unfair. To me, it seems that the members of the .NET development teams are focused on doing the right things for developers. I think Microsoft is giving a lot more back to the community now than they ever have. ASP.NET AJAX, Enterprise Library, and the Web Client Software Factory are all open projects by Microsoft that I have taken advantage of in the past few projects I have done.

    Does Microsoft open up all their software to open source? No. Would IBM do so if the owned Java? I doubt it. Does Microsoft take good ideas from the community and incorporate them into commercial software? Yes.

    To be fair, I think the author should recognize some of the positive contributions Microsoft has made. I don’t think there is as great of an open source community around .NET, but I am not sure that it is entirely Microsoft fault. As a developer who benefits from these contributions every day, I would think my points out a little more before writing such a critical letter. Just my two cents.


  17. As an avid user of a good number of the tools listed here (NUnit, NDoc, NHibernate, etc.) I have to say two things:

    1) I am sympathetic to the concern that MS has a history of using the OSS .NET community as a ‘free’ R+D department and then pilfering ideas from this community to ‘add value’ to the next VS or Fx release

    2) I also have to acknowledge that there are plenty of MS clients (usually the really big ones that MS likes to cater to directly) for whom OSS is just simply not an option. Its sad that these people have policies that prevent them from leveraging quite good work by the OSS community, but corporate policies dictate no OSS in the solution stack. For MS to meet the needs of these significant paying customers that have committed to MS-technology at every level of the application development stack, MS has no choice but to add these kinds of things into their commercial offerings.

    I’m every bit as afraid as others that LINQ to SQL will start to suck the lifeblood out of NHibernate, that SandCastle helped kill NDoc (tho as the earlier poster points out, that was kind of killed by unprofessional harrassment of the primary developer by unkind comments from the the community itself unsatisifed with the pace of the releases), and that TeamFoundationServer will eventually stagnate NUnit developement.

    These are all tools that I use regularly and will miss them if they go to be replaced by MS-integrated technologies that are (typically) pale imitators of the already-well-established and robust-featured OSS equivalents. But let’s not forget that MS needs to have an MS-based answer to those customers who have committed to everything-Microsoft-only style applications and I really start to think that this is what is driving a lot of what we are seeing in re: MS relation to the .NET OSS community’s efforts.

    Just my $0.02

    -Steve B.

  18. Pingback: James Geurts' Blog
  19. It’s a fair try, but I feel you (means we) are getting burn playing with matches. Net is a wonderful platform, but it lacks a trustworthy sponsor.

    Could we obtain reliable alternatives to this “single source” problem ?. I hope so …

  20. I totally support Daddy Starr. Also I see this is a sign that we ms developers need to speak up more to tell ms what we cared for the .net/c# world, rather than tired keep up with what ms feeding to us.

  21. MS sucks. It forces you to use bad products, disregards developers http://developers.slashdot.org/article.pl?sid=07/01/09/0216251), fails to give proper credit to anyone, pissess off its partners (consider recent symantec), rarely comes with new concepts (basically it is a leech that feeds on others ideas – very very bad – and in fact it spins rivalry [http://www.gnu.org/press/2002-04-11-ms-patent.html] with those who brought the idea in the first place)

    THere are some good things to tell, but the bad things outweigh them all (by huge numbers)

  22. First I think I should give some +ve credit to Scott’s reply.
    But, I have to say, as an independent developer, I have seen too often MS crushed OSS stuff by their hands. And MS is not unified on the direction on this one, I am dare enough to say there are people in MS who always wants to go back to the time where MS is the sole solution provider (and thus, crush every OSS). And I would not agree anyone saying its independent incident. Perhaps Scott should talk a lot more with legal, business development and marketing to get what those non-tech people thinking in MS, its afterall not a developer-only business.

    Talk about support model- if, say, MonoRail is in ASL, why not get stuff from MonoRail, enhance and incorporate it into Visual Studio, provide the fancy support which MS does very well, and give commercial support for them? I am sure even if you picked MbUnit for such purpose NUnit people would not be too upset about it- so as a lot of developers. Of coz if by evaluation it is meaningful to support both, maybe it make sense. The TeamFoundationServer moves are just not deniable an infringement to NUnit’s wisdom- the move is too obvious and I don’t see valid excuse on creating something directly from NUnit (the API is at least 90% same except the namespace) and mark it as a product. How can you persuade us you are embracing such development when you actually DID that business move? Talk about it in MSDN or not is not a point at all comparing to this important business decision. If MS could spend their effort on incorporating a smooth integration of OSS product to Visual Studio, I think thats when we will feel the warmth in MS for OSS.
    And there is no point to develop an MS-only solution too- coz if MS say: From now on I will distribute MonoRail with Visual Studio with all IDE support- that already makes MonoRail = an MS way, no more argue from your customers. Thats called support. Not to give a booth for Mono or to write a short article on port25, it justs sound too meaningless when we continue to see the elephant steps on other small creatures in the forest.

  23. This is quite possibly one of most interesting conversations I’ve seen regarding .net and oss – and the fact that Scott has posted a reasonable reply makes it outstanding.

    As a developer who has worked both the complete ‘Microsoft’ way and also has done work with OSS: The most difficult part is explaining to a customer or a boss the rationale of not using a ‘Microsoft’ approach.

    ie. I’ve decided to use NHibernate with NUnit tests. I would want to show a concerned customer that ‘this is good technology’., etc…

    I do think that NHibernate, NUnit etc… are fantastic tools that if Microsoft would support rather and attempt to ‘outdo’ – ie. if we can have NHibernate with LINQ as Ayende has showed, why the effort of the LINQ over SQL? Is Microsoft not allowed to create a GUI generator that uses NHibernate? And if they do, where does put other ORM projects? ie. NPersist, Codus, WilsonOR, etc…ances is great, but I don’t understand the MSUnit or the LINQ over SQL ‘ORM’ that is being created. Why go into that space?

    so, when this is said:

    “These layered extensibility points within .NET didn’t occur by accident – but were rather conscious technical decisions made by us to enable rich flexibility and customization by frameworks, products, and projects created outside of Microsoft ”

    I say, sure – for LINQ, WCF, WWF – ok, that is good, agreed. But MSUnit and Linq over SQL don’t seem to fit that same mold. There are created that match almost exactly what NUnit has, sold in a new package, etc… The entire Team System setup seems filled with these products. ie. why not subversion? CruiseControl.NET ?

    So, if extending .NET for better ability to test it is a goal, that is good goal. To come out with a product that directly competes with OSS is an entirely different issue.

    I’ve seen MS do some good things like making Atlas open, etc… and I’ve seen some negative things – like MSUnit. I’m concerned as well about EDM and the Linq over SQL. Making language enhances such as LINQ is good stuff, extending it over into their own ORM seems off.

    Goodwill, I’m not sure I agree with your idea though, if I understand it right. Is the goal of Monorail to be ‘incorporated’ into VS. And if so, what is saying to other open source MVP projects? Is that excluding them? If it’s open source, isn’t that saying it doesn’t want to be ‘sold’ into VS? It’s no longer OSS right?

    I’m opposite: I don’t want MS to incorporate OSS into their products!!!! I just think they should be mindful of what areas they start moving their commercial products into. ie. if they release EDM – are they competing with all the commercial .NET ORM tools? Additionally, as long as they make their changes like LINQ where it can be extended, then to me, that is being mindful.

    “The TeamFoundationServer moves are just not deniable an infringement to NUnit’s wisdom- the move is too obvious and I don’t see valid excuse on creating something directly from NUnit (the API is at least 90% same except the namespace) ”

    This is where I do totally agree upon.

    “From now on I will distribute MonoRail with Visual Studio with all IDE support- that already makes MonoRail = an MS way, no more argue from your customers. ”

    Again, not sure if I like that approach. Now, if the developers of Monorail say ‘hey Microsoft, we’d like to build a business relationship and no longer make Monorail OSS because we want to integrate with your product line”, then sure, that ‘s up to them.

    Sorry for the long reply – there is so much that can be said on this

  24. Steve,
    I think I understand your concerns. What I am saying is that is one of the possibility. Another possibility is to make VS more like Eclipse- to make a free version of product allow extensibility from 3rd party, while MS keep their customized version. Currently Express line of product are close to non-expendable- that makes Eclipse a much better IDE for OSS comparing to VS.

    However, I think we still could discuss the feasibility to have MS gives out of box support to a few defacto OSS stuff. Think of MS as an ISV now, if I am selling an IDE, then maybe today one of the most important feature is TDD. MS decided to develop TFS (and infringe what others did), but we can’t disallow MS to provide a better solution as a commercial product. So, maybe the better approach for MS is to incorporate the APIs into their product instead of stealing them. I wonder if in Java have more than one testing framework (like .net have NUnit and MbUnit), but still you have to make a choice in some case when you are releasing a product. And picking ANY OSS product is way much better than stealing them.

    Or, maybe MS should offers more open documentations and make VS more customizable for various framework incorporation. Thats what I would think.

  25. Interesting that you mention Sandcastle and then not go into it. It’s OOS counterpart NDoc is the reason why the org I work for is now nervous about using open source software. We started using NDoc and now it’s effectively dead. Frankly I prefer “supported” solutions from Microsoft over the risky business of depending on open source software for critical functionality.

  26. Keith

    I understad you in some aspect but, talking seriously, do you think that in a parallel world :

    M$ had realease sandcastle for free if NDoc dont exist !!

    I think that not, in fact I think that M$ must provide a assembly documentor from the .NET 1.0 version, if them use a tool to generate Docs while they dont share it with us ???? money problems ?? I dont think so 😛

    The answer for me is a bit simple:

    A framework solution get better when big companies enter the game, if you provide solutions to all problems or WinForms controls that do all, all the Enterprises that are now big and win a lot money with .NET
    had never been born

    My frankly thinking is that M$ dont want that you employe use NDoc, is better that you use SandCastle, so M$ has the ball now, and one year from now, they dont release more versions of SandCastle

    can you explain me what you can do ????

    With NDoc the communtity has the code and is an option to someone (I dont think that will be the case) to extend it


    So your employee must but some other documenting solutions and M$ win the game again, I think that we (the developers) overlook a lot of these marketing things.

    Is better for the corportaions that the money spended in SW be BIGGER and the OSS is the conterpair

    Just my point of view, a very bad one that I never want to feel again =(
    Sorry for my English
    Best Regards


  27. Pingback: LA.NET [EN]
  28. Pingback: Just For Fun
  29. Pingback: J.D. Meridth
  30. Pingback: Rob Conery
  31. Pingback: Jon Galloway
  32. Excellent letter! Having used monorail I must say it is a great clean elegant design. If microsoft does it right it would truly rock.

  33. The current situation is really depressing. Webforms, whilst not as evil as some suggest, make my job as a web developer more difficult. Don’t get me wrong, i’m not a bad developer, I understand viewstate and the page lifecycle etc but anything beyond a simple CRUD page is more difficult than it should be. Throw in standards compliance / accessibility / dynamic control generation into the mix and you have all the ingrediants for a slow / miserable afternoon. The current WebControls approach (which is the mother of all leaky abstractions) isn’t working but rather than accept this, the Asp.Net team continues to provide fixes that just confuse the matter further i.e Themes. Microsoft should be focusing on sorting this mess out and giving us back simple access to the technologies we’ve spent years learning (css, javscript etc) but instead they allocate developer to projects like IronPython, IronRuby etc which do little to alleviate the current situation.

    But what I find really annoying – in fact I’m quite angry about it – is the way when Scott Guthrie comes along and says, “by the way, we will be introducing this new technology in the future (but we won’t say when), it will work differently (but we won’t say how) and it will address the short comings of asp.net development (but we won’t say which ones”. And the reason it makes me angry, is because you suddenly worry that project your relying on (In this case monorail) which you started to use because MS has done such a depressingly bad job, will become abandoned.

    So here is my Open Letter to Scott Guthrie.

    “Please accept that web-standards exist. That we like them, and like using them. And fit Asp.Net around the way we work and not the way you want us to. Web controls are great but I’m not willing to sacrifice or compromise my html / javascript / css in order to have them. Adobe have just released Coldfusion 8 and its good. Really good. You have been warned”.


  34. I think microsoft has its own way to go about things that help them grow, they will always take good things from other OSS software., but then thats life…….

    everybody trie to learn good things and make them their own…

  35. The only way to ensure MSFT won’t steal your baby is to make sure you’re going down a path they cannot possible follow you. Like for instance have 100% Mono support, branches to make it run through GrassHopper or create some piece of SW library that if successful would kill large parts of their revenue…
    (Like we’ve done 😉
    Let’s take an example:
    I know Charlie Poole and I have encouraged him to get nUnit ported 100% to Mono simply because MSFT would never be able to “outperform” that feature. Another great feature for nUnit would be to integrate even better than what it does today with other tools like for instance Boo, nAnt etc…
    A tool is never better than the sum of tools it is compatible with…
    If for instance Cruise Control, nAnt, nUnit and nCover would be 100% compatible with Mono with a common IDE which could be installed from the same exe file on both Linux (through Mono) and Windows MSFT would never be preferred and they would not be able to follow…
    Another point to outperform MSFT so that they’ll never follow you is to focus on standards. An example would be if all the ORM library vendors for .Net would agree on a common standard for marking classes as serializable so that users could easily change between one ORM library vendor to another which effectively would foster competition and make MSFT stand alone in their proprietary version of serializable support etc. Imagine a common standardized version of HQL or .hbm format files, THAT would be awesome 😉
    Look at their Ajax library for instance, MSFT have never been able to compete in an open and standardized world. Even Michael Schwarz and Jason Diamond being *ALONE* outperformed those guys by a gazillion. Why; because MSFT don’t know how to compete when something is open and standardized. Not to mention if Ajax prevails they loose about 66% of their revenue. If MonoRails would standardize and maybe collaborate with other SW library vendors to create something 100% compatible with Mono and with a common interoperability way to describe stuff they would prevail. Period. Imagine how super cool it would be to have MonoRail run on J2EE through GrassHopper! Or maybe their Java counterpart having the exact same class hierarchy and API! Or simply creating an MVC implementation that would be compatible with *WebControls*…?
    (And thereby having a “gazillion” WebControl vendors building value on top of their own product)
    Until they *do* they don’t really stand a chance of becoming something better then MSFT’s “research department”…
    (And I am not really sure if they deserve it either)
    Now returning to implement my GrassHopper and IKVN port of Gaia 😉
    (We’ve got Mono already 😀

  36. Oh yeah, I almost forgot…
    “And our HTML5 video tag wrapper Ajax Widget and our HTML5 canvas tag wrapper Ajax Widget”…
    Good luck MSFT, you’ll need it! 😀

  37. Pingback: Ritalin shipping.
  38. I am impressed that Scott Guthrie posted a comment on this post.

    Now my opinion:

    I think lately Microsoft has been sending some very mixed signals about the direction of their efforts. For example consider LINQ To SQL and Entity Framework. Obviously one is better than the other and both are part of the framework. So why have something which is inferior? I can understand if it was done to maintain backward compatibility but with LINQ To SQL, what backward compatibility? No one has produced anything other than tutorials on how to use it.

  39. David,

    You may want to moderate comments on your blog. Comments from Paris Hilton about her attributes isn’t very impressive 🙂

  40. Pingback: Prozac.
  41. Pingback: Soma.
  42. Excellent letter! Having used monorail I must say it is a great clean elegant design. If microsoft does it right it would truly rock…. thank’s…

Comments are closed.