Die Community zu .NET und Classic VB.
Menü

Das .NET Compact Framework

 von 

Inhalt  

In dieser Ausgabe der Kolumne wollen wir uns mit einer speziellen Version des .NET Frameworks auseinandersetzen. Das Compact Framework, kurz CF, ist eine in ihrem Umfang eingeschränkte Version des .NET Frameworks, das man zum Ausführen von Anwendungen, die auf der .NET-Technologie aufbauen, benötigt. Vergleichbar ist diese Technologie ungefähr mit den entsprechenden Versionen des Java Runtime Environments (JRE), das von Sun Microsystems entwickelt wird.

Zum Zeitpunkt des Verfassens dieses Artikels war das CF noch nicht in der fertigen Version erhältlich. Leider konnte ich es auch nicht testen, da ich erst nach Ablauf der Betaphase erfahren habe, dass ein solches Framework entwickelt wird, weshalb es in diesem Artikel auch keine Beispiele gibt. Dies ist aber nicht weiter schlimm, ist doch das CF der kleine Bruder des normalen Frameworks.

Das Ziel dieses Artikels ist es, auf Ressourcen zu diesem ohne Zweifel interessanten und für die weitere Entwicklung mobiler Geräte zentralen Frameworks hinzuweisen. Im Speziellen werden wir einige verfügbare Websites mit Informationen zum Thema vorstellen und die Quellen angeben, aus denen Sie bereits jetzt die nötigen Informationen finden, um nach Erscheinen der endgültigen Version schnell in die Entwicklung von Anwendungen für das CF einsteigen zu können.

Im Folgenden ist zwischen der Laufzeitumgebung, dem Compact Framework, und dem dazu gehörenden Entwicklungswerkzeug, den Smart Device Extensions, zu unterscheiden.

Einleitung  

Was ist das .NET Framework?

Das .NET Framework stellt die Laufzeitumgebung bzw. Laufzeitdateien für alle .NET-Programmiersprachen zur Verfügung. Es beseht aus zahlreichen Klassen, die in sogenannte Namespaces gegliedert sind und ist mit der JVM (Java Virtual Machine) von Sun Microsystems zu vergleichen.

Das .NET Framework ist eine Laufzeitumgebung mit Unterstützung für verschiedene Programmiersprachen und nicht "Microsofts Java", wie viele meinen. Es erweitert eine Menge Funktionen von anderen, bereits vorhandenen, Architekturen und viele der Erweiterungen sind eher evolutionär als revolutionär. Die folgende Grafik zeigt einen groben Aufbau des .NET Framework und die Teile, aus denen es besteht. Man sieht hier auch, dass die CLR (Common Language Runtime) nur ein Teil des Frameworks ist, dieses besteht nämlich aus den Klassenbibliotheken und der CLR, die für das Ausführen der Anwendungen zuständig ist.


Abbildung 1: Übersicht über das .NET Framework

Für den in Java bewanderten Programmierer lassen sich hier grosse Ähnlichkeiten zum Klassenframework, wie es in Java schon seit einigen Jahren verwendet wird, erkennen. Die grosse Anzahl an Klassen und deren Methoden wird im Framework in Namensräume, sogenannte Namespaces, strukturiert. Um Funktionen aus Namespaces nutzen zu können, muss eine Referenz auf die Bibliothek, in der sie implementiert werden, gesetzt und die entsprechenden Namespaces importiert werden.

Zweifelten anfangs viele Entwickler, dass zukünftig .NET-Anwendungen auch auf anderen Plattformen bzw. Betriebssystemen ausser Windows ausgeführt werden können, nehmen die Versionen für diese Systeme inzwischen bereits Gestalt an. War das .NET Framework zuerst nur für Microsoft Windows verfügbar (die Entwicklung und Weiterentwicklung wird von Microsoft durchgeführt), so gibt es inzwischen durchaus ernstzunehmende Alternativen für Linux, sodass selbst die Unix-Programmierer für .NET programmieren können. Ximian, http://www.go-mono.com/, führt beispielsweise eine Portierung des Frameworks und C# auf Linux durch.

Ein Grossteil der Funktionalität des .NET Frameworks ist bei der ECMA (European Computer Manufacturers' Association) standardisiert, sodass man darauf vertrauen kann, dass das die Architektur nicht mehr stark verändert werden wird. Natürlich sind da und dort Nachbesserungen von Nöten, allerdings halten sich diese in einem sehr engen Rahmen. Microsoft hat für edukative Zwecke sogar den Quellcode einer Implementierung der CLI (Common Language Infrastrukture), die dem standardisierten Teil des Frameworks entspricht, unter dem Namen Shared Source CLI veröffentlicht. Die derzeitige Version funktioniert bereits unter Windows, FreeBSD und Mac OS 10.2. Man kann sich den Quellcode kostenlos in einem ca. 15 MB grossen Archiv von der Microsoft-Homepage herunterladen und dann auf dem eigenen Rechner kompilieren, jedoch darf man nicht vergessen, ca. 1 GB an Speicherplatz freizuhalten, der beim Kompilierungsvorgang belegt wird. Genauere Informationen zur Shared Source CLI sind unter Shared Source CLI auf der MSDN-Homepage nachzulesen. Dort kann man sich auch den Quellcode der Shared Source CLI herunterladen.

Mit diesem Grundwissen wollen wir es allerdings belassen und nun zum Unterschied zwischen dem "normalen" Framework und dem CF vordringen. Ein Teil der Informationen stammt aus einer Präsentation von Michael Jurek, der bei Microsoft in Tschechien arbeiten.

Das .NET Compact Framework

In den letzten Jahren wurden zunehmend mobile Geräte auf den Markt gebracht, die bereits mehr als nur reine Mobiltelefon waren. Dazu gehören PDAs, also kleine Helferlein, die beispielsweise Termin- und Adressverwaltungen beinhalten und zusätzlich noch eventuell mit einem Mobiltelefon kombiniert waren, Handhelds und Pocket-PCs. Obwohl die Technik dieser Geräte mittlerweile sehr ausgereift war, ging die Verbreitung doch langsamer voran, als es sich die Wirtschaft gewünscht hatte.

Als vor mittlerweile ungefährt 2 Jahren Microsoft .NET veröffentlichte waren daran einige Visionen gebunden, wie die mobile Kommunikation positiv beeinflusst werden könnte. Ein Teil dieser Ideen trug den Namen .NET. Damals konnte sich ein grosser Teil der Entwicklergemeinde nicht einmal noch konkrete Vorstellungen machen, wie .NET von den Programmierern und der Wirtschaft aufgenommen werden würde, jedoch war das Klima sehr positiv und man war zuversichtlich, dass mit .NET zumindest ein Teil der Visionen Microsofts Realität werden würde.

Die Hauptursache für die lahme Verbreitung mobiler Kleincomputer war wohl der Mangel an billiger Software und einer einfach zu programmierenden Umgebung. Microsoft hatte zwar auf dem Bereich der Kleincomputer mit Microsoft Windows CE bereits Geschichte geschrieben, jedoch waren die Hardwareanforderungen doch hoch und die Möglichkeiten, die einem mit einem solchen Gerät eröffnet wurden, eher beschränkt. Dazu kommt noch der etwas überhöhte Preis, liegen doch die Preise für bessere Geräte bei der Hälfte eines wesentlich leistungsstärkeren Notebooks.

Vor einiger Zeit machte dann Sun Microsystems den grossen Durchbruch, indem Java-fähige Mobiltelefone auf den Markt gebracht wurden. Damit war eine Barriere durchbrochen: Endlich war es möglich, auch für Mobiltelefone mit verhältnismässig beschränkter Leistungsfähigkeit, spezielle Java-Anwendungen zu entwickeln und auf diesen Geräten auszuführen. Die entsprechende Software dazu trägt den Namen Java 2 Platform, Micro Edition (J2ME) und erlaubt es sogar, Programme für Smartcards und Pager zu schreiben.

Das .NET Compact Framework erweitert das .NET Framework um zwei Komponenten:

  • .NET Windows CE-Anwendungen
  • .NET Mobiltelefon-Anwendungen

Im Grossen und Ganzen handelt es sich beim CF um eine in seinem Umfang und damit auch seiner Funktion eingeschränkten Version des vollen .NET Frameworks, das zum Ausführen von Desktop-Anwendungen benutzt wird.

Der Aufbau des Compact Frameworks  

Das .NET Framework für Desktop-Anwendungen

Das .NET Framework für Desktop-Anwendungen ist bereits längere Zeit kostenlos als Download oder als CD erhältlich. Momentan existiert eine Version für alle gängigen Windows-Versionen, jedoch nicht für Windows 95. Ein Teil der Funktioen, die das Framework bereitstellt, sind ausserdem erst ab Windows 2000 nutzbar, so kann man beispielsweise unter Windows Me noch keine e-Mails mit den entsprechenden Framework-Klassen aus einer .NET-Anwendung versenden. Diese Version des .NET Frameworks hat unter allen zur Zeit erhältlichen Versionen den grössten Funktionsumfang.

Die folgende Abbildung gibt einen detaillierten Überblick über die Namespaces im .NET Framework und die Bereiche, in die es sich gliedert. In den folgenden Abschnitten werden wir dann vergleichen, welche Bereiche davon im CF nicht enthalten sind. Bei der Entwicklung einfacher Anwendungen kann es durchaus sinnvoll sein, direkt für das CF zu entwickeln, da solche Anwendungen auch kompatibel zu den umfangreicheren Framework-Versionen sind. Natürlich muss man in der Praxis immer das passende Framework einsetzen.


Abbildung 2: Übersicht das .NET Framework für Desktop-Anwendungen

Mittlerweile ist die Beta-Version des Frameworks 1.1 verfügbar, das mit einem um einige Klassen erweiterte und in kleinen Details veränderten Klassenframework ankommt, verfügbar. Im Folgenden werden einige Links zu Informationen über das .NET Framework sowie Bezugsquellen für Updates angegeben:

Das .NET Compact Framework für Pocket-PCs

Das CF für Pocket-PCs ist primär für den Einsatz auf Kleincomputern gedacht und erlaubt es, .NET-Anwendungen auf Windows CE (.NET) auszuführen. Wegen der limitierten Kapazitäten der Hardware wurde versucht, einen sinnvollen Kompromiss zwischen Speicherbedarf und Nutzen für ein solches Gerät zu erzielen. Das Ergebnis ist in der nachstehenden Abbildung zu sehen. Die weiterhin verfügbaren Bereiche sind dabei farblich hervorgehoben dargestellt. Wie man der Grafik entnehmen kann, ist keine Unterstützung für die Arbeit mit Bildern und das Drucken vorgesehen, ebenso fehlt der gesamte Bereich System.Web, der z.B. zum Senden von e-Mails und den Zugriff auf das Internet erforderlich ist. Dies ist auch genau jener Bereich, der beim Desktop-Framework zu einem grossen Teil erst ab Windows 2000 unterstützt wird.

Natürlich ist es auch auf Pocket-PCs nicht vorgesehen, Datenbanksystemen laufen zu haben. Aus diesem Grund wurde auch der Datenbankteil des .NET Frameworks auf ein Minimum reduziert: Die ADO-Klassen bleiben erhalten und ermöglichen beispielsweise in Verbindung mit der Funktionalität aus dem Namespace System.Data.SqlCe einen Zugriff auf Datenbanken, die auf dem Microsoft SQL Server for Windows CE laufen.


Abbildung 3: Übersicht das .NET Compact Framework Pocket-PCs

Die Einschränkungen wirken sich auch bei der Palette an verfügbaren Steuerelementen für Anwendungen mit Fenstern aus. Das RichTextBox-Steuerelement, das zum Darstellen von formatiertem Text verwendet werden kann, Dialogklassen, die in Verbindung mit dem Ausdrucken von Daten benutzt werden, wie z.B. der Druckvorschaudialog, und die Möglichkeiten, Interop zu betreiben, fallen beim CF für Pocket-PCs weg.

Das .NET Compact Framework für Mobiltelefone

Wie der Abbildung entnommen werden kann, ist der Funktionsumfang des CF für Mobiltelefone noch etwas mehr eingeschränkt, als bei der Version für Pocket-PCs, beispielsweise fällt der gesamte Design-Bereich der Windows Forms weg. Auch die Steuerelementpalette ist hier wesentlich kleiner, so gibt es aus verständlichen Gründen keinerlei Dialoge, kein ListView-Steuerelement, kein TreeView-Steuerelement etc., sondern nur die einfachen Steuerelemente wie TextBox, ListBox etc.


Abbildung 4: Übersicht das .NET Compact Framework für Mobiltelefone

Im Folgenden werden einige Links zu Informationen über das .NET Framework angegeben.

Die Smart Device Extensions  

In den vorigen Abschnitten haben wir den Aufbau des .NET Frameworks und des .NET Compact Frameworks näher betrachtet. Jetzt wollen wir darauf eingehen, mit welchen Werkzeugen man Anwendungen für das CF entwickeln kann. Microsoft stellt zu diesem Zweck die Smart Device Extensions (SDE) für das Visual Studio zur Verfügung. In Visual Studio .NET 2002 waren diese Erweiterungen noch nicht enthalten, allerdings gab es bis April 2002 eine Beta-Version zum Herunterladen. Mittlerweile sind die SDE in der Final Beta von Visual Studio .NET 2003 erhältlich, wenn man eine MSDN-Subskription besitzt. Detaillierte Informationen dazu, wie man diese Beta-Version bekommen kann, sind unter dem URI http://msdn.microsoft.com/vstudio/device/sdebeta.asp bzw. allgemein unter http://msdn.microsoft.com/vstudio/device/ zu finden.

Musste man sich die Beta-Version der SDE noch zusätzlich zu Visual Studio .NET installieren, werdem diese in zukünftigen Versionen von Visual Studio standardmässig enthalten sein. Nach der Installation sind einige zusätzliche Projekttypen (Vorlagen) verfügbar, sodass man schnell mit der Entwicklung von Anwendungen für das Compact Framework beginnen kann. Im Unterschied zur Entwicklung herkömmlicher Desktop-Anwendungen für Microsoft Windows mit Visual Studio .NET existieren für CF-Anwendungen eigene Steuerelemente. Die folgende Abbildung zeigt die Steuerelemente und die Plattformen, auf denen sie verfügbar sind.


Abbildung 5: Übersicht über die Steuerelemente in .NET

Es ist also nicht möglich, jede beliebige .NET-Anwendung, die mit dem Framework für Desktop-Anwendungen lauffähig ist, auch auf einem Mobiltelefon auszuführen.

Wie auch bei der Entwicklung von Anwendungen für .NET im Allgemeinen sind die SDE nach aktuellem Informationsstand aber nicht zwingend erforderlich, um Anwendungen für das CF schreiben zu können. Stattdessen können die Codedateien auch mit jedem einfachen Texteditor erstellt und anschliessend von der Befehlszeile kompiliert werden.

Everett - Visual Studio .NET 2003

Everett ist die neue Version von Visual Studio. Viele Entwickler waren überrascht darüber, dass es kaum ein Jahr nach Erscheinen von Visual Studio 2002 bereits wieder eine neue Version der Entwicklungsumgebung gibt. Allerdings begründet sich die neue Version darin, dass Visual Studio .NET 2002 die erste Visual Studio-Version war, mit der man Anwendungen für .NET entwickeln konnte. Natürlich schleichen sich in eine erste Version Fehler ein, die man erst findet, wenn die Anwendung den hohen Anforderungen der Praxis Genüge tragen muss.

Aktuellen Informationen zufolge soll für registrierte Besitzer einer Lizenz für Visual Studio .NET 2002 ein Update um ca. 29 Euro in einem beschränkten Zeitraum um das Veröffentlichungsdatum erhältlich sein.

Neben einem verbesserten User Interface sind in Visual Studio .NET 2003, auch Everett genannt, die SDE eingeschlossen. Genauere Informationen zu Everett sind auf http://msdn.microsoft.com/vstudio/productinfo/vstudio03/ zu finden.

Zusammenfassung  

Mit dem .NET Compact Framework hat Microsoft die Basis für das Ausführen anspruchsvoller Anwendungen auf verschiedensten Geräten geschaffen. Neben Anwendungen für den klassischen Personal Computer besteht mit dem CF auch die Möglichkeit, Windows-Anwendungen mit grafischer Benutzeroberfläche auf Pocket-PCs und sogar Mobiltelefonen auszuführen. Dadurch eröffnen sich nicht nur vollkommen neue Dimensionen für mögliche Anwendungsgebiete, sondern es wird sichergestellt, dass .NET-Entwickler auch in Zukunft an der Spitze der Entwicklergemeinde stehen werden.

Man kann zuversichtlich und gespannt einer Zeit entgegen sehen, in der das klassische Schema des Desktop-PCs um den Zusatz der Mobilität erweitert wird, ohne an Zuverlässigkeit und Funktionsfähigkeit zu verlieren. Natürlich kann diese Entwicklung nicht nur Microsoft zugeschrieben werden, sondern auch Sun Microsystems trägt mit seinen Bemühungen, eine Umgebung für Mini-Computer zu entwickeln, seinen Teil dazu bei, dass in Zukunft der Computer einen wesentlich höheren Stellenwert besitzen wird, als wir es uns derzeit vorstellen können.

Weiterführende Informationen  

Dieser Bericht entstand zu einem Zeitpunkt, als die finale Version noch nicht erhältlich war. Aus diesem Grund sind die hier gebrachten Informationen nicht verbindlich und müssen nicht den Tatsachen entsprechen. Im Artikel wurden grosszügig Links zu Seiten im Internet mit weiterführenden und aktuelleren Informationen und Ressourcen eingebunden, die auf jeden Fall einen Besuch wert sind. Sollten neue Informationen bekanntgegeben werden oder wir in den Besitz einer Lizenz für die Software kommen, dann werden wir natürlich weitere Artikel zu diesem Thema veröffentlichen.

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 5 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von Timo am 19.09.2006 um 23:21

Habe echt ein Chaos mit Windows Embedded, Windows CE, Windows Mobile, Visual Studio, VB.Net, VB2005, und dann noch andere Anwendersoftware. Ich freue mich, diesen Artikel morgen auszudrucken und durchzulesen. Scheint das zu sein, was ich bei MS nach Stunden nicht gefunden habe.

Danke

Timo

Kommentar von Jürgen Landgraf am 09.05.2004 um 20:47

Hallo Leute,
ich konnte in den letzten Monaten beruflich Erfahrungen in der Entwicklung von datenbankversierten Internetanwendungen unter Nutzung von VisualStudio.NET (.NET Framework, ADO.NET, VB.NET) und SQL-Server/Access sammeln.
Jetzt möchte ich freiberuflich derartige Produkte für Privatkunden und kleinere Unternehmen auf ASP.NET-Plattform entwickeln und verkaufen.
Wer kann mir sagen, ob ich für die Verwendung von .NET Framework Lizenzen erwerben muss und welche Kosten dabei für mich bzw. für potentielle Kunden (Käufer der fertigen Lösungen) entstehen.
Vielen Dank.
Jürgen

Kommentar von Hans-Peter Schäfer am 20.06.2003 um 10:49

Sehr guter Artikel.

Kommentar von Herfried K. Wagner [AVB] am 13.03.2003 um 01:41

Ich habe leider VS .NET 2003 nicht, daher kann ich nichts dazu sagen.

Kommentar von Norbert Majohr am 12.03.2003 um 13:12

Entgegen der Darstellung im MS-Artikel "Smart Device Applications: Getting Started on Smart Device Programming with Visual Studio .NET 2003" können keine farbigen Buttons erzeugt werden (Wichtig für ein effektives Layout!). Haben Sie dazu andere Informationen?