Silverlight Hack

Silverlight & related .NET technologies

About Me

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 tools

Buy the book on Amazon

Contact: bartczernicki@gmail.com

View Bart Czernicki's profile on LinkedIn

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

Calendar

<<  March 2010  >>
MoTuWeThFrSaSu
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234

View posts in large calendar

RecentComments

Comment RSS

Silverlight 3 - Where is Silverlight Mobile?

Update 2/18/2010: Silverlight Mobile is coming in beta form during the MIX 2010 conference in March 2010.  This will include a Silverlight SDK for the new Windows Phone 7 platform.  Look for Silverlight mobile to be announced for Symbian, BlackBerry and Droid in the near future as well.

This article was written March 2009...what is funny is how I was right that Silverlight mobile would be around the Visual Studio 2010 CTP/RTM.  Go me :)

During MIX 2009, Microsoft announced many new features that will be coming as part of the Silverlight 3 framework.   One feature that was suprisingly missing was Silverlight support for mobile devices.  Not only was this surprising, but it was really disappointing as I was really sure that this feature would be released as part of Silverlight 3.

Why the surprise?

Did you know that mobile support for Silverlight was announced a while ago?  Do you know when?  End of 2008?  Beginning of 2008?  Try the beginning of 2007!  Silverlight support for mobile devices was shown publicly during the MIX 2007 conference when Silverlight Alpha 1.1 was announced.  Over two years ago we had a demo of Silverlight on a mobile device, yet we still don't have a public beta or release of the product (Note: There are private demos of this out there).

"Microsoft probably just shifted strategies and you are making a big deal about something two years ago, right?"

Actually NO.  At MIX 2008, Amit Chopra (the program manager for Silverlight mobile) during his Mobile Devices and Microsoft Silverlight presentation showed off Silvelight on the mobile.  So one year later Microsoft reported progress on the Silverlight mobile platform.  Furthermore, they stated that they would also be releasing Silverlight 1.0 for Mobile shortly after the conference for Windows Mobile 6.x.  (Check out the video linked above for the false promises).

Some real basic demos of Silverlight mobile at MIX 2008 (Yeah, it was shown that dark.)

 

Well, has there been any more announced from Microsoft relating to Silverlight mobile?  Believe it or not, again at the PDC 2008 conference (October 2008), Amit Chopra during his talk Silverlight 2 for Mobile showed Silverlight 2 running on a mobile emulator and mobile device.  Furthermore, we were also told that Silverlight Mobile would NOT be like Flash Lite.  You would get about 99% of the SDK on the web and mobile in one shot (Note: Things like video brushes would not be supported on SL mobile).  Sounded really promising, right?

Silverlight 2 Mobile Environment.  Silverlight 2 debugging on a Mobile emulator.  Too bad it never was made came public.

 

Fast forward to MIX 2009.  Surprisingly we were showed nothing about Silverlight 2 or 3 on a mobile device.  There was some chatter on Twitter with someone who talked to Amit Chopra and he stated that Silverlight mobile is about a year away!  That was apparently true since there is nothing in the Silverlight 3 SDK related to mobile devices. 

It is not like Microsoft couldn't accomplish Silverlight on a mobile in two years.  Look what has happened to the evolution of Silverlight in two years.  From March 2007 to March 2009, we have gone from Silverlight 1.1 Alpha -> Silverlight 2 Beta 1 -> Silverlight 2 Beta 2 -> Silverlight 2 RC -> Silverlight 2 RTW -> Silverlight 3 Beta 1.  Two years is an eternity for an immature platform like Silverlight.

"The fact that Silverlight for mobile has been announced two years ago and we don't have a public beta is surprising.  But what is more surprising is that Silverlight mobile is over a year away!"

 

What happened?

 

It's obvious that Microsoft has hit some snags with Silverlight mobile.  I don't know the exact details but it looks like performance had a big part of it.  Furthermore, Silverlight did not support the features that next generation mobile devices currently support.  For example, the iPhone has 3D transitions, multi-touch support, clearer text.  Silverlight obviously needed to catch up in order to be competitive when it was released.  Microsoft decided to add the features into the core framework first and then leverage them in the Silverlight mobile framework.  A lot of people on forums are asking why Silverlight went with some features like 3D support, multi-touch, clear fonts, etc., instead of printing.  As you can see, these features make a little more sense now.

The second part of the story is that Silverlight mobile needs to fit into Microsoft's higher mobile strategy.  Microsoft has announced in pieces its Windows Mobile 7 strategy.  I think it is essentially going to be a Microsoft version of the iPhone with a major twist: the Silverlight App Store and Silverlight will be powering a lot of the extensions.  More on that in another post.

 

Has Microsoft given up on Silverlight mobile?

Obviousy, the answer to that is no.  Microsoft wants to get Silverlight for mobile devices right.  I think it will power the Windows Mobile 7 strategy and it needs to be "as good" as Apple's iPhone/iPod.  Microsoft can't afford another Zune vs. iPod debacle.  If Silverlight is done right, it could be really powerful and blow Apple's framework away.  I will take .NET over Apple's Objective-C any day.  Furthermore, Silverlight allows you to target mobile, web and the desktop all at the same time.  The iPhone framework (as of now) only supports the mobile platform.   As you can see, Silverlight mobile is key to the strategy at Microsoft.

When will we see Silverlight 3 mobile?

The best estimate we heard was a tweet from MIX (I heard from someone who talked to Amit Chopra) that Silverlight mobile is about a year away.  This makes Silverlight mobile being released in line with the Windows 7 mobile platform.  I am hoping we see a beta/CTP around the Visual Studio 2010 release.

kick it on DotNetKicks.com
Posted: Mar 29 2009, 12:13 by Bart Czernicki | Comments (21) RSS comment feed |
  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Filed under: Mobile | Silverlight 3
Tags:
Social Bookmarks: E-mail | Kick it! | DZone it! | del.icio.us

PDC 2008 - Silverlight 2 Wrap-Up

PDC (Professional Developers Conference) 2008 is over and there was a lot of information released over the course of the 4 days.  You probably have heard some of it if not all of it.  I wanted to write a post to summarize the information pertaining to Silverlight either directly or not directly that was released last week.  Over the course of the week, Silverlight developers were bombarded with information that was coming out and this post's goal is to help developers get a handle on all of the information.  Here is the summary of what has been released during the week of the PDC 2008:

  • Silverlight Tools for Visual Studio 2008 SP1 
  • Silverlight Control Toolkit
  • Expression Encoder SP1
  • PDC Silverlight Videos (directly related)
  • PDC Silverlight Videos (indirectly related)
  • Silverlight 2 for Mobile Devices
  • WCF REST Starter Kit
  • Silverlight and SEO
Silverlight Tools for Visual Studio 2008 SP1

Silverlight Tools for Visual Studio 2008 SP1 were released over 3 weeks ago.  However, for those people who are detailed oriented, this release was labeled as RC1.  I posted a question on this on the forum the day this was released.  Apparently, this was NOT the final release of the tools.  On 10/30/2008 Microsoft released a new build of the Silverlight Tools.  I don't think anything has changed, but regardless, you will want to update your tools to this new build.  The new build of the tools can be downloaded here: http://www.microsoft.com/downloads/details.aspx?FamilyId=c22d6a7b-546f-4407-8ef6-d60c8ee221ed&displaylang=en

Silverlight Control ToolKit

The Silverlight Contol Toolkit was announced at the PDC 2008.  It has a bunch of great controls, themes and charting cababilities.  The big news is that the toolkit is open sourced and it you can extend it or build your own controls.  Not only is it a great way to enhance your current Silverlight applications, but it is also a great way to learn about Silverlight control development and architecture.  Shawn Burke's team has also included a bunch of unit tests using the Silverlight Framework so you can learn how to implement some TDD with Silverlight.  You can download the toolkit here: http://www.codeplex.com/Silverlight

Expression Encoder SP1

Expression Encoder SP1 has been released.  I like the approach Microsoft took by adding service packs to both Blend and Encoder rather than forcing people to upgrade.  Therefore, people who have invested in version 2 are getting their money's worth.  SP1 of Encoder allows you to create custom Silverlight 2 video player skins.  It also includes H.264/AAC support.  The service pack is available here: http://www.microsoft.com/expression/try-it/default.aspx?filter=servicepacks (Note: Expression Encoder also has an Express version which will work after the trial expires allowing you to do some basic things.)

PDC 2008 Silverlight Related Videos Online

If you weren't at the PDC, Microsot published the videos from the 4 days to the web.  You can watch the PDC 2008 Videos online here: https://sessions.microsoftpdc.com/timeline.aspx.  Here are the videos that are either directly or indicrectly related to Silveright development and I have some notes on the ones I watched.

If you are an architect, development manager, etc.,  I highly recommend watching some of these videos and then getting your team together for a lunch or a meeting and watching this together.  I find this spurs developers thinking together about the current and future technology earlier.

PDC Silverlight videos (directly related to Silverlight)

PDC Silverlight Videos (indirectly related)

Silverlight cannot consume data directly from objects or databases located on servers (even if it is the same server Silverlight is hosted on).  Silverlight is all about consuming data from services.  These videos are an absolute MUST to watch if you are a Silverlight developer and consume data from services.

  • WCF: Developing RESTful Services: http://channel9.msdn.com/pdc2008/TL35/ 
    • Great introduction on developing WCF services that are based on REST.  Towards the end of the video there is a great example of consuming these services via a Silverlight client. Unless you are a REST expert, you will gain a lot of information from this video.
  • Developing Applications using Data Services: http://channel9.msdn.com/pdc2008/TL07/
    • Excellent video that deals with ADO.NET Data Services development and the Entity Framework.  This video shows some of the cool interceptors for security and enhancing services that exist in ADO.NET Data Services.  If you are building a simple Silverlight client that needs, call batching, smart data and/or security concurrency management,  ADO.NET Data Services provide a lot of great features here.
Silverlight 2 For Mobile Devices

Microsoft is porting Silverlight to mobile devices.  This is a really welcome feature.  Many users who have an iPhone know that Apple is currently "blocking" the availability of Flash to mobile devices.  This is where Silverlight has a potential advantage and put a dent in the Flash market share by targeting mobile devices.  Most of this information is coming from this video here from the PDC: http://channel9.msdn.com/pdc2008/PC10/

Here are some of the highlights from the PDC:

  • By 2010 statistics show that there will be about 4 billion mobile phones in the planet.  There is a huge opportunity here!  So how do you write applications that are rich to thousands of users?  Silverlight :)
  • Silverlight 2 (That's right; the same Silverlight 2 on desktops) has been announced for the mobile space.
  • Plublic CTP will be available in 2009 (Q1).  My guess is that they will release this at the same time as MIX 2009.
  • The really cool part is that the SL 2 on mobile requires NO CODE changes to work on a mobile device where Silverlight is installed!!  That is really nice and very powerful and one code works on both the desktop and mobile devices. 
    • The Baby Smash demo really drives this point home further.  So not only can you share code between WPF and Silverlight 2, you can share code between WPF, Silverlight 2 and Silverlight 2 Mobile!  That is impressive; three platforms with one codebase.
WCF REST Starter Kit

One of the ways that Silverlight can consume data is through RESTful services.  WCF was part of the .NET 3.0 framework back in 2006.  In 2006 REST services were just starting to get traction as many Web 2.0 companies used this design as a preferred method for their service APIs.  WCF .NET 3.5 has added some features for REST services.   However, there was still a lot of plumbing code in order to write proper RESTful services in .NET 3.5.  The MySpace API is a great example of what can be done with WCF and REST on a very large implementation.

In order to make writing some of the WCF REST services easier, Microsoft released the WCF REST Starter Kit during the PDC. 

The WCF Starter Kit makes building RESTful services a lot easier.  It also shows the impressive architecture of WCF.  It can be enhanced with using attributes and interceptors to build a REST architecture for services.

Silverlight and SEO

Several months ago Google announced that it can now crawl Flash-based applications.  This is pretty important because now Flash-based content is searchable and this is critical to any revenue model that is based on high-page ranks on Google (sales, ads, etc).  Silverlight currently cannot be crawled by Google (maybe in the future).  However, there are couple things you can do right now to make sure your Silverlight application gets crawled by Google:

  • Ensure that the page hosting your Silverlight content has proper meta tags and place the SEO there.
  • You can also place a page for a "deprecated" client.  Therefore, if you receive a hit from a user that doesn't have Silverlight, you can bring them to an HTML page rather than the full Silverlight client.  This way when the Google robot tries to crawl your site, it will crawl it based on the HTML page.

This information is really important for developers that are jumping into RIA.  Most architects are ready to jump right into the technologies and try to solve problems with RIA.  However, things like SEO sometimes might fall through the cracks and might not be acceptable to a client. Check out this post for more information on Silverlight SEO Optimization: http://nerddawg.blogspot.com/2008/10/search-engine-optimization-for.html

 

kick it on DotNetKicks.com
Posted: Oct 29 2008, 13:09 by Bart Czernicki | Comments (7) RSS comment feed |
  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Filed under: .net | Blend | Mobile | Silverlight | WCF
Tags:
Social Bookmarks: E-mail | Kick it! | DZone it! | del.icio.us

Silverlight 2 for Mobile - Why you should start using a MVC pattern

Silverlight 2 for Mobiles was announced at the PDC.  I wasn't there, but I read about it on Chris Hayuk's blog here.  The real cool part of the announcement is what they announced that there will be no changes required to your code.  So, this is not some Silverlight-type Compact Framework step child subset of .NET.  To quote Chris exactly:

"YOU DO NOT HAVE TO DO ANYTHING

TO MAKE YOUR SILVERLIGHT APPLICATION TO MAKE IT WORK ON THE MOBILE,

NO RECOMPILING, NOTHING."

That is a pretty cool goal if Microsoft achieves this kind of transparency with the Silverlight 2 plug-in on mobile handhelds.  However, to think that your 1280x1024 site with huge graphics and animations is going to automatically scale properly is ludacris.  However, this is what software design/architecture patterns were made for.

You have problaby heard of the ASP.NET MVC Beta out there that has all the no postback and no viestate fluff etc.  However, the MVC pattern at its core seperates the business logic from the UI.  For example, in your web form you have a button and then you write a click handler to print "Hello".  In ASP.NET this would be handled all in your codebehind cs file.  With the MVC pattern changes this where the user click is handled by the controller and then sent to the model.  I am not going to go over MVC in any kind of detail.  However, the main thing to understand is that the UI code is seperated from the business logic properly and other UIs can simply be plugged in with a different View component.  This lends itself very nicely to the Silverlight MVC pattern.  Imagine writing an application in Silvrerlight 2 and simply swapping out the View for Silverlight 2 Mobile and the entire application just works.  No code changes just that inside a regular browser you will load a normal View object and for Silverlight 2 Mobile you will use your Mobile View.  This mobile view might be: simpler in scale, use a simpler/clearer theme, use less animations in order to fit nicely inside the smaller resolution screens.  Depending on how your app is designed this might be all enclosed inside your XAML.

 

I had my "oh that makes sense now" moment with MVC several months ago, after seeing an example similar to this.  Hopefully Silverlight developers can see that using a pattern like MVC (or MVP etc) is really powerful and not just some loosely thrown around "best practice".  Furthermore, hopefully this example with Silverlight 2 Mobile helped.  If Microsoft achieves its goal of being able to have one single runtime for the web and mobile; investing in the MVC pattern can potentially save you a ton of work in the future if you are thinking about targeting the mobile market.

Posted: Oct 28 2008, 19:37 by Bart Czernicki | Comments (4) RSS comment feed |
  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Filed under: Silverlight | Mobile
Tags:
Social Bookmarks: E-mail | Kick it! | DZone it! | del.icio.us