Book Image

ASP.NET 3.5 Application Architecture and Design

By : Vivek Thakur
Book Image

ASP.NET 3.5 Application Architecture and Design

By: Vivek Thakur

Overview of this book

Table of Contents (14 chapters)
About the Author
About the Reviewers

Architecture: First Steps

How do business requirements dictate architectural decisions? Lets understand this through a quick and small example. Assume that a software company, Takshila Inc., has recently bagged the contract for building a new inventory management system for a local cosmetics manufacturing firm. After the initial talks with the stakeholders, the business analyst from Takshila comes up with high-level specifications, which are:

  • The system should be accessible from any online location

  • The system should be able to process multiple orders at the same time

  • The system should be able to interact and process information from different locations having different databases

  • The system should interact with other software packages (such as financial software) already in use by the company

  • The system should be easy to customize later by the internal development team

With these requirements in mind, and after detailed discussions with team members, the software architect has come up with the following architectural specifications for the proposed inventory management software:

  • The system should be web based, using a thin-client architecture.

  • The system should have built-in multithreading capabilities.

  • The system should be database-independent, which means that the system should be able to work with multiple types of databases without changing the code—probable use of dependency injection.

  • The system should expose a set of functions as an API, and should also be able to import data from other sources and process this data in its own tables.

  • The system should have loosely-coupled tiers, so that each individual tier has no dependency on the other and can be used with any other tier.

Note how the business requirements have been translated into architectural specifications, and still there is not a word about a programming or development platform! So the architecture has nothing to do with development platforms, programming languages, design and so on. We can create a system satisfying the above requirements in many ways, using different designs and probably using different platforms too (for example, one could either use ASP.NET or JSP/J2EE). In short, the architecture does not care whether you use LINQ, AJAX, or Ruby on Rails. As long as you are meeting the architectural specifications, you are free to choose your own technology and tools.