For .NET developers Silverlight combines the familiar with novel, and sometimes contradictory aspects - all the more reason to consider a training course.
DevelopMentor's five-day Essential Silverlight 4 is for those who want to create Rich Internet Applications and for those who want to make WPF desktop applications into cross platform ones. And, of course, if you want to develop for Windows Phone 7 Silverlight is the obvious choice over XNA for "serious" applications. DevelopMentor introduced a course on Silverlight as soon as it came on the scene. Currently it covers Silverlight 4 but will be updated to Silverlight 5 during 2011.
Course author Dave Wheeler explained,
"Silverlight is fascinating. It allows developers with existing .NET experience to quickly move into RIA development, and potentially to mobile applications with Windows Phone 7. Yet on the other hand there are considerable learning challenges, ranging from understanding the security sandbox through to the M-V-VM presentation pattern.
Essential Silverlight has been refined over the last few years, as Silverlight itself has evolved, to ensure that students get the latest best practices as well as gain a really solid foundation. In fact, Silverlight has grown so much that we have twice as much material than we can teach in the classroom, which means that the attendees get a lot more than a mere five-day class."
The course starts by presenting an overview of Silverlight's capabilities and development tools with a discussion of how it compares to other rich web-enabling technologies such as AJAX and Flash. It then dives straight into creating a Silverlight application to show how a Silverlight application is structured, deployed and rendered within the browser.
Next comes and overview of four core aspects of Silverlight development: the use of eXtensible Application Markup Language (XAML); the code-beside programming model; the concept of the visual tree; and the use and declaration of dependency and attached properties.
Silverlight provides three categories of controls for building user interfaces: runtime, SDK, and toolkit. The course moves on to showing how the various controls are packaged, how to instantiate them in your application, how to handle events, and how to design complex user interfaces by arranging controls inside multiple nested panels. It also look at how to integrate 2-D vectors graphics into your UI and customize their appearance with brushes, effects, transforms, and plane projections. The final module on Day 1 looks at out-of-browser apps and the notion of "elevated trust"
Day 2 starts with a module on Navigation and the way in which a RIA is able to integrate into the Web. It shows how to work with the browser to provide a navigable user interface that fully supports bookmarking and the back/forward buttons and discusses the issues you need to address when "deep linking" into Silverlight content. In the next module it goes on to explain that keyboard and mouse handling is less capable than that of WPF; it has to cope with multiple browsers running on multiple operating systems and has to be more constrained due to the security restrictions of the plug-in – and of course it shows how to cope with these limitations. Next you learn how to create animations both declaratively and from code and with support from Expression Blend.
Expression Blend also figures in the next module in which you discover how to write reusable Behaviors, and to create and use custom Triggers and Actions to provide fine-grained support to the designers.
Day 3 takes you to the next level of Silverlight development. It opens with a module on data binding, which according to Dave Wheeler is
"the most important aspect of Silverlight development".
Here you learn how to bind data to UI elements; how to bind between UI elements to minimize your coding; how to implement the key interfaces that enable the UI to be updated automatically, such as INotifyPropertyChanged, and how to use data templates, value converters, fallback values and string conversion. Next in a module on Data Presentation you work with the various graphing controls in the Silverlight SDK and with the DataGrid and the DataForm. This is followed by a module that looks at the various techniques that are available in Silverlight for validating user input, such as throwing exceptions and reporting errors via various interface and events and the day concludes with a module on the Model-View-ViewModel pattern, how to structure your code to support testing and maintainability; how to work with ICommand; and how to support designers effectively.
By Day 4 you are in a position to learn how to create re-skinnable custom controls using Expression Blend, and use Visual State Manager to reduce code and maximize design flexibility. A module on Shell Integration explores ways to interact with the environment outside the Silverlight host and discusses the impacts of the security sandbox on these features. Then come modules on Widows Phone 7 and HTML integration.
On the final day a module on Networking looks at communicating external data sources, using WCF, Sockets or RESTful APIs. It also explores the role of WCF RIA Services in building larger RIA applications. Next comes a module on the Local Messaging API to allow multiple Silverlight applications on the same machine to communicate. Silverlight excels at supporting rich media, and the final module explores its built-in video capabilities to control and display A/V content within an application, using Microsoft Expression Encoder to create and transform A/V content to fit the limitations of the Web. This concludes a week in which the student will have learned to build Rich Internet Applications with Silverlight and be prepared to deliver online business applications, multimedia websites, and games to Windows, Mac OS, and Linux clients.
Most students feel that the course is very intensive and covers a lot of ground. However, they particularly enjoy the way that the instructors bring everything together and show how the pieces combine to make a whole application
Upcoming presentations of this course are in Boston, Los Angeles and London and if you can't get to one of these locations it can be delivered as an onsite course and in the US it is available as a Remote Access Class which allows for full participation in the lectures, demos and labs without having to travel.
Visit the Essential Silverlight 4 Training page on DevelopMentor's site for more info and to register
If you would like to be informed about new articles on I Programmer you can either follow us on Twitter, on Facebook, Digg or you can subscribe to our weekly newsletter.