Зависимость .NET Framework

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

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

14.08.2008 15:25:44
15 ОТВЕТОВ
РЕШЕНИЕ

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

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

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

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

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

9
14.08.2008 23:23:51

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

2
14.08.2008 15:28:11

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

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

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

-1
14.08.2008 15:28:59
Интересно, почему за это проголосовали, а это правильный ответ.
chrissie1 22.09.2008 11:14:19

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

2
14.08.2008 15:30:17

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

1
14.08.2008 15:33:04

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

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

1
14.08.2008 15:40:03

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

.NET Runtime - это достаточно маленькая установка, что это возможно (она составляет около 24 МБ для .NET 2.0, еще не проверила, насколько большой .NET 3.5).

1
14.08.2008 15:44:38

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

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

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

1
14.08.2008 16:01:14

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

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

0
14.08.2008 18:20:57

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

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

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

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

0
14.08.2008 21:56:46

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

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

1
14.08.2008 18:52:03

Приятной особенностью .NET Framework является то, что в Windows XP по умолчанию установлена ​​библиотека времени исполнения 2.0 Framework.

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

и Vista имеет 3,5 установлен

Нет, на нем установлено 3.0. Вы получаете WPF, но не получаете linq

0
14.08.2008 23:06:40

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

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

1
14.08.2008 23:31:35

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

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

1
15.08.2008 08:11:31

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

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

0
19.02.2014 21:31:54