Verwendung von neuen Technologien in Softwareprojekten: Teil 1

Seit Release des .Net Frameworks 3 sind die Gestaltungsmöglichkeiten von Softwarearchitekturen freier definierbar. Ein einfaches Beispiel ist die Möglichkeit die Präsentation von Daten über verschiedene Techniken wie unter anderem

  • Windows Forms
  • Windows Presentation Foundation
  • ASP.Net Web Forms
  • ASP.Net MVC Seiten
  • Silverlight Webkomponenten
  • Konsole Anwendungen
  • Office Integration

Zwar gab es auch die den vorherigen .Net Framework Versionen bereits mehrere Präsentationsmittel, allerdings war die Liste doch bedeutend kürzer und die einzelnen Techniken waren weniger komplex als die mit Framework 3. eingeführten Neuerungen.

Hier ist besonders WPF hervorzuheben. Mit WPF steht dem Entwickler Designer ein mächtiges Werkzeug zur Hand. Hier gelten prinzipiell keine Richtlinien für die Gestaltung von Oberflächen mehr, so können zum Beispiel Standardkomponenten wie Buttons, Labels, Textboxen in Ihren Grundbestandteilen frei definiert werden.

Allerdings bringt diese neue Freiheit auch einen erheblichen Mehraufwand für die Realisierung mit sich. Diese Tatsache muss nun im Projektlebenszyklus früh berücksichtigt werden, um Projekte wirtschaftlich erfolgreich abzuschließen.

Die Liste der neu Verfügbaren Techniken setzt sich auch außerhalb des sichtbaren Bereichs fort. Begriffe wie Windows Communication Foundation, Windows Workflow Foundation, Linq to Sql, Linq to XML, ADO.Net Entity Framework,… sind überall gegenwärtig.

 

Die Fragen die sich jeder Projektleiter im Vorgang an ein neues Projekt nun stellen muss lauten

"Welche Techniken benötige ich? “

“Welche Techniken bieten mir einen Vorteil”

“Welche Techniken beherrscht das Entwicklungsteam?”

“Welche neuen Techniken sind leicht erlernbar?”

“Welchen Mehrwert bietet meinem Team das Erlernen einer neuen Technologie?”

“Wie bringe ich die gewählten Techniken zusammen?”

 

In dieser Blogserie möchte ich die einzelnen Fragen aufgreifen und versuchen eine gute Antwort dazu abzugeben um Projektleitern die mit solchen Technologiefragen noch nicht in Berührung kamen, einen kurzen Einblick zu geben.

 

“Welche Techniken benötige ich?”

Die erste Frage die man sich bei der Realisierung von Softwareprojekten stellen sollte, ist die Frage nach der Notwendigkeit von Softwaretechniken.

Wie so oft in der Softwareentwicklung gibt es für die korrekte Beantwortung dieser Frage keine Formel, viele Faktoren spielen eine Rolle um die individuell beste Antwort auf diese Frage zu finden. Jedoch wird in den meisten Projekten eine “Richtung” durch den Kunden vorgegeben. So kann das gewünschte DBMS, die gewünschte Laufzeitumgebung oder auch die vorhandene Infrastruktur, die Liste an möglichen Technologien um ein vieles kürzen.

An dieser Stelle ein einfaches Beispiel

Die neue Softwarelösung muss auf jedem vorhandenen, an das Netzwerk angeschlossenen, Computer ausführbar sein und die Verwendung sollte keinen administrativen Eingriff bedürfen.

Durch diese einfache und oft definierte Anforderung, fallen bereits sämtliche Präsentationsmittel weg, die eine Installation auf Clientsystemen benötigen oder Windows als Betriebssystem voraussetzen. Denn auch andere Betriebssysteme können in einem heterogenen Netzwerk vorhanden sein.

Projektanforderungen beinhaltet normalerweise viele solcher Aussagen, die den Projektleitern den Auswahlpool an Techniken verkleinert.

Sofern alle Anforderungen abgearbeitet sind und die Liste an verwendbaren Softwaretechniken aktualisiert wurde, geht es zum nächsten Schritt, hierbei muss das gewünschte System logisch validiert werden. Durch die logische Validierung von Softwareprojekten kann frühzeitig im Softwarelebenszyklus heraus gefunden werden, welche Softwaretechniken besser oder schlechter für die Lösung der gestellten Aufgabe konzipiert sind.

Auch hier noch einmal ein kleines Beispiel

Unsere Außendienstmitarbeiter sollen schnellstmöglich über neue Kundenanfragen informiert werden.

Durch diese Anforderung Rücken Techniken wie BizTalk, SharePoint, WCF klar in den Vordergrund im Vergleich zur Realisierung einer Windows Forms Anwendung die zum Beispiel auf dem HomeScreen diese Notifications anzeigen kann. Die zuerst genannten Techniken bieten hier Möglichkeiten wie Interaktion mit vorhandenen Schnittstellen (SMS-Gateway als konkretes Beispiel) oder die Bereitstellung von Webdiensten die über Mobile Clients (wie Windows Mobile Devices) konsumiert werden können.

Natürlich schließt eine solche Anforderung nicht die Verwendung eines Windows Forms Clients aus, allerdings wird deutlich das eine reine Windows Forms Client-Database Lösung an dieser Stelle nicht ausreichen könnte.

Untersucht man nun die Projektanforderung und die daraus erstellten Use-Cases nach solchen Anforderungen und validiert damit immer wieder die Liste der verfügbaren Techniken wird diese zwangsläufig kürzer.

 

In Teil zwei der Artikelserie beantworte ich die Frage “Welche Techniken bieten mir einen Vorteil”.

 

DotNetKicks-DE Image
Published Donnerstag, 28. Mai 2009 19:57 von ThorstenHans
Abgelegt unter: , ,

Kommentare

# Verwendung von neuen Technologien in Softwareprojekten: Teil 1

Freitag, 29. Mai 2009 09:06 von dotnet-kicks.de

Sie wurden gekickt (eine gute Sache) - Trackback von dotnet-kicks.de

Kommentar abgeben

(verpflichtend) 
(verpflichtend) 
(optional)
(verpflichtend)