I also had the privilege of speaking at the South Bay .NET User Group, at their April monthly meeting, held at the Honda Motors U.S. headquarters campus in Torrance, CA.
The topic of this presentation was an overview of the neat and new things on the broad Microsoft platform, to help distill an understanding of how Microsoft is evolving the platform in response to major trends in IT environment today.
We took a quick glance over many interesting platform components from Microsoft:
- Software + Services (S+S): http://msdn2.microsoft.com/en-us/architecture/aa699384.aspx
- S+S Blueprints: http://www.ssblueprints.net/
- SOA – Oslo: http://www.microsoft.com/soa/products/oslo.aspx
- BizTalk Services: http://labs.biztalk.net/
- Windows Live Platform: http://dev.live.com/
- Office Business Applications: https://www.obacentral.com/
- Office Live Workspaces: http://workspace.officelive.com/
- Silverlight: http://www.silverlight.net/
- Silverlight Blueprint for SharePoint: http://msdn2.microsoft.com/en-us/sharepoint/cc303301.aspx
- Silverlight Streaming: http://silverlight.live.com
- Popfly: http://www.popfly.com/
- Robotics Studio: http://www.microsoft.com/robotics/
- XNA Game Studio: http://www.microsoft.com/xna/
- Surface: http://www.microsoft.com/surface/
- Photosynth: http://labs.live.com/photosynth/
- HD View: http://research.microsoft.com/ivm/hdview/hdgigapixel.htm
The intention is to show that, in addition to building .NET applications on the core .NET platform (ASP.NET, Atlas/AJAX, WinForms, WPF, WCF, WF, etc.), there are many rich frameworks for building different kinds of applications, and often available at a higher abstraction level or specialized in specific scenarios. Having an awareness of these components means additional options for .NET developers to address specific problems or implement specific capabilities. The skills and knowledge on the .NET platform, such as programming in C# and familiarity with the Visual Studio development environment, can easily be extended to create solutions using these rich frameworks and platform components.
All this is being brought together under the context of Microsoft’s perception of the the future of technology, influenced by major trends today including SOA, Web 2.0, Software-as-a-Service, etc. Microsoft uses the term "Software + Services" to describe this vision, where rich and targeted software components (client-side and installed on-premise) connect to and leverage distributed services (server-side and cloud-based).
The big question is, is this "Software + Services" view of the future relevant? Arguably Microsoft seems to be the only one advocating this view of the world where both client software and distributed services combine to deliver compelling user experiences, when mainstream mindshare today seems to be focusing on browser-based applications. And while it is worth noting that most of the major services players, such as SalesForce, Google, Adobe, Yahoo, Mozilla, etc., all are delivering desktop components that live outside of the browser (or at least work in off-line modes), their approach seems to be client-side software as an augmentation to cloud-based services (i.e., Google Desktop, Adobe AIR, etc.).
In particular, we should expect that organizations will continue to invest in additional channels beyond the browser to reach customers. Desktop gadgets, desktop applications, plug-ins or add-ons to existing desktop application platforms (such as Office clients, Windows Live Mesenger, Vista Sidebar, SideShow, etc. on the Microsoft side), multiple device platforms (such as Windows Mobile, XBox, Zune, Media Center, Windows Embedded, etc.; again on the Microsoft side), and various services platforms (such as Windows Live, Popfly, SharePoint Online, etc.; on the Microsoft side), are all potential channels to add value to browser-based user experiences, and in many cases, very viable options to differentiate from others.
Now Microsoft may be the most vocal about the value of client-side software combined with server-side services, and building a platform that provides a spectrum of choices (which may be criticized as adding complexity as opposed to simplifying and unifying into a "good enough" approach). Similar approaches can also be identified from other leaders in the industry. Google for one is delivering more and more platform components – Google Apps, Apps Engine, Android, Desktop, GrandCentral, iGoogle, Search/Analytics/Ads, Youtube, and many more in the pipeline such as audio and video advertising, etc. From a high-level the visible trend is that Google is aggressively diversifying its platform and providing value by allowing customers to leverage the capabilities in those platforms.
Thus, we can expect to see that the technology "platform" is evolving into a much more diversified set of capabilities, and increasingly, those capabilities can be leveraged via a multitude of means beyond tradition API-based or Web services-based integration; beyond writing code.