_Web Client Software Factory
-
Upload
tugrul-karakaya -
Category
Documents
-
view
59 -
download
1
Transcript of _Web Client Software Factory
![Page 1: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/1.jpg)
Armen Ayvazyan, Antonin Jelinek and Nikola Malovic
![Page 2: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/2.jpg)
Agenda
![Page 3: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/3.jpg)
Introduction
We all work @ Monster
Armen Ayvazyan, software engineer http://blog.dotnetstyling.com
Antonin Jelinek, technical lead http://www.fc-bohemians.cz/
Nikola Malovic, solution architect http://blog.vuscode.com
![Page 4: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/4.jpg)
What is WCSF?
Microsoft Patterns & Practice best practice and standards guidance for web applications
Synergic evolution of several P&P blocks: Composite AB User Interface Process AB Enterprise Library
It’s a factory Younger sister of SCSF (adopted by Dell)
![Page 5: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/5.jpg)
What are WCSF assets?
![Page 6: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/6.jpg)
What is WCSF?
![Page 7: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/7.jpg)
Why to use it?
Value for Business: Common and consistent interface
reduced training costs Easy rollout of new functionality and
tasks Value from Architecture teams
Enables baseline architecture Create and distribute to developers
common development architecture Common appearance and behavior Modular approach
![Page 8: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/8.jpg)
Why to use it?
Value for Development Teams: Great starting point - Iteration “0” – out of box Provides automation
Proven solution and project structure Integrate ASP NET site map, role manager and EntLib
security AB – out of box Creates test project Designer for page flow
Value for Operations Teams: Xcopy deployment; easy versioning across modules Module specific configuration files Consolidate number of common components Base service control from server side Common exception management system
![Page 9: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/9.jpg)
Web client design patterns View – Presenter Application controller Service locator Dependency injection
![Page 10: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/10.jpg)
View Presenter
Standard ASP. Net page MVP implementation
PagePage
UI related code
Business logic
View pageView pageUI related code
Presenter classPresenter classBusiness logic
IViewIView
![Page 11: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/11.jpg)
Application controller
Work Item Centralize flow and
navigation
![Page 12: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/12.jpg)
Presenter, View and Controller
![Page 13: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/13.jpg)
Problem: Tight coupling
![Page 14: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/14.jpg)
Service locator
![Page 15: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/15.jpg)
Dependency injection
ObjectBuild
er
Service
ClassA
1
2 3
![Page 16: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/16.jpg)
Application blocks
Composite Web AB Page Flow AB Object Builder
![Page 17: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/17.jpg)
CWAB
Separation of concerns
Modularity Extensibility
![Page 18: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/18.jpg)
CWAB Composition
![Page 19: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/19.jpg)
CWAB Services
![Page 20: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/20.jpg)
Page Flow AB
From
To
public void AttemptTransfer(decimal transferAmount){ if (transferAmount > MaxAmountWithoutApproval) { Response.Redirect("ApprovalRequired.aspx"); } Response.Redirect("Confirmation.aspx");}
public void AttemptTransfer(decimal transferAmount){ StorePageFlow.UserData["TransferAmount "] = transferAmount; StorePageFlow.Next(); }
![Page 21: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/21.jpg)
Page Flow AB
StorePageFlow.Navigate("RegisterUser");
![Page 22: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/22.jpg)
Guidance package
![Page 23: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/23.jpg)
Available receipts
![Page 24: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/24.jpg)
Install the Web Client Software factory
Download and run the Web Client Software Factory June 2007 Installer(http://download.microsoft.com/download/7/a/8/7a8d67ba-eac8-43f9-b00e-f74a25561c47/Web%20Client%20Software%20Factory%20-
%20June%202007.msi)
![Page 25: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/25.jpg)
First step
![Page 26: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/26.jpg)
Install WCSF dependencies
![Page 27: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/27.jpg)
Install WCSF Source code
![Page 28: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/28.jpg)
Modules in WCSF
What are modules? Encapsulates
busyness concerns
Type of modules Business Modules Foundational
Modules
Shell
Business modules have UI representation (“Products”, “Users”, etc)
Foundational modules extends functionality of web site (Logging, Search engine, etc)
![Page 29: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/29.jpg)
Modules in WCSF
DEMO
![Page 30: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/30.jpg)
Benefits of Modularity
Encapsulates business concern in one place
Enterprise development Reuse across multiple solutions Testability
![Page 31: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/31.jpg)
Model View Presenter Pattern Architecture of Model View Presenter
pattern MVP is multiplatform solution
PresenterPresenterViewView
![Page 32: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/32.jpg)
Model View Presenter PatternStandard ASP. Net page MVP implementation
PagePage
UI related code
Business logic
View pageView pageUI related code
Presenter classPresenter classBusiness logic
IViewIView
![Page 33: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/33.jpg)
Model View Presenter
Example
![Page 34: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/34.jpg)
View-Presenter in WCSF
Example
![Page 35: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/35.jpg)
Benefits of MVP
Decouples business logic from UI Allows Unit Testing for UI Separates UX and Devs Reusability against different views Independence for designer
![Page 36: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/36.jpg)
Bundles
Demo
![Page 37: _Web Client Software Factory](https://reader034.fdocuments.in/reader034/viewer/2022042602/5571f7b849795991698bdcda/html5/thumbnails/37.jpg)
Resources