Silverlight 3 - What we Know So Far & What We Can Predict (Part 3 of 4)
Silverlight 3 Platform Stack - Part 3 Part 1 - Silverlight 3 Announced Enhacements Part 2 - Silverlight 3 Development Stack Part 3 - Silverlight 3 Integration with the Microsoft OS and Platform Stack Part 4 - Silverlight 3 vs Flash and the iPhone
In Part 1 of this short series, I looked at what we know so far about Silverlight 3 from what has been announced by Microsoft. In Part 2 of this series, I take some educated guesses as to what and how Silverlight 3 will be released in relation to the development environment. In Part 3 of this series, I am going to take a look at the upcoming Silverlight 3 platform stack and how it will evolve to push Silverlight as THE leading RIA for business applications.
A little history/background about .NET in relation to Silverlight
For those not familiar with .NET or those who have not been programming in .NET until recently, this will be some good background information that will set the precedent for a lot of my platform predictions. .NET was formally released by Microsoft as a developer platform back in 2002. In those days, a lot of top gurus argued that .NET 1.x was not really adding any value to the development experience. The arguments were that it wasn't really revolutionary and a lot these concepts had been done before (and were being done better by other languages like Java). Some predicted that .NET wouldn't even be able to compete with Java and Microsoft was yet again copying rather than innovating.
A few years changes A LOT :) Java is way behind in language features compared with .NET and .NET now is everywhere in the Microsoft stack. How did this happen? What many naysayers failed to see was Microsoft is more than just a software company with a couple of products. They offer products that range from mobile phone apps to platforms that run the biggest companies in the world. This is the exact way that .NET CLR went from a simple developer language/framework to being the core runtime across the board at Microsoft (Yes, I know MS still uses C/C++ for OS/SQL, etc). Seemingly all new applications are written in .NET and many of the older C applications all have .NET level based APIs. What does this mean? This essentially means that if you want to extend/enhance/be more productive with the Microsoft platform, you will most likely be utilizing the .NET CLR. A lot more can be written about this, however this core concept of how Microsoft made .NET a huge success plays into on how I think Microsoft can make Silverlight technology the premier RIA technology.
Silverlight 2 Current Platform vs Silverlight 3 Possible Platform
As you can see, Silverlight 2 (released in October 2008) has a limited platform stack. As of today, SharePoint 2007 content can be extended with Silverlight 2. Furthermore, the Windows Azure SDK (in private beta) supports the Silverlight 2 environment. I added it in a slightly different color because it has not been formally disclosed whether Silverlight 2 or Silverlight 3 will be the fromal version for Azure. Note: For those that do not know, Windows Azure is the Microsoft Cloud OS announced at the PDC 2008. On the right-hand side, you see my predictions as to where Silverlight 3 will expand. I am going to go through each item and list my predictions as to how Silverlight can be used.
SharePoint & Web Parts
SharePoint is Microsoft's collaborative platform. The current version of the platform is SharePoint 2007 (which extends the free WSS 3.0 that comes with Windows Server OSes). It was announced SharePoint was the fastest Microsoft product to grow into $1 billion in revenue. Many businesses are installing SharePoint to place their internal documents, HR, financial/accounting, business intelligence, etc., systems into one consolidated portal. SharePoint allows for a rich programming model with WorkFlows, SharePoint Designer, web parts and other APIs. This allows developers to provide custom content that might not be available OOTB or via 3rd party solutions. One of the ways you can extend SharePoint is with web parts using the web part framework.
SharePoint is all about sharing data easily with a simple drag & drop (no programming) interface. Right now a lot of the data exposure objects are essentially derivatives of ASP.NET grids presented nicely with Ajax magic. For the most part, they work really well and are highly performant. However, they could definitely benefit from some Silverlight integration. For example, filtering/sorting/uploading documents can be brought down to the Silverlight client and improve the interactivity and performance.
Web Part Framework
The web part framework was introduced in ASP.NET 2.0. This allowed ASP.NET developers to introduce portal/modular functionality that started becoming more popular with Web 2.0. The web part framework was also introduced into SharePoint 2007 as well and the same API can be used to create web parts. The Web Part Framework allows you to create web parts for both SharePoint and/or native ASP.NET. You have an option to use the web part class from either the SharePoint framework or the ASP.NET framework. The nice thing about using the ASP.NET framework web part class is that it will work in both SharePoint and ASP.NET, while using the SharePoint class limits your web parts to only work in SharePoint. I prefer to use ASP.NET web part base classes as it gives you much more flexibility and the SharePoint web part classes only give minimal additional features.
Silverlight & SharePoint/Web Part Framework
The nice thing about web parts is that they can use a number of different technologies. They can use plain vanilla HTML code. They can use ASP.NET controls with postbacks. They can use a combination of Ajax capabilities. Obviously, they can be extended to us Silverlight as well. This is a real powerful extensibility, as you can write a Silverlight application/module with minimal design considerations for SharePoint. A web part wrapper can be written for the Silverlight web part that essentially consumes the XAP file and integrates with the web part framework. This can add capabilities such as personalization properties, consume SharePoint lists/libraries, web part connections, feature deployment, etc.
Silverlight & web part design
Now you can provide a very rich UI for your SharePoint data
This is very powerful extensibility of SharePoint to essentially add RIA. Of course, you could have done this Flash/Flex; however, you can write everything in one single .NET language, single environment and a consolidated development environment. The next version of SharePoint or Silverlight 3 will probably get formal support for SharePoint. It would be pretty cool if you could simply just point to a Silverlight XAP file that implements an interface for basic communication and everything just worked. Hopefully, in the near future we get this functionality. Furthermore, Silverlight web parts provide additional features like "low postback design" and can offload some of the processing on the client thereby improving performance.
Windows Azure is an OS from Microsoft announced recently at the PDC 2008. The unique thing about Azure is that it is a "cloud OS". This means all the services, data and all the backend "stuff" lives in Microsoft data centers. Windows Azure is compromised of several services that work together and make up the total platform. Currently, the Windows Azure platform is in beta and you can request an SDK to write Azure enabled applications.
Services that make up the Azure platform
Silverlight and Azure
Cloud computing is the new buzzword in the industry. This has been done by other vendors, even very well like Amazon's S3 service. Microsoft (like always it seems) is late to the game. However, Microsoft as a latecomer has to do things a little different. A few things that make Microsoft's venture into cloud computing unique is that several of these services that make up Azure are first class services from enterprise products (SQL Server, SharePoint, Dynamics CRM). Powering all of this is the .NET framework. However, one uniqe aspect is that Microsoft also owns UI technologies like ASP.NET, Silverlight, WPF, and Surface that can be used to display these cloud services. Silverlight's small footprint and being a web plug-in play a big part in it being a great choice as a UI.
Upcoming Live Mesh Applications can use vanilla Ajax or Silverlight Web Applications
Jonas Follesoe has a great article on creating a Silverlight application in the "cloud". Furthermore, this also moves the "fit client" (i.e., Adobe AIR) rumor from a probably to highly likely for Silverlight 3. I can't stress how much different this is from other cloud computing initiatives by the other big players. Microsoft has an entire UI technology that differentiates itself from simple data storage like Amazon and it has the power of mature platforms like SQL Server, SharePoint and Office running some of the service offerings.
"No current player in cloud computing has this combination of a mature development framework (.NET), desktop-like UI (Silverlight), mature services (SQL Server, SharePoint, Office) and data storage"
What is really nice about Microsoft's initiative is that going from an idea or business concept to going live on a fully scalable framework that can reach millions is really simple now. During web 1.0, a lot of money had to be invested in the web infrastructure and this is why startups that were global had to raise tens of millions of dollars to just start up. With web 2.0, hardware became cheaper and a lot of companies actually could afford to completely outsource all of their server maintenance to a host provider. A very good example of this was YouTube, who at the time of being bought by Google had approximately 300 servers on RackSpace. With Web 3.0/cloud computing, this is further abstracted as you are not hosting on "servers" from a development perspective. As a cloud developer, you are writing these services and they are materialized somewhere on the server but you don't really care about it. Not having to worry about OS/hardware intricacies directly obviously makes creating applications much faster.
SQL Server 2008 R2/2010
SQL Server 2008 was released last year and not many additions were made to the tools which are largely based on the tools rewritten for SQL Server 2005. For those that work with the full SQL Server stack, it is a lot more than just a place to store your data. SQL Server comes with rich Busines Intelligence, Reporting, Data Transformation capabilities, etc. A lot of competitors and non-database vendors have moved ahead of Microsoft in the end user tools area. Microsoft tools are largely geared towards the developer and this needs to change. Some of the examples we see that Microsoft is seeing the pressure in this regard is the new user friendly Report Builder in SQL Server 2008 or the new self-service Business Intelligence application that Microsoft is planning for the next version of SQL Server, codename Kiliminjaro/Gemini. I think Microsoft can add Silverlight in key areas of SQL Server and catch up or pass competitors in these areas.
Charts & Graphs (make them interactive with Silverlight 3)
You can make pretty charts in SQL Server 2008, but wouldn't it be cool if they were Silverlight based and highly interactive?
SQL Server 2008 currently allows you to create rich reports using Dundas Visualizations. These visualizations are nice but they are highly static (no animations or interactivity). Competing vendors like Panorama have added Flash charting capabilites to their end user reports which are animated, interactive, spacial, etc. This is an area where I see Silverlight being added to enhance products like Reporting Services, Report Builder or PerformancePoint Server. That would be a real powerful addition to the SQL Server stack.
RIA charts for your data
If you have done any kind of business intelligence development, dashboards are a great way to present a huge mountain of data in an easy-to-understand way. There are different types of dashboards with distinctions on their intended audience (i.e., executives) or their functionality (i.e., what-if scenarios). There are products by other vendors that can tie to SQL Server data and do this already. One great product is offered by Business Objects called XCelcius . This product allows executives or senior management to answer questions like, what happens to my margins if the cost of fuel goes up 20%? The person can get the answer immediately and not have to drill down or reference other reports or data sets. It is real powerful information. Evolving a product like this into Silverlight makes perfect sense.
What-If profitability analysis in Business Objects XCelcius (Click the picture to try the demo out)
You can write applications like this right now in Silverlight and tie it via services to SQL Server. However, this requires a significant development effort. It would be much easier if this were a simple drag and drop feature inside SQL Server Report Builder. Adding Silverlight 3 in key places to SQL Server can bring the data to life and make it a lot easier for end-users to consume, analyze and deliver insight.
XBOX 360 & Zune
The XBOX project is finally starting to pay off for Microsoft. While it is being outsold by the Wii, it is beating the Sony PS3 handily. The XBOX 360 has probably one of the best online experiences and the online arcade is great. It is the only major console that allows hobbyist developers to add their own games via the XNA Framework. The concept of Microsoft spreading .NET everywhere rears its head here. Recently the 3.0 version of the XNA framework allows developers to publish their games to the Zune as well. While it is nice that hobbyists can post their games on the XBOX arcade (after it is verified by the community) and make some money off of the game, they are still geared towards the young male audience.
Apple has perfected the micro/casual game devliery and micro payments on the iPhone
The iPhone market has really opened up the ability to deliver a new genre of games to the mobile market. These games are simple and they cost usually very little compared to large console alternatives. Apple has a huge opportunity here and is gearing up to take on Nintendo, Sony and Microsoft in the gaming market from a different angle, and there are some articles already creeping up about new GPUs and multi-core firmware which could add significant processing power to the iPhone. On the web you can see sites like http://www.miniclip.com or http://flashgames247.com/ that get millions of hits per year that target the casual games. If you have an iPhone or have visted these sites, these games are not really complex, offer any revolutionry AI or have breathtaking graphics. However, these games do provide one key feature and that is delivering quick entertainment on the spot. Furthermore, casual gaming has a much larger audience than your 12-28 year old male that can include families, older generations and - dare I say - women :)
In Part 1 of the series, I wrote about Silverlight 3 heading for mobile devices. Couple this with the Azure framework and you have a technology that can be used to compete with Apple and in the casual gaming market. Look at how popular games like Rock Band or other party games bring families and/or friends together. These types of casual games that can be delivered to the user via the XBOX brand have a huge potential. Silverlight 3 is gearing up to be faster via rendering, hardware acceleration and adding 3D support. Microsoft is one of the leaders in the gaming arena and with the Xbox brand name, it can expand its market into micro/casual games with Silverlight 3.
"Silverlight 3 as a potential gaming framework is a perfect alternative to the current Apple iPhone model that can reach audiences on the web, Xbox 360, Zune and mobile devices."
Note: In Part 4 of my series, I will look at how Microsoft shapes up competively against Adobe and Apple in this space.
Windows Mobile 7
Windows Mobile is one of the less successful product lines being offered by Microsoft. In terms of innovation and market share, it is far behind the leaders. Even when Microsoft is not a leader in the mass-market, it makes up for it in the corporate market but not for mobile devices. Blackberry is way further in the game. I made the jump as well. I moved from my Windows Mobile 6.x phone in favor of an iPhone recently and love it. Having said that, Windows Mobile 7 is promising to be multi-touch and feature a full browser and essentially compete with the iPhones and BlackBerries of the world.
Silverlight fits the mobile world real well. Anyone who has an iPhone has enjoyed the ease and power of the AppStore. For users, it's great. You have access to thousands of applications which are very reasonably priced (fall into the micro-payment category). However, for developers and app publishers, it's a whole different game. Apple only provides SDKs on the Mac platform. You have to program in their language/framework and they JUST recently lifted the NDA on being able to talk about iPhone programming....a big WTF :) Apple also vehemently opposes Flash to be installed on the iPhone. Many people wrongly assume it's a technology obstacle. It's more of a "owning everying on the iPhone" model. If Flash can be run on an iPhone and I come up with a stupid FlashLight app for $.99, Apple doesn't get its cut and you also bypass the "store firewall" called iTunes.
Some screens of a Windows Mobile 7 Theme (from screens that were leaked)
Silverlight on a Windows Mobile 7 platform can do a couple of big things: by providing an open development platform analogous to the AppStore and enabling many web apps to be run on a mobile phone. If Microsoft pursues this route, they can very easily gain a lot of users. That is one of the nice things currently about Windows Mobile. You can go out to a third party site and download an application and off you go. It does sacrifice in ease of use because of needing to install the application while being connected to your PC. Silverlight 3 being a web plug-in obviously changes all this. Furthermore, it was announced during the PDC 2008 that Silverlight Mobile will run off of the Silverlight desktop codebase.
"Silverlight 3 is a very attractive framework as you write the code once, and it works on mobile, desktop and fit client applications all at once."
In the near future with all of the XAML based frameworks (WPF, Silverlight, Microsoft Surface) integrated into a single XAML codebase will be a huge productivity boost. Imagine having to write one set of code for your application and you can automatically distribute it to the web, desktop, Azure cloud, mobile devices and multi-touch screens. That is a very powerful concept that Microsoft can potentially hold has as their ace card.
I saved the least interesting concept for last (least interesting at least to me). Boxed software is actually facing a huge crossroads now. Software like Office (Word, PowerPoint, etc.) and Photo Suite (Adobe PhotoShop) have traditionally grown over the years by throwing in more and more features. Over the last few years, people have been asking themselves, what am I paying for when I only use 20 features? For me, a couple of real examples actually re-enforced this point. I was on a website a while ago where you selected the features you need from MS Word. Over 70% of these features I never heard of or knew what they did. After you were done selecting, the website told you what version of Office you could get by with. After the quiz, the site recommended Office 97/2000. As you can see, the recent versions are simply feature-gloat and don't really add anything to the normal users. Another example is from a study of people who were self-described "Office Word Gurus". These people were from publishing backgrounds, etc. The study found even self-described power users only really used about 25 core features of the entire product. This obviously goes on to show that these traditional feature-gloat software needed to become simpler and cheaper to use if they want to remain relevant with casual/infrequent users.
Google has been quick to jump on this potential and have released Google Docs, a marketed free alternative to Microsoft Office. I personally think it's neat and simple to create documents pretty fast and access them from anywhere. It's not enough to replace a Word processor for me (I use OpenOffice 3.0 by the way). Adobe has done the same has placed some of the core features on the web of the graphing suite. Microsoft is late to the game (as always). However, they are going to roll with "Office Web" soon. This is going to be a web version of the Office Suite and live in the Azure Cloud utilizing a lot of the Office Services in Microsoft data centers. What can potentially make the Office Web product a lot nicer is the UI technology behind it. Having a Silverlight based UI is simply a lot better than just a HTML/Ajax UI. This is where I think Silverlight 3 can be used to enhance the product. Furthermore, it can also spur further adoption of the Silverlight framework. Microsoft has made the right decision in not REQUIRING Silverlight for Office Web. However, Silverlight will enable some additional content and improve things like rendering. Note: Office Web is not out yet formally and neither is Silverlight 3. This is why I am guessing this will be based on Silverlight 3 rather than Silverlight 2.
Office Web (Word) shown at the PDC 2008
As you can see, Silverlight 3 has the potential to spread throughout the Microsoft platform like a virus -- just like .NET started out with a wimper back in 2002 and now it's in every single API that Microsoft releases. I am willing to bet that Microsoft is already implementing a lot of these ideas and using the power of Silverlight as a web/cloud/mobile/desktop UI to enhance the funtionality and competitiveness of their products. Microsoft stands uniquely positioned to take advantage of Silverlight because of their deep platform of products. While Silverlight 1 and 2 were simply playing catchup to Flash/Flex, Silverlight 3 will be different. The upcoming spread of Silverlight version 3 and beyond across Microsoft products will become an important piece not only to the users but to developers as well who will be able to take advantage of the numerous features the framework will provide.
Note: In Part 4 of the series, I will take a look at what this means for Silverlight vs Flash/iPhone.