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


"Every solution will only lead to new problems."

Sunday, 8. November 2009


"Getting started" with NaturalSpec – (Updated 08.11.2009)

Filed under: .NET,F#,NaturalSpec — Steffen Forkmann at 10:48 Uhr

In my last article (Introducing NaturalSpec – A Domain-specific language (DSL) for testing) I used NaturalSpec in two small samples. This time I will show how we can set up a NaturalSpec environment to write our first automatically testable scenarios.

1. Choosing an IDE

The first step is to choose an integrated development environment for NaturalSpec. At the current project status you should be able to use NaturalSpec with Visual Studio 2008, Visual Studio 2010 beta 2, the freely available Visual Studio 2008 Shell or the free IDE SharpDevelop 3.0.

2. Installing the testing framework

As NaturalSpec uses NUnit as the underlying testing framework we have to install NUnit 2.5. I also recommend installing TestDriven.Net in order to get a Unit Test runner within Visual Studio.

3. Installing F#

NaturalSpec is completely written in F# and all specs will also be written in F#. This doesn’t imply you have to learn programming in F# but we need the F# compiler to get things working. You can download the F# October 2009 CTP from the Microsoft F# Developer Center.

4. Downloading the latest version of NaturalSpec

You can download a .zip with the latest NaturalSpec libraries from GoogleCode.

5. Creating a spec

This part is written for using Visual Studio 2008. If you use SharpDevelop or Visual Studio 2008 Shell this might differ in some detail.

Start Visual Studio 2008 and create a new F# class library.

Creating a spec project

Rename Module1.fs in ListSpec.fs and delete script.fsx from the project:

Solution explorer

Create a folder “Lib” and unzip the NaturalSpec libraries into it.

Add NaturalSpec.dll and nunit.framework.dll as references to your project:

Adding project references

Copy the following code into ListSpec.fs:

module ListSpec
open NaturalSpec

[<Scenario>]
let When_removing_an_3_from_a_small_list_it_should_not_contain_3() =
  Given [1;2;3;4;5]
    |> When removing 3
    |> It shouldn't contain 3
    |> Verify

If you have TestDriven.Net installed you can run your spec via right click in the solution explorer:

Run spec with TestDriven.net

If you don’t like the TestDriven.Net test runner you might want to use the NUnit GUI runner. The output should look like:

NUnit Gui runner

In addition the test runner should produce a Spec output file with the name “Spec.txt” within the same folder.

Summary

In a minimal environment you need SharpDevelop, the F# compiler, NUnit and the NaturalSpec libraries for using NaturalSpec.

In the next post I will show how you can use NaturalSpec to create a spec for C# projects.

Tags: , , , , ,

Friday, 14. March 2008


Mitschnitte vom Microsoft Launch 2008

Filed under: .NET 3.0,Firmen,Veranstaltungen,Visual Studio — Steffen Forkmann at 12:33 Uhr

Vor kurzem fand in Frankfurt der Produktlaunch von Visual Studio 2008, SQL Server 2008 & Windows Server 2008 mit über 7500 Teilnehmern statt. Nun stehen Mitschnitte der Vorträge des Launch Events 2008 exklusiv auf den Webseiten einiger CLIP-Mitglieder zur Verfügung.

Der benötigte Silverlight Player kann über nachfolgenden Link heruntergeladen werden:

http://www.microsoft.com/silverlight/resources/InstallationFiles.aspx

Folgende Sessions werden auf Navision-Blog.de als Stream angeboten:

Das Motto war dieses Jahr übrigens “Heroes happen {here}” bzw. im deutschen “Bereit für Helden” 😉

Auf dem Blog von Torsten Weber gibt es übrigens auch noch ein paar Bilder von diesem Event.

Tags: , , , , ,

Friday, 9. November 2007


ReSharper – Early Access Program (EAP)

Filed under: Tools,Visual Studio — Steffen Forkmann at 16:46 Uhr

Vor einiger Zeit habe ich einen Testbericht zu ReSharper verfasst und einige kleinere Bugs bemängelt. JetBrains gibt jedoch öffentlichen Zugang zu seinen Nightly Builds bzw. zum Early Access Program. Dort gibt es fast jeden Tag einen frischen Build aus einer der folgenden Kategorien: Not tested, Works here, Stable, Not recommended

Neben jeden Build ist auch immer ein Verweis auf die im Build geschlossenen Tickets.

Ich habe jetzt die letzte Stable-Version installiert und die bemängelten Bugs sind offenbar behoben. Es gibt jetzt sogar eine Anzeige für den globalen Projektstatus.

Tags: , , ,

Saturday, 6. October 2007


ReSharper 3.0 für Visual Studio 2005 im Test – Refactoring für Profis

Filed under: .NET,ASP.NET,C#,Firmen,Tools,Visual Studio — Steffen Forkmann at 12:03 Uhr

ReSharper ist ein Plugin der Firma JetBrains für Visual Studio, das sich speziell die Produktivitätssteigerung beim Entwickeln als Ziel gesetzt hat. Besonderes Augenmerk wird dabei auf die Refactoring-Unterstüzung gelegt, also auf das nachträgliche Umgestalten von Quellcode. JetBrains wirbt damit das “intelligenteste AddIn für Visual Studio” entwickelt zu haben – doch was kann ReSharper wirklich? 

(weiterlesen…)

Tags: , , , ,

Monday, 24. September 2007


Basta 2007: Interview mit Steffen Forkmann

Filed under: msu solutions GmbH,Navision,Steffen,Veranstaltungen,Visual Studio — Jens Hesse at 14:14 Uhr

Jens Hesse: Hallo Steffen. Du warst zum ersten Mal auf der „BASTA!“, wie kam es dazu?

Steffen Forkmann: Hallo Jens. Die „BASTA!“ Ist eine der wichtigsten deutschsprachigen Entwicklerkonferenzen, da ist es klar, dass man dort gern teilnehmen möchte. Dass es dieses Jahr sogar gleich als Sprecher geklappt hat, habe ich vor allem Torsten Weber zu verdanken. Er ist Leiter der .NET User Group in Leipzig und auch im Advisory Board der „BASTA! 2007“.

JH: Worüber hast Du gesprochen?

SF: Ich habe einen Einstiegsvortrag über die Programmierung in Microsoft Dynamics NAV gehalten und dabei versucht wesentliche Grundkonzepte in Navision zu vermitteln.

JH: Dynamics NAV (ehemals Navision) ist eine ERP Plattform aus dem Hause Microsoft. Was spricht aus deiner Sicht für den Einsatz von Dynamics NAV?

SF: Aus betriebswirtschaftlicher Sicht spricht eine ganze Menge dafür. Microsoft bietet hier ein vollständiges ERP-System, das alle grundlegenden Geschäftsprozesse schon vorimplementiert zur Verfügung stellt. Das bedeutet Partnerunternehmen können auf diese Grundprozesse aufbauen und brauchen nur ihr eigenes Branchenwissen zu implementieren. Alle buchungs- und steuerrelevanten Details sind ja schon da. Das bedeutet somit einen gewaltigen Entwicklungsvorsprung gegenüber einer komplett eigenen Lösung. Es ist für einen Entwickler schon schwierig genug die betriebswirtschaftlichen Interna seiner Branche zu verstehen, da muss man sich die Buchhaltung oder ähnliches nicht auch noch antun – zumal Navision dafür ein Zertifikat von Wirtschaftsprüfern hat. Allerdings bekommt man diesen Entwicklungsvorsprung nicht geschenkt. Neben den Lizenzkosten für Client und Standardobjekte fallen auch noch Lizenzkosten für Eigenentwicklungen an.

JH: Warst Du mit Deinem Vortrag / der Resonanz zufrieden?

SF: Da die „BASTA!“ eigentlich eine reine .NET-Veranstaltung ist, war ich mit den ca. 25 Zuhörern eigentlich ganz zufrieden, zumal auch einige attraktive Mainstream-Themen parallel liefen. Nachdem Vortrag kamen auch noch diverse Zuhörer zu mir und stellten einige Detailfragen. Unter anderem auch zur rudimentären Entwicklungsumgebung C/SIDE.

JH: Wie darf man das genau verstehen?

SF: In meinem Vortrag habe ich Dynamics NAV aus Entwicklersicht beschrieben. Mir war es wichtig auf der einen Seite den schon angesprochenen Entwicklungsvorsprung zu erkären, aber auf der anderen Seite habe ich auch auf diverse Probleme im Entwicklungsalltag hingewiesen. Die Entwicklungsumgebung C/SIDE ist eben schon einige Jahre alt und auf einer modernen Konferenz wie der „BASTA!“, wo u.a. auch Visual Studio der übernächsten Generation gezeigt wird, kommt eine Demo in C/SIDE manchen Teilnehmern schon wie Kulturschock vor. Da kann man noch so lange auf die Vorteile von NAV eingehen, wenn man einmal die Codeunit 80 aufmacht und eine Funktion zeigt, die über 36 Bildschirmseiten geht und nicht ein Kommentar zu sehen ist, dann wirkt das auch auf den härtesten Notepad-Hacker abstoßend.

JH: Verstehe. Wie geht es jetzt weiter? Wird man Dich öfter auf Entwicklerkonferenzen sehen?

SF: Na das hoffe ich doch. Schon im Frühjahr 2008 findet zum Beispiel die BASTA! Spring unter dem Motto “Best Practices” statt. Da werde ich mich sicher mit dem einen oder anderen Thema bewerben. Als nächstes liegt jedoch erstmal eine Dozententätigkeit bei der Berufsakademie Heidenheim an. Dort werde ich zwei Vorlesungen über Dynamics Nav halten.

JH: Was hältst Du von der Konferenz im Allgemeinen, und wie beurteilst Du die Ihre Stellung im Vergleich zu kostenlosen Konferenzen wie beispielsweise der ICE in Lingen?

SF: Also die BASTA! ist natürlich nur schwer mit der ICE zu vergleichen. Die BASTA! ist aufgrund ihrer Größe natürlich wesentlich breiter besetzt, sowohl thematisch als auch personell. Mit 78 Speakern kann natürlich auch ein viel breiteres Spektrum geboten werden. Allerdings fällt die Wahl bei teilweise 8 parallelen Sessions auch schwerer. Als Zuhörer hat man immer das Gefühl einen wichtigen Teil zu verpassen. Die ICE hingegen ist wesentlich persönlicher und somit der Erfahrungsaustausch auch etwas einfacher möglich. Besonders gut gefällt mir auch das Konzept der .NET User Group Leipzig. Dort werden halbjährlich mit dem .NET Summercamp bzw. dem .NET Wintercamp, auf dem ich auch schon sprechen konnte, sehr preiswerte .NET-Konferenzen angeboten. Dieses Jahr hat Torsten Weber sogar mit Daniel Fisher, Šenaj Lelic, Bernd Marquardt, Roland Weigelt, Ralf Westphal und Michael Willers die absolute .NET-Prominenz für das .NET Summercamp gewinnen können.

JH: Danke für das Interview.

Tags: , , , , , ,

Thursday, 24. May 2007


Microsoft macht Partner fit für Web 2.0

Filed under: .NET,ASP.NET,Diverses,Firmen,Veranstaltungen,Visual Studio,WPF — Jens Hesse at 23:02 Uhr

Durch die sogenannte “LiftOff Initiative” sollen Microsoft Partner in einem Trainingsprogramm an die Technologien rund ums Web 2.0 herangeführt werden. Schwerpunkt der Trainingsmaßnahme ist die Integration der Microsoft Webtechnologien (WPF/E, ASP.NET, AJAX), Web Services und Map Point, sowie Workflow Management.

(weiterlesen…)

Tags: , , , , , ,

Friday, 11. May 2007


Navision-Vortrag auf der BASTA! 2007

Filed under: msu solutions GmbH,Navision,Visual Studio — Steffen Forkmann at 10:07 Uhr

Vom 18. bis 21. September findet im Congress Centrum Mainz die BASTA! 2007 statt und ich bin als Speaker dabei. Ich werde im neu eingeführten “Business Solutions”-Track einen Vortrag über die Programmierung mit Microsoft Dynamics Nav halten.

Demnächst dazu mehr.

Tags: , ,

Saturday, 5. May 2007


Vortrag von Roland Weigelt zur Visual Studio 2005 Erweiterbarkeit

Filed under: .NET 3.0,C#,TechTalk,Veranstaltungen,Visual Studio — Steffen Forkmann at 8:57 Uhr

Am 06.07.2007 findet ab 19:30 ein sehr interessantes Event in Leipzig statt. Roland Weigelt wird über die Entwicklung seines mehrfach ausgezeichneten Plugins GhostDoc berichten und einen Einblick in die Visual Studio Erweiterbarkeit geben. GhostDoc ist für mich neben ReSharper das wichtigste Plugin für Visual Studio überhaupt.

Der Vortragende wird folgende Features vorstellen:

  • Code Snippets
  • Item und Project Templates
  • Wizards
  • Makros
  • Add-Ins

Mehr zu dieser Veranstaltung bzw. die Anmeldung findet man auf den Seiten der .NET User Group Leipzig.

Tags: , , , ,

Wednesday, 2. May 2007


GhostDoc 2.0 released

Filed under: .NET,Tools,Visual Studio — Steffen Forkmann at 8:24 Uhr

Das bekannte Dokumentations-Plugin für Visual Studio geht in die zweite Runde. Hier die neuen GhostDoc-Features im Überblick:

  • Läuft auf Windows Vista
  • Läuft unter Visual Studio Orcas (Beta 1)
  • Bessere Unterstützung der Generics und anderen neuen Sprachelementen
  • Weitere Informationen gibt es im GhostDoc-Blog.

    Tags: , ,

    Sunday, 22. April 2007


    Delphi for PHP im Test – Nie wieder Borland

    Filed under: ASP.NET,Tools,Visual Studio — Steffen Forkmann at 10:35 Uhr

    Wie bereits berichtet hat CodeGear/Borland eine neue Entwicklungsumgebung für PHP heraus gebracht. Da ich früher sehr gern mit Delphi gearbeitet habe und eigentlich immer begeistert war, habe ich mir sofort eine Studentenversion für 99,- bestellt. Mein Ziel war es bei der Entwicklung meiner beiden WordPress-Plugins Counterize II und WP-Referencesmap etwas mehr Unterstützung durch eine IDE und einen Debugger zu erhalten. Gleich vorab: dieses Ziel kann Delphi for PHP leider nicht erfüllen.

    Die Verpackung

    Schon beim Öffnen der Verpackung habe ich mich gewundert. Früher gab es bei Delphi immer eine nette Box mit einigen kleinen Beilagen (wie z.B. einem Poster). Diesmal gab es jedoch nur eine einfache DVD-Hülle. Das Cover ist total verpixelt – die meisten privaten Raubkopien werden mit besseren Druckern gedruckt.

    Die Installation

    Die Installation der Delphiversion auf meinem Windows XP Rechner verlief absolut problemlos – einzig die zwingende Registrierung war etwas unangenehm.

    Die ersten Eindrücke

    Nach dem Starten zeigt sich Delphi for PHP mit einem leeren Formular und gewohnten Tools wie CodeExplorer, Toolbox und ObjectInspector. Delphi liefert auch eine große Palette von PHP-Controls in der kostenlos verfügbaren „VCL for PHP“ mit. Diese ist komplett in PHP 5 geschrieben und demnach wohl auch nicht abwärtskompatibel. Bis hierhin sieht alles ganz normal aus. Delphi unterteilt sich in die zwei Ansichten Designer und Code-Ansicht. 

    Code vs. Designer

    Im Designmodus kann man Komponenten auf seinem Formular platzieren und im ObjektInspektor die Eigenschaften editieren. Delphi legt dafür im Hintergrund ein XML-File für das gesammte Webprojekt an, in dem alle Eigenschaften der Formularkomponenten (Höhe, Breite, Position, …) gespeichert werden. Zur Laufzeit wird dieses File aufgeparst und die Werte auf die Komponenten gesetzt. Bei meinen Test bekam ich jedoch schon nach ein paar Minuten die ersten Fehlermeldungen im Designer – dabei wollte ich nur ein TabSheet etwas nach rechts verschieben.

    Passend dazu: Mens Slim Contrast Tee "Generation beta"
    Generation beta Da heute ja alles eine Beta ist.. » 17.90 EUR
    Weitere Produkte gibt es im Shop.

    Im Code-Editor kann man den PHP-Quellcode editieren. Bei einem Formular legt Delphi auch gleich etwas Quellcode mit an. Syntax-Highlighting und Code-Vervollständigung wird natürlich unterstützt. Man kann Breakpoints setzen und mit F9 das Programm auf dem Testwebserver starten.

    Der Designer arbeitet streng mit der VCL und dem XML-File der Properties. Eigene alte Quelltextfragemente können nicht visualisiert werden. Somit kann ich den visuellen Designer nur für neue Projekte verwenden bzw. ich müsste meinen gesammten Code in VCL-Komponenten portieren.

    Remote-Debugging

    Nun wollte ich gleich richtig einsteigen, aber zu meinem Bedauern kann Delphi for PHP kein Remote-Debugging – was übrigens nirgends auf der CodeGear-Seite oder in der sehr knappen Hilfe beschrieben ist. An dieser Stelle brach für mich eine Welt zusammen. Delphi liefert zwar standardmäßig einen Entwicklungswebserver mit, ähnlich wie die Cassini-Version bei ASP.NET, aber Remote-Debugging wird (zur Zeit) nicht unterstützt. Schlimmer noch – der Assistent zum Exportieren des Webprojekts exportiert zwar neben dem eigenen Code nur den tatsächlich benutzten Teil der VCL, bietet jedoch keine Möglichkeit des FTP-Uploads. Ich meine selbst mit meinen PsPad kann ich Quelltexte remote editieren.

    Somit müsste ich meinen gesamten WordPress-Blog (samt mySQL-Datenbank) nochmal auf meinem lokalen Entwicklungs-Rechner spiegeln und Änderungen manuell mit meinem FTP-Programm hochladen. Team-Entwicklung fällt damit wohl auch flach.

    Datenbank-Anbindung

    CodeGear liefert standardmäßig neben dem Entwicklungsserver noch eine Testversion von InterBase mit. Diese kann man für eigene Testzwecke nutzen – vor dem Deployment muss InterBase jedoch lizensiert werden. Was soll das denn? Da liefern die eine Datenbank mit und dann darf ich die nicht benutzen? Mal davon abgesehen, dass natürlich mySQL der eigentliche PHP-Partner ist.

    Fazit

    Delphi for PHP hat sich für mich leider als absoluter Fehlkauf erwiesen. CodeGear/Borland hat einfach von der Firma qadram das Qstudio genommen und einen schönen Delphi-Sticker draufgeklebt. Ich habe mich von dem guten Namen und der Möglichkeit PHP in einer IDE zu nutzen blenden lassen. Dabei ist der Designer noch nicht komplett bugfrei, Remote Debuging wird nicht unterstützt, die Hilfe ist sehr sehr kurz und die Sache mit InterBase ist wirklich eine Frechheit. Für mich hat Borland hier alle Sympathien verspielt. Das Programm ist noch lange nicht marktreif und den Namen Delphi hat es schon gar nicht verdient.

    Nachdem ich mich ja schon eine ganze Zeit lang mit ASP.NET und Visual Studio beschäftigt habe, muss ich sagen: Das ist ein Unterschied wie Tag und Nacht. Für mich stellt sich nun die Frage: Wie bekomme ich mein Geld zurück – Software ist ja leider vom Umtausch ausgeschlossen.

    Jetzt werde ich mir also doch die Eclipse-PHP-Versionen (wie z.B. PHPEclipse) ansehen müssen…

    Tags: , , , , , ,