2009-05-20 14 views
2

Ich entwickle eine Anwendung für einen Windows-basierten Tablet PC. Diese Anwendung ist ein Port einer Anwendung, die ich bereits auf einem Windows Mobile-Gerät mit .NET CF entwickelt habe. Ich möchte die Anwendung von Grund auf neu schreiben und dabei das gesamte Wissen aus der Softwareentwicklung nutzen.Entwickeln einer Winforms-Anwendung für einen Tablet PC und WindowMobile

Ich möchte diese neue Anwendung auch so schreiben, dass ich meine vorhandene Windows Mobile App ändern kann, um die neuen Bibliotheken zu verwenden. Im Idealfall verfüge ich über eine gemeinsame Sammlung von Geschäftslogik- und Datenzugriffsbibliotheken. Der einzige Unterschied ist der UI-Layer - WPF für die Tablet-Version und nur eine Standard-CF-Schnittstelle für die Windows Mobile App.

In diesem Zusammenhang muss ich sicherstellen, dass alle von mir erstellten Projekte mit .NET Compact Framework kompatibel sind. Gibt es einen einfachen Weg, dies zu gewährleisten? Ein Gedanke, den ich hatte, war, für jede von mir erstellte Klassenbibliothek ein Smart Device Project zu verwenden.

Und ist es für mich leicht, diese Bibliotheken für eine .NET CF-Anwendung aus einer Standard-Windows-Anwendung zu verweisen?

Entwickelt eine Anwendung für einen Tablet PC die gleiche wie die Entwicklung einer normalen Windows Forms-Anwendung? Gibt es eine andere Version von .NET Framework zu berücksichtigen, oder sind Tablets so ziemlich Standard Windows PCs?

Antwort

4

Es gibt keine spezielle Version von .NET Framework für Tablet PC. Die Frage des Teilens von Code zwischen Windows Mobile und Windows wurde before gestellt und die angenommene Antwort ist ausgezeichnet.

+0

Gute Stelle; Ich habe das vergessen ... –

+0

Sorry, ich muss lernen, gründlicher zu suchen, danke für den Link! –

1

Die Tablets, die ich gesehen habe, laufen Standard-Windows mit der "vollen" .NET, aber ich nehme an, dass Sie auch einige leichte Geräte bekommen können. Eine interessante Möglichkeit könnte das "Client-Profil" (eine Teilmenge der regulären "vollen" .NET-DLLs) sein - aber ich habe selbst nicht viel davon gesehen.

CF und reguläre .NET teilen viele Dinge, aber letztlich gibt es Unterschiede; Weder ist eine strikte Teilmenge der anderen. Ich habe festgestellt, dass im Allgemeinen die einzige Möglichkeit, Code für 2 Frameworks zu schreiben, beide aktiv ist ... für Protobuf-Net (die dieses Problem hat) Ich habe eine Projektdatei für jedes Framework, so dass ich das schnell testen kann Build funktioniert überall (dh es gibt keine fehlenden Methoden etc).

Möglicherweise müssen Sie #if Blöcke verwenden, um etwas anderen Code auf den beiden Frameworks auszuführen, insbesondere wenn Sie "volle" .NET-Funktionen aus Leistungsgründen verwenden möchten (die in der CF-Version nicht vorhanden sind). Ein Weg, um dies zu erleichtern es die proj Dateien zu hacken rekursive Datei Aufnahme zu verwenden:

<Compile Include="**\*.cs" /> 

Jetzt müssen Sie nicht halten das Hinzufügen neuer Dateien in beiden Projekten - es wird automatisch abgeholt (Einschränkung: in der IDE müssen Sie möglicherweise das Projekt entladen/neu laden).