Application tiers in AX 7
For one thing, AX is no more a WinForms application, it is a website. There
is no "AOS” as such, my friends. Though still a couple of Windows
services run on the server side:
·
Batch management services that “Polls and
executes AX batch requests.”
·
DIXF service that “Executes import/export logic
for the Microsoft Dynamics AX Data Import/Export Framework”.
Disclaimer: All screenshot are made from RTW development box. Other environments’ settings may
differ.
Browser
is now your main client and the third tier remains SQL Server or SQL Azure, at
least for now J
The
website contains parameters for DB connection and for binary directory with business
logic and metadata. You may find them in website’s Application Settings along
with lots of other interesting parameters.
UI development experience
The good news is that you do not have to learn HTML 5 and
all this web-stuff to develop AX. UI development experience has not changed that
much. Rendering of your forms is done by IDE and Runtime.
The only exception is development of custom controls if standard
ones do not cover your needs. That is where you’ll have to exercise in web
development.
IDE now provides a nice relevant form preview feature.
IDE now provides a nice relevant form preview feature.
FormRun
Unlike in older versions every form is now a separate class that extends FormRun and is decorated with [Form] attribute. That opens
new perspectives for OOP usage in your UI development.
For example, your form can now implement interfaces, that may be convenient in caller patterns or in extensions if you want all your forms to behave similarly.
For example, your form can now implement interfaces, that may be convenient in caller patterns or in extensions if you want all your forms to behave similarly.
Physical form
For those interested in HTML / CSS / JavaScript / Bindings internals, here is a sample HTML source of a simple form received by browser may
be found here.
There are some wonderful things like:
<!-- Please keep above meta data at top of the file. bug 2731835 -->
Even the simplest form is rendered to almost 200Kb HTML.
There are some wonderful things like:
<!-- Please keep above meta data at top of the file. bug 2731835 -->
Even the simplest form is rendered to almost 200Kb HTML.
You can also see a draft form metadata when the option “Build
pre-compiled forms” is set in Build models dialog. Visual Studio pre-generates JSON
form file to increase runtime performance.
Click here to open the full JSON file text.
Forms patterns
This is an important innovation to forms development – strict patterns
that you must follow in order to compile your form. IDE gives a nice tree-arranged details on the expected form structure that must adhere to the chosen pattern.
Some patterns resemble those in AX 2012 but there many more.
Additionally, some controls like Groups may have their own subpatterns that depend on the parent form's pattern.
Form adaptors
In Project properties you can choose to automatically
generate form adaptor class that extends standard FormAdaptor and resides in a
separate package referencing the form’s package.
It’s probably intended to contain all form-related business logic, though I have not seen the description of this BP.
It’s probably intended to contain all form-related business logic, though I have not seen the description of this BP.
Dissappoiting news
Two bad news for those who invested heavily into rich UI.
The following items are not supported in AX 7:
- Rich controls (ActiveX, hosted.NET)
- Enterprise Portal
Your investments into this technologies will become a sunk cost. You’ll have to migrate
everything to the new platform if that makes sense economically, of course. Or
invent an integration scenario to keep your IP.
Also quite a lot of UI-related APIs that were often used and modified are now deprecated. Some prominent losses among them:
Thus, for example, grid rows coloring should re-implemented in some other way.
Form
|
copy
|
cut | |
paste | |
lock
|
|
lockWindowUpdate
|
|
unlock
|
|
FormControl
|
labelMouseDblClick
|
mouseDblClick
|
|
FormDataSource
|
displayOption
|
Thus, for example, grid rows coloring should re-implemented in some other way.
Standard controls
The list of standard controls currently available is quite impressive, however the documentation is scarce for most of them. However it may give you an idea of the
UI development capabilities provided out of the box.
Note that file upload cannot be done, naturally, via WinAPI or .NET libraries.
You must use special control and a backing class to implement it.
Gantt chart, Hierarchy controls and Segmented Entry control
are also provided with Standard AX but you’ll have to migrate any changes to them you
had in previous versions. And that may also require web development skills.
Custom controls
Control's content is now split logically and physically between layers and comprises different entities like runtime and design time X++ classes,
JavaScript classes, HTML and CSS.
For full details and guidelines please refer to AX wiki:
No comments:
Post a Comment