Дотнет
Microsoft .NET Framework — программная технология, предназначенная для создания как обычных программ, так и веб-приложений (в качестве платформы для разработок впервые предложена корпорацией C++ для Microsoft .NET, может обратиться к методу класса из библиотеки, написанной на Delphi; на C# можно написать класс, наследованный от класса, написанного на Visual Basic .NET, а исключение, созданное методом, написанным на C#, может быть перехвачено и обработано в
.NET является патентованной технологией корпорации договоренности с компанией Novell, была признана технология Unix-подобных системах (GNU/Linux, Mac OS X). Однако договорённость касается Novell и клиентов Novell, также технологии ADO.NET и Windows.Forms не были стандартизированы ECMA/ISO и использование их в Mono предоставляет реализацию ADO.NET и Windows.Forms, но в то же время рекомендует обходить эти API.
Среды разработки .NET-приложений:
Версии
Microsoft начала разрабатывать .NET Framework в конце 1990-х под именем Next Generation Windows Services (NGWS). Позже в 2000 году была выпущена первая бета версия .NET 1.0.
The .NET Framework stack.
| Версия | Номер версии | Дата выхода |
|---|---|---|
| 1.0 | 1.0.3705.0 | 2002-01-05 |
| 1.1 | 1.1.4322.573 | 2003-04-01 |
| 2.0 | 2.0.50727.42 | 2005-11-07 |
| 3.0 | 3.0.4506.30 | 2006-11-06 |
| 3.5 | 3.5.21022.8 | 2007-11-09 |
С полным списком релизов .NET Framework можно ознакомиться в статье список версий .NET Framework.
.NET Framework 1.0
Первый релиз .NET Framework вышел 5 января 2002 года для Windows 98, NT 4.0, 2000 и XP. Общая поддержка, осуществляемая компанией Майкрософт, закончилась 10 июля 2007 года, а расширенная поддержка окончится 14 июля 2009 года. [1]
.NET Framework 1.1
Следующий релиз .NET Framework вышел 1 апреля 2003 года. Он стал первой версией, устанавливающейся в процессе инсталляции операционной системы, и распространялся с Windows Server 2003. Для предыдущих операционных систем .NET Framework 1.1 был доступен в виде отдельной инсталляции. Общая поддержка, осуществляемая компанией Майкрософт, закончилась 14 октября 2008 года, а расширенная поддержка окончится 8 октября 2013 года. [1]
.NET Framework 2.0
Была выпущена одновременно с Visual Studio 2005, MS SQL Server 2005 и BizTalk 2006. С выходом версии 2.0 была добавлена поддержка обобщенных классов (англ. generic ), анонимных методов, полная поддержка 64-битных платформ x64 и IA64.
.NET Framework 3.0
.NET Framework 3.5
Был добавлен язык linq
.NET Framework 4.0
Microsoft анонсировала релиз четвёртой версии среды .NET 29 сентября 2008 года. [2]
Языки программирования в .NET
- Встроенные (поставляются вместе с .NET Framework)
- C#;
- J# — последний раз был включён в Visual Studio 2005;
- VB.NET;
- JScript .NET;
- C++/CLI — новая версия C++ (Managed);
- Поддерживающие .NET не активно.
- Ada — см. A#
- Boo, основан на COBOL
- Component Pascal (Component Pascal ближе к Oberon чем к Pascal)
- Eiffel
- F#, член семейства языков программирования Forth
- FORTRAN
- IronPython — реализация языка Lisp
- Mercury
- Mondrian
- Oberon/Perl
- RPG
- Smalltalk
Примечания
- ↑ 12Сведенья о жизненном цикле различных версий .NET Framework
- ↑http://www.cnews.ru/news/line/index.shtml?2008/09/30/320602
См. также
- .NET Compact Framework
- .NET Micro Framework
- ADO.NET
- Code Access Security
- Common Language Infrastructure
- Common Language Runtime
- Mono
- Сравнение C# и Java
- CAD Import Net
Ссылки
- Microsoft .NET Homepage
- Got Dot Net — .NET News.
- Mono homepage
- The Mono Community
- Mono Wiki
- Программирование под платформу .NET Framework
- DotNetSpace — Asp.Net 2.0 Articles and code examples.
- Ecma-335
- Ecma-334
- Ecma-372
- Running .NET on Linux or Windows
- Утилита для локализации .NET приложений на русском языке
- MonoBrasil A Brazilian Mono WebSite
- ASP.NET Mania — сайт о .NET на русском языке.
- Got Dot Net — сайт о .NET на русском языке.
- dotSITE — сайт о .NET на русском языке.
- RSDN — сайт, содержащий крупный раздел о .NET.
- BoxedApp — блог-пост о том, из чего состоит .net рантайм, и как его внедрить в приложение.
- Введение в .NET — о причине появления .NET, отличие .NET-программ от обычных, перспективы.
- Форум по .Net — русскоязычный форум посвящённый программированию на Visual Basic 6.0 и .Net, ASP.Net.
- Visual Basic FAQ — База готовых кодов на Visual Basic. Часто задаваемые вопросы.
Литература
- Кристиан Нейгел, Билл Ивьен, Джей Глинн, Карли Уотсон, Морган Скиннер C# 2005 и платформа .NET 3.0 для профессионалов = Professional C# 2005 with .NET 3.0. — М.: «Диалектика», 2007. — ISBN 978-5-8459-1317-3
- Эндрю Троелсен Язык программирования C# 2005 (Си Шарп) и платформа .NET 2.0 = Pro C# 2005 and the .NET 2.0 Platform. — 3-е изд. — М.: «Вильямс», 2007. — С. 1168. — ISBN 1-59059-419-3
Wikimedia Foundation . 2010 .
Как стать .NET-разработчиком. План действий для начинающих
.NET — это платформа от Microsoft для создания программного обеспечения. Язык С#, используемый для работы с .NET, второй по популярности среди украинских разработчиков. Кроме того, в категории С#/.NET на DOU всегда открыто множество вакансий.
В рамках рубрики для начинающих «Код профессии» рассказываем о том, как изучить С#/.NET и найти первую работу. Для этого мы пообщались с опытными .NET-разработчиками Алексеем Краевым, Владимиром Вердышем и Андреем Губским и собрали их советы в один материал.
Что такое .NET
.NET — это платформа от Microsoft, которая существует с 2002 года. Основная цель ее создателей — это возможность создавать программы разных типов (прежде всего Web), которые могут выполняться на разных устройствах. Основа .NET — CLR, то есть Common Language Runtime, позволяющая отвлечься от конкретного языка программирования и выполнять код одинаково на всех платформах.
С 2016 года CLR становится кроссплатформенной, и .NET начинает движение в направлении того, какой мы знаем платформу сейчас — удобное средство для разработки приложений различного рода, которые аналогично Java могут запускаться и на Windows, и на Unix-based системах.
Согласно последнему зарплатному опросу, языком С#, используемым для работы с .NET, пишут 16,3% разработчиков в Украине. Он на втором месте по популярности использования, и в последние годы его доля растет.
В качестве первого языка С# указали 5,4% респондентов, что на четверть больше, чем в 2021 году.
Среди языков, которые предпочли бы разработчики, если бы была свобода выбора, С# на втором месте — 14,6%.
Согласно последнему опросу, медианная зарплата С#/.NET-разработчика составляет $2525, что соответствует медианной зарплате уровня Middle. Медианная зарплата Junior: $950; Senior: $4500. Зарплаты специалистов всех уровней несколько выросли по сравнению с прошлым опросом: у джуниоров на $50, у мидлов и сеньоров +$100.

А здесь можно посмотреть открытые вакансии в категории С#/.NET. На момент публикации статьи есть 218 вакансий.
Подходит ли .NET начинающим
По мнению опрошенных нами разработчиков, C# подходит и как первый язык программирования для начинающих, и как дополнительный для тех, кто хочет перейти с другого языка. C# — это язык со статической типизацией, позволяющий сосредоточиться на изучении концепций объектно-ориентированного программирования, абстракций, алгоритмов, немедленного погружения в низкоуровневые детали реализации. При этом если в будущем возникнет необходимость пойти на более низкий уровень (работа с памятью, многопоточность и т.д.), язык и платформа предоставят удобные возможности для этого.
Для удобного изучения C# вполне хватит бесплатных инструментов типа связки VS Code + консоль или VS Community. Из небольших проблем во время обучения можно выделить разве то, что некоторые ресурсы до сих пор обучают устаревшим конструкциям языка, которые уже практически не используют вроде delegate (все применяют уже готовые Func<> или Action<>) и event (утратил свою актуальность для веб-сервисов) . Но обычно об этом никогда не спрашивают на собеседовании и не используют в проектах.
Преимуществом платформы .NET можно назвать то, что кроме языка C# она охватывает и другие языки. Например, в одном проекте можно одновременно использовать и C#, и F# — функциональный язык программирования. Таким образом, новичок может изучать как объектно-ориентированный подход, так и функциональный. При этом каждый из языков позволяет в полной мере понять преимущества каждого из подходов.
Еще некоторые преимущества .NET:
- На .NET можно писать Back-end, настольные приложения, мобильные приложения, сайты, есть фреймворки для создания игр, можно работать с Machine Learning.
- .NET-программы можно запускать под разными операционными системами. Есть все необходимое, чтобы без особых проблем упаковать приложение в контейнер.
- Современный .NET (и сама среда выполнения, и фреймворки типа ASP.NET Core) — это платформа с открытым исходным кодом.
- Платформа развивается очень высокими темпами, постоянно появляются обновления.
- О платформе много информации: книги, видео. Как о самой .NET, так и об отдельных поддерживаемых ею языках, среди которых и C#.
- Под платформу написано много кода под что угодно.
- Для .NET есть хорошие средства разработки.
- Нет предпосылок для того, чтобы .NET в последующие лет исчезла или стала невостребованной.
Какие технологии следует изучить в рамках .NET
.NET — это платформа, где можно писать разные типы приложений: настольные, мобильные, веб. От этого сильно зависит, какими сопутствующими технологиями следует интересоваться.
Чтобы писать бэкенды, однозначно обязательно разбираться в базах данных. Это то, без чего нельзя написать ничего полезного и что будет в 98% случаев. Если вы понимаете MS SQL, RabbitMQ или MongoDB, этого будет достаточно. Даже если где-то будут другие СУБД, имея понимание того, как работать с этими технологиями, вы вероятнее всего разберетесь, как использовать что-то другое. Очень ценно в работе понимать разницу между этими видами баз и что когда нужно запускать. Для этого можно прочитать книгу Мартина Клепманна «Designing Data-Intensive Applications».
Также будет хорошо, если вы будете работать с Entity Framework.
Остальные могут появляться в тех или иных проектах: Redis, ElasticSearch, системы обмена сообщениями (Kafka, какие-то специфические для определенных облаков, таких как Service Bus в Azure). Не обязательно иметь реальный опыт с этим всем, но хотя бы иметь представление, что это, и уметь выполнять какие-то базовые вещи через соответствующие библиотеки. Хорошо бы ориентироваться в облачных провайдерах вроде Azure, AWS, Google Cloud.
Не лишними будут знания Docker и Kubernetes. Последнее не обязательно должно быть на уровне администратора, но следует концептуально понимать, как там что.
Следует знать и уметь писать юнит-тесты.
Конечно же, для всех технологий .NET базовым является знание языка C#. Но сегодня пишут не на языке программирования, а на фреймворках. Синтаксис любого современного языка выучить легко и быстро. Гораздо важнее хорошо понимать экосистему технологии, с которой работаете.
Если речь идет о хайлоаде, то кроме C# и .NET, нужно будет изучить технологии кэширования, работу с очередями, принципы работы систем массового обслуживания и т.д.
Если речь идет о разработке веб-приложений и работе фулстек-разработчиком, то нужно изучить, как работает ASP.NET Core, шаблоны Razor, Blazor, а также понимать особенности работы HTTP-протокола, сессий, знать, что такое CORS, и вооружиться знаниями со стороны фронтенда: HTML, CSS, JS.
Для разработки десктопных программ следует ознакомиться с WPF, MAUI, знать, что такое XML, понимать, как работают потоки.
Для мобильной разработки также следует ознакомиться с MAUI и Xamarin, а также с документацией и гайдлайнами iOS и Android.
Если вы планируете заняться DevOps-практиками, стоит посмотреть на Pulumi, а также ознакомиться с возможностями основных облачных платформ и средствами работы с ними: Azure, AWS, GCP.
Тем, кто хочет заниматься машинным обучением, не обойтись без ознакомления с фреймворком ML.NET и изучения теоретической базы: что такое регрессия, классификация, детекции аномалий, кластеризация.
Желающим разрабатывать продукты для интернета вещей следует приготовиться к тому, чтобы реализовывать проекты в пределах ограниченных аппаратных ресурсов, а соответственно уметь оценивать сложность алгоритмов, затраты памяти, скорость считывания информации.
Полезные ресурсы для изучения .NET
Microsoft Learn. Специальный портал Microsoft, содержащий огромное количество бесплатных и качественных материалов для обучения.
Ukrainian .NET Developer Community. Проект, который объединяет украинские .NET-сообщества, где вы сможете найти единомышленников и всегда спросить совета.
Телеграмм-канал devdigest // dot net. Здесь регулярно публикуют новости о платформе .NET, полезные материалы и информацию для .NET-разработчиков.
Джон Пол Мюллер «C# для чайников». Даже если вы никогда не имели дела с программированием, это руководство поможет освоить язык C#.
Джеффри Рихтер CLR via C#. Программирование на платформе Microsoft .NET Framework на языке C#«. Эта книга подробно описывает внутреннее устройство и функционирование общеязыковой среды (CLR) Microsoft .NET Framework.
Джуст Виссер «Разработка программ на языке С#». Это практическое руководство ознакомит вас с 10 простыми рекомендациями, которые помогают писать программное обеспечение, которое легко поддерживать и адаптировать. Эти тезисы сформулированы исходя из анализа сотен реальных систем.
Видеоканал Channel 9 от Microsoft размещает много ценной для IT-специалистов информации, включая видеоуроки.
Журнал MCDN Magazine публикует на своем сайте интересные обучающие статьи.
Полезные статьи на DOU
Как искать работу начинающему в .NET
Прежде чем рассылать резюме, потренируйтесь писать код, например, на Codewars или LeetCode — это очень хорошо набивает руку. Production-ready код вы сможете увидеть и начать писать только когда уже устроитесь на работу, а до этого полезно просто уметь писать на языке базовые алгоритмы. Найдите простые задания, выполните, а проект залейте на GitHub.
Несколько общих советов. Пишите в резюме то, что вы действительно умеете и понимаете. Не пишите все ключевые слова, описанные которых вы прочли в Википедии. Не стоит слишком сильно возиться с внешним видом резюме, потому что у работодателя может сложиться впечатление, что под красивой оберткой нет ничего существенного.
Хорошее резюме .NET-разработчика содержит:
- предложения с кратким описанием себя и своей мотивации.
- Список навыков и знаний, необходимых большинству .NET-проектов: язык C#, база данных, брокер сообщений, базовый Computer Science, желание учиться, коммуникабельность и т.д.
- Опыт работы или стажировка. Их можно находить как в крупных компаниях, так и в более мелких. Плюсы крупных компаний — их процесс найма стажеров уже налажен, и там с большей вероятностью готов план развития сотрудников и больший выбор проектов, минус — большая конкуренция. В малых компаниях конкуренция может быть меньше. Если определенный коммерческий опыт уже есть — обязательно опишите в резюме, какова была ваша роль на проекте, какой вклад вы привнесли.
- Если у вас есть свои проекты с открытым кодом (пускай код даже не идеальный), укажите ссылку на них.
- Укажите остальные технологии, с которыми работали. Только не перечисляйте все подряд, а только то, с чем действительно работали.
Станьте членом сообществ разработчиков, там иногда можно увидеть, как кто-то ищет людей себе в команду. Преимуществом будет тот факт, что вы сможете напрямую пообщаться с тем человеком, с которым, возможно, будете работать в будущем. Возможно, зная вас, кто-то сам будет рекомендовать компании взять вас к себе.
Перед подготовкой к собеседованию советуем обратить внимание на статью «Співбесіда з .NET. 150+ запитань для Junior, Middle, Senior».
Работу рекомендуем искать на Djinni и DOU. На DOU есть раздел «Первая работа» с курсами, стажировками и вакансиями только для начинающих.
Также стоит создать аккаунт в LinkedIn и добавить в друзья как можно больше разработчиков и рекрутеров. О том, как правильно заполнять LinkedIn-профиль, читайте здесь. После первых отказов спрашивайте у интервьюеров, что следует подтянуть.
Желаем удачи в изучении .NET и верим, что у вас все получится!
Ранее мы писали о том, как выучить JavaScript и Python. Напишите в комментариях, о какой технологии вы хотели бы почитать в следующий раз.
Подобається Сподобалось 19
До обраного В обраному 19
DOTNET — Да или Нет. С высоты птичьего полета.
Руководитель IT департамента любой сколько-нибудь развившейся и вставшей на ноги компании почти наверняка имеет мечту. Мечту, в которой его предприятие совершает все деловые операции со всеми партнерами исключительно электронным образом с использованием Интернет и в которой работники его департамента лишены головной боли, связанной с прохождением бизнес-процессов. В этой мечте все бизнес-процессы компании хорошо определены, стабильно исполняются, а также легко изменяемы и контролируемы как из локальной сети, так и с любого компьютера в Сети. Все работники компании имеют полный доступ к рабочей информации, электронной почте и личным документам из любой точки Земли независимо от того, пользуются ли они мобильным телефоном, Pocket PC, Ноутбуком или мощной рабочей станцией.
Понять и обсудить реалистичность этой мечты мы попробуем в серии статей под общим заголовком «.NET Architecture — Да или Нет?». Поскольку полный набор сервисов архитектуры .NET во многом будет строиться на базе сервисов уже реализованных в Microsoft Windows DNA 2000 (Distributed Network Applications), мы так или иначе коснемся всех серверов, входящих в DNA 2000, а также в разной степени затронем различные, уже более-менее оформившиеся, сервисы .NET. Следует сразу отметить, что вполне вероятна ситуация, когда после выпуска очередного продукта Microsoft станет ясным, что многое из анонсированного в бета-версиях там не реализовано. Мы постараемся отслеживать всю новую информацию, которая будет появляться в фирме Microsoft на тему .NET и гибко менять стратегию и темы статей.
Еще один тезис, на который, безусловно, стоит обратить внимание в самом начале серии: все суждения, приводимые в данных публикациях данной серии, являются исключительно личным мнением авторов и не претендуют на безусловную истину. Более того, тема, затрагиваемая нами, имеет еще настолько нечеткие очертания, что даже говорить об истинности того или иного суждения является довольно сложной задачей. Итак, первая из статей серии посвящена общему обзору платформы Microsoft .NET.
Microsoft .NET: Интеграция, интеграция и еще раз интеграция.
В рамках инициативы, которую разработчики Microsoft назвали Microsoft .NET, программисты, компании и потребители впервые получают возможность использовать технологии «на своих условиях». Microsoft .NET позволит создавать по-настоящему распределенные веб-службы, которые будут интегрироваться и совместно работать с целым набором дополнительных сервисов, чтобы обслуживать клиентов так, как сегодняшние компании могут только мечтать.
Функциональная идея, лежащая в основе Microsoft .NET состоит в перенесении фокуса с одиночных web-сайтов и устройств подключенных к интернету на совокупности компьютеров, устройств и служб, представляющих более широкие и информационно насыщенные решения за счет согласованной совместной работы. Концепция фактического «включения» клиента в электронную инфраструктуру фирмы позволяет во многом пересмотреть как сами услуги, предоставляемые клиенту, так и форму их презентации.
Еще одна важная черта концепции .NET состоит в том, что она является механизмом позволяющим перейти от HTML-представлений данных к представлениям, дополненным программируемой информацией на базе языка XML (Extended Markup Language). Специфика XML состоит в том, что он полностью отделяет данные как таковые от их внешнего представления. Этот язык является ключевым элементом систем нового поколения, открывающим содержащую в них информацию для структурирования, редактирования и программирования ее обработок. Он позволяет доставлять данные гораздо более эффективным способом на широкий спектр цифровых устройств, позволяющих представлять целый комплекс взаимодействующих между собою служб.
В состав Microsoft .NET входят
- платформа Microsoft .NET — включает в себя инфраструктуру .NET, инструментальные средства разработки и эксплуатации служб нового поколения, пользовательские среды на базе .NET для создания информационно-насыщенных клиентских систем, стандартные блоки служб .NET, а также программы для устройств .NET
- Продукты и службы Microsoft .NET — к ним относятся ОС Windows .NET с интегрированным набором стандартных блоков служб, веб портал MSN.NET, оффисный комплект Office.NET, комплект разработчика Visual Studio .NET и веб-портал малого бизнеса bCentral для .NET
- Службы .NET сторонних производителей — корпоративные и вертикальные службы
Microsoft .NET в его нынешней формулировке выведет вычисления и коммуникации на новый, далеко превосходящий возможности нынешней «однонаправленной» Сети уровень, где они будут осуществляться в более информационно-насыщенной, интерактивной и поддерживающей совместную работу среде. Опираясь на более новые и совершенные программные средства, Microsoft .NET включает целые комплексы приложений, служб и устройств в работу по созданию индивидуализированной цифровой среды. Это означает, что появляется радикально новое поколение программных средств, способных функционировать как единая интегрированная служба.
Фундамент .NET
Платформа .NET является первой, в которой полнофункционально реализована модель программирования со слабой связью, позволяющая разрабатывать web-службы на базе языка XML. Комплект инструментальных средств, предоставляемых платформой .NET, позволяет по единой технологии создавать службы, клиентские и серверные компоненты. Предлагаемая новая версия Visual Studio .NET автоматизирует создание web-служб в парадигме быстрой визуальной разработки приложений с помощью механизма «drag-and-drop», которая впервые была реализована в среде разработки Visual Basic — служб, способных работать на любой XML-ориентированной платформе.
Но самое главное, на наш взгляд, новшество в модели программирования Microsoft .NET состоит в том, что разработчики имеют возможность практически не задумываться на тему того, где и как будет работать их программное обеспечение и сосредоточиться на том, что оно будет делать. Эта платформа выводит ASP-компании (Application Service Provider) и технологию размещения приложений на новый уровень, обеспечивая интеграцию приложений-служб с другими приложениями, обычными или предлагаемыми через хостинг, индивидуальную настройку таких приложений, возможность программирования их возможностей пользователями и их запуска в автономном режиме. Кроме того, разработчики смогут использовать обширный набор базовых настраиваемых стандартных блоков служб Microsoft .NET для построения собственных приложений и служб. Имея возможность подписаться на эти базовые службы, появляется свобода выбора типа «купить готовое или сделать самим». В число базовых стандартных блоков служб Microsoft .NET войдут
- Идентификация личности — опирается на Microsoft Passport и технологию аутентификации Windows и реализует самые различные уровни аутентификации, от паролей до смарт-карт (smart card) и биометрических устройств. Эта служба уже поддерживается в бета-версии Windows .NET «Whistler».
- Уведомления и работа с сообщениями — интегрирует обмен сообщениями, электронную почту, голосовую почту и другие формы уведомления и работы с сообщениями в унифицированную общую среду, доступную на любом устройстве. Опирается на web-службу Hotmail, сервер Microsoft Exchange и Instant Messenger.
- Хранилище XML данных — использует язык XML и потокол SOAP (Simple Object Access Protocol) для описания содержания данных, что позволяет обеспечивать их целостность при передаче и обработке. В результате web-узлы превращаются в службы, способные к гибкому взаимодействию. Microsoft .NET также предоставляет защищенное адресуемое пространство для хранения данных в Сети. В этой службе объединяются элементы NTFS, SQL Server, Exchange и MSN Communities.
- Календарь — базис для безопасной интеграции календарей пользователей (рабочего, общественного и домашнего) таким образом, что они доступны для всех устройств, а также для других служб и физических лиц. Эта служба опирается на Microsoft Outlook и средства планирования Hotmail Calendar.
- Каталоги и папки — поиск служб и людей в Сети. Каталоги .NET могут реализовывать программируемое взаимодействие со службами, отвечая на задаваемые по определенным схемам вопросы по возможностям этих служб
- Динамическая доставка — позволяет компаниям-разработчикам предлагать динамические средства постепенного наращивания функциональности и автоматической модернизации по требованию Это позволяет избежать участия пользователя в процессах начальной установки и настройки. Такая инверсия традиционной модели развертывания приложений, требующей явного запуска процедур установки, является жизненной необходимостью в новой информационной среде.
Распределенные службы .NET будут доступны как в онлайновом, так и в автономном режиме. Различные экземпляры службы могут кооперироваться и обмениваться информацией с помощью процесса, называемого объединением (federation). Так, например, корпоративная служба каталога может объединяться с аналогичной Интернет-службой.
Стандартные блоки служб Microsoft .NET могут использоваться на всех платформах, поддерживающих XML. Windows является одной из первых сред для создания и предоставления таких web-сервисов, а Windows-клиенты будут оптимизироваться с точки зрения распространения web-служб на платформы любого типа. Microsoft Windows DNA 2000 уже предоставляет первую полнофункциональную поддерживающую XML инфраструктуру для построения и эксплуатации новых web-сервисов.
В следующей статье этой серии мы расскажем об основных «кирпичиках» будущей платформы и начнем описание уже существующих в Windows DNA 2000 серверов и сервисов, которые, по всей видимости, в той или иной форме будут присутствовать в Microsoft .NET
Дотнет что это
.NET — это платформа для программирования, разработанная компанией Microsoft. Изначально создавалась, чтобы писать программы под операционную систему Windows. Среда работает с несколькими языками программирования, умеет запускать и исполнять код, написанный на них.
Разработчик на .NET может одновременно работать с несколькими языками программирования. Среди них — C#, F#, Visual Basic и Visual C++, а также более редкие языки типа J#. Эти языки разные, но благодаря возможностям .NET разработчик может использовать для них единое пространство имен, один и тот же набор технологий, библиотек и API.

«IT-специалист с нуля» наш лучший курс для старта в IT
По-русски название читается как «дотнет» («точка нет»). Еще можно встретить название .NET Framework — это одна из реализаций среды. На ней была основана .NET Core, которая сейчас называется просто .NET. Разница в том, что .NET Framework работает только под Windows, имеет другой набор языков и иную структуру. Она масштабная, а .NET — модульная. Но и то, и другое относится к семейству Microsoft .NET — в статье мы говорим о нем в целом.
Платформу иногда называют фреймворком. Это не ошибка, хотя фактически .NET шире, чем обычный фреймворк.
Для чего нужен .NET
Современная разработка может проходить на нескольких языках одновременно. Если не использовать общую платформу, то для каждого из этих языков понадобится устанавливать свой компилятор, скачивать библиотеки и другие инструменты. .NET решает эту проблему. Это единая среда, в которой можно:
- писать на нескольких языках;
- не дублировать написанное;
- не скачивать одни и те же библиотеки для каждого языка;
- не множить технологии;
- быстро и удобно переводить старый код на новые технологии.
Последнее возможно благодаря тому, что .NET поддерживает много разных языков. В нем есть инструменты, чтобы переписать старый код под новые стандарты.
Профессия / 8 месяцев
IT-специалист с нуляПопробуйте 9 профессий за 2 месяца и выберите подходящую вам

Где используют .NET
.NET изначально создавался для Windows, поэтому в разработке под Linux или macOS он почти не используется. Сложно его встретить и в мобильной разработке под iOS или Android, хотя возможность написать приложение есть.
У платформы несколько актуальных сфер применения.
Бэкенд. В веб-разработке .NET могут использовать для создания серверной части сайтов, или бэкенда. Это одно из немногих решений, которое ориентировано в первую очередь на сервера под контролем Windows. Большинство платформ преимущественно работает с Linux. Но для веб-разработки понадобится один из фреймворков семейства ASP.NET: некоторые из них можно использовать только в Windows, другие — также в Linux и macOS.
Десктопные программы. Речь идет о программах для Windows, причем и для новых, и для старых версий системы. .NET поддерживает решения Microsoft и легко с ними интегрируется, так что разработку вести довольно удобно. Из крупных программ на .NET написана, например, Microsoft Power BI — ПО для аналитиков. А из небольших, но известных всем — «Блокнот» и «Калькулятор» Windows.
Игры. В .NET входит язык программирования C#, который часто используют для создания видеоигр. Например, с C# работает популярный игровой движок Unity, на котором написано огромное количество игр: двумерных и трехмерных, инди и высокобюджетных. Так что в теории .NET можно использовать и для геймдева, но понадобится много дополнительных знаний.
Бизнес-решения. Так называемая enterprise-разработка — это корпоративные программы для больших компаний. Это обычно масштабные, сложные цифровые решения, например системы CRM. .NET используется в этой сфере. Для энтерпрайза это хороший инструмент, потому что позволяет комбинировать разные языки и технологии. Ведь такая масштабная разработка затрагивает и веб, и создание десктопных приложений, и мобильные устройства.
IoT. Microsoft активно развивает технологии для Internet of Things — интернета вещей. Это технология, которая позволяет соединять друг с другом «умные» устройства в доме и передавать между ними информацию. Для IoT у компании есть своя платформа Azure, но писать для нее можно и с помощью .NET. Так как и то, и другое — продукты Microsoft, они легко интегрируются друг в друга.

Курс для новичков «IT-специалист
с нуля» – разберемся, какая профессия вам подходит, и поможем вам ее освоитьКак работает платформа .NET
.NET создавалась как альтернатива языку программирования Java, и принцип работы у нее похожий. Java так популярна из-за того, что переводит написанную программу в специальный байт-код — его исполняет собственная виртуальная машина языка. Так достигается кроссплатформенность. Тут принцип похожий. Разница в том, что .NET поддерживает не один язык, а несколько.
Схема работы .NET выглядит примерно так.

- Разработчик пишет код на C#, Visual Basic и других языках.
- Встроенный в .NET компилятор каждого из этих языков переводит их все в промежуточный язык программирования CIL — Common Intermediate Language.
- Получившийся код на CIL принимает среда CLR — Common Language Runtime. Это своеобразная виртуальная машина, которая занимается исполнением кода.
- Программа в CLR превращается в нативный машинный код и выполняется как единое целое, даже если изначально написана на разных языках.
Такой подход позволяет глубоко объединять код на разных языках программирования, вплоть до общих имен переменных.
CIL. Это низкоуровневый язык программирования, похожий на ассемблер. Писать на нем вручную сложно, он слишком близок к железу. CIL еще называют общим языком — не удивляйтесь, если встретите где-то это название.
CLR. Ее еще называют исполняющей средой. Это машина, которая принимает на вход команды на общем языке, динамически переводит в машинный код и выполняет. Она же занимается сборкой мусора — очисткой памяти от данных, которые больше не нужны.
Особенности .NET
- Быстрый порог входа, хотя и придется писать на нескольких языках.
- Понятный и читаемый код, так как все языки в .NET — высокоуровневые, с ясным человеку синтаксисом.
- Автоматическая сборка мусора.
- Полная совместимость с системами и технологиями от Microsoft, но возможные проблемы при работе с другими системами (хотя в целом .NET кроссплатформенна).
- Разнообразное комьюнити и обилие сфер применения.
- Динамическая компиляция, благодаря которой код легче переписывать и отлаживать.
Стоит ли учить .NET
Технология популярна и применяется в разных отраслях разработки. Так что программист, пишущий под .NET, без работы не останется. Порог входа в эту профессию не самый низкий, но ниже, чем во многих других языках, таких как Java.
Еще один возможный плюс решения изучать .NET — несколько языков программирования, каждый из которых можно использовать для разных целей. Модульный .NET поддерживает C#, F# и Visual Basic; другие языки нужно доустанавливать. Но с .NET Framework даже «из коробки» поставляется еще несколько языков. А суть всей технологии в том, что интегрировать в систему можно любой язык программирования, который реально перевести в CIL.
Поэтому .NET — хороший выбор, если вас интересует программирование под Windows или вы хотите попробовать себя в разных отраслях разработки.
Хотите узнать больше? Запишитесь на курсы: мы расскажем о современных технологиях и поможем получить новую востребованную профессию.
IT-специалист с нуля
Наш лучший курс для старта в IT. За 2 месяца вы пробуете себя в девяти разных профессиях: мобильной и веб-разработке, тестировании, аналитике и даже Data Science — выберите подходящую и сразу освойте ее.
