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.