Enterprise Smart Clients Architecture, Patterns, Design, Best Practices Keith Elder Manager, Sr....
-
date post
18-Dec-2015 -
Category
Documents
-
view
217 -
download
1
Transcript of Enterprise Smart Clients Architecture, Patterns, Design, Best Practices Keith Elder Manager, Sr....
![Page 1: Enterprise Smart Clients Architecture, Patterns, Design, Best Practices Keith Elder Manager, Sr. Software Engineer Quicken Loans Blog:](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d255503460f949fba40/html5/thumbnails/1.jpg)
Enterprise Smart ClientsArchitecture, Patterns, Design, Best Practices
Enterprise Smart ClientsArchitecture, Patterns, Design, Best Practices
Keith ElderKeith ElderManager, Sr. Software EngineerManager, Sr. Software EngineerQuicken LoansQuicken LoansBlog: http://keithelder.net/blog/Blog: http://keithelder.net/blog/Email: [email protected]: [email protected]
![Page 2: Enterprise Smart Clients Architecture, Patterns, Design, Best Practices Keith Elder Manager, Sr. Software Engineer Quicken Loans Blog:](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d255503460f949fba40/html5/thumbnails/2.jpg)
Take AwaysTake Aways Previous SessionPrevious Session
What are Smart ClientsWhat are Smart Clients How to deploy them as easy as a web How to deploy them as easy as a web
applicationapplication Setting Up Visual Studio – How to get Setting Up Visual Studio – How to get
startedstarted ModulesModules
InterfaceInterface Business LogicBusiness Logic Data Access LogicData Access Logic
Understanding the architecture of an Understanding the architecture of an Enterprise Smart Client and how to get Enterprise Smart Client and how to get started building one.started building one.
Handling Business RulesHandling Business Rules Enterprise LibraryEnterprise Library
![Page 3: Enterprise Smart Clients Architecture, Patterns, Design, Best Practices Keith Elder Manager, Sr. Software Engineer Quicken Loans Blog:](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d255503460f949fba40/html5/thumbnails/3.jpg)
Enterprise DesktopEnterprise Desktop
![Page 4: Enterprise Smart Clients Architecture, Patterns, Design, Best Practices Keith Elder Manager, Sr. Software Engineer Quicken Loans Blog:](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d255503460f949fba40/html5/thumbnails/4.jpg)
Enterprise Smart Client ArchitectureEnterprise Smart Client Architecture
![Page 5: Enterprise Smart Clients Architecture, Patterns, Design, Best Practices Keith Elder Manager, Sr. Software Engineer Quicken Loans Blog:](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d255503460f949fba40/html5/thumbnails/5.jpg)
Smart Client ArchitectureSmart Client Architecture
SQL 2005
Client
Web Services Cluster
BenefitsBenefits Provides connection pooling to Provides connection pooling to
databasedatabase Allows for updates to business Allows for updates to business
layer without affecting clientslayer without affecting clients Disconnected / ConnectedDisconnected / Connected
Business LogicDocumentation
![Page 6: Enterprise Smart Clients Architecture, Patterns, Design, Best Practices Keith Elder Manager, Sr. Software Engineer Quicken Loans Blog:](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d255503460f949fba40/html5/thumbnails/6.jpg)
Enterprise Smart Client Pattern: Visual Studio Solution Organization
Enterprise Smart Client Pattern: Visual Studio Solution Organization
![Page 7: Enterprise Smart Clients Architecture, Patterns, Design, Best Practices Keith Elder Manager, Sr. Software Engineer Quicken Loans Blog:](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d255503460f949fba40/html5/thumbnails/7.jpg)
Visual Studio Solution OrganizationVisual Studio Solution Organization
Think in terms of modularity and re-useThink in terms of modularity and re-use Will not apply to smaller applicationsWill not apply to smaller applications
Modules are collections of projects and Modules are collections of projects and solutionssolutions Web ServiceWeb Service BusinessLayerBusinessLayer DataLayerDataLayer WorkFlowWorkFlow ProxyProxy UI.WebUI.Web UI.WinFormUI.WinForm UI.MobileUI.Mobile Etc.Etc.
![Page 8: Enterprise Smart Clients Architecture, Patterns, Design, Best Practices Keith Elder Manager, Sr. Software Engineer Quicken Loans Blog:](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d255503460f949fba40/html5/thumbnails/8.jpg)
Visual Studio Solution Visual Studio Solution Organization:Organization:Things to rememberThings to remember Create a “Common” library early onCreate a “Common” library early on
Common API’s -> EnterpriseDesktop.CommonCommon API’s -> EnterpriseDesktop.Common Typically shared among all projects (it is common right?)Typically shared among all projects (it is common right?) Base APIs to handle validation, serialization, configuration or Base APIs to handle validation, serialization, configuration or
whateverwhatever Common UI -> EnterpriseDesktop.Common.WinFormCommon UI -> EnterpriseDesktop.Common.WinForm
Why separate things out so much?Why separate things out so much? Allows for Multiple User Interfaces to leverage the same logic. Allows for Multiple User Interfaces to leverage the same logic.
Write once. Use it everywhere.Write once. Use it everywhere. Bake Enterprise Library into your application from the start, Bake Enterprise Library into your application from the start,
not as an after thought. More on this later.not as an after thought. More on this later. Each SmartClient “module” will have minimally four Each SmartClient “module” will have minimally four
projects:projects: Web service – provides the means to retrieve, and validate Web service – provides the means to retrieve, and validate
information for your moduleinformation for your module Business Layer – Contains your business rules and business Business Layer – Contains your business rules and business
entitiesentities Data Layer – Facilitates storing and retrieving of data (could be Data Layer – Facilitates storing and retrieving of data (could be
datasets, custom objects, or an ORM)datasets, custom objects, or an ORM) UI (winform) – User controls which make up your user interfaceUI (winform) – User controls which make up your user interface
![Page 9: Enterprise Smart Clients Architecture, Patterns, Design, Best Practices Keith Elder Manager, Sr. Software Engineer Quicken Loans Blog:](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d255503460f949fba40/html5/thumbnails/9.jpg)
Web Service
BusinessLayer
DataLayer
Smart ClientMobile 5 App
Web Site
Internal Web App
Smart Client Module
WorkFlow
![Page 10: Enterprise Smart Clients Architecture, Patterns, Design, Best Practices Keith Elder Manager, Sr. Software Engineer Quicken Loans Blog:](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d255503460f949fba40/html5/thumbnails/10.jpg)
Folder Structure For Folder Structure For ApplicationApplication
Module
Project Files
![Page 11: Enterprise Smart Clients Architecture, Patterns, Design, Best Practices Keith Elder Manager, Sr. Software Engineer Quicken Loans Blog:](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d255503460f949fba40/html5/thumbnails/11.jpg)
Enterprise DesktopEnterprise Desktop
![Page 12: Enterprise Smart Clients Architecture, Patterns, Design, Best Practices Keith Elder Manager, Sr. Software Engineer Quicken Loans Blog:](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d255503460f949fba40/html5/thumbnails/12.jpg)
Enterprise Smart Client: Best PracticesEnterprise Smart Client: Best Practices
![Page 13: Enterprise Smart Clients Architecture, Patterns, Design, Best Practices Keith Elder Manager, Sr. Software Engineer Quicken Loans Blog:](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d255503460f949fba40/html5/thumbnails/13.jpg)
Handling Business Rules Handling Business Rules With Smart ClientsWith Smart Clients Put your business rules in the web servicePut your business rules in the web service
Business rules change constantly, do you want Business rules change constantly, do you want to redeploy your entire app for a few lines of to redeploy your entire app for a few lines of code change?code change? Answer: No. Just redeploy your web service. Answer: No. Just redeploy your web service.
No one will ever know! No one will ever know! Leverage Biztalk rules engines or WorkFlow Leverage Biztalk rules engines or WorkFlow
rules enginerules engine Great idea but I can only pass back and forth XML, Great idea but I can only pass back and forth XML,
so how do I do it?so how do I do it? Answer. List<Rule> brokenRulesAnswer. List<Rule> brokenRules
Note: EntLib 3.0 has a Validation BlockNote: EntLib 3.0 has a Validation Block
![Page 14: Enterprise Smart Clients Architecture, Patterns, Design, Best Practices Keith Elder Manager, Sr. Software Engineer Quicken Loans Blog:](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d255503460f949fba40/html5/thumbnails/14.jpg)
Business RulesBusiness Rules
![Page 15: Enterprise Smart Clients Architecture, Patterns, Design, Best Practices Keith Elder Manager, Sr. Software Engineer Quicken Loans Blog:](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d255503460f949fba40/html5/thumbnails/15.jpg)
Enterprise Smart Client: Patterns and Software Factories
Enterprise Smart Client: Patterns and Software Factories
![Page 16: Enterprise Smart Clients Architecture, Patterns, Design, Best Practices Keith Elder Manager, Sr. Software Engineer Quicken Loans Blog:](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d255503460f949fba40/html5/thumbnails/16.jpg)
Patterns and Practice Is Your Patterns and Practice Is Your FriendFriend
Enterprise LibraryEnterprise Library Logging BlockLogging Block
Log exceptionsLog exceptions Route SQL Exceptions to pagersRoute SQL Exceptions to pagers Log who is doing whatLog who is doing what Log to flat files, xml or databaseLog to flat files, xml or database
Data Access BlockData Access Block Abstract data access, less code than ADO.NetAbstract data access, less code than ADO.Net
Caching BlockCaching Block DatabaseDatabase File systemFile system Isolated file storageIsolated file storage
Security BlockSecurity Block Manage permissions for your application (who can do Manage permissions for your application (who can do
what)what) ConsoleConsole
Winform Application to configure or re-configure your Winform Application to configure or re-configure your application on the flyapplication on the fly
WSE 3.0 – Web Services Enhanced (pre WCF)WSE 3.0 – Web Services Enhanced (pre WCF)
![Page 17: Enterprise Smart Clients Architecture, Patterns, Design, Best Practices Keith Elder Manager, Sr. Software Engineer Quicken Loans Blog:](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d255503460f949fba40/html5/thumbnails/17.jpg)
Quick Look at Enterprise Library
Quick Look at Enterprise Library
![Page 18: Enterprise Smart Clients Architecture, Patterns, Design, Best Practices Keith Elder Manager, Sr. Software Engineer Quicken Loans Blog:](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d255503460f949fba40/html5/thumbnails/18.jpg)
Enterprise Smart Client: Deployment TipsEnterprise Smart Client: Deployment Tips
![Page 19: Enterprise Smart Clients Architecture, Patterns, Design, Best Practices Keith Elder Manager, Sr. Software Engineer Quicken Loans Blog:](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d255503460f949fba40/html5/thumbnails/19.jpg)
Enterprise Deployment Enterprise Deployment TipsTips Things you need to deployThings you need to deploy
Smart ClientSmart Client Web Service for each moduleWeb Service for each module
Tip: Create master solutions for each web service Tip: Create master solutions for each web service deploymentdeployment
Reminder: Don’t forget to add Enterprise Library to your Reminder: Don’t forget to add Enterprise Library to your servicesservices
DocumentationDocumentation Asp.net web siteAsp.net web site
Purchase software certificate from VersignPurchase software certificate from Versign Sign ClickOnce manifests with certificateSign ClickOnce manifests with certificate Have your windows engineers deploy this certficate as a Have your windows engineers deploy this certficate as a
trusted certficate to the desktops.trusted certficate to the desktops. Build an MSI installer which contains a URL Build an MSI installer which contains a URL
desktop shortcut. Deploy this to the enterprise desktop shortcut. Deploy this to the enterprise based which user’s need the application.based which user’s need the application. Provides an easy on ramp to kick off the application and Provides an easy on ramp to kick off the application and
get it installed.get it installed. Can be placed in desktop image by ISCan be placed in desktop image by IS
![Page 20: Enterprise Smart Clients Architecture, Patterns, Design, Best Practices Keith Elder Manager, Sr. Software Engineer Quicken Loans Blog:](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d255503460f949fba40/html5/thumbnails/20.jpg)
Anything Else I Should Anything Else I Should Look At?Look At? Web Service Performance Tip: Gzip Web Service Performance Tip: Gzip
and ExcludeSchemaand ExcludeSchema Smart Client Software FactorySmart Client Software Factory Web Service Software FactoryWeb Service Software Factory Mobile Software FactoryMobile Software Factory Keep eyes on Patterns and Practice Keep eyes on Patterns and Practice
TeamTeam
![Page 21: Enterprise Smart Clients Architecture, Patterns, Design, Best Practices Keith Elder Manager, Sr. Software Engineer Quicken Loans Blog:](https://reader036.fdocuments.in/reader036/viewer/2022062421/56649d255503460f949fba40/html5/thumbnails/21.jpg)
ResourcesResources My Blog My Blog
http://keithelder.nethttp://keithelder.net EmailEmail
[email protected]@keithelder.net ResourcesResources
http://msdn.microsoft.com/smartclient/http://msdn.microsoft.com/smartclient/ http://practices.gotdotnet.com/projects/scbathttp://practices.gotdotnet.com/projects/scbat
Patterns and PracticesPatterns and Practices http://msdn.microsoft.com/practices/http://msdn.microsoft.com/practices/
Smart Client Software FactorySmart Client Software Factory Enterprise LibraryEnterprise Library Web Services Software FactoryWeb Services Software Factory Mobile Software FactoryMobile Software Factory