Database Reference
In-Depth Information
Chapter 16
System Design Considerations
Dmitri Korotkevitch and Maxim Alexeyev
Database systems never live in a vacuum; they always have client applications that depend on them. Implementing
efficient database design and T-SQL code is essential for good system health and performance; however, it is not
enough. Poorly designed and written client applications will never perform well, regardless of the quality of the
database backend.
In this chapter, we will talk about several important factors that help in designing an efficient data access layer
in applications utilizing SQL Server as a backend database. We will also discuss the usage of ORM (Object-Relational
Mapping) frameworks with Microsoft Entity Framework 6.
General System Architecture
There was a time when developers were able to write successful business-oriented applications while working
alone or in small teams. Those days are long gone, however. Modern enterprise-level systems consist of hundreds of
thousands, or even millions, of lines of code, and they require thousands of man-hours to develop, test, deploy, and
support them. Large teams create these applications with members who have different talents, skills, and areas of
specialization.
The right system architecture is critical for the success of a project. It allows many people to work on the project
in parallel without stepping on each other's toes. It simplifies the support and refactoring of the system when
requirements are changed.
The architecture of a modern system utilizes a layered approach, separating distinct roles and functional
components from each other. In complex systems, layers are implemented as different service components and
modules. Smaller systems can maintain the logical separation of the layers, developing them as different classes and
assemblies in a single application. In the end, physical architecture is less important as long as logical separation is
in place. However, good system design should allow you to scale the system and/or some of the layers with a minimal
amount of refactoring involved.
You can read more about system design and architecture considerations in the Microsoft Application Architec-
ture Guide at: http://msdn.microsoft.com/en-us/library/ff650706.aspx .
Note
Figure 16-1 illustrates a high-level architectural diagram of a system with multiple layers.
 
 
Search WWH ::




Custom Search