What's New für Entwickler (mit VS Code)

14. Dezember 2017 16:02

Beim Arbeiten mit AL in Visual Studio Code (VSC) ist ja verglichen zu C/SIDE so ziemlich alles neu, auch wenn die Syntax im Vergleich zu C/AL ähnlich aussieht, deswegen starte ich hier mal einen Sammelthread für das "Modern Development Environment" ab NAV 2018, bei dem die initiale Previewphase ja nun abgeschlossen ist.
In diesem Thema bitte keine Beiträge zu C/SIDE bzw. C/AL.

Starting with AL: Frequent issues (mostly with download symbols).
Die Lizenz auf dem Server bzw. in der Datenbank muss dabei auch eine NAV 2018 Entwickerlizenz sein. Mit der NAV 2018 Cronuslizenz oder einer NAV 2017 Entwickerlizenz war es bei uns nicht möglich, "Download Symbols" erfolgreich auszuführen.

A.J. Kauffmann
How to connect Visual Studio Code with NAV 2018
The different AL Extensions versions for Visual Studio Code
Running NAV docker containers on a local Hyper-V Virtual Machine

Waldo
Autonumber Objects in AL
Enable Code Analysis for AL
Enable the updated code analysis for AL
CRS AL Language Extension

Microsoft Docs
Development in AL

MSDN NAV-Blog
Generate Symbols in a Modern Development environment with Microsoft Dynamics NAV 2018
Import Symbols in New or Upgrade Databases with Microsoft Dynamics NAV 2018

Sonstige Blogs
Alexey N. Finogenov
Sample Extension v2.0 — Dynamics NAV / AL extension / SaaS — ALF Export Setup Tabs to Excel

GitHub
FAQ

Aufzeichnung eines Webinars mit Mark Brummel
Dynamics NAV - C/AL vs AL - Spot the Differences
Weitere Videos:
Dynamics NAV - Getting Started With Visual Studio Code
Visual Studio Code Building Publishing and Debugging AL Projects

Extension Tools
AL Code Outline

Themes
Mit diesem Farbdesign, das farblich an C/AL erinnert, erscheinen Funktionsnamen, Befehle, einfache Feldnamen u.a. in AL im Fettdruck.
Dynamics NAV C/Side Theme

Als kostenloses Add-on Page 1000 um das Arbeiten mit alten und neuen Werkzeugen zu verbinden.
ForNav Modern Object Explorer

Re: What's New für Entwickler (mit VS Code)

14. Dezember 2017 16:28

Hi,

ich hab bisher noch nichts mit Visual Studio Code gemacht. :-( :-?

Habe ich richtig verstanden, dass man das VS Code AL benutzt um Extensions für Nav2018 zu programmieren?
Und das geht nur mit dem VS Code, und nicht mit Visual Studio?
Und alles andere wie gehabt weiter in dem "Nav Development Environment" mit C/SIDE C/AL ?

Danke

(Verzeiht meine Dumme Fragen zum NAV 2018, aber nachdem ich auf Nav 2009 CC festsitze, und den Anschluss zu 2016 verpasst habe, hoffe ich nun mit 2018 wieder anschluss zu finden )

Re: What's New für Entwickler (mit VS Code)

15. Dezember 2017 00:23

Habe ich richtig verstanden, dass man das VS Code AL benutzt um Extensions für Nav2018 zu programmieren?

Ja, derzeit nur für Extensions (für NAV). In Zukunft soll aber die gesamte Entwicklung dort stattfinden.
Und das geht nur mit dem VS Code, und nicht mit Visual Studio?

Ja. VS Code hat trotz der Namensähnlichkeit nichts mit dem "großen" Visual Studio gemein. Das ist ein plattformübergreifender Texteditor (auch für macOS,Linux) für Programmiersprachen mit integrierter Quellcodeverwaltung, der mit zahllosen Extensions für viele Zwecke erweitert werden kann.
https://code.visualstudio.com/
Eine dieser Extensions (für VS Code) ist "AL Language" von MS, die erst das Programmieren von Extensions (für NAV :wink: ) in AL (Application Language) ermöglicht. Ohne die "AL Language"- Extension gibt es keine Verbindung zur Datenbank bzw. zu deren Dienst, keinen Debugger, kein sprachspezifisches Intellisense, keine Codevorlagen, kein Kompilieren mit Fehleranzeige usw.
Daneben gibt es auch schon diverse kleine Extension-Tools für NAV, hatte Natalie hier schon verlinkt.
Und alles andere wie gehabt weiter in dem "Nav Development Environment" mit C/SIDE C/AL ?

Noch, aber nicht mehr lange. Da sind die Tage gezählt und da die Lernkurve für die neue Umgebung recht hoch ist, lieber heute als morgen damit anfangen.

Re: What's New für Entwickler (mit VS Code)

15. Dezember 2017 09:36

Hi Kowa,

danke für die Erklärung.

Mit "in der Zukunft soll die ganze Entwicklung dort stattfinden", ist damit "Alles" gemeint? Pages, Reports, usw?

Das Ding ist irgendwie total an mir vorbeigegangen, so war ich immer im Glaube irgendwann würde Visual Studio (das Große) die NAV Entwicklungsumgebung ablösen.
Dann muss ich jetzt aufpassen dass ich den Zug nicht wieder verpasse. Ist C# .Net für die NAV Zukunft wichtig? Habe die letzten Jahre fleißig gelernt weil auch immer dachte dass ich das in der NAV Zukunft brauchen würde.

Re: What's New für Entwickler (mit VS Code)

15. Dezember 2017 17:57

elTorito hat geschrieben:Mit "in der Zukunft soll die ganze Entwicklung dort stattfinden", ist damit "Alles" gemeint? Pages, Reports, usw?

Ja. Standard Pages kannst du dann mit "PageExtensions" anpassen. Wenn du das VSCode mit der AL Extension installiert hast mach einfach mal "STRG + SHIFT + P" und dann "AL: GO!". Dann wird die ein Projektordner angelegt mit einem kleinen "Hallo Welt!" Beispiel drin.. in diesem wird die "Customer Card" erweitert.
Es gibt auch einen "In App Designer". Mit dem kannst du im laufendem NAV Anpassungen machen und diese anschliessend runter laden. (meine 2 Versuche damit sind bisher aber gescheitert).

elTorito hat geschrieben:Ist C# .Net für die NAV Zukunft wichtig? Habe die letzten Jahre fleißig gelernt weil auch immer dachte dass ich das in der NAV Zukunft brauchen würde.

Nein und Ja.
Du wirst in NAV kein DotNet Bibliotheken und Variabeln mehr direkt benutzen können.
ABER es gibt "Azure Funktionen" welche in jeder X-Beliebigen Programmiersprache geschrieben werden können. Dies ermöglicht einen viel einfacheren Zugriff auf viel mehr Funktionen.

Das Ganze fühlt sich am Anfang sehr ungewohnt an. Lass dich nicht entmutigen. Ich hab nebenbei auch noch C/SIDE offen um bei manchen Sachen einfach nach zu schauen. Fang an für Sachen die du immer wieder machen musst, Makros zu schreiben, das erleichtert die arbeit ungemein. Nimm dir die Zeit und Teste einfach mal rum. Durch die Integration mit Docker lässt sich eine NAV2018 Testumgebung innerhalb von 5 Minuten auf setzen.

Re: What's New für Entwickler (mit VS Code)

16. Dezember 2017 00:14

Wohl wichtiger als C# innerhalb eines erweiterten NAV wäre es m.E., JavaScript zu lernen, dafür gibt es in AL bereits integrierten Support für Control-Add-ins. Das ist hier zukünftig also viel leichter als in C/AL einzubinden.
https://blogs.msdn.microsoft.com/nav/2017/10/12/nav-development-preview-october-update/

Für Control-Add-ins kann C# auch nur im WIndowsclient (vormals RTC) genutzt werden, und da der bei MS auch schon auf der erweiterten Abschussliste steht, werden nur noch Technologien forciert, die im Webclient bzw. Universal App für mobilen Einsatz und natürlich der Cloud genutzt werden können.

Für das visuelle Design bei Reports gibt es (noch?) keinen Support, das läuft weiterhin den über Report Builder oder Visual Studio Professional, wenn man mehr Komfort möchte. In AL sind es dann im Gegensatz zu C/AL pro Report zwei getrennte Dateien, eine mit .al für den Quellcode und eine mit .rdlc-Endung für das Layout.

Re: What's New für Entwickler (mit VS Code)

18. Dezember 2017 09:43

Aus dem Blog von A.J. Kauffmann:

Porteinstellungen und Webclient url sind ggf. anzupassen
How to connect Visual Studio Code with NAV 2018

Es kursieren verschiedene Builds bzw. Bezeichnungen, je nach Installationsweg
The different AL Extensions versions for Visual Studio Code
Obere Extension (for Dynamics NAV) wurde über die .vsix-Datei der DVD im Ordner ModernDev manuell installiert, unten (for Dynamics 365) über Marketplace installiert.
ALextensions2.png

Nachtrag: Die Versionen müssen dabei genau zueinander passen, siehe hier.

Running NAV docker containers on a local Hyper-V Virtual Machine
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: What's New für Entwickler (mit VS Code)

19. Dezember 2017 13:03

Das Ganze fühlt sich am Anfang sehr ungewohnt an. Lass dich nicht entmutigen. Ich hab nebenbei auch noch C/SIDE offen um bei manchen Sachen einfach nach zu schauen. Fang an für Sachen die du immer wieder machen musst, Makros zu schreiben, das erleichtert die arbeit ungemein. Nimm dir die Zeit und Teste einfach mal rum. Durch die Integration mit Docker lässt sich eine NAV2018 Testumgebung innerhalb von 5 Minuten auf setzen.


Ja, Lernkurve ist hoch. Da sind viele Begriffe die ich zwar mal gehört habe, aber nicht näher mit befasst habe. Die da wäre, Docker, PowerShell, Visual Studio Code, Dies das jenes... Sehr viel Neuland für mich :roll:

Wenn ich Fragen rund ums Visual Studio Code , Extensions Programmierung/Veröffentlichung, ... ... , habe. Auch hier in den Nav 2018 Bereich?

Re: What's New für Entwickler (mit VS Code)

19. Dezember 2017 13:19

elTorito hat geschrieben:Wenn ich Fragen rund ums Visual Studio Code , Extensions Programmierung/Veröffentlichung, ... ... , habe. Auch hier in den Nav 2018 Bereich?

Wenn es im Zusammenhang mit Microsoft Dynamics NAV 2018 zu tun hat: Klar, dafür ist dieses Forum ja da.
Wenn es nichts mit Microsoft Dynamics zu tun hat, könnte deine Frage in eine darauf spezialisierte Community besser aufgehoben sein.

Re: What's New für Entwickler (mit VS Code)

19. Dezember 2017 14:53

Ich habe jetzt schon einiges mit VS Code probiert und auch erste Erfolge erzielt. Eines ist mir bisher nicht gelungen und ich bin mir sicher, dass ich mich nur zu blöd anstelle: wie kann ich in einer Extension das Verhalten eines vorhandenen Feldes ändern? Also eine simple Logik, z.B.: ich möchte eine E-Mail-Adressfeld mit einer RegEx-Prüfung auf Gültigkeit versehen. Die Codeunit mit der Funktion zur Prüfung ist kein Problem und fertig, aber wie kann ich jetzt auf z.B. den OnValidate-Trigger des Feldes zugreifen oder von mir aus natürlich auch auf ein passendes Event.

Sync-NAVApp erforderlich für Extensions V2

19. Dezember 2017 15:01

Zum bekannten Sync-NAVTenant gesellt sich für Extensions noch ein zweiter Befehl zum Synchronisieren: Sync-NAVApp.

Der muss zwischen Publish-NAVApp und Install-NAVApp eingeschoben werden, um Tabellen und Felder der Extension für die Installation bereitzustellen, ggf. zusammen mit dem ebenfalls neuen Start-NAVDataUpgrade falls eine ältere Version der Extension vorhanden war.

How to: Publish and Install an Extension v2.0

Aber nicht die einzigen Newcomer, komplette Liste der aktuellen Cmdlets hier:
Microsoft.Dynamics.Nav.Apps.Management (NAV 2018)
im Vergleich zu NAV 2017
Microsoft.Dynamics.Nav.Apps.Management (NAV 2017)

Re: What's New für Entwickler (mit VS Code)

19. Dezember 2017 15:44

Tim hat geschrieben:Also eine simple Logik, z.B.: ich möchte eine E-Mail-Adressfeld mit einer RegEx-Prüfung auf Gültigkeit versehen. Die Codeunit mit der Funktion zur Prüfung ist kein Problem und fertig, aber wie kann ich jetzt auf z.B. den OnValidate-Trigger des Feldes zugreifen oder von mir aus natürlich auch auf ein passendes Event.


Es gibt die Möglichkeit es beim Validieren des Tabellenfeldes zu machen (OnBeforeValidateEvent/OnAfterValidateEvent)
Code:
[EventSubscriber(ObjectType::Table, 18, 'OnAfterValidateEvent', 'MEINFELD', true, false)]
local procedure OnAfterValidateEventEmail(var Rec : Record "Customer"; var xRec : Record "Customer"; CurrFieldNo : Integer);
...


Oder wenn du die Validierung nur auf ein bestimmtes Feld auf Page xy haben möchtest dann mit einer Pageextension
Code:
pageextension 50099 CustomerExt extends Customer
{
    layout
    {
        modify("E-Mail") {
            //MEin Code
        }
    }
}

Anniversary Update

20. Dezember 2017 18:09

Andere Programmiersprachen konnten es schon immer, AL kann es nun auch, und ab NAV 2018 R2 sollte es zusammen mit NAV dann auch gehen: Funktionen können überladen werden.
NAV Development Preview – Anniversary Update

Re: What's New für Entwickler (mit VS Code)

21. Dezember 2017 17:07

In C/AL müssen temporäre Tabellen zur Laufzeit ja nicht lizenziert sein, nur bei der Entwicklung. Bei Extensions soll es aber anders sein; Apps, die temporäre Tabellen außerhalb der Lizenz verwenden, sind nicht installierbar (Quelle: Weihnachtsrundmail von Mark Brummel).

Re: What's New für Entwickler (mit VS Code)

10. Januar 2018 17:09

Aufzeichnung eines Webinars mit Mark Brummel
Dynamics NAV - C/AL vs AL - Spot the Differences

Weitere Videos:
Dynamics NAV - Getting Started With Visual Studio Code
Visual Studio Code Building Publishing and Debugging AL Projects

Re: What's New für Entwickler (mit VS Code)

12. Januar 2018 11:24

Kowa hat geschrieben:Aufzeichnung eines Webinars mit Mark Brummel
Dynamics NAV - C/AL vs AL - Spot the Differences


Gibt es eigentlich eine Demo Lizenz für Entwickler?
Ich wollt gerade mal dem Webinar folgen. Und scheitere bei der Konvertierung Txt2Al.
"You do not have Permissions to run the File, Export, Text, System"
So kann man doch nicht testen "What's new" , zumindest nicht als Endanwender Entwickler :-)

:-(

Re: What's New für Entwickler (mit VS Code)

12. Januar 2018 11:42

elTorito hat geschrieben:Gibt es eigentlich eine Demo Lizenz für Entwickler?
Speziell in Kombination mit AL nicht - hast du schon die normale NAV Demolizenz ausprobiert? Natürlich auf Basis einer Demo-DB. Sämtliche Programme im Admin-Modus öffnen.

Re: What's New für Entwickler (mit VS Code)

12. Januar 2018 11:46

Natalie hat geschrieben:
elTorito hat geschrieben:Gibt es eigentlich eine Demo Lizenz für Entwickler?
Speziell in Kombination mit AL nicht - hast du schon die normale NAV Demolizenz ausprobiert? Natürlich auf Basis einer Demo-DB. Sämtliche Programme im Admin-Modus öffnen.


Ja. Habe unsere flf probiert. Damit kann ich zwar nun im Klassischen Nav Dev Environment Objekte Mnauell als *txt exportieren (kam mit der Cronus Lizenz auch vorher die Meldung).
Aber über die Txt2Al kommt noch immer die Fehlermeldung. Habe unsere flf in Cronus.flf umbenannt und ins 110\RoleTailored Client\ kopiert, dann Dienst neu gestartet. Hmm.

VSIX und CU müssen chronologisch passen

23. Januar 2018 11:44

Generate Symbols in a Modern Development environment with Microsoft Dynamics NAV 2018

Wichtiger Hinweis im Artikel: Die Version der Extension muss immer zum Cumulative Update der Datenbank passen, wo die Extension implementiert werden soll.
NOTE: It is very important to have the VSIX from the same platform version as your Dynamics NAV installation, otherwise you cannot publish (F5) your extension. Be really sure, then, to have the same VSIX targeting your Dynamics NAV 2018 installation files (e.g. VSIX RTM targeting RTM installation, VSIX CU 1 targeting CU 1 installation and so on).

Das bedeutet leider mal wieder erhöhten Verwaltungsaufwand bei der Entwicklung :roll: .

Re: What's New für Entwickler (mit VS Code)

23. Januar 2018 11:58

Bist du die Sicher, dass du dies richtig Interpretierst?
Da steht nur das du im VS Code die entsprechende AL Extension benötigst um es mit F5 zu publishen. Das sollte man in ner Liveumgebung eh nicht machen.
Da steht nix davon das die *.app immer mit der gleichen Version erstellt worden sein muss.

Re: What's New für Entwickler (mit VS Code)

23. Januar 2018 12:41

Ich denke da nicht an Liveentwicklung.
Als Partner bekommen wir Bestellungen für alle Versionen, daher haben wir auch alle Datenbankversionen. Das bedeutet auch, dass wenn jemand eine Extension für eine bestimmte Version haben möchte, diese zum Testen in dieses CU eingespielt werden muss. Das ist dann aber nur möglich, wenn man genau die richtige (korrespondierende) VSIX installiert hat, die zum CU der Datenbank passt. Die notwendige Technik muss also in Zukunft auch separat monatlich verwaltet werden und die VSIX bei Bedarf immer wieder in VS Code deinstalliert und neu installiert werden.

Re: What's New für Entwickler (mit VS Code)

24. Januar 2018 00:12

Waldo hat undokumentierte Funktionen entdeckt.
Autonumber Objects in AL
Enable Code Analysis for AL

Re: What's New für Entwickler (mit VS Code)

5. Februar 2018 00:15

AL Code Outline ist eine Extension um die Struktur eines AL-Projekts (al, rdlc, xml, json, javascript, css, html usw.) als TreeView darstellen und darin zu navigieren.

Re: What's New für Entwickler (mit VS Code)

5. Februar 2018 10:03

Import Symbols in New or Upgrade Databases with Microsoft Dynamics NAV 2018

Re: What's New für Entwickler (mit VS Code)

6. Februar 2018 16:59

Mit diesem Farbdesign, das farblich an C/AL erinnert, erscheinen u.a. auch Funktionsnamen, Befehle, einfache Feldnamen in AL im Fettdruck.
Dynamics NAV C/Side Theme
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.