Der Entwickler-Almanach. Mit Powerlaschen!

Das Times Magazine der Softwareentwickler, die dotnetpro, hat dieser Tage einen Jahresrückblick 2012 veröffentlicht. Den Entwickler-Almanach. Ein kurzer Blick in die Glaskugel hat sogar ein wenig Platz für einen Ausblick 2013 eingeräumt.

Das Who-is-Who der Szene, repräsentiert durch Tilman Börner, Ralf Westphal, Golo Roden, Sven Hubert und einigen mehr, hat sich die Zeit genommen, um vergangene Highlights des Jahres 2012 Revue passieren zu lassen und in mehreren Artikeln zu Themen wie Windows 8, Surface & Co beleuchten, was sich für Softwareentwickler ändert.

Auch wird natürlich mit Patrick gekocht; gleich zwei weihnachtliche Menügänge stellt Patrick A. Lorenz basierend auf Rezepten vor, die im vergangenen Jahr den einen oder anderen Hobby-Entwickler-Koch inspiriert haben dürften.

Besonders amüsant findet der Almanach dann einen gelungenen Abschluss mit einer nicht ganz ernst gemeinten Twitter-Timeline, die man gelesen haben muss. @timcook #ftw.

Nach hinten offen… OCP für Einsteiger

Nicht selten begegnet einem in gewachsenen Projekten Quellcode wie dieser:

if (this.Known)
{
  if (this.Age >= 18)
  {
    if (this.Gender == 0)
    {
      switch (this.Status)
      {
        case Status.Married:
          result = "{0} is a known male married adult.";
          break;

Was hier passiert ist leicht beschrieben: Verschiedene Eigenschaften einer Klasse bestimmen ihr Verhalten, das in einer Form von den Eigenschaften abhängig ist, so dass ein Entscheidungsbaum scheinbar die einzige Möglichkeit ist, der Sache Herr zu werden.

Softwareentwickler kennen auch die Probleme, die daraus entstehen: Die Komplexität steigt bei gleichbleibend sinkender Wartbarkeit. Der Code lässt sich irgendwann schlicht und einfach nicht mehr überblicken. Neue Verhaltensweisen hinzuzufügen erscheint ohne vorhergehende Impact-Analyse kaum machbar und falls doch ausprobiert endet es in der Regel in einem Desaster.

Die im Titel dieses Beitrages erwähnte Abkürzung OCP beschreibt dabei die Lösung mit drei simplen Worten: Open Closed Principle. Ausgesprochen steht das für “Eine Klasse soll offen für Erweiterungen aber geschlossen gegenüber Veränderungen sein”. Das ergibt soweit Sinn und klingt nach einem erstrebenswerten Ziel.

Mehr ins Detail dazu gehen verschiedene Webseiten, darunter allen voran natürlich Wikipedia, aber auch z.B. cleancodedeveloper.de.

TOP TECHNOLOGIES Learn & Research Labs

Da die meisten Beispiele aber eher steril daherkommen und strukturell auch so einfach gehalten sind, dass jeglicher Realitätsbezug fehlt, hat die TOP TECHNOLOGIES auf codeplex ein Projekt veröffentlicht, das im ersten Anlauf genau dieses Thema aufnimmt und anhand einer Virtual Lab Dokumentation das Open Closed Principle Schritt für Schritt erläutert. Dabei wird der Leser an die Hand genommen und zunächst durch ein Negativbeispiel geführt, um dann über ein schrittweises Code-Refactoring zu einer vollständigen OCP-Lösung zu gelangen.

Der Dokumentation liegt eine komplette Visual Studio 2012 Solution bei, die als Grundlage dient und auch als Zip-Archiv von der Quellcodeverwaltung entkoppelt heruntergeladen werden kann.

Am Ende des Labs angekommen hat der Entwickler das Open Closed Principle verstanden und kennt auf Basis des sog. Strategy Patterns eine Möglichkeit, es umzusetzen. Ein wenig Experten Know How rundet das Thema noch zusätzlich ab.

Wir freuen uns auf Feedback und hoffen, dass das Thema Anklang findet! Geplant ist, das Projekt um weitere Themen zu ergänzen; gerne nehmen wir auch Vorschläge auf!

Visual Studio… jetzt doch “on the go”!

Erinnert sich noch jemand an den Marketing-Gag von Microsoft vom 1.4.2010? Gezeigt wurde auf Youtube ein Video, das eine mobile Version vom Visual Studio 2010 auf einem Windows Phone zeigt (wir berichteten). Das Beispiel “Hallo Welt!” wurde in atemberaubendem Tempo direkt auf dem Smartphone entwickelt und dabei begleitet mit den Worten:

Nutzen Sie Gestensteuerung. Programmieren Sie jede beliebige Anwendung mittels 14.000 leicht merkbaren Gesten.

Spätestens hier war klar: Ganz so ernst, wie der Sprecher aus dem Off klingt, konnte das nicht gemeint sein. In Zeiten von Intellisense sind wir doch froh, wenn wir uns wenigstens die Schlüsselwörter unserer Lieblingsprogrammiersprache merken können. Aber auch im Nachhinein lohnt sich ein Blick auf das Video, denn zum einen scheint es nicht nur das neue Visual Studio 2012 “PowerPoint Storyboarding” inspiriert zu haben, zum anderen wurde es mittlerweile sogar von der Realität eingeholt.

Weil es so schön war…

Ein Vergleich zum neuen Visual Studio 2012 Feature “PowerPoint StoryBoarding” drängt sich z.B. durch eine der Sessions aus der Visual Studio 2012 Evolution auf. Im Clip “Effiziente Teams mit TFS 2012” zeigt Chris Binder eine End-To-End Story aus dem virtuellen Unternehmen Fabrikam, bei der u.a. auch Mockups des Windows Phone einbezogen werden.

image

On the go. Reimagined.

Besonders spannend ist nun aber, dass nicht einmal zwei Jahre später mit der Windows Phone App touchdevelop ein Programm aus dem Microsoft Research Lab den Weg in die Freiheit gefunden hat, das so gigantisch ist, dass wir in Zukunft sicher noch das ein- oder andere Mal davon berichten werden. Nur so viel vorab: Auch ohne 14.000 leicht merkbare Gesten lassen sich mit touchdevelop direkt auf dem Windows Phone Anwendungen entwickeln, die Zugriff auf das gesamte Gerät inklusive seiner Sensoren hat, mit Events umgehen kann und schlussletztlich es auch ermöglicht, die Lösungen in die Cloud hochzuladen.

Von dort wiederum können andere Anwender touchdevelop Apps über einen integrierten Marketplace direkt auf ihr Gerät herunterladen und wenn gewünscht auch als Kacheln auf dem Hauptbildschirm ablegen. Neben der Möglichkeit, Anwendungen sogar in den Windows Phone Marketplace zu bringen, so dass Anwender sie auch ohne touchdevelop nutzen kann, wurde vor kurzem sogar eine Web App Preview Version von touchdevelop vorgestellt. Sie läuft aktuell unter Windows 8 im IE10 (und einigen anderen Browsern) und bietet nahezu die gleiche Experience wie die Windows Phone Variante, überträgt dabei das Konzept aber auf den Desktop, das Tablet oder sogar den touchfähigen Flatscreen an der Wand. Wir sind uns sicher: touchdevelop wird sich auf dem Microsoft Surface großer Beliebtheit erfreuen. Außerdem können die Apps nun sogar im Windows Store für Windows 8 bereitgestellt werden.

Die gesamte touchdevelop Story zeigt dieses Video sehr eindrucksvoll:

 

Nachlese zur Visual Studio 2012 Evolution

Nachdem die Veranstaltung am 1.10.2012 in Düsseldorf ein voller Erfolg war, stehen nun auch die Videos aller Sessions zur Verfügung. Wer leider nicht die Gelegenheit hatte, an dem Event teilzunehmen hat nun die Möglichkeit, sich im Detail über die neuen Funktionen und Features zu informieren.

Die drei Tracks rund um Visual Studio 2012, .NET 4.5 und Services wie Azure, Windows Phone und TFS as a Service wurden dabei von 14 bekannten Speakern unterhaltsam und informativ vorgestellt. Auf folgender Website können interessierte Entwickler ihr Wissen wieder auffrischen oder sich Sessions anschauen, die sie verpasst haben.

http://www.microsoft.com/germany/msdn/events/vs-evolution-2012/default.aspx

Gratis E-Book

Wer sich darüber hinaus passend zur Evolution Session Unit Testing & Fakes noch intensiver mit dem Thema Testing mit dem Visual Studio 2012 auseinandersetzen möchte, dem sei ein kostenloses E-Book des Pattern & Practices Team von Microsoft empfohlen, das hier heruntergeladen werden kann.

Slides und Demos zur Visual Studio 2012 Evolution

Die Folien und auch die Demos zu den Themen Unit-Testing und Fakes von der Visual Studio 2012 Evolution können bereits jetzt hier heruntergeladen werden.

 

 

 

Das war die Visual Studio 2012 Evolution

... oder hat sie gerade erst begonnen?

Am 1.10.2012 fand in Düsseldorf der Visual Studio 2012 und .NET 4.5 Launch-Day statt. Dabei habe ich mich sehr darüber gefreut, dass die Entscheidung über die Art der Veranstaltung gegen einen virtuellen Launch und zugunsten einer Präsenzveranstaltung fiel.

Die Zahl der Teilnehmer, die es am Montag nach Düsseldorf geschafft haben, floatet - je nachdem, wen man fragt - zwischen 550 und 700 Personen. Aber auch ohne sich an der genauen Teilnehmerzahl aufzuhalten: Die kostenlose Veranstaltung war "ausverkauft", die Konferenzräume waren voll und das Interesse des Publikums an den Themen hoch.

Alles Neue...

Neuerungen im Visual Studio 2012 und auch .NET Framework 4.5 standen naturgemäß im Vordergrund und wer im Sommer die eine oder andere Roadshow zu den Themen besucht hat (damals hieß es noch "Visual Studio goes to 11"), der wird auch viel Bekanntes vorgefunden haben. Grandios waren dabei aber auch Sessions zu beispielsweise Azure, bei der Dariusz Parys u.a. ein End-To-End Szenario von der Implementierung einer ASP.NET MVC Applikation, über die Quellcodeverwaltung im TF Service auf tfspreview.com bis hin zur Build Automation in der Cloud und dem Continuous Deployment nach Azure präsentiert hat. Azure for Website ist übrigens kostenfrei.

Frank Prengel hat wie erwartet die Fahne für Windows Phone 8 hochgehalten während Chris Binder und Neno Loje  fast schon mit Show-Charakter sehr unterhaltsam demonstriert haben, was passiert, wenn Microsoft nicht nur Drag & Drop im Web für sich entdeckt, sondern der "Kunde" auch noch den Weg auf die entsprechenden Slides von Microsoft findet: PowerPoint Storyboarding, TFS Dashboard, Exploratives Testen und der neue Feedback Client führen zur effizient arbeitenden Teams und resultieren damit in (hoffentlich) noch coolerer Software (und wenn schon nicht sexy, dann doch wenigstens qualitativ hochwertiger; die Erkenntnis, dass Softwareentwickler keine Designer sind, läßt sich spätestens seit der Einführung von WPF kaum mehr ignorieren). Und wer sich gewundert haben sollte: Natürlich sprechen Scrum-Entwickler nicht von Burnout Charts sondern von Burndown Charts. Sollte dieser freudsche Versprecher in den Webcasts herausgeschnitten werden, freue ich mich schon jetzt auf die Outtakes.

Die TOP TECHNOLOGIES hatte zudem das große Vergnügen, dem interessierten (und zahlreich erschienenen) Publikum Neues zum Thema Unit-Testing und dem Microsoft Fakes Isolation Framework näher zu bringen. Auf diesem Blog gab es schon den einen oder anderen Artikel dazu und in einer der kommenden Ausgaben der dotnetpro wird dazu noch ergänzendes Material veröffentlicht. Spannend ist neben der Unterstützung von Async & Await in Unit-Tests beispielsweise die Integration von 3rd Party Frameworks (und das bezieht sich zumindest theoretisch auf alle Frameworks), und die direkte Integration von Fakes in das Visual Studio. Somit steht dem Entwickler erstmals ein leistungsfähiges Mocking Framework ab Werk zur Verfügung. Einziger Wehrmutstropfen ist die Beschränkung auf die Ultimate Edition. Aber es hat ja auch ein paar Versionen gebraucht, bis das Unit Testing auch in die Express Versionen Einzug gefunden hat.

Quaterly Updates

Eine Änderung in dem Entwicklungsmodus der Microsoft läßt daher Hoffnung zu. Da das Developer Team intern ebenfalls nach Scrum arbeitet und in kurzweiligen Zyklen Features fertigstellt und Bugs behebt, werden Entwickler nun nicht mehr auf Major Releases alle paar Jahre angewiesen sein (oder sich auf unregelmäßige Powertools freuen), sondern von vierteljährlich erscheinenden Updates profitieren können. Dabei plant Microsoft diese bereits vor dem Release als CTP der interessierten Community zur Verfügung zu stellen. Während diese zwar nicht für den produktiven Einsatz empfohlen werden, nutzt Microsoft sie intern sehr wohl produktiv. "Eat your own dogfood" lautet da das Credo.

Das erste CTP für das geplante November Update ist bereits verfügbar, bereitet bei der Installation allerdings noch die eine oder andere Schwierigkeit. Lohnen tut sich der Blick darauf dennoch, wie ein Blogeintrag von Brian Harry zeigt.

Wer sich das Visual Studio 2012 und den dazugehörigen Team Foundation Server (oder auch gefahrlos das aktuelle CTP) genauer anschauen möchte, dem sei der kostenfreie ALM Hyper-V Server empfohlen, den man bei Microsoft hier herunterladen kann. Optimal ist der Einsatz in einem Hyper-V Server unter Windows 8, der sich als Feature problemlos nachinstallieren läßt; die Einbindung der virtuellen Maschine gestaltet sich zum einen problemlos und ist zum anderen optimal dokumentiert. Ergänzend findet sich in dem Archiv eine große Anzahl detaillierter Hands-On Labs, die einladen, alle Features einfach mal auszuprobieren. 

Alle, die leider nicht an dem Event teilnehmen konnten, werden sich übrigens darüber freuen, dass alle Sessions aufgezeichnet wurden und in ca. zwei Wochen als Webcasts zum Download angeboten werden.

In diesem Sinne: Viel Spaß und Erfolg mit Visual Studio 2012!

Die Evolution hat begonnen!

 

Die Katze ist aus dem Sack: SharePoint 2013

Mit der eher klein gehaltenen Pressekonferenz vom 16.07.2012 hat Steve Ballmer geladenen Journalisten Office 2013 (Codename Office 15) vorgestellt. Am gleichen Tag wurden die Bits der Preview nicht nur für Office 2013, sondern auch für SharePoint 2013 zur Verfügung gestellt sowie die API Dokumentation freigeschaltet und jede Menge Präsentationen veröffentlicht.

Fabian Moritz hat daraufhin in der Sharepoint Community einen Beitrag veröffentlicht, der die wichtigsten Links zusammenstellt. Ein Blick darauf lohnt sich!

Die Präsentationen zeigen, wie viel Wert Microsoft weiterhin auf Kollaboration, Community und Social Networking als Medium für die erfolgreiche Zusammenarbeit legt. Zwar hat der Zukauf des Yammer Netzwerkes erst einmal nichts mit der aufpolierten Oberfläche des Mitarbeiter Feeds in Sharepoint zu tun, gleichwohl aber scheint sie nun endlich brauchbar genug zu sein, um unternehmensintern Bits an Informationen schnell an die interessierte Zielgruppe zu verteilen!

INotifyPropertyChanged - Das Elend hat (fast) ein Ende

Mit Visual Studio 2012 kommen neue Compiler und das .NET Framework 4.5 daher. Soweit nichts Ungewöhnliches. Natürlich gibt es auch jede Menge neue Sprachfunktionen und Bibliotheken. Besondere Aufmerksamkeit verdienen dabei die sog. Caller Info Attributes, die mit Visual Studio 2012 eingeführt werden und mit denen dem Entwickler ein eleganter Weg geöffnet wird, das PropertyChanged Event auszulösen.

Zur Auffrischung: Das Interface INotifyPropertyChanged stellt sicher, dass das PropertyChanged Event implementiert wird. Sind Klassen datengebunden, erfährt das Framework so, dass sich die Daten geändert haben. Im Setter eines jeden Properties muss dazu dieses Event ausgelöst werden; die Crux dabei ist allerdings, dass die PropertyChangedEventArgs dazu einen String-Parameter mit dem Namen des jeweiligen Properties verlangen.

Sollte sich im Nachhinein der Name ändern, kann wird es zu unerwartetem Verhalten kommen, wenn nicht daran gedacht wurde, auch den Magic String im Property Setter zu aktualisieren. Speziell dieses Thema ist mitunter schon viel diskutiert und auch in Form eines Coding Dojos der dotnetpro verarbeitet worden (Stichwort: “Unit Tests”).

Der folgende Code zeigt vereinfacht das klassische Vorgehensmodell:

 1:  public class Person : INotifyPropertyChanged
 2:  {
 3:     public event PropertyChangedEventHandler PropertyChanged;
 4:  
 5:     public string Name
 6:     {
 7:         get { return name; }
 8:         set
 9:         {
 10:             if (value != name)
 11:             {
 12:                 name = value;
 13:  
 14:                 // Call OnPropertyChanged whenever the property is updated
 15:                 RaisePropertyChanged("Name");
 16:             }
 17:         }
 18:     }
 19:  
 20:     private void RaisePropertyChanged(string member)
 21:     {
 22:         var handler = PropertyChanged;
 23:  
 24:         if (handler != null)
 25:         {
 26:             handler(this, new PropertyChangedEventArgs(member));
 27:         }
 28:     }
 29:  
 30:     private string name;
 31: }

 

Es ist nicht schwer sich vorzustellen, wie aufgebläht der Code wird sobald es nicht mehr nur um ein, sondern um spürbar mehr Properties geht.

Das .NET Framework 4.5 bietet hierfür eine Lösung an, indem es mit den neuen Caller Info Attributes einer aufgerufenen Methode Informationen über den Aufrufer quasi frei Haus mitzuliefert. Das folgende Beispiel verdeutlicht das anhand des CallerMemberName Attributs:

 1: protected void RaisePropertyChanged([CallerMemberName] string member = "")
 2: {
 3:   var handler = PropertyChanged;
 4:  
 5:   if (handler != null)
 6:   {
 7:     handler(this, new PropertyChangedEventArgs(member));
 8:   }           
 9: }

Der Methode RaisePropertyChanged muss nun nicht mehr der Name des Properties übergeben werden. Durch das Attribut CallerMemberName, das im NameSpace System.Runtime.CompilerServices enthalten ist, geschieht dies implizit.

Eine Möglichkeit, um nun die neue RaisePropertyChanged Methode nicht in jeder Klasse implementieren zu müssen, ist übrigens ganz einfach die Vererbung.

 1: public abstract class BaseBO : INotifyPropertyChanged
 2: {
 3:     public event PropertyChangedEventHandler PropertyChanged;
 4:  
 5:     protected void RaisePropertyChanged([CallerMemberName] string member = "")
 6:     {
 7:         var handler = PropertyChanged;
 8:  
 9:         if (handler != null)
 10:         {
 11:             handler(this, new PropertyChangedEventArgs(member));
 12:         }           
 13:     }
 14: }

 

Damit reicht es aus, die betroffenen Klassen einfach von der Klasse BaseBO abzuleiten (bei uns werden i.d.R. Fachobjekte an Views gebunden, daher der Name: BO = Business Object). Das reduziert den Aufwand für die Entwicklung von datengebundenen Klassen auf ein Minimum.

Und nun?

Und nun werden noch Wetten angenommen, ob in .NET 5 dann endlich einzelne Properties bis hin zu Klassen mit der Anweisung dekoriert werden können, dass die Properties im Falle einer Änderung das Event selbstständig auslösen sollen. AOP hat es bereits vorgemacht.

Stefan Lieser hat übrigens vor einiger Zeit in die Lambda-Trickkiste gegriffen und schon vor .NET 4.5 eine Lösung aufgezeigt, ohne Magic Strings das PropertyChanged Event auszulösen. Mehr dazu auf seinem Blog.

Distributed Kanban. Wenn nicht ich… wer dann?

Was war zuerst da? Henne oder Ei? Mittlerweile ist die Antwort auf die Frage zwar weitestgehend bekannt, aber dennoch stellt sie eines klar: Irgendetwas ist immer zuerst da. Der Rest kommt dann schon. Irgendwann.

Auf Kanban bezogen könnte das z.B. so aussehen: Ihr Team ist bereits ein wenig in die Jahre gekommen hat bereits viele Jahre Erfahrungen in der Entwicklung von Enterpriseapplikationen und zeigt sich skeptisch in Hinsicht auf neumodische Verfahren zur Arbeitsorganisation? Kanban klingt zu sehr nach einem klingonischen Altbier denn einer schlanken Methode, Blockaden im Arbeitsfluss aufzudecken und Überlast greifbar zu machen? Dann hilft vielleicht Distributed Kanban.

Wenn nicht ich… wer dann?

Distributed KanbanEiner muss anfangen. Und manchmal hilft es, wenn man selbst derjenige ist. Wer sonst wäre besser dazu geeignet, den effektiven Nutzen von Kanban im Softwareentwicklungsprozess positiv zu demonstrieren? Und das geht so:

  1. Auf dem eigenen Whiteboard wird passend zu dem laufenden Projekt eine klassische Kanban Aufteilung vorgenommen
  2. Es wird ein Template mittels Word erstellt auf dessen Basis Sets an Kanban Karten ausgedruckt werden können
  3. Lustige Avatare, auf bunte Magnete geklebt erhöhen den individuellen Spaßfaktor

Und was dann? Dann organisiert man seine eigene Arbeit (z.B. WorkItems) auf seinem eigenen Whiteboard. Auch ohne Tools starten zu müssen, Abfragen zu erstellen oder “Moment, ich suche das mal eben raus…” antworten zu müssen auf die Frage: “Wie ist der Stand der Dinge?”, die der Teamleiter bevorzugt morgens um 7:55 Uhr zu stellen pflegt, reicht ein Blick auf das eigene Whiteboard, um alle Fragen beantworten zu können. Und sobald zu viele Aufgaben den Weg in das eigene Büro finden, lässt sich sofort darauf reagieren. Die Erfahrung der Greifbarkeit, oder Neudeutsch: Haptik wird schnell auch die Kollegen neugierig machen.

Und wenn das nicht reicht, brechen die lustigen Avatare auf jeden Fall das Eis. Der überwiegende Teil des Teams antwortet mit “Ja, ich weiß.”, wenn der Ehepartner ein Telefongespräch mit “Ich liebe Dich!” beendet? Dann sind vielleicht Starwars-Charaktere empfehlenswert. Auf Regressionsfehler reagieren die Kollegen mit einem lautstarken “D’oh!”… wie wäre es mit Simpsons-Figuren? Sehr beliebt und aufgrund der meist runden Form von Tafelmagneten sind auf jeden Fall auch die Bewohner der illustren Stadt Southpark.

Sobald weitere Kollegen einsteigen – selbst wenn es zunächst nur deshalb geschieht, damit auch sie die coolen Magnete bekommen – dann können Karten sogar untereinander ausgetauscht werden, falls ein anderer Entwickler Arbeitspakete übernimmt (“distributed”).

Und wenn einmal die Hemmschwelle überschritten ist, wird endlich ein großes Kanban-Board für das gesamte Team eingeführt.

Aber egal wie Sie es anstellen: Fangen Sie an!

Stubs und Shims. Microsoft Fakes erklärt.

Microsoft geht mit der Visual Studio 11 Beta im April auf eine Roadshow durch verschiedene Großstädte. Im Rahmen der Veranstaltung werden mehrere Quick-Hit Videos veröffentlicht, die die neuen Features kurz und knackig vorstellen.

Wer interessiert ist: Vielleicht gibt es noch Tickets (die Teilnahme ist kostenlos!).

Fakes ist natürlich auch dabei. Neben den Möglichkeiten einfacher Stubs werden in dem Video auch die sogenannten Shims vorgestellt. Der Clou bei dieser Möglichkeit: Visual Studio baut die Umleitungen in die eigenen Delegate während des Compiler-Laufes direkt in den MSIL Code ein. So kann auch Code isoliert werden, der z.B. auf statische Properties aus dem .NET Framework selbst zugreift. 

Das Quick-Hit Video mit einer Übersicht über Microsoft Fakes gibt es auf vimeo zu sehen unter http://vimeo.com/40860649.

Das Microsoft Fakes Isolation Framework ist ein Mocking Framework, das als neues Feature direkt in Visual Studio 11 Beta integriert wurde, um speziell im Kontext von Unit-Tests Abhängigkeiten durch Attrappen zu ersetzen und so zu simulieren. Dadurch wird der zu testende Code sauber isoliert und kann unabhängig von anderen Komponenten und variablen Daten getestet werden. Das Quick-Hit Video  zeigt im Detail, was das bedeutet und welche Möglichkeiten Fakes dazu bereithält.

Über die Autoren

Christian Jacob ist Leiter des Geschäftsbereiches Softwarearchitektur und -entwicklung und zieht als Trainer im Kontext der .NET Entwicklung sowie ALM-Themen Projekte auf links.

Marcus Jacob fokussiert sich auf die Entwicklung von Office-Addins sowie Windows Phone Apps und gilt bei uns als der Bezwinger von Windows Installer Xml.

Martin Kratsch engagiert sich für das Thema Projektmanagement mit dem Team Foundation Server und bringt mit seinen Java- und iOS-Kenntnissen Farbe in unser ansonsten von .NET geprägtes Team.

Aktuelle Kommentare

Comment RSS