When building Silverlight Business Applications you may find at first that it can be cumbersome getting data to and from the client tier as well as giving the client access to business logic without making many roundtrips to a server.
There a couple of options to help simplify building business applications with Silverlight. The first is WCF RIA Services which is built into the platform, and there are several Silverlight Business Application Frameworks that are emerging.
WCF RIA Services
This is part of the ASP.NET/Silverlight platform provided by Microsoft. RIA Services simplifies the task of getting objects to the client. You will be able to build a model, add business validation, etc. You can then work with your data as objects on both the client and server.
For more information visit: http://www.silverlight.net/getstarted/riaservices/
CSLA.NET is an open source business object framework for .NET. CSLA.NET Light is the Silverlight version that allows business objects to be reused across tiers. The www.lohtka.net website describes CSLA.NET as follows:
“CSLA .NET for Silverlight is a subset of CSLA .NET targeted at the Silverlight platform. CSLA .NET for Silverlight offers nearly all the benefits of CSLA .NET on Silverlight, including data binding, validation, business rules, authorization, n-level undo and persistence.
The result is that CSLA .NET for Silverlight enables the creation of a rich object-oriented business layer running on the Silverlight client, that can transparently communicate with CSLA .NET objects running on the web and application servers.”
Using CSLA.NET you can choose any technology for your data access layer ADO.NET, nHibernate, Entity Framework, etc. CSLA.NET does not automate the genration of data access code so you will still have some manual coding to do to fill business objects from your datasource. CSLA.NET is free and there are online forums, however, to get started you may need to purchase some of the training videos to understand how it works.
To download CSLA.NET go to http://www.lhotka.net/cslalight/Default.aspx.
Ideablade DevForce for Silverlight
Ideablade DevForce for Silverlight is a product that helps build Silverlight applications quickly. It provides n-Tier RIA services, a business object model that integrates with Silverlight and Silverlight validation features. You can also query business objects from Silverlight easily using LINQ queries. DevForce can help automate the creation of the business and data layers of your application.
For more information on Ideablade DevForce for Silverlight visit http://www.ideablade.com/DevForceSilverlight/.
Aptify RAD is a product I’ve only stumbled upon very recently. From the descriptions on the aptify website this tool appears to help generate data access code and UI code that will render the same in Windows and Silverlight. This tool is primarily geared toward rapid application development providing tools to automate code generation of data, business processes, and UI code.
For more details see the Aptify website: http://www.aptifyrad.com/what-is-Aptify-RAD/RAD-education-center/Develop.aspx
Please feel free to leave comments regarding any of these technologies or if you know of other frameworks for building business apps in Silverlight let me know. I’d love to continue to build this list to share with the community.
For this example, I am using Visual Studio 2010 and Silverlight 4.
Start by creating a new Silverlight 4 application called OutOfBrowserApp. Update MainPage.xaml with the following XAML.
Right click on the OutOfBrowserApp Silverlight project and select Properties. Check the check box that is labeled “Enable running application out of the browser”.
If you click the out of browser settings button, you can configure the Window title, Window size, Window style, Window location, short cut icons, and short cut information. Here is what the settings dialog should look like:
After changing the settings click ok.
Save the project and launch in a browser. Right click in the application and click “Install My Out of browser application onto this computer”.
A confirmation box will be show giving you the option to save a short cut to the app in the Start Menu or the Desktop.
Once you click ok, the application will re-launch out of browser. You can uninstall the application by simply right clicking anywhere in the application window and selecting “Remove Application…”