Microsoft Corporation – April 2010
Abstract: Silverlight has a wealth of features directly applicable for developers building business applications. At the same time, the enhanced tooling provided by Microsoft Visual Studio® and Microsoft Expression Blend® takes much of the pain out of building business applications due to the qualityof the design-time experience. This paper describes how to leverage Silverlight (and the associated tooling) to build business applications. The paper presents an overview of the rationale, architectural approaches, patterns, and toolkits to consider when building business applications with Silverlight.
What Is a Business Application? 3
Why Consider Silverlight forBuilding Business Applications? 4
Architectural Considerations 5
HTML / ASP.NET / PHP Application Architecture 5
Rich Internet Application Architecture 6
WCF RIA Services 6
Displaying Data on the Client 8
Handling Large Amounts of Data 9
Capturing Data on the Client 9
Validating User Input 10
Validation Attributes 10
Shared Custom Validation Logic 10
Microsoft Extensibility Framework(MEF) 11
Security Considerations 12
Role Checking 12
Accessing Local Resources 14
Dependency Injection 17
PRISM (Composite Application Guidance for WPF and Silverlight) 18
Additional Resources 20
Silverlight Resources 20
RIA Services Resources 20
PRISM Resources 20
MEF Resources 20
Printing Resources 20
Legal Notice 21Introduction
Silverlight has rapidly evolved since its original release in 2007. The initial emphasis for Silverlight was on providing rich media experiences, enabling designers and developers to add rich degrees of interactivity, media and animation to their Web sites. Silverlight 3 extended the capabilities of the platform, adding many new features essential for business application development.The rich tool support provided by Visual Studio and Expression Blend also helps you to speed up your business application development and lower the cost of development. Silverlight 4, the current version, adds even more features making Silverlight a compelling choice of technology for building business applications.
What Is a Business Application?
So what do we mean by the term “businessapplication”? A business application has a distinct purpose or goal, and generally helps a company to save money or time, or perhaps helps them to improve customer satisfaction. Common examples might include CRM applications, time-tracking and expense claim applications, e-commerce and e-tail experiences, purchase request applications, and HR employee management systems. This style of application has anumber of common characteristics.
* Are data-driven. Data is all-important, and the application needs to be able to query, shape, and display data in different ways. The application also needs to be able to take input from the user via form fields, validate it, and then save and update it appropriately.
* Require robust data validation. To ensure the best userexperience, validation of input data needs to occur on the client with immediate feedback for the user. For added security, the validation must also be provided on the server.
* Need to be secure. The data displayed by the application typically needs to vary depending on who is accessing the application. Authentication (in other words, knowing who is accessing the application) is essential. Also,the functionality offered by the application often needs to vary depending on the user’s role.
* Must present a professional, efficient, and enjoyable user experience. A professional interface that matches corporate branding requirements and enables users to get their jobs done efficiently and effectively is generally more important than fancy visual effects. A business application also...