{"id":1032,"date":"2010-11-10T10:33:53","date_gmt":"2010-11-10T10:33:53","guid":{"rendered":"http:\/\/www.navision-blog.de\/2010\/11\/10\/dynamics-nav-2009-r2-developer-day\/"},"modified":"2010-11-11T09:42:22","modified_gmt":"2010-11-11T09:42:22","slug":"dynamics-nav-2009-r2-developer-day","status":"publish","type":"post","link":"http:\/\/www.navision-blog.de\/blog\/2010\/11\/10\/dynamics-nav-2009-r2-developer-day\/","title":{"rendered":"Dynamics NAV 2009 R2 Developer Day"},"content":{"rendered":"<p>Heute fand der \u201cDynamics NAV 2009 R2 Developer Day\u201d statt. Bei diesem Event hat Microsoft mal wieder eine Konferenz in die Welt gestreamt. Da der Dynamics Bereich aber traditionell eher verschlossen ist, wurde der Stream nicht &#246;ffentlich gemacht, sondern nur in den jeweiligen Microsoft-Centern in 18 L&#228;ndern f&#252;r eingeladene Partner gezeigt.<\/p>\n<p>In diesem Blogpost verwalte ich meine eigenen Notizen zum Developer Day. Falls etwas zu knapp formuliert ist, kann gern &#252;ber die Kommentare nachgefragt werden.<\/p>\n<p>Als Release-Termin f&#252;r Dynamics NAV 2009 R2 wurde der 15.12. angegeben.<\/p>\n<h5>What\u2019s new in C\/SIDE<\/h5>\n<p>Page Designer<\/p>\n<ul>\n<li>Neuer Wizzard <\/li>\n<li>St&#228;rkerer Einsatz von Factboxes <\/li>\n<li>\u201cStrukturhighlighting\u201d (= Gruppen werden fett dargestellt) <\/li>\n<\/ul>\n<p>Go to Definition<\/p>\n<ul>\n<li>Ctrl+F12 ==&gt; Go to definition <\/li>\n<li>Wenn die Definition nicht im selben Objekt ist, wird immer ein neues Designer-Fenster ge&#246;ffnet, auch falls schon ein Fester des Objekts offen ist . <\/li>\n<li>Momentan kein \u201cFind References\u201d <\/li>\n<\/ul>\n<p>Multi-Developer Szenarien<\/p>\n<ul>\n<li>Locking von Objekten <\/li>\n<li>&#214;ffnen von gelockten Objekten ist in Read-Only-Modus m&#246;glich <\/li>\n<li>\u201cForce unlock\u201d ist f&#252;r Superuser m&#246;glich <\/li>\n<li>Meine Frage nach \u201cLock auch aus C\/AL-Code\u201d wurde mit Ja beantwortet. <\/li>\n<li>Tools\/Options\/\u201cAuto-lock on design\u201d\n<ul>\n<li>Meine Frage nach \u201cAuto-lock on first modification\u201d wurde leider nicht beantwortet <\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5>How to use the application testability features<\/h5>\n<ul>\n<li>Vortrag war Low-Level-Einf&#252;hrung in automatisiertes Testen <\/li>\n<li>Keine Verbesserungen zu NAV 2009 SP 1\n<ul>\n<li>also auch immer noch kein Mocking von Triggern <\/li>\n<\/ul>\n<\/li>\n<li>Jeder Test wird in eigener Transaktion durchgef&#252;hrt <\/li>\n<li>Code nach ASSERTERROR wird trotzdem ausgef&#252;hrt\n<ul>\n<li>Transaktion wird jedoch zur&#252;ck gerollt <\/li>\n<\/ul>\n<\/li>\n<li>Neues Application Test Toolset auf Partnersource (mit 226 Test Cases)\n<ul>\n<li>Meine Frage nach einer Erweiterung der Standardtestfunktionen wurde nicht beantwortet. <\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5>.NET Interoperability<\/h5>\n<ul>\n<li>Interop nur mit .NET 3.5 libs m&#246;glich <\/li>\n<li>Nur auf NAV Server bzw. RTC <\/li>\n<li>Anlegen von .NET Typen ist unglaublich umst&#228;ndlich\n<ul>\n<li>Warum schreibt man alle Typen in eine einzige Liste? <\/li>\n<li>Keine einfache M&#246;glichkeit &#252;ber Namespaces zu browsen <\/li>\n<\/ul>\n<\/li>\n<li>Simple Datentypen (Double, Integer, Text) werden automatisch in ihre .NET-Entsprechungen gemappt\n<ul>\n<li>Options auf enums? <\/li>\n<\/ul>\n<\/li>\n<li>Format() mapped auf .ToString() <\/li>\n<li>Achtung: Static classes werden &#252;ber alle Client-Sessions geshared <\/li>\n<li>NAV Scoping Regeln werden angewendet\n<ul>\n<li>Wenn lokale C\/AL-Methode endet, wird das .NET Objekt disposed <\/li>\n<li>Was ist mit Referenzen in noch lebenden .NET Objekten <\/li>\n<\/ul>\n<\/li>\n<li>.NET Variablen habe ein RunOnClient-Property <\/li>\n<li>Deployment von Custom .NET Assemblies\n<ul>\n<li>Auf C\/SIDE-Client f&#252;r Development (Compile) <\/li>\n<li>Auf die Tier wo der .NET Typ benutzt wird (siehe RunOnClient) <\/li>\n<\/ul>\n<\/li>\n<li>Client Warning bei erster Benutzung einer .NET Assembly\n<ul>\n<li>Keine Warnung bei SPN-Deployment <\/li>\n<\/ul>\n<\/li>\n<li>Kein try\/catch\/finally Exception handling\n<ul>\n<li>Exception wird als Textnachricht an den Client gesendet <\/li>\n<\/ul>\n<\/li>\n<li>Keine Events <\/li>\n<\/ul>\n<h5>Calling out to other Web Services from NAV<\/h5>\n<p>NAV Web Services<\/p>\n<ul>\n<li>NAV 2009 SP1 f&#252;hrt Web Services immer in UTC-Zeit aus <\/li>\n<li>NAV 2009 R2 f&#252;hrt WebServiceDefaultTimeZone ein (Default UTC) <\/li>\n<li>Manuelles Change-Tracking immer noch n&#246;tig <\/li>\n<li>Meine Frage nach \u201cechtem\u201d WCF noch unbeantwortet (aber Demo sah so aus) <\/li>\n<\/ul>\n<p>Externe Web Services<\/p>\n<ul>\n<li>Benutzt .NET Interop ==&gt; Genauso wie in C# <\/li>\n<li>Wenn WSL vorhanden, dann kann ein Proxy &#252;ber svcutil erzeugt werden. Dieser muss dann als DLL auf den NAV Server deployed werden <\/li>\n<li>Meine Frage nach asynchronem Aufruf wurde nicht beantwortet\n<ul>\n<li>Ich vermute unm&#246;glich, da keine .NET Events unterst&#252;tzt werden und ich noch keine M&#246;glichkeit sehe Callbacks zur&#252;ck ins NAV zu registrieren <\/li>\n<li>Sicherlich m&#246;glich durch Publish eines Callback-Webservice (aber das ist irgend nicht sch&#246;n) <\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5>CRM Integration<\/h5>\n<ul>\n<li>\u201cConnector for Microsoft Dynamics\u201c f&#252;r das Mapping\n<ul>\n<li>Hat NAV und CRM Adapter <\/li>\n<li>Eigene 3-Tier-Applikation mit eigenem SQL-Server f&#252;r Integrationsdaten <\/li>\n<li>Integration ID \u2013 GUID h&#228;lt NAV und CRM Datensatz zusammen <\/li>\n<\/ul>\n<\/li>\n<li>Neue Database Trigger in Codeunit 1 die IMMER bei INSERT, MODIFY, DELETE und RENAME feuern <\/li>\n<li>Jede zu synchronisierende Tabelle muss auf NAV Seite als Page WebService ver&#246;ffentlicht werden <\/li>\n<li>Viele Synchronisationswege nur One-Way\n<ul>\n<li>Rechnungen sollten z.B. nur vom ERP-System verwaltet werden <\/li>\n<\/ul>\n<\/li>\n<li>Eindruck: Unglaublich kompliziertes System, da Mapping &#252;ber Wizzard im Connector mit eigener kleiner Programmiersprache\n<ul>\n<li>Warum keine simple C# Projektvorlage mit ein paar Interfaces die man implementieren muss? <\/li>\n<li>Warum extra SQL-Server-Instanz? Warum reicht nicht eine Message-Queue? <\/li>\n<\/ul>\n<\/li>\n<li>Backup und Restore muss zwischen allen 3 Datenbanken (NAV, CRM, Connector) synchronisiert werden <\/li>\n<\/ul>\n<h5>SSRS (RDLC) Reports in Microsoft Dynamics NAV 2009<\/h5>\n<ul>\n<li>Dataset kann refreshed werden ohne das Visual Studio geschlossen wird <\/li>\n<li>Printer Selection funktioniert jetzt mit RTC &#252;ber die Request Page <\/li>\n<li>Transfooter und Transheader offenbar m&#246;glich (siehe <a href=\"http:\/\/blogs.msdn.com\/nav\">http:\/\/blogs.msdn.com\/nav<\/a>) <\/li>\n<li>Kein Druck auf dem NAV Server\n<ul>\n<li>Wie Archivierung von PDFs? <\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5>Developing Pages<\/h5>\n<ul>\n<li>Keine wirklichen Neuerungen in R2 <\/li>\n<\/ul>\n<h5>Business Data Visualization Add-Ins for the RTC<\/h5>\n<ul>\n<li>Interessante neue Visualisierungsm&#246;glichkeiten\n<ul>\n<li>Samples werden auf Beispiel-DVD mitgeliefert <\/li>\n<li>Beispiel: Interaktive Zeitreihe <\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5>Ausblick auf Dynamics NAV 7<\/h5>\n<ul>\n<li>Forms Designer ist bereits ausgebaut &#8211; \u201cThere is no way back\u201d <\/li>\n<li>C\/SIDE bleibt die Entwicklungsplattform \u2013 Keine Visual Studio Variante\n<ul>\n<li>Aussage in Hamburg: Entwicklung im RTC \u2013 Gezeigte Screenshots sagen etwas anderes <\/li>\n<\/ul>\n<\/li>\n<li>Offenbar integrierte Versionskontrolle geplant \ud83d\ude09 <\/li>\n<li>UI-Testing \u201ck&#246;nnte\u201d kommen <\/li>\n<li>.NET Interop mit Events <\/li>\n<li>Rewrite vieler interner Funktionen um das .NET-Framework besser zu nutzen\n<ul>\n<li>Da es in NAV 7 keinen Classic-Client geben wird, ist dies auch problemlos m&#246;glich.<\/li>\n<\/ul>\n<\/li>\n<li>Keine Hybrid-Reports mehr. Entweder Classic Reports oder RDLC\n<ul>\n<li>100% automatische Konvertierung in neuen Report Designer <\/li>\n<\/ul>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Heute fand der \u201cDynamics NAV 2009 R2 Developer Day\u201d statt. Bei diesem Event hat Microsoft mal wieder eine Konferenz in die Welt gestreamt. Da der Dynamics Bereich aber traditionell eher verschlossen ist, wurde der Stream nicht &#246;ffentlich gemacht, sondern nur in den jeweiligen Microsoft-Centern in 18 L&#228;ndern f&#252;r eingeladene Partner gezeigt. In diesem Blogpost verwalte [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[222,6],"tags":[602,601,422],"_links":{"self":[{"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/posts\/1032"}],"collection":[{"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/comments?post=1032"}],"version-history":[{"count":9,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/posts\/1032\/revisions"}],"predecessor-version":[{"id":1041,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/posts\/1032\/revisions\/1041"}],"wp:attachment":[{"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/media?parent=1032"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/categories?post=1032"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/tags?post=1032"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}