Rash thoughts about .NET, C#, F# and Dynamics NAV.


"Every solution will only lead to new problems."

Thursday, 28. September 2006


Nachlese: TechTalk zu WCF mit Christian Weyer

Filed under: TechTalk,WCF — Steffen Forkmann at 13:23 Uhr

Gestern war ich mit zwei Kollegen beim “Teile und herrsche: Verteilte Lösungen mit der Windows Communication Foundation”-TechTalk in Leipzig. Der Vortragende Christian Weyer  zeigte wieder alles was einen guten Redner ausmacht und vermittelte eine sehr gute und vor allem lustige Einführung in das Thema Serviceorientierte Architektur.

Christian schaffte es in ca. 3 Stunden die komplette Infrastruktur seiner Beispielanwendung TecTv zu erklären und in Live-Codesamples um zu setzen.

Meine ersten Eindrücke vom Thema WCF sind wirklich durchweg positiv. Microsoft scheint die orthogonalen Features wie Security, Transport, Logging, Tracing usw. wirklich fast komplett konfigurierbar gemacht zu haben, so dass man in den meisten Fällen keine Zeile Code mehr schreiben muss um eine neue “Übertragungstechnologie” für seinen Service zu implementieren. 

Man gibt nur noch in den ApplicationSettings (client- und serviceseitig) den entsprechenenden Service-Endpoint an und schon kann es losgehen.

Zum Beispiel so:

<endpoint address="net.tcp://localhost:1234/myNetService" binding="netTcpBinding" bindingConfiguration="unsecureTcp" contract="IMyInterface" /> <endpoint address="http://localhost:1235/myHttpService" binding="basicHttpBinding" contract="IMyInterface2" />

Weitere Feature wie Transaktionen oder Streaming usw. kann man einfach oben drauf per Konfigurationseinstellungen hinzufügen. So rückt der bisher so wichtige Teil der Protokollauswahl sehr stark in den Hintergrund und die Nachricht selbst (bzw. der Contract der Nachricht) kommt an die wichtigste Position.

Wenn man selbst in das Thema einsteigen will, kann man z.B. den Hello-World-Artikel nachprogrammieren – auch wenn Christian mit der Architektur des Samples wohl nicht 100% zufrieden wäre.

Weitere Informationen:

Monday, 25. September 2006


MSDN Solve-Gewinn ist angekommen

Filed under: Visual Studio — Steffen Forkmann at 14:47 Uhr

Wie bereits in einem früheren Blog-Eintrag¬†beschrieben kann man bei der Watch&Win-Kampagne von Microsoft ein kostenloses Visual Studio 2005 Standard gewinnen. Heute¬†ist mein Gewinn zusammen mit dem meines Kollegen angekommen.

Saturday, 23. September 2006


September CTP für .NET 3.0 erschienen

Filed under: .NET 3.0,Windows Vista — Steffen Forkmann at 11:33 Uhr

Seit gestern ist bei Microsoft die neue September CTP für das .NET-Framework 3.0 zum öffentlichen Download frei gegeben. Nicht wundern die Setup.exe ist zwar nur 2,8 MB groß –¬†lädt dann aber je nach vorgefundener Situation bis zu¬†55 MB aus dem Netz nach.

Die 3.0er Version ist übrigens keine vollständig neue Version des .NET Frameworks-Kerns sondern ist mit dem WinFX eher als eine Erweitungsschicht auf die 2.0er Version¬†zu sehen.

Die neuen Technologien sind:

Das .NET Framework 3.0 wird laut Microsoft dann auch mit Windows Vista und Microsoft Update ausgeliefert, so dass ab diesem Zeitpunkt das nervende Nachinstallieren entfällt.¬†


Navision: Unnötiges Count vermeiden

Filed under: Navision — Steffen Forkmann at 10:40 Uhr

Wenn man im Navision prüfen will ob beispielsweise nur genau ein Datensatz auf den Filterausdruck passt. Schreibt man das oft so:

SETCURRENTKEY(Field); SETFILTER(Field,Filter); IF COUNT = 1 THEN BEGIN // Do something END ELSE BEGIN // Do something else END;

Wenn tatsächlich nur ein Datensatz in der Menge liegt ist dieser Ausdruck auch schon optimal und gut lesbar. Wenn jedoch viele Datensätze in der Menge liegen bekommt man schnell ein Performance-Problem. Mit dem folgenden Trick kann man das relativ einfach umgehen:

SETCURRENTKEY(Field); SETFILTER(Field,Filter); IF FIND('-') AND NEXT = 0 THEN BEGIN FIND('-'); // Do something END ELSE BEGIN // Do something else END;

Man macht zwar an der Stelle 2 Find’s und 1 Next, aber wenn die Datenmenge groß ist, dann macht das einen enormen Unterschied.

Thursday, 21. September 2006


GhostDoc gewinnt Basta-Award

Filed under: Visual Studio,Wettbewerbe — Steffen Forkmann at 10:12 Uhr

Mein Lieblingsplugin für VisualStudio 2005 “GhostDoc” hat nun auch den BASTA-Publikumspreis gewonnen – und das zu Recht. Herzlichen Glückwunsch.

Monday, 18. September 2006


Joel on Software auch auf deutsch

Filed under: Blogs — Steffen Forkmann at 19:53 Uhr

Der berühmt gewordene Blog von Joel Spolsky, dem Erfinder des¬†Joel-Tests,¬†wurde teilweise auch ins Deutsche übersetzt. Zu finden sind die Übersetzungs-Schätze unter german.joelonsoftware.com.


Building a succesful Navision team

Filed under: Blogs,Navision — Steffen Forkmann at 19:44 Uhr

Miklos Hollender beschreibt in seinem Blog¬†wie man aus seiner Sicht ein erfolgreiches Navision-Team aufbaut. Besonders interessant finde ich dabei seine Definitionen für Consultant, Developer¬†bzw. Expert. Sehr lesenswert.¬†


Navision: Report in bestimmten Druckerfach ausgeben

Filed under: C#,msu solutions GmbH,Navision — Steffen Forkmann at 14:28 Uhr

Oftmals steht man im Navision vor dem Problem einen Report in einem bestimmten Druckerfach auszugeben. Dafür muss man jedoch die RawKind-Property des Druckerfachs wissen und im Report als PaperSourceFirstPage bzw. PaperSourceOtherPages oder über CurrReport.PaperSource einstellen. Leider gibt es im Navision keine einfache Möglichkeit diese Property auszulesen. Mit dem folgenden Stück C#-Code kann man sich jedoch alle installierten Drucker samt unterstützten Druckerfächern anziegen lassen:¬†¬†

using System.Drawing.Printing; .. PrinterSettings ps = new PrinterSettings(); foreach (string name in PrinterSettings.InstalledPrinters) { listBox1.Items.Add(name); ps.PrinterName = name; foreach (PaperSource paperSource in ps.PaperSources) listBox1.Items.Add(ps); }
Download: FindPrinter-Tool (benötigt: .NET Framework 2.0)
Tags: , ,

Saturday, 16. September 2006


TechTalk mit Christian Weyer in Leipzig

Filed under: Diverses,TechTalk,WCF — Steffen Forkmann at 12:40 Uhr

 

Am 27. September findent im Leipziger Mercure-Hotel ein TechTalk mit Christian Weyer über die Windows Communication Foundation (WCF ehemals Indigo)¬†statt. Organisiert wird das Event von der .NET User Group Leipzig.

Die Anmeldung und weitere Informationen gibt es hier.

Saturday, 2. September 2006


Ausblick auf Microsoft Dynamics .NAV 5.0

Filed under: .NET,Navision — Steffen Forkmann at 20:22 Uhr

Laut Microsoft wird Navision 5 wohl im ersten Quartal 2007 kommen und damit die erste Welle der Umstellung zu einem einheitlichen Dynamics auf .NET-Basis darstellen. An dieser Stelle möchte ich einmal die bisher mehr oder weniger öffentlich¬†gemachten Erkenntnisse darstellen und betone aber das dies eher Gerüchte sind, da es ja noch keine öffentliche Beta gibt.

  • Programmiert wird weiterhin in C/AL und nicht in C#! Aber der komplette C/AL-Code wird in C#¬†übersetzt und dann automatisch in eine .NET-Assembly kompiliert und in eine Service Tier gesteckt. Das bedeutet dann wohl, das man den Navision-Code¬†nun endlich auch von “außen” anstoßen kann¬†und somit Sachen wie UnitTesting usw. endlich richtig realisierbar sind. Gleichzeitig bedeutet das aber auch das die Zeiten vorbei sind, in denen man mal schnell ein¬†einzelnes Objekt beim Kunden in der Fernwartung fixen konnte.
  • Reports werden auf Basis der Microsoft SQL Server Reporting Services¬†im RDL-Format laufen. Das wird für die tägliche Arbeit wird das wohl heißen:
    1. Report im Navision Report Designer anlegen und Grobdesign implementieren
    2. Im Visual Studio 2005 dem Report den Feinschliff verpassen
    3. Im Navision nochmal kompilieren
  • Die Benutzeransichten werden rollenbasierend. Microsoft will ein völlig neues Interface-Konzept einführen. Damit der Umstieg aber nicht zu schwer wird, liefert Microsoft für Dynamics .NAV 5.0 wohl 2 verschiedene RichClients aus. Einer der im Look and Feel dem 4.0er entspricht und einen die neue Benutzeroberfläche hat. Die Konvertierung der Oberfläche (Forms und Reports) soll im Wesentlichen automatisch über ein Tool passieren. Microsoft empfiehlt hier den Code innerhalb von Formularen möglichst gering zu halten – damit kann dann der manuelle Umstellungsaufwand reduziert werden.
  • Der Native Server wird immer mehr abgelöst. Nur noch der “alte” Client wird auf den Native Server zugreifen können – der neue rollenbasierte Client wird nur mit dem SQL-Server zusammen arbeiten.
  • Während Navision bis Version 4 ein reines Client/Server-System war wird Microsoft¬†Dynamics 5 eine 3-Tier-Architektur besitzen. Die schon erwähnte .NET-Assembly spielt dabei die sogenannte ServiceTier und enthält die komplette Business-Logik. Die angenehme Folge davon ist, das es¬†damit möglich ist einen auf SharePoint basierenden WebClient zu benutzen. Der Kunde hat dann also die Wahl zwischen Windowsoberfläche (RichClient) und Weboberfläche (ThinClient).
  • User erhalten eigene “HomePages”. Darunter versteht Microsoft benutzerdefinierte Startseiten, die dem Nutzer ermöglichen mit wenigen Clicks die für ihn wichtigen Funktionalitäten zu erreichen ohne sich mühselig im mittlerweile ja gewaltigen Navision-Menü zu verlieren. Besonderes Augenmerk liegt bei den “HomePages” auch auf der Outlook-Integration.
  • Es wird wohl auch kleinere C/AL-Verbesserungen geben:
    • Block-Einrückung (Der Wahnsinn *grins*)
    • SMTP-Features
    • Einfacheres Handling mit Fehlertexten
    • Benutzung von neuen Bildformaten (WMF, JPG, GIF) in Forms und Reports
  • WebServices werden ein zentrales Element von Navision. Mit Hilfe neuer Tools soll es möglich werden C/AL als WebServices zu veröffentlichen.
  • Die Perfomance auf dem SQL-Server soll massiv verbessert werden.