Multilinguale Softwareentwicklung: .NET Resource Files vergleichen und editieren

Software wird heutzutage oft für verschiedene Sprachen konzipiert, weshalb während der Software-Entwicklung eine Trennung von Layout und dem eigentlichen Text erfolgen muss um später die angezeigten Texte durch die ausgewählte Sprache ersetzen zu können. Dies wird mittels Resource Files umgesetzt, die eine Menge von Zeichenketten mit jeweils eindeutigem Zugriffsschlüssel enthalten. Für jede weitere Sprache wird ein neues Resource File angelegt, dass die gleichen Zugriffsschlüssel enthält wie die bereits bestehenden Resource Files – die entsprechenden Zeichenketten werden anschließend in die gewünschte Sprache übersetzt.

Soweit so gut. In der Praxis gestaltet sich die Entwicklung neuer Software-Module entsprechend umständlich, da jede neue Zeichenkette in alle vorhandenen Resource Files (je Sprache ein Resource File) eingetragen werden muss. In der Microsoft Entwicklungsumgebung Visual Studio 2008 gibt es dafür einen Editor, mit dem es möglich ist die Zeichenketten eines Resource Files tabelarisch darzustellen und zu beabeiten – eine Möglichkeit die Resource Files untereinander abzugleichen oder gemeinsam zu bearbeiten gibt es leider nicht.

Genau für diesen Zweck habe ich erst kürzlich eine super Anwendung gefunden, die dabei hilft mehrere Resource Files gleichzeitig anzuzeigen und zu bearbeiten. Nachfolgend weitere Infos dazu.

Zeta Resource Editor

Mit dem Zeta Resource Editor können mehrere .NET Resource Files gleichzeitig geöffnet werden und in einer tabellarischen Ansicht verglichen und bearbeitet werden. Der Editor markiert Felder mit einem gelben Hintergrund, falls eine Zeichenkette noch nicht übersetzt worden ist. Auf diese Art und Weise können Resource Files untereinander abgeglichen und Fehler schneller erkannt werden.

zeta-editmode.png

Für Übersetzungsmuffel ist auch eine “Schnellübersetzer” Funktion integriert worden, mit der man Texte in verschiedene Sprachen übersetzen lassen kann – über die Qualität der Übersetzung kann ich leider noch nichts berichten.

Download Zeta Resource Editor

Die Anwendung ist frei verfügbar und kann auf der Herstellerwebsite kostenfrei heruntergeladen werden: http://www.zeta-sw.com/zre/.

Auf der Website befinden sich auch weitere Informationen zur Handhabung des Tools in Form von kleinen Webcasts.

Veröffentlicht von Ronny Schattauer am 14. Juni 2009

SharePoint Datenmodellierung mit MS Visio

In größeren SharePoint Projekten gibt es oft komplexe Informationen und Daten zu verwalten. In der Planung ist eine detaillierte Datenmodellierung für eine adäquate Umsetzung des Datenmodells in SharePoint notwendig.
Für die Datenmodellierung bietet sich MS Visio 2007 an, genauer gesagt das Klassendiagramm aus der Standard UML 1.3 Vorlage.

Die SharePoint Listenspalten können als Attribute einer jeweiligen Klasse dargestellt werden, deren Datentyp den SharePoint-Column Types entspricht. Dafür habe ich eine Visio-Vorlage erstellt, die als Ausgangspunkt zur Erstellung eines SharePoint Datenmodells dienen kann.

Folgende SharePoint Columns sind als Datentypen in der Visio Vorlage enthalten:

  • Boolean
  • Choice
  • Note
  • Text
  • Lookup
  • URL
  • User
  • Lookup
  • Calculated
  • Currency
  • DateTime

Diese Datentypen sind in einem Paket namens “WSS” enthalten und können bei der Klassifizierung von Klassenattributen verwendet werden.

urlaubsantrag-antragsteller-user.png

Neben der Modellierung der eigentlichen Datenstrukturen ist es auch notwendig die tatsächliche Website-Struktur der zukünftigen SharePoint-Lösung zu modellieren. Für dieses Modell einer Website-Struktur bietet sich wieder das UML 1.3 Klassenmodell von Visio an. Für die Modellierung muss zwischen SiteCollections, Websites, Listen, Dokumentenbibliotheken und Content Types unterschieden werden, dafür habe ich in der Vorlage folgende UML Stereotypes angelegt:

  • SPList
  • SPDocLib
  • SPWeb
  • SPSite
  • SpContentType

Diese Stereotypes kann man nun den entsprechenden UML-Klassen zuordnen und somit eine Unterscheidung zwischen den verschiedenen SharePoint Elementen im UML-Modell treffen.

urlaubsantrag-contenttype.png
Ein kleiner Ausschnitt aus dem Beispielmodell von oben ist nachfolgend dargestellt.

urlaubsantrag-contenttypemodell.png

Als genereller Vorteil hat sich die Verwendung und Modellierung von Datenstrukturen in Content Types erwiesen, auf die ich in einem zukünftigen Blogpost gern eingehen werde.

Die Visio-Vorlage gibt es hier zum Download: WSS_DataTypes.

Veröffentlicht von Ronny Schattauer am 25. Februar 2009

SharePoint: WSS 3.0 versus MOSS 2007

SharePoint ist eine gern genutztes Produkt um Collaboration-Plattformen zu etablieren, auf denen Benutzer Dokumente ablegen, gemeinsam bearbeiten und Daten in Form von Listen austauschen könnnen. Diese Funktionalitäten werden bereits mit den Windows SharePoint Services 3.0 (WSS 3.0) angeboten, so dass sich für viele Anwender und Kunden stets die Frage aufzwängt, ob sich die Verwendung der kostenpflichtigen Version – sprich dem Microsoft Office SharePoint Server 2007 (MOSS 2007) lohnt. Diese Frage muss in jedem Projekt neu beantwortet werden, da es passende Szenarien für beide SharePoint-Versionen gibt.

Feature-Überblick

Eine Auflistung der Features, die man vielleicht in WSS erwartet würde, aber nur in MOSS findet, hat Kevin Hoffmann bereits in einem Blogeintrag erstellt.

Besonders entscheidend finde ich die Tatsache, dass Benutzerprofile erst im MOSS verfügbar sind und in WSS somit keine serverweite Datenbasis für Benutzer existiert. Aus diesem Grund gibt es in WSS auch keinen standardmäßigen Import von Benutzerdaten aus einem Active Directory. Stattdessen müssen die Benutzer ihre Daten autark auf jeder SiteCollection selbst pflegen. Gespeichert werden die angegebenen Daten in der entsprechenden User Information List der jeweiligen SiteCollection.

Die Bereitstellung einer serverweiten Datenbasis für Benutzerinformationen ist meines Erachtens eine Grundvoraussetzung zur adäquaten Realisierung von Portalen.

Eine sehr umfangreiche Auflistung, Beschreibung und Vergleich der jeweiligen SharePoint Features findet man auch auf den Seiten der Miles Consulting Corp.

Lizenzierung und Kosten

Interessant in diesem Zusammenhang ist natürlich auch das Thema Lizensierung, da die benötigten Lizenzen und die damit verbundenen Kosten für WSS und MOSS sehr stark differieren. Eine Übersicht der anfallenden Kosten für die typischen SharePoint Farm-Konfigurationen hat Fabian Moritz in einem sehr interessanten Blogeintrag veröffentlicht.
Als Ergänzung und Richtlinie hat er auch eine Übersicht mit den ungefähren Preisen je Lizenz in seinem Blog veröffentlicht. Die dort aufgeführten Preise sind jedoch nur als Richtwerte zu verstehen, da die endgültig zu zahlenden Preise stark von den jeweiligen Partnern bzw. der Kundenbeziehung zu Microsoft abhängen.

Veröffentlicht von Ronny Schattauer am 5. Februar 2009

Update: The Architecture Journal

Wie ich bereits in einem früheren Beitrag geschrieben habe, veröffentlicht Microsoft unter dem Namen “The Architecture Journal” ein frei verfügbares Magazin rund um das Thema Software-Architektur. Heute wurde das 18. Journal veröffentlicht, dass sich dem Thema “Green Computing” widmet. Dabei wird darauf eingegangen wo Energie verbraucht wird, wo kosten entstehen und wie durch Virtualisierung Energie gespart werden kann – beispielsweise durch den Einsatz von Microsoft HyperV. :)

Neue Ausgaben

Journal 18: Green IT (PDF)
Journal 17: Distributed Computing (PDF)
Journal 16: Identity and Access (PDF)

Veröffentlicht von Ronny Schattauer am 19. Dezember 2008

Meine (erste) Buchveröffentlichung

Mitte 2008 wurde ich vom VDM Verlag angesprochen, ob ich interessiert wäre meine Diplomarbeit als Monografie zu veröffentlichen. Nach einigen Überlegungen entschied ich mich dafür und ließ dem Verlag eine Version meiner Arbeit zu kommen. Kurzfristig erhielt ich dann auch das “Go” und die entsprechenden Unterlagen für mein Buchprojekt vom Verlag und begann mit der Zusammenstellung der Inhalte. Als Buchtitel, -cover und Inhalt fertig waren und dem Verlag zur Verfügung standen, hieß es nun warten.

Vor zwei Tagen erhielt ich nun auch mein Freiexemplar frei Haus und freute mich natürlich ein Buch in den Händen zu halten, dessen Autor ich persönlich bin.

Der Buchtitel lautet: “Human-Workflows: Charakteristik und Einsatzmöglichkeiten am Beispiel der Windows Workflow Foundation”. Die ISBN lautet: 978-3-639-07628-8.

Nachfolgend das Buchcover:

Der Klapptext: “In heutigen Unternehmen werden Workflows in Verbindung mit umfangreichen Geschäftsprozessen immer wichtiger, da die Zahl und Komplexität der Geschäftsprozesse und somit auch die Schwierigkeit einer adäquaten Umsetzung stetig steigt. Geschäftsprozesse binden Menschen fest in ihre
Abläufe ein, weshalb eine vollständige Automatisierung nicht realisierbar ist. Eine generelle Unterstützung und Teilautomatisierung ist durch geeignete Workflow-Anwendungen und der Definition sowie Umsetzung von einzelnen Workflows – genauer Human-Workflows – möglich. Der Autor Ronny Schattauer gibt  einführend einen Überblick über die Workflow-Terminologie, die verschiedenen Workflow-Klassifizierungen sowie vorhandener Beschreibungssprachen. Darauf aufbauend wird die Charakteristik von Human-Workflows
vergleichend dargestellt und auf Anforderungen an eine Human-Workflow Architektur eingegangen. Die Microsoft Windows Workflow Foundation wird hinsichtlich Architektur, Funktionsweise und einer Human-Workflow Realisierung untersucht. Das Buch richtet sich an Software-Entwickler und -Architekten gleichermaßen wie an versierte Projektleiter.”

Bestellbar ist das Buch bereits bei den meisten Online Shops wie: Amazaon, Libri, Buecher.de, Buchkatalog.de uvm.

Veröffentlicht von Ronny Schattauer am 15. Dezember 2008

Fachkonzeption: Verwendung von Use Cases

Da dieses Thema bei mir gerade mal wieder aktuell ist, gibt es nachfolgend eine Use Case Vorlage, die sich bei uns im Projekt bewährt hat.

Was ist ein Use Case?

Ein Use Case (dt. Anwendungsfall) beschreibt eine Interaktion zwischen einem Akteur und dem Zielsystem die zur Erreichung eines fachlichen Ziels wichtig ist.

Wie wird ein Use Case dargestellt?

Ein Use Case ist recht granular und beschreibt genau eine Interaktion, der als Prozess dargestellt werden kann. Ein Akteur kann dabei ein menschlicher Benutzer oder aber auch ein Drittsystem sein, dass mit dem Zielsystem aus nicht trivialen Grund interagiert.

Ein Use Case kann natürlich durch reinen Prosa Text beschrieben werden. Der Nachteil an dieser Variante ist, dass die Pflege des Textes mühsam ist und die einzelnen Fakten nicht auf einen Blick überschaubar sind. Den Ablauf in Stichpunkten zu beschreiben bringt da schon mehr Lesbarkeit hinein. Da ein Use Case typischerweise immer wieder durch die gleichen Meta-Informationen beschrieben wird, macht es Sinn eine Vorlage zu entwickeln, mit der man in seinem Projekt Anwendungsfälle beschreibt.

Die nachfolgende Use Case Vorlage habe ich nach meinen eigenen Vorstellungen und der Zuhilfenahme weitere Best Practices und Vorlagen entwickelt.

Die Inhalte der weißen Felder sind jeweils durch die eigenen Werte zu ersetzen. In der Vorlage habe ich die Felder durch passende Fragen und Hinweise gefüllt, die ein Ausfüllen der Vorlage erleichtern sollen.

Für die Zusammenarbeit im Team eigenen sich vor allem die Felder Version und Bearbeitungskommentar. Durch diese beiden Felder können nachträgliche Änderungen und Nachbesserungen auf einen Blick sichtbar gemacht werden. Die Frage “Ist die Version die Sie vorliegen haben, die aktuelle Version?” kann somit leicht beantwortet werden.

Natürlich ist die tabellarische Darstellung nur für eine einzelne Beschreibung eines Use Cases sinnvoll. Zur übersichtlichen Darstellung verschiedener Use Cases und Benutzer können UML Use Case Diagramme verwendet werden. Nachfolgend habe ich ein beispielhaftes Use Case Diagramm für ein Bibliothekssystem dargestellt.

Anwendungsfälle können auf diese Art und Weise beschrieben und im Anschluss mit den relevanten Stakeholdern, allen voran dem Kunden, besprochen und angepasst werden. Sie bilden so die Grundlage für die nachfolgenden Phasen der Software-Entwicklung.

Veröffentlicht von Ronny Schattauer am 13. November 2008

LaTeX Textsatzsystem

Wer größere Dokumente erstellen und dabei die volle Kontrolle möchte und dabei auch ohne einen WYSIWYG Editor (”What you see is what you get”) auskommt, für den stellt LaTeX bzw. eine entsprechende Distribution eine gute Wahl dar. Vor allem zur Erstellung von wissenschaftlichen Arbeiten, wie Studien- und Diplomarbeiten lohnt es sich mehr Zeit zu investieren um letzten Endes ein qualitativ hochwertiges Dokument zu erhalten.

Folgendes sind Vorteile und Stärken von LaTeX:

  • Die Formatierung wird getrennt vom Inhalt definiert
  • Sehr gutes Textsatz (Beispiel: Blocksatz verteilt Zeichen besser als die meisten Standardtextbearbeitungs-Anwendungen.
  • Erstellung von eigenen Makros leicht möglich und sehr praktischfür wiederkehrende Elemente
  • Erstellung von Verzeichnissen wie Inhalts-, Abbildungs-, Tabellen-, Listingverzeichnis oder Glossar leicht möglich.
  • Umfangreicher Formelsatz zur Anzeige von mathematischen Formeln
  • Es existieren vordefinierte Dokumentenklassen, die viele Einstellungen vornehmen
  • Zahlreiche Erweiterungspakete existieren und können eingebunden werden
  • Plattform unabhängig – das erstellte TeX-Dokument kann auf verschiedenen Plattformen ausgewertet werden, bei stets gleich bleibendem Endergebnis (als pdf, dvi oder ps Datei).

Folgendes wird für eine produktive Umgebung benötigt:

  1. Eine LaTex-Distribution für die entsprechende Zielplattform, beispielsweise MiKTeX für MS Windows.
  2. Einen Editor, beispielsweise TeXnicCenter.

Beide Komponenten können kostenfrei heruntergeladen werden.

  1. MiKTeX Installer herunterladen. MiKTeX 2.7: http://miktex.org/2.7/Setup.aspx
    1. Installer ausführen, alle Pakete herunterladen
    2. Nach Download: Setup im MiKTeX Verzeichnis ausführen. Beispiel: setup-2.7.3092.exe
  2. Nach erfolgreicher Installation, kann das TeXnicCenter installiert werden.
    1. Download von SourceForge: http://sourceforge.net/project/showfiles.php?group_id=36323
    2. Installation ausführen.
    3. Beim ersten Start fragt TeXnicCenter nach dem MiKTeX Installationsordner, dort muss das Unterverzeichnis “\Miktex\bin” des zuvor angegebenen Pfades angegeben werden.
    4. Danach wird der Standard-Reader abgefragt, der Adobe Reader kann hier beispielsweise eingestellt werden.

Nach diesen Schritten steht bereits eine arbeitsfähige Umgebung zur Verfügung. Ein Minimalbeispiel kann man sich bei Wikipedia ansehen. Nachfolgend ein Screenshot aus der TeXnicCenter Umgebung:

Für die Verwaltung von Literatur- und Quellverweisen bietet sich das ebenfalls kostenfreie JabRef an. (Java Runtime Environment wird benötigt!)

Hilfreiche Ressourcen

Da sich bei der Arbeit mit LaTeX oft neue Fragen aufwerfen, sind nachfolgend ein paar gute Quellen aufgeführt, die mir persönlich schon oft geholfen haben.

Dokumentationen

Buchempfehlungen

  • HELMUT KOPKA, LATEX, Bd. 1: Einführung, ISBN: 978-3827370389, Pearson Studium (Amazon)
  • HELMUT KOPKA, LATEX, Bd. 2, ISBN: 978-3827370396, Pearson Studium (Amazon)

Veröffentlicht von Ronny Schattauer am 19. August 2008

UML 2 Notationsübersicht

Wer sich die Notation einzelner UML-Elemente ansehen oder einfach wieder ins Gedächtnis holen will, dem empfehle ich die UML 2 Notationsübersicht von www.oose.de.

UML 2 Notationsübersicht (PDF)
Nachfolgend die 4 Seiten der Notationsübersicht als Einzelgrafiken:

Die Übersicht kann natürlich nur zum Naschlagen dienen, einige Zusammenhänge und Diagramme werde ich in nachfolgenen Einträgen erläutern.

Veröffentlicht von Ronny Schattauer am 12. August 2008

MS Visual Studio “Rosario” – UML Unterstützung

Bisher hielt man sich seitens Microsoft eher bedeckt, was eine sinnvolle Integration von UML (Unified Modelling Language) in die Entwicklungsumgebung Visual Studio betraf. Seit Visual Studio 2005 gibt es den Class Designer, mit dem man Klassendiagramme für die jeweiligen Projekte separat erstellen kann. Praktisch ist dies, da Visual Studio aus dem Diagramm direkt Code erzeugt und es somit weitere Arbeit erspart. Mehr wird aktuell jedoch nicht unterstützt, umso mehr freut es mich, dass Microsoft nun daran arbeitet. Im nächsten Release des Visual Studio Team Systems Codename “Rosario”, soll eine Untertsützung folgender 5 UML Basis Diagramme enthalten sein:

  • Klassendiagramm (class diagram)
  • Anwendungsfalldiagramm (Use Case diagram)
  • Komponentendiagramm (Component diagram)
  • Sequenzdiagramm (Sequence diagram)
  • Aktivitätsdiagramm (Activity diagram)

Wie Cameron Skinner in seinem Blog schreibt, wird es eine Kombination aus UML und einer domain-specific language (DSL, dt. Domänenspezifische Sprache) geben. Dies macht natürlich Sinn, da UML als universell einsetzbare, objektorientierte Notation bzw. Sprache nicht nur zur Software-Modellierung verwendet werden kann, sondern auch zur Modellierung Software fremder Sachverhalte.

Um die UML Diagramme nicht nur für visuelle Zwecke zu nutzen, sondern den Informationsgehalt dieser für eine Codegenerierung zu verwenden,, will Microsoft eine DSL darunter setzen, die dann Informationen auswerten kann und die Sachverhalte auf Programmcode-Ebene betrachtet. Man ordnet den beiden Sprachen unterschiedliche Abstraktionsniveaus zu, so dass UML auf einer logischen Ebene (engl. logical layer) und die DSL auf einer darunter liegenden physischen Ebene (engl. physical layer) fungiert.

Im April wurde bereits ein CTP von Roasario veröffentlicht, das ganze gibts als Virtual PC Image zum herunterladen. Die Links dazu und eine kleine Featurelist gibt es im Blog von Jeff Beehler.

Ich bin sehr gespannt wie dieses Zusammenspiel konkret aussehen wird und werde das Thema im Auge behalten.

Veröffentlicht von Ronny Schattauer am 9. August 2008

The Architecture Journal

Microsoft veröffentlicht unter dem Namen “The Architecture Journal” ein kostenfreies Magazin, in dem “Software-Architekten aus der ganzen Welt plattformübergreifend eine breite Palette an Themen aus den Bereichen Enterprise, Infrastruktur und Anwendungsarchitektur – nicht nur aus dem Microsoft Umfeld” diskutieren. Nach einer Anmeldung kann man sich dieses als Print- oder Online-Abo bestellen.

In der aktuellen Ausgabe 15 dreht sich alles um die umstrittene Rolle des Software-Architekten. Interessant ist der Ansatz, Architekten je nach ihrer Ausrichtung bzw. Spezialisierung verschiedenartig zu klassifizieren.

  • Enterprise Architect
  • Solution Architect
  • Software Architect
  • Business Architect

Das “Open Group Architect Certification Program” wird auch vorgestellt – mehr zum Thema im Journal 15.

Auflistung der bereits erschienenen Ausgaben des MS Architecture Journal.

Journal 15: The Role of an Architect (PDF)
Journal 14: Mobile Architecture (PDF)
Journal 13: Software + Services (PDF)
Journal 12: Web Architecture (PDF)
Journal 11: Infrastructure Architecture (PDF)
Journal 10: Composite Applications (PDF)
Journal 09: Software Factories (ZIP)
Journal 08: Data by Design (PDF)
Journal 07: Generation Workflow (PDF)
Journal 06: Strategies for Design (PDF)
Journal 05: Integration Interchange (PDF)
Journal 04: October 2004 (ZIP)
Journal 03: July 2004 (ZIP)
Journal 02: April 2004 (ZIP)
Journal 01: January 2004 (ZIP)

Eine Übersicht der Journale gibt es auch im MSDN.

Veröffentlicht von Ronny Schattauer am 5. August 2008