Homematic Notification Service

Ganz heimlich, still und leise hatte ich hier an dieser Stelle zum vergangenen Weihnachtsfest ein Stückchen Software in die große, weite Welt entlassen und nicht viele Worte darüber verloren: den Benachrichtigungsdienst für die Homematic CCU2.

Wofür dieser Benachrichtigungsdienst gut ist, ist schnell erklärt. Wer ein Heimautomatisierungssystem aus der Produktion der eQ-3 AG sein Eigen nennt, hat oft mehr als nur zeitgesteuerte Beleuchtung oder Heizungsregelung im Sinn. Ist man nicht zu Hause, ist eine Alarmschaltung oder ein Monitoring der Rauchmelder nützlich. Leider ist die Einrichtung einer zeitgemäßen Benachrichtigung über Änderungen von Schaltzuständen, zum Beispiel beim Öffnen einer Tür oder Erkennung von Bewegung über einen Bewegungsmelder, mit Bordmitteln nicht ganz trivial zu realisieren und mündet gelegentlich in eine instabile oder hängengebliebene CCU2. Um hier Abhilfe zu schaffen, habe ich mir zum Thema ein paar Gedanken gemacht und eine einfache Dienstanwendung gebastelt.

Das eigentliche Highlight ist die Möglichkeit zu haben, sich bei wichtigen Ereignissen per Push-Message direkt auf das Handy benachrichtigen zu lassen – hier im Beispiel die App Pushalot unter Windows 10 sowie auf dem Handy unter Windows Phone 8.1:

Die Anwendung ist als Windows-Dienst implementiert, versendet Benachrichtigungen für Ereignisse der per Konfiguration angegebenen Homematic-Sensoren und protokolliert auftretende Fehler im Eventlog. Kurz gesagt: reine Backend-Logik. Um dennoch die Funktion der Anwendung sowie der erstellten Konfigurationsdatei testen zu können, gibt es zusätzlich eine Windows-Forms Applikation, die sowohl die aus der Konfiguration ausgelesenen Einstellungen und Benachrichtigungselemente darstellen kann, als auch auszuführende Benachrichtigungen versendet/simuliert und Fehler protokolliert.

HomeMaticNotification_TST

Die Basiskonfiguration (Pfad zur Konfigurationsdatei, Ausführungsintervalle, etc.) des Dienstes oder auch der Anwendung ist in der jeweiligen App-Config “SVC_HomeMaticNotification.exe.config” zu finden. Die wesentlich wichtigere, inhaltliche Konfiguration wie Benachrichtigungsgruppen, Benachrichtigungsziele sowie die zu überwachenden Geräte sind in einer separaten XML-Konfigurationsdatei zu konfigurieren.

HMN_SampleConfig

Um nicht nur einen Empfänger von einer Dienst-Instanz zu benachrichtigen, können parallel mehrere Gruppen von Benachrichtigungen (notifyGroup) mit unterschiedlichem Umfang, Einstellungen und Empfänger hinterlegt werden. Pro Gruppe kann ein Benachrichtigungsziel (notifyBy) festgelegt werden, was entweder ein Key der Push-Dienste Pushalot (NotifyProvider=”Pushalot”) oder Pushover (NotifyProvider=”Pushover”) sein kann oder auch eine E-Mail-Adresse (NotifyProvider=”Email”).
Für ein Benachrichtigungselement (notifyItem), ein per Device-Serial adressiertes Gerät, können erweiterte Einstellungen konfiguriert werden, so dass beispielsweise zu festgelegten Tagen/Uhrzeiten (silenceTimes/silence) oder bei dem Zutreffen bestimmter Bedingungen (conditions), wie Schaltzuständen weiterer Geräte (devCondition) bzw. Systemvariablen der Homematic-Zentrale (varCondition), Benachrichtigungen nicht übermittelt werden dürfen.

Das Monitoring der Homematic-Komponenten erfolgt in der vorliegenden Version nicht wirklich ereignisgesteuert, sondern bedient sich einem design-technisch nicht allzu schönem Workaround, der dies lediglich so erscheinen lässt. Allem voran die in meinem letztjährigen Post zum Thema erwähnten Schwierigkeiten mit der Eventregistrierung über die native Schnittstelle der CCU2, XML-RPC, führten dazu, dass ich ein – in der Standardkonfiguration zwei-sekündlich – “pollendes” Verfahren für die Überwachung der Komponenten verwende. Auch wenn ich inzwischen teilweise die ursprünglichen Probleme umgehen konnte, hatte ich dennoch mit erhöhtem Stromverbrauch der abgefragten Sensoren/Aktoren zu kämpfen. Hinzu kommt, dass ich zu Beginn der Entwicklungsarbeiten am Dienst auf die HomeMatic-XmlApi-Lib zurückgreifen musste, so dass ein Rückportieren auf XML-RPC aus heutiger Sicht nicht lohnenswert erscheint. Die sehr häufige Abfrage der XML-API (~40k Requests/Tag) scheint keine negative Auswirkung auf die CCU2 zu haben – der Service läuft bei mir ca. seit einem Jahr sehr stabil ohne auffällige Probleme oder Unzuverlässigkeit.

Im aktuellen Release (v1.1.9.3) sind inzwischen ein paar neue Funktionen enthalten sowie ein paar Bugs korrigiert. Für alle Interessierten steht die Software (inkl. Tester-Anwendung und Beispielkonfiguration) in meinem OneDrive zum Download bereit. Die jeweils neuste Version wird als Quellcode im dazugehörigen Repository auf Github zu finden sein.

HomeMaticNotification_TSTGitHub-Repo: github.com/roschinsky/HomeMatic-Notification-Service

MD5 Hash: ca29cbe561e53507db4feca121454af6


Feedback, Forks oder interessante Fragen – hier oder auf Github – sind stets willkommen.

Für die Zukunft ist geplant die Dienstanwendung auf den RaspberryPi zu portieren, so dass sie unter Windows 10 for IoT lauffähig ist.

Frohes Fest!

Zum Feste nur das Beste! Open-Source darf auch unter dem Weihnachtsbaum nicht fehlen, so dass ich meine liebe Leserschaft pünktlich zum 24. mit vier Projekten erfreuen möchte, die dieses Jahr den Weg in GitHub-Repositories gefunden haben.

Homematic

Im Blog-Post aus dem März mit dem Erfahrungsbericht zur Homematic hatte ich über meine Ideen zur programmatischen Erweiterung des Systems geschrieben. Daraus entstanden sind eine C# Library, die den Zugriff auf das Homematic Add-On XML-API für .NET-Projekte kapselt, sowie ein Windows-Dienst zur Benachrichtigung über Statusänderungen von in einer Konfigurationsdatei definierten Homematic-Sensoren…

HomeMatic-Notification-Service

MD5 Hash: ca29cbe561e53507db4feca121454af6

 

HomeMatic-XmlApi-Lib

MD5 Hash: 6004e7a70784ac53e18f6da634897696

 

PushMonitoring

Ein minimalistisches Server-/Client-Monitoringsystem (Details siehe Blog-Post aus dem Juni)

MD5 Hash: 5aeefc81641179f80e416c07f217209b

 

SPWood

Ein Code-Generator für Feldnamen von SharePoint-Listen und -Bibliotheken (Details siehe Blog-Post aus 2014) zur Verwendung in eigenem Code als Konfigurationsklasse mit Enums.

MD5 Hash: 05f12753c0cbfd30f6eee9166cfe6954

 


Viel Spaß beim Ausprobieren und ein frohes Weihnachtsfest! :)

SharePoint 2013 Workflow mit ApplicationException HTTP 401

Kein gänzlich neues Thema: Ein SharePoint-Workflow bleibt hängen. Beim Testen ging er noch und nun, wo er produktiv gehen soll, läuft er nicht länger durch. Nur warum?

Dem Log oder auch den Workflow-Informationen entnimmt man ein vielsagendes “Angehalten”  bzw. “Suspended”. Bei genauerem Hinsehen (MouseOver des kleinen, blauen Info-Icon) findet man in etwa die folgende Fehlerbeschreibung und ist nur ein ganz klein wenig schlauer:

RequestorId: 472ce13d-a3c0-e24a-0000-000000000000.
Details: An unhandled exception occurred during the execution of the workflow instance. 
Exception details: System.ApplicationException: HTTP 401
{"Transfer-Encoding":["chunked"],
 "X-SharePointHealthScore":["0"],
 "SPRequestGuid":["472ce13d-a3c0-e24a-af05-003a17628b61"],
 "request-id":["472ce13d-a3c0-e24a-af05-003a17628b61"],
 "MicrosoftSharePointTeamServices":["15.0.0.4561"],
 "X-Content-Type-Options":["nosniff"],
 "Date":["Wed, 19 Aug 2015 23:42:01 GMT"],
 "Server":["Microsoft-IIS\/8.5"],
 "WWW-Authenticate":["NTLM"],
 "X-AspNet-Version":["4.0.30319"],
 "X-Powered-By":["ASP.NET"]}
  at Microsoft.Activities.Hosting.Runtime.Subroutine.SubroutineChild.Execute(CodeActivityContext context) 
  at System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager) 
  at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)

Der Grund, warum ich ausgerechnet diesem Fehler einen Beitrag widme, ist der, dass im Netz zwar zahlreiche Fragen zur Fehlermeldung existieren aber unangenehmerweise fast ebenso viele Antworten, die nicht zwangsläufig zum Ziel führen. Man solle die Benutzerprofilsynchronisierung manuell in der Zentraladministration starten, man möge dem Workflow-ausführenden Benutzer Schreibrechte auf die korrespondierende Liste geben, man müsse statt SharePoint-Benutzer besser AD-Benutzer direkt berechtigen, ein Workflow-Identitätswechselschritt oder der neue App-Step soll Wunder wirken, und zahlreiche Ideen mehr. Leider in meinem konkreten Fall alles Käse, viel zu kompliziert gedacht und komplett vorbei an der Lösung…

Das Problem

Was man schon mal mit Gewissheit sagen kann, ist der Fakt, dass hier ein Berechtigungsproblem vorliegt. Die spannende Frage ist: Wo? Denn genau das, verrät die Meldung leider nicht.

Bevor ich das Rätsel lüfte, möchte ich ein paar signifikante Eigenheiten des Workflows sowie Konfiguration/Umgebungsbedingungen der SharePoint-Site beschreiben, da diese mit der Schlüssel zur Lösung sind:

  • Der “normale” Benutzer auf der SharePoint-Site ist lediglich Mitglied der Besuchergruppe, hat folglich auf die meisten Elemente der Seite nur lesenden Zugriff
  • Der Workflow sollte ein Listenelement schreiben, was der den Workflow ausführende Benutzer von Hand auch kann/darf, da für die Liste die Berechtigungsvererbung aufgehoben wurde und die Mitglieder der Besuchergruppe hier schreiben dürfen
  • Der Workflow läuft ohne Probleme für Benutzer, die über die Mitgliedergruppe der Seite berechtigt sind, nicht jedoch für Benutzer der Besuchergruppe; dennoch sind die Rechte für Besucher und Mitglieder auf der in Rede stehenden Liste identisch
  • Der Workflow schlägt für Benutzer der Gästegruppe bereits relativ weit am Anfang fehl, noch bevor tatsächlich eine Create-Action für die Liste ausgeführt wird sondern lediglich beim Protokollieren im Workflowverlauf

Die Lösung

Der letzte Punkt in der Aufzählung ist der Entscheidende und das Schlüsselwort ist “Workflowverlauf”. Die Workflowverlaufsinformationen werden in der Standardkonfiguration eines Workflows ebenfalls in eine Liste auf der Seite geschrieben, die von Hause aus versteckt ist und dementsprechend nicht unter “Alle Websiteinhalte” erscheint.
Mit Hilfe des SharePoint Designer 2013 oder auch des direkten Aufrufs (http://<server>/<site>/Lists/Workflow%20History/) erhält man Zugriff auf die Liste und sollte hier sicherstellen, dass den Benutzern, die den Workflow ausführen und damit in ihrem Namen in die Workflowverlaufsliste schreiben sollen, hier über die entsprechenden Rechte verfügen. Alternativ ist es natürlich auch möglich, eine neue Workflowverlaufsliste für den Workflow zu definieren – die Hauptsache ist, dass der Benutzer darin schreiben darf.

Noch ein Tipp zur Fehleranalyse sowie auch für den Fall, dass der beschriebene Lösungsansatz nicht zum Erfolg führt: Wenn man das Log bzw. die Workflow-Informationen direkt zur Laufzeit des Workflows beobachtet, erhält man möglicherweise andere Fehlermeldungen, die sich hinter dem blauen Info-Icon verbergen deutlich aufschlussreicher sind. So zum Beispiel brachte mich die folgende Meldung auf den richtigen Pfad zur Lösung meines Problems:

Retrying last request. Next attempt scheduled in less than one minute. 
Details of last request: HTTP Unauthorized to http://sitename/_vti_bin/client.svc/web/lists/getbyid(guid'guid')/Items 
Correlation Id: guid Instance Id: guid

(In Deutscher Umgebung: “Die letzte Anforderung wird wiederholt. Der nächste Versuch ist in weniger als einer Minute geplant”)

Mit der GUID, die sehr wahrscheinlich in einem der Selektoren des API-Requests enthalten ist, wie zum Beispiel der Listen-ID, lässt sich mit wenig Aufwand die Liste oder das Element, welches das Problem verursacht, schnell ausfindig machen.

SharePoint Server 2016 Reversed for Developers

TopChangesUnd noch immer kein SDK. Wie schade! Auch nach rund anderthalb Monaten findet man fast ausschließlich die bereits bekanntgegebenen Informationen, die eine Flut von fast immer gleichen Blog-Posts zum Thema nach sich zog. Selten machen sich die Autoren dabei die Mühe die 2016-Feature-Liste nicht nochmals 1:1 aufzuwärmen.
Viel interessanter wäre es doch zu sehen, was es alles Neues in der API gibt. Neue Methoden oder Eigenschaften auf den vertrauten Objekte wie SPList, SPWeb, SPFile und SPSite oder generell die Möglichkeiten per CSOM mit den neuen Compliance Features zu arbeiten. Selbst der reine Umfang an Änderungen bei den PowerShell Commandlets sollte interessante Rückschlüsse auf die strategische Ausrichtung von SharePoint aus dem Blickwinkel des Herstellers zulassen…

Glücklicherweise lassen sich die meisten Dinge mit Hilfe der verfügbaren Preview von SharePoint 2016 relativ einfach selbst recherchieren. Da ich mir den Spaß gegönnt habe, die Preview mit ihrer Vorgängerversion zu vergleichen, wollte ich es mir nicht nehmen lassen, einige der gewonnenen Erkenntnisse kurz niederzuschreiben.

PowerShell

Wohl am einfachsten ist es, sich die Verteilung der Commandlets hinsichtlich ihrer Aufgaben anzuschauen. Hierfür vergleiche ich lediglich die Anzahl aller SharePoint-Commandlets gruppiert nach Verb, was uns 17 Neuerungen bei den Get- und 16 bei den Set-Commandlets beschert. Rein prozentual sind die 4 neuen Reset-Commandlets noch zu erwähnen sowie auch die ganz neu eingeführten Migrate-Commandlets.

Changes_PowerShell

15-Hive vs. 16-Hive

Ähnlich simpel, jedoch noch wesentlich spannender wird es, wenn wir SharePoints 15-Hive dem 16-Hive gegenüberstellen. Nach einem Vergleich der Anzahl aller Files gruppiert nach Dateierweiterung ist schnell zu erkennen, wo sich wohl etwas getan haben muss.

compare_ISAPI-Folders

Die Webservices (.asmx- und .svc-Dateien) sind offenbar identisch von ihrer Anzahl her – die DLLs zeigen jedoch einen deutliche Unterschied. Schauen wir uns als die DLLs an. Aber nicht nur die Anzahl sondern auch die Größe der Dateien in der Gegenüberstellung beider ISAPI-Folder lässt Vermutungen zu, wo sich die scheinbar signifikantesten Änderungen verstecken.

Changes_LibrariesFür den Anfang gibt der Vergleich der beiden ISAPI-Folder Hinweise auf die Ausrichtung von künftigen SharePoint-Versionen sowie einen guten Einstieg, mit welchen Bibliotheken wir uns später ein wenig genauer befassen sollten. Das Augenscheinlichste jedoch zuerst – wer geht und wer kommt?

Vermutlich ausrangiert werden…

  • Microsoft.Office.Client.Education.dll
  • Microsoft.Office.Excel.Server.Udf.dll
  • Microsoft.Office.Excel.Server.WebServices.dll

Neu hinzu gesellen sich…

  • Die Portables, welche eine Art Repräsentation der vorhandenen Bibliotheken für den Einsatz auf leichtgewichtigeren Plattformen gedacht zu sein scheinen
    • Microsoft.Office.Client.Policy.Portable.dll
    • Microsoft.SharePoint.Client.DocumentManagement.Portable.dll
    • Microsoft.SharePoint.Client.Portable.dll
    • Microsoft.SharePoint.Client.Publishing.Portable.dll
    • Microsoft.SharePoint.Client.Runtime.Portable.dll
    • Microsoft.SharePoint.Client.Search.Applications.Portable.dll
    • Microsoft.SharePoint.Client.Search.Portable.dll
    • Microsoft.SharePoint.Client.UserProfiles.Portable.dll
    • Microsoft.SharePoint.Client.WorkflowServices.Portable.dll
  • Plattformspezifische Runtime-Versionen mit Store-Anbindung
    • Microsoft.SharePoint.Client.Runtime.Windows.dll
    • Microsoft.SharePoint.Client.Runtime.WindowsPhone.dll
    • Microsoft.SharePoint.Client.Runtime.WindowsStore.dll
  • Eine Project Server Bibliothek: Microsoft.ProjectServer.Client.dll
  • Eine wenig sagende Directory-Bibliothek: Microsoft.SharePoint.Client.Directory.dll

Noch ein wenig genauer hingeschaut

Wie schon angedeutet geben die Dateien mit dem größten Zuwachs ein gutes Ziel für einen direkten Vergleich der Code-Basis ab, um einen Eindruck zu gewinnen, was den SharePoint-Entwickler künftig erwarten wird.

Rein prozentual gegenüber den Dateien von SharePoint 2013 führen die Bibliotheken Microsoft.Office.Client.Policy.dll (259%), Microsoft.Office.Server.UserProfiles.dll (160%), Microsoft.SharePoint.Client.dll (138%) und Microsoft.Office.Policy.dll (136%) die Liste an – in absoluten Zahlen sind es Microsoft.SharePoint.dll (+4,08 MB), Microsoft.Office.Server.Search.dll (+3,10 MB), Microsoft.Office.Server.UserProfiles.dll (+1,74 MB) und Microsoft.SharePoint.Publishing.dll (+0,64 MB).

Microsoft.Office.Client.Policy.dll

Naheliegend, dass wir hier einen Großteil der Neuerungen rund um die neuen Compliance-Features von SharePoint finden. Microsoft hat hierfür den Namespace Microsoft.SharePoint.Client.CompliancePolicy mit Leben gefüllt, in der sich 15 Klassen und 6 Enums befinden.

compare_SP2013_OfficeClientPolicy compare_SP2016_OfficeClientPolicySpäter wird man vermutlich für Container(Website-Sammlungen, Websites und Listen/Bibliotheken) mit Hilfe von Associations und/oder Bindings vordefinierte Compliance-Richtlinien in Form von Rules und Definitions verknüpfen können. Hier ein wenig tiefer einzutauchen scheint auf jeden Fall vielversprechend für ein tieferes Verständnis des neu geschaffenen Konstruktes.

Microsoft.SharePoint.Client.dll

Der Namespace für alle, die viel mit dem CSOM arbeiten. In absoluten Zahlen nur noch auf Platz 9 der aktualisierten Libraries, relativ immerhin noch auf Platz 3. Die sehr zentrale Klasse ClientContext wächst wenig spektakulär von 281 auf 312 LOC und hat kaum mehr als eine neue öffentliche Eigenschaft namens RequestResources gleichen Typs, welcher ebenfalls als neue Klasse enthalten ist. Hier können wohl eine Liste und ein View per GUID referenziert werden sowie per bools auf die UserInformationList, auf WebProperties, Features oder Navigationsstruktur verweisen.
Dahingegen beispielsweise kommt die Klasse File von 821 vs. 1073 LOC und bringt einige neue Methoden mit.

compare_SP2013_Client_File.cs compare_SP2016_Client_File.cs

Hier ist unter anderem zu sehen, dass es offenbar nun Möglichkeiten zum asynchronen oder wenigstens partiellen Hochladen von Dateien zu geben scheint.

Microsoft.SharePoint.Client.Directory.dll

Eine der Neuen im Bunde… im Namespace Microsoft.SharePoint.Client.DirectoryInterface finden sich Klassen, die sich um das definieren oder gründen von Gruppen, das Beitreten zu Gruppen, das Verwalten von Gruppenmitgliedern sowie der Kommunikation zwischen Gruppenmitgliedern drehen. Noch habe ich im Frontend dazu nichts entdecken können…

Fazit

Rein auf Grund des Umfangs des Codes, allem voran der der Kernbibliothek Microsoft.SharePoint.dll, ist ein umfassender und flächendeckender Vergleich des Codes ein größeres Projekt oder bedarf eines Analysewerkzeugs. Definitiv lohnend ist ein gezielter Blick auf bestimmte Code-Fragmente, welche einen ganz brauchbaren Eindruck der Unterschiede zu vermitteln scheinen.

Insgesamt fügt sich alles eigentlich ganz gut zu dem, wie sich auch das Frontend gab: keine überwältigenden Neuigkeiten, hier und dort ein wenig am Schulterschluss zwischen Cloud und On-Premise gefeilt, Integration der neuen Kernfeatures sowie ein paar Altlasten entsorgt.

Erwähnenswert finde ich auch den Fakt, dass die Dokumentation des Codes, der hier von Version v15.0.4571 bzw. v15.0.4727 auf die unter die Lupe genommene Preview als Neuerung hervorgegangen ist, zumindest zum Teil bereits in der MSDN – geführt unter SharePoint 2013 aber “Last modified: October 05, 2015” – zu finden ist. Das sogar mit gleichlautenden DLL-Referenzen, in welchen der Code nachweislich nicht enthalten war.

Dynamics CRM 2015 On-Premises Licensing

CRM2015_Licensing

Interne User oder externe User? Device-CAL oder User-CAL? Der Server selbst? Mehrere Instanzen? Dual Use Rights? CAL als Professional, Basic oder Essential nutzen? Kosten durch eigene Entitäten sparen? Sonderrolle Admin? Sind CAL-Typen Upgrade-fähig? Multiplexing?

Diese und unzählige andere Fragen beschäftigen einen, versucht man sich mit den Lizenzmodellen rund um Dynamics CRM in On-Premise-Umgebungen zu befassen. Und damit es auch spannend bleibt: Immer dann, wenn man dachte alles halbwegs durchdrungen zu haben, stand der nächste Release mit zahlreichen Änderungen vor der Tür.

Die vermeintlich einfache Antwort auf eine simple Frage, was man an Lizenzkosten für eine bestimmte Umgebung abführen müsse, kann inzwischen schnell zu einem Wirrwarr aus if-then-elseif-that-elseif-thus-otherwise-then-or-this-else werden. “Dafür bieten sie bei Microsoft einen eigenen Studiengang an.” – dieser Satz ging mir mehr als einmal durch den Kopf, wenn ich nach den Lizenzierungsmöglichkeiten gefragt wurde.
Doch es hilft alles nichts und wer clever ist, zahlt nur das, was er wirklich benötigt. Um wenigstens eine Chance zu haben, kann man sich die Grundlagen in dem jüngst vor einigen Tagen im Microsoft Download Portal veröffentlichten “Microsoft Dynamics CRM 2015 On-Premises Licensing and Pricing Guide” anlesen:

http://www.microsoft.com/en-us/download/details.aspx?id=45904

Das knapp 30 Seiten umfassende PDF vom 25.09. gibt einen brauchbaren Gesamtüberblick für Lizenz-interessierte Administratoren oder License-Manager. Ich wünsche viel Erfolg beim Selbststudium!

SharePoint Server 2016 Preview(ed)

Und schon ist es wieder soweit! Es kommt mir vor, als wären lediglich wenige Monate ins Land gegangen, seit SharePoint 2013 vor der Tür stand und mit Apps, Office 2013 Flat-Style sowie spannenden Features um die Aufmerksamkeit seiner Anhänger als auch Kritiker warb. Kaum hat man also die Änderungen und Neuerungen des letzten Major-Release verdaut, bekommt man den nächsten Gang serviert – oder ist es nur ein Horsd’œuvre?

SP2016_splashErwartungshaltung

Was wird von Microsoft im Rahmen der Preview angekündigt? Ein Blick ins Datasheet zur Preview verrät das Folgende:

  • Infrastructure
    • Performance
    • Scale
    • Reliability
    • Hybrid Cloud
    • Operational Insights
  • Experiences
    • Modern collaboration
    • Social
    • Mobile
  • Compliance
    • Data protection

Ein paar Worte und Einblicke gibt es bereits im TechNet inklusive technischer Referenz, welche sich jedoch leider nur auf die PowerShell beschränkt.

Speziell für die On-Premise-Version interessiert mich der Umfang an Neuem sehr, sodass ich es mir nicht verkneifen konnte, einen Blick auf die öffentliche Preview zu werfen, die vor wenigen Tagen mit eher leisen Tönen in die weite Welt freigelassen wurde.

Prerequisites

…für eine Single-Server Farm zum Test der Preview:

  • Azure VM
    • Intel Xeon E5-2660 2,2GHz (x64) / Azure A3 – 4 Core
    • 7GB RAM
    • Windows Server 2012 R2 Datacenter
  • Microsoft SharePoint 2016 Preview
    http://www.microsoft.com/en-us/download/details.aspx?id=48712
    NQTMW-K63MQ-39G6H-B2CH9-FRDWJ
  • Ausführen des Prerequisites Installer von SharePoint 2016 (anbei auf dem Datenträger)
  • Microsoft SQL Server 2014 Express
    https://www.microsoft.com/en-US/download/details.aspx?id=42299
  • Active Directory Domain Services  (Domäne macht Sinn – nicht zuletzt, da der Assistent für die Config-DB nimmt kein lokales Konto, auch wenn im Fehlerdialog dazu “should” steht)
    • inklusive abhängiger Rollen/Features
    • dcpromo
    • ein Service-Account

Installation

Für die Vorbereitung mit allen erforderlichen Softwarepaketen gibt es ein Preparation Tool.

SP2016_prereq_3rdRun

Direkt nach dem Prep-Tool kann der Installer den Server mit den SharePoint-Binaries betanken…

SP2016_install1 SP2016_install2

…was die Voraussetzung für den Configuration Wizard ist, welcher die Config-Datenbank anlegt und den SharePoint bzw. die SharePoint-Zentraladministration zum Leben erweckt. Hier trifft man bereits auch etwas konkreter die Rollenzuteilung des zu installierenden Servers, die meiner Erinnerung nach bislang nicht so detailliert vorzugeben war.

SP2016_configWiz1 SP2016_configWiz2 SP2016_configWiz3 SP2016_configWiz4 SP2016_configWiz5 SP2016_configWiz6 SP2016_configWiz7 SP2016_configWiz8

Das war’s auch schon – Zeitaufwand von Prerequisites bis hierher ca. eine Stunde.

Die Konfiguration unserer neuen Single-Farm Instanz steht noch aus, was im nächsten Schritt über die Zentraladministration per Configuration Wizard folgt:

SP2016_ca1

SP2016_ca1-2

Service Applications
  • Access Services 2010
  • Access Services
  • App Management Service
  • Business Data Connectivity Service
  • Lotus Notes Connector
  • Machine Translation Service
  • Managed Metadata Service
  • PerformancePoint Service Application
  • PowerPoint Conversion Service Application
  • Project Server Service Application
  • Search Service Application
  • Secure Store Service
  • State Service
  • Usage and Health data Collection
  • User Profile Service Application
  • Visio Graphics Service
  • Word Automation Services
  • Work Management Service Application
  • Workflow Service Application
Services
  • Claims to Windows Token Service
  • Distributed Cache
  • Document Conversions Launcher Service
  • Document Conversions Load Balancer Service
  • Microsoft SharePoint Foundation Sandboxed Code Service
  • Microsoft SharePoint Foundation Subscription Settings Service
  • Microsoft SharePoint Foundation Workflow Timer Service
  • Microsoft SharePoint Insights
  • Request Management
  • SharePoint Server ASP.NET Session State Service

Ein paar Sachen haben nicht geklappt aber für den Anfang kommen wir damit hin.

SP2016_ca2

Auf den ersten Blick

Das Erste und fast auch das Einzige, was auf der Oberfläche tatsächlich als *Neu ins Auge springt, ist die Kopfzeile mit dem neuen Menü für Newsfeed, OneDrive und Sites.

SP2016_2_caConfigWizardDone2

SP2016_2_caConfigWizardDone SP2016_4_SubSiteProject_Oslo

Die OneDrive-Integration hat einen netten Configuration Splash Screen bekommen…

SP2016_3_OneDrive SP2016_3_OneDrive2

SP2016_3_OneDrive3

…und auf abonnierte Seiten kann man nun schneller mit Hilfe der Rubrik Sites zugreifen, was dem Anwender die Möglichkeit bringt, sich sein eigenes kleines Startmenü zusammenzustellen.

SP2016_2_caConfigWizardDone3

Ein wenig mehr hat sich beim mobilen Zugriff getan. Die UI-Gestaltung orientiert sich am Look & Feel von Windows Phone Apps und überzeugt per Touch nicht nur beim normalen, vertikalen Bildlauf sondern ebenfalls mit einer Art Pivot-Control.

SP2016_mobile-view_1 SP2016_mobile-view_2 SP2016_mobile-view_3 SP2016_mobile-view_4

Für Developer

Vorerst leider nicht viel Neues zu erkennen… zumindest nichts, ohne danach auf die Suche zu gehen. Die alten /_vti_bin/ ASP.NET Web Services sind offenbar noch mit dabei und ohne die DLLs im 16-Hive auseinanderzunehmen werden einem spannende, neue APIs und Features wohl aufgrund des bislang fehlenden SDKs verborgen bleiben.

SP2016_Dev1 SP2016_Dev2 SP2016_Dev3

Für Admins

Neben der bereits erwähnten strikteren Trennung der Serverrollen hier ein Vorgeschmack auf IIS, Datenbank und Umfang der PowerShell-Commandlets.

SP2016_Admin3_SQLDBafterInstall SP2016_Admin1

SP2016_Admin2

Sonstige Infos

Fazit

Mehr ein Horsd’œuvre als der Hauptgang. Tatsächlich wurde auch nicht viel mehr versprochen. Darf man offiziellen Quellen, wie dem Office-Blog und den großen IT-News-Seiten glauben, sei die strategische Ausrichtung des neuen Release der Feinschliff an Funktionen, die man als zukunftssicher identifiziert hat und die im Produkt verbleiben sollen. Man habe sich wohl bewusst gegen das Hinzufügen von vielen neuen Funktionen entschieden, um SharePoint stabiler und performanter zu machen. Das, was ich bislang im Preview bestaunen konnte, bestätigt diesen Ansatz. Ich bin gespannt, was ich in den nächsten Tagen noch alles entdecke und werde – zumindest bei größeren Überraschungen – berichten.

Out of Office

Zur Abwechslung mal kein “Technik-IT-Programmier-Quatsch” sondern ein kleiner Ausflug in den Nordosten der United States ganz ohne viele Worte…

Die Route

USA 2015 - Route

Impressionen der Tour

Diesmal wieder als klassischer Road Trip statt mit dem Camper durch die Natur aber dafür nicht minder schön. Eine kleine Auswahl der Fotos gibt’s im OneDrive:

Highlights sind eher die ländlichen Gegenden als die Metropolen. Um die Markierung des Freedom Trail in Boston auf dem Gehweg erkennen zu können, musste man fast die Mengen auseinander scheuchen. Es mag am diesjährigen Sommer liegen, der für weite Teile der Staaten Höchsttemperaturen parat hat, oder an der allgemeinen Ferienzeit aber es ist in Ballungszentren mehr als nur voll – allem voran mit Touristen.
Besonders zu empfehlen sind höher gelegene, bewaldete Regionen, wie zum Beispiel der Grand Canyon of Pennsylvania oder die Berkshire Mountains in Massachusetts und Connecticut. Hier ist es dann auch gleich bis zu 10 Grad kühler – bei durchgängig über 30°C im Schatten eine willkommene Abkühlung.

Ansonsten alles wie gehabt: Die Leute sind freundlich und überaus zuvorkommend, Autofahren ist im Gegensatz zu Deutschland extrem entspannt, tolle Natur gibt’s in Größenordnungen, außer an Sprudelwasser ist überall Zucker dran und eine C-Klasse wirkt im Stadtbild eher wie ein Kompaktwagen.

Folgen

Erhalte jeden neuen Beitrag in deinen Posteingang.

Schließe dich 173 Followern an