Extending Microsoft Dynamics NAV through .NET Interoperability
description
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: [email protected]
Visit my blog: http://NavigateIntoSuccess.com/