Armen Ayvazyan, Antonin Jelinek and Nikola Malovic
Agenda
Introduction
We all work @ Monster
Armen Ayvazyan, software engineer
[Link]
Antonin Jelinek, technical lead
[Link]
Nikola Malovic, solution architect
[Link]
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)
{
[Link]("[Link]");
}
[Link]("[Link]");
}
To public void AttemptTransfer(decimal transferAmount)
{
[Link]["TransferAmount "] = transferAmount;
[Link]();
}
Page Flow AB
[Link]("RegisterUser");
Guidance package
Available receipts
Install the Web Client
Software factory
Download and run the
Web Client Software Factory June 2007 Install
er
([Link]
f74a25561c47/Web%20Client%20Software%20Factory%20-%20June%[Link] )
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