Microsoft is bringing out the first bits of sample code as guidance for Software-as-a-Service (SaaS) (define) development in a Windows environment. The sample code, a human resources application, isn't meant to offer guidance in building HR apps, but it does embody everything developers will need to know for SaaS development.
This fictitious app is implemented as a single instance, multi-tenant application, which is a very important architecture pattern in SaaS, said Gianpaolo Carraro, director of the solutions architecture group at Microsoft (Quote).
"This is a new way of thinking about software, a new way to think about how I deliver software to my customer, and it has a big impact on the architecture of the software and how it is built," he told "It was important for Microsoft to delivery a clear identification of the issues and how to implement those issues."
Three issues for SaaS development bedevil ISVs: scalability, customization and multi-tenant efficiency. For traditional enterprise apps, there may be dozens or hundreds of users stressing an application, but in a SaaS environment, there may be thousands of users hitting an application at the same time. Managing that load is vital, said Carraro.
Second is handling customization. Companies rarely use applications as they are out of the box. But in a hosted environment, where many firms all use the same app, customization becomes more difficult. How do you customize an application while keeping other companies from seeing your changes?
The sample application uses a metadata service that provides each customer the tools and wizards and templates they need to generate metadata that describes the specific needs of that particular tenant.
When the customer launches the application, it will look at the metadata and load the customizations. Microsoft calls this the polymorphic runtime because it morphs the application into slightly different behavior based on the customization of each customer.
This dovetails into the third issue, multi-tenancy. This is the issue of making an application play nice on a busy server where many people will use it. The code, plus white papers, is designed to help programmers write well-behaved applications.
Liz Herbert, senior analyst with Forrester Research, calls this "a good start. It sounds like they've done more than sample code; they've got video and training materials as well. They have more to go and I get the sense they know they have more to go," she.
The sample code is written in C#, all managed code using the .Net framework. It requires Windows Servers running SQL Server and Active Directory.
The code will be posted on Skyscrapr, the online community Microsoft started last year to support SaaS development. It will also be posted on MSDN.