Rick Kierner posted on August 9, 2008 19:26

This weekend I have been attending CodeStock.  It is a wonderful, energizing, addicting experience.  The day started off with a smooth presentation by Jeff Prosise.  Jeff did a pretty good presentation.  It was certainly biased and full of MS-related Sale-sy feeling but was also very full of useful information about Silverlight and new ideas with UI UX design.

Development strategies have changed.  For years, we have been developing software on the web and trying to make the web do things that it wasn't built to do.  We've tried to write enterprise software in JavaScript.  This just isn't fair to JavaScript.  Enter Silverlight.  Whalla, applications that run like desktop apps but run on the web.  This could be the revolution that software development has been waiting for since the MFC revolution of the early/mid 90's.  We finally have a way to build real user-friendly applications. 

Silverlilght > (HTML + JavaScript + AJAX)

AJAX is huge.  Silverlight is Huge-er.  It's the new hotness.  AJAX is old and busted.  Obviously AJAX will continue to have its place in the world.  I'm not starting a fight here but instead just using exaggeration for effect.  The problems that AJAX attempts to solve, Silverlight completely mitigates.  These include consistency between browsers and platforms.  The downside is that browsers will have to download a plug-in.  Supposedly though, MS is going to work very hard to get the plug-ins as part of the browser installs.

UX == User Experience.  UI is old and busted (the term not the idea).  It's not about the interface, it's about the entire experience. 

How does Silverlight work?  It's built on a subset of XAML.  According to Jeff, "XAML is the language of the future".  Apparently, HTML is the old and busted.

While you can do so much in XAML, you have the opportunity to build full blown applications with C#.  This is done by leveraging the CORE CLR. 

In a Demo, Jeff presented how to create a VERY simple SL application. Application is used loosely here because it was a packman ghost that spun.  But it was in fact quick.

After installing the Silverlight Add-in (Beta) for VS 2008, you will have the new Silverlight project types.  Silverlight and XAML use elements like Canvas which exist on a Grid.  Within a Canvas, you can declare elements that form the visual elements that you are interested in presenting.  You can build vector based graphical interfaces experiences for users.  Very polished looking applications can be designed/developed quickly.  In the XAML, you have full Intellisense support.  That is awesome.

Movements/Animations are accomplished with single lines of code.  After you build elements within XAML, another XAML element can move the original element across the screen (or whatever motion you like)

In addition to the XAML (layout) for Silverlight applications, you get to use real C# code.  Each XAML file will have a code behind similar to the way that an ASP.Net application has a code behind.  Additionally, the XAML forms a DOM that can be walked/navigated by the code.

The productivity that can be accomplished for specific pieces of functionality are truly amazing.  Imagine viewing a product on Wal-mart's site.  What if you could see the backside of a t-shirt just by dragging your mouse icon around the picture of the t-shirt.  In AJAX, this would have been fairly difficult if possible at all.  In SilverLight, it's a relatively simple thing to accomplish.

If you're interested viewing some samples and examples, check out Jeff's site: www.wintellect.com/webdemos.aspx

Throughout the presentation there were very few comparisons between SilverLight and Flash.  It is important to know that it would be very easy to consider the two in separate leagues.  Flash has not really proven to be an enterprise-able development platform.  It is certainly a friend to the designer but arguably, SilverLight is too (with V2).  It will be interesting to see what comes between the two platforms.

Silverlight runs on Windows Clients, Mac Clients and soon Linux clients.  It runs in IE, Firefox, Safari, and a few other browsers.

HD Video can be streamed through Silverlight.  Flash can't...yet.

An important thing to remember is that Silverlight is not just for video/audio hosting; Silverlight is a platform.  You can host video...well.  but you can also write entire applications.  Hosting video are not the only thing you can do with silverlight

Potentially the greatest thing that Silverlight is trying to do is develop an actual relationship between designers and developers.  With Silverlight uses XAML to represent UX.  Developers use C# to implement functionality.  For the first time really, enterprise developers and designers can work in a the same structured environment.  The same project that is opened by VS 2008 can be opened by Expression Blend. 

XAML can be written by hand in whatever text editor (VS 2008) you want.  Additionally, Expression Blend exists as development environment that allows designers to work in a comfortable environment.  They can work in the same project/solution as the developer and the files (since they are related) are kept in sync.  A beautiful marriage can exist.  (Enter wedding bells?)

The beauty of having he CORE CLR is that you have a rich environment to work in.  Dictionary<T,T>...you've got that; Threading, you've got that; Networking, you've got that

What are the differences between CORE CLR and the Full CLR?

  • No COM interop
  • CAS (Code Access Security) replaced with transparency model

You do have:

MSCorLib, System.Windows, System.Windows.Browser, System, System.Xml, & System.Core, and extended base class library.  By adding a reference to one of the "extended base class library" you can provide additional functionality.  Note: the assemblies are cached and therefore only downloaded when absolutely necessary.

This may throw a flag because there is some System.IO flag.  Jeff has assured us that MS is working OT to make sure that file interop is extremely limited.  A malicious SilverLight application's existence would pretty much ruin the MS credibility to web developers so I tend to believe that.  You will have the ability to use the OpenFile Dialog.  If the user wants to give you the application access to open a file, then you have access to read that file.

Multi-Threading: Silverlight supports an unlimited number of threads.  That's right: multi-threaded browser based applications.  Flash: Nope (yet), JavaScript: Nope.

Silverlight2 offers Rich Networking.  SOAP/XML, HTTP Services, Sockets, and yes, cross-domain access.

One of the core components of the networking stack is the HTTPWeRequest class.  You can use it to make Web Service calls.  This is a way to make asynchronous (only asynchronous) calls to web resources.

In summary, I'm sold on SilverLight.  I am personally going to push for it at my future clients.  First I'll use it in small doses but I think the interface offers a great user experience, a professional developer experience.  I definitely like it as a platform and it's support of a known, trusted platform.


Posted in:   Tags: ,

Comments

Comments are closed
Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2010 Rick.Brain.Flush()