PowerDesigner follows the best practices and design patterns to produce n-tier architecture enterprise applications for the .NET framework, as shown in the following figure:
PowerDesigner can be used to generate all these layers:
Domain Model - contains persistent POCOs (Plain Old CLR Objects), which are similar to Java's POJOs. These act as information holders for the application and do not contain any business logic. A primary key class is generated for each persistent class in order to help the "find-by-primary-key" function, especially when the class has a composite primary identifier.
Data Access Layer - follows the standard DAO pattern, and provides typical CRUD methods for each class. This layer is divided into two parts, one of which contains interfaces for DAL, while the other contains the implementation for these interfaces, using ADO.NET technology to access databases.
The DAL Helper provides common features used by all the DAL implementations, such as connection and transaction management, and the supply of SQL command parameters. Some common classes, such as Session, Criteria, and Exception, are also defined.
PowerDesigner supports two kinds of DAL implementation:
ADO.NET (see Generating ADO.NET and ADO.NET CF Persistent Objects)
Nhibernate (see Generating NHibernate Persistent Objects)
Business Logic Layer - contains the typical user-defined business logic. This is a wrapper for the DAL, exposing CRUD functionalities provided by the DAL underneath. You can customize this layer according to your needs.
Windows Application - the Composite UI Application Block, or CAB layer helps you build complex user interface applications that run in Windows. It provides an architecture and implementation that assists with building applications by using the common patterns found in line-of-business client applications.
PowerDesigner can generate data-centric windows applications based on the CAB (see Generating Windows or Smart Device Applications).
The .NET CF (Compact Framework) has a similar organization, but with a configuration utility class that provides the capability to load and parse configuration used in different layers, e.g., data source configuration, log and exception configuration, etc:
PowerDesigner supports the ADO.NET DAL implementation for the .NET CF (see Generating ADO.NET and ADO.NET CF Persistent Objects)