|
|
![]() |
||||
| Info Person Gallery Computer Internet Fun Sonstiges Sitemap Suche Kontakt | |||||
Quick-Index
WebServices - .NET Sprachsystem - Webserver-Entwicklung - COM+ - Literatur
Microsoft hat Anfang der 90er noch gedacht, dass sich das Internet im Massenmarkt nie etablieren wird, da es zu "kompliziert" ist. Zum Glück hat sich Microsoft getäuscht. Jetzt allerdings versucht Microsoft mit allen Mitteln, auf den Zug der totalen Vernetzung aufzuspringen. Allerdings ist Microsoft nicht der einzige Kämpfer auf diesem zukunftsträchtigen Markt. Doch was bedeutet die neue Vision .NET?
In den letzten 3 Jahren hat Microsoft im Stillen seine Vision .NET auf die Sicht der nächsten 10 Jahre entwickelt. Das Konzept regelt durchgängig alle Bereiche der Architektur neu mit starker Ausrichtung auf die Entwicklung von WebServices, nicht nur im Bereich Desktop-PC, sondern auch Handhelds bis hin zu Alltagsgeräten wie Mikrowelle, Handy und Waschmaschine.
Im Jahr 1995 erst hat sich das Netz der Netze durchgesetzt. Bis dahin war es Wissenschaftern und Technikfreaks vorbehalten. Ab diesem Zeitpunkt wurden die Menschen durch das Web vernetzt, und heute ist das Web weltumspannend. Nicht nur das Denken der Menschen wurde dadurch verändert, auch die Dienste wie Online-Shoppen, Online-Banking wurden weiterentwickelt. In Zukunft sollen alle alltäglichen Sachen über das Web erledigt werden, und an dieser Stelle setzt Microsoft mit .NET an. Sogenannte WebServices sollen es möglich machen, Informationen allgegenwärtig anzubieten.
Der Austausch von Daten wird auf der Grundlage von XML geschehen. XML ist eine vereinfachte Form von SGML. So wie HTML mit SGML definiert ist, so kann man mit XML eigene Markup-Sprachen oder auch eigene Erweiterungen von HTML bzw. XHTML mit eigenen Tags für bestimmte Elemente mit bestimmten logischen Bedeutungen definieren.
Nun kann jeder Provider auch diese WebServices anbieten. Auch Microsoft bietet WebServices an und kassiert dafür (komisch, oder? :-)). In der UDDI-Initiative (Universal Description, Discovery and Integration) haben sich bisher über 130 Partner zusammengeschlossen. Von American Express über IBM, SAP und Sun bis zu Verisign, die über eine standardisierte Beschreibung von WebServices diesen Markt aufbauen wollen.
Microsoft bietet für Unternehmen verschiedene Server-Produkte an. Für Datenbanken z.B. das Konkurrenzprodukt von Oracle - den SQL-Server 2000. Oder für Kommunikation den Exchange 2000 Server, sowie für die Datendefinition mit XML den BizTalk-Server 2000 und den Commerce-Server 2000 für eCommerce.
Natürlich bietet Microsoft die Entwicklungsumgebung an, um solche WebServices entwickeln zu können. Bisher wurde mit der Entwicklungsumgebung Visual Studio entwickelt. Jetzt wird die gesamte .NET-Welt auf einer völlig neuen Software-Architektur aufsetzen.
Aus den bisherigen Sprachen wurde alles außer Syntax und Semantik der Kontrollstrukturen, Klassen- und Variablen-Deklarationen herausgeworfen und in eine eigene Common Language Runtime gesteckt (CLR), die für alle Programmiersprachen gleich ist. Diese Runtime enthält die Datentypen, alle Systemfunktionen, Exception-Behandlung, Datenbankzugriff und das User-Interface. Also VB-Controls, MFC und ATL.
Alle diese .NET-Programmiersprachen setzen auf einer gemeinsamen Basis auf. Microsoft selbst bietet C# und VB.NET an. Visual C++ gehört nicht mehr zu dieser Welt, weil es sich nicht in das vorgegebene Schema pressen ließ, ein Grund für C# - das Konkurrenzprodukt zu Suns "Java".
C# soll sich in die .NET-Welt einfügen, indem man auf einfache Weise Komponenten erstellen kann. C# bietet etwas mehr Flexibilität und mehr Funktionalität bei etwas umständlicherer Programmierung als VB.NET Die Syntax erinnert sehr an Java und damit auch an C++. Einige C++-Konstrukte gibt es nicht wie z.B. Mehrfachvererbung und Templates. Man braucht kaum noch Pointer und es gibt eine automatische Speicherverwaltung. Wie bei Java entfällt die Trennung zwischen Headern und Code. Von Java unterscheidet es sich darin, dass es nach wie vor keine Sandbox gibt, was allerdings in Bezug auf sicherheitsspezifische Themen mit Sicherheit von Nachteil ist.
VB.NET ist nicht kompatibel zu VB6. Es gibt zwar einen Konverter, aber der funktioniert noch nicht richtig und wird voraussichtlich nie jedes Programm umsetzen können. Geändert haben sich die Datentypen (z.B.: Variant entfällt), die Exception-Behandlung (kein On Error ... mehr) und viele andere Details. Dazu gekommen sind jetzt Konstruktoren und Destruktoren, Namespaces und Inheritance sowohl auf Funktionsebene als auch für ganze Interfaces - die Ähnlichkeit zu Java ist verblüffend.
C#, und alle anderen Compiler die die CLR unterstützen, kompilieren nicht auf Maschinencode, sondern auf die sogenannte Intermediate Language (IL). Alle Sprachen werden also in die IL (Intermediate Language) übersetzt und erst beim Programmstart in echten Maschinencode übersetzt. Die IL ist eine logisch recht hoch stehende Sprache, die auch Namespaces und Klassen kennt. Zusätzlich zur IL wird noch Metadata generiert, die den Code beschreibt. Die IL und Metadata erlauben es der Runtime, den Code verschiedener Sprachen miteinander direkt kommunizieren zu lassen, als auch strikte Sicherheit (Security) und Typensicherheit (type safety) zu garantieren. Man kann somit ein Objekt in C# schreiben, von diesem in VB ableiten, und schließlich wieder in C# verwenden!
Ein weiteres Feature ist der Garbage Collector. Man deklariert und verwendet Variablen, und wenn das Programm sie nicht mehr braucht, wird der Speicher, den sie belegen automatisch freigegeben. Diese Freigabe erfolgt allerdings nicht immer sofort, sondern eine kleine Zeitspanne ist dazwischen - deshalb ist es wichtig, Ressourcen, die "teuer" sind (z.B. Datenbankverbindungen), explizit zu schließen. Der Ausdruck Intermediate Language wird bei einigen den schalen Nachgeschmack der Langsamkeit hinterlassen haben. Dem ist aber dank hervorragender JIT Compiler nicht so - der IL Code wird bei Erstausführung auf Native Code kompiliert. Ab diesem Zeitpunkt wird nur noch der Native Code ausgeführt. Der Geschwindigkeitsunterschied zu "normal" kompiliertem C++ sollte üblicherweise deutlich kleiner als 5 Prozent sein.
Und was ist mit der Angst davor, den Quellcode sozusagend auszuliefern? Microsoft liefert eine leicht zu knackende mit Passwort versehene Version. Die Lösung bei kritischen Algorithmen ist dann - ein Workaround ;-) - mit Visual C++ zu programmieren.
ASP gibt es bei .NET nicht mehr. Stattdessen gibt es ein neues Konzept namens ASP.NET. Man kann mit .NET-Sprachen WebForms entwickeln, die wesentlich performanter sind, weil sie kompiliert werden.
Webforms können serverseitige WebControls enthalten. Im Browser ist es ein reines Form-Element, aber auf dem Server wird Funktionalität hinzugefügt, wie z.B. dass Feldinhalte nach dem Submit erhalten bleiben. Es gibt auch ein DataGrid Control, das wie in VB funktioniert. Es wird automatisch mit Daten gefüllt und in der HTML-Seite wird es als Table abgebildet. HTML und Programmcode werden getrennt gespeichert, ein Prinzip, dass man CodeBehind nennt.
HTTP ist für sich selbst stateless, das heißt zwischen zwei Formularen können keine Daten ausgetauscht werden. Da es für viele Anwendungen - vor allem im Business-Bereich - häufig aber doch nötig ist, muss man hintenherum doch wieder Daten aufbewahren. Dies geschah bisher häufig mit Cookies, die unbeliebt sind, weil Daten auf dem Rechner des Benutzers gespeichert werden. Darum führt man Sessions ein. Sessions werden über eine Session-ID verwaltet, die im HTML-Code in einem Hidden Feld gespeichert ist. Es sind keine Cookies notwendig. Alle Statusinformationen können auf einem externen Server gespeichert werden und sind somit unabhängig vom Webserver verfügbar.
Mit dem http-Handler kann man dann auch das System anpassen, z.B. Dokumente von XML in HTML umwandeln.
An COM+ wird sich nichts ändern, es wird einfach in das .NET-Konzeptübernommen. COM+-Anwendungen müssen sich künftig von "ServicedComponent" ableiten. Das .NET-Remoting wird dann DCOM ersetzen. COM+-Anwendungen können als WebServices verwendet werden.
Microsoft .NET - Die Vision von Microsoft
Microsoft .NET versus Sun ONE @ tecChannel.de
--> Windows-Tipps