Scott Hanselman

ASP.NET MVC 4, ASP.NET Web API and ASP.NET Web Pages v2 (Razor) now all open source with contributions

March 28, 2012 Comment on this post [75] Posted in ASP.NET | ASP.NET MVC | Open Source
Sponsored By

Happy Tuesday! It's indeed a happy day as I am (literally this moment) at a conference in Las Vegas and have just pressed Publish on this blog post to announce that we are open sourcing ASP.NET MVC 4, ASP.NET Web API, ASP.NET Web Pages v2 (Razor) all with contributions under the Apache 2.0 license. You can find the source on CodePlex . Be sure to read all the details on ScottGu's blog.

Ya, I bolded, underlined and italicized that last part and yes, it was gratuitous. Fight me. ;)

This is the culmination of a lot of hard work by a lot of folks in our organization. It's the very reason that I came to work at Microsoft. So, what’s happening here?

While the source for ASP.NET MVC has had source available since its inception, and converted to the MS-PL license in April of 2009, the developers didn't take contributions from the community. While we were open source we were not “open source with takebacks.”

Today we continue to push forward and now ASP.NET MVC, Web API, Web Pages will take contributions from the community. NuGet from OuterCurve also is open source, and now huge parts of ASP.NET are as well. We shipped community code in NuGet with Visual Studio 2010 and NuGet has taken community contributions. Now we will ship community code inside ASP.NET in this upcoming version of Visual Studio.

We are opening sourcing these ASP.NET components on CodePlex using Git as our repository. CodePlex now supports TFS, Subversion (via a bridge), Mercurial and now Git.

Why Open Source?

If you’ve been following our exploits, we’ve actually been shipping open source with ASP.NET and Visual Studio for quite a few years. We started shipping the jQuery open source JavaScript library back in 2008. Since then we’ve added Modernizr, Knockout, jQuery Mobile, JSON.NET, and jQuery UI. These are all shipping and available today. Betcha didn't know that.

Microsoft started using an open development style with the Windows Azure SDK last year. It’s worked and worked well, so now they’re expanding the style to include some of the popular frameworks like ASP.NET. This will let us get feedback and respond to it faster than ever.

Over the last four years at Microsoft I’ve worked closely with the community to get feedback and voices heard by the developers. However today, as we introduce more open source projects that take contributions, you can get more directly involved.

  • Find a bug? Send a unit test or fix.
  • Think our coverage isn’t sufficient? Submit a unit test.
  • Got a feature idea? Get involved more deeply with the developers and help write it.

Like every large open source project, every check-in (open source or otherwise) will be evaluated against the existing standards used by the developers. Even better, you’ll get to see our developers' checkins to the product out in the open.

It’s really important to remember that ASP.NET MVC, Razor, and Web API are fully supported Microsoft products and will still be staffed by the same developers that are building them today. The products will be backed by the same Microsoft support policy and will continue to ship with Visual Studio.  Also, to be clear, Microsoft is maintaining the same level of development resources as we always have. There’s still a roadmap and actually, there are more Microsoft developers working on ASP.NET today than ever before.

Why are you doing this?

Why shouldn't we? We like open source and you do too. Many of us come from open source backgrounds and many of us work on open source in our spare time.  We think our products are great and by moving to an open development model we think even more people will be energized, excited, and help make the products and the community even stronger.

Are you going to open source more things in ASP.NET?

Did I mention we love open source? We are going to continue to do open source in ASP.NET as we can when it makes sense.

Why isn’t ASP.NET Web Forms open sourced?

The components that are being open sourced at this time are all components that are shipped independently of the core .NET framework, which means no OS components take dependencies on them. Web Forms is a part of System.Web.dll which parts of the Windows Server platform take a dependency on. Because of this dependency this code can’t easily be replaced with newer versions expect when updates to the .NET framework or the OS ships.

What about Mono?

The Web Team digs Mono. We love that ASP.NET MVC can run on Mono and we look forward to getting contributions from the Mono community. In fact, I called my friend Miguel last week so he could be the first one to submit a pull request.

Why not on GitHub?

The Visual Studio Team has big plans for CodePlex, including adding Git support and modernizing the experience. Right now CodePlex supports TFS, Mercurial (Hg) and just added Git! As we're a partner with the Visual Studio Team we think the right thing for us to do is to support their plans to make CodePlex a thriving place for open source software again. We push them hard and they're releasing weekly now.

Conclusion

Here's how I look at it: Open Source == Increased Investment. ASP.NET is a part of .NET, it will still ship with Visual Studio. It's the same ASP.NET, managed by the same developers with the same support. It's ASP.NET except now you can get involved. You'll be able to see our developers' check-ins in public, offer feature ideas of your own, perhaps even become a key committer.

I'm pretty jazzed that we pulled this off at Microsoft. Still, it's just the beginning. I’m looking forward to working with you! ;)

Yay!

Related Links

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.

facebook twitter subscribe
About   Newsletter
Hosting By
Hosted in an Azure App Service
March 28, 2012 4:35
Congratulations! This is fantastic news. Thank you for your hard work. I know you and several others inside Microsoft have been fighting for this for years. Now, it's finally paying off, big time. I hope this is a sign of things to come and I look forward to seeing the .NET team continue to embrace open source and grow codeplex.
Rob
March 28, 2012 4:39
This is great news! Now if I run into a bug in ASP.Net, I can fix the bug instead of creating a workaround.

If this does happen, though, what's the release cycle? Suppose I send you a pull request for a small bugfix (and assuming you accept it), how long would it typically take before there's a publicly available version that I can tell my customers to download if they run into a problem?
March 28, 2012 4:44
Excellent news! Congratulations! I am very happy and can't wait to spread the word around about this great news. Congratulations, once again! :)
March 28, 2012 4:53
Also, what's the relationship between http://aspnet.codeplex.com/ and http://aspnetwebstack.codeplex.com/?
March 28, 2012 4:59
Freakin' huge Scott. Awesome job. Who would have imagined it a few years ago.
March 28, 2012 5:02
This is the best piece of news I've ever heard of ASP.NET since the beta release of ASP.NET MVC.

Congratulations! THIS is definitely the way to go.
March 28, 2012 5:07
This is just huge! Congratulations to everyone who put their efforts into making this possible.

I just can't say how happy I am with the news. Thank you for bringing this to us, as always, Scott!
March 28, 2012 5:20
Welldone. Keep up the good work. Let us contribute.
March 28, 2012 5:21
Boom! Way to go Scott! This is what I'm talking about!
March 28, 2012 5:43
Keep the great work going!
Leo
March 28, 2012 5:50
Things just got very interesting... this is awesome!!
March 28, 2012 5:57
Excellent news! Uses git too! Now I can add all those features I've always wanted to ASP.NET MVC!

I only wish CodePlex wasn't so ugly and cumbersome to navigate.
March 28, 2012 5:57
Wow, so pigs can fly now?! ;)

Really, that is amazing news. Very happy. Almost speechless. Thanks!
March 28, 2012 6:08
@jinushaun - They are redoing Codeplex, too:

http://blogs.msdn.com/b/bharry/archive/2012/03/22/the-future-of-codeplex-is-bright.aspx
March 28, 2012 6:24
This is pretty exciting. Now if only Visual Studio... oh, who am I kidding :)

What will "releases" look like now? MVC 3 was something you had to install (either manually or via Web Platform Installer). Will this be something easily updateable (the new VS 11 extensions we saw earlier?)? I'm just wondering how the assemblies will be distributed now.

Man this is so cool!
March 28, 2012 6:27
Congratulations! Its my favourite team already at MS and hope it brings positive change to the other teams too.
March 28, 2012 6:28
This is really fantastic. Great job, ASP.NET team!

The inertia of ASP.NET is definitely headed in the right directions and I know some major boulders had to be thrown out of the way for this kind of stuff to happen.

Apache 2 and accepting pull requests is beyond amazing!

You're at Level 20 Awesome now. Level 30 is having a major non-Microsoft contributor that has real, significant input into the direction of ASP.NET MVC/Razor/WebAPI.

My hopes in ASP.NET remaining relevant into the medium-term future are returning quickly.

This is indeed a good day and a very major and promising shift in the right direction.
March 28, 2012 6:40
> Level 30 is having a major non-Microsoft contributor that has real, significant input into the direction of ASP.NET MVC/Razor/WebAPI.

Microsoft is adopting the open source Json.NET library as the default serializer for WebAPI. Does that count? :)
March 28, 2012 6:42
Does this mean you'll use more animated GIF's in your blog posts?

Guess I have to see if I can figure out how to fix this annoying Razor 2 bug with the less than sign in Javascript inside of a section block.
March 28, 2012 7:09
Wow, excellent work Scott! I'm very impressed with the culture shift, and tremendously excited to see how the many brilliant and generous members of the community contribute to a framework they already love and depend on.

You're leading the way and have a chance to show the other development teams at Microsoft how much everyone has to gain from an open approach combined with a powerful dedicated core team.

My hope is that the Silverlight/XAML team follows suit!
March 28, 2012 7:25
Kudos dude. I imagine it's taken some serious cojones to get to this point.
March 28, 2012 7:37
wow, great news for developers!!!
March 28, 2012 8:30
WOW! Never thought I'd see the day. This is awesome!
March 28, 2012 8:42
Congratulations, Scott! I know this wasn't an easy feat for you and the number of people working to get to this point. Can't wait to see what's next.
March 28, 2012 9:40
This is excellent news. Congratulations to you and the team! Looking forward to the future in this space.
March 28, 2012 10:21
@Dor Kleiman
The release cycle will be unchanged as of right now. Moving forward things may or may not change. We're going to play it by ear and work with all of you.

@Kamran Ayub
As of right now, nothing will change. You'll install it the same way. We will figure out moving forward if any of that will change or not. It's still going to ship with VS11 and VS10 as expected (and and a separate installer). The cool part now though is that you all will now have access to nightly builds!

@Jeff Putz
Take a look at the latest code (since you can now!) that one should be fixed in source. :)
March 28, 2012 10:35
Excellent news, well done everybody!

Any particular reasong to choose git and not hg? What advantages does it offer over Mercurial?
March 28, 2012 10:50
Wow! This is huge and amazing news.

I think that inviting the Mono guys to get involved is a fantastic signal that you are serious about building a real Open Source community.

Great job!
March 28, 2012 10:51
Hi Scott,

If this remark from Rob is true: http://wekeroad.com/2012/03/28/i-guess-that-was-a-bad-idea/ it's not all unicorns and rainbows in the .NET community.

Opensourcing something on Codeplex does not make something open source. Community and cooperation does. Forking stuff on GitHub does.

Scathing someone forking something to GitHub because he thinks it would be good to have a repo there (I concur) harms the community. Writing venomous comments to someone on Twitter who obviously had good intentions harms the community. Making that same (yes, a bit snarky, but insanely bright) developer consider to leave the .NET/MS community (the famous "last straw" as noted here https://twitter.com/#!/robconery/status/184854880689721344 and here https://twitter.com/#!/robconery/status/184855092808257536) hurts the community _a lot_.

You might consider looking into this and try to mend things (if it's already not too late and another awesome .NET developer moves on to the Ruby/Node camp permanently which would be a real shame, especially when caused by a situation like this)
March 28, 2012 11:17
Fantastic news! Kudos to the 'Scotts' and their teams. May their tribe increase!

It's like the ASP.NET team is a startup inside MS. Like with all start ups how long till higher ups question 'Revenue Model'? Hope, not till Azure becomes a nice cash cow :)...

Just being a devils advocate, I would hate for this super team to change (despite all the churn we have seen in the last 6-8 months) in any way !!! Love you folks!
March 28, 2012 11:20
Cyriel - I searched Twitter and Rob's @mentions and didn't seen any "venomous" tweets, and no one from our team mentioned this or reached out. From the timeline on twitter and his blog it looks like he forked it (a totally OK thing to do, we agree) then decided to delete it just short hours later. Unless he got a call from someone that we didn't see, it doesn't seem like whatever happened occurred in public. I'll give him a call.

Also, BTW, do include your email or website so you can I can chat also! ;)
March 28, 2012 12:12
This is fantastic news, Scott!!! Awesome!!!
March 28, 2012 12:24
Excellent news, however:

"Why isn’t ASP.NET Web Forms open sourced?"

Good answer, however why can't the source for this be "opened up"?*. Even if you don't accept changes (fair enough, given the dependencies), then at least we can all learn from it, and the likes of Miguel can hack it into Mono.


*I'm assuming it's not open/visible - if so, sorry!
March 28, 2012 13:03
I clearly remember Ballmer calling OpenSource and Linux as cancer and today clearly Open Source is the way forward for microsoft huh. Stupid ballmer must be kicking himself.
March 28, 2012 14:06
This is really really nice to hear, I deeply appreciate your work. Maybe it already exists something like that and I don't know, but I like very much how you can deploy pushing a branch to a remote server (heroku). Do you already have something like this? Is it possible in Visual Studio to do something like you do in Vim switching from insert, navigation and command mode? It would be helpful for example press esc and have support at least for basic movements and commands ( I really hate mouse and arrow keys); Maybe it is my ignorance again but in rails, for instance, I see clean separation from development, test and production environments, how can I accomplish the same through .net MVC, do you have other templates than the default one?; I see that GIT on windows is pretty slow and I miss basic tools that you have on unix for instance, like for ssh through command line (it's a bit boring to fire up putty, puttygen, click here and there...)
March 28, 2012 14:11
Amazing!!!
Thanks a lot guys.
March 28, 2012 14:15
It's like christmas, in March! This is fabulous, I'll be diving straight in. I want to have my first contributions lined up for the team's perusal before the summer!!!
March 28, 2012 14:56
@Dario: In response to Maybe it already exists something like that and I don't know, but I like very much how you can deploy pushing a branch to a remote server (heroku), have you looked at App Harbour?
March 28, 2012 15:04
This a wonderfully encouraging move in the right direction. What better part of Microsoft than the web technology peeps to demonstrate the rewards that collective intelligence can bring to a product. It was awesome to see tweets from Miguel De Icaza's about the first pull request 2 minutes after the tweet from Scott Gu about open sourcing asp.net. So asp.net got a little bit better in just two minutes of open sourcing it..imagine what can happen in a day :).

Thanks for this Scott, this totally rocks! You are even more awesome than you were before...if that's even possible :).
March 28, 2012 15:14
Congratulations to the team! I'm sure it was not easy to pull this off.

This is HUGE for Microsoft and for us, developers. Exciting times to be a .NET developer.
March 28, 2012 15:19
@Tatham Oddie
Thank you very much! I'm checking it out
March 28, 2012 15:47
Yes, this great news. Congratulations Scott! I can only imagine how hard you must have pushed the past years to get to this point.

PS. Why Git? Git doesn't play nice on Windows. You should have gone with Mercurial. I hope you guys can still fix this mistake, because you are going to get so much more contributions if people can use TortoiseHg!
March 28, 2012 16:58
Git doesn't play nice on Windows


Maybe I am missing something but having been using Git on Windows for the past few years, I've not had any issues. Sure, we don't get a fancy UI (changing with GitHub for Windows), but that's not stopped a lot of people from using GitHub or Git in general on Windows.

I don't mind Hg, either solution is good from my perspective but since I love GH, I usually stick with Git. It's like console wars, right? I love all consoles, like I love all DVCS.
March 28, 2012 17:09
WOW!!!! I must say thats awesome news... and finally codeplex supports git now. Thx Microsoft
March 28, 2012 17:34
Great news, looking forward to the dynamic changes this will bring not only ASP.NET but the community overall.

P.S.
I believe you have a typo. In the section about WebForms you say 'versions expect when ' but I believe you mean 'except' not 'expect'.
March 28, 2012 17:53
Is there a way to look at the ASP.NET Web Forms source code. If it changes infrequently that would lead people to believe it would be an occasional push.
March 28, 2012 18:13
This is the best news I've heard out of Microsoft in a long time.

I absolutely love that you're using git for version control. It's one thing to support it on CodePlex, but it's quite another to actually host one of your flagship technologies on it.

This might be just the leverage I need for us to start using git here at work. The standing line from management is "If the technology is supported by Microsoft, it's automatically OK and we can use it. Anything else has to go through a minimum 6 month vetting process." Nevermind how ludicrous that policy is to begin with, but I digress.

The point is this is great news, and I'm super excited about it.
March 28, 2012 18:27
This news really made my day yesterday. Very exciting stuff! Also, I love the animated gifs you chose, especially the top one.
March 28, 2012 18:34
Herculean tenacity required to get this to happen, Scott. Good stuff. Condolences to the broken spirits and corpses littering the wayside along the road forward.
March 28, 2012 19:01
The usage of GIFs here is masterful. This is a really exciting announcement. It's exciting that I can contribute in some meaningful way to a tool that I use so often.
March 28, 2012 19:57
Nice -- thanks for your hard work on changing the Microsoft culture.
March 28, 2012 20:12
Any chance of getting the System.Web.Providers added too?
March 28, 2012 20:52
From a personal point of view, this is a very good thing, and I have to say congratulations are certainly in order for you and your team. That's an oustanding accomplishment at Microsoft.

My concern here is this, with so much of the web product going open source, where does that leave Microsoft support in the mix? For instance, many companies out there, especially State/County municpal organizations are very affraid of open source software because there usually are not support contracts that come with the license.

For instance, when my company buys X server licenses, and has an agreement with microsoft, we can call and get help when someone fudges up Active Directory. What if someone is using MVC4 now and fiddles with Knockout and Razor together and hoses their site - will Microsoft support those things or is abandonment a side effect of this fully open source movement?

Just curious...


All in all, good work Scott. I'm really stoked that MS is opening up and hope you and your team will drop a beer or two back in celebration.

-T
March 28, 2012 21:40
First of all Congratulations, I'm happy to see such big step towards open source from MSFT... fantastic, but I have a concern about the security of open source software, how does this will be addressed, so that no malicious attacker could find and exploit before it is fixed?
March 28, 2012 21:42
Congrats, like others, I'm quite excited about this! Will we see Silverlight following suit? I can't think of a better way to calm the recent concerns over the future of Silverlight than to make it open source!
March 28, 2012 22:09
When is MS going to make Visual Studio open source? And now that Asp.net Web API is out, what happens to WCF?
March 28, 2012 22:57
Scott - Congrats to you and the team that worked on getting this open-sourced.
March 29, 2012 0:22
What about RIA Services? And open source Silverlight, MS already did a lot of bad things for it, it's time to do something good.
March 29, 2012 0:43
This is good news but your answer to "Why are you doing this?" wasn't convincing enough. You could have said "Why shouldn't we?... " in 2011 or 2010 or earlier. And you could have said it in the future as well. There's nothing special about 2012. Plus I am pretty sure you and the same level open source enthusiastic employees don't have the authority to make this kind of decision. My guess some MS higher ups eventually softened their stand and it took them THAT long. (Sorry to sound little negative but what I read was a bit washy!)
March 29, 2012 17:42
Great news. Who's gonna be the first to add hypermedia support for Web API?

Truly awesome development, Microsoft!
March 30, 2012 2:20
What about our long lost friend Linq to SQL?
March 30, 2012 3:12
Now we'll see if all of the developers who have been crying that they could fix those vexing bugs themselves if they just had access to the source will put their money where their mouth is :)

Seriously, this is awesome news, not only for MVC, but for what it says about the shift going on in the mindset inside DevDiv. Hope to see it continue to spread.
March 30, 2012 17:40
Hi Scott,

The previous versions of ASP.NET MVC were licensed under the MS-PL license. Why did you change to the Apache 2? What is the significant difference between the two?
April 14, 2012 22:15
Which of Bill Gates kids did you kidnap to pull this off ... very cool
May 21, 2012 21:50
Scott could you clarify at that condtions ASP.NET WebApi binaries can be redistributed with my desktop application.

Standalone installer uses Microsoft Pre-release software license:
http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=28942
or link from NuGet package https://nuget.org/packages/System.Net.Http to
http://www.microsoft.com/web/webpi/eula/aspnetmvc4-beta-eula.htm
ASP.NET MVC 4.0 Sources uses Apache 2.0 license.
If I understand right you provide binaries under Microsoft Pre-release software license and sources under Apache 2.0, could you confirm this?
May 24, 2012 21:40
The shipped release code via installer will always be under Microsoft EULA. It ALREADY give you redist rights (see attached Eula or look at it on your machine at C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4). The source code is under Apache 2.0 license.
June 07, 2012 23:04
Wow, this is awesome.

I'll never forget when a teacher at a local high school submitted a binary patch to Windows 95 (a bug fix) and was promptly threatened with legal action from Microsoft.

Community participation for the win!
July 26, 2012 11:23
Great news
August 08, 2012 18:31
Nice work!! I like the way you include the funny pictures in it.
August 25, 2012 18:49
Hey Scott, I was wondering what your thoughts are on allowing WebAPI to be contract based as well as ReSTFul. I am a big believer that both have their place and I could definetly see advantages to providing my current MVC applications the ability to use the WCF contract technique our WCF services provide while also providing a ReSTFul API for third party applications that need access to our data. Also, I know that most examples show the ability to do this by having the WebAPI part of your MVC project, but I wish to have them on seperate machines for various security or availability concerns.
September 14, 2012 15:25
Open sourcing the ASP.NET MVC was a great move
November 02, 2012 10:57
I drop a leave a response when I like a post
on a site or if I have something to valuable to contribute
to the conversation. It's triggered by the sincerness displayed in the article I read. And on this post ASP.NET MVC 4, ASP.NET Web API and ASP.NET Web Pages v2 (Razor) now all open source with contributions - Scott Hanselman. I was moved enough to write a comment ;-) I actually do have some questions for you if you don't
mind. Could it be simply me or do some of the remarks come across like left by brain dead people?
:-P And, if you are writing at other social sites, I would like to follow you.
Could you list the complete urls of your social pages like your twitter
feed, Facebook page or linkedin profile?
January 31, 2013 14:25
to the conversation. It's triggered by the sincerness displayed in the article I read. And on this post ASP.NET MVC 4, ASP.NET Web API and ASP.NET Web Pages v2 (Razor) now all open source with contributions - Scott Hanselman. I was moved enough to write a comment ;-) I actually do have some questions for you if you don't
mind. Could it be simply me or do some of the remarks come across like left by brain dead people?
:-P And, if you are writing at other social sites, I would like to follow you.
Could you list the complete urls of your social pages like your twitter
feed, Facebook page or linkedin profile?
January 31, 2013 14:25
to the conversation. It's triggered by the sincerness displayed in the article I read. And on this post ASP.NET MVC 4, ASP.NET Web API and ASP.NET Web Pages v2 (Razor) now all open source with contributions - Scott Hanselman. I was moved enough to write a comment ;-) I actually do have some questions for you if you don't
mind. Could it be simply me or do some of the remarks come across like left by brain dead people?
:-P And, if you are writing at other social sites, I would like to follow you.
Could you list the complete urls of your social pages like your twitter
feed, Facebook page or linkedin profile?
May 27, 2013 6:10
Hi mates, how is all, and what you wish for to say regarding this article, in my view its genuinely remarkable for me.


my homepage - spam filter groupwise

Comments are closed.

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.