Разработка приложения winforms как для планшетного ПК, так и для WindowMobile

StackOverflow https://stackoverflow.com/questions/886562

Вопрос

Я разрабатываю приложение для планшетного ПК на базе Windows.Это приложение в значительной степени является портом приложения, которое я уже разработал на устройстве Windows Mobile с использованием .NET CF.Я хочу написать приложение с нуля, используя все знания, которые я приобрел в области разработки программного обеспечения.

Я также хотел бы написать это новое приложение таким образом, чтобы при желании я мог модифицировать свое существующее приложение Windows Mobile для использования новых библиотек.В идеале у меня будет общий набор бизнес-логики и библиотек доступа к данным, с единственным реальным отличием - уровнем пользовательского интерфейса - WPF для планшетной версии и просто стандартным интерфейсом CF для приложения Windows Mobile.

Принимая это во внимание, мне нужно будет убедиться, что все проекты, которые я создаю, совместимы с .NET Compact Framework.Есть ли простой способ обеспечить это?Одна из моих мыслей заключалась в том, чтобы использовать проект Smart Device для каждой библиотеки классов, которую я создаю.

Кроме того, легко ли мне ссылаться на эти библиотеки, написанные для приложения .NET CF, из стандартного приложения Windows?

Является ли разработка приложения для планшетного ПК такой же, как разработка любого обычного приложения Windows forms?Существует ли другая версия .NET Framework, которую следует учитывать, или планшеты в значительной степени являются стандартными ПК с Windows?

Это было полезно?

Решение

Специальной версии .NET Framework для планшетных ПК не существует.Был задан вопрос об обмене кодом между Windows Mobile и Windows до того , как и принятый ответ превосходен.

Другие советы

Планшеты, которые я видел, работают под управлением стандартной Windows с "полной" .NET, но я ожидаю, что вы сможете приобрести и несколько легких устройств.Одной интересной возможностью может быть "профиль клиента" (подмножество обычного "полного" .СЕТЕВЫЕ библиотеки DLL) - но я сам не видел от этого особого толку.

CF и обычный .NET имеют много общего, но в конечном счете есть различия;ни то, ни другое не является строгим подмножеством другого.Я обнаружил, что в общем случае единственный способ написать код для двух фреймворков - это поддерживать оба активными...для protobuf-net (у которого есть эта проблема) Я сохраняю файл проекта для каждой платформы, чтобы я мог быстро проверить, работает ли сборка везде (т.е.нет никаких недостающих методов и т.д.).

Возможно, вы обнаружите, что вам нужно использовать #if блоки для запуска немного отличающегося кода в двух фреймворках, особенно если вы хотите использовать "полный" .СЕТЕВЫЕ функции по соображениям производительности (которых нет в версии CF).Один из способов упростить это - взломать файлы proj, чтобы использовать рекурсивное включение файлов:

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

Теперь вам не нужно постоянно добавлять новые файлы в оба проекта - они будут подобраны автоматически (предостережение:в IDE вам может потребоваться выгрузить / перезагрузить проект).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top