2012-04-21 4 views
3

Я создаю простое приложение для метро. Я также создаю не-метровую версию того же приложения.Многоцелевая платформа для метро и не метро в Windows 8

Проблема, с которой я сталкиваюсь, заключается в том, что VS не позволяет мне ссылаться на обычные библиотеки классов в приложение метро и библиотеки классов метро в обычное приложение.

Различия между приложениями Metro и non-metro связаны с пользовательским интерфейсом и некоторыми несовместимыми функциями (например, FilePicker в метро и OpenFileDialog в не метро).

Как этого достичь?

+3

Исчерпайте это от своего списка вариантов. WinRT отличается. –

ответ

6

Различия более резкие, чем вы могли ожидать. Они используют WinRT как шанс очистить дом и удалить API, которые они больше не хотят поддерживать по различным причинам. Исследование «портативной библиотеки классов», которая позволит вам создать dll на основе небольшого пересечения API-интерфейсов, доступных на платформах, на которые вы указываете VS.

+0

Спасибо за информацию. Я буду смотреть на портативную библиотеку классов. Вы и Ганс абсолютно правы. Различия настолько радикальны, что не рекомендуется поддерживать общую часть между приложением метро и не метрополитена. Я проверил бы портативную библиотеку классов и решил, как действовать в моем случае. – Tilak

0

По сути, WinRT полностью отделен от библиотек Win32, как упоминал Роберт Леви.

Фактически, когда Windows 8 используется на устройствах ARM, библиотеки Win32 практически не существуют. Internet Explorer 10 имеет ограниченный доступ к ним (интернет-браузер, работающий только от WinRT, непрактичен), но у всех других приложений метро нет.

Приложения Metro на x86 и x64 также не имеют доступа к Win32, так как предполагается, что одно и то же приложение должно быть совместимо с ARM. Чтобы уменьшить сложность, Microsoft по существу заявила, что все приложения для метро имеют доступ только к WinRT. Internet Explorer является исключением из этого правила.

Что я пытаюсь сказать так: вам придется разрабатывать оба приложения отдельно. Приложения, ориентированные на настольные системы, полностью находятся на рабочем столе. И приложения метро находятся только в интерфейсе метро.

0

Metro UI не проблема: посмотрите «Under the Hood», и вы обнаружите, что пространства имен и библиотеки и НЕ то же самое => METRO в НЕ другом слое над приложениями Windows 7. Если вы действительно хотите настроить таргетинг на 2 среды, создайте единую библиотеку классов со всеми вашими бизнес-объектами, всеми вашими базами данных и напишите два разных приложения, которые вызывают эту библиотеку.