Transcript
Page 1: Extending Microsoft Dynamics NAV through  .NET Interoperability

ExtendingMicrosoft Dynamics NAVthrough .NET Interoperability

Vjekoslav BabićFortempo

Page 2: Extending Microsoft Dynamics NAV through  .NET Interoperability

Agenda

IntroductionNAV before .NET InteropOverview of .NET FrameworkDevelopment considerationsDeployment considerationsDemos

Page 3: Extending Microsoft Dynamics NAV through  .NET Interoperability

About the presenter

Vjekoslav BabićIndependent consultant for Microsoft Dynamics NAV

Page 4: Extending Microsoft Dynamics NAV through  .NET Interoperability

About the topic

Microsoft Dynamics NAVERP is not an island anymoreC/AL is a very limited language

Microsoft .NET FrameworkStandard development frameworkDeep access to operating systemRich palette of built-in librariesRich development ecosystemLanguage independent

Page 5: Extending Microsoft Dynamics NAV through  .NET Interoperability

NAV before .NET Interoperability

Limited to C/ALUsing other frameworks from NAV before .NET Interop

OCXAutomationShell

Page 6: Extending Microsoft Dynamics NAV through  .NET Interoperability

OCX

Pros ConsUI extensibility Complex

developmentComplex deploymentObsolete technology

Page 7: Extending Microsoft Dynamics NAV through  .NET Interoperability

Automation

Pros ConsAccess to a lot of COM libraries

Complex developmentComplex deploymentObsolete technology

Page 8: Extending Microsoft Dynamics NAV through  .NET Interoperability

Shell

Pros ConsAccess to operating system

SecurityAPI limitationsNot synchronous or interactive

Page 9: Extending Microsoft Dynamics NAV through  .NET Interoperability

How does .NET interoperability help?

Simpler development, choice of languagesSimpler deployment, pure copy & paste worksStrong securityVery rich API, a lot of standard and 3rd party librariesLimitations: works only with NST, no support for Classic

Client

Page 10: Extending Microsoft Dynamics NAV through  .NET Interoperability

DEMO

A short and cool .NET interoperability demo

Page 11: Extending Microsoft Dynamics NAV through  .NET Interoperability

Overview of .NET Framework

Common Language InfrastructureAssembliesSecurityClass LibraryMemory ManagementReflectionRich stack of functionality

Page 12: Extending Microsoft Dynamics NAV through  .NET Interoperability

Common Language Infrastructure

Page 13: Extending Microsoft Dynamics NAV through  .NET Interoperability

Assemblies

Contain executable codeBuilding blocks of .NET functionalityPortable Executable (PE) formatAll .NET assemblies are accessible by defaultBetter control of deployment

Page 14: Extending Microsoft Dynamics NAV through  .NET Interoperability

Security

Code Access SecurityValidation and verificationSimple impersonation

Page 15: Extending Microsoft Dynamics NAV through  .NET Interoperability

Class Library

Huge list of out-of-the-box APIs available for consumptionBase Class LibraryFramework Class Library

Page 16: Extending Microsoft Dynamics NAV through  .NET Interoperability

Memory Management

Garbage collectorManaged code

Page 17: Extending Microsoft Dynamics NAV through  .NET Interoperability

Reflection

An important class libraryAccess to full .NET metadataAccess to .NET itself, including compilation

Page 18: Extending Microsoft Dynamics NAV through  .NET Interoperability

Rich Stack of Functionality

Picture by Soumyasch, http://en.wikipedia.org/wiki/File:DotNet.svg

Page 19: Extending Microsoft Dynamics NAV through  .NET Interoperability

Development Considerations

Calling .NET functionality from NAVData type mapping between NAV and .NETUsing .NET specific functionalityCalling Web services using .NET interoperability

I am going to demo all of this as we go.

Page 20: Extending Microsoft Dynamics NAV through  .NET Interoperability

Calling .NET functionality

DotNet data typeNAV scope and garbage collectorConstructors, instances and static objectsIndexingComparison limitationsEventsMember naming limitations

Page 21: Extending Microsoft Dynamics NAV through  .NET Interoperability

Data Type Mapping

Integers:16, 32 and 64 bit considerationsSigned vs. Unsigned

Strings:Length considerationsUnicode considerations

Decimal vs. DoubleDate, Time and DateTime

Page 22: Extending Microsoft Dynamics NAV through  .NET Interoperability

Using .NET functionality

ArraysCollectionsEnumerationsGenericsInterfaces

Page 23: Extending Microsoft Dynamics NAV through  .NET Interoperability

Calling Web services from NAV

Calling NAV web servicesCalling non-NAV web services

Page 24: Extending Microsoft Dynamics NAV through  .NET Interoperability

Deployment Considerations

Service Tier deploymentRoleTailored Client deploymentClassic Client deployment (for development purposes

only)Global Assembly Cache (GAC)

Page 25: Extending Microsoft Dynamics NAV through  .NET Interoperability

DEMO

Connecting to another NAV instance through .NET Interop

Page 26: Extending Microsoft Dynamics NAV through  .NET Interoperability

Questions & Answers

Page 27: Extending Microsoft Dynamics NAV through  .NET Interoperability

THANK YOU!

Feel free to ask any questions: [email protected]

Visit my blog: http://NavigateIntoSuccess.com/


Recommended