Last week I attended the Pluralsight Author Summit and it was there that I met Dan Appleman. Dan and I are like the two who went to different schools together–he’s written for many of the same publications I have, and he’s been writing about Windows programming and Visual Basic long before Active Server pages or the .Net framework hit the scene. You may know Dan from one of his many books or countless articles on programming with Microsoft technologies. So when it comes to .Net development Dan is an expert I trust.
The meeting was fortuitous because when I began looking at the .Net resources for Force.com I was skeptical. Platform as a Service (PaaS), as we all know facilitates the deployment of applications without the need for worrying about infrastructure. That’s the benefit of PaaS in general and Force.com in particular. You don’t incur the costs, manage the complexity, nor worry about provisioning and configuration. Moreover, it’s Force.com’s multi-tenant architecture that gives you features like hard-core security and a complete social platform without lifting a finger.
Still, the conundrum for me was that the majority of applications are not in the planning stage. They are at some mid-point in the development, delivery, deployment pipeline. If you’re not familiar with the deployment pipeline in an enterprise environment, I highly recommend reading Continuous Delivery by Jez Humble and David Farley (with a forward by Martin Fowler). So unless you’re starting a new application from the ground up, it seemed far more likely to me that .Net developers would be integrating their .Net applications with cloud services, or facilitating communication between say, Biztalk Server, and the cloud. The Force.com platform has a great solution for this. Using Apex Code and Force.com APIs you can create either REST or SOAP-based web services to pull data from the cloud. This is a great way to integrate existing applications and servers with the cloud.
But when I think PaaS, I think development. So how should .Net developers approach new projects that will be deployed to the cloud? More to the point, will VB and C# programmers familiar with Visual Studio be willing to make the necessary paradigm shift? The question isn’t confined strictly to Microsoft developers. Don’t forget there’s a whole Mono community out there. Mono is the open-source version of the .Net Common Language Runtime (CLR) that allows C# developers to build applications targeted to everything from Mac and Linux to Android and iOS. While many Mono developers use Xamarin Studio the programming model is essentially the same.
That’s where Dan comes in. Dan correctly noted that many enterprise applications are data driven, and that to be productive in a cloud environment programmers would be more than willing to make this sacrifice. To make his point he created a simple form in Visual Studio that connects to a database, retrieves contact information and presents the results. Then, in a side-by-side comparison he did the same thing using Force.com. That was the “Aha” moment I was looking for. C# programmers have to worry about multiple data sources and configuration. Just as IaaS alleviates us from the infrastructure hassle, Force.com internally manages the database for us. In fact Dan will be presenting an article on Developer Force later this month, “From SQL to SOQL.” I think you’ll find it nice complement his other Pluralsight courses.
If you’d like to see Dan’s demonstration, which includes a comedic presentation of programing before visual development environments, he has created a new video course, Force.com for .Net Developers. The course will give you a high-level overview for the Force.com platform and walk you through the paradigm shift.