The signed parties of this document are passionate, invested application developers that use the Microsoft .NET Framework as their choice of technology to develop client applications. We firmly believe in Microsoft and are grateful to them for the superior development environment they have provided us with the arrival of Visual Studio 2010, and the superior client application development framework they have created in Windows Presentation Foundation.
Over this past year, Microsoft has given its client application developer base a confusing message, and has done little to lead, assist or provide clear direction to developers in a changing market climate. Additionally, Microsoft has not carried out its tradition of innovative leadership in the face of dynamic market forces.
We are concerned with this messaging, direction and vision. With this document, we wish to explore in depth the values we stand for, where we feel Microsoft has erred, and where we believe Microsoft should invest its resources in the near future to ensure its technologies remain relevant in the years to come.
Silverlight as a Symbol, Adaptation – Not a Plugin
Although it has manifested as such, Silverlight as a concept is not a “browser plug-in.” The idea behind Silverlight is a brand of development, one that aims to fulfill the ultimate developer use case:
“As a developer, I want to develop my Application once, and consistently run it on any platform.”
Even the original codename behind Silverlight –
WPF Everywhere – served to clearly demonstrate its initial overarching intention.
Sadly, the fulfillment of this use case continues to be elusive to this day, but some efforts in competing technologies such as the
Google Web Toolkit and
Flash Builder are starting to gain traction towards this goal.
When Silverlight is placed within the scope of the .NET Framework, it becomes part of an application development experience that is consistent, congruent and cohesive. The power, flexibility and expressiveness behind Silverlight enable developers to develop their applications in their native language, resulting in a
consistent development experience for both service-side and client-side development.
From a business value perspective, this leads to lower costs and higher productivity throughout the entire application development and lifecycle management process.
Windows Presentation Foundation as a Superior Client Application Development Paradigm
Many of us have a history developing web applications in JavaScript and HTML. Indeed, many of us also have a shared history in Windows Forms application development as well. We have also taken the time to build applications using Windows Presentation Foundation and have a great appreciation for the power, flexibility and expression this presentation framework provides.
There’s a certain power, allure and magic behind Windows Presentation Foundation that makes it the current standard in Windows client application development. The amount of resources and investment into this framework is self-evident:
Windows Presentation Foundation is simply a superior client application development paradigm.
Silverlight is a subset of Windows Presentation Foundation. Taken further, we consider Silverlight to be an adaptation of this framework. Unfortunately, it is the only adaptation as it exists in the marketplace today, and this is precisely the source of the marketplace friction we are currently experiencing.
As we outline later, we feel Microsoft’s efforts should be placed into adapting .NET (and Windows Foundation Presentation in particular) for other platforms.
The idea of adaptation is not an unpopular one. It comfortably rests as the top request by Silverlight developers today:
8700+ Votes: Implement Silverlight on More Platforms
Mix 2011: Marketplace Confusion & Frustration, Lack of Innovation
The annual Mix conference is traditionally a sounding board for innovative technologies, vision and direction from Microsoft. We watched this year’s keynote with great anticipation, only to be met with confusion and great loss. We watched two Vice Presidents present on stage, attempting to wow us with pseudo-anime graphics and a remake of a 30 year old video game.
Where was the traditional innovation we've come to love and expect? Where was the overwhelming audience applause?
The second day’s keynote gave us a little more reason for excitement. The Microsoft faithful witnessed a much better showing from a Vice President who is in touch with his loyal followers, Scott Guthrie. As noted by the much more frequent and enthusiastic applause, it is obvious that Microsoft developers are happy with the development environment provided by the Windows Phone 7 ecosystem.
However, even with all the excitement and applause from the second day’s keynote, Microsoft did not provide a strategic roadmap to spread this ecosystem beyond the Windows Phone 7. Developers were left disheartened, knowing that their favorite development environment and applications will only be available to Windows devices and platforms.
Fundamental Strategy Shift: Platform Adaptation
Much news has been generated around the “strategy shift” with Silverlight. This announcement, along with subsequent “explanations” of this announcement has resulted in confusion and angst within the client application development community.
We feel Microsoft should be
protecting its tremendous investment in its client application development technologies – in particular Windows Presentation Foundation.
With a commitment and focus on a superior development paradigm in place, Microsoft’s efforts should be squarely placed in creating an adaptation platform so that applications can be compiled on any platform possible –
encompassing those platforms that exist today and those that can and will exist in the future.
This paradigm is already happening on a basic level at Google with the
Google Web Toolkit: Developers develop in their preferred, superior native language (Java), and the results get compiled (adapted) into a lower, inferior language (JavaScript).
This is precisely the marketplace strategy that Microsoft should embrace and then extend, through the conceptual framework of an Adaptation Platform.
That is, Microsoft should be
adapting to standards, not
chasing them.
Burden of Adaptation
Developers who are familiar with HTML and JavaScript development are well aware of the idiosyncrasies of these technologies, leading to longer development cycles and overall frustration. Using the adaptation strategy outlined above, developers would no longer be aware of these frustrations. They simply develop their applications using their native language, and the Adaptation Platform creates the Adaptation Packages for them.
Adaptation Pipelines are created, updated, and maintained by Microsoft or 3rd party technology organizations. The burden of adaptation then rests on these parties, and not the developer.
As a result of this, Microsoft is left doing what it does best: creating technologies, frameworks, and toolsets – thus clearing the way for ultimate creativity. Application developers are then left doing what they do best: creating applications.
Adapting .NET Framework to Any Platform: .NET Anywhere
The diagram below provides a very high-level conceptual view of how the strategy above would be implemented. This is not meant as an exhaustive, authoritative vision, but more of a suggestion to promote greater discussion within the client application development community going forward:
