In den Schulen unterrichten sie Latein. Warum kein VBA?

Zugegeben, die Überschrift wirkt auf den ersten Blick provokant. Handelt es sich bei Latein doch um eine Sprache, die als Basis aller romanischen Sprachen mindestens die Einstiegshürde zum Erlernen dieser deutlich erleichtert. Heutige Redewendungen und auch viele Wortbedeutungen lassen sich aus der Kenntnis der Sprache Cäsars genauso ableiten, wie die Tatsache, dass die Rolle des “Kaisers” eben auf den Namen desselben Herrschers zurückzuführen ist. Achja… und für das Jura-Studium sowie das Studium der Medizin benötigt man es auch.

Und VBA? Eine tote Sprache? Genau wie Latein?

Mag sein. Nichts desto trotz haben nicht einmal Office Apps, Visual Studio Tools for Office oder selbst OLE Automation dazu geführt, dass VBA vollends in Vergessenheit geraten ist. Warum auch? Leichtgewichtiger geht es kaum: Der Visual Basic Editor (VBE) ist in die Office Produkte integriert, der Zugang ist extrem leicht, es werden keine zusätzlichen Lizenzen benötigt und sämtliche Belange von Word, Excel und Access lassen sich damit programmieren. Zudem benötigt es keine komplexen Installationssysteme und technisch gesehen auch keine Rollout-Gremien, um zeitnah Problemlösungen innerhalb einer Fachabteilung an den Start zu bekommen (was die IT Abteilung davon hält sei einmal dahingestellt).

Trotzdem. Ein ungutes Gefühl bleibt.

  • Es gibt keine integrierte Quellcodeverwaltung.
  • Unter modernen Gesichtspunkten sind viele Verhaltensweisen zunächst nicht nachvollziehbar.
  • Es gibt zwar Klassen und Interfaces (tatsächlich!), aber keine echte Polymorphie oder Funktionsüberladung.
  • Die Arbeit mehrerer Entwickler an einem Projekt gestaltet sich als sehr aufwändig.
  • Aufgrund der nur eingeschränkten Verwaltungsmöglichkeiten sind komplexe Projekte langfristig nur schlecht wartbar.
  • Die Fehlerbehandlung ist auf den ersten Blick wenig intuitiv.
  • etc.

Stellen wir uns aber der harten Realität: In großen sowie kleinen Unternehmen wird VBA innerhalb von speziell Excel und Access noch immer flächendeckend von den Fachabteilungen eingesetzt. Das Phänomen lässt sich nicht einmal auf bestimmte Branchen einschränken. Und so schnell wird sich das auch nicht ändern.

Daher liegt es in unserer Verantwortung, dafür zu sorgen, dass die Entwicklung (und damit auch unsere Dienstleistung) auch in diesem Kontext einem hohen Anspruch an Qualität gerecht wird. Quellcodeverwaltung, Nachvollziehbarkeit, Testing, Requirements-Engineering & Co sind dabei nur einige Stichworte. Und der Einsatz von VBA ist kein Grund, die modernen Prozesse zur Softwareentwicklung links liegen zu lassen.

Im Gegenteil.

Als Einstieg für die Interessierten hier ein paar Querverweise, die zeigen, dass da auch mehr geht:

In Projekten, in denen auch bei uns dann und wann mal VBA genutzt wird, verwenden wir übrigens selbstverständlich den Team Foundation Server für die Requirements, das Work Item Tracking und auch die Quellcodeverwaltung.

Neugierig? Sprechen Sie uns an!

Für 2015 schon Zertifizierungen geplant?

Training and Certification Guide screen shot 0Wer sich wie wir u.a. im Fahrwasser von Microsoft bewegt, kennt natürlich die Zertifizierungen, die sich hier erwerben lassen. Besonders spannend sind dabei für uns die Titel, die mittels unterschiedlicher Zertifizierungen zu erreichen sind. Beispielsweise der MCSD Application LifeCycle Management, bestehend aus Prüfungen zu Themen wie der Konfiguration und Administration des Team Foundation Servers, Testing und der Optimierung einer Wertschöpfungskette im Bereich der Softwareentwicklung.

Für einen Überblick über sämtliche Pfade, Möglichkeiten und auch zur Planung gibt es historisch bedingt die verschiedensten Möglichkeiten. Da Poster aber ziemlich 2010 sind, hat Microsoft mittlerweile eine eigene Windows Store App nachgelegt. Obwohl simpel gestaltet, ist sie immerhin interaktiv und ermöglicht definitiv einen hervorragenden Überblick.

Die App bekommt hier hier.

Viel Spaß dabei und viel Erfolg in 2015!

P.S.: Du bist bereits MCSD: ALM und hast Spaß dabei, Kunden auf dem Weg zu stabilen Geschäftsanwendungen zu unterstützen? Bewirb Dich jetzt!

Stabile Developer Workstation mit Server-Ambitionen

Kennt ihr das noch aus Zeiten von Windows 2000: Bei Microsoft gab es noch die Unterscheidung zwischen einem Client- und einem Server-Kernel. Bekannterweise war der Windows 2000 Server Kernel stabiler als der von Windows 2000 Workstation. Der Grund war u.a. der, dass es im Workstation Produkt diverse Shims gab, die u.a. für Kompatibilität auch zu älteren Produktversionen verantwortlich waren. Auf einem Server kommt es in erster Instanz aber auf Stabilität und Geschwindigkeit an. Entsprechend gab es seit jeher unterschiedliche Kernel, die Microsoft später aber doch zusammengefasst hat. Für die Client-Benutzer ein Segen, denn auch sie kamen nun in den Genuss so richtig stabiler Betriebssysteme.

Für die Server-Benutzer sollte das aber nicht dazu führen, dass sie statt einer aufgeräumten, performanten Serverumgebung sich nun auf einmal auch in einer "Klicki-Bunti" Welt zurecht finden sollten. Daher werden seitdem verschiedene Features der Client-Versionen in den entsprechenden Serverprodukten abgeschaltet, bzw. gar nicht erst installiert.

Für uns Entwickler wiederum aber interessant sind Serversysteme dennoch. Denn sie gelten weiterhin als stabile Systeme, die darüber hinaus natürlich auch über Rollen verfügen, die dann und wann für uns in der Entwicklung gerade von Business Applikationen wichtig sein können. Was läge also näher, als sich ein System zurechtzukonfigurieren, das auf einem Windows Server Produkt basiert, sich aber "anfühlt" wie ein Client-System?

Windows Server 2012 Workstation

Den Gedanken hatten auch andere und so gibt es seit Windows 2000 Anleitungen, wie man ein Server-OS derart konfiguriert, dass es das vom Client her bekannte Look&Feel besitzt. Inklusive Klicki-Bunti. :)

Während uns Windows 2000 eher nicht mehr interessiert, findet sich entsprechend auch für Windows Server 2012 eine entsprechende Anleitung, die ihr hier findet: http://www.win2012workstation.com/.

Darin wird Schritt für Schritt erklärt, wie sich folgende Features nachinstallieren, bzw. konfigurieren lassen:

  • Treiber, Sprache, Computername und Informationen zu dem Besitzer des Systems
  • WLAN Konfiguration und Sound
  • Deaktivieren von STRG-ALT-ENTF beim Login, der Passwort Restriktionen und des eher lästigen Shutdown-Event-Trackers
  • Deaktivieren der IE Enhanced Security (ESC)
  • Konfiguration des Systems für performante Apps (standardmäßig liegt der Fokus im Server OS eher bei performanten Systemdiensten)
  • Themes, Aero Cursors (Endlich! Klicki Bunti!)
  • Windows 8 Modern UI Apps, die Default Apps und der Windows 8 IE
  • Ausschalten der Data Execution Prevention (DEP) und Structured Exception Handling Overwrite Protection (SEHOP)
  • u.v.m

Converter

Falls der Aufwand für den einen oder anderen zu hoch ist, gibt es gute Neuigkeiten: Ein Team von Enthusiasten hat einen Converter entwickelt, mit dem sich die Schritte automatisieren lassen. Somit ist ein Windows Server 2012 nach der Initialinstallation (die ja selbst nur noch ein Klacks ist) im Nu in ein Workstation-artiges System verwandelt: http://www.win2012workstation.com/converter/.   

Frustfreie Web.config auch im Team

Eine sehr nützliche Funktion im Visual Studio und MSBuild ist die Möglichkeit, bei der Veröffentlichung von Webseiten die Web.config entsprechend der gewählten Zielkonfiguration automatisch anpassen zu lassen. Der Vorgang nennt sich Transformation und beschreibt im Prinzip nichts weiter als anhand von Transform-Dateien die Web.config zu verändern. Das Prinzip ist identisch mit der bekannten Xml Transformation mittels XSLT (in Visual Studio heißt nur alles wieder mal anders).

Während das Konzept beim Web-Publishing bereits sinnvoll ist (um z.B. für Debug, Release, Stage, etc. unterschiedliche Konfigurationen parat zu haben), wäre der Einsatz während der Entwicklung selbst allerdings genauso praktisch. Beispielsweise könnten einzelne Teammitglieder unterschiedliche lokale Entwickler-Datenbankinstanzen haben, die sich auf die ConnectionStrings in der Web.config auswirken. Das Problem, das daraus i.d.R. entsteht, ist, dass jeder Entwickler die Web.config bei sich lokal anpasst und dadurch auscheckt. Sollte sie dann “aus Versehen” mal mit eingecheckt werden, klappt bei anderen Entwicklern im Zweifelsfall die Datenbankverbindung nicht mehr, sobald sie ihren Workspace aktualisieren. Im schlimmsten Fall werden dadurch Basisänderungen an der Web.config überschrieben wenn man nicht aufpasst.

Die Lösung für dieses Problem wäre, jedem Entwickler eine eigene Transform-Datei bereitzustellen und dafür zu sorgen, dass personenabhängige Einstellungen ausschließlich darin stattfinden. Dazu muss die Web.config allerdings zur Compilezeit generiert werden und darf zudem nicht mehr Teil der Quellcodeverwaltung sein.

Wie das im Einzelnen funktioniert zeigt folgende Schritt für Schritt Anleitung:

Das Publishing Target und die Config Transformation lokal konfiguriert

Kostenlose Aufzeichnungen der #msts14 - Jetzt weiterbilden!

Nur kurze Zeit nach der Microsoft Technical Summit 2014 wurden auf Channel 9 wie versprochen die Aufzeichnungen zu den Sessions veröffentlicht. Sowohl die Videos als auch die Präsentationen sind übersichtlich in der Agenda zu der Veranstaltung verlinkt.

Unseren Beitrag zum Microsoft Fakes Isolation Framework gibt es dort ebenfalls zu sehen. Viel Spaß beim Anschauen (wir hatten auf jeden Fall Spaß beim Halten der Session)! 

Microsoft Technical Summit 2014 - Pre-Review und ein Announcement!

Diese Woche findet vom 11.11.2014 bis zum 13.11.2014 in Berlin die Technical Summit 2014 statt. Microsoft hat bekannter Weise die Visual Studio Evolution mit der TechNet Conference zusammengelegt und lädt diese Woche für drei Tage Softwareentwickler und IT Infrastrukturspezialisten gemeinsam ein, von Experten aufregende und z.T. neue Technologien vorgestellt zu bekommen. Die Agenda zeigt dabei nicht nur einen Querschnitt durch alle relevanten Technologien, sondern auch das Who is Who der Speaker-Szene.

Die angebotenen Sessions bewegten sich inhaltlich von Einstiegs-Themen bis hin zu Deep Dives und auch zukunftsorientierten Bereichen wie IoT (Internet of Things) und Application Insights (im Zusammenhang mit Predictive Analytics und den entsprechenden Angeboten via Microsoft Azure).

Uns hat die Konferenz sehr gefallen und wenn wir auch nicht die ganze Zeit da waren, konnten wir den Dienstag immerhin nutzen, um ebenfalls als Speaker dem interessierten Publikum erneut das Microsoft Mocking Framework Fakes näherzubringen. Nachdem wir einige technische Hürden genommen haben (merke: Immer einen Displayport-Adapter dabei haben), konnten wir neben einer kleinen Historie einen umfangreichen Einstieg in Microsoft Fakes liefern inkl. spannender Informationen über Microsoft Pex. Pex hat im Zusammenspiel mit dem Fakes-Vorläufer Moles das Leben eines Softwareentwicklers beim Schreiben von Unit Tests enorm erleichtert. Die Pex Engine ermöglichte es, Codepfade automatisch analysieren zu lassen, um auf der Basis sogar Grundgerüste für sinnvolle Unit-Tests zu generieren. Microsoft sprach bei Pex (Program Exploration) von einem Whitebox Testing Tool. 

Announcement

Durch die Produktifizierung von Moles ist Pex lange Zeit auf der Strecke geblieben. Bis vor kurzem gab es lediglich ein kostenlos erhältliches Addin über die Visual Studio Gallery, das auf die Pex Engine aufsetzt und mit Visual Studio 2013 kompatibel ist. Code Digger - so der Name - stellte einen eingeschränkten Funktionsumfang von Pex zur Verfügung.

Zusammen mit der heutigen Ankündigung von Visual Studio 2015 und der neuen Community Edition (die die Express SKU ersetzt) wurde angekündigt, dass Pex nachzieht! Microsoft spricht an dieser Stelle von Smart Unit Tests und dieses Feature ist großartig!

With Visual Studio 2015 preview, we have introduced Smart Unit Tests. Explore your .NET code to generate test data and a suite of unit tests. For every statement in the code, a test input is generated that will execute that statement. A case analysis is performed for every conditional branch in the code. For example, if statements, assertions, and all operations that can throw exceptions are analyzed. This analysis is used to generate test data for a parameterized unit test for each of your methods, creating unit tests with maximum code coverage. Then you bring your domain knowledge to improve these unit tests.

Details dazu wie das funktioniert, finden sich hier und in den kommenden Tagen auch auf diesem Blog.

Wir gehen jetzt erst einmal feiern!

Update

Vielen Dank an Tao Xie, dem dritten im Bunde hinter Microsoft Pex & Fakes neben Nikolai Tillmann und Jonathan "Peli" de Halleaux, für die Veröffentlichung eines spannenden Dokuments mit Informationen zum Migrationspfad von Pex zu Fakes und Code Digger (Jetzt: Smart Unit Tests). Das kostenlose Dokument gibt es hier zum Download.

Top n NuGet Pakete, die jeder kennen sollte

In diesem Beitrag wird sukzessive eine Liste sinnvoller NuGet Pakete erstellt (und kontinuierlich ergänzt), die jeder kennen sollte. Nachdem bereits ältere Posts regelmäßig bei eigenen Recherchen zu Themen immer wieder auftauchen, hat sich gezeigt, dass unser Blog sich hervorragend als externes Gedächtnis eignet. Und da nicht nur wir draufschauen, haben alle etwas davon.

Vorschläge für weitere Pakete? Comment please and subscribe.

Und los geht's:

  1. Newtonsoft Json.NET
  2. Fody
  3. ...

Newtonsoft Json.NET

Bei Json.NET handelt es sich um eine Bibliothek, die die Arbeit mit Json deutlich vereinfacht. (De-) Serialisierung, Schema-Validierung und Linq2Json werden damit zum Kinderspiel. Via NuGet einfach eingerichtet ist die Bibliothek verfügbar für Windows und Windows Phone (auch als Portable Class Library).

Fody

Fody ist eine IL Weaver Bibliothek. Als solche füllt sie eine Lücke, die das .NET Framework durch fehlende AOP (Aspekt Orientierte Programmierung) mitbringt: Verschiedene Fody Plugins vereinfachen den Umgang mit Cross Cutting Concerns wie z.B. der Implementierung des INotifyPropertyChanged Interfaces bei datengebundenen Applikationen (PropertyChanged.Fody)

 

Noch 3x schlafen, dann ist Weihnachten…

… naja vielleicht noch nicht ganz, aber der Start der BASTA! 2014 wird sicherlich für den ein oder anderen eine ähnliche Bedeutung haben! Ab Montag, den 22.09.2014 ist es nämlich soweit, die BASTA! 2014 öffnet in der Rheingoldhalle in Mainz für eine ganze Woche ihre Pforten und wird mit ~120 praxisnahen Vorträgen, ~70 renommierten Speakern und 13 themenspezifischen Special Days Wissen streuen und zum ein oder anderen angeregten Gespräch mit den Speakern einladen.

Wir freuen uns, dass wir am Donnerstag mit Johannes Paul Langner und Marcus Jacob ebenfalls wieder mit 2 Speakern und 2 Sessions vor Ort dabei sein dürfen, in denen wir über die Mikrocontroller Entwicklung mit dem .NET Micro Framework und den Möglichkeiten der Proximity API auf dem Windows Phone berichten werden. Der Spieltrieb eines Entwicklers soll ja schließlich nicht zu kurz kommen…

Wer nicht live dabei sein kann, folgt der Konferenz am besten über den hashtag #bastacon auf Twitter, alle anderen sehen wir dann vor Ort!

Jahresgebühr entfällt. Mitgliedschaft im Windows Dev Center Programm auf Lebenszeit!

Gestern hat der General Manager für Windows Apps und Store, Todd Brix, bekanntgegeben, dass künftig keine Jahresgebühr mehr fällig wird, um im Dev Center Programm Mitglied zu sein. Nachdem bereits vor einiger Zeit die Programme für Windows und Windows Phone Entwicklung zusammengeführt wurden, war das der nächste logische Schritt.

Nach einer einmaligen Gebühr von gerade mal 14 Euro Netto fallen somit ab sofort keine Folgekosten mehr an.

Benefits

Gleichzeitig hat Microsoft das Dev Center Benefits Programm gestartet, um die Möglichkeiten zur Entwicklung und Vermarktung von Apps zu verbessern. Die sog. Benefit Pakete teilen sich auf in Explorer, Expert und Master. Die Idee dahinter ist, Anfängern genau die Hilfestellung zu geben, die sie benötigen, um zügig in das Design und die notwendige Architektur für die Entwicklung von Windows und Windows Phone Apps einzusteigen. Das Bewerben von Apps und mögliche Publisher Verträge sind Bestandteil des Expert Levels, während im Master Paket der VIP Zugang zu Ressourcen wie Developer und Marketing Support und Early Access für SDKs freigeschaltet wird.

Details dazu und zu weiteren Optimierungen in diesem Kontext kann man hier nachlesen.

 

Stakeholder an die Macht – Projektbeteiligte erhalten kostenlosen Zugriff auf Visual Studio Online

Brian Harry berichtete nach der Early Adopter Phase Anfang Juli bereits davon, dass viele Projektzuordnungen von Mitarbeitern wieder aufgehoben wurden. Der Zusammenhang mit dem Ende der Einführungszeit war offensichtlich: Zuvor war der Zugriff kostenfrei, nun konnten “nur noch” bis zu fünf Nutzer gratis Visual Studio Online nutzen.

Da Microsoft allerdings erhöhten Reibungsverlusten in den Entwicklungsprojekten zuvorkommen möchte, hat Brian angekündigt, mit der Stakeholder Rolle eine neue Lizenz einzuführen, die es einer praktisch unlimitierten Anzahl Projektbeteiligter ermöglichen soll, weiterhin kostenfrei auf den gehosteten Team Foundation Server zuzugreifen und in allen für ihre Arbeit relevanten Belangen zu nutzen.

Assigning a stakeholder license

 

Als Stakeholder können Nutzer nun gegenüber der früheren Work Item Only View folgendes:

  • Die Projekt Homepage betrachten
  • Auf die meisten arbeitsrelevanten Funktionen zugreifen
  • Das Backlog einsehen
  • Einträge hinzufügen und bearbeiten
  • WorkItem-Abfragen erstellen und ausführen
  • Benachrichtigungen abonnieren

Aus unserer Sicht ist Microsoft mit der Einführung der Stakeholder Lizenz in VSO ein ganz großer Wurf gelungen, deren Umsetzung extrem schnell nach der initialen Ankündigung realisiert werden konnte. Dass diese Funktion mit dem kommenden Update sogar in weniger als einem halben Jahr danach On Premise verfügbar sein wird zeigt die enormen Vorteile der neuen Rapid Release Strategie von Microsoft.

Mehr Informationen darüber, welche Funktionen und Möglichkeiten den Projektbeteiligten nun offen stehen, finden sich auf der eigens dazu eingerichteten Landing Page.

Ü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