Software Architectural and Detailed Design Options

codeling Posts: 1153 Points: 4845
Posted: Saturday, November 9, 2019 8:08:10 PM

8.       Implementation View

8.1    Overview

The implementation view depicts the physical composition of the implementation in terms of implementation artifacts such as source code, data, development frameworks, distributable files and executable files.

The implementation layer must be aligned and fit the layers defined in the architecture vision and the best practices to support this architecture. The ContosOnline system will be developed using the technologies described in the sub-section 3.1 Implementation Strategy.

The implementation strategy is to implement each logical layer inside an independent .NET assembly. Inside each assembly, you can find the modules logically separated by namespaces (For further details, see the following table).

Namespaces/Packages

Description

Assembly

ContosOnline.Presentation It´s a Web application developed using ASP.NET MVC technology and contains the artifacts for the correct presentation. It also uses the following JavaScript libraries: jQuery and ExtJS to support the Rich Internet Application approach. ContosOnline.Presentation.dll
ContosOnline.Presentation.

 

ProductManagement

It´s a package (a folder) inside the ContosOnline.Presentation to hold the artifacts for the module ProductManagement ContosOnline.Presentation.dll
ContosOnline.Service It´s a Microsoft.NET library developed using C# language and contains the service artifacts. ContosOnline.Service.dll
ContosOnline.Service.

 

Contracts

It´s a package (a folder) inside the ContosOnline.Service to hold the contracts of the service. Inside this package, you should group the contracts by module (similar to the presentation structure). ContosOnline.Service.dll
ContosOnline.Service.DTO It´s a package (a folder) inside the ContosOnline.Service to hold the messages of the service. Inside this package, you should group the messages by module (similar to the presentation structure). ContosOnline.Service.dll
ContosOnline.BLL It´s a Microsoft.NET library developed using C# language and contains the business logic artifacts. ContosOnline.BLL.dll
ContosOnline.BLL.

 

ServiceImplementations

It´s a package (a folder) inside the ContosOnline.BLL to hold the service implementations. Inside this package, you should group the service implementations by module (similar to the presentation structure). ContosOnline.BLL.dll
ContosOnline.BLL.

 

BusinessObjects

It´s a package (a folder) inside the ContosOnline.BLL to hold the business objects. Inside this package, you should group the business objects by module (similar to the presentation structure). ContosOnline.BLL.dll
ContosOnline.BLL.

 

Mappers

It´s a package (a folder) inside the ContosOnline.BLL to hold the mappers (transformations from the entities to DTO). Inside this package, you should group the mappers by module (similar to the presentation structure). ContosOnline.BLL.dll
ContosOnline.BLL.Workflow It´s a package (a folder) inside the ContosOnline.BLL to hold the workflows. Inside this package, you should group the workflows by module (similar to the presentation structure). ContosOnline.BLL.dll
ContosOnline.BLL.

 

BusinessRules

It´s a package (a folder) inside the ContosOnline.BLL to hold the business rules. Inside this package, you should group the business rules by module (similar to the presentation structure). ContosOnline.BLL.dll
ContosOnline.DAL It´s a Microsoft.NET library developed using C# language and contains the data access artifacts. ContosOnline.DAL.dll
ContosOnline.DAL.

 

Entities

It´s a package (a folder) inside the ContosOnline.DAL to hold the business entities. Inside this package, you should group the business entities by module (similar to the presentation structure). ContosOnline.DAL.dll
ContosOnline.DAL.

 

DAO

It´s a package (a folder) inside the ContosOnline.DAL to hold the data access objects. Inside this package, you should group the data access objects by module (similar to the presentation structure). ContosOnline.DAL.dll
ContosOnline.DAL.

 

ServiceAgents

It´s a package (a folder) inside the ContosOnline.DAL to hold the service agents. Inside this package, you should group the service agents by module (similar to the presentation structure). ContosOnline.DAL.dll

8.2    Layers

8.2.1 Presentation Layer

The Presentation layer contains all the components needed to allow interactions with an end-user. It encompasses the user interface and how to handle the user requests and responses.

The Presentation layer will be developed using the MVC architectural style and the technology ASP.NET MVC. In order to enrich the user interface, we´re going to use JavaScript libraries such as jQuery and ExtJS (a pack of controls) and latest trends in HTML and CSS for the content presentation. The iconography and graphical styles must be consistent with the corporate colors of Contoso.

In order to present a common layout in all the pages of the application, we´re going to use the approach Master Page of ASP.NET.

8.2.2 Service Layer

The Service layer contain all the definitions of the services that are exposed to external systems such as service contracts (operations, message format, message exchange pattern), the communication patterns (REST vs SOAP), url and the behavior of the service. The Service layer will be developed using Windows Communication Foundation (WCF) and the underlying programming model.

8.2.3 Business Logic layer

The Business Logic layer contains all the components that represent the concepts to support the business process. It contains business objects, entities, rules workflows, and so on. The Business Logic layer will be developed using C# and the underlying technologies provided by Microsoft.NET.

8.2.4 Data Access layer

The Data Access layer contains all the components that represent the entities mapped to the relational schema and the communication mechanisms with the database engine. It also contains the logic to access other data source as well as the definitions of Web services’ clients (service agents). The Data Access layer will be developed using C# and LINQ as the ORM technology.

Users browsing this topic
Guest