1 / 21

Enterprise Smart Clients Architecture, Patterns, Design, Best Practices

Enterprise Smart Clients Architecture, Patterns, Design, Best Practices. Keith Elder Manager, Sr. Software Engineer Quicken Loans Blog: http://keithelder.net/blog/ Email: keith@keithelder.net. Take Aways. Previous Session What are Smart Clients

chimalsi
Download Presentation

Enterprise Smart Clients Architecture, Patterns, Design, Best Practices

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Enterprise Smart ClientsArchitecture, Patterns, Design, Best Practices Keith Elder Manager, Sr. Software Engineer Quicken Loans Blog: http://keithelder.net/blog/ Email: keith@keithelder.net

  2. Take Aways • Previous Session • What are Smart Clients • How to deploy them as easy as a web application • Setting Up Visual Studio – How to get started • Modules • Interface • Business Logic • Data Access Logic • Understanding the architecture of an Enterprise Smart Client and how to get started building one. • Handling Business Rules • Enterprise Library

  3. Enterprise Desktop

  4. Enterprise Smart Client Architecture

  5. Benefits Provides connection pooling to database Allows for updates to business layer without affecting clients Disconnected / Connected Smart Client Architecture SQL 2005 Business Logic Documentation Web Services Cluster Client

  6. Enterprise Smart Client Pattern: Visual Studio Solution Organization

  7. Visual Studio Solution Organization • Think in terms of modularity and re-use • Will not apply to smaller applications • Modules are collections of projects and solutions • Web Service • BusinessLayer • DataLayer • WorkFlow • Proxy • UI.Web • UI.WinForm • UI.Mobile • Etc.

  8. Visual Studio Solution Organization:Things to remember • Create a “Common” library early on • Common API’s -> EnterpriseDesktop.Common • Typically shared among all projects (it is common right?) • Base APIs to handle validation, serialization, configuration or whatever • Common UI -> EnterpriseDesktop.Common.WinForm • Why separate things out so much? • Allows for Multiple User Interfaces to leverage the same logic. Write once. Use it everywhere. • Bake Enterprise Library into your application from the start, not as an after thought. More on this later. • Each SmartClient “module” will have minimally four projects: • Web service – provides the means to retrieve, and validate information for your module • Business Layer – Contains your business rules and business entities • Data Layer – Facilitates storing and retrieving of data (could be datasets, custom objects, or an ORM) • UI (winform) – User controls which make up your user interface

  9. Smart Client Module Mobile 5 App Web Service Smart Client DataLayer Internal Web App BusinessLayer Web Site WorkFlow

  10. EnterpriseDesktop Folder Structure For Application Source Module HelpDesk WebService BusinessLayer Project Fi les EnterpriseDesktop.HelpDesk.BusinessLayer DataLayer WorkFlow EnterpriseDesktop.HelpDesk.DataLayer UI WinForm EnterpriseDesktop.HelpDesk.UI.WinForm Web Mobile EnterpriseDesktop.HelpDesk.UI.Mobile Common WinForm

  11. Enterprise Desktop

  12. Enterprise Smart Client: Best Practices

  13. Handling Business Rules With Smart Clients • Put your business rules in the web service • Business rules change constantly, do you want to redeploy your entire app for a few lines of code change? • Answer: No. Just redeploy your web service. No one will ever know! • Leverage Biztalk rules engines or WorkFlow rules engine • Great idea but I can only pass back and forth XML, so how do I do it? • Answer. List<Rule> brokenRules • Note: EntLib 3.0 has a Validation Block

  14. Business Rules

  15. Enterprise Smart Client: Patterns and Software Factories

  16. Patterns and Practice Is Your Friend • Enterprise Library • Logging Block • Log exceptions • Route SQL Exceptions to pagers • Log who is doing what • Log to flat files, xml or database • Data Access Block • Abstract data access, less code than ADO.Net • Caching Block • Database • File system • Isolated file storage • Security Block • Manage permissions for your application (who can do what) • Console • Winform Application to configure or re-configure your application on the fly • WSE 3.0 – Web Services Enhanced (pre WCF)

  17. Quick Look at Enterprise Library

  18. Enterprise Smart Client: Deployment Tips

  19. Enterprise Deployment Tips • Things you need to deploy • Smart Client • Web Service for each module • Tip: Create master solutions for each web service deployment • Reminder: Don’t forget to add Enterprise Library to your services • Documentation • Asp.net web site • Purchase software certificate from Versign • Sign ClickOnce manifests with certificate • Have your windows engineers deploy this certficate as a trusted certficate to the desktops. • Build an MSI installer which contains a URL desktop shortcut. Deploy this to the enterprise based which user’s need the application. • Provides an easy on ramp to kick off the application and get it installed. • Can be placed in desktop image by IS

  20. Anything Else I Should Look At? • Web Service Performance Tip: Gzip and ExcludeSchema • Smart Client Software Factory • Web Service Software Factory • Mobile Software Factory • Keep eyes on Patterns and Practice Team

  21. Resources • My Blog • http://keithelder.net • Email • keith@keithelder.net • Resources • http://msdn.microsoft.com/smartclient/ • http://practices.gotdotnet.com/projects/scbat • Patterns and Practices • http://msdn.microsoft.com/practices/ • Smart Client Software Factory • Enterprise Library • Web Services Software Factory • Mobile Software Factory

More Related