Silverlight Hack

About Me

Welcome to Silverlighthack.com. This is a site where you can find many articles on Silverlight, Windows Phone 7 and .NET related technologies.

My name is Bart Czernicki. I have been working with computers since 1988 and have over 12 professional years in the IT field focusing on architecture, technology strategy and product management. I currently work as a Sr. Software Architect at a large software development company.

Below is the cover of my new book that shows how Silverlight's unique RIA features can be applied to create next-generation business intelligence (BI 2.0) applications.

Contact: bartczernicki@gmail.com

NONE of the comments or opinions expressed here should be considered ofmy past or current employer(s). The code provided is as-is without anyguarantees or warranties.

Series Update: In Part 2 of the series, I decided to look at the Silverlight 3 Development stack and Part 3 will look at the Silverlight 3 platform/OS stack (I added another part in the series.)

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. Note this article doesn't contain some random guesses. It is a higher level (architectural) overview of how Silverlight 3 could interact with the upcoming Microsoft development/technology stack. This article title also might be a little misleading when compared to Part 1 of the series as it tries to predict the development changes in Silverlight 3.

Silverlight 3 will obviously evolve as an individual technology and this next version will include a lot of changes that have not yet been made public. However, one of the huge differences between Silverlight and other RIAs is that Silverlight can benefit because of its ties to Microsoft's development, product and OS stack. This article looks at the Silverlight 3 development stack and its impact for the Silverlight developer.

As you can see from the chart, MY GUESS (This is not confirmed yet) is that the entire Silverlight 2 -> 3 stack will evolve accordingly with all the Microsoft development technologies. I cannot stress how important that graph is above. Silverlight 3 will not only get its own features, but as a first class Microsoft technology, it will benefit from the core technologies that make Silverlight what it is.

No other RIA even comes close to providing these value add benefits that the Microsoft Development Stack does.

Predictions of each stack item and educated guesses on improvements for Silverlight (These are my educated guesses):

.NET 4.0

Prediction: Silverlight 3 will run on .NET 4.0 (The rest of these obviously snowball on each other. .NET -> Languages -> Visual Studio -> Tools).

Prediction: Silverlight 3 automatically will get an update (even though it's a subset of the full .NET framework) with all of the new changes happening to the BCL.

The Parallel library is now part of .NET 4.0....PLEASE let that be a part of Silverlight 3 :) In 2009 when most workstations will be quad or six cores standard, what a huge advantage Silverlight would have if you could do abstracted parallel computing easily !??!

Prediction: F# for Silverlight will be HUGE. F#'s ability to create recursive/functional statistics will be an indispensable resource for the BLL on the Silverlight 3 client. With F# (math/functional background), we will have the ability to create very nice "lite" statistical/math/physics/game AI ON THE CLIENT rather than having to resort to services sending us the result.

There are several "hacks" already to get Silverlight 2 working with the F# add-on, so I don't think this is pretty easily going to happen. Bill Reiss has a good article about how you can do this already.

For example, for Business Intelligence applications, creating more complex statistical algorithms will become much easier with F#. Imagine being able to offload this processing in parallel on the client and not having to rely on high latency services. Now we are talking real-time BI and delivering the insight visually with Silverlight animations, charts, graphs, etc.

Prediction: F# is going to be the Python/Dynamic Languages language of choice for non-MS developers moving to Silverlight 3 (he same way C# was that first class language for Java/C++ developers).

Prediction: F# is all about creating immutable types for concurrent programming. It is a nice paradigm shift that will make creating complex business processes ready for parallel processing easier than using non-functional languages. Especially for Business Intelligence applications, F# can be a game changer in how quickly you can design financial/statistcal algorithms and apply them to data sets on the client (in parallel).

If you are reading and nay-saying this, then you have no concept of statistcal based programming and how hard that is do in C#. Isn't Silverlight too slow to do this? Your Excel runs on the client and, with the same processes, is able to do very powerful Excel spreadsheets, right? How do you think Microsoft will implement some of the statistical functions on their Office Web - Excel? Hint Hint ;) There is absolutely no reason why Silverlight 3 won't be able to come close to Excel's performance.

Visual Studio 2010 & Silverlight 3

Prediction (obvious): Silverlight 3 will be part of VS 2010.

VS 2008 was released before Silverlight 2, so the Silverlight 2 SDK/Tools is an add-on for VS 2008. Hopefully, VS 2010 changes this and makes Silverlight projects/templates a first class citizen in VS 2010 (no add-on required).

Prediction: VS 2010 & Silverlight have much closer ties with SDLCprocesses. The enhancements to Team Server, Unit Testing, Agile Processes, QA functional testing all should flow into the tool and Silverlight 3 should benefit from all of these changes.

Silverlight 2 of course has some of these frameworks. Unfortunately, they don't have native support in the VS Tools. I am hoping this changes in VS 2010.

Continuing the ball rolling....obviusly, it would make sense that the Silverlight 3 SDk/Tools are going to be made available for VS 2010.

Expression Blend 3 (Design 3?)

Prediction: Blend 3 becomes a FIRST class design client for Silverlight 3. I mentioned this already in Part 1 of the series as an announced item. However, one thing I do want to stress is that my source of the information mentioned Microsoft's big investment in Blend. This should bode well for a monster release in Blend 3, making it a first class tool for Silverlight 3 designers and developers.

Prediction: Blend 3 integrates WPF, Silverlight and Surface XAML better including other tools like Illustrator. If Silverlight 3 includes new controls, XAML enhancements, better integration with WPF, it is pretty safe to assume that Blend 3 will work with VS 2010 projects natively. I am not sure that Microsoft would create features for Silverlight 2 backwards compatibility (other than importing/exporting Silverlight 2 assets).

Silverlight for Mobile Devices

Prediction: Silverlight for Mobile Devices will be launched as part of Silverlight 3. In Part 1 of the series, I linked to a video from the PDC about Silverlight for mobile devices entitled: Microsoft Silverlight 2 for Mobile devices. In this video, you will note something interesting that it was being stated as Silverlight 2 would be the version for mobile devices.

In my opinion, this will change in favor of Silverlight 3. As most of you know, the PDC took place at the end of October 2008 (right around the release of Silverlight 2 RTW). I don't think Microsoft wanted to "muddy the waters" with introducing Silverlight 3 as they were heavily pitching Silverlight 2 as the next big thing.

We will probably have some emulator support for Silverlight 3 and VS 2010 and it will have its own set of guidelines.

Prediction: Silverlight for Mobile Devices will be launched on Windows Mobile (duh), Symbian AND Blackberry OS.

About the Blackberry OS: RIM is feeling the pressure from Apple's iPhone (I own one). Apple is stupidly locking down development (They just recently lifted the NDA) and won't let Flash on there (afraid of Flash becoming an EASIER programming platform??). RIM already includes Office Lite support (Excel, Word, Outlook, etc.) on their phones so they have a good relationship with MS. Silverlight on RIM based phones would be huge and further cement my belief that Silverlight is going to the leading business RIA.

Prediction: Silverlight as a mobile programming runtime not just web glitz. If RIM opens up to a Silverlight runtime on their phone, they'll catch up to Apple real quick. That's what bothers me about some of these executives that make these grandiose promises with no clue as how the real world operates. Do I want to learn ANOTHER platform to program for the Blackberry? Why does RIM want to get into the app development business? Open your platform up to Silverlight. Let fit clients on there. The amount of applications will EXPLODE as you are now making your platform available to millions of .NET developers.

Relevant Dates - March 2009 & Q3 2009

March 2009 - Silverlight 3 CTP

Visual Studio 2010 CTP has been released over a month ago; however, IT DOES NOT include any of the predictions I mentioned above. Note, it's also about to expire on 1/1/2009 and I don't think that Microsoft is about to update the VPC.

The next Visual Studio 2010 CTP has been slated for March 2009.

For those that have been following Silverlight development, March is the time Silverlight developers get "their" conference.

It makes sense for Silverlight 3 RTW to be released in Q3 2009. This would follow a similar timeframe [Silverlight 2 Beta 1 (March) -> Silverlight 2 RTW (October)] of Silverlight 2.

Some might argue that Silverlight 2 (Alpha 1.1) was released in March 2007. That is true; however, Microsoft had a lot more to do to staff up these projects and essentially start from scratch. I think that time was spent more on design/architecture rather than development and Silverlight 3 should have a much smaller release cycle.

March 2009: Around the Mixx 2009 conference, we should have a new Visual Studio 2010 CTP with Silverlight 3 compatibility and a go-live license (at least I hope). Q3 2009 should see the release of Silverlight 3. This would follow the same development timeframe Silverlight 2 took.

Summary

Hopefully in this article you learned about some of the possible changes that are coming to Silverlight 3 development. This no doubt will evolve Silverlight into a more mature platform that can take more advantage of advanced .NET framework features, enjoy further integration with ASP.NET/WCF/WF, leverage language enhacements (and new languages F#) and use the new Expression suite design tools.