Tag Archives: Silverlight

Silverlight 4 – Getting Started Plan

I have worked on a couple of small projects in Silverlight, but have never taken the opportunity to really understand the platform.  There is a new project at the office that will be using Silverlight to create interactive dashboards, so it is now time to dive into the deep end of the Silverlight pool. 

Here is my learning plan.

1. Watch Getting Started with Silverlight Development

2.
Silverlight QuickStart Tutorials
Start with “Beginning QuickStarts” tutorials 1 – 6 and then move on to “Working with Data QuickStarts” tutorials 1 – 3

3. Silverlight 4 Hands On Labs

I find that my best learning comes from reviewing good code.  I am looking for some sample source code that illustrates best practices and a quality Silverlight architecture.  If anyone knows of a good example please let me know.

My First Silverlight Application – Document Viewer

I spent some of my Labor Day weekend starting to learn Silverlight.  I began when BJ asked me to show him how to program a game.  We started programming a simple Space Invaders style game.  I am going to allow that project to progress at his pace, so I decided to take on a different project to experiment with, a document viewer.

I have been working on a project at work that requires a PDF be embedded in a page, but disallow printing, saving, or copying the document.  We discovered GhostScript’s ability to convert a PDF to a collection of PNG images.  It creates a single PNG file for each page in the PDF.   This allows only the pages that are viewed to be loaded and we don’t have to worry about applying any digital rights management (DRM toolkits are $$$) to the PDF.

The document viewer takes this collection of PNG’s and embeds them into the viewer, so that they can be rotated, zoomed in on, and browsed.

Check out the demo at http://www.aaronkjackson.com/dev/silverlight/DocumentViewer/.

NOTE: The zoom in feature can hide the button bar.  If that happens resize the browser window to a smaller size.  I am working on adding scroll bars to prevent this from happening.