.NET Development for Microsoft Dynamics AX 5.0

Microsoft Dynamics AX 2009
Integration and Development with .NET
Framework
Enterprise Portal
Agenda
•
•
•
•
ASP.NET Framework
SharePoint
Data Binding
Portal Development
ASP.NET Framework
Main Goals
• Transform EP from self service light-weight Web
app to mainstream full fidelity business Web app
• Move away from a “Click-and-Wait” architecture to
the responsive and interactive modern Web
• Empower end users with a richer and more
powerful UI
• Develop rich home pages
• Empower developers with rich toolset and
platform technologies
What Is ASP.NET Based Framework?
•
•
•
•
•
UI development in VS using ASP.NET
Core UI controls (List/Image/Lookup)
Data binding
Label support
AOT nodes for storing and securing managed
content
• Session management
• Proxy class generation
• Navigation and deployment
Portal Page Architecture
Page Definition
Page
Web Part Properties
Page
User Control Properties
AX Toolbar Web Part1
SharePoint Content Database
AX User Control
Web Part
MyUserControl.asc
x
Control3 Properties
User Control
AxGrid
Control4 Properties
AxDatasource
MyUserControl.ascx.cs
Event Handlers
IIS Virtual Directory
SharePoint
Web Part Page
Page
Page Definition
Web Part1 Properties
Web Part1
Web Part2 Properties
Web Part2
SharePoint Content Database
FixFunctionPage.asp
x
Control3 Properties
Standard
page and
functionality
Control4 Properties
IIS Virtual Directory
Metadata Consolidation
AX Metadata
Data Binding
X++ Code
Data Dictionary
(AOD file)
SharePoint
Customizable
Personalizable
Content
(SQL Server)
SharePoint
Static Files
Features
Templates
(File System)
ASP.NET Pages
and Controls
(File System)
Import and layer
Deploy
Dynamics AX 2009 Model
• Microsoft Dynamics AX 2009 Portal builds on the
rich AX desktop data binding
• It exposes the rich AX metadata binding
• It uses the full flexibility of ASP.NET (code and
markup)
• It uses the dynamic customization and
personalization of the SharePoint
• It unifies ASP.NET, SharePoint and AX metadata
in the AOT
Home Page
• Consists of various Web parts
– WSS
• Quick Links
• Activity Stacks
• Unified Work List (Alerts/Workflow)
• Dynamics Report
• SSRS Report
– MOSS
• KPI List
• Filter
• Excel Web Access
• Home page integration with the AX client
Demo
Create Role Center Page
Data Binding
Architecture for Accessing AX Data
AxDatasource Control
Bind
ASP.NET Control
DataSourceViews
Application code
AxDataSetViews
Access Object Model
AxDataSet
Access Object Model
AX From
Datasource
functionality
X++ Code
X++ Callouts
Dataset Functionality
•
•
•
•
•
•
•
•
•
•
Allows binding to one or more AX tables
Allows multiple tables to be combined using joins
Exposes full AX data model
Provides calculated fields
Executes table based triggers
Supports a programming model similar to an X++ table
object
Supports data versions (OCC)
Can be backed up by a real table or a temp table
Provides events that can be overridden
Provides an object model for application code
User Control Details
My User Control
MyUserControl.ascx
UserControl
GridView Props
GridView
TextBox Bound
Field…
Text Box
MyUserControl.ascx.cs
Check Box
Datasource
Control
Event Handlers
IIS Virtual Directory
AOT
AxDataSet
MyDataSet
BC.NET
Methods
MyDataSetRun
DataSources
Datasource
QueryRun
QueryRun
Table
Table
DataSource
Field
Portal Development
EP Site Components
•
•
•
•
•
EP Site Basement
EP Home Site
EP Sub Site
Web Module
Top navigation bar
Module Properties
–
–
–
–
–
ConfigurationKey
InheritNavigation
InheritPermissions
QuickLaunch
ShowLink
Navigation Details
• Navigation is between pages
• URL Menu items
– Navigation
– Authorization
• Content items
– Content items point to parts on the page
– Used for authorization
• Web Menus
Core Controls
•
•
•
•
•
•
•
AxDataSource
AxGridView
AxForm
AxLookup
AxFilter
AxToolBar
Webparts
– AxUserControlWebPart
– AxToolbarWebPart
Context Passing within a Page
• Context
• Webpart type
– None
– Provider
– Consumer
• Connections
Webpart
connection
Ajax refresh
Consumer
Webpart
Provider
Webpart
Page
Webpart
connection
Ajax refresh
Consumer
Webpart
Context Passing between Pages
•
•
•
•
Context
Query String
Master – Details
Security and
encryption
Page 1 (master)
Web Part 1
Record 1
Record 1
Web Part 3
Where x =
record 1
Web Part 4
Where x =
record 1
Web Part 5
Page 2 (details)
Security
• Metadata Object Model exposes Security keys
• Data Sets calculate field level security
• Table level security can be accessed via Metadata
Object Model for the current session
• AX controls are automatically authorized
• User controls are secured through content items
• Standard X++ Authorization (RLS,
HasMenuItemAccess, …)
Stateless Programming Model
• Data Sets can be persisted across HTTP requests
• What is persisted?
– Queries
– Data Cache
– Current Record
– Current Record deltas
– Marks
– New Records
– Temp Tables
• Override
– Pack, UnPack
• Control State can be enabled or disabled
X++ Support
• Proxy Generation Tool pg.exe
• Allows C# proxies to be generated for X++
classes and tables
• Automatically generates dependent classes
• Strongly Typed
Localization
• AX ASP.NET framework uses labels
• Controls handle localization
• Also ASP.NET expressions are provided to be
used in markup to convert labels to text
<asp:Label ID="Label8" runat="server"
Text="<%$ axlabel:@SYS73732 %>"/>
Ajax support Advantages
• We have built our own framework on Ajax, as you
have seen
• Advantages of Ajax framework
– User-experience improvement
– Bandwidth usage
– Separation of data, format, style
Deployment
Deployment works at three levels:
• Web Server Deployment
– Static Files
– Controls
• Web Application Deployment
– Features
– Web Parts
– Web Sites
• Web Site Deployment
– Pages
Demo
Develop the Portal
Q&A
Introducing the Lab
• In this lab you will:
–
–
–
–
–
–
–
–
Create Web module
Deploy Web module
Create DataSet
Create user control
Upload user control to the AOT
Create Web content
Create Web page
Create Web menu item
© 2008 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.