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


"Every solution will only lead to new problems."

Monday, 16. October 2006


Navision das "überfleißige" Bienchen

Filed under: C#,Navision — Steffen Forkmann at 9:37 Uhr

Navision scheint auf “Lazy Evaluation” komplett zu verzichten und ganz fleißig jeden logischen Ausdruck bis zum Ende durchzurechnen.

Mit folgendem Beispiel kann man das leicht nachprüfen:

IF A AND B THEN MESSAGE('A and B'); ... PROCEDURE A@1000000001() : Boolean; BEGIN MESSAGE('A'); EXIT(FALSE); END; PROCEDURE B@1000000002() : Boolean; BEGIN MESSAGE('B'); EXIT(TRUE); END;

Wenn man diesen Code ausführt werden beide Messages (‘A’ und ‘B’) angezeigt, obwohl eigentlich nach Funktion A der Term A AND B schon als falsch ausgewertet werden kann. Wenn man selbiges Beispiel in C# aufschreibt wird übrigens nur A() ausgeführt:

if (A() && B()) MessageBox.Show("A and B"; ... bool A() { MessageBox.Show("A"); return false; } bool B() { MessageBox.Show("B"); return true; }

Ähnlich verhält es sich auch mit allen anderen logischen Ausdrücken – Navision rechnet bis ganz zum Ende alles durch.

Sunday, 15. October 2006


Was die Ferengi-Erwerbsregeln mit Software-Entwicklung zu tun haben

Filed under: Lustiges — Steffen Forkmann at 13:58 Uhr

Die Ferengi-Erwerbsregeln aus StarTrek haben viel mit Marketing und Verkauf zu tun, aber man kann auch einige nicht ganz ernst gemeinte “Lehren” für die Software-Entwicklung ableiten:

Regel 15: Sich dumm zu stellen ist oft klug.

In der Software-Entwicklung wird oft mit einer “BlackBox” gearbeitet, dass heißt man verzichtet absichtlich auf Informationen über die Implementierungsdetails einer Funktionaltität und vertraut darauf, dass die Funktion einfach das macht was drauf steht. 

Regel 17: Ein Vertrag ist ein Vertrag ist ein Vertrag.

Eine wichtiger Ansatz aus der Software-Entwicklung ist das ContractFirst-Design. Dabei wird besonders bei verteilten Lösungen darauf geachtet, dass Verträge in den Mittelpunkt gerückt werden. Insbesondere bei der WCF spielen DataContracts eine entscheidene Rolle.

Passend dazu: Slim Fit "Ein Vertrag..."
Ein Vertrag... Ferengi Erwerbsregel 17. » 16.90 EUR
Weitere Produkte gibt es im Shop.

Regel 32: Paß auf, was Du verkaufst; es könnte genau das tun, was der Kunde erwartet.

Wäre das nicht toll, wenn man das mal schafft und die Kunden komplett zu frieden stellt?

Regel 38: Kostenlose Werbung ist preisgünstig.

Jedes Produkt muss irgendwann an den Kunden gebracht werden – Werbung spielt natürlich eine entscheidene Rolle dabei. 

Regel 39: Lob ist billig; verteile es großzügig auf deine Kunden.

Gerade im Support kommt es darauf an die Kunden bei Lernerfolgen auch mal zu loben und für weitere Schritte zu motivieren.  

Regel 53: Verkaufe erst, frag später.

Diese oberste Regel des Vertriebs stellt die Entwickler oftmals vor arge Probleme. Würde der Vertrieb sie jedoch nicht befolgen, dann gäbe es oft kein Projekt.

Regel 57: Gute Kunden sind fast so rar wie Latinum; ehre sie!

Wenn man erstmal gute Kunden gefunden hat, die auch als Referenzen dienen und nicht wegen Kleinigkeiten ständig auf die Barrikaden gehen, sollte man sich die natürlich warm halten.

Regel 80: Wenn es arbeitet, verkaufe es. Wenn es gut arbeitet verkaufe es teurer. Wenn es nicht arbeitet, vervierfache den Preis und verkaufe es als Antiquität.

Kein Kommentar. 😉

Regel 116: Es gibt immer eine Alternative.

Für kaum ein Entwicklungsproblem gibt es DIE Lösung – die Suche nach Alternativen lohnt sich immer. 

Regel 122: Wenn der Kunde geht, geht auch der Profit.

Auch wenn es mal Probleme mit einigen Kunden gibt – man sollte immer daran denken, dass sie einem den Arbeitsplatz finanzieren.

Passend dazu: Slim Fit "Profit"
Profit Für die Ferengi unter Euch. » 15.90 EUR
Weitere Produkte gibt es im Shop.

Regel 132: Je begehrter das Produkt, desto teurer wird es.

Ganz wichtig: Gute Software verkauft sich besser als schlechte.

Regel 146: Verkaufe das Brutzeln, nicht das Steak.

Oder als Abwandlung: “Verkaufe das Melken nicht die Kuh.” bzw. auch bekannt als “Gillette-Prinzip”. Wenn man es schafft Kunden mit wiederkehrenden Gebühren zu belegen statt mit Einmalbeträgen macht man den meisten Profit. Prominentestes Beispiel ist da World of Warcraft.

Regel 189: Vergiß einen Handschlag – vertrau auf Geschriebenes.

Man sollte sich nie darauf einlassen wichtige Absprachen zum Beispiel nur telefonisch zu treffen. Man sollte immer ein Protokoll unterschreiben lassen. Das erspart viel Ärger.

Regel 241: Unterschätze niemals die Bedeutung des ersten Eindrucks.

Diese Regel ist besonders bei Oberflächen zu beachten.

Eine sehr ausführliche Liste der Ferengi-Erwerbsregeln ist übrigens hier zu finden. 

Tags: , , , ,

Saturday, 14. October 2006


10 Tipps für erfolgreiche Software-Entwicklung

Filed under: .NET,Informatik,Navision — Steffen Forkmann at 12:56 Uhr

In der Softwarentwicklung steht man oft vor den selben Problemen, sodass es wichtig ist sich an bestimmte Punkte zu erinnern und diese dann zu beherzigen. In meinem Artikel “10 Tipps für erfolgreiche Software-Entwicklung” beschreibe ich wie man mit wenigen Schritten seine Produktivität stark erhöhen kann. 

Die Tipps im Überblick:

  1. Versuchen Sie mindestens eine 11 im Joel-Test zu erreichen.
  2. Arbeiten Sie nach Entwurfsmustern und dokumentieren Sie Ihre Arbeit mit der Angabe des Musters.
  3. Dokumentieren Sie Ihre Arbeit vor der Implementation.
  4. Arbeiten Sie bei schwierigen Aufgaben die buganfällig sind immer zu zweit.
  5. Haben Sie Spaß an Ihrer Arbeit.
  6. Nutzen Sie die Community.
  7. Arbeiten Sie klare Workflows für Ihre Entwicklung heraus.
  8. Nutzen Sie intern immer die neuesten Versionen Ihrer Produkte.
  9. Arbeiten Sie nach einem klaren Zeitplan – aber planen Sie Zeit für Katastrophen ein.
  10. Nutzen Sie ein internes Wiki um einmal erforschte Sachverhalte abzuspeichern.

 Genauere Erklärungen dazu finden Sie im Artikel.

Friday, 13. October 2006


SaveValues auf Navision-Formularen

Filed under: Navision — Steffen Forkmann at 16:23 Uhr

Wenn man die “SaveValues”-Eigenschaft auf einer Navision-Form auf Ja setzt werden bekanntlich die Formulardaten gespeichert und beim nächsten Aufruf wieder aus dem Zup-File geladen. Dumm ist nur, dass dies erst beim OnOpenForm-Trigger und nicht im OnInit-Trigger passiert. Dadurch werden Änderungen an diesen Variablen die zwischen diesen beiden Events erfolgt sind gnadenlos überschrieben. 

Dies kann man aber vermeiden, wenn man seine gesetzten Einstellungen in eine globale Variable “auslagert” und dann beim OnOpenForm-Trigger wieder zurück transportiert.

PROCEDURE SetCode@1000000000(p_Code@1000000000 : Code[10]); BEGIN // wird von außen zwischen OnInit und OnOpenForm aufgerufen g_TempCode := p_Code; END;
OnOpenForm=BEGIN Code := g_TempCode END;

SaveValues speichert nämlich nur Formulardaten die in Controls angezeigt werden!

Thursday, 12. October 2006


Microsoft Dynamics NAV 4.0 SP3 kommt Ende Oktober

Filed under: msu solutions GmbH,Navision — Steffen Forkmann at 13:35 Uhr

Microsoft Dynamics NAV 4.03 soll laut Microsoft PartnerSource für die Gruppe 1 (inkl. Deutschland) am 23.10.2006 ausgeliefert werden. Den Download gibt es dann hier.

Tags: ,

Interne Navision-Fehlerliste

Filed under: msu solutions GmbH,Navision — Steffen Forkmann at 13:14 Uhr

Bei Navision kommen des öfteren interne Fehlermeldungen mit misteriösen Codes in noch misteriöseren Modulen. Ein umfangreiche Fehlerliste gibt es hier.

https://ed-ljekarna.com
Tags: ,

Tuesday, 10. October 2006


Ein 5-Tages Einstieg in die WPF

Filed under: WPF — Steffen Forkmann at 11:17 Uhr

Karsten Januszewski beschreibt in seinem Blog einen 5-Tages Kurs wie man sich im Selbststudium schnell in die Windows Presentation Foundation einarbeiten kann. Sehr nett gemacht.

Saturday, 7. October 2006


Windows Vista RC2

Filed under: Windows Vista — Sebastian Wolf at 18:27 Uhr

Der wahrscheinlich letzte RC von Windows Vista vor der Veröffentlichung steht nun zum Download bereit. Unternehmen werden bereits im November und Endkunden erst 2007 mit Windows Vista beliefert.


Blog umgezogen

Filed under: Diverses — Steffen Forkmann at 18:03 Uhr

Aufgrund diverser Probleme mit dem alten Blogger-Account habe ich mich nun dazu durchgerungen den Blog selbst unter http://www.navision-blog.de auf Basis von WordPress zu hosten.

In diesem Zusammenhang wurde auch das Design völlig überarbeitet und 2 neue Domains registriert:

  1. http://www.navision-blog.de
  2. http://www.dynamics-blog.de

Des weiteren ist es nun möglich Kategorien einzeln (zum Beispiel Navision oder .NET) bzw. den kompletten Feed als RSS zu abonieren.

Friday, 6. October 2006


Technorati bald in deutsch

Filed under: Diverses — Jens Hesse at 22:07 Uhr

Wie im Technorati-Blog zu lesen ist soll es die populäre Blog-Suchmaschine Technorati bald auch in lokalisierten Versionen geben. China, Korea, Frankreich, Italien und auch Deutschland stehen zur Debatte. Im Moment wird fleißig darauf hingearbeitet, dass die Lokalisierungen Anfang 2007 zu Verfügung stehen.