With SharePoint 2010 came sandboxed solutions, a technology that allows better support for multi-tenancy and governance of solution deployment. This would be the de-facto implementation solution for Office 365 customizations. However, most SharePoint developers that I know keep developing farm-wide solutions for on-premise deployments. I urge anyone who want to future-proof their solutions to look at sandboxing, Office 365 and cloud technologies as an alternative.
Why hasn’t sandboxed solutions taken off?
Let’s be frank here. Developing for the sandbox is not as easy as developing farm solutions. It takes time, discipline and limits your options – something that most developers have a huge problem with. Anything that slows us down or tells us what to do will be thrown out the window.
Going forward, we must accept sandboxed solutions and the limitations of cloud computing. We must separate data tiers, business logic and user interface. With the arrival of BYOD and increased demands for mobile interfaces to services we need to think of the interface as a thin client that accesses logic and data from another service. Sandboxed solutions can do just that.
Why are we not deploying more Office 365?
I’m not sure if we as developers are ready and I am certain that the clients aren’t. It takes a paradigm shift to allow deployment of business applications on remote servers and the idea of a “cloud” that mashes everyone’s data and applications together is daunting.
We all need to look at how cloud services actually work and demystify the concept as a whole. Help your colleagues, co-workers and clients understand the benefits of “off-premise” solutions. Get in touch with your contacts at Microsoft and tour the data centers to see for yourself what it’s really about.
Spending more time in the UI
Sandboxed solutions and “gadgets” work in a separated runtime space and cannot talk directly to the SharePoint backend. The question is, do you have to do this in order to build solutions?
If the interface in itself merely talks to a service, preferably using client technologies such as the SharePoint client object model, OData, REST and jQuery, then we can expose the business logic as a service instead. Thinking of customizations as “apps” is a good start!
SharePoint and Azure
Azure is a technology that allows us to deploy IIS applications, storage, SQL server, authentication and WCF services in the cloud. We can use Azure services when SharePoint/Office365 does not allow us to run the code we require. Also, think of it as the area where we deploy our business logic and the default place to store SaaS applications. In this way, it doesn’t matter if the UI client is SharePoint or a native Windows Phone/iOS/Android application.
Where do we go from here?
I believe that the area where most SharePoint developers lack proficiency is in the client technologies. Study HTML5, jQuery and the client object model.
- HTML5 Tutorial (W3 schools)
- Making Sense of HTML5 with SharePoint: What is HTML5?
(Marc D Anderson, EndUserSharePoint.com)
- jQuery Tutorials (jQuery.com)
- Using the SharePoint Foundation 2010 Managed Client Object Model (MSDN)
We also need to control the business logic/mid-tier space and extend our knowledge to Azure. Microsoft is bringing in a whole new set of Cloud certifications and getting to grips with .NET 4.0, Azure and AppFabric is definitely the way to go.
- .NET Framework Developer Center (MSDN)
- SharePoint and Windows Azure Training Course (MSDN)
- Microsoft Cloud Certifications Overview (Microsoft Learning)