Blue Ink
Blue InkHomeBlue Ink SolutionsArticlesBlue Ink Net CommunityBlue Ink Demo ApplicationAbout Automated Architecture
My Profile
login/register
0

Application Architecture

The default set of templates that come with the Blue Ink Rapid Application Development Tool generate an n-tier, Microsoft .Net web application written in C#. This page describes the architecture of the generated application including architectural tiers, security, object oriented design, how it works with Microsoft Visual Studio, how it integrates with source control, and how it is loosely coupled to increase performance.

If after reading this you would like more details please check out our Live Demo, and the Code Samples page in particular.

Generated Architecture

Automated Architecture provides a default set of templates with Blue Ink that allow it to generate an n-tier .Net web application. The architecture of the generated application is based upon the best practices described in the documents: Application Architecture for .NET: Designing Applications and Services and Designing Data Tier Components and Passing Data Through Tiers. Specifically the architecture looks like the following:

The data, business, and presentation tiers broken out for a sample application with five entities and how data flows between tiers

Blue Ink generates the code for all tiers which are described briefly below.

Stored Procedures

Blue Ink generates stored procedures which compile in the database for faster performance and act as a second layer of security by disallowing the generated application to access database tables directly.

Data Access Tier

Blue Ink generates a data access tier to insulate the business objects tier from the specifics of a particular Database Management System (DBMS) and to provide a simplified method for accessing the database.

Business Tier

Blue Ink generates a business tier that is responsible for business rules (e.g. setting a last modified date), data consolidation (e.g. retrieving the products in a sale as well as customer and sale information for the sale view detail page, see loose coupling below), as well as advanced validation not available to the presentation tier (e.g. verifying a social security number doesn't already exist in the database before adding a new employee).

Service Interface

Blue Ink generates a service interface layer which enforces security through .Net's declarative security and ensures a stateless middle tier through static methods.

ASPX Pages

Blue Ink generates aspx and code behind pages for add, edit, search, and view detail pages that fully support one-to-many as well as many-to-many relationships.

Web User Controls

Blue Ink generates web user controls for generically displaying views of data from different pages (e.g. view resulting employees on an employees search page or view all participating employees that participated in a sale on a view detail page for a sale).

Business Entities

Blue Ink generates strongly typed datasets for passing data between tiers. Typed datasets are used for parameters as well as results, for instance they are used as input for add and edit operations as well as results from view detail requests.

Generated Security

Blue Ink builds basic security mechanisms including authentication and authorization into its generated applications.

Authentication

Authentication (confirming a user's identity) is done via .Net Forms Security and a generated Login.aspx page. Authentication information is sent to a business tier component that can easily be customized to authenticate against a data store such as a database or LDAP server and return authorization information.

Authorization

Authorization (enforcing a user's permissions) is provided at both the presentation tier as well as the business tier. Read and write permission at the table level is enforced in generated .aspx pages and again through .Net's declarative security in the service interface layer. Implementing row level security (e.g. allowing managers, but not regular employees, to view a salary field), horizontal security (e.g. disallowing employees from viewing the records of other employees), as well as encryption and hashing are easy to implement and examples are included in the documentation.

Object Oriented Design

Blue Ink takes advantage of .Net's object oriented features in order to keep Blue Ink from overwriting user code upon re-generation. For all .Net classes including code behind pages as well as middle tier classes, Blue Ink generates a base class and an inheriting class. Blue Ink overwrites the base class, which contains all generated functionality, upon every regeneration. The inherited class contains no functionality by default and is only generated once. A developer may override any base class functionality in the inheriting class, thus providing the developer the ability to modify any generated functionality without having code overwritten.

For .aspx files that do not support object oriented design, Blue Ink keeps track of their last modified date, and if they have changed since the last generation it prompts the user whether to overwrite or add the file to a "never overwrite list".

Integration With Visual Studio

Upon first generation Blue Ink generates project (.csproj) as well as solution (.sln) files allowing developers to take full advantage of the benefits of Microsoft Visual Studio.

Source Control

Blue Ink generated solutions integrate fully with source control applications such as Microsoft SourceSafe and the use of source control is recommended.

Loose Coupling

The applications generated by Blue Ink only ever make one call to the middle tier and only open one database connection for a given action. For instance the view detail page of a sale shows all products in the sale, sale details, employee information, and customer information, but only calls the middle tier once and only opens one connection. The result is an application that is optimized for throughput and speed (it makes a noticeable difference compared to applications that disregard how many database connections they use).





FAQ's:

Can I still use Microsoft Visual Studio?

Does Blue Ink support source control?

What types of database relationships does Blue Ink support?

Does Blue Ink support Object Oriented Design?


Related Links:

Code Samples

Blue Ink Screenshots

Blue Ink Technical Details (white paper)


ARTICLES

What is Rapid Application Development?


QUESTIONS?

Call us toll free:
(877) 756-3595

Or Visit Forums

    

Copyright © 2017 Automated Architecture, Inc. All rights reserved.