Software Factory

A Software Factory is a development environment configured to support the rapid development of a specific type of application. Software Factories are just a logical next step in the continuing evolution of software development methods and practices. However, they change the character of the software industry by introducing patterns of industrialization.

          It’s a software product line that configures

         Extensible tools

         Processes

         Content using a software factory template based on a software factory schema

          It helps to automate the development and maintenance product by adapting

         assembling

         configuring framework-based components

          Help building specific type of application

         Smart client

         Web service

         Web application

         Mobile application

          Incorporate guidelines and best practice

         Architecture and design guidance

         Patterns

         How-to’s

         Application blocks

         Guidance packages

Why software factory?

          Productivity in software development

          Reusability in efficient way

          Reduction in development time

          Communication between architect and development team

          Utilize resources not having extensive expertise on software development

          Shorten time to market

         Reuse of existing core assets

          Improved product quality

         Pre-tested factory

         Less chance of error during development

          Framework variability and extensibility

          Expand market

         By selling products

         Frameworks

Which are available software factory?

          Web Client Software Factory

          Smart Client Software Factory

          Web Service Software Factory

          Mobile Client Software Factory

Web Client Software Factory capabilities

Modularity

  • Building composite UIs that are based on integration of multiple back-end systems.
  • Composing applications from individually developed, tested, and deployed units (modules).
  • Supporting XCopy deployment through distributed Web.config files
  • Unit testing Web user interface application logic

User experience

  • Separating the responsibility of UI design from UI development
  • Leverage ASP.NET master pages, themes, and skins
  • Dynamically interact with ASP.NET site map

Page flow

  • Defining screen workflows

Deployment and updates

  • XCopy deployment and updates of independent modules
  • Module versioning by separating interfaces from implementation

Security

  • Authentication (using Forms Authentication)
  • Profile based user interface and authorization
  • Input and output validation
  • Exception shielding

State management

  • Session
  • Page flow

Manageability

  • Handling exceptions
  • Logging exceptions

Web service communication

  • Communicating synchronously with external Web services

Details about web-client software factory:

  1. Required component
  2. How to create web-client software factory application?
  3. Using Logging application block
  4. Using Exception handling block
  5. Creating new module
  6. Inbuilt MVC pattern implementation
  7. Customize look and feel
  8. Adding page flow

To know more:

http://msdn2.microsoft.com/en-us/library/bb264518.aspx#wcsfbenefits

http://msdn2.microsoft.com/en-us/architecture/aa480032.aspx

http://msdn2.microsoft.com/en-us/architecture/aa699360.aspx

http://www.codeplex.com/websf