Если вы хотите, чтобы NavigationStack был доступен, вы можете нажать & amp; всплывающие страницы, вам нужно использовать NavigationPage. У вас есть несколько разумных вариантов:
Переназначать Application.Current.MainPage всякий раз, когда вы хотите перейти на страницу. Это не создаст стек страниц, но покажет новое содержимое при переназначении без анимации. Поэтому вместо того, чтобы думать о модальности входа в систему, а затем отключать ее, просто установите текущую страницу на страницу входа в систему, а затем при входе в систему установите для текущей страницы контент, который вы хотите, чтобы пользователь видел.
Используйте NavigationPage в качестве Application.Current.MainPage, но затем вызовите SetHasNavigationBar (page, false), чтобы избежать дополнительных элементов, поставляемых с NavigationPage. Вам может понадобиться вызвать NavigationPage.SetHasBackButton (page, false); за каждую страницу, которую вы нажимаете в стеке, чтобы избежать кнопки «назад».
Можно указать пользователей на .NET bootstrapper, Это - загрузка 100 КБ, которая обнаружит, какие биты платформы .NET они в настоящее время имеют и загрузят что-либо пропавшие без вести.
Существует также http://smallestdotnet.com/ инициатива со стороны @shanselman
Я не знаю точные числа, но Vista встроили.NET, и другие версии Windows могут получить ее от Microsoft Update довольно легко. Можно также перераспределить время выполнения.NET с приложением.
Я не волновался бы слишком много о том, установили ли Вашим пользователям.NET.
Microsoft продвигает платформу.NET очень сильно. Я полагаю, что Вы не можете даже установить Microsoft Office 2007, не устанавливая платформу.NET на Вашем компьютере. Таким образом, если Microsoft требует.NET для их последних программ Office, Вы, вероятно, в безопасности в предположении, что у Ваших основанных на Microsoft клиентов будут необходимые как условие библиотеки основы.NET установленными. Из курсов это будет зависеть значительно от того, какое приложение Вы создаете. Я также услышал о некоторых разработчиках видеоигры, поставляющих их игровой пакет с Моно версией с открытым исходным кодом.NET. Хотите верьте, хотите нет, существует на самом деле очень сильная и стабильная сборка Моно для Microsoft Windows.
Загрузка/установка.Net Framework не состоит в том что тягостна. Но я предложил бы смотреть на Вашу проблему от другого угла.
Если Вы знали, что все Ваши пользователи, Платформа установила, Вы выбрали бы C++, или Вы использовали бы .NET? Из-за Ваших требований GUI я предположил бы, что Вы используете .NET для всех тонкостей, которые он приносит к таблице.
Другие опции, которые Вы перечислили, могут быть приемлемыми, но трудно обыграть.Net Framework на своей поддержке тех клиентских компонентов.
Учитывая все обстоятельства, компромисс единственной загрузки по сравнению с лучшей поддержкой приложений, которую Вы получите, походит на хорошую.
.NET похожа на Java - необходимо обеспечить, чтобы соответствующее время выполнения было там. d/l не составляет 100 МБ! HA! Это - 196 МБ. Но существует "клиентский профиль", который уменьшает его до 26 МБ, таким образом, я слышу.
Развертывание времени выполнения.NET является оборотной стороной, но для меня, производительность разработчика очень улучшена в C# по C++. Я с удовольствием заставлю своих пользователей вынести 45 секунд времени загрузки для получения порядка величины лучшая производительность. Но это - просто я. (PS: необходимое время выполнения может быть автоматически загружено установщиком).
Платформа.NET 2.0 Времени выполнения составляют только 22 МБ, и это - хорошая платформа для предназначения, особенно если Вам не нужны WPF или WCF. У пользователей Vista будут по крайней мере 3,0 установленными, таким образом, они ничего не должны будут делать, и много других приложений уже предназначается 2.0, таким образом, им уже установят его.
Кроме того, Ваше приложение в.NET будет значительно малым, чем, что Вы записали бы в C++. Исполняемые файлы намного меньше в своем собственном отношении, и получающийся файл MSI от разрабатывания проекта Установки в VS меньше, чем что-либо еще, что я видел произведенный.
Какое приложение Вы создаете? Это действительно важно. Если Вы волнуетесь по поводу своих пользователей затем:
Решите для себя. Я, вероятно, пошел бы с Silverlight, так как это является самым близким к Настольным приложениям (который я думаю, что Вы обращаетесь к), и тем не менее загрузка является очень маленькой (я предполагаю что-то как 2 МБ). Смотрите на http://silverlight.net.
Мы развертываем несколько приложений на клиентах в различных отраслях промышленности, и в настоящее время Платформа.NET 2.0 не является проблемой вообще. (И это - просто загрузка на 22 МБ так или иначе.) Можно все еще использовать Visual Studio 2008 и C#, но необходимо выбрать.NET 2.0 в качестве целевой платформы, и необходимо использовать Windows Forms вместо WPF для GUI (который мог бы быть в зависимости от событий,
Платформа.NET 3.0 и 3.5 (и 3,5 SP1 и т.д.), кажется, не господствующая тенденция, по крайней мере, в корпоративных сетях; это значительно больше, имеет более потенциальные ловушки во время установки и больше не поддерживает Windows 2000 и Windows 98 (который.NET 2.0 все еще делает).
.NET сделает Вашу жизнь легче по сравнению с собственным C++ и окнами API или даже QT. Но если GUI не сложен, лучше использовать QT, поскольку размер платформы .NET является относительно большим
Поскольку, что я считал Моно (реализация программного обеспечения Весов.NET) поставки с компоновщиком - Вы могли скомпилировать свое приложение, использующее Моно, связав со всем этим необходимые компоненты.
Хорошая часть, Вы получили бы автономный пакет: никакая потребность в конечном пользователе для установки определенной платформы.NET, если они уже не имеют. Оборотная сторона: в зависимости от того, сколько библиотек.NET Вы используете, Ваш исполняемый файл может закончить тем, что был огромен, инвертировав преимущества.
Не совет относительно .NET, но если бы Вы решаете, по некоторым причинам или другой, для не использования .NET, я настоятельно рекомендовал бы QT использования по Win32 API. Я нахожу API Win32 действительно грязным и намного более твердым использовать, чем QT, который, по-моему, действительно хорош.
ClickOnce API является также чем-то стоящим изучить. Можно использовать его для распределения приложения по Интернету, и приложение может звонить домой для получения обновлений автоматически (при желании).
Я использую в своем задании теперь, и оно делает распределение и обновление программного обеспечения, установленного на компьютере бриз.