ASP.NET MVC 4, ASP.NET Web API and ASP.NET Web Pages v2 (Razor) now all open source with contributions
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.
About Newsletter
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?
Congratulations! THIS is definitely the way to go.
I just can't say how happy I am with the news. Thank you for bringing this to us, as always, Scott!
I only wish CodePlex wasn't so ugly and cumbersome to navigate.
Really, that is amazing news. Very happy. Almost speechless. Thanks!
http://blogs.msdn.com/b/bharry/archive/2012/03/22/the-future-of-codeplex-is-bright.aspx
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!
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.
Microsoft is adopting the open source Json.NET library as the default serializer for WebAPI. Does that count? :)
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.
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!
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. :)
Any particular reasong to choose git and not hg? What advantages does it offer over Mercurial?
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!
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)
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!
Also, BTW, do include your email or website so you can I can chat also! ;)
"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!
Thanks for this Scott, this totally rocks! You are even more awesome than you were before...if that's even possible :).
This is HUGE for Microsoft and for us, developers. Exciting times to be a .NET developer.
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!
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.
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'.
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.
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
Truly awesome development, Microsoft!
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.
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?
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?
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!
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?
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?
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?
my homepage - spam filter groupwise
Comments are closed.