RobertoStefanetti,
MVP BusinessSolutions- NAV
MicrosoftEducationInfluencer
Webinar Topics
Customizations Vs Extensions
Dynamics NAV
Allows customization of application logic to
deliver customer, industry, or region specific
functionality
How?
Customizations: modification of base tables,
code, and other objects
Extensions: addition of well-defined modules
that are invoked alongside the base application
Why?
Upgrade … and …
v2
Modern Development Environment - Why ?
http://aka.ms/navdeveloperpreview
https://blogs.msdn.microsoft.com/nav/2016/12/20/announcing-the-preview-of-development-tools-for-dynamics-nav/
https://robertostefanettinavblog.com/2017/07/13/nav-development-preview-updated-documentation/
Extensions Topics
EXTENSIONS
 Extensions are the way to build for Software as a Service (SaaS)
 Allow you to sell your product in Microsoft AppSource - free
advertising! Increase your sales volume!
 Takes advantage of our upgrade investments
 Offer additional protection of your IP compared to the very “open
source” nature of classic NAV
 Platform stability
 Reduced time to deployment
Extensions are customizations ?
So, extensions are customizations?
Yes! If you're familiar with the Dynamics NAV customization model,
then you're probably used to making changes directly on objects.
The extension model asks you to design your changes differently –
namely make those changes by extending the core objects and
linking to code using events. For example, instead of adding a new
field that represents the customer’s birthday to the customer table,
put that field into a table extension. And if you want to write code
then put it in an event subscriber which can then check the birthday
and then do something about it.
https://blogs.msdn.microsoft.com/nav/2016/12/13/more-information-about-the-developer-preview-for-dynamics-nav/
Extensions 2.0
https://www.slideshare.
net/RobertoStefanetti/n
av-2016-events-and-
extensions
https://robertostefanett
inavblog.com/2016/07/
14/new-nav-2016-
videos-about-
extensions/
https://msdn.microsoft.
com/en-us/dynamics-
nav/extending-
microsoft-dynamics-
nav-using-extension-
packages
Extensions 2.0
https://blogs.msdn.microsoft.com/nav/2016/12/13/more-information-about-the-developer-preview-for-dynamics-nav/
Extensions 2.0 is the name we use for the new versions of extensions -
ones that aren't based on the DELTA file design. Making extensions with
the new tools is much easier than the current tools suite you may be
familiar with.
With Extensions 2.0, you code and write new objects that describe
the additional capabilities you want in the system. You’ll use Table
Extension and Page Extension objects to describe new fields and UI
elements, and you'll use the in-client page designer to make those
changes in a WYSIWIG way – all of which are stored as extensions under
the cover.
VS (Visual Studio Code)
“VS: Not Visual Studio !”
 Free
 Open source (MIT license)
 Code optimized
 Now part of Visual Studio
 Debugger
 Native Git support
 Always updated – monthly/nightly build
 Apple iOS and Linux platforms
 Extensions
 Community
https://code.visualstudio.com/
https://code.visualstudio.com/docs/customization/userdefinedsnippets
https://blogs.msdn.microsoft.com/nav/tag/dyndev365/
VS: Open Source, Cross Platform, Git
“Open source, cross-platform, multi-language development
environment that puts writing code at its center”
https://code.visualstudio.com/
VS: Commands
 NO-INVOKE compilers (no dll / exe)
 NO-DESIGNERS (no UI based development)
 NO-AL DEBUGGER (built-in Node.js)
 NO-DESKTOP APP (targeted for Web App)
VS: Editing Features
1. Syntax coloring
2. Bracket Matching
3. Intellisense
4. Parameter hints
5. Code block folding
6. Go To Definition (F12)
7. Tooltips
8. Find All References (SHIFT+F12)
VS: Workspace and UI
Code Editor / Status – View – Side bars
[Code Editor] 3 files open side by side (e.g. Merge)
[Code Editor] Zoom (CTRL+/CTRL-) / Navigate (CTRL+TAB)
[Status] Encoding / EOF / GoTo (CTRL+G)
[Side]
1. EXPLORER
2. SEARCH
3. GIT
4. DEBUG
5. EXTENSIONS
VS: GIT (Version Control)
GIT (open-source distributed version control engine)
- GIT local repository COMMIT to GitHub / VSTS
- CMD : git remote add origin master <repo url>
- CMD : git push –u origin master
VS LINKSBOOKS
https://robertostefanettinavblog.com/2017/09/06/nice-to-have-books-
for-the-new-development-environment/
DEMO TIME
MDE - Developer Tools Preview
START FROM HERE:
https://blogs.msdn.microsoft.com/nav/2016/12/20/announcing-the-preview-of-
development-tools-for-dynamics-nav/
About “Preview” (from Foundation Post)
https://blogs.msdn.microsoft.com/nav/2016/12/13/more-information-about-the-developer-preview-for-dynamics-nav/
Rebuilding the development tools for Dynamics NAV and Dynamics 365 for Financials is a long-term investment.
We're not done with everything yet but we did want to give you a chance to see what we've done so far and to comment
on it.
Here’s some things to pay attention to:
- The release is made available on an Azure Gallery image.
- The preview is for you to play with and test - don't expect to write production code with it and don’t use it in
production.
- Don't try to take your existing solution and convert it - there are unfinished features and you'll probably be more
frustrated than anything that the code doesn't work.
- Do notice that not all procedures in the application will be available to call. We have blocked access to procedures which
may run unsafe .NET or insecure methods.
- Do write event/subscriber solutions - follow the existing guidelines on building extensions for the general design
principles.
- Do try the sample code we’ve published to get familiar with the syntax.
Etc. etc. etc….
BUT WE ARE WORKING…
AL Language - Coding Objects
https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-programming-in-al
https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-dev-overview
https://robertostefanettinavblog.com/2016/11/29/microsoft-al-al-language-code-samples-for-developing-extensions/
Visual Studio Code and NAV Extensions
Visual Studio Code and NAV Extensions
AL Development Env. Vs C/SIDE
https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-get-started
https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-dev-overview
https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-programming-in-al
https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-txt2al-tool
https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-reference-overview
Differences in the Development Environments
Coming from the Dynamics NAV Development Environment and C/SIDE, there are some
differences and optimizations that you should familiarize yourself with. The following
sections go through these changes.
C/SIDE AL Development Environment
Dates are parsed based on culture settings. Locale independent and supports only: yyyy-mm-dd.
Boolean values could be expressed as yes/no. Boolean values are expressed as true/false.
https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-differences
GitHUB – Microsoft AL
https://github.com/Microsoft/AL
https://github.com/Microsoft/AL/tree/master/samples
https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-programming-in-al
https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-dev-overview
Samples @Microsoft/AL
AL Language and Coding using Snippets
AL Language and Coding using Snippets
Isolation and Security - Concepts
Isolation and Security - Limitations
In Client Designer
Scope: “Make an extension in the client itself”
Business consultants and UX designers will love using this drag-and-drop interface. Rearrange fields,
rename groups, and reposition elements to build a perfect extension to support an industry-specific
solution or implement a business process optimization.
In Client Designer
https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-inclient-designer
Keyboard Shortcuts
https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-keyboard-shortcuts
Keyboard Shortcuts
The following table provides an overview of some of the shortcut key combinations that you can use
when you're working with Dynamics 365 for Financials in Visual Studio Code.
About Reports in VS Code
GREAT POST BY STEVEN RENDERS HERE
http://thinkaboutit.be/2017/08/how-do-i-create-a-report-and-layout-in-vscode/
HOW DO I : CREATE A REPORT AND LAYOUT, IN VS CODE?
“A question I get asked frequently is: Ho Do I Create a Report in VSCode, and to me more
specific, How Do I Create the Layout, being an RDLC or Word layout?
The answer is that you need to create the report object as an .al file, then you create and
export the layout(s) and reference them from within the .al file.”
“AL Language” on Visual Studio Marketplace
https://robertostefanettinavblog.com/2017/08/18/al-language-on-visual-studio-marketplace/
https://marketplace.visualstudio.com/items?itemName=ms-dynamics-smb.al
Vs Code “AL Extensions” on Marketplace
https://robertostefanettinavblog.com/2017/08/31/vs-code-al-extensions-part-i/
There are some extensions that can be used in VS Code and are usefull for development with AL,
I have listed and inserted a brief description, since they are constantly evolving,
These extensions are currently available:
– AL Language (By Microsoft)
– AL Formatter (By Rasmus Aaen)
– AL Runner (By Tobias Fenster)
– NAV Skills AL Clean Code (by Mark Brummel)
– Dynamics NAV/AL (By Zodiacfireworks)
– Dynamics NAV SCM (by Cloud Ready Software)
– NAV Snippets (By Naresh)
Modern Development Environment - Links
LINKS
http://github.com/microsoft/al/
https://blogs.msdn.microsoft.com/nav/tag/dyndev365/
https://blogs.msdn.microsoft.com/nav/2016/11/04/dynamics-nav-and-help-a-new-world/
https://robertostefanettinavblog.com/2017/07/13/nav-development-preview-updated-documentation/
http://www.waldo.be/2017/02/20/make-the-new-developer-tools-available-on-a-local-machine/
VIDEOS
Install Visual Studio Code With Al Compiler
https://www.youtube.com/watch?v=aeE-C3z_qkI&t=53s
Dynamics NAV - Getting Started With Visual Studio Code
https://www.youtube.com/watch?v=d2GoSQUCuxE
Visual Studio Code - Getting Started with Git(Hub)
https://www.youtube.com/watch?v=NTY5VELbCWI
Inside AL for Visual Studio Code | Where are we
https://www.youtube.com/watch?v=xjceqM6V7BM&t=1483s
Visual Studio Code Building Publishing and Debugging AL Projects
https://www.youtube.com/watch?v=hpZcdqx0udA
Visual Studio Code - Convert C/AL to AL
https://www.youtube.com/watch?v=HCaooHKxBrM&t=239s
DEMO TIME
FAQ TIME
FAQ #1
Some FAQ from MicrosoftEvents Sessions
Question: What is Visual Studio Code?
Answer: Visual Studio Code is the environment in which development of NAV apps will happen in the
future.
https://code.visualstudio.com/
Question: What is a snippet?
Answer: Code snippets are templates that make it easier to enter repeating code patterns, such as loops or
conditional-statements.
https://code.visualstudio.com/docs/customization/userdefinedsnippets
Question: What is a symbol?
Answer: Instead of having the complete source code for NAV base app and other apps, you only have the
symbols in order to know what you allowed to call/use/subscribe to
Question: Where can i get the Object ID's
Answer: http://aka.ms/AppsForFinancials
FAQ #2
Question: How to set up al.json to work with visual studio code, outside a azure environment?
Answer: Currently NAV only supports Windows Authentication for the new development environment,
meaning it isn't easy
Question: Is this only available on the VM, or can it be downloaded/installed locally?
Answer: The advantage of using the VM is that you can remove and renew when we have new releases
every month. You can shut down your VM to stop the cost for the VM.
Question: I cannot find "AL Language" in VS Code, what do I do wrong?
Answer: It is not publicly available, it is available on an Azure Gallery Image.
use http://aka.ms/navdeveloperpreview to provision a VM with a new NAV version with visual studio code
AND the AL addin
Question: How to open Design Mode?
Answer: Design Mode is only available in the Development Preview environments:
use http://aka.ms/navdeveloperpreview to provision a VM with a new NAV version with visual studio code AND
the AL addin
Question: How does the In Client Designer works together with VSCode?
Answer: all the changes in the "In App Designer" get saved as an extension.
If you select "Save as files", then you can download them and keep working in VS Code. Otherwise you can save
them as a change to the entire tenant.
FAQ #3
Links
For more information about the Dynamics NAV Developer Preview and extensions, see the
following resources:
Microsoft MSDN
https://msdn.microsoft.com/en-us/dynamics-nav/extending-microsoft-dynamics-nav-using-
extension-packages
https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-get-started
https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-dev-overview
https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-programming-in-al
https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-inclient-designer
https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-differences
https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-keyboard-shortcuts
My Blog
https://robertostefanettinavblog.com/2017/08/18/al-language-on-visual-studio-marketplace/
https://robertostefanettinavblog.com/2016/12/20/announcing-the-preview-of-development-
tools-for-dynamics-nav-dynamics-nav-team-blog
https://robertostefanettinavblog.com/2017/02/11/all-about-microsoft-dynamics-365-for-
financials
Announcing C/AL Open Library
https://robertostefanettinavblog.com/2017/08/18/al-language-on-visual-studio-marketplace/
https://github.com/Microsoft/cal-open-library
About Project “C/AL Open Library”
About Project : “C/AL Open Library”
“The purpose of this repository is to build a C/AL library based on community
contributions that will serve as an accelerator for adoption of the Extensions V2
technology. The source code from this library will be included in the base application of
‘Dynamics 365 for Financials’ on a monthly basis.
The primary goal is to enable creation of .NET type wrappers written in C/AL that can
then be subsequently used from Extensions V2. DotNet types must not be part of the
definition of public functions in the submitted code to be callable by Extensions V2.
All contributions will be reviewed by Microsoft and assessed for the overall fit into the
product, for reusability and for following the general coding style that is present in the
other base application objects.”
NAV ON DOCKER
https://robertostefanettinavblog.com/2017/07/30/nav-on-docker-nav-blog/
https://www.navtechdays.com/2017/sessions#easier_and_devops_friendly_dynamics_nav_e
nvironments_using_docker_windows_c
NAV TechDays Session
Q/A TIME
RobertoStefanetti,
MVP BusinessSolutions- NAV
MicrosoftEducationInfluencer

More Related Content

PPTX
NAV 2018 What's New
PPTX
NAV 2016 Events and Extensions
PPTX
NAV 2016 Workflow
PPTX
Salesforce Lightning Design System
PPTX
Lightning Experience with Visualforce Best Practices
PDF
synebo talk #1 Salesforce lightning
PPTX
LightSwitch - different way to create business applications
PPTX
sf tools from community
NAV 2018 What's New
NAV 2016 Events and Extensions
NAV 2016 Workflow
Salesforce Lightning Design System
Lightning Experience with Visualforce Best Practices
synebo talk #1 Salesforce lightning
LightSwitch - different way to create business applications
sf tools from community

What's hot (20)

PPTX
Dreamforce Developer Recap
PPTX
Build Next-gen Apps Faster with Lightning Components
POTX
Building End To End Lightning Apps - Dreamforce 2014
PPTX
Workflow
PDF
PDF
Syncfusion Company Brochure_May2015
PPTX
Get Started with Salesforce DX!
PDF
Lightning Experience for ISVs
PPTX
Introduction to lightning out df16
PPTX
Alex Tumanoff - LightSwitch - different way to create business applications
PDF
DF14 Partner Session Guide
PPTX
Secure Development on the Salesforce Platform - Part 2
ODP
Salesforce Super Slider Lightning Component ppt
PPTX
Migrating from Magento 1 to Magento 2 @ Magento Meetup Wien
PPTX
Build Apps Visually with Lightning App Builder
PPTX
Lightning Chess, The fun way to learn the Lightning Component Framework
PPTX
Lightning Components Introduction
PDF
Building Dynamic UI with Visual Workflow Runtime API
PPTX
Getting Certified - proven tips for success (French Touch Dreamin)
PDF
Summer '16 Lightning Update for ISVs (June 30, 2016)
Dreamforce Developer Recap
Build Next-gen Apps Faster with Lightning Components
Building End To End Lightning Apps - Dreamforce 2014
Workflow
Syncfusion Company Brochure_May2015
Get Started with Salesforce DX!
Lightning Experience for ISVs
Introduction to lightning out df16
Alex Tumanoff - LightSwitch - different way to create business applications
DF14 Partner Session Guide
Secure Development on the Salesforce Platform - Part 2
Salesforce Super Slider Lightning Component ppt
Migrating from Magento 1 to Magento 2 @ Magento Meetup Wien
Build Apps Visually with Lightning App Builder
Lightning Chess, The fun way to learn the Lightning Component Framework
Lightning Components Introduction
Building Dynamic UI with Visual Workflow Runtime API
Getting Certified - proven tips for success (French Touch Dreamin)
Summer '16 Lightning Update for ISVs (June 30, 2016)
Ad

Similar to VS Code and Modern Development Environment Preview (20)

PPTX
C/SIDE-C/AL Vs VS Code-AL
PPTX
NAV 2018 and NAV New Technology - Fast Tracks - 14 dicembre 2017
PPT
New in the Visual Studio 2012 IDE
PPT
A Lap Around Visual Studio 2010
PDF
Visual Studio 2008 Overview
PPTX
Vb.net ide
PPTX
Developing windows 10 universal apps
PPTX
visual studio basics
PPT
WPF Applications, It's all about XAML these days
PPTX
Microsoft Dynamics 365 Business Central
PPSX
Web development concepts using microsoft technologies
PPTX
VISUAL STUDIO Lect one.pptx
PPTX
NAV 2018 What's new, December 14, 2017, Milan
PPTX
7 free Visual Studio extensions
PDF
Microsoft Visual Studio vs Visio: 2023 Showdown
PPT
Modern C&C Systems, Using New Technologies
PPT
Introduction to Visual Studio 2022-OS.ppt
DOCX
Visual Studio2008 Product Comparison V1.08
PDF
TechnoGeek training report
PPT
Vs2008 Ms Lux
C/SIDE-C/AL Vs VS Code-AL
NAV 2018 and NAV New Technology - Fast Tracks - 14 dicembre 2017
New in the Visual Studio 2012 IDE
A Lap Around Visual Studio 2010
Visual Studio 2008 Overview
Vb.net ide
Developing windows 10 universal apps
visual studio basics
WPF Applications, It's all about XAML these days
Microsoft Dynamics 365 Business Central
Web development concepts using microsoft technologies
VISUAL STUDIO Lect one.pptx
NAV 2018 What's new, December 14, 2017, Milan
7 free Visual Studio extensions
Microsoft Visual Studio vs Visio: 2023 Showdown
Modern C&C Systems, Using New Technologies
Introduction to Visual Studio 2022-OS.ppt
Visual Studio2008 Product Comparison V1.08
TechnoGeek training report
Vs2008 Ms Lux
Ad

More from Roberto Stefanetti (20)

PPTX
Microsoft Azure - Passaggio al Cloud
PPTX
Dynamics 365 Business Central Wave 2 - Fast Tracks
PDF
Microsoft Power BI - Concetti base
PDF
Microsoft Dynamics 365 Business Central - ITA
PDF
Business Central CRM Module (ITA)
PDF
MSDYN365 Business Central On-premise Vs Cloud SaaS
PPTX
Dynamics NAV Concetti Base
PPTX
Microsoft Dynamics 365 Business Central April'19 release
PPTX
Python for dummies
PPTX
Implementing Microsoft Dynamics 356 Business Central On-Premise
PPTX
Microsoft Dynamics 365 Business Central - Overview October 2018
PPTX
GDPR Microsoft Strategies - Topics & Links
PPTX
ForNAV la nostra soluzione per i reports con Dynamics NAV
PPTX
MRP and Planning Overview
PPTX
NAV 2013 Cost Accounting Module
PDF
Document Management Systems con GLOBE e Dynamics NAV addon
PPTX
Dynamics NAV Warehouse Management System (WMS)
PPTX
NAV 2017 What's New
PPTX
Dynamics NAV con IEM - evento SEDP Cavaglià 2015
PPTX
Dynamics NAV CRM module
Microsoft Azure - Passaggio al Cloud
Dynamics 365 Business Central Wave 2 - Fast Tracks
Microsoft Power BI - Concetti base
Microsoft Dynamics 365 Business Central - ITA
Business Central CRM Module (ITA)
MSDYN365 Business Central On-premise Vs Cloud SaaS
Dynamics NAV Concetti Base
Microsoft Dynamics 365 Business Central April'19 release
Python for dummies
Implementing Microsoft Dynamics 356 Business Central On-Premise
Microsoft Dynamics 365 Business Central - Overview October 2018
GDPR Microsoft Strategies - Topics & Links
ForNAV la nostra soluzione per i reports con Dynamics NAV
MRP and Planning Overview
NAV 2013 Cost Accounting Module
Document Management Systems con GLOBE e Dynamics NAV addon
Dynamics NAV Warehouse Management System (WMS)
NAV 2017 What's New
Dynamics NAV con IEM - evento SEDP Cavaglià 2015
Dynamics NAV CRM module

Recently uploaded (20)

PPTX
SGT Report The Beast Plan and Cyberphysical Systems of Control
PDF
Planning-an-Audit-A-How-To-Guide-Checklist-WP.pdf
PDF
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
PPTX
agenticai-neweraofintelligence-250529192801-1b5e6870.pptx
PDF
4 layer Arch & Reference Arch of IoT.pdf
PDF
IT-ITes Industry bjjbnkmkhkhknbmhkhmjhjkhj
PDF
Improvisation in detection of pomegranate leaf disease using transfer learni...
PPTX
Training Program for knowledge in solar cell and solar industry
PDF
Statistics on Ai - sourced from AIPRM.pdf
DOCX
Basics of Cloud Computing - Cloud Ecosystem
PDF
Transform-Your-Streaming-Platform-with-AI-Driven-Quality-Engineering.pdf
PDF
The-Future-of-Automotive-Quality-is-Here-AI-Driven-Engineering.pdf
PPTX
GROUP4NURSINGINFORMATICSREPORT-2 PRESENTATION
PDF
Accessing-Finance-in-Jordan-MENA 2024 2025.pdf
PPTX
Custom Battery Pack Design Considerations for Performance and Safety
PPTX
Internet of Everything -Basic concepts details
PDF
Data Virtualization in Action: Scaling APIs and Apps with FME
PDF
Aug23rd - Mulesoft Community Workshop - Hyd, India.pdf
PPT
Galois Field Theory of Risk: A Perspective, Protocol, and Mathematical Backgr...
PDF
5-Ways-AI-is-Revolutionizing-Telecom-Quality-Engineering.pdf
SGT Report The Beast Plan and Cyberphysical Systems of Control
Planning-an-Audit-A-How-To-Guide-Checklist-WP.pdf
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
agenticai-neweraofintelligence-250529192801-1b5e6870.pptx
4 layer Arch & Reference Arch of IoT.pdf
IT-ITes Industry bjjbnkmkhkhknbmhkhmjhjkhj
Improvisation in detection of pomegranate leaf disease using transfer learni...
Training Program for knowledge in solar cell and solar industry
Statistics on Ai - sourced from AIPRM.pdf
Basics of Cloud Computing - Cloud Ecosystem
Transform-Your-Streaming-Platform-with-AI-Driven-Quality-Engineering.pdf
The-Future-of-Automotive-Quality-is-Here-AI-Driven-Engineering.pdf
GROUP4NURSINGINFORMATICSREPORT-2 PRESENTATION
Accessing-Finance-in-Jordan-MENA 2024 2025.pdf
Custom Battery Pack Design Considerations for Performance and Safety
Internet of Everything -Basic concepts details
Data Virtualization in Action: Scaling APIs and Apps with FME
Aug23rd - Mulesoft Community Workshop - Hyd, India.pdf
Galois Field Theory of Risk: A Perspective, Protocol, and Mathematical Backgr...
5-Ways-AI-is-Revolutionizing-Telecom-Quality-Engineering.pdf

VS Code and Modern Development Environment Preview

  • 3. Customizations Vs Extensions Dynamics NAV Allows customization of application logic to deliver customer, industry, or region specific functionality How? Customizations: modification of base tables, code, and other objects Extensions: addition of well-defined modules that are invoked alongside the base application Why? Upgrade … and … v2
  • 4. Modern Development Environment - Why ? http://aka.ms/navdeveloperpreview https://blogs.msdn.microsoft.com/nav/2016/12/20/announcing-the-preview-of-development-tools-for-dynamics-nav/ https://robertostefanettinavblog.com/2017/07/13/nav-development-preview-updated-documentation/
  • 5. Extensions Topics EXTENSIONS  Extensions are the way to build for Software as a Service (SaaS)  Allow you to sell your product in Microsoft AppSource - free advertising! Increase your sales volume!  Takes advantage of our upgrade investments  Offer additional protection of your IP compared to the very “open source” nature of classic NAV  Platform stability  Reduced time to deployment
  • 6. Extensions are customizations ? So, extensions are customizations? Yes! If you're familiar with the Dynamics NAV customization model, then you're probably used to making changes directly on objects. The extension model asks you to design your changes differently – namely make those changes by extending the core objects and linking to code using events. For example, instead of adding a new field that represents the customer’s birthday to the customer table, put that field into a table extension. And if you want to write code then put it in an event subscriber which can then check the birthday and then do something about it. https://blogs.msdn.microsoft.com/nav/2016/12/13/more-information-about-the-developer-preview-for-dynamics-nav/
  • 8. Extensions 2.0 https://blogs.msdn.microsoft.com/nav/2016/12/13/more-information-about-the-developer-preview-for-dynamics-nav/ Extensions 2.0 is the name we use for the new versions of extensions - ones that aren't based on the DELTA file design. Making extensions with the new tools is much easier than the current tools suite you may be familiar with. With Extensions 2.0, you code and write new objects that describe the additional capabilities you want in the system. You’ll use Table Extension and Page Extension objects to describe new fields and UI elements, and you'll use the in-client page designer to make those changes in a WYSIWIG way – all of which are stored as extensions under the cover.
  • 9. VS (Visual Studio Code) “VS: Not Visual Studio !”  Free  Open source (MIT license)  Code optimized  Now part of Visual Studio  Debugger  Native Git support  Always updated – monthly/nightly build  Apple iOS and Linux platforms  Extensions  Community https://code.visualstudio.com/ https://code.visualstudio.com/docs/customization/userdefinedsnippets https://blogs.msdn.microsoft.com/nav/tag/dyndev365/
  • 10. VS: Open Source, Cross Platform, Git “Open source, cross-platform, multi-language development environment that puts writing code at its center” https://code.visualstudio.com/
  • 11. VS: Commands  NO-INVOKE compilers (no dll / exe)  NO-DESIGNERS (no UI based development)  NO-AL DEBUGGER (built-in Node.js)  NO-DESKTOP APP (targeted for Web App)
  • 12. VS: Editing Features 1. Syntax coloring 2. Bracket Matching 3. Intellisense 4. Parameter hints 5. Code block folding 6. Go To Definition (F12) 7. Tooltips 8. Find All References (SHIFT+F12)
  • 13. VS: Workspace and UI Code Editor / Status – View – Side bars [Code Editor] 3 files open side by side (e.g. Merge) [Code Editor] Zoom (CTRL+/CTRL-) / Navigate (CTRL+TAB) [Status] Encoding / EOF / GoTo (CTRL+G) [Side] 1. EXPLORER 2. SEARCH 3. GIT 4. DEBUG 5. EXTENSIONS
  • 14. VS: GIT (Version Control) GIT (open-source distributed version control engine) - GIT local repository COMMIT to GitHub / VSTS - CMD : git remote add origin master <repo url> - CMD : git push –u origin master
  • 17. MDE - Developer Tools Preview START FROM HERE: https://blogs.msdn.microsoft.com/nav/2016/12/20/announcing-the-preview-of- development-tools-for-dynamics-nav/
  • 18. About “Preview” (from Foundation Post) https://blogs.msdn.microsoft.com/nav/2016/12/13/more-information-about-the-developer-preview-for-dynamics-nav/ Rebuilding the development tools for Dynamics NAV and Dynamics 365 for Financials is a long-term investment. We're not done with everything yet but we did want to give you a chance to see what we've done so far and to comment on it. Here’s some things to pay attention to: - The release is made available on an Azure Gallery image. - The preview is for you to play with and test - don't expect to write production code with it and don’t use it in production. - Don't try to take your existing solution and convert it - there are unfinished features and you'll probably be more frustrated than anything that the code doesn't work. - Do notice that not all procedures in the application will be available to call. We have blocked access to procedures which may run unsafe .NET or insecure methods. - Do write event/subscriber solutions - follow the existing guidelines on building extensions for the general design principles. - Do try the sample code we’ve published to get familiar with the syntax. Etc. etc. etc…. BUT WE ARE WORKING…
  • 19. AL Language - Coding Objects https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-programming-in-al https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-dev-overview https://robertostefanettinavblog.com/2016/11/29/microsoft-al-al-language-code-samples-for-developing-extensions/
  • 20. Visual Studio Code and NAV Extensions
  • 21. Visual Studio Code and NAV Extensions
  • 22. AL Development Env. Vs C/SIDE https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-get-started https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-dev-overview https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-programming-in-al https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-txt2al-tool https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-reference-overview Differences in the Development Environments Coming from the Dynamics NAV Development Environment and C/SIDE, there are some differences and optimizations that you should familiarize yourself with. The following sections go through these changes. C/SIDE AL Development Environment Dates are parsed based on culture settings. Locale independent and supports only: yyyy-mm-dd. Boolean values could be expressed as yes/no. Boolean values are expressed as true/false. https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-differences
  • 23. GitHUB – Microsoft AL https://github.com/Microsoft/AL https://github.com/Microsoft/AL/tree/master/samples https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-programming-in-al https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-dev-overview
  • 25. AL Language and Coding using Snippets
  • 26. AL Language and Coding using Snippets
  • 28. Isolation and Security - Limitations
  • 29. In Client Designer Scope: “Make an extension in the client itself” Business consultants and UX designers will love using this drag-and-drop interface. Rearrange fields, rename groups, and reposition elements to build a perfect extension to support an industry-specific solution or implement a business process optimization.
  • 31. Keyboard Shortcuts https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-keyboard-shortcuts Keyboard Shortcuts The following table provides an overview of some of the shortcut key combinations that you can use when you're working with Dynamics 365 for Financials in Visual Studio Code.
  • 32. About Reports in VS Code GREAT POST BY STEVEN RENDERS HERE http://thinkaboutit.be/2017/08/how-do-i-create-a-report-and-layout-in-vscode/ HOW DO I : CREATE A REPORT AND LAYOUT, IN VS CODE? “A question I get asked frequently is: Ho Do I Create a Report in VSCode, and to me more specific, How Do I Create the Layout, being an RDLC or Word layout? The answer is that you need to create the report object as an .al file, then you create and export the layout(s) and reference them from within the .al file.”
  • 33. “AL Language” on Visual Studio Marketplace https://robertostefanettinavblog.com/2017/08/18/al-language-on-visual-studio-marketplace/ https://marketplace.visualstudio.com/items?itemName=ms-dynamics-smb.al
  • 34. Vs Code “AL Extensions” on Marketplace https://robertostefanettinavblog.com/2017/08/31/vs-code-al-extensions-part-i/ There are some extensions that can be used in VS Code and are usefull for development with AL, I have listed and inserted a brief description, since they are constantly evolving, These extensions are currently available: – AL Language (By Microsoft) – AL Formatter (By Rasmus Aaen) – AL Runner (By Tobias Fenster) – NAV Skills AL Clean Code (by Mark Brummel) – Dynamics NAV/AL (By Zodiacfireworks) – Dynamics NAV SCM (by Cloud Ready Software) – NAV Snippets (By Naresh)
  • 35. Modern Development Environment - Links LINKS http://github.com/microsoft/al/ https://blogs.msdn.microsoft.com/nav/tag/dyndev365/ https://blogs.msdn.microsoft.com/nav/2016/11/04/dynamics-nav-and-help-a-new-world/ https://robertostefanettinavblog.com/2017/07/13/nav-development-preview-updated-documentation/ http://www.waldo.be/2017/02/20/make-the-new-developer-tools-available-on-a-local-machine/ VIDEOS Install Visual Studio Code With Al Compiler https://www.youtube.com/watch?v=aeE-C3z_qkI&t=53s Dynamics NAV - Getting Started With Visual Studio Code https://www.youtube.com/watch?v=d2GoSQUCuxE Visual Studio Code - Getting Started with Git(Hub) https://www.youtube.com/watch?v=NTY5VELbCWI Inside AL for Visual Studio Code | Where are we https://www.youtube.com/watch?v=xjceqM6V7BM&t=1483s Visual Studio Code Building Publishing and Debugging AL Projects https://www.youtube.com/watch?v=hpZcdqx0udA Visual Studio Code - Convert C/AL to AL https://www.youtube.com/watch?v=HCaooHKxBrM&t=239s
  • 38. FAQ #1 Some FAQ from MicrosoftEvents Sessions Question: What is Visual Studio Code? Answer: Visual Studio Code is the environment in which development of NAV apps will happen in the future. https://code.visualstudio.com/ Question: What is a snippet? Answer: Code snippets are templates that make it easier to enter repeating code patterns, such as loops or conditional-statements. https://code.visualstudio.com/docs/customization/userdefinedsnippets Question: What is a symbol? Answer: Instead of having the complete source code for NAV base app and other apps, you only have the symbols in order to know what you allowed to call/use/subscribe to Question: Where can i get the Object ID's Answer: http://aka.ms/AppsForFinancials
  • 39. FAQ #2 Question: How to set up al.json to work with visual studio code, outside a azure environment? Answer: Currently NAV only supports Windows Authentication for the new development environment, meaning it isn't easy Question: Is this only available on the VM, or can it be downloaded/installed locally? Answer: The advantage of using the VM is that you can remove and renew when we have new releases every month. You can shut down your VM to stop the cost for the VM. Question: I cannot find "AL Language" in VS Code, what do I do wrong? Answer: It is not publicly available, it is available on an Azure Gallery Image. use http://aka.ms/navdeveloperpreview to provision a VM with a new NAV version with visual studio code AND the AL addin
  • 40. Question: How to open Design Mode? Answer: Design Mode is only available in the Development Preview environments: use http://aka.ms/navdeveloperpreview to provision a VM with a new NAV version with visual studio code AND the AL addin Question: How does the In Client Designer works together with VSCode? Answer: all the changes in the "In App Designer" get saved as an extension. If you select "Save as files", then you can download them and keep working in VS Code. Otherwise you can save them as a change to the entire tenant. FAQ #3
  • 41. Links For more information about the Dynamics NAV Developer Preview and extensions, see the following resources: Microsoft MSDN https://msdn.microsoft.com/en-us/dynamics-nav/extending-microsoft-dynamics-nav-using- extension-packages https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-get-started https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-dev-overview https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-programming-in-al https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-inclient-designer https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-differences https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-keyboard-shortcuts My Blog https://robertostefanettinavblog.com/2017/08/18/al-language-on-visual-studio-marketplace/ https://robertostefanettinavblog.com/2016/12/20/announcing-the-preview-of-development- tools-for-dynamics-nav-dynamics-nav-team-blog https://robertostefanettinavblog.com/2017/02/11/all-about-microsoft-dynamics-365-for- financials
  • 42. Announcing C/AL Open Library https://robertostefanettinavblog.com/2017/08/18/al-language-on-visual-studio-marketplace/ https://github.com/Microsoft/cal-open-library
  • 43. About Project “C/AL Open Library” About Project : “C/AL Open Library” “The purpose of this repository is to build a C/AL library based on community contributions that will serve as an accelerator for adoption of the Extensions V2 technology. The source code from this library will be included in the base application of ‘Dynamics 365 for Financials’ on a monthly basis. The primary goal is to enable creation of .NET type wrappers written in C/AL that can then be subsequently used from Extensions V2. DotNet types must not be part of the definition of public functions in the submitted code to be callable by Extensions V2. All contributions will be reviewed by Microsoft and assessed for the overall fit into the product, for reusability and for following the general coding style that is present in the other base application objects.”