Application Development and Runtime Configurations
The Dynamics AX development and runtime environments support three logical configurations, as illustrated in Figure 1:
Rich Client Application
The
rich client is the primary client for Dynamics AX. It is a regular
Windows application with a user interface consisting of menus, toolbars,
forms, and so on.
You can develop a rich
client application configuration using only the MorphX development
environment. The rich client application is hosted by the Dynamics AX
runtime environment. Rich clients communicate with the Application
Object Server (AOS) using the Microsoft remote procedure call (RPC)
communication technology.
Web Client Application
The Web client is a
client for Dynamics AX that runs inside a Web browser. It supports many
of the same capabilities as the rich client does.
You develop a Web client
application configuration by using the MorphX development environment,
Microsoft Visual Studio 2008, and the Windows SharePoint Services
framework. A Web client application is hosted by the Dynamics AX
runtime, the ASP.NET runtime, and the Windows SharePoint Services
runtime environments. SharePoint and ASP.NET components communicate via
the Dynamics AX .NET Business Connector.
Integration Client Application
An integration
client application brings Dynamics AX functionality into external
applications, such as Microsoft Office Excel and Microsoft Office
Outlook. An integration client application configuration is mostly
developed using Visual Studio or other tools with .NET support or
Windows Communication Foundation (WCF) support. Integration client
applications are hosted by the Microsoft Dynamics AX runtime
environment. ASP.NET Web services and IIS are required for hosting Web
services. The external application communicates with the Dynamics AX
runtime via the Dynamics AX Application Integration Framework (AIF)
server or .NET Business Connector.
Architecture of Dynamics AX
As a developer of Dynamics AX
applications, your primary focus should be on modeling application
elements to meet business requirements, relying on the rest of the
architecture to meet technical requirements. Before looking at
application modeling, explained in the following section, take some time
to review the stack diagram in Figure 2, which illustrates the key functional areas of the Dynamics AX architecture.
The following sections explore key elements of this diagram and tell you where you can find more information about each.
Application Modeling
Application modeling is
a method of declaratively specifying the structure and behavior of an
application that is faster, less error-prone, and more precise than
imperative programming. Specifying that data is mandatory for a field in
a database record, for example, is fairly easy in the Dynamics AX
application model because the Dynamics AX runtime environment ensures
that the condition is true in all parts of the application that
manipulate data in the table. This obsoletes the programming effort that
would otherwise be required to maintain data integrity throughout the
application.
The Dynamics AX
application model also supports defining workflows. The defined
workflows describe states and available actions for types of business
documents. For example, a developer could model a Purchase Order
Approval workflow that maps the tasks required to approve a purchase
order. The workflows are honored by the Dynamics AX runtime environment,
and the Windows Workflow Foundation engine is used for processing and
configuring the workflows.
Logic Elements and Data Elements
Because application
modeling typically isn’t flexible enough to meet all business
requirements, the Dynamics AX business logic is specified by the X++
programming language. X++ is an object-oriented language, much like C#
and Java, that supports inheritance, encapsulation, and polymorphism.
The language also includes syntax for writing database statements, much
like those found in the SQL database manipulation language.
The following X++
code snippet uses the X++ SQL syntax. The language combines the
simplicity of data lookup from SQL with the expressive power of
object-oriented programming. You can invoke a method call directly on an
object retrieved from the database.
while select customer
where customer.zipcode == campaignZipCode
{
customer.sendEmail(campaignId);
}
The model elements and
X++ source code that comprise an object’s definition are called
application elements, and they are managed with the Application Object
Tree (AOT) development tool. The AOT is a user control in the MorphX
environment that manages a dictionary of application elements.
Note
The name Application Object Tree
is something of a misnomer. Application objects are instantiated only
by the Dynamics AX runtime environment, and their definitions are
developed with the help of the AOT. The tree also contains resources and
references in addition to application object definitions. This book
uses the abbreviation AOT to refer to the tree control, but it describes the nodes in the tree as mapping to application elements contained in a dictionary. |
Application Frameworks
While
developing your application, you can leverage a range of built-in
application frameworks that provide typical technology requirements such
as batching, number sequence generation, and error logging.
Runtime Environments
The Dynamics AX
runtime environment and the Dynamics AX Enterprise Portal runtime
environment execute the ERP application defined by the application model
elements. The Dynamics AX runtime environment has model-driven features
that are required for the support of user interaction with ERP database
applications. For example, if you specify that a column model element
on a user interface grid control requires mandatory data entry, the
Dynamics AX runtime environment ensures that users enter data in that
particular column.
The Dynamics AX runtime
environment also has client and server features that are required to
support the three-tier operations environment. For example, by
automatically marshalling parameters, return values, and object
references across the tiers, the Dynamics AX runtime environment ensures
that all X++ business logic marked to run on the server tier will
execute on the AOS. As a developer, you still need to pay attention to
these aspects because they can impact performance.
Communications
Dynamics AX leverage many different standard communication protocols, including RPCs, HTTP, and SOAP, to invoke Web services.
As an application
developer in Dynamics AX, you don’t have to understand the
implementation details of these protocols, but you must pay close
attention to the performance aspects when invoking logic on remote
tiers. You need to keep in mind network properties such as bandwidth and
latency to ensure the resulting application is responsive.
Model Layering
A cardinal requirement of an
ERP system is that it be able to meet the customer’s needs. If you’re
in the business of building general solutions that many customers
license and install, you need a way for individual customers to
customize your solution.
The
application model layering system supports fine-grained partner and
customer customizations and extensions. The MorphX development
environment manages the application elements that exist in multiple
layers of the model, and the runtime environment assembles the
application elements from different layers so that application object
instances can be created with customized and extended structure and
behavior.
Licensing, Configuration, and Security
Any ERP
application has technical requirements for licensing, configuration, and
security. In Dynamics AX, the developer can control the behavior of
these aspects directly in the application model. Licensing,
configuration, and role-based security are enforced at run time—for
example, the only enabled user interface components the user sees are
those that he or she has access to.
User and external
application interactions are authenticated by the Windows integrated
security system before any application features can be accessed. After
authentication, the Active Directory service is used to associate a
Windows user with a Dynamics AX user. Dynamics AX provides a security
framework for authorizing Dynamics AX user and user group access to menu
items and database data.
Database Layer
The Dynamics AX database
layer supports both SQL Server and Oracle database systems. The database
layer enables developers to focus on modeling the tables and fields
required for various business scenarios without being concerned about
SQL Server or Oracle specifics. For example, you can use the same X++
logic to query data regardless of which physical database engine the
data is persisted in.
The Windows XP,
Windows Vista, and Windows Server operating systems provide the
technology that components use to communicate with the Dynamics AX
runtime environment.