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

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

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

Ответов (15)

Решение

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

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

In a lot of ways, this is Microsoft's "development standard" and has been that way for a while. This allows you to not worry about having a bunch of libraries tacked onto your application. If you're sticking to all of the .NET provided libraries, you wind up only have to worry about deploying your executable, which is a big headache reliever. When you have a bunch of libraries you have to deploy as well, then you start to run into hassles when you write updates, because you have to make sure those updates are pushed out in your existing installer and to all the existing installed apps out there.

As for "preferred", that always tends to ruffle feathers at times, but there are more and more .NET developers wanted for the web and the desktop at the job hunt sites I tend to visit. 8^D

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

а в Vista установлено 3.5

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

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 Deployment» , которое упрощает добавление в ваше приложение начальной загрузки распространяемых установщиков .Net 2.0, 3.0 и / или 3.5. Просто установите флажок в свойствах вашего проекта, и ваш установщик автоматически определит, установлена ​​ли необходимая структура, и установит ее, если нет.

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