_Web Client Software Factory

Preview:

Citation preview

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

PagePage

UI related code

Business logic

View pageView pageUI related code

Presenter classPresenter classBusiness logic

IViewIView

Application controller

Work Item Centralize flow and

navigation

Presenter, View and Controller

Problem: Tight coupling

Service locator

Dependency injection

ObjectBuild

er

Service

ClassA

1

2 3

Application blocks

Composite Web AB Page Flow AB Object Builder

CWAB

Separation of concerns

Modularity Extensibility

CWAB Composition

CWAB Services

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 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 Installer(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 Foundational

Modules

Shell

Business modules have UI representation (“Products”, “Users”, etc)

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

PresenterPresenterViewView

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

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