Мифы и заблуждения по поводу .NET Framework

вторник, 10 августа 2010, Александр Краковецкий

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

№1. Даже для небольшой программы необходимо "тянуть" за собой полный .NET Framework

Это утверждние отчасти правильное - программа, написанная на .NET, не может быть запущена на машине, где не установлена нужная версия .NET Framework.

Современные версии Windows уже содержат предустановленный .NET Framework. Ниже показана таблица, в которой показано, какие версии .NET Framework предустановлены на различных версиях Windows.

Версия Номер версии Дата выхода Visual Studio По умолчанию в Windows
1.0 1.0.3705.0 2002-01-05 Visual Studio .NET
1.1 1.1.4322.573 2003-04-01 Visual Studio .NET 2003 Windows Server 2003
2.0 2.0.50727.42 2005-11-07 Visual Studio 2005
3.0 3.0.4506.30 2006-11-06 Visual Studio 2005 + расширения Windows Vista, Windows Server 2008
3.5 3.5.21022.8 2007-11-09 Visual Studio 2008 Windows 7, Windows Server 2008 R2
4.0 4.0.30319.1 2010-04-12 Visual Studio 2010

Кроме того, существует обрезаная версия .NET Framework - .NET Framework Client Profile, который занимает намного меньше места на клиентской машине (.NET Framework Client Profile 2.0 занимает около 28 МБ). Он содержит лишь те библиотеки, которые нужны для запуска приложений и не содержит библиотеки, которые используются для их разработки (например, библиотека System.Drawing.Design нужна лишь для разработки приложений, и никак не используется на этапе исполнения). Вы можете скомпилировать вашу программу под этот фреймворк, а клиенту не нужно будет устанавливать весь "полновесный" пакет.

Если вы пойдете на сайт Майкрософта и Причина в том, что установщик содержит много разных компонентов, которые устанавливаются в зависимости от конфигурации и уже установленных компонентов на конкретной машине (если компонент уже присутствует в системе, то он пропускается при установке). Кроме того полный фреймворк и client profile не могут быть установлены вместе.

Но, в любом случае, эти компоненты должны каким-то образом попасть на клиентскую машину. Самый простой способ - это создать установщик программы, в свойствах которого нужно указать, что в случае отсутствия необходимых компонентов (например, .NET Framework или SQL Server) их необходимо предварительно установить. В свойствах каждого необходимого компонента нужно указать, из какого источника его нужно скачать - из сети или локального источника. Во втором случае установщик вашей программы включит инсталляционные файлы необходимых компонентов (размер установщика, естественно, увеличится на размер этих компонентов).

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

№2. Windows хостинг более дорогой чем Linux хостинг

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

№3. Разработка для .NET Framework - очень дорогая

... Ведь кроме покупки Visual Studio (что тоже не дешево) необходимо купить лицензии на Windows, SQL Server и т.д.

Во-первых, нужно сказать о том, что многие продукты предоставляются бесплатно:

  • Visual Studio Express Edition
  • SQL Server Express Edition
  • Windows Server Web Edition
  • Windows Phone Developer Tools

Этих инструментов вполне должно хватить для разработки проектов среднего уровня сложности.

Также нужно сказать, что существует много программ, по которым можно получить лицензионное ПО бесплатно:

  • DreamSpark - для школьников, студентов и аспирантов (на период учебы)
  • BizSpark - для стартапов (в течении 3 лет)
  • WebsiteSpark - для веб-студий (в течении 3 лет)

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

№4. .NET Framework - не кроссплатформенный

Во-первых, это не всегда необходимо.

Если это все же необходимо, то есть проекты Mono, Moonlight, MonoTouch, которые позволяют писать кроссплатформенный код. Эти проекты развиваются очень динамично и позволяют удовлетворить большинство бизнес-потребностей. Кроме того, совместимость кроссплатформенного .NET кода намного лучше, чем, например, совместимость классических Java фреймворков и SDK для Android разных версий или BlackBerry.

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

№5. .NET и C# - для быдлокодеров и формошлепства

Такие высказывания - не редкость, их можно встретить очень часто на различных ресурсах (даже приличных) и при личном общении. Авторы этих утверждений забывают, что .NET Framework не ограничивается одной технологией (Windows Forms), а содержит большое количество технологий (ASP.NET (MVC), WCF, WPF, WF, XNA, Silverlight, Windows Phone и т.д.) и продуктов (SharePoint, BizTalk и т.д.) разных уровней сложности и областей применения. Хотя, если честно, после таких фраз общение с человеком, как правило, заканчивается в виду бесперспективности дискуссии.

В продолжение этого пункта...

№6. На .NET Framework никогда не напишешь высоконагруженную систему

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

В качестве контр-примера можно привести сайт StackOverflow, который написан полностью на стеке MS-технологий. Этот сайт ежедневно посещает огромное количество людей со всего мира. Более подробно о том, как работает StackOverflow, можно почитать здесь.

Также предлагаю обратить внимание на сайты Украинского Медиа Холдинга, карты Mail.ru, которые также работают на MS-технологиях. Эти проекты являются яркими примерами ошибочности мнения №6.


Ну и напоследок скажу, что не технология красит человека, а человек - технологию.

Компании из статьи


Microsoft Украина


Сайт:
http://www.microsoft.com/ukr/ua/

Microsoft Украина Украинское подразделение компании Microsoft.

Ищите нас в интернетах!

Комментарии

Свежие вакансии