Client Extensibility in Microsoft Dynamics NAV 2009 R2

advertisement
(D100)
Client Extensibility in
Microsoft Dynamics NAV 2009 R2
and beyond ...
Christian Abeln,
Christian.Abeln@Microsoft.com
Session Content
• Intro RTC Add-Ins
•
Basic concepts and tools needed.
•
The AddIn API and best pratice design.
• Add-ins in NAV V7
•
Whats new in the Add-In API
•
Custom interfaces (e.g. Timeline Visualization in V7)
•
CAL driven charts
Use of RTC AddIns in R2 and beyond ...
Business data & processes
Monitor
Query
O-Data
Client Extensibility
Interop
Async, Performance
Managed data layer
Dev tools
...
A sample: Lync communication AddIn
NAV R2 Extension Models
Database
Tier
Service Tier
Client Tier
Client
Add-In
Role Tailored
Client
Form Builder
.NET
interop
Data Binder
Web Services
Client Services
Application
Meta data
provider
.NET
interop
Class Library
Microsoft SQL Server
Client
COM
X
X
Server
COM
Three steps when using Add-ins
Copy
Add-in
Register
Page
design
Your solution
Using Add-ins in the RTC
1. Place Add-in assembly in the ”Add-ins” folder(s)
2. Register the Add-in
Registration Tool blogs.msdn.com/cabeln
Using Add-ins in the R2 RTC
3. -> Select Add-in in Page Designer
-> ‘Document’ based communication
-> Add-In in trigger ”OnControlAddIn”
Making of Control Add-Ins
1. Microsoft Visual Studio
optionally :
Visual Studio Templates for Add-ins
blogs.msdn.com/cabeln
2. Extensibility assembly
(Microsoft.Dynamics.Framework.UI.Extensibility)
3. Existing or new control
Three steps when creating Add-ins
Add-in
class
Create
control
Data &
Events
Your Add-in
Add-in API: Concept
• Choose a base class based on your reqiurements
• Choose unique Add-in Name (Attribute)
• Create the control
• Implement interfaces for Value and Event binding
as needed
• Use ‘context’ information from the ‘Site’:
Caption, Editable, Enabled, Style, ValidationResults , Visible
Let’s create a Document Viewer Add-in
Step By Step walk-through
to create and integrate a
Document Viewer Add-in.
Inside the Add-In API
Add-in base class library
Add-in base class with string data
binding & eventing
-> Value, HasValueChanged,
RaiseControlAddInEvent
Control by default connected over
framework property Control.Text !
Inside the Add-In API
Add-in base class library
• Add-in base class for static
controls
(no data binding, eventing)
• Handles changes of Editable,
Enabled, Visible, Style
• AllowCaptionControl
Inside the Add-In API
Add-in base class library
Inside the Add-In API
Add-in base class library
The best way to use the API ?
A ViewModel based Add-in project
ViewModel:
How to show
ViewModel:
How to show
Client
Add-In
Application
Viewdata:
What to show
Viewdata:
What to show
Visualization
Control
RoleTailored client
Service Tier
XML
Web Services
Client Services
Application
Meta data
provider
.NET
interop
Class Library
Client
AddIn
Client Tier
Service Tier
A ViewModel based Add-in project
Role Tailored
Client
Form Builder
.NET
interop
Data Binder
Create an Add-in from scratch
XML binding WPF Add-in
Step By Step walk-through:
Creating a WPF Chart Addin for Dynamics NAV from
scratch.
Custom interfaces: Timeline Viz
V7: Add-ins with .NET 4.0
Charting in V7
V7: Chart Add-In for CAL developers
Chart Add-In for CAL developers
Download