Unter dem Titel "Die mobile Applikation ist tot, es lebe das mobile Web" fasst Andreas Göldi den aktuellen Stand der Dinge in diesem Bereich hervorragend zusammen.
Ich kann ihm da aus meiner Erfahrung in der Praxis nur zustimmen. Wir haben z.B. für einen Verlag eine Applikation auf Basis des .NET Compact Framework 2.0 und SQL Server Mobile entwickelt, die inzwischen immerhin in dreistelliger Auflage in ganz Europa verteilt ist.
Ganz praktische Probleme:
- Aufgrund der nicht immer schnellen Hardware und der "natürlichen Langsamkeit" einer Umgebung wie .NET gegenüber nativ implementierter Software sind viele Dinge gar nicht erst möglich - ich musste z.B. auf eine Volltextsuche über 100.000 Datensätze einfach verzichten weil man sonst hätte annehmen können, das Gerät stürzt gerade ab.
- Es gibt PDA-Hersteller die tatsächlich Windows-Mobile-Images verwenden, auf denen das CF nicht installierbar ist.
- Es gibt immer noch zig verschiedene Varianten von Windows-PDAs, die Erstellung eines fast immer funktionierenden Installers hat mich seinerzeit Wochen gekostet.
- Software auf Geräten die überwiegend offline sind lässt sich schlecht aktualisieren, vor allem dann nicht wenn man größere Datenbestände hat.
- Es ist nur relativ kompliziert und unter aktivier Mitwirkung des Benutzers möglich die Software auch mit einem effektiven Kopierschutz zu versehen. Wer so etwas benötigt: ein fertiges Konzept liegt in meiner Schublade, btw. ;-).
- Und last but not least: Microsoft deckt mit Windows Mobile einfach nur einen Bruchteil der am Markt verfügbaren Geräte ab - d.h. das Compact Framework kann hier niemals das Maß der Dinge sein, wenn man die breite Masse erreichen will oder muss.
Nicht nur, aber auch aus diesen Gründen liegt die Anwendung inzwischen im Sterben und wird in Zukunft durch Mobile Services ersetzt, was einfach mehr Vorteile bringt (bessere Performance, bessere Kontrollierbarkeit der Zugänge, zentrale Wartung, geringere Kosten).
Mich persönlich stört das übrigens nicht - ich entwickle lieber mit ASP.NET (Mobile) als mit oder für das Compact Framework - da ist vieles technologisch einfach noch nicht ansatzweise auf dem Stand, wie wir ihn bei ASP.NET oder WinForms/WPF heute im Browser und auf dem herkömmlichen Desktop erreicht haben.