Вопрос

Можно ли при разработке настольного приложения на .NET не требовать .NET Framework?Является ли разработка программного обеспечения на .NET предпочтительным способом разработки настольных приложений?Какой язык программирования наиболее часто используется компаниями-разработчиками программного обеспечения для разработки настольных приложений?

Предполагается ли, что требования .NET Framework основаны на установленной вами ОС Windows, поэтому они перечисляют требования к версии ОС Windows?

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

Решение

Вы по-прежнему можете разрабатывать приложения для рабочего стола Windows с использованием C/C++, устраняя необходимость в платформе .NET, но вам необходимо убедиться, что необходимые библиотеки уже есть в системе или установлены.

В .NET Framework приятно то, что в Windows XP SP2 и Vista по умолчанию установлена ​​среда выполнения 3.0.

Во многих отношениях это «стандарт разработки» Microsoft, и так было уже некоторое время.Это позволяет вам не беспокоиться о том, что к вашему приложению будет добавлено множество библиотек.Если вы используете все библиотеки, предоставляемые .NET, вам придется беспокоиться только о развертывании исполняемого файла, а это избавляет от головной боли.Когда у вас есть куча библиотек, которые вам также необходимо развернуть, вы начинаете сталкиваться с проблемами при написании обновлений, потому что вам нужно убедиться, что эти обновления добавлены в ваш существующий установщик и во все существующие установленные приложения. .

Что касается «предпочтительного», то это всегда вызывает раздражение, но на сайтах поиска работы, которые я обычно посещаю, появляется все больше и больше разработчиков .NET для Интернета и настольных компьютеров.8^Д

РЕДАКТИРОВАТЬ:Большое спасибо Ориону за то, что указал на мою путаницу по поводу фреймворков.Вы получаете 3,0-дюймовую версию, если используете XP SP2 или Vista.Для всего остального потребуется простая загрузка или запуск Центра обновления Windows.

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

Вы не можете запустить приложение .Net без платформы .Net.Фреймворк берет на себя некоторые из наиболее утомительных фоновых задач, поэтому вы не сможете запустить приложение без фреймворка.

На платформе Windows использование .NET является предпочтительным способом разработки настольных приложений.Модель .NET WinForms — это один из способов разработки традиционных или толстых клиентских приложений, а Windows Presentation Foundation .NET — новейшее технологическое направление от MS.

Я предполагаю, что я пытаюсь сказать, что, когда я смотрю на системные требования для определенного программного обеспечения, я редко когда-либо рассматриваю .NET Framework как требование.Поэтому мне всегда интересно, как они обходятся без этого требования (если они разработали программное обеспечение на .NET).Итак, я просто предполагаю, что большая часть коммерческого программного обеспечения написана не на .NET, поэтому я задаю этот вопрос.Надеюсь, это прояснило некоторые вещи.

Мононуклеоз Имеет версию для Windows, если вам абсолютно необходимо избегать зависимости от .NET.

Однако как бы вы на это ни смотрели, вам понадобится .NET-совместимая среда выполнения на любом компьютере, на котором работает ваше приложение.Поэтому, если вы хотите полностью отказаться от .NET, вам, вероятно, придется распространять среду выполнения Mono вместе с вашим приложением.

Оптимальная практика распространения приложений .NET заключается в том, что установщик каким-то образом загружается с помощью распространяемого установщика .NET для требуемой платформы, так что, если требуемая платформа еще не установлена ​​(скажем, вам нужна версия 3.5 в Windows XP), тогда установщик будет просто вставь это.

Среда выполнения .NET достаточно мала для установки, поэтому это возможно (около 24 МБ для .NET 2.0, не проверял, насколько велика .NET 3.5).

Я предполагаю, что я пытаюсь сказать, что когда я рассматриваю системные требования к определенному программному обеспечению, я редко рассматриваю структуру .NET как требование.Итак, я всегда задаюсь вопросом, как они добираются до того, как это не требовалось (если они разработали программное обеспечение в .NET).Итак, я просто предполагаю, что большинство коммерческого программного обеспечения не написано в .net, поэтому я задаю этот вопрос.Надеюсь, это прояснило некоторые вещи.

У меня нет никаких цифр, но я предполагаю, что, поскольку большинство людей используют XP и Vista на своих настольных компьютерах, перечисление .NET framework является спорным, особенно если они нацелены на платформу 2.0 в само приложение.Сколько приложений вы когда-либо видели, в которых говорилось, что «требуется vbrun50.dll» или что-то в этом роде, поскольку оно было включено в установку Windows по умолчанию?

Плюс это немного менее «страшно» для тех, кто не очень разбирается в компьютерах.Все, что им нужно, это загрузить, установить и запустить приложение.Несколько приложений, которые у меня есть, требуют фреймворка 2.0, и некоторые люди спрашивают, что это такое, как мне его получить и стоит ли мне это чего-нибудь?Типичный ответ, который я им даю: «Если вы используете XP или Vista, не о чем беспокоиться», и им это, кажется, нравится.

Я думаю, что если бы вы могли сделать что-то вроде статического связывания платформы .NET, чтобы вам не приходилось ее разрабатывать, вы бы нарушили лицензионное соглашение, которое предоставляет Microsoft!

Это цена, которую нам приходится платить за такой богатый опыт разработки!Оно того стоит, если принять во внимание сложность возврата к программированию MFC!

Remotesoft предлагает компоновщик — 1250 долларов США за одну лицензию разработчика: http://www.remotesoft.com/linker/index.html

Если ваше приложение будет работать на Mono (а поддержка рабочего стола Winform в Mono сейчас довольно хороша), вы можете упаковать свое приложение в виде пакета Mono, который представляет собой один исполняемый файл.Есть два варианта: вариант по умолчанию включает среду выполнения, но не имеет статической ссылки на нее, другой статически связывает вас со средой выполнения Mono.Причина, по которой вы можете не захотеть использовать статическую ссылку, заключается в том, что это поместит ваше приложение под действие LGPL;пакеты, которые не являются статически связанными (все еще один exe-файл), не имеют такого требования.http://www.mono-project.com/Mono:Runtime#Bundles

Вы можете рассмотреть возможность использования «Развертывание ClickOnce», что позволяет очень легко добавить в ваше приложение загрузку распространяемых установщиков .Net 2.0, 3.0 и/или 3.5.Просто установите флажок в свойствах вашего проекта, и ваш установщик автоматически определит, установлена ​​ли необходимая платформа, и установит ее, если нет.

Он подходит не для каждой ситуации, но если вы сможете им воспользоваться, он может оказаться довольно удобным.

Я немного программировал на .NET (используя C#) и понял, что часто мне хочется большего контроля над некоторыми элементами управления.Для этого требовались знания, выходящие за рамки .NET Framework.

Например, когда я работал с элементом управления WebBrowser над созданием инструмента автоматического тестирования веб-приложений, я понял, что существуют определенные ситуации, которые требуют обработчиков событий из элемента управления ActiveX более низкого уровня axWebBrowser, а документации было мало, а примеры кода включали много Концепции COM-взаимодействия.Так что, возможно, вам пригодятся некоторые знания о COM?

Я предполагаю, что я пытаюсь сказать, что когда я рассматриваю системные требования к определенному программному обеспечению, я редко рассматриваю структуру .NET как требование.Итак, я всегда задаюсь вопросом, как они добираются до того, как это не требовалось (если они разработали программное обеспечение в .NET).Итак, я просто предполагаю, что большинство коммерческого программного обеспечения не написано в .net, поэтому я задаю этот вопрос.Надеюсь, это прояснило некоторые вещи.

Многим приложениям, разработанным с помощью C++/MFC для настольных компьютеров Windows, требуется определенная версия библиотек DLL среды выполнения MFC, даже если она не указана явно в качестве обязательного требования.Я считаю, что то же самое происходит и с приложениями, требующими .NET.

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

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

Хорошая особенность .NET framework заключается в том, что в Windows XP по умолчанию установлена ​​библиотека времени выполнения платформы 2.0.

С каких пор?Мне приходилось советовать многим пользователям Windows XP установить ее.Да, вы можете отключить его через обновление Windows, но я вполне уверен, что это необязательная установка, а не то, что происходит автоматически.

и в Vista установлена ​​версия 3.5

Нет, у него установлена ​​версия 3.0.Вы получаете WPF, но вы не получить linq

Да, вы можете создать приложение, встроенное в NET, без использования платформы.Вы можете использовать такую ​​программу, как ESS dotNET FuZe, для включения в приложение любой библиотеки DLL, включая библиотеки DLL платформы.Полученный EXE-файл больше не нуждается в фреймворке.

Пожалуйста, перейдите по этой ссылке: http://essaver.net/fuze.html чтобы взглянуть на FuZe.

.NET Framework можно не требовать;есть компании, которые продают (заметьте, за тысячи долларов) решения, которые позволят вам это сделать.Однако это полные хаки, которые не поддерживаются Microsoft.

Способ разработки настольных приложений (т. е. с использованием .NET или нет) зависит от ваших требований.Не существует предпочтительного способа.

Наиболее используемый язык, вероятно, C#.

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