You are on page 1of 37

Armen Ayvazyan, Antonin Jelinek and Nikola Malovic

Agenda
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
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)
What are WCSF assets?
What is WCSF?
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
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
Web client design patterns

 View – Presenter
 Application controller
 Service locator
 Dependency injection
View Presenter

Standard ASP. Net page MVP implementation

Page View page


UI related code
UI related code

IView
Business logic
Presenter class
Business logic
Application controller

 Work Item
 Centralize flow and
navigation
Presenter, View and Controller
Problem: Tight coupling
Service locator
Dependency injection

Object 1
ClassA
Builder

2 3
Service
Application blocks

 Composite Web AB
 Page Flow AB
 Object Builder
CWAB

 Separation of
concerns
 Modularity
 Extensibility
CWAB Composition
CWAB Services
Page Flow AB

 From
public void AttemptTransfer(decimal transferAmount)
{
if (transferAmount > MaxAmountWithoutApproval)
{
Response.Redirect("ApprovalRequired.aspx");
}
Response.Redirect("Confirmation.aspx");
}

 To public void AttemptTransfer(decimal transferAmount)


{
StorePageFlow.UserData["TransferAmount "] = transferAmount;
StorePageFlow.Next();
}
Page Flow AB

StorePageFlow.Navigate("RegisterUser");
Guidance package
Available receipts
Install the Web Client
Software factory

 Download and run the


Web Client Software Factory June 2007 Install
er
(http://download.microsoft.com/download/7/a/8/7a8d67ba-eac8-43f9-b00e-

f74a25561c47/Web%20Client%20Software%20Factory%20-%20June%202007.msi )
First step
Install WCSF dependencies
Install WCSF Source code
Modules in WCSF

 What are modules?


 Encapsulates busyness
concerns
 Type of modules Business modules have UI
representation (“Products”,
 Business Modules “Users”, etc)
 Foundational Modules
 Shell Foundational modules extends
functionality of web site
(Logging, Search engine, etc)
Modules in WCSF

DEMO
Benefits of Modularity

 Encapsulates business concern in one place


 Enterprise development
 Reuse across multiple solutions
 Testability
Model View Presenter
Pattern
 Architecture of Model View Presenter pattern
 MVP is multiplatform solution

View Presenter
Model View Presenter
Pattern
Standard ASP. Net page MVP implementation

Page View page


UI related code
UI related code

IView
Business logic
Presenter class
Business logic
Model View Presenter

Example
View-Presenter in WCSF

Example
Benefits of MVP

 Decouples business logic from UI


 Allows Unit Testing for UI
 Separates UX and Devs
 Reusability against different views
 Independence for designer
Bundles

 Demo
Resources 

You might also like