Extending Microsoft Dynamics NAV through .NET Interoperability

Post on 23-Feb-2016

21 views 0 download

Tags:

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

ExtendingMicrosoft Dynamics NAVthrough .NET Interoperability

Vjekoslav BabićFortempo

Agenda

IntroductionNAV before .NET InteropOverview of .NET FrameworkDevelopment considerationsDeployment considerationsDemos

About the presenter

Vjekoslav BabićIndependent consultant for Microsoft Dynamics NAV

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

NAV before .NET Interoperability

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

OCXAutomationShell

OCX

Pros ConsUI extensibility Complex

developmentComplex deploymentObsolete technology

Automation

Pros ConsAccess to a lot of COM libraries

Complex developmentComplex deploymentObsolete technology

Shell

Pros ConsAccess to operating system

SecurityAPI limitationsNot synchronous or interactive

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

DEMO

A short and cool .NET interoperability demo

Overview of .NET Framework

Common Language InfrastructureAssembliesSecurityClass LibraryMemory ManagementReflectionRich stack of functionality

Common Language Infrastructure

Assemblies

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

Security

Code Access SecurityValidation and verificationSimple impersonation

Class Library

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

Memory Management

Garbage collectorManaged code

Reflection

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

Rich Stack of Functionality

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

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.

Calling .NET functionality

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

Data Type Mapping

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

Strings:Length considerationsUnicode considerations

Decimal vs. DoubleDate, Time and DateTime

Using .NET functionality

ArraysCollectionsEnumerationsGenericsInterfaces

Calling Web services from NAV

Calling NAV web servicesCalling non-NAV web services

Deployment Considerations

Service Tier deploymentRoleTailored Client deploymentClassic Client deployment (for development purposes

only)Global Assembly Cache (GAC)

DEMO

Connecting to another NAV instance through .NET Interop

Questions & Answers

THANK YOU!

Feel free to ask any questions: vjekoslav.babic@fortempo.net

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