Microsoft has published its .NET architectural pattern under an OSI-approved open-source license to a mixed reception.
The company's ASP.NET Model View Controller (MVC), released at Mix 09 just last month, has been published under the Microsoft Public License (MS-PL).
ASP.NET author and vice president of the .NET development platform Scott Guthrie blogged about it here.
MVC is a design pattern that separates the business logic from the interface, and provides a recipe for quickly and efficiently building applications. Bringing that to ASP.NET potentially helps the development of web applications built using Microsoft's stack.
Publishing it under MS-PL also potentially extends those benefits to the Linux and Unix communities working with open-source versions of Microsoft's architecture. MS-PL doesn't restrict the code's use to Windows, so you can run it on Mac OS X, Linux, or Unix.
ASP.NET MVC under MS-PL has been welcomed by Miguel de Icaza, leader of the Mono and Moonlight projects, which are building open-source versions of .NET and Silverlight for Linux and Unix.
De Icaza blogged Thursday: "I strongly believe that the same innovation, rapid adoption and experimentation that has happened with the new wave of web stacks will come to ASP.NET MVC across all platforms."
There is a downside, though, and it comes in the way MS-PL lets you modify and redistribute the source code.
The MS-PL license specifies: "If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software." Also, source-code licensed under MS-PL can only be licensed under MS-PL.
That's going to throw a spanner in the works of anybody who wants to modify code and then pass it on under a different license, such as the GPL. Also, those who don't believe in patents or copyrights - never mind passing them downstream - won't like MS-PL.
Some see MS-PL as Microsoft's answer to GPL.
There's also a question mark over how much freedom the ASP.NET MVC installer's end-user license agreement (EULA) confers on developers who might need to pass the code downstream to customers of applications they build that also require the installer.
According to one commenter on Guthrie's blog, the EULA doesn't appear to let you publish the software for others to copy, rent, lease, or lend, or to transfer the software or the agreement to any third party. "The EULA clause would appear to prevent us from redistributing ASP.NET MVC in any form (even in this pre-packaged installer)," the commenter said. ®