Можно ли писать новые приложения для .NET? - PullRequest
8 голосов
/ 09 марта 2009

Я собираюсь запустить новое приложение для Windows. Это будет инструмент обработки звука, написанный на C ++. Для этого потребуются все обычные графические элементы, такие как меню, панели инструментов и т. Д. Он также будет иметь встроенный веб-браузер.

Я думаю о том, чтобы создать его на .NET, но я хотел бы услышать от всех вас, является ли .NET все еще трудной для развертывания. Какой процент постоянных пользователей уже имеет среду выполнения .NET? Я не хочу причинять боль своим пользователям, например, загружать 100 МБ для запуска только для запуска моего приложения.

Что вы думаете о переполнении стека? Должен ли я пойти. NET или я должен придерживаться обычного API Win32? Или, может быть, даже сторонней системы, такой как QT или wxWidgets?

Ответы [ 12 ]

22 голосов
/ 09 марта 2009

Вы можете указать своим пользователям загрузчик .Net . Это загрузка размером 100 КБ, которая определит, какие биты .Net Framework у них есть, и загрузит все, что отсутствует.

Существует также http://smallestdotnet.com/ инициатива @ shanselman

13 голосов
/ 09 марта 2009

Я не знаю точных цифр, но в Vista встроен .NET, и другие версии Windows могут довольно легко избавиться от Microsoft Update. Вы также можете распространять среду выполнения .NET вместе со своим приложением.

Я бы не стал слишком беспокоиться о том, установлены ли у ваших пользователей .NET.

11 голосов
/ 09 марта 2009

Microsoft настойчиво продвигает .NET Framework очень . Я считаю, что вы даже не можете установить Microsoft Office 2007, не установив .NET Framework на вашем компьютере. Так что, если Microsoft требует .NET для своих последних программ Office, вы, вероятно, можете с уверенностью предположить, что у ваших клиентов на базе Microsoft будут установлены необходимые библиотеки. Конечно, это будет сильно зависеть от типа приложения, которое вы создаете. Я также слышал о том, что некоторые разработчики видеоигр поставляют свои игры вместе с Mono-версией с открытым исходным кодом .NET. Верьте или нет, на самом деле существует очень сильная и стабильная сборка Mono для Microsoft Windows.

5 голосов
/ 09 марта 2009

Загрузка / установка .Net Framework не , что обременительно. Но я бы посоветовал взглянуть на ваш вопрос под другим углом.

Если бы вы знали, что у всех ваших пользователей была установлена ​​платформа Framework, вы бы выбрали C ++ или использовали бы .Net? Из-за ваших требований к графическому интерфейсу, я полагаю, вы используете .Net для всех тонкостей, которые он приносит на стол.

Другие перечисленные вами варианты могут быть приемлемы, но сложно превзойти .Net Framework по поддержке этих компонентов на стороне клиента.

Учитывая все обстоятельства, компромисс между одной загрузкой и лучшей поддержкой приложений, которую вы получаете, кажется хорошим.

2 голосов
/ 09 марта 2009

Мы внедряем несколько приложений для клиентов в разных отраслях, и в настоящее время .NET Framework 2.0 не является проблемой вообще. (И все равно загрузка всего 22 МБ.) Вы по-прежнему можете использовать Visual Studio 2008 и C #, но вам нужно выбрать .NET 2.0 в качестве целевой платформы, и вы должны использовать Windows Forms вместо WPF для GUI (который может быть в зависимости от вашего опыта,

.NET Framework 3.0 и 3.5 (и 3.5 с пакетом обновления 1 (SP1) и т. Д.), По-видимому, не распространены по крайней мере в корпоративных сетях; он значительно больше, имеет больше потенциальных ловушек во время установки и больше не поддерживает Windows 2000 и Windows 98 (что по-прежнему поддерживает .NET 2.0).

2 голосов
/ 09 марта 2009

.NET Framework 2.0 Runtime занимает всего 22 МБ, и это хороший фреймворк, особенно если вам не нужны WPF или WCF. Пользователям Vista будет установлено по крайней мере 3.0, поэтому им не нужно ничего делать, и многие другие приложения уже нацелены на 2.0, поэтому они уже установят его.

Кроме того, ваше приложение в .NET будет значительно меньше, чем то, что вы написали бы в C ++. Исполняемые файлы намного меньше в их собственном отношении, и результирующий MSI-файл, полученный при создании проекта установки в VS, меньше, чем все, что я видел.

2 голосов
/ 09 марта 2009

.NET похож на Java - вам нужно убедиться, что там есть соответствующая среда выполнения. Д / л не 100мб! ХА! Это 196 МБ. Но есть «профиль клиента», который уменьшает его до 26 МБ, так что я слышу.

Развертывание среды выполнения .NET является недостатком, но для меня производительность разработчика значительно выше в C # по сравнению с C ++. Я с радостью заставлю своих пользователей выдержать 45 секунд времени загрузки, чтобы повысить производительность на порядок. Но это только я. (ps: требуемая среда выполнения может быть автоматически загружена установщиком).

1 голос
/ 09 марта 2009

Для того, что я читал, Mono (реализация .NET для libre) поставляется с компоновщиком - вы можете скомпилировать ваше приложение, используя Mono, со ссылками на все необходимые компоненты.

Хорошая часть заключается в том, что вы получите автономный пакет: конечному пользователю не нужно устанавливать конкретную платформу .NET, если это еще не сделано. Недостатком является то, что в зависимости от того, сколько библиотек .NET вы используете, ваш исполняемый файл может в конечном итоге получить огромный , сводя на нет преимущества.

1 голос
/ 09 марта 2009

Какое приложение вы создаете? Это действительно важно. Если вы беспокоитесь о своих пользователях, то:

  • если вы контролируете своих пользователей, то проблем нет - вы управляете их компьютерами и можете убедиться, что .NET уже установлен
  • если вы говорите о внешних пользователях (для вашей организации), то я бы порекомендовал либо приложение ASP.NET, либо Silverlight

Решай сам. Я бы, вероятно, пошел с Silverlight, так как это наиболее близко к настольным приложениям (о которых я думаю, вы имеете в виду), и все же загрузка очень мала (я думаю, что-то вроде 2 МБ). Взгляните на http://silverlight.net.

0 голосов
/ 09 марта 2009

API ClickOnce также заслуживает внимания. Вы можете использовать его для распространения своего приложения через Интернет, а приложение может позвонить домой и автоматически получать обновления (при желании).

Я сейчас использую на своей работе, и это делает распространение и обновление настольного программного обеспечения быстрым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...