Structure Visualizer for Dynamics CRM

Und endlich mal wieder ein Beitrag, in dem es um Dynamics CRM geht… heute zum Visualisierungstool für CRM Solutions als Visio Add-In, analog zum SharePoint Visualizer.

CRM-Professionals, sowohl Developer als auch Consultants, kennen den inzwischen in die Jahre gekommenen DiagramBuilder.cs aus dem CRM-SDK, auch bekannt als Metadata Diagram Tool. Bis heute darf man fürs Kompilieren selbst Hand anlegen und sich anschließend über ein handliches Commandline-Tool freuen, welches es manuell mit den gewünschten Entity Schema-Namen zu befüttern gilt. Das Ergebnis ist für einen Database-Admin oder Software-Architekten absolut ausreichend, für Dokumentationen und schematische Darstellungen ohne weitere Bearbeitung jedoch eher unpraktisch.

Anders der CRM Visualizer…

CRM Visualizer

Der CRM Visualizer ist ebenfalls wie sein Pendant zu SharePoint als Add-In für Visio 2013 direkt aus der Anwendung heraus zu bedienen. Nachdem eine Verbindung zum Zielsystem hergestellt wurde, stehen die bestehenden CRM Solutions zur Auswahl zur Verfügung, um aus dem darin enthaltenen Datenmodell bzw. dessen Metadaten ein Entity Relationship Diagram zu erzeugen.

Dynamics CRM Visualizer ToolBar

Wer sich freiwillig als Alpha-/Beta-Tester zur Verfügung stellen möchte, kann sich von mir auf Anfrage den jeweils aktuellen Release geben lassen.

Customer Incident vs. Incident Customer

Online Shopping im Jahre 2014 – ein ganz persönlicher Erfahrungsbericht.

Seit Jahren hatte ich mich der Erkenntnis hingegeben, dass in Zeiten von gewohnt gutem Service wie beispielsweise von Amazon, Online Shopping eine sichere und verlässliche Sache ist. Zumindest dann, wenn man ein paar einfache Grundregeln beim Online Shopping beachtet: bei großen, namhaften Händlern ordern, Preisvergleichsportale nutzen, Händler-Bewertungen beachten, bei ungutem Gefühl auch mal die verbreiteten Suchmaschinen befragen und ähnlichen Vorsichtsmaßnahmen. Doch sollte ich mich nach dem Defekt meines Tablets eines Besseren belehren lassen.

Irgendwann im Juli

Alles fing damit an, dass ich mehr und mehr Fehler bei meinem Lenovo Thinkpad Tablet 2 feststellte. Regelmäßige Aufhänger mit BSoD, ein ganz merkwürdiges Verhalten von WLAN-Modul, Bluetooth, 3G und des integriertem SD-Card-Readers, was schließlich in einen dauerhaften Pixelausfall einer ganzen Spalte im Display gipfelte.

LenovoTablet2 - Displayfehler

Zwar konnte man mit dem guten Stück noch arbeiten, da aber der Nutzwert des seit nicht ganz zwei Jahren lieb gewonnenen Geräts nunmehr gen Null tendierte, entschied ich mich, es auf Herstellerkulanz beim Verkäufer Cyberport einzureichen.

Ein kurzer Anruf bei der Hotline, wie vorzugehen sei, und schon war alles in die Wege geleitet. Ein Retouren Ticket gab es prompt vom Händler per Mail und es konnte losgehen. Bis hierhin ganz so, wie man es erwarten würde.

22. August

Den Anfang vom Übel kann ich recht kurz zusammenfassen. Trotz detaillierter Darlegung des Fehlers, Fotos und Videos, was das Problem zeigte, bekam ich nach knapp einem Monat die ernüchternde Diagnose: Mainboard defekt. Fazit des Dienstleisters von Cyberport, der IT-HAUS GmbH aus Föhren: Herstellergarantie (1 Jahr) sei bereits abgelaufen, Reparatur wäre wirtschaftlich nicht sinnvoll aber durchführbar für 1.326,85 EUR.
Die angebotenen Alternativen wären der Rückversand zu knapp 50 EUR für die erbrachte Service-Dienstleistung und Versandkosten sowie die Verschrottung für nur 25 EUR.

Noch am gleichen Abend

Nun gut – dumm gelaufen. Der Anschaffungspreis lag damals bei knapp 800 EUR aber was soll’s?! Schnell den Ärger runterschlucken und bitte um Retoure.

Ab hier teilen sich meine Bemühungen um Schadensbegrenzung in zwei Handlungsstränge: die Rückabwicklung des defekten Tablets und die Neubeschaffung.
Neubeschaffung aus zwei Gründen. Erstens habe ich Einiges an Zubehör für das gute Stück und zweitens gibt es auf dem Markt nichts, was in etwa vergleichbare Features (echte Dockingstation, WACOM Stylus, 10″ Display, 3G) bietet.

Die gute Nachricht war, dass ich mit der MetaComp GmbH einen Händler fand, der das gesuchte Gerät (Herstellerkennung N3S25GE bzw. 367925G – die Version mit der Ausstattung 3G & WACOM Stylus) zu einem akzeptablen Preis als Neuware anbieten konnte.

LenovoTablet2_N3S25GE_preisvergleich

Der Screenshot ist vom 26.08. / hier ist auch die Herstellerkennung eindeutig zu erkennen als auch die überaus gute Bewertung des Shops.

LenovoTablet2_N3S25GE_metacomp

Screenshot ebenfalls vom 26.08. / binnen von der vier Tage war der Preis bei MetaComp von ursprünglich 575 EUR auf knapp 600 EUR angestiegen und die Verfügbarkeit unbestimmt.

Zwar sind die 575 EUR gegenüber einer kostenfreien Reparatur auf Kulanz nicht unerheblich; andererseits konnte ich auch nicht auf Gewährleistung bestehen, da mir der Nachweis eines von Anfang an bestehenden Mainboard-Defekts verständlicherweise nicht möglich war. In diesem Sinne rein in den Warenkorb – immerhin sollte es ein Neugerät mit den Ausstattungsmerkmalen des Alten sein. Nach Auswahl der korrekten Herstellerkennung kann da eigentlich nicht viel in die Hose gehen… dank der guten Shop-Bewertung bei Preisvergleich schreckte mich auch die vom Händler angebotene Vorkasse gegenüber PayPal nicht, denn für Letzteres wollte man 10 EUR haben.

25. August

Info von der MetaComp GmbH per Mail. Ein Mitarbeiter mit dem Title Junior Sales informierte, man habe die Zahlung erhalten und würde des Tablet in Kürze versenden. Das ging fix. Ein Anflug von Vorfreude macht sich breit…

03. September

Schon anderthalb Wochen nichts von MetaComp gehört. Zumindest schon mal raus aus der Zeitspanne “in Kürze”. Telefonische Nachfrage beim Händler. Den Kollegen, der mir in der Vorwoche den Zahlungseingang bestätigte, erreichte ich nicht, dafür aber seine Kollegin. Sie zeigte sich leicht verwundert, so sei doch das Gerät offenbar lagernd. Mir wurde der schnelle Versand versichert. Und tatsächlich erhielt ich am gleichen Tag noch eine DPD-Tracking-Info.

04. September – Vormittag

Die Retoure von Cyberport erreichte mich. Ein kleines Päckchen. Merkwürdig, denn sollte da wirklich der Originalkarton rein passen, in dem ich das Gerät zur Prüfung eingeschickt hatte? Das Öffnen bescherte Gewissheit: nein, passt er nicht. Man hatte kurzerhand das Tablet in Knallfolie eingewickelt und zusammen mit einem Luftpolster in den Karton gepresst. Schade aber gut – geht ja auch viel schneller als es vernünftig zu verpacken und Zeit ist Geld. Außerdem hätte ich es wohl unter Zubehör vermerken müssen, wenn ich den Karton auch gerne wieder zurück haben wöllte. Ganz klar – mein Fehler.

Zum Glück hatte ich es nicht versäumt diesen Vermerk für den Digitizer Stylus auf dem Begleitschein zu hinterlassen, den ich auf Anraten der Hotline im Tablet eingesteckt mit an Cyberport übergab.

LenovoTablet2 RMA Begleitschein

Bei genauer Betrachtung des Tablets jedoch stellte ich mit Entsetzen fest, dass ich mir diesen freundlich gemeinten Hinweis hätte sparen können. So überraschte mich dort, wo ich den Stylus erwartete, nur ein leerer Slot. Nach kurzer aber gründlicher Suche im Karton war klar, dass der Eingabestift wohl irgendwo abhandengekommen sein musste.

Also fix nochmals die Cyberport-Hotline kontaktiert, das Fehlen des Stiftes bemängelt und um umgehende Übermittlung gebeten. Es wurde mir die schnellstmögliche Übergabe des Stiftes sowie eine Versandbestätigung zugesichert. Um nicht blind auf die Hotline zu vertrauen, gab es gleich noch eine Mail an die zuständige Bearbeiterin hinterher.

04. September – Nachmittag

Nach der Verärgerung vom Vormittag nun aber ein echter Grund zur Freude: Der Karton von MetaComp mit meinem niegel-nagel-neuen Tablet wird mir vom Postboten überreicht!

Eigentlich viel zu schön um wahr zu sein, was sich nach dem Öffnen des Kartons als leider wahr herausstellen sollte. Der erste äußere Eindruck ein schlechtes Omen, so spürte man das Gerät im abgewetzten und dürftig zugeklebten Lenovo-Karton herumpoltern. Um das fragwürdige Unboxing-Erlebnis auf das Wesentliche zu beschränken: Erstens eindeutig keine Neuware. Zweitens nicht die Version, die ich bestellt hatte sondern die preiswerte 36792PG ohne 3G und Stylus. Drittens Gehäuse kaputt. Und was macht eigentlich dieser merkwürdige USB-Stick mit Microsoft Lizenz-Aufkleber im Karton?

Und schon wieder ran ans Telefon. Ein Anruf bei der MetaComp GmbH, bei der ich so sachlich als mir möglich das Problem beschrieb. Der freundliche Mitarbeiter reagierte verwundert. Nach Darlegung der Mängel bestand schnell Einigkeit, dass hier wohl ein Missverständnis vorliegen müsse, da üblicherweise über den Webshop ausschließlich Neuware versendet werde. Mein Angebot Fotos zu übermitteln nahm er dankend an und versprach nach Prüfung des Vorfalls sich mit dem weiteren Vorgehen auf meine E-Mail hin zu melden, um das Problem aus der Welt zu schaffen. So bekräftigte ich meinen Wunsch, das ursprünglich bestellte Gerät weiterhin zu erwerben und war voller Hoffnung.

Lenovo Tablet 2 von MetaComp

Unnötig zu erwähnen, dass die besagte Mail mit den Fotos noch in der gleichen Stunde den Postausgang verließ.

Etwas später gab es dann nochmals von Cyberport eine Mail mit der Bestätigung, dass man den fehlenden Digitizer umgehend nachsenden würde.

05. September

Die Antwort von MetaComp…

Hallo Herr Roschinsyk,

vielen Dank für die schnelle Zusendung der Bilder.
Mir ist es selber etwas unklar, wie ein Gerät in solchem Zustand rausgeschickt werden kann.
Dies werden wir intern klären, nachdem das Tablet zur genauen Ansicht hier ist.
Leider haben wir das von Ihnen gewünschte Gerät aktuell nicht mehr auf Lager
und es ist auch nicht bei Lieferanten verfügbar.
Daher können wir Ihnen nur eine Gutschrift anbieten.
Bitte füllen Sie dazu den Rücksendebegleitschein aus, dass wir das Gerät bei
Wareneingang zuordnen können und die Rücküberweisung tätigen können.
Den Retourenschein kleben Sie bitte auf den Karton und geben diesen bei
Ihrem nächsten DPD-Shop ab.
Sobald der Artikel bei uns eintrifft, werden wir uns bei Ihnen melden.
Für Rückfragen stehe ich Ihnen gerne zur Verfügung.

<NAME>
Junior Sales

Dass hier wohl mehr als nur die Formatierung der E-Mail schief gegangen sein musste, liegt auf der Hand. Ob diese Reaktion Herrn Roschinsyk in irgendeiner Weise tröstet, zufriedenstellt oder auf sein Verständnis stößt, dürfte auch nicht schwer zu erraten sein.

Meine große Enttäuschung formulierend willigte ich kurzerhand in die Rücknahme der Ware ein und bat um schnellstmögliche Überweisung des Kaufbetrags. Ich war gespannt, ob man mir hier etwas Entgegenkommen zeigt und das Geld anweist, bevor der Elektroschrott wieder zurück in Stuttgart ist.

Aber wie nun weiter? Das Gerät gibt es einfach mal nicht mehr. Eine überregionale Suche brachte mich weiter. e-tec.at, ein Händler in Österreich führte das Tablet in der gewünschten Version ebenfalls als Neuware für 500 EUR mit ca. zweiwöchiger Lieferzeit. Toll! Und schon bestellt.

09. September

Kurze Randnotiz fürs Protokoll: Um 10:48h wurde die Retoure an MetaComp zugestellt.

10. September

Rückmeldung von e-tec.at – man sei gezwungen die Bestellung zu stornieren, da das “bestellte Produkt derzeit nicht verfügbar sei, und es daher aktuell nicht geliefert werden kann”. Gleich stornieren? Wirklich jetzt?! Ich hätte auch vier Wochen gewartet… aber gut. Ich vermute es ist weniger aufwändig, die Bestellungen zu stornieren als den Produktkatalog vernünftig zu pflegen. BTW – man kann es dort weiterhin bestellen.

Nächster Versuch, abermals in Österreich: DiTech.at – 555 EUR und zwei bis drei Wochen Lieferzeit. Ja aber gerne, wenn es doch dann nur endlich mal klappen würde! Hoffnung auf Erfolg? Nur wenig… Aufbau des Shops und der Ablauf der Abwicklung erinnern stark an e-tec.at; vermutlich der gleiche Händler mit zweitem Branding.

12. September

Rückmeldung von DiTech.at – leider könne man das Tablet von keinem Lieferanten mehr beziehen. Gebraucht hätte man noch zwei Geräte auf Lager. Ein paar Tage darauf gab es dann die Storno-Mail vom System generiert. Das Over-and-Out des Händlers. Schade.

Kurze Recherche, ob es noch irgendwo in Reichweite ein neues N3S25GE gibt. Fazit – gibt es nicht.

23. September

NBWN – Notebooks wie neu. Den Händler hatte ich zwar bei meiner Suche nach einem Ersatzgerät wahrgenommen aber nie wirklich in Betracht gezogen. Doch die dankenswerte Empfehlung meines lieben Kollegen brachte mich dazu, genauer darüber nachzudenken und mir die Produktdetails durchzulesen. Tatsächlich gab es dort die lang gesuchten N3S25GE-Tablets in offenbar recht brauchbarem Zustand.

Aber irgendwas war noch. Ach genau – was macht eigentlich MetaComp? Ein Blick aufs Konto verrät, dass sie wohl nicht viel machen. Zumindest nicht das, was ich erwartet hätte. Per Mail an den Herrn Junior Sales eine bestimmte aber doch mit verhältnismäßig neutraler Wortwahl formulierte Erinnerung verfasst:

Guten Abend Herr <NAME>,

und so verhallte meine fromme Hoffnung auf eine zügige Abwicklung vom 05. September.

So, wie der gesamte Auftrag bisher gelaufen ist, geht es nun auch in die hoffentlich finale Runde. Aber keine Panik – als leidgeprüfter Kunde habe ich mir selbstverständlich ein dickes Polster an Nachsicht und Geduld zugelegt. Nicht zuletzt, da ich bereits befürchtete, dass es mit dem Rückversand Ihres Versehens nicht getan ist.

Ich verstehe, dass Sie natürlich Prioritäten setzen müssen. So hatten Sie mir avisiert, dass es “intern zu klären sei, wie ein Gerät in solchem Zustand rausgeschickt werden könne, nachdem das Tablet zur genauen Ansicht bei Ihnen sei”. Das ist es nun. Seit zwei Wochen. Genauer gesagt seit dem 09.09. um 10:48h.

Ganz sicher bedarf es einer sehr genauen Untersuchung des Vorfalls. Für diese Akribie ziehe ich aufrichtig meinen Hut vor Ihnen. So hätten andere Händler wohl lediglich versucht den geprellten Kunden zu beschwichtigen, um den guten Ruf zu wahren. Nicht so MetaComp – gut Ding will Weile haben. Perfektion geht über Kundenmeinung. Mein vollstes Verständnis.

Dennoch würde ich es sehr begrüßen, wenn Sie mir, wie zugesagt, auf dem schnellsten Wege mein Geld in Höhe von 582,79 EUR an die angegebene Kontoverbindung zurücküberweisen würden. Ich denke das Geld für die nicht erbrachte Leistung hat sich mit gut einem Monat nunmehr lange genug auf dem Konto Ihres Hauses verdient gemacht. Sollten Sie wider Erwarten den Betrag angewiesen haben, bitte ich Sie dringendst um Prüfung des wann und wohin.

Darüber hinaus lasse ich mich von Ihnen natürlich gerne aufklären, wie es zu diesem mysteriösen Versehen kommen konnte.

Für eine prompte Reaktion bedanke ich mich herzlichst.

Mit den besten Grüßen,
Thomas Roschinsky

24. September

Bei NBWN ein Lenovo Thinkpad Tablet 2, 3679-25G (N3S25GE) als Demo-Pool-Gerät in wohl sehr gutem Gebrauchtzustand für 404 EUR bestellt.

27. September

Kaum zu glauben aber wahr: Ein Lenovo Thinkpad Tablet 2, 3679-25G (N3S25GE) in wirklich sehr gutem Gebrauchtzustand für 404 EUR von NBWN geliefert bekommen. Schnell, preiswert, professionell. Chapeau, NBWN!

Sollte es das jetzt wirklich gewesen sein? Aber nein halt – das fehlt doch noch was…

28. September

…genau – MetaComp! Posteingang, SPAM-Folder und Konto geprüft. Nichts. Keine Nachricht, kein Geld. Notiz an mich: Sarkasmus ist kein brauchbares Stilelement, wenn man mit dem Vertrieb spricht. Da der Sonntag sich dem Ende neigte, war abermals die E-Mail das Mittel der Wahl. Diesmal an die beiden Geschäftsführer persönlich.

29. September

Und tatsächlich. Am frühen Nachmittag erreicht mich die Antwort. Der Fairness halber sei festzuhalten, dass die Antwort so ausfiel, wie man es eigentlich erwarten würde, inklusive aufrichtiger Entschuldigung, Einräumen von Fehlern und der Zusicherung der Überweisung des ausstehenden Betrags.

Heute

Zahlungseingang auf den Cent genau. Knapp 40 Tage später. Immerhin…

- THE END -

Blöd gelaufen. Ich hätte gerne darauf verzichtet – und zwar auf alles. Auf die Aktion mit Cyberport, die beiden Händler aus Österreich aber allem voran auf die Wirren rund um die Bestellung bei MetaComp. Ganz zu schweigen von der ganzen Rennerei nebst Schriftverkehr und Telefonaten. Dennoch – es hätte schlimmer kommen können und im Schnitt habe ich seit über 10 Jahren größtenteils gute Erfahrungen mit Online-Shopping gemacht. Vielleicht war es lange mal an der Zeit für den Griff in die Schüssel.

Leichtgewichtige Alternative zu SPMetal

Wer bereits mit SPMetal gearbeitet hat, kennt die Vorzüge aber sicher auch die Nachteile, die der Einsatz des ORM mit sich bringt. In großen Projekten mit einer Vielzahl von Listen und Bibliotheken erleichtert SPMetal die Arbeit ungemein während es bei programmatischen Anpassungen, wie einzelnen EventReceivern oder einer kleinen Anwendung zur Datenmigration keinen Nutzen bringt. Gerade im Zugriff per CSOM ist man hier viel schneller, wenn man die wenigen Felder, die man benötigt, manuell anspricht und sich die benötigten StaticNames per PowerShell holt.
Jedoch ist hart-kodieren bekanntlich alles andere als schick und oft kommt es vor, dass man ein wichtiges Feld vergessen hat – also wieder die PowerShell starten und den StaticName holen. Oder gar über Tricks im Web-Interface den passenden Feldnamen suchen…

SPWoodUm die Lücke zwischen SPMetal und der Suche von eindeutigen SharePoint-Feldnamen “zu Fuß” zu schließen, habe ich eine kleine Anwendung mit dem Namen “SPWood” gebastelt, mit deren Hilfe sich Listen/Bibliotheken einer SharePoint-Webseite und deren Felder schnell und einfach in Enums überführen lassen. Der erzeugte Code kann direkt per Copy’n Paste in das eigene Programm übernommen werden oder separat als Datei bzw. Klasse gespeichert werden.

Durch die Verwendung des Summary-Tags an jedem Feld wird zudem die Ausgabe des IntelliSense um wichtige Informationen erweitert. So sieht man beispielsweise auf den ersten Blick, wie der Anzeigename lautet, ob das Feld schreibgeschützt ist und um welchen Datentyp es sich handelt.

Direkter Zugriff per String-Indexer am ListItem:

ListItem Feld Indexer per bekanntem Feldnamen als String

Direkter Zugriff per SPWood-Proxy-Enum am ListItem mit IntelliSense:

ListItem Feld Indexer mit SPWood

Das Tool steht in meinem OneDrive zur freien Verfügung; lediglich die SharePoint Client DLLs werden noch benötigt. Details dazu siehe beiliegender README.

“SPWood.zip”

QUELLE: OneDrive

GRÖßE: 0,05 MByte

DATUM: 29.08.2014

Microsoft Azure angetestet

Trotz Patriot Act, NSA-Skandal und der heute ganz alltäglichen Paranoia, lässt sich das Thema rund um das IT-Buzzword, mit dem sich jede Runde B*llsh*t-Bingo gewinnen lässt, kaum ignorieren. So ist auch die Microsoft-Wolke, die seit der CTP aus dem Jahr 2008 und dem kommerziellen Release in 2010 nunmehr einige Jahre auf dem Buckel hat, deutlich aus den Kinderschuhen heraus und stellt eine ernstzunehmende Cloud-Plattform zur Verfügung.

Die Einstiegshürden sind verhältnismäßig niedrig – aktuell gibt es Azure für alle Interessierten mit einer kostenfreien, einmonatigen Testversion, die 150€ zum Ausgeben für virtuelle Infrastruktur beinhaltet. Für all jene, die über eine MSDN-Subscription verfügen, hat man noch bessere Nachrichten parat: Je nach Abo-Typ ist bereits ein Azure-Kontingent zwischen 40€ und 115€ pro Monat in der MSDN-Mitgliedschaft enthalten, was man keinesfalls nur aus Unwissenheit verfallen lassen sollte.

Die Teststellung ist mit einer Live-ID schnell und unkompliziert eingerichtet. Anschließend kann man sich seine Dienste in der Cloud mit wenigen Klicks zusammenstellen.

Azure Trial - Neuen Dienst/Instanz erstellen

Das tatsächliche Highlight bei der Bereitstellung sind jedoch die Kataloge, aus denen man zahlreiche vorab installierte/konfigurierte System-Images auswählen kann.

VM-Images

  • Windows Server 2008 R2 SP1 bzw. 2012 R2
  • Visual Studio
  • BizTalk
  • SQL Server
  • SharePoint
  • Dynamics-Produkte
  • Ubuntu
  • CentOS
  • Suse
  • Oracle

Web App Images

  • ASP.NET
  • Java
  • PHP
  • Node.js
  • Python
  • SQL Databases
  • MySQL
  • MongoDB
  • WordPress
  • Umbraco
  • Joomla
  • Drupal

Azure Trial - VM Katalog

Die Verwaltung der Azure-Services erfolgt vollständig über ein Web-Interface, mit dem sich von der einzelnen VM bis hin zur Gesamtabrechnung der in Anspruch genommenen Ressourcen für das Azure-Konto alles überwachen und steuern lässt.

Azure Trial - VM Dashboard

Und um die ganze Sache abzurunden, kann die Bereitstellung von Azure-Services ebenfalls via PowerShell oder gar per REST-Webservice erfolgen.

Mein Fazit: Für den Aufbau umfassender Test-Szenarien, das Ausprobieren neuer Technologien und die Entwicklung von Komponenten eine wirklich gute Alternative.

OneNote API: Der Juni bringt Neues für die Beta

Anfang diesen Jahres wurde die OneNote REST API für den Zugriff auf die online abgelegten OneNote-Notizbücher veröffentlicht. Damit ist es möglich in eigenen Anwendungen das Speichern von Informationen in das eigene Notizbuch zu implementieren.
Leider fehlt es der API bislang an wesentlichen Funktionen: Man kann nicht vorgeben, wohin man im Notizbuch speichern möchten - die angelegte Seite wird automatisch in den Default-Bereich “Nicht abgelegte Notizen” geschrieben - und es ist nicht möglich, Informationen aus den Notizbüchern gezielt zu lesen. Diese Mängel stellten die an sich gute Idee erheblich in den Schatten und machten sie weitestgehend uninteressant für Entwickler.
Nachdem seit April nur wenig spannende Neuigkeiten zur Web-Schnittstelle veröffentlicht wurden, informierte man kürzlich ohne großes Aufsehen, dass diese beiden Funktionen nun in der Beta zur Verfügung stehen.

Am 12. Juni wurde im OneNote API Developer Blog bekanntgegeben, dass das Anlegen von Inhalten an beliebigen Stellen im Notizbuch funktioniert und am 18. Juni das Lesen von allen Notizbüchern, deren Bereichsgruppen, Bereichen und Seiten.

Testen kann man die neuen Funktionen bereits in der Beta-Version der Schnittstelle; am schnellsten per OneNote APIGee Console:

1. Sammlung der Notizbücher abrufen…

OneNote API - Notizbücher abrufen

2. Die im Notizbuch enthaltenen Bereiche abrufen…

OneNote API - Bereiche im Notizbuch abrufen

3. Die im Bereich enthaltenen Seiten abrufen…

OneNoteApi_Pages

Die Vermutung liegt nahe, dass die in der Beta verfügbaren Funktionen ebenfalls bald in den Release der API eingehen. In dem Falle steht der Entwicklung eigener Anwendungen mit direkter OneNote-Anbindung nichts mehr im Wege…

PowerShell für Developer

Das eigentliche Killer-Feature der PowerShell ist tatsächlich die konsequent durchgesetzte Objektorientierung. Es muss ja nicht unbedingt immer gleich ein ganzes Script sein. Oft genug genügen auch ein paar .NET Objekte, die man sich mit wenigen Zeilen Code/Command(let)s von der ersten Property bis zu letzten Methode zu Gemüte führen kann.
Ganz besonders reizvoll wird dies bei APIs von komplexen Systemen, wie z. B. Microsoft SharePoint, mit deren Hilfe man per PowerShell auf dem gesamten Objektmodell mit minimalem Aufwand lesen und manipulieren kann.

Wie im letzten PowerShell-Post, hier ein paar meiner Favoriten kurz und knapp zusammengetragen:

#1 Get-Member: Objekt-Analyse

Direkt an der Konsole fehlt üblicherweise IntelliSense. Da man Eigenschaften und öffentliche Methoden von Objekten selten alle im Kopf hat, ist Get-Member das aus meiner Sicht wichtigste Cmdlet der PowerShell – ganz besonders dann, wenn man etwas abseits der Cmdlets mit .NET Objekten arbeitet. Den Spickzettel zu jedem Objekt gibt’s auf Befehl (im Beispiel für ein System.IO.FileInfo-Objekt) per Get-Member.

dir | Get-Member

Fehlen Methoden oder Eigenschaften, kann man dem Cmdlet mit der Option -Force noch ein wenig mehr Informationen entlocken.

dir | Get-Member -Force

#2 Invoke-WebRequest: Daten aus dem Netz verwenden

Mit einem Web Request Daten aus dem Netz laden: Beim Entwickeln von Software vor allem dann populär, wenn es um das Ansprechen von Web-APIs geht. Im nachfolgenden Beispiel wollen wir ein Diablo III Spielerprofil via REST Webservice abrufen.

// Daten abrufen; vorerst "Plain" per .NET Klassenbibliothek und dem WebClient
(New-Object System.Net.WebClient).DownloadString("http://eu.battle.net/api/d3/profile/quatze-2409/")
// Ganz ähnlich aber viel kürzer geht es mit dem Invoke-WebRequest Cmdlet, welches mit PS 3.0 eingeführt wurde
Invoke-WebRequest http://eu.battle.net/api/d3/profile/quatze-2409/

Soweit so gut aber wirklich arbeiten kann man damit noch nicht, da wir lediglich die JSON-Struktur in einem String haben. Mehr dazu mit dem nächsten Cmdlet…

#3 ConvertFrom-Json: Rückgabe des REST Webservice verarbeiten

Um mit den aus #2 abgerufenen Informationen zu arbeiten, kann man den abgerufenen String umständlich von Hand parsen und zerschneiden oder man konvertiert ihn in ein .NET Objekt. Das Cmdlet ConvertFrom-Json bringt hierfür alles mit, was wir benötigen.

// Der vom REST Webservice abgerufene String wird an das Cmdlet ConvertFrom-Json übergeben, welches ein Custom Object erzeugt
Invoke-WebRequest http://eu.battle.net/api/d3/profile/quatze-2409/ | ConvertFrom-Json
// In einem Schritt und ohne explizites Konvertieren erzeugen wir mit dem Cmdlet Invoke-RestMethod das Custom Object, ...
$d3profile = Invoke-RestMethod http://eu.battle.net/api/d3/profile/quatze-2409/
// ...an welchem wir alle Helden nebst Primärattribute im Spielerprofil ausgeben lassen können
$d3profile.heroes | ft name, level, hardcore, gender, last-updated -AutoSize

#4 Range Operator

Es klingt profan aber die Idee dahinter spart Zeit und Code: Der Range-Operator der PowerShell zum einfachen Erzeugen von nummerischen Bereichen. Praktischer Nutzen? Kommt sofort…

// 1 bis 10 ausgeben; zugegeben - eher unspannend aber es erklärt die Funktionsweise
1..10

// Alles von A-Z; immer noch kein umwerfendes Feature aber durchaus praktisch
65..90 | % { [char]$_ }
// Ein Array mit 23 bis 42 initialisieren
$a = 23..42
$a.Length
// Drei mal gpupdate ausführen mit jeweils 10 Sekunden Pause
1..3 | % { gpupdate ; "Update #$_ $(Get-Date) done." ; Start-Sleep 60 }

#5 [] als Indexer

Nur der Vollständigkeit halber noch zu erwähnen: Zugriffe auf Collections und Arrays sind analog zur C#-Syntax möglich…

// Hier im Beispiel des Arrays aus #4
$a[5]

 

Mehr Informationen zur PowerShell und den Standard-Cmdlets aus dem Microsoft.PowerShell.Utility Modul findet man im TechNet.

Structure Visualizer for SharePoint

SharePoint VisualizerVon Zeit zu Zeit stehe ich vor der Herausforderung, Strukturen einer SharePoint Site oder eines SharePoint Webs grafisch darzustellen. Beispielsweise geht es dabei um Prototypen, deren ERM es in ein Konzept zu integrieren gilt oder man möchte für komplexe Seiten eine “Landkarte” erstellen, so dass neuen Projektpartnern der Einstieg erleichtert wird.
Gerade bei umfangreich verschachtelten Seitenstrukturen oder Datenmodellen mit zahlreichen Beziehungen ist es sinnvoll, Diagramme automatisch und so flexibel als möglich zu generieren. Besonders hilfreich ist es, wenn sich das Diagramm anschließend noch bearbeiten lässt.
Vor einigen Jahren hatte ich mir mit dem SharePoint Analyzer ein eher technisch orientiertes Tool gebastelt, was inhaltlich zwar ausreichend war, jedoch nur bedingt für die Erstellung vorzeigbarer Strukturübersichten geeignet ist…

SharePoint Visualizer ToolBar

Der SharePoint Visualizer vereint als Add-In für Microsoft Visio 2013 die Funktionen zum automatischen Auslesen von Site- und Web-Strukturen und hilft mit zur jeweiligen Seite verlinkten Visio-Shapes bei der Erstellung von aussagekräftigen Übersichten. Bei Bedarf können zusätzlich benutzerdefinierte Berechtigungen jeweils zu Web, Bibliothek oder Liste eingeblendet werden.


SharePoint isualizer SiteStructure

Die Beziehungen von Listen/Bibliotheken zueinander werden nebst Referenzname (Name des Nachschlagen-Felds), Richtung und ggf. Mehrfachnachschlagefunktion als n:m-Relation angezeigt, so dass man die Grafik als vereinfachtes Entity Relationship Diagram verwenden kann.


SharePoint Visualizer RM

Der asynchrone Aufruf der Business-Logik sowie ein wenig mehr “Intelligenz” bei der Darstellung sehr großer Website-Sammlungen fehlen noch – dennoch hier die BETA zum Testen:

“SharePoint-StructureVisualizer_BETA.zip”

QUELLE: OneDrive

GRÖßE: 0,46 MByte

DATUM: 29.06.2014

Folgen

Erhalte jeden neuen Beitrag in deinen Posteingang.

Schließe dich 90 Followern an