It’s about time, right‽ In fact, it has been 3 and a half years since I first declared that getting RIA Services open-sourced was my stretch goal. Since then, I’ve seen dozens of forum posts, hundreds of tweets, and over 13,000 page-views for my original declaration. There was even a time during a LIDNUG call when Scott Guthrie was directly asked what it was going to take to get RIA Services open-sourced. This has been an important topic to a lot of people for a long time, and I am finally happy to announce it’s happening!
Open RIA Services
Let’s get right to it and cover some salient details:
- Microsoft will donate the source code of RIA Services to the Outercurve Foundation under the project name of “Open RIA Services”
- We expect to make this code donation later this summer—the legal process has been underway for several months and is nearing completion
- Open RIA Services will be submitted into the ASP.NET Open Source Gallery alongside NuGet, Orchard, DotNetOpenAuth, xUnit.net, and others
- The source code will be hosted on CodePlex at http://openriaservices.codeplex.com
- Colin Blair will be the project lead, and he will be driving the project toward the multi-version project plan he put together, with more information available at http://openriaservices.net/
- The Apache 2 license will be applied and the project will accept contributions
- Several other community members have voiced interest in contributing to the project and growing it beyond what it’s capable of today
- Microsoft will collaborate with the Open RIA Services project to ensure it gets off to a strong start and developers are able to successfully transition if desired
WCF RIA Services
Separately from the open source project, Microsoft will continue to support WCF RIA Services V1.0. This is the product that shipped in the box with Visual Studio 2010 SP1, Visual Studio 2012, and is also shipping in the box with Visual Studio 2013. We will service WCF RIA Services to ensure that the product enables you to bring your existing applications forward into new versions of Visual Studio with compile-time Silverlight code generation, as well as the runtime functionality that makes Domain Services tick.
In addition to being included with Visual Studio 2013, we also published several NuGet packages to http://nuget.org back in December of 2012, under the riaservices account. You can read more about those packages from my post when they went out. Many developers are choosing to use these NuGet packages to provide easier bin-deployment of applications and to get support for Entity Framework 5.0.0, Windows Azure, and the SOAP and JSON endpoints, among other features.
Visual Studio 2013
For Visual Studio 2013, we have reduced the design-time capabilities of WCF RIA Services, with the following design-time features being removed:
- The “Business Application Project” template
- The “Domain Service Class” template/wizard
- Toolbox items for the Silverlight designer surface
- Data Sources Window integration for the Silverlight designer surface
These feature reductions from Visual Studio 2013 were made with Open RIA Services in mind. Any design-time features included in Visual Studio 2013 would have been tied to WCF RIA Services and would have made transitions to Open RIA Services more challenging. To help provide a smooth transition from WCF RIA Services to Open RIA Services, these design-time features were removed and we are encouraging developers to use the aforementioned NuGet packages to build their RIA Services projects. Then when the Open RIA Services project publishes its set of NuGet packages, the transition should be relatively smooth and there won’t be any design-time features that break down.
Note that even though the Business Application Project template has been removed, you can still create a new RIA Services project—just create a Silverlight application using one of the other project templates and choose to enable the RIA Services link for the project. To create a new Domain Service class, you will just need to include the appropriate namespaces and derive from the DomainService class that suits your data access layer.
Additionally, WCF RIA Services fully supports round-tripping through Visual Studio 2010, 2012, and 2013, which allows you to create a new project in Visual Studio 2010 or Visual Studio 2012 and then work on it in Visual Studio 2013, Visual Studio 2012, or Visual Studio 2010. The design-time features listed above are all fully supported in Visual Studio 2010 and Visual Studio 2012.
Entity Framework 6.0.0
With Entity Framework 6.0.0, namespaces changed and there were quite a few other changes that affected how RIA Services interacts with it, breaking the RIAServices.EntityFramework package. Knowing that Open RIA Services was going to kick off, it seemed prudent to make that one of the first goals of the Open RIA Services project. We will work with the Open RIA Services project to help make that happen around the same time that Entity Framework 6.0.0 reaches RTM.
I would like to thank every one of you who has asked me over the years about getting RIA Services open-sourced. Without the strong demand you have voiced, I’m not sure this would have happened.
I would also like to thank Colin Blair. Colin has long been the biggest advocate for RIA Services and he is famous for answering more questions on the forums than anyone else (including the entire product team); Colin really understands RIA Services through and through. Beyond that, Colin invested significant time into a project plan for RIA Services and he has illustrated that the future is bright for Open RIA Services. Colin’s investment and commitment to RIA Services has been vital to the project’s success and future possibilities, and I tip my hat to him. If you would like to contribute to Open RIA Services, please contact Colin Blair and check out the new project site at http://openriaservices.net/.