Chris Anderson is the presenter at the next SilverlightShow webinar, taking place on Tuesday, September 7th, 8 am – 9 am PDT - Running Silverlight OOB and with Elevated Trust. Chris is a professional developer for over 10 years, an author of 2 books, consultant and frequent speaker at Australian-based events. In this interview we talk to Chris on what we should expect from his upcoming webinar, essential topics he will cover, and who this webinar is appropriate for.
Q. Chris - please briefly introduce yourself to SilverlightShow community
A. I’ve been a professional developer for over 10 years now, and even longer non-professionally. In my career I’ve built numerous business applications, using many different platforms and technologies. These include desktop applications (using Windows Forms and WPF), web applications (using ASP.NET), and mobile applications (with the .NET Compact Framework). I also used many other technologies in the pre .NET days, which I won’t mention J.
These days I run my own business (Peer Placements, in Sydney, Australia), and have recently completed a stint as an author, writing two books. The first book was Professional Visual Studio 2010 (as a co-author), and the second was Pro Business Applications with Silverlight 4. I’m now back to being a developer again.
Q. Why did you decide to deliver a webinar on the topic of Silverlight OOB and Elevated trust. How are these essential for the development of a line-of-business application with Silverlight?
A. The content I’ll be covering is essentially a subset of the topics discussed in chapter 14 of my Pro Business Applications with Silverlight 4 book. Although there has been a push towards browser-based applications, ultimately many users want an application that can be started from their start menu / desktop, and sit in their task bar, without being lost in amongst the myriad of browser tabs that they may have open. Even more importantly, Silverlight runs within a sandbox when running inside the browser, but by taking Silverlight applications outside the browser and requesting elevated trust permissions, we can escape this sandbox and interact with the host operating system. You can then read and write files directly to disk, pop up toast notifications, launch applications (via COM), interact with Office applications such as Word and Excel (also via COM), and much more. These are often features required by business applications, and can be implemented when the application is running outside the browser.
During the webcast, I’ll be walking through the process of taking a simple Silverlight pivot application, and turn it into an out of browser application. We will then implement OOB features such as checking for updates, toast notifications, direct file access, COM access, and custom chrome. In addition, we’ll look at determining the application’s installation status and current execution mode, and what other features elevated trust provides. Finally, we’ll look at signing your application and why it’s important to do so when the application required elevate trust permissions.
Q. Do you still miss some features related to OOB and Elevated Trust in Silverlight?
A. Out of browser support in Silverlight still has many limitations - after all Silverlight was designed as a sandboxed environment, but we are now looking beyond the sandbox. Features I’d love to have include:
- Being able to run with elevated trust inside the browser (after confirmation by the user, similar to that when attempting to use the Webcam).
- A local database engine - particularly useful when the application is being used offline.
- Running an OOB Silverlight application performs update checks within the application itself (requiring the application to be restarted to use the new version). I’d like to see support for a more click-once style of checking for updates, where the check is performed (and updates are downloaded) before the application is run.
- The ability to know where the application has been installed, so that other applications can interact with / load it.
- The ability to minimise the application to the system tray
- Support for window transparency
- The ability to launch an already installed Silverlight application from within the browser.
Q. Did Microsoft make a mistake when they released features that are not fully compatible between MAC and Windows? Isn’t this similar to the HTML and JavaScript situation where you write different code targeting the different browsers?
A. This is definitely a point of contention in the Silverlight community. When I first heard about COM support being added to Silverlight 4 I was somewhat shocked, for two reasons really. One, because it would result in Silverlight no longer being truly cross-platform. The other being that COM was a nightmare for every developer back in the 90s (including me), and I had truly hoped that I would rarely (preferably never) need to work with it again. That said, it does make sense that Microsoft chose to add COM support to Silverlight, add it does open up a lot of possibilities for Silverlight developers to interact with Windows and various Windows applications. COM is still pervasive throughout Windows. Having this ability to access COM objects enables us to interact with and automate the Office applications such as Word and Excel (very important for business applications), run executables using the Windows Script Host object, read and write files outside the user’s profile, access local hardware devices, communicate with local databases (such as a SQL Server database) via ADO, or even interact with your own custom COM components - only when running under Windows of course. Therefore, despite my initial shock at the addition of COM support to Silverlight, I have found it extremely useful. You simply need to be aware that your application will no longer be completely cross platform, and need to check for COM support and enable/disable the features that use it in your application accordingly.
There was talk of also including AppleScript support to Silverlight (to enable similar possibilities for Apple Mac users), but that never made it into Silverlight 4. Perhaps we’ll see that in Silverlight 5?
Q. You wrote one of the most popular series on Line-of-Business Applications on SilverlightShow. Is that what Silverlight is meant for mostly - LOB applications? Do you think it is good? Anything you still miss in Silverlight for building better LOB applications?
A. I think I was one of the first people to see the potential of Silverlight for LOB applications (back in the Silverlight 2 Beta days), or at least one of the first to write articles on the topic. Microsoft obviously saw this potential too because with Silverlight 3 they changed their primary focus from it being a media focused platform, and directed it heavily towards it also being a business application platform. The Navigation Framework, validation support, the DataForm control, and particularly RIA Services all combined towards making Silverlight a fantastic platform for business applications.
Silverlight 4 covered a lot of the omissions of Silverlight 3 (such as printing) generally required by business applications, smoothing off the rough edges, and making it a very capable platform for building business applications upon.
Now that Microsoft is using Silverlight as the platform for building Windows Phone 7 applications, and with new tools such as Visual Studio LightSwitch (currently in beta) - whose purpose is for building business applications, and generates them as Silverlight applications, demonstrates the emphasis Microsoft is placing on Silverlight as a platform, and the faith they have in it. In fact, I’d say that Silverlight is now the best Microsoft platform for building business applications (with RIA Services edging WPF out into second place). Silverlight is not an appropriate platform for every LOB application, and at times WPF would be more appropriate. However, its cross platform nature, easy deployment, and small runtime does make it ideal for many business applications (especially when used in conjunction with RIA Services).
Personally, I see Silverlight 4 as having reached a level of maturity where there are few limitations that you would encounter for a good percentage of business applications. That doesn’t mean that there isn’t room for improvement however. In the next version of Silverlight, I’d love to see support for vector-based printing (currently all print jobs are sent to the printer as raster documents), a Silverlight report viewer control would be nice, and I’d like better tooling support for the MVVM design pattern (to promote it as a best practice).
Q. Is there a specific target group that is recommended to attend this webcast?
A. This webcast will be perfect for those that have dabbled in Silverlight, those who have worked heavily with Silverlight 2 or 3 and want to see what possibilities Silverlight 4 can open up, or those who simply are interested in whether they should use Silverlight 4 for their next application. The majority of the webcast will consist of demos, but it will rarely get so technical that those without prior Silverlight experience can’t follow along.
Q. Do you recommend any specific online or offline resources that users should read to learn more on the topic you will discuss in your webinar?
A. My book, Pro Business Applications with Silverlight 4 of course J. You can buy it from Amazon here, or as a PDF e-book (without DRM) from the Apress website here. One lucky attendee of the webcast will win it as an e-book (for the best feedback).
Q. Any events you will be speaking at in the coming months? How may people get in touch with you?
A. I am a co-organiser of the Sydney Silverlight Designer and Developer Network, which has monthly meetings, and you will often hear me speaking there. My Twitter and blog details are below (you can contact me via the Contact form on my blog):
Twitter: @christhecoder
Blog: http://chrisa.wordpress.com/
Chris - thanks for the opportunity to introduce you to SilverlightShow community. We are looking forward to your webinar this Tuesday Sept 7th, 8 am - 9 am PDT (see your local time). Register for this webinar