NT Innovation Company GmbH


Drucken Mailen Messenger Facebook Twitter

Schnellstart

 

 Info zu diesem Blog

 
 NT Innovation Company GmbH Blog

Willkommen auf dem Blog der NT Innovation Company GmbH! Wir versorgen Sie mit Tipps und Tricks und dem Neuesten aus der Microsoft-Welt.
NT Innovation Company GmbH > NT Innovation Company GmbH
August 13
Fehlerbehebung: fehlende "Pages"-Bibliothek

​Wenn beim Aktivieren eines Features folgender Fehler auftritt:

"The site is not valid. The 'Pages' document library is missing."
und die "Pages"-Bibliothek aber vorhanden ist, dann ist in der Property Bag des Webs die falsche ID hinterlegt zur Bibliothek (das Publishing-Feature speichert beim Anlegen die ID in einer Property des Webs).
 
Lösung: per Powershell die ID richtig setzen

 

$web = get-spweb http://sitecollection/site-path
$listId = $web.Lists["Pages"].ID
$web.AllProperties["__PagesListId"] = $listId.ToString()
$web.Update()

 

 

Juli 25
Die REST-Schnittstelle des SharePoint

​Die Representational State Transfer (REST-)Schnittstelle des SharePoint, welche auch schon mit dem SharePoint Foundation verfügbar ist, bietet Entwicklern die Möglichkeit, direkt aus der Anwendung heraus mit Vorgängen wie Erstellen, Lesen, Aktualisieren und Löschen auf Objekte wie Listen und Bibliotheken zuzugreifen.

 

Hierfür eine kurze Step-By-Step-Anleitung für die Nutzung der REST-Schnittstelle in Visual Studio:

  1. im Solution Explorer des Projekts per Rechtsklick auf "References" (Verweise) und "Add Service Reference" (Dienstverweis hinzufügen) den Dialog aufrufen
  2. im Eingabefeld die Url des Service eintragen (in diesem Fall ist es der ListData Service, erreichbar unter http://{SharePointWebSiteUrl}/_vti_bin/ListData.svc, mit einem Klick auf Go werden die Services aufgelistet, die unter dieser Adresse vom SharePoint angeboten werden (in diesem Fall der Dienst DevelopmentDataContext - benannt nach dem Muster "{SharePointWebSiteName}DataContext")

 

Dialog Add Service Reference

 

  1. nun noch einen geeigneten Namespace festlegen und mit einem Click auf OK das Dialogfeld schließen, es wird im Solution Explorer automatisch ein Ordner "Service References" (Dienstverweise) angelegt, unter diesem sich Der Verweis auf den SPListData Service einordnet
  2. die Service Referenz wird als DataContext-Klasse instanziert und die Objekte, Listen und Bibliotheken, lassen sich ebenfalls als Klassen ansprechen

SPListDataService.PNG
Erfahrungen mit LINQ sind hier von Vorteil.

Juli 05
Vorbereitung zum Re-Design von Code in Microsoft Visual Studio 2012 Ultimate

1. ​Code-Analyse mit Hilfe von Visual Studio

 

Eine Übsersicht über die verwendeten Methoden und Klassen findet man in Visual Studio unter „Analyze -> Calculate Code Metrics for Solution“.
 
Maintainabilty Index“ veranschaulicht, wie leicht ein Code sich warten lässt - je höher, desto besser. Unter einem Wert von 20 erhöht sich der Wartungsaufwand stark. Alles unter 10 ist extrem aufwändig.
 
Cyclomatic Complexity“ zeigt die Komplexität zu Entscheidungsfindungen (IF/Case/etc). Hier sollte ein Wert unter 10 angestrebt werden. Unter Inkaufnahme von höherem Aufwand kann der Wert auch höher angesetzt werden.

Lines of Code“ errechnet die Anzahl der Codezeilen. Es gilt, je weniger Codezeilen, desto übersichtlicher der Code, desto einfacher zu warten. Ein gutes Ziel ist es, dass eine Methode nicht mehr Zeilen hat als auf dem Bildschirm darstellbar (ca. 10 - 20). Für Klassen sollte eine maximale Zeilenzahl von 200 angestrebt werden.
 
 
2. Code-Analyse nach logischen Gesichtspunkten
 
Wichtig im Code ist, dass Funktionen in den richtigen Klassen implementiert sind.
So sollten Methoden, die das Verhalten von Objekten beschreiben, im Objekt selbst oder in einer Extra-Klasse implementiert sein. Diese zusätzliche Klasse kann dann im Objekt eingebunden werden.
 
Das heißt, man sollte den Code auslagern, der das Verhalten des Objektes, z.B. bei Drag’n’Drop, beschreibt, aber in einer Klasse steht, die eine Gruppe von Objekten verwaltet.
 
Also bei jeder Methode fragen: Ist die Methode richtig platziert?
 
Hilfs- und Berechnungsmethoden, können in statische Klassen ausgelagert werden.

 


3. Code-Analyse zum Casten
 
Bei dem expliziten Casten von einem Typ zu einem anderen kann es immer zu Exceptions kommen, wenn es fehlschlägt.
So kann man statt “var x =  (myClass)object” mit “var x = object as myClass” casten. Hier kommt es zu keiner Exception, stattdessen wird x auf null gesetzt.
 
Jetzt kann man die Fälle behandeln. Darf es nicht dazu kommen, dass x gleich null ist, so kann man eine eigene Exception werfen. 
 
if(x==null)
throw InvalidCastException(“object muss myClass sein”);
 
Oder man kann mit einer If-Selektion die beiden Fälle unterschiedlich behandeln.
 
if(x==null)
{ }
else
{ }

 

4. Code-Analyse für Parameterübergabe
 
Wenn Parameter an Methoden übergeben werden, so werden diese nicht in jedem Fall vollständig gebraucht.
Braucht es nur einen Teil eines Parameters , so sollte man auch nur diesen Teil übergeben, z.B. nur die Property eines Objektes, anstatt das gesamte Objekt.
Übernimmt eine Methode Parameter eines bestimmten Types und casted diesen zum verarbeiten, so sollte man den Cast vor dem Aufruf ausführen. Im besten Fall wird ein Cast, der schon vor der Methode steht, überflüssig. Möglich ist auch, dass man die Methode überlädt und dort das Casten übernimmt.
Außerdem sollte man überprüfen, ob ein Parameter überhaupt in der Methode Verwendung findet und gegebenenfalls entfernen.

 

 

5. Code-Analyse für Referenztests

Wenn auf „Properties“ und Methoden von Objekten zugegriffen werden soll, obwohl das Objekt null ist, so wird eine NullReferenceException geworfen.
So sollte man am Anfang einer Methode alle Objekte auf null prüfen, die in der Methode genutzt werden. Wird ein null erwartet, so kann dies entsprechend behandelt werden (z.B. mit einem return). Darf es dagegen nicht null sein, so wirft man eine Exception:

if(args==null)
                               throw new ArgumentNullException(„args“);

Wird die Referenz nur an eine andere Methode weitergegeben, so muss man die Referenz nicht prüfen. Dies wird, falls nötig, in der Methode selbst übernommen.
Da es sich bei Objekten um Referenztypen handelt, können diese in Methoden auf null gesetzt werden. Wird auf Bereiche des Objektes, nach Übergabe an eine Methode, zugeriffen, so muss das Objekt vorher geprüft werden. 

 

6. Festhalten von Code Re-Design Aufgaben
 
Wenn der Code sofort bei Review umgeschrieben wird, so kann es zu Problemen mit Abhängigkeiten kommen. 
Deswegen sollte man an den Stellen wo ein Re-Design notwendig ist, einen Kommentar einfügen. Hierfür eignen sich die „//TODO: was zu tun ist“-Kommentare, die in der Tasks Liste in Visual Studio unter Comments angezeigt werden.
Nun können die verantwortlichen Programmier auf mögliche Probleme mit Abhängigkeiten reagieren und bessere Lösungsvorschläge einfügen.

 

Download als PDF

Juni 10
Office Web Apps Server 2013

​Office Web Apps Server ist ein neues Office-Serverprodukt und ermöglicht das browserbasierte Anzeigen und Bearbeiten von Office-Dateien auf mehreren Hosts in der gesamten Organisation. Office Web Apps Server arbeitet mit Produkten und Diensten zusammen, die WOPI (Web App Open Platform Interface-Protokoll) unterstützen. Zu diesen Produkten, auch als Hosts bezeichnet, gehören SharePoint 2013, Lync Server 2013 und Exchange Server 2013.

Nachstehend einige der Funktionen, die mit Office Web Apps Server für diese Produkte aktiviert werden:

  1. SharePoint 2013 Die Benutzer können mit Word Web App, Excel Web App, PowerPoint Web App und OneNote Web App auf SharePoint-Dokumentbibliotheken zugreifen. Office Web Apps bieten zahlreiche neue Features und Funktionen, wie die Unterstützung für die gemeinsame Dokumenterstellung in Word Web App und PowerPoint Web App.
  2. Lync Server 2013 Die Benutzer können mithilfe von Lync 2013 und Lync Web App PowerPoint-Präsentationen übertragen. Die Übertragungsfunktion wurde erweitert, sodass sie im Gegensatz zu älteren Versionen nun Anzeigen mit höherer Auflösung und eine breitere Palette an mobilen Geräten unterstützt. Benutzer, die über die entsprechenden Berechtigungen verfügen, können unabhängig von der eigentlichen Präsentation einen Bildlauf durch die PowerPoint-Präsentation durchführen.
  3. Exchange Server 2013 Benutzer von Outlook Web App können Office-Dateianlagen in Word Web App, Excel Web App und PowerPoint Web App in der Vorschau anzeigen. In dieser Vorschau werden Office-Dateien und sämtliche hierin enthaltenen Kommentare originalgetreu angezeigt, ohne dass die Dateien vor der Anzeige heruntergeladen werden müssen.

Dieser Beitrag ist eine Zusammenfassung von Informationen aus verschiedenen Technet-Links und beinhaltet die Planung und Bereitstellung von Office Web Apps Server, die Konfiguration von SharePoint 2013 für dessen Verwendung sowie (auf Grund einiger Besonderheiten) eine Anleitung für Updates von Office Web Apps Server.

 

Download als PDF

März 07
Google SketchUp Gebäudemodellierung am Beispiel TCC und TPC

Als Aufgabe stand die Modellierung mit dem Tool Google SketchUp und die Publizierung zweier Referenzgebäude des Technologie Centrum Chemnitz (TCC) auf Google Earth. Dabei handelte es sich zum einen um das Gebäude des Technologie Centrum Chemnitz in der Bernsdorfer Straße 210-212 und zum anderen um das "Start up"-Gebäude der TechnoPark GmbH (TPC), welches sich auf dem Smart Systems Campus Chemnitz befindet.

Zur Verfügung standen das kostenfreie Tool Google SketchUp, das Bildbearbeitungsprogramm GIMP, PDF-Dokumente zur Architektur des "Start up"-Gebäudes, von einem Architekten gefertigte Gebäudeplanzeichnungen im Maßstab 1:75 aus dem Jahre 1990 des TCC-Gebäudes und Luftbilder zur Extrahierung der Dachtexturen.

TPC blank und Texturen.jpg
 "Start up"- Gebäude, vorher und nachher

Link zum Google 3D Warehouse

Link zu Google Earth

 

Bis zur Fertigstellung des Auftrages waren folgende Tätigkeiten durchzuführen:
  • das Herausfiltern, Messen und Berechnen relevanter Maßdaten
  • das Anfertigen von Handskizzen zur temporären Dokumentation
  • das Modellieren der beiden Gebäude mit Google SketchUp
  • das Anfertigen von Fotografien aller Fassaden bei gutem Wetter und guten Lichtverhältnissen
  • das Bearbeiten, Schneiden, Entzerren und Retuschieren von Schönheitsfehlern des Bildmaterials
  • inhaltlich die Fassaden, Fenster, Dächer und den Eingangsbereich des "Start up"-Gebäudes
  • das Bestücken aller Flächen der modellierten Gebäude mit den editierten Bildtexturen
  • die Orts- und Geländeanpassung zur geographischen Platzierung
  • die Abnahme und der Upload bei Google Earth

 

TCC Entwicklung.jpg

TCC - Gebäude Bernsdorferstraße 210-212, Entwicklungsstadien

Link zum Google 3D Warehouse

Link zu Google Earth

 

Schwierigkeiten, die es zu bewältigen galt:
Die Modellierung mit Google SketchUp war Neuland, jedoch ist die Einarbeitung schnell vollzogen.
Um Fotografien der Fassaden zu erstellen, muss klar sein, welche Flächen zusammenhängend oder getrennt voneinander zu betrachten sind. Dies ist im Voraus zu planen.
Das letztendliche Anbringen der Texturen bedarf viel Geduld und Fingerspitzengefühl.
Modelle müssen distanzfrei an das Google Earth-Gelände angepasst werden.
Veraltete Google Earth-Aufnahmen erfordern bei der Positionierung des Gebäudes genaues Auskundschaften der Umgebung.
Schlussendlich kann man sagen, dass Geduld, Feingefühl und Perfektion in Verbindung mit Google SketchUp hochwertige 3D Modelle hervorbringt.
 
1 - 5Weiter