Herzlich Willkommen im Communardo Techblog, dem Entwickler-Weblog von Communardo. An dieser Stelle werden wir in loser Folge Ideen, Problemlösungen, Tipps und Problemstellungen rund um die Entwicklung webbasierter Software auf Basis verschiedenster Technologien vorstellen. Wir freuen uns über Rückmeldungen und Kommentare unserer Leser. Viel Spaß beim Lesen und Kommentieren.
Auch 2010 fand bereits ein Treffen der SharePoint Usergroup Dresden statt. Gastgeber war diesmal (28.01.) erstmalig die datafino GmbH. Trotz des winterlichen (Chaos-) Wetters hatten es viele Teilnehmer zum Waldschlösschen geschafft.
Nachdem sich alle gestärkt hatten und ein passender Raum gefunden war, eröffnete Martin Hey einen in meinen Augen gelungenen Abend.
Den Anfang machte Ronny Schattauer, der zunächst theoretisch und anschließend noch praktisch darstellte, wie Visio zur Datenmodellierung im SharePoint 2007 genutzt werden kann. Interessant dabei war, dass ein eigens geschriebenes Konvertierungs-Tool verwendet wurde, um aus ER-Modellen, welche im Visio erstellt und anschließend in XML umgewandelt wurden, Template-XML_Dateien für Content-Types und Listen zu erstellen. Das manuelle Erstellen solcher Dateien kann somit vermieden werden, was sich natürlich positiv auf Struktur und Übersichtlichkeit auswirkt.
Nach einer kurzen Pause leitete Dorrit Riemenschneider eine Diskussion zum Thema „Enterprise 2.0 und SharePoint 2010“ ein. Hier wurden diverse Themen besprochen, allem voran natürlich Neuerungen/Verbesserungen, die SharePoint 2010 auf diesem Gebiet mitbringt. Darüber hinaus wurde aber auch der Umgang mit (noch) nicht Web 2.0 affinen Usern („Web 0.5 Nutzer“) und die Frage, wie man solchen Nutzern den Einstieg erleichtern könnte, diskutiert .
Als krönenden Abschluss gab es noch eine Eintrittskarte zu den SharePoint Days auf der BASTA! 2010 Spring zu gewinnen, über die sich André Röhrich freuen konnte.
Wie unter meinem letzten Beitrag angekündigt, wurde am 25.01.2010 das PASS Treffen zu SQL Server 2008 R2 mit Georg Urban als Vortragendem nachgeholt. Wer nun (wie ich) bis dahin dachte, die Neuerungen in Release 2 würden sich schwerpunktmäßig auf Business Intelligence konzentrieren, wurde erst einmal eines Besseren belehrt. Um es auf den Punkt zu bringen: Die Schwerpunkte des SQL Server 2008 Release 2 sind Self-Service-BI, Multiserver-Management und Technologien für die Verarbeitung sehr großer Datenmengen.
Georg bot uns an diesem Abend mit einem aus mehreren Präsentationen konsolidierten Vortrag die Quintessenz der Neuerungen in SQL Server 2008 R2 dar.
Mit einem Webinar (Registrieren) in der Reihe “Plugin of the Month” von Atlassian veröffentlichen wir am 18.2.2010 das Content Import Plugin 1.1.
Das Plugin unterstützt den Import verschiedenster Inhalte nach Confluence. Die Daten müssen in einem Austauschformat, das Confluence Datenstrukturen in XML abbildet, zur Verfügung gestellt werden. Das Austauschformat unterstützt fast alle Inhaltstypen von Confluence (Bereiche, Seiten, Blogeinträge, Kommentare und Anhänge) sowie die zugehörigen Metadaten (Ersteller, Bearbeiter, Schlagworte, Datum). So können ohne vertiefte Confluence Kenntnisse Daten aus verschiedensten Quellsystemen, wie Wikisystemen, Blogs, Foren, nach Confluence importiert werden. Weiterhin bietet Communardo einen Migrationsservice an, der den kompletten Export der Daten aus dem Quellsystem nach XML und den anschließenden Import umfasst.
Migration von Daten nach Confluence mit dem Content Import Plugin
Beim Aufruf einer Webseite mit integriertem TinyMCE WYSIWYG Editor über eine UMTS-Verbindung, kommt es bei einigen UMTS Providern zu JavaScript-Fehlern und der Editor wird nicht angezeigt. Führt man danach aber ein “Deep-Refresh” der Seite (z.B. über Strg+F5 im Firefox) aus oder verwendet stattdessen eine DSL-Verbindung, wird der Editor vollständig geladen und korrekt dargestellt.
Das Bauen und Ausliefern von normalen und eigenständigen Java Anwendungen die nicht in einem Webcontainer oder Applikationserver laufen sollen kann sich als schwierig erweisen. Die größten Probleme beim Erzeugen der Releases sind dabei die folgenden Punkte:
es müssen die benötigten Bibliotheken aufgelöst und mit in des Release gepackt werden
die Java Applikation muss in den meisten Fällen auf dem Zielsystem als Dienst laufen (Deamon)
das Erstellen und Packen des Releases sollte automatisiert erfolgen
Das Maven 2 Plugin appassembler zielt auf diesen Anwendungsfall ab und ermöglicht
das automatisierte Erstellen von Skripten zur einfachen Ausführung der Applikation
das Erzeugen von Releases die es ermöglichen, die Java Anwendung als Dienst zu betreiben
die Erzeugung von Repositories die alle nötigen Bibliotheken für die Anwendung enthalten.
Die Konfiguration des Plugins ist aber leider nicht ganz so einfach da die Dokumentation eher schlecht ist und ich auch auf Bugs im Plugin selber gestoßen bin. Artikel vollständig lesen »
Morgen findet das erste Usergroup-Treffen in diesem Jahr statt. Dieses Mal treffen wir uns bei der datafino GmbH am Waldschlösschen. Für alle, die noch nicht dort waren, gibt es auch eine Anfahrtsbeschreibung.
Thematisch gibt es auch dieses Mal eine interessante Mischung aus Entwickler- und Anwenderthemen:
Zunächst widmet sich Ronny Schattauer gemeinsam mit uns dem Thema Datenmodellierung in SharePoint mit Hilfe von Microsoft Visio. Dabei geht es sowohl um die Modellierung der Datenstrukturen in UML als auch um die automatische Generierung von Programmcode zur Verwendung in SharePoint Solutions aus eben diesen Modellen.
Im Anschluss daran setzen wir eine Diskussionsrunde zum Thema Web 2.0 Funktionen in SharePoint 2010. Bei der letzten Usergroup haben wir uns ja dem großen Thema SharePoint 2010 gewidmet. Dabei haben wir auch gesehen, dass sich sehr viel im Bereich Web 2.0-Funktionalität getan hat – um nur einige Features zu nennen: Wiki-Verbesserungen, Tagging und Kommentierung. Seitdem hat sicher der ein oder andere schon Eindrücke sammeln können, die wir gern diskutieren würden: Sind die bisherigen Ansätze überhaupt in der Praxis brauchbar?
Weitere Informationen und die Möglichkeit zur Anmeldung gibt es im Xing-Event.
Sucht man im Internet nach Lösungsmöglichkeiten für das Testfallmanagement mit Atlassian JIRA, so findet man ein paar Vorschläge wie den im Artikel „Customise JIRA For Test Case Management“. Bei dieser Lösung werden die Testfälle als eigene Vorgänge erfasst und für jede Testausführung wird ein neuer Untervorgang angelegt und der entsprechenden Release-Version zugeordnet. Die Vorgänge sind mit der Anforderung verknüpft, haben allerdings keinen direkten Einfluss auf diese (wie es bei Untervorgängen die Möglichkeit ist). Über angepasste Bildschirme für die Eingabe, Bearbeitung, Ansicht und den Statusübergang sowie eigene Workflows wird die Sache abgerundet. Im praktischen Einsatz bei Communardo hat sich diese Lösung allerdings nicht durchgesetzt, da sie sehr Aufwendig ist und ein paar wichtige Merkmale fehlen, wie z.B. die Testausführungsreihenfolge oder die direkte Statusabfrage der Testergebnisse aus der Anforderung heraus.
Nach weiteren Testphasen anderer Lösungsmöglichkeiten haben wir uns eine eigene Lösungsmöglichkeit überlegt. Es wird ein neuer Untervorgang „Testfall“ angelegt, welcher mit benutzerdefinierten Spalten (z.B. für Testschritte, erwartetes Ergebnis) versehen wird und über einen eigenen Workflow verfügt. Nun werden unter der jeweiligen Anforderung die Testfälle erfasst und bei der Ausführung entsprechend die Ergebnisse darin vermerkt und der Status verändert. Damit kann der Projektleiter sehen, wie der Stand bezüglich der Anforderung ist und der Aufwand seitens Testfallerfassung ist sehr gering. Außerdem kann so die Ausführungsreihenfolge mit der Sortierung von Untervorgängen festgelegt werden. Es gibt natürlich auch hier Abstriche, wie z.B. die Sichtbarkeit der Testfälle für die Entwickler, aber mit etwas Anstrengung kann auch dieses Problem über die sogenannten Sicherheitsstufen gelöst werden.
Zusammenfassend kann man sagen, es gibt verschiedene Lösungsmöglichkeiten um mit Atlassian JIRA ein Testfallmanagement zu betreiben. Welches davon die richtige Lösung für das eigene Unternehmen ist, muss analysiert und auch probiert werden. Kleine Projekte eignen sich am Anfang sehr gut, um unter realen Bedingungen Erfahrungen zu sammeln.
Pünktlich gegen 10:000 Uhr startet am 21.01.2010 das erste Liferay User Group Treffen in Frankfrut/Main im neuen Jahr. Der Raum in der Geschäftsstelle des Planungsverbandes Ballungsraum Frankfurt/Main war gut besucht.
Im ersten Vortrag des Tages stellten Mitarbeiter der Firma form4 aus Berlin eine Integration des CMS Alfresco in Liferay vor. Artikel vollständig lesen »
Alle SQL PASSler aus Sachsen (und die, die es werden möchten) sind zum Jubiläumstreffen 5 Jahre PASS Deutschland der Regionalgruppe Sachsen am Montag, den 25.01.2010 um 18:30 Uhr einladen.
Der PASS Deutschland e.V. wurde am 31.08.2004 gegründet und feierte deshalb im August/September 2009 in allen Regionen das fünfjährige Bestehen. Zu diesem Jubiläum wurden in allen Regionen Treffen der Regionalgruppen mit besonderen Inhalt veranstaltet. Für die Regionalgruppe Sachsen war folgender Vortrag anberaumt:
SQL Server 2008 R2: Neues vom SQL Server; Georg Urban, Microsoft
Self Service Analysis mit Excel In-Memory Online Analytic Processing & Self Service Reporting mit Report Builder 3.0 sind wichtige Themen – aber es gibt noch mehr zu berichten.
Da Georg Urban zu dem ersten Versuch im September kurzfristig krank geworden war, hat er sich für den 25. Januar bereit erklärt, die Session nachzuholen. Es darf gehofft werden, dass er nun auch die neueste CTP vom November hat und die Teilnehmenden so in den Genuss von „Hot News“ kommen!
Die PASS Regionalgruppe Dresden trifft sich an gewohnter Stelle im IT-Trainingshaus am Waldschlösschen. Nähere Informationen zum Termin und eine Anfahrtsbeschreibung findet man auf der Website der Regionalgruppe.
Im vorangegangenen Blogbeitrag über das Client object model, habe ich beschrieben wie mittels Context.Executequery() eine synchrone Anfrage an den Sharepoint Server abgesetzt werden kann. In diesem Eintrag werde ich das Gegenstück Context.ExecuteQueryAsync() etwas näher beleuchten. Es ist etwas verwirrend, dass Microsoft hier zwei Methoden anbietet, um Anfragen an Sharepoint zu senden. Als ich erstmalig die Methode ExecuteQuery() aufgerufen habe, erhielt ich eine Exception, welche mir mitteilte, dass ich diese Methode nicht in einem UI Thread aufrufen darf.
InvalidOperationException. The method or property that is called may block the UI thread and it is not allowed.
Aus diesem Grund, muss bei Verwendung der Methode ExecuteQuery(), in einem UI Prozess, ein Thread gewählt werden, welcher das UI nicht beeinträchtigt.
Nach einer kurzen Suche bin ich auf die Erklärung der MSDN gestoßen.
The Silverlight client object model provides both an ExecuteQuery() method, which can be called synchronously from threads that do not modify the user interface (UI), and an asynchronous ExecuteQueryAsync(ClientRequestSucceededEventHandler, ClientRequestFailedEventHandler) method for cases where threads do modify the UI
Soll das Laden der Sharepoint Daten in einem User Interface Thread erfolgen, muss also zwingend die Asynchrone Methode verwendet werden. Falls der Programmcode keine Änderung an der UI vornimmt, kann weiterhin die synchrone Methode verwendet werden. Wie die asynchrone Query zu verwenden ist, zeige ich im nachfolgendem Beispiel.