Sie sagten, es wäre unmöglich

Dann kam einer, der wusste das nicht und hat es einfach gemacht.

.import source “64spec.asm”

sfspec :init_spec()

    lda #42

    :assert_a_equal #42

    :finish_spec()

Kommentiere, wenn Du die Sprache erkennst und weißt, was hier passiert!

Wie Du vollkommen kostenlos und legal hunderte Ebooks von Microsoft herunterladen kannst

Eric Ligman, Führungskraft bei Microsoft im Vertrieb, hat es wieder getan: In seinem Blogpost vom 11.07.2017 verlinkt er über 250 Ebooks zum kostenlosen Download. Alle Bücher sind im PDF Format verfügbar; viele gibt es zusätzlich auch als epub, mobi (Kindle) oder xps.

Zu folgenden Kategorien bekommt ihr völlig kostenlos Wissen geschenkt:

  • Azure
  • BizTalk (Sunato, das ist doch was für euch!)
  • Cloud
  • Developer
  • Dynamics
  • General
  • Licensing
  • Office (hier gibt es die meisten Bücher)
  • Power BI
  • PowerShell
  • SharePoint
  • SQL Server
  • Surface
  • System Center
  • Virtualization
  • Windows Client
  • Windows Server

Für die Paranoiker und Sammler unter euch, die befürchten, die Bücher könnten wieder aus dem Äther verschwinden, bietet Eric auch die Möglichkeit an, alle am Stück herunterzuladen. Insofern ihr einen Downloadmanager einsetzt, der mit URL-Listen umgehen kann oder mit der PowerShell umzugehen wisst, bekommt ihr von ihm entsprechende Hinweise, wie das funktioniert.

Was sind eure Favorites unter den Büchern?

Lasst es mich in den Kommentaren wissen!

Wie man OIA Microsoft SQL beibringt

Einmal davon abgesehen, dass Oracle bereits seit einiger Zeit plant, das Produkt Oracle Identity Analytics abzuschaffen, erfreut es sich aber noch immer einer erstaunlichen Beliebtheit. Nicht zuletzt sicher deshalb, weil es flexibel ist und sich in alle nur denkbaren Richtungen konfigurieren, erweitern und sogar anpassen lässt.

Besonders wichtig für ein Identity Management Produkt ist dabei der Weg, wie Daten hineingelangen. I.d.R. stammen diese aus vollkommen unterschiedlichen Systemen und oft werden für den Import-Prozess entweder CSV-Dateien eingesetzt, oder direkt Datenbankverbindungen zu Endsystemen genutzt. Eine weitere Alternative sind sog. Provisioning-Server, die im Gesamtprozess des Identitätsmanagement zwei Aufgaben erfüllen:

More...

Wie funktioniert eigentlich das Open Closed Principle

Das Open Closed Principle, oder kurz OCP, ist eines der fünf Prinzipien aus SOLID, das dabei helfen kann, wartbaren und evolvierbaren Code zu schreiben. Vereinfacht fordert es eine Struktur, die es erlaubt, Neues zu ergänzen (Open), ohne dabei Altes verändern zu müssen (Close). Im Original heißt es entsprechend:

Open for extension, but closed for modification

Das klingt oberflächlich betrachtet sinnvoll, denn so bleibt das Vertrauen in einmal geschriebenen (und erfolgreich getesteten) Code bestehen – er muss ja nicht mehr angefasst werden.

Klassisch finden sich hierzu Beispiele, die sich mit Switch/Case Statements auseinandersetzen und aufzeigen, wie sich diese in Schnittstellen und Klassen zerlegen lassen. Ich habe vor einigen Jahren auf CodePlex eine Solution hochgeladen, die hingegen mehrfach verschachtelte If/Then/Else-Zweige aufbricht und Schritt für Schritt mit Hilfe des sog. Strategy Patterns aufzeigt, More...

Webseiten, Produkte und Tools, die jeder VBA-Entwickler kennen sollte

VBA steht für Visual Basic for Applications. Im Grunde genommen kennt nahezu jeder Softwareentwickler diese Programmiersprache, die ihren Ursprung in den Office-Produkten hat. Denn hier kommt sie i.d.R. zum Einsatz: Outlook, Word und Excel. Hier wird am meisten automatisiert, bis der Arzt kommt.

Während unserer Meinung nach VBA eine große Flexibilität bietet, sehen wir uns aber oft einer eher negativen Einstellung gegenüber VBA ausgesetzt.

Die Gründe lassen sich einfach auflisten:

  • Kein besonders intelligentes IntelliSense
  • Keine Anbindung an eine Quellcode-Verwaltung*
  • Kein Refactoring
  • Kein Exception-Handling
  • ...

Die Liste ist noch viel länger, aber eines wird schnell klar: VBA ist kein C# und VBE (Visual Basic Editor) ist kein Visual Studio. Allerdings ergeben sich so auch Vorteile: Fachabteilungen können zumeist eigene Herausforderungen schnell und flexibel lösen (ohne von der IT oder der Entwicklungsabteilung abhängig zu sein). Es werden keine zusätzlichen Lizenzen für Entwicklungsumgebungen benötigt, da alles, was man braucht, in Office integriert ist (inkl. der Laufzeitumgebung). Installationssysteme sind nicht notwendig, da der Code Bestandteil der jeweiligen Dokumente ist. Natürlich empfinden wir die Nachteile (siehe oben) aber auch als problematisch.

Um sie im Vergleich zu modernen Programmiersprachen und Entwicklungsumgebungen ein wenig auszugleichen, hat der an Qualität interessierte VBA-Entwickler nichts desto trotz Zugriff auf einen reichhaltigen Fundus an Know-How und Erweiterungen.

Dieser Artikel listet einige davon auf (und erfüllt natürlich nicht den Anspruch auf Vollständigkeit; Ergänzungen werden gerne gesehen > Ab damit in die Kommentare!).  

MZ-Tools

MZ-Tools ist der Platzhirsch unter den Anbietern von (u.a.) VBA-Erweiterungen. Der Anbieter selbst spricht von Funktionen, die einen schneller Ergebnisse erzielen lassen, besser Code wiederzufinden, besser Oberflächen zu gestalten, einfach Dokumentationen zu generieren, u.v.m.

Link zur Website

Rubber Duck

Hierbei handelt es sich um ein ambitioniertes Open Source Projekt, das sich anschickt, den Visual Basic Editor ins 21. Jahrhundert zu katapultieren. Auch in dieser Erweiterung finden sich Funktionen wie z.B. ein integriertes Refactoring und eine regelbasierte Überprüfung der Code Qualität. Die Besonderheit von Rubber Duck: Ab Version 2.0 ist eine Anbindung von Git als Quellcode Verwaltung vorgesehen! Übrigens: Rubber Duck beinhaltet auch einen Testrunner für VBA Unit-Tests. Kein Witz!

Link zur Website

Tipps und Tricks von Pearson Software Consulting

CPearson bietet eine unfassbar umfangreiche Liste an Tipps und Tricks im Umgang mit u.a. VBA an. Auch nur Ansatzweise darzustellen, was man hier alles lernen kann, würde den Artikel sprengen. Hier (für mich) zwei Perlen: "Implementing Interfaces in Class Modules" (ja, es geht noch immer um VBA!) und "Introduction to Classes".

Link zur Website

Excel Tips von J-Walk & Associates

Auch hier gibt es eine lange Liste von Tipps für Entwickler, kategorisiert nach VBA Functions, UserForms, CommandBars & Menus und General VBA. Auch für Benutzer finden sich hier zahlreiche Hinweise, die einem das Leben in zumindest Excel deutlich erleichtern.

Link zur Website

Excel-Formeln übersetzt

Zugegeben, hier geht es weniger um VBA direkt, als denn mehr um Excel. Da allerdings auch oft von VBA aus Excel-Dokumente automatisiert werden, kann es manchmal hilfreich sein, Zugriff auf eine Übersetzungstabelle für Excel-Formeln zu haben. Wer also schon oft mit einem SVERWEIS gearbeitet hat, weiß nun, dass der englische Begriff hierfür VLOOKUP lautet.

Linke zur Website

* Ausgenommen Microsoft Access bis - ich glaube - Version 2010. Hier gab es früher eine Integration des MSSCCI Providers für die Anbindung an z.B. Visual Source Safe oder den TFS. Allerdings hat diese Funktion nicht bis heute überlebt und wurde auch nur selten genutzt.

 

Multiplattform mal anders: Heute schon Bridge gespielt?

Wer meint, Software-Entwicklung ginge nur nativ, oder mittels Cross-Plattform Umgebungen wie z.B. Apache Cordava oder Xamarin, der kennt Microsofts Universal Windows Plattform noch nicht.

Ganz gleich, ob jemand nativ für Android oder iPhone/iPad entwickelt und dabei Java oder Objective-C nutzt (und das in seiner bevorzugten Entwicklungsumgebung): Das Ziel der Universal Bridges wird es sein - vereinfacht gesagt - im nächsten Schritt einen zusätzlichen Layer zu ergänzen und die jeweilige App dann ganz normal im Windows Store veröffentlichen zu können.

Hier einmal kurz der Überblick über die wichtigsten Projekte der Universal Windows Plattform dazu:

Bereits spannend für Android Entwickler ist dabei die Möglichkeit, ihre Apps direkt auf einem Windows Smartphone testen zu können. Hierzu kann das entsprechende .apk Paket ohne Umschweife auf dem Device installiert werden. Ermöglicht wird das durch ein in Windows 10 for Mobile integriertes Android Subsystem, das auf Virtualisierung basiert. Dieses Feature ist allerdings – genau wie Windows 10 for Mobile – noch nicht final und selbst in der aktuellen Insider Preview noch nicht offiziell verfügbar. Findige Entwickler haben dennoch entdeckt, wie sich die Funktion bereits jetzt ausprobieren lässt.

Oberflächlich betrachtet ergibt sich hieraus für Microsoft eine Win-Win Situation: Objective-C und Java App-Entwickler haben die Chance durch die Marktausdehnung ihren Umsatz zu erhöhen - und das nahezu ohne Aufwand, oder eine neue Sprache oder Entwicklungsumgebung erlernen zu müssen. Microsofts Windows Store wiederum erhält einen Boost an neuen Apps, die es zuvor nur auf anderen Systemen gab. Diese Strategie bietet Microsoft mittelfristig die Chance, mit dem eigenen Store gleichauf mit der Konkurrenz zu ziehen. Doch wie wirkt sich das auf die App-Entwickler aus? Verschieben sich dadurch die Märkte? Gewinnt vielleicht die Windows 10 for Mobile Plattform so an Attraktivität, dass langfristig Microsoft hier die erste Geige spielt?

Einer Statistik vom Kantar Wordpanel nach besaß Microsoft mit der Windows Plattform im mobilen Sektor in Deutschland einen Marktanteil von etwa 8,5% Ende Mai 2015, während Apple mit dem iPhone mit 15,9% weit darüber lag und Google mit Android den Markt mit 74,7% weiterhin dominierte. Allerdings hat Android gegenüber dem ersten Quartal auch einiges an Marktanteil verloren (was hauptsächlich auf die Einführung vom iPhone 6 zurückzuführen ist).

Bezogen auf die fünf größten europäischen Märkte (Deutschland, Frankreich, Großbritannien, Italien und Spanien) hat Microsoft hier sogar fast die 10% Marke erreicht. In Deutschland allein sind es mit Stand Ende Juni 2015 sogar bereits 10,5%. Das Wachstum ist hier klar erkennbar.

Einen Überblick über die Daten gibt es hier.

Egal, welchen Weg die Entwickler also einschlagen: Native Entwicklung, Web-Entwicklung, Cross-Plattform Entwicklung, es ist bereits jetzt abzusehen, dass die Frage nach der App-Verfügbarkeit bald kein entscheidendes Kaufkriterium mehr sein und zunehmend wieder die Qualität der Geräte und die Usability im Vordergrund stehen wird.

Im Zeitalter von Cloud-Computing, BYOD und dem massenhaften Schwenk von Desktop PCs zu mobilen Tablets oder Smartphones ist das für Ihr Business in jedem Fall eine positive Nachricht. Und falls Sie einen Partner suchen, mit dem Sie Ihre zukünftige Business Strategie hinsichtlich der Wahl einer geeigneten Plattform diskutieren möchten, sprechen Sie uns gerne an!

Neues zu TouchDevelop (jetzt auch für Minecraft)

Über TouchDevelop haben wir nicht nur hier, sondern auch auf Entwicklerkonferenzen berichtet. Wir haben gezeigt, wie einfach es ist, damit Anwendungen und Spiele auf sämtlichen Devices für sämtliche Devices zu entwickeln und als besonderes Highlight eine eigene (in TouchDevelop entwickelte) Bibliothek vorgestellt, mit der sich sogar ein Lego MindStorms Roboter programmieren ließ.

Mittlerweile nimmt aber die Aussage “für sämtliche Devices” ganz neue Dimensionen an. Statt einfach nur noch als HTML5 Anwendung in allen Browsern zu funktionieren, oder als App exportiert in den Windows (Phone) Store exportiert zu werden, sind inzwischen folgende Möglichkeiten hinzugekommen:

  • Export to App Studio (Windows, Windows Phone)
  • Export to Cordova Apps (iOS, Windows, Android)
  • Export to Azure Web Apps (Node.JS)
  • Export to Raspberry PI (Node.JS)
  • Export to Web App or Office Mix

Es gab vor längerem bereits Tutorials, die gezeigt haben, wie sich für den Arduino programmieren lässt (inkl. Simulation auf dem Touchdisplay eines Smartphones). Ganz neu hinzugekommen ist die Unterstützung für das BBC Projekt micro:bit.

Nachdem zurzeit allerdings Minecraft in aller Munde ist (es scheint sich seit dabei zu einem Signature-Game für Microsoft zu entwickeln), ist folgendes besonders interessant: Mit MinecraftEDU und MinecraftPI werden Versionen angeboten, die es möglich machen, Scripte für Minecraft mittels TouchDevelop zu entwickeln.

Hier ein Beispiel für den Bau einer Pyramide:

PyramidCraft

 

Ich würde sagen: Das klingt doch mal nach einem spannenden Wochenend-Projekt, oder? Hier der Link zur Dokumentation.

Und nun viel Spaß!

Einfaches Buildmanagement gibt es nicht! Oder doch?

Man kennt es ja: Nach langer schwerer Arbeit ist das Design endlich abgenommen, die Architektur fest geklopft, der Code (fast) vollkommen fehlerfrei und der Kunde ist vorerst zufrieden. Nur noch “schnell” den Build konfigurieren und endlich ist man für die nächsten Jahre des Lebenszyklus der Anwendung gerüstet.

Doch leider ist es in der Praxis nicht ganz so einfach. Skripte müssen erstellt und gepflegt werden, verschiedene Konfigurationen gilt es zu berücksichtigen und wenn alles funktioniert hat und man zum nächsten Projekt übergegangen ist, fragt man sich nach fünf Monaten, wer die Änderungen am Buildprozess gemacht hat, die dafür sorgen, dass der Output für Windows 95 kompiliert und in den Papierkorb geschrieben wird und vor allem: Warum?

Mit dem TFS 2015 und in Zukunft auch Visual Studio Online (VSO) wird es auf diese und weitere Fragen eine Antwort geben. Microsoft baut das Buildmanagement so um, dass nicht mehr nur die Windows Workflow Engine (XAML) verwendet werden kann, sondern, gerade im Bezug auf die Cross-Plattform-Fähigkeit von .NET Core, auch Builds für andere Platformen, wie zum Beispiel Android, Mac OSX oder Linux gebaut werden können.

Einige der Highlights sind:

  • Einfache Anpassbarkeit durch Erstellung eigener Build-Tasks oder dem Import von Community-Tasks
  • Eine Liveansicht des Buildlogs im Browser
  • Builds für verschiedene Plattformen
  • Historie und Changelog für Builddefinitionen

Die bisher genutzte Workflow-Engine wird auch in Zukunft unterstützt und die bereits existierenden Builddefinitionen funktionieren 1:1 weiterhin. Hinzu kommen allerdings noch eine ganze Reihe neuer Möglichkeiten, Buildsysteme anzusprechen:

TFS2015 Build Tasks

 

Für die glücklichen unter uns, die bereits Zugriff auf das neue Build-System in VSO haben, findet man hier den Build-Agent und hier die bereits existierenden Tasks.

Der Team Foundation Server wird also auch in diesem Bereich offener und damit noch attraktiver für alle Entwickler.

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!

Ü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