Extending Microsoft Dynamics NAV through .NET Interoperability

27
Extending Microsoft Dynamics NAV through .NET Interoperability Vjekoslav Babić Fortempo

description

Extending Microsoft Dynamics NAV through .NET Interoperability. Vjekoslav Babić Fortempo. Agenda. Introduction NAV before .NET Interop Overview of .NET Framework Development considerations Deployment considerations Demos. About the presenter. Vjekoslav Babić - PowerPoint PPT Presentation

Transcript of Extending Microsoft Dynamics NAV through .NET Interoperability

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/