Gino Abraham's Blog

September 2009 Entries

Intoduction to Web Client Software Factory - Part1

What is Web Client Software Factory (WCSF)?
WCSF is a web client development pattern recommended by Microsoft. You can use the software factory to easily create Web client applications with a consistent architecture. It helps you quickly incorporate many of the proven practices and patterns of building Web client applications
What do I achieve out of this?
1.     Your development time goes down a lot.
2.     You will have a consistent architecture.
3.     You will get a guidance automation package to guide you through your development.
What is this Meant For and What Not?
The software factory is optimized to create online business transaction processing Web sites. It is not optimized for Web content sites or collaboration sites
How do I use this?
You can download Web Client Software Factory - February 2008from MSDN site. There are few dependencies before
installing WCSF which are listed below.
1.      Guidance Automation Extensions  For Visual Studio 2008
2.      Guidance Automation Toolkit For Visual Studio 2008
3.      Enterprise Library for .NET Framework 3.1– May 2007
You can make composite web client applications using WCSF. However to make business entitiy class from database design and to link your stored procedures with these entity classes Msoft came up with another wonderful tool called repository factory. (  We have used this in our projects and got around 70% productivity improvement leaving the learning curve to use guidance automation out of the calculation.
Scenarios and Benefits [ Extract from WCSF Documentation]
Architects can use the Web Client Software Factory to create their own client baseline architecture. They can distribute that baseline for developers to use as a starting point to build specific instances of Web applications
Architect Scenarios
As the architect, you want to make sure that Web applications developed in your organization derive from a sound, high quality, proven practice-based foundation that meets the following guidelines:
  • It provides a standard approach to application development.
  • It promotes re-usability of common architectural patterns and components.
  • It hides complexity.
  • It allows developers to focus on business problems instead of infrastructure components.
The Web Client Software Factory is the starting point for creating that foundation. It provides out-of-the-box implementation of a set of features that are common to Web client composite applications.
You take this out-of-the-box baseline and customize it and extend it to better fit your specific needs. As an architect, you might customize, extend, and deploy the following:
  • Templates and recipes to include your own appearance and behavior and your own naming conventions
  • Documentation, patterns, and How-to topics
  • Application blocks, by using the provided extensibility points and adding new libraries
Developer Scenarios
As an application developer, you may want to focus on the business logic and the user experience of your Web client application. Baseline architecture, such as the Web Client Software Factory, provides many of the common infrastructure services needed to build your business applications. This baseline may be modified and extended by the architecture team in your organization or on your project.
You can review the patterns, the How-to topics, and the reference implementation (Global Bank Commercial e-Banking) to understand the proven practices for developing Web applications using the provided guidance. You can use the Web Client Development guidance package to generate the initial solution, add modules, add views and presenters, and so on.
The Web Client Software Factory provides the benefits for the business team, the architecture team, the developer team, and the operations team.
Value for Business
Applications built using the Web Client Software Factory result in increased user productivity and simplification of business tasks. This is achieved through the following features:
  • It provides common and consistent user interfaces; this reduces end-user training needs.
  • It provides easy rollout of new and updated functionality and tasks by the business owners faster and with improved quality.
Value for Architecture Teams
Applications built using the Web Client Software Factory result in improved quality and consistency. This is achieved through the following:
  • It has the ability to create a partial implementation of a solution that includes the most critical subsystems and shared elements. This partial implementation, known as the baseline architecture, addresses non-trivial design and development challenges, exposes the architectural decisions, and mitigates risks early in the development cycle and hides complexity from developers.
  • It has the ability to create and distribute to developers the common development architecture for Web applications that include logging, exception handling, authentication, authorization, and a common appearance and behavior.
  • It applies a modular approach that allows teams and/or departments to independently develop and deploy modules and look as if they were developed by one individual.
Value for Developer Teams
Applications built using the Web Client Software Factory result in increased productivity and faster ramp-up times for developer teams. This is achieved through the following:
  • It provides an effective way to create a high-quality starting point (baseline) for Web applications. The baseline includes code and patterns typically discovered in Iteration 0, or the elaboration phases, of a project. This means that projects begin with a greater level of maturity than traditionally developed applications.
  • It provides automation of common tasks in Visual Studio, such as creating a Web solution, creating business and foundational modules, and creating views with presenters. With this automation, developers can easily apply guidance in consistent and repeatable ways. The automation with the architecture does the following:
    • It integrates your Web pages with master pages and themes for consistent user interfaces across teams.
    • It creates proven solution and project structure that you would otherwise have to manually complete.
    • It creates a profile-based user interface by using an ASP.NET site map, an ASP.NET role manager, and the Enterprise Library Security Application Block, so you do not have to write custom code.
    • It creates test projects for you.
  • It provides an abstraction and separation of concerns; this means that developers can focus solely on business logic, the UI, or the application services without requiring in-depth knowledge of the infrastructure and baseline services.
Value for Operations Teams
Applications built using Web Client Software Factory result in a consolidation of operational efforts. This is achieved through the following:
  • It supports use of XCopy deployment; this enables a common mechanism for updates and versioning across modules; this minimizes downtime.
  • It uses distributed, module-specific configuration files; this minimizes configuration contention.
  • It consolidates common components; this results in fewer, simpler files and it reduces the number of potential common language runtime (CLR) versioning issues.
  • It provides a pluggable architecture that allows operations teams to control the basic services (such as authentication and exception logging) from server-side infrastructures.
  • It provides a common exception management system that makes troubleshooting easier.

Parsing Complex Expressions in CSharp (Round about for Expression Evaluators)

Expression Parser,Parse, Parsing Expression, Expression Evaluator, Eval,formula