“ASP.NET is dead”
Doug Ware (MVP) has written up a great post on his opinions on what the new SharePoint 2013 preview means for developers. I think he’s a bit bold in saying “ASP.NET is dead”, considering the new remote-hosted app model encourages you to build web applications remotely from SharePoint platform.
Getting you off of server-side object model
Ted Pattison also makes some good comments about Microsoft wanting to get you off server-side object model, mainly because Microsoft don’t want your code running in processes running on the SharePoint farm and therefore increasing the stability…especially for their Multi-Tenancy Office 365 environments. Ted also states the other reason is that the server-side object model was often a pain when upgrading to the new major version of SharePoint. I’m not necessarily sure that moving the customizations out to the new App model is going to solve this…after all, they are still going to be calling the client-side object model and that will change. Vendors are already witnessing issues as Office 365 SharePoint Online has updates that are affecting the expected results back from the client-side object model.
You can still write in server-side managed code in the new Apps…although you will be coding against the SharePoint .NET client-side object model and not the SharePoint .NET server-side object model, as you won’t be executing the code on the SharePoint server but a remote one (either Azure or something else). The only way now to write SharePoint .NET server-side object model managed code is to stick with Full-Trust solutions OR Sandboxed Solutions (limited) which unfortunately WON’T be in the marketplace.
Doug also points out that SharePoint 2013 preview also is now on .NET 4.0 rather than 3.5. I completely understand why the product team didn’t do this in the 2010 release as .NET 4.0 release dates were almost in parallel. The only product team brave enough to do that was the Project Server team who built in parallel to SharePoint Server 2010. Stephane Eyskens’s blog has a great overview of some of the .NET 4.0 features that you probably haven’t even looked at before with your Visual Studio hat on. So if you do write with the Solution model, you can now use .NET 4.0.
Who has the bucks for business solutions?
Rob Windsor (MVP) also makes a great point that “all bets are on” in the cloud for Office 2013 and that the “Solution model” (e.g. Full-Trust Solutions and Sandboxed Solutions) are being treated as deprecated features in this platform based on the voice of the TechNet and MSDN articles being published around the App model on “getting started with SharePoint 2013 development”. I do tend to agree, and have already voiced my concerns that the majority of EPG customers that are going to want to pay for development won’t be in Multi-Tenant environments and will be in Full-Control environments. Therefore in most cases, Full-Trust solutions will make sense.
Also, remember that the App model for Full-Control environments does not support OAuth because it doesn’t support Azure’s Access Control Services (ACS), so you have to use High-Trust apps which come with some more complexity.
The debate on whether to “future-proof” environments for Multi-Tenant becomes HUGE. Eventually I think the cost that was incurred in future-proofing business solutions by building them as Sandboxed Solutions rather than going with Full-trust Solutions burnt a lot of people. The reason for this is because the effort involved to code around limitations of Sandboxed Solutions was extremely high and in some cases simply couldn’t be done putting limitations on business solutions. I suspect a lot of large EPG customers will continue to push with Full-Trust Solutions with the mindset that they’ll be in Full-Control environments for a long time to come.
Doug has also pointed out in another post another statement that is reminiscent of the Sandboxed Solution introduction of “develop X whenever you can”. The reality is if you already know how to smash out a Full-Trust Solution, why take the time to learn how to build Apps, much like the argument we had on learning Sandboxed Solutions.