(0) exportieren Drucken
Alle erweitern
Erweitern Minimieren

Schnellere Entwicklung und Performance durch den Einsatz von Microsoft .NET

Veröffentlicht: 30. Apr 2002 | Aktualisiert: 20. Jun 2004
Von Mirko Matytschak

Die NeoGeo New Media GmbH in Elmshorn hat auf Basis von Microsoft .NET ein Produkt neuentwickelt, das Bestandteil einer größeren Palette von Internet-basierten Serverprodukten ist. Dies machte die Portierung bestehenden Codes ebenso notwendig wie die Entwicklung vollkommen neuer Produktteile. Als Vorteile nennt der Hersteller die kostengünstigere Software-Entwicklung, eine schnellere Fertigstellung und ein effizienteres Produkt. Dieser Artikel fasst die wesentlichen Erfahrungen mit dem Einsatz von Microsoft .NET zusammen.

* * *

Auf dieser Seite

Das Produkt Das Produkt
Die Architektur Die Architektur
Vorteile durch den Einsatz von .NET Vorteile durch den Einsatz von .NET
Portierungsschritte Portierungsschritte
Aufwand - Nutzen in Relation Aufwand - Nutzen in Relation
Tipps für Einsteiger Tipps für Einsteiger
Zusammenfassung Zusammenfassung

Das Produkt

NeoGeo New Media GmbH
Ansprechpartner: Marc Höppner
Friedenstr. 39
25335 Elmshorn

Telefon: 04121-8025-0
Fax: 04121-8025-25
E-Mail: info@neogeo.com

Das neoMarketingCenter ist ein Online Web Analysis- und Marketing-Tool, das dem Kunden sowohl ein einheitliches Interface für die vollständige Erfassung und Auswertung aller Kosten und Einnahmen einer Web Site bietet, als auch die Administration und Analyse jeglicher Internet-Marketing-Aktivitäten ermöglicht.

Das Produkt ist eine Neuentwicklung, allerdings sind Bereiche der Funktionalität bereits Teil des Content Management Systems neoContentCenter, das in der aktuellen Version noch nicht auf .NET basiert. In diesen Bereichen kann man von einer Portierung bestehenden Codes auf .NET sprechen.

Hauptfeatures des neoMarketingCenter sind eine vollständige Kosten/Nutzenrechnung (ROI) der Web Site, konsolidiertes Kampagnen-Management und umfangreiche Traffic-Reports (Bilder 1-3).

In das System sind Teile der .NET My services integriert, sowohl bei der Benutzerauthentisierung über Passport als auch bei der automatischen Versendung von Alerts, um den Anwender auf bestimmte von ihm definierte Ereignisse hinzuweisen.

Das neoMarketingCenter ist nahtlos in die Produktfamilie der NeoGeo integriert. Das neoContentCenter als Redaktionssystem und das Dokumentenverwaltungssystem neoDocumentCenter stellen zusammen mit dem neoKnowledgeCenter als Wissenskonsolidierungs- und Verwaltungssystem weitere Eckpfeiler des Portfolios dar.

Bild01

Bild1: Auswertungen und Verwaltung des neoMarketingCenter

Bild02

Bild2: Auswertungen und Verwaltung des neoMarketingCenter

Bild03

Bild3: Auswertungen und Verwaltung des neoMarketingCenter

Die Architektur

Das neoMarketingCenter besteht aus insgesamt 6 Schichten (Bild 4). Es gibt zwei Schnittstellen nach außen: das eigentliche Front End, das der Anwender bedient, und den Web Service, der die Daten von der Kundenseite sammelt.

Die Daten erhält der Service über einen so genannten Web Bug, der auf jeder Seite innerhalb der Kunden-Site eingefügt werden muss. Dieser besteht aus einem kurzen JavaScript, das alle relevanten Daten über den jeweiligen Zugriff und möglicherweise weitere Daten aus einem vom Kunden verwendeten Content Mangement oder E-Commerce-System indirekt an den Web Service weiterleitet. Der Web Service speichert diese Daten unverarbeitet in einer Datenbank. Bei eventueller Überlastung der Datenbank ist ein Mechanismus vorgesehen, die Daten stattdessen in einer temporären XML-Datei abzulegen, um in keinem Fall Daten zu verlieren.

Bild04

Bild 4: Die Architektur des neoMarketingCenter

Auf dem Server läuft ein NT Service als nächste Schicht, der die Aufgabe hat, die unverarbeiteten Daten basierend auf der Benutzerkonfiguration auszuwerten. Er greift also auf zwei Datenbanken zu, gegebenenfalls auch noch auf die temporären XML-Dateien.

Auf der anderen Seite befindet sich die Benutzeroberfläche, mit deren Hilfe der Anwender Auswertungen einsehen und die unterschiedlichen Module konfigurieren kann. Die dahinterliegende Funktionalität ist in diverse Web Services gekapselt, die sowohl die Auswertungsdaten zur Verfügung stellen, als auch die Konfigurationsdaten verarbeiten und speichern.

Auf diese Konfigurationsdaten greift dann der erwähnte NT Service zu, und schreibt in die Auswertungsdatenbank die daraus resultierenden Ergebnisse.

Für das Object-Relational-Mapping zur Datenbank verwendet die NeoGeo teilweise schon die Prerelease Version von Microsoft ObjectSpaces. Darüber hinaus wurden die .NET Application Building Blocks verwendet, um zum Beispiel beim Exception Management innerhalb der Software auf einer gemeinsamen Grundlage aufsetzen zu können.

Vorteile durch den Einsatz von .NET

Die verschiedenen .NET-Technologien bieten der NeoGeo New Media bei der Entwicklung des neoMarketingCenter an vielen Stellen Vorteile.
Vor allem die Verwendung der Web Services hat hier einen hohen Stellenwert.

Hauptvorteil ist die einfache Kapselung der Business-Logik in wieder verwendbare Komponenten, die zwangsläufige Abstraktion der Logik vom Layout und die daraus resultierende Unabhängigkeit von der Art und dem Aussehen des Front Ends. So ist es beispielsweise möglich, ein alternatives Front End als Windows-Forms-Applikation zu entwickeln, ohne dafür die Web Service-Schicht erweitern oder modifizieren zu müssen. Aufgrund der diversen Überlappungen von angebotener Funktionalität in den unterschiedlichen Produkten der NeoGeo wird es zudem vereinfacht, auch über Produktgrenzen hinweg bestehende Module nahtlos zu integrieren. So können zum Beispiel Kontaktdaten wie Adressen über das .NET MyContacts Format ausgetauscht werden.

Die Integration von Web Services in die Office-Suite bietet weitere reizvolle Möglichkeiten. Zum Beispiel ist es dadurch denkbar, dass der Anwender sich Auswertungen aus dem neoMarketingCenter direkt in Excel lädt und so bequem verwalten und bearbeiten kann.

Durch die Verwendung von Web Services erzielt der Hersteller eine maximale Skalierbarkeit, da die unterschiedlichen Komponenten völlig frei über verschiedene Server verteilbar sind.

Als Programmiersprache wird C# verwendet, da die Sprache speziell auf das .NET Framework zugeschnitten ist. Die Vorteile, die sich daraus in der Entwicklung ergaben, beruhen vor allem auf den Vereinfachungen gegenüber C++ und der syntaktischen Nähe zu C++/Java, was es sehr erleichtert hat, sich in die neue Sprache einzuarbeiten.

ASP.NET bietet weiterhin große Vorteile verglichen mit ASP. Die Performance ist deutlich verbessert, weil die Seiten nun beim ersten Aufruf kompiliert werden, und bei folgenden Anfragen als kompilierte DLL ausgeführt werden.

Einen weiteren Performance-Vorteil bringt die Nutzung der ASP.NET Caching-Infrastruktur. Die Anzahl aufwändiger Datenbankoperationen kann so in sinnvoller Art und Weise reduziert werden, wodurch der Server deutlich entlastet wird, und der Benutzer kürzere Wartezeiten bei der Benutzung des Systems hat.

ASP.NET Web Controls bieten weitere Vorteile, was die effiziente Entwicklung eines Internet-basierten Front Ends betrifft. Die standardmäßig vorhandenen Controls in Verbindung mit zum Beispiel den IE Web Controls nehmen den Entwicklern sehr viel Arbeit ab und verringern den Entwicklungsaufwand für die Benutzeroberfläche deutlich. Zusätzlich bietet Visual Studio .NET die Möglichkeit, auf sehr einfache Art und Weise eigene komplexe UI-Elemente in Web Controls zu fassen, und so über Seiten- und auch Produktgrenzen hinweg wieder verwendbar zu machen.

Gerade bei der Portierung und der generellen Umstellung der Programmierer auf das neue Framework konnte viel Funktionalität effizienter und einfacher umgesetzt werden, da die unterschiedlichen Klassen des Frameworks viel grundlegende Funktionalität fertig zur Verfügung stellen. Unter anderem beschleunigte die Verwendung von Basisklassen aus dem Namespace System.Collections die Erstellung von eigenen Klassen.

Die IntelliSense-Technologie und die umfassende dynamische Hilfefunktion von Visual Studio .NET helfen den Entwicklern, sich in die neuen Klassenbibliotheken wie zum Beispiel für ASP.NET und ADO.NET schnell einzuarbeiten.

Zusammenfassend profitiert die NeoGeo sehr stark von den Möglichkeiten der .NET-Technologien was sowohl das "Rapid Application Development" angeht als auch die Möglichkeit, intern ein Framework an Funktionalität und Komponenten aufzubauen, das innerhalb der kompletten Produktpalette eingesetzt werden kann.

Portierungsschritte

Bei den Teilen des neoContentCenter, die in das neoMarketingCenter integriert werden, kann keine 1:1-Portierung stattfinden, da das neoContentCenter auf einer gänzlich anderen Plattform (ColdFusion Server) entwickelt wurde, die im Backend teils in C++ und teils in Java umgesetzt wurde, und im Front End ColdFusion als Programmiersprache einsetzt.

Die Architektur wird in Teilen adaptiert und in ähnlicher Form in ASP.NET und C# umgesetzt, an eine automatisierte Portierung ist jedoch nicht zu denken. Diese Herangehensweise bietet den Vorteil, dass der größte Teil der Kopfarbeit nicht noch einmal geleistet werden muss, die Programmierer aber auf einfache Art und Weise mit den .NET Klassenbibliotheken vertraut werden, und die neue Entwicklungsumgebung kennen lernen. Viele dieser kleinen Portierungsschritte führen zu einem Zustand, in dem später das gesamte neoContentCenter portiert werden kann. Zu diesem Zeitpunkt liegen dann bereits Erfahrungen im Umgang mit dem .NET-Framework vor.

Bewertung der Common Language Runtime

Vorteile:

  • IntelliSense in Visual Studio .NET erleichtert den Umgang mit den Klassenbibliotheken der CLR
  • ausgezeichnete Dokumentation, Samples und Tutorials geben einen guten und schnellen Einstieg
  • Vereinfachung der Entwicklung durch leistungsfähige Bibliotheken
  • Einbindung vorhandener COM-Objekte durch Interop


Schwächen:

  • Da es sich um ein neues Produkt handelt, sagt die Dokumentation an verschiedenen Stellen noch wenig über "best practices" aus.
  • Die aktuelle Version 4.0 von MSXML ist bisher nur als COM-Komponente verfügbar.

Bewertung von C#

Vorteile:

  • Accessors, die eine Inputvalidierung bzw. Read-only Properties elegant ermöglichen (großer Vorteil)
  • Implementierung von Enums
  • strukturiertes Exception-Handling
  • Indexer-Feature
  • Mehr "Spaß" beim Programmieren

Aufwand - Nutzen in Relation

NeoGeo beschäftigt sich schon seit den Anfängen von Microsoft .NET mit der Technologie und hat u.a. auch vor Ort in Redmond frühzeitig Einblicke in die Materie erhalten. Der Einstieg in das .NET Framework und ASP.NET ist dadurch auch sehr schnell und effizient verlaufen. Die Entwicklung eines Prototypen für ein neues Produkt, in dessen Entwicklung bestehende Funktionalität und vorhandenes Wissen der Programmierer einfließen konnten, hat sich als optimales Projekt für den Umstieg auf .NET herausgestellt. Hierbei konnten auf vielen Ebenen Erfahrungen gesammelt werden, die sowohl für Neuentwicklungen als auch für die spätere Portierung des Redaktionssystems von hohem Nutzen sind.

Der Hersteller schätzt, dass durch den Umstieg auf Microsoft .NET kurzfristig mehr als 20% der Kosten für neue Softwareentwicklung und langfristig sogar bis zu 50% der Kosten für Anpassungen vor allem durch die Verwendung von Web Services eingespart werden können. Die notwendige Einarbeitungszeit in Microsoft .NET hat sich somit bereits nach kurzer Zeit bezahlt gemacht.

Als Fazit lässt sich sagen, dass der Nutzen den entstandenen Aufwand in jedem Falle mehr als rechtfertigt.

Tipps für Einsteiger

Viele zusätzliche Komponenten von Microsoft verhelfen zu einem sehr schnellen Einstieg in das .NET Framework, so zum Beispiel ObjectSpaces als Werkzeug für objektrelationales Mapping datenbankbasierter Anwendungen, und die .NET Application Building Blocks als direkt einsetzbare Erweiterungen der Klassenbibliotheken sowie als anschauliche Demonstrationen von "best-practices" mit Teilen des .NET Frameworks.

Zudem gibt es einige sehr interessante Features im .NET Framework, die vielleicht nicht unmittelbar ins Auge springen. So kann man zum Beispiel mithilfe von Delegates und Events den Klassen aus dem Namespace System.Reflection und der Verwendung von Attributen zur Laufzeit Workflows ändern und damit elegant ein sehr dynamisches Verhalten implementieren.

Bezüglich der Verwendung von Web Services ist eine genaue Abschätzung der Vor- und Nachteile wichtig. Web Services bieten an vielen Stellen große Vorteile, ihr Aufrufen bedeutet aber auch immer einen Performance-Verlust, und an einigen Stellen macht es einfach mehr Sinn, die Komponenten direkt anzusprechen und auf die Flexibilität eventuell zu verzichten.

Zusammenfassung

Für die NeoGeo New Media war das Projekt der Umstellung auf .NET im Rahmen der Entwicklung eines neuen Produkts sehr erfolgreich. Die vielen bereits erwähnten Features von .NET und speziell ASP.NET werden von allen Mitgliedern des Projektteams sehr positiv bewertet, da sowohl das Produkt selbst einen Performance-Vorteil verbuchen kann, als auch der Prozess der Software-Entwicklung.


Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2014 Microsoft