Молодые не идут в .NET. Правда или нет?
Как-то раз наши разработчики тёрли за что-то важное у кофемашины и между делом стебались, что им скоро придётся уйти из .NET, потому что он вымирает. Шутки шутками, но мысль застряла в голове и не отпускала.

Чтобы прояснить ситуацию, мы заглянули в DotNet-сообщество, сходили к ребятам из Microsoft, Райффайзенбанка, Контура, CUSTIS и задали несколько вопросов. Вы тоже возьмите чашечку кофе, устройтесь поудобнее, поразмышляйте о будущем .NET и поделитесь своими мыслями в комментариях.
Какие позиции занимает .NET сегодня

Георгий Полевой
SRE в Dodo Engineering, 21 год в разработке
@georgepolevoy
4 февраля 2014 года Сатья Наделла был назначен главой корпорации Microsoft, заменив Стива Балмера. Это означает, что с Microsoft снято проклятие привязки к Windows. Наделла начал движение в сторону open source и кросс-платформенности, поэтому сейчас .NET Framework не имеет недостатков по отношению к Java, и как никогда до этого перспективен.

Роман Неволин
DevRel manager в Контур, 9 лет в .NET
@nevoroman
.NET сейчас — крепкий середнячок по всему. Не самый сложный или простой, не самые высокие или низкие зарплаты, не самый популярный, но C# всё ещё в топ-5.
Это хороший фреймворк общего назначения, с прилично развивающимся языком и достойной производительностью. Microsoft в последние годы развивает платформу в очень правильном направлении — open source, полноценная кросс-платформенность и множество технических улучшений. Прямо сейчас ту же нишу занимает только Java, но в этой борьбе всё без изменений уже много лет.


Юрий Орлов
Техлид в Райффайзенбанке, куратор MskDotNet, 12 лет в .NET
FB Telegram
Это одна из самых популярных платформ, где разработчики высоко востребованы. Множество компаний ищут опытных специалистов и новичков. Здесь я говорю как о крупных банках, так и о стартапах.
Плюс у .NET довольно сильное сообщество в России. Многие компании и независимые сообщества проводят митапы на площадках крупных российских городов. Ребята-профессионалы из российских сообществ активно помогают новичкам осваивать новые рубежи.
Хорош ли .NET для старта в IT

Евгений Пешков
JetBrains, 5 лет в .NEТ
@epeshk
Сейчас популярны курсы, обещающие трудоустройство программистом на %язык_нейм% за N месяцев. Я больше склоняюсь к классическому подходу и считаю, что для начинающих куда важнее знания, не зависящие от конкретного стека технологий. Об архитектуре компьютера, операционных системах, сетях, алгоритмах, интеграции с внешними сервисами, подходах к разработке ПО, организации кода, тестировании, отладке. Всё это нужно изучать сразу на различных современных платформах и языках, будь то .NET(C#)/JVM(Java, Kotlin), Python, С++, JS, Go. И лишь после этого выбирать, в какой теме развиваться дальше. Это уже зависит от личных предпочтений и рынка в регионе. Научиться базовым концепциям и встроить их в своё мышление гораздо сложнее, чем освоить ещё одну платформу, фреймворк или язык программирования. Нужно уметь смотреть на код сквозь слои абстракции языка и платформы, тогда не придётся учиться новой технологии с нуля.
В целом .NET и JVM, на мой взгляд, оптимальны для новичка-бэкендера как платформы со статически типизированными языками, готовыми библиотеками и фреймворками, большим сообществом, богатым тулингом и имеющие концептуальное сходство, позволяющее достаточно легко перескочить с одного стека на другой на начальных этапах. Начинающему совершенно точно не следует выбирать плохой курс по Java, если есть хороший по C#, руководствуясь тем, что на Java вакансий на K% больше. Как и плохой курс по C#, если есть хороший по Java, Python или другой технологии.

Павел Притчин
СТО в Dodo Engineering, 7 лет в .NEТ
@pritchin
Для изучения С# не очень сложен. Посложнее, чем Python, но попроще Go, как по мне. Для новичка многое может простить. И есть возможность подучиться в крупной компании, где берут джунов и нет супер критического продакшена. Такой работы много. Платформа развивается, сейчас перешла на кросс-платформенные рельсы полностью.

Марк Быстров
Тимлид команды Монетизация в Циан, 9 лет в .NET
Наверное, моё мнение в этом вопросе слишком предвзято, ведь я «запрыгнул» именно через .NET. Потом был коммерческий опыт и в Python, и в NodeJS на разных проектах, но .NET мне всегда казался удобным для старта: устоявшаяся платформа с подробной документацией и решениями, работающими «из коробки», что в том же Python тогда решалось разными сторонними библиотеками и костылями.


Егор Богатов
Microsoft, 15 лет в .NET
Twitter
Если говорить о разработке игр, то C#/.NET — один из двух возможных вариантов (имею в виду UE Blueprints). В других областях я бы судил исключительно по количеству вакансий entry-уровня. Конечно, сложно тягаться с той же фронтенд-разработкой на JavaScript или TypeScript.

Роман Букин
.NET-разработчик в Dodo Engineering, 9 лет в .NET
GitHub
Именно для входа он хорош. Есть ASP.NET Core для веба, Unity для игр, WinForms, WPF, MAUI, Avalonia для десктопа (и спорный, но достойный упоминания Blazor в Electron).
Visual Studio — крайне мощная, но довольно простая в освоении IDE, где Integrated — не пустой звук, к тому же ещё и с Community-лицензией, которая позволяет не только обучаться, но и вести коммерческую разработку в маленькой команде. Отдельно стоит выделить MSBuild — пожалуй, лучшая система сборки, которая просто работает и в подавляющем большинстве случаев не доставляет головной боли.

Но как по мне, молодые специалисты идут в .NET неохотно. Сказывается репутация Microsoft. В головах многих людей это по-прежнему кровавый энтерпрайз, который гвоздями прибит к Windows. Будем честны, много где ещё осталось легаси, из-за которого это утверждение какое-то время будет не пустым звуком (даже у нас оно есть). Есть тренд на улучшение, но пройдёт, наверное, десяток лет, прежде чем эти стереотипы вымрут как явление в сообществе разработчиков.
У .NET есть и другая проблема. Python подмял под себя машинное обучение, на Go написан Kubernetes, а JavaScript слишком долго был единственным языком для фронтенд-разработки. Каждая из этих областей буквально на хайпе. А что .NET? С какой областью он ассоциируется у большинства разработчиков в первую очередь? Десктопные приложения под Windows. Не самая хайповая сфера, мягко говоря.

Вячеслав Залыгин
Стажёр в Dodo Engineering и наш самый молодой .NET-разработчик— ему только 17
Программированием именно на С# я занимаюсь уже 4 года. Последний год изучал сетевое взаимодействие, саму сеть, ASP.NET Core, немного HTML, CSS, JavaScript. В будущем планирую пройти курс по React, чтобы немного прокачать знания про фронтенду, но вообще погружаюсь в тот стек и те инструменты, что используются в Dodo.
Мне кажется, что Python более привлекателен для старта за счёт простоты синтаксиса. Но объективно я не могу судить, т.к. не знаю, что нужно изучить в нём, чтобы начать работать. .NET мне нравится, он мне роднее.
Есть ли кризис и нехватка .NET-разработчиков



Юлия Цисык
Кризис есть. Но связан он не с тем, что поток джунов стал меньше, а скорее наоборот, — с тем, что он стал больше. Сейчас многие компании выбирают C#, потому что, на первый взгляд, это простой язык, на котором легко писать, и набирают соответствующих «специалистов». А потом эти люди, выходя на рынок, портят репутацию языка и ухудшают мнение о C#-разработчиках в целом. Причина понятна: фреймворк, IDE, сторонние инструменты (такие как R#) много думают вместо разработчика, и не все люди, которые их используют, задумываются «что же там внутри». Такое поверхностное знание получается.

Юрий Орлов
Техлид в Райффайзенбанке, куратор MskDotNet, 12 лет в .NET
FB Telegram
Сегодня я вижу одинаковый поступательный рост спроса на специалистов во всех технологиях. В особенности это касается разработчиков уровня мидл. Они сейчас наиболее востребованы, причем независимо от стека. Джунов и сеньоров ищут реже, но и для них работы хватает.
Что касается отношения к технологии самих джунов, то оно остаётся также стабильным. Никто резко не бросается переучиваться на другие технологии.

Роман Неволин
DevRel manager в Контур, 9 лет в .NET
@nevoroman
Мне кажется, что количество разработчиков вполне соответствует количеству рабочих мест. По всем показателям популярность .NET не особо падает, новички всё также приходят, в основном из университетов (там .NET как-то исторически популярен). Нехватка кадров ощущается постоянно, но такая же нехватка кадров ощущается и в Java, например.

Марк Быстров
Тимлид команды Монетизация в Циан, 9 лет в .NET
Уже больше года нахожусь в активном поиске дотнетчиков в свою команду и, на мой взгляд, точно есть кризис уверенных мидлов и сеньоров. Специалистов на рынке мало, а те, кто есть, часто не стараются развиваться в ногу с платформой и застряли ещё в .NET Framework 3.5, или избалованы ленивой атмосферой и не требовательностью к качеству кода в банках или крупных аутсорс-компаниях.
Что ждёт .NET в будущем

Роман Букин
.NET-разработчик в Dodo Engineering, 9 лет в .NET
GitHub
Будущее определённо есть. Microsoft наняли Гвидо и теперь он пишет на F# За .NET стоит Azure, а за Azure — очень много денег. В перспективе 5-10 лет вряд ли что-то будет на замену. .NET — это технология Microsoft, в которую она очень много и долго инвестирует. Планируется постепенно закопать .NET Framework (последняя версия — 4.8 и новых не будет) и развивать .NET (ранее имевший приставку Core).
Серьёзную ставку делают на Blazor. Сыграет она или нет — покажет время. Я же достаю попкорн и наблюдаю за происходящим 🙂

Юрий Орлов
Техлид в Райффайзенбанке, куратор MskDotNet, 12 лет в .NET
FB Telegram
Считаю, что .NET будет развиваться и захватывать всё больше областей деятельности. Ещё вчера он ассоциировался с Windows Forms. Сегодня это веб, игры, облачная разработка, кросс-платформенность, IoT, ML и многое другое. Безусловно, это не может не сказаться на конкурирующих платформах JVM-стека и Python. Думаю, все эти технологии будут развиваться, перенимать опыт друг у друга (как это видно сейчас в тех же C#, Java, Kotlin), завоёвывать всё больше умов и сфер деятельности. Процентное соотношение захваченного той или иной технологией рынка будет меняться, но резких изменений, как мне видится, не будет. Здесь важное влияние также оказывает опыт нынешнего поколения IT. Нередко бывает так, что при создании нового проекта в том же энтерпрайзе технология выбирается исходя из опыта организатора команды (архитектора, лида, менеджера). Это способствует пропорциональному образованию рабочих мест и сохранению спроса на специалистов.
Эти ответы мы бы не услышали, если бы всё, что происходит у кофемашины, оставалось у кофемашины. Да не переведутся молодые специалисты в .NET, ведь он живее всех живых. Согласны?
Что должен знать C#/.NET разработчик

![]()
20.11.2019
![]()
16001
Рейтинг: 5 . Проголосовало: 7
Вы проголосовали:
Для голосования нужно авторизироваться

На сегодняшний день .NET программист может применять свои навыки в различных сферах разработки программных продуктов:
- создание веб-приложений и веб-сервисов
- создание настольных приложений;
- создание облачных сервисов;
- создание игр;
- создание мобильных приложений.
Когда говорят о .NET разработчиках, имеют в виду программистов, которые пишут на языке С#. Этот язык программирования, как и вся платформа .NET, был создан, развивается и поддерживается компанией Microsoft, которая стабильно уже несколько десятилетий входит в TOP-10 компаний — мировых лидеров рынка информационных технологий. Все продукты компании Microsoft созданы на платформе .NET. Какие же технологии необходимо изучить, чтобы стать .NET программистом?
Поскольку львиная доля .NET-вакансий приходится именно на веб-сегмент, данная статья будет охватывать как фундамент, которым обязаны владеть все разработчики этой платформы, так и основные технологии серверной стороны веб-решений.

Язык программирования C# (“си шарп”)
Любой .NET разработчик не может называться и быть таковым, если он не умеет хорошо программировать на языке C#.
Это универсальный объектно-ориентированный язык, который является мощным инструментом создания программного обеспечения с широкой областью применения. При столь высокой функциональности он является достаточно несложным в изучении и отлично подойдет тем, кто собирается сделать первый шаг навстречу программированию.
Благодаря широкому спектру применения, С# является очень востребованным языком. Различные ресурсы по поиску работы предлагают большое количество вакансий, причем, как на крупные проекты с четко определенным консервативным стеком технологий, так и в компании, которые создают новый программный продукт с применением самых современных инструментов.
Компания Microsoft активно развивает свое детище — .NET направление, потому C# всегда актуален, идет расширение функционала, добавляются новые возможности. Тенденция последних лет — кроссплатформенность, реализуемая в .NET Core. Огромное количество учебных материалов, качественная официальная документация, видео курсы и образовательные вебинары — все это создает максимально комфортные условия для грамотного поэтапного изучения данного языка.
ООП
Объектно-ориентированное программирование — это методология разработки программного обеспечения, в основе которой лежат четыре главных принципа: абстракция, инкапсуляция, наследование и полиморфизм. Поскольку C# является объектно-ориентированным языком, необходимость изучения и полного понимания ООП парадигм обязательно. Однако, есть и приятная новость: все принципы быстро и легко усваиваются во время изучения C#.
Тема связана со специальностями:
Алгоритмы и структуры данных
Понимание алгоритмов и структур данных — обязательные знания для любого программиста.
Изучив структуры данных, вы сможете управлять сложностью своих программ, делая их более доступными для понимания, а также разрабатывать высокопроизводительные программы, которые будут эффективно работать с памятью.
Знание алгоритмов позволит вам создавать сложные конструкции для эффективного решения широкого спектра задач.
Шаблоны проектирования
Паттерны (они же шаблоны) представляют собой архитектурные конструкции, которые описывают типичные способы решения распространенных задач, возникающих в ходе проектирования программного обеспечения. Всего существует более двух десятков шаблонов, однако знать их все — это обязанность архитектора, а не .NET. разработчика. Обычно в одном проекте используется небольшое количество паттернов, поэтому вам достаточно знать самые популярные из них.
SQL
Structured Query Language — декларативный язык структурированных запросов, который создан для взаимодействия с базами данных. Особенность SQL состоит в том, что он лишь описывает необходимые компоненты и желаемые результаты, не указывая, как именно эти результаты должны быть получены.
Каждый программный продукт подразумевает работу с данными, будь то обыкновенная процедура приема данных от сервера (например, скачивание файлов) или внесение в БД информации о новом зарегистрированном пользователе — умение работать с данными одинаково важно во всех сферах разработки, разве что за исключением FrontEnd.
ASP.NET
Active Server Pages для .NET — платформа, использующая среду выполнения .NET Framework и предоставляющая необходимые службы для создания серверных веб-приложений и веб-сервисов. Является развитием более ранней технологии Microsoft ASP.
ASP.NET базируется на среде выполнения Common Language Runtime (CLR), которая является основой всех приложений Microsoft .NET. Также данная платформа имеет преимущество в скорости по сравнению со скриптовыми технологиями.
ASP.NET MVC является расширением ASP.NET и представляет собой платформу для создания веб-сервисов при помощи паттерна MVC. Данный шаблон предусматривает разделение приложения на три компонента: Модель, Представление, Контроллер, благодаря чему реализуется концепция разделения и закрепления ответственности за каждым компонентом, что упрощает разработку проектов.
Видео курсы по схожей тематике:

Рефакторинг .NET Приложений

Синхронизация данных двух информационных систем с использованием LINQ и Entity FW 6

Что нового в C# 6.0-7.0
ASP.NET Core
Фреймворк от компании Microsoft, который использует среду выполнения .NET Core, предназначен для разработки качественных современных веб-приложений и является продолжением развития платформы ASP.NET. Однако, это не просто обновленная технология. Выход ASP.NET Core фактически обозначил качественное изменение всей платформы. Последняя версия 3.0 была выпущена не так давно — в сентябре 2019 года. Главные особенности ASP.NET Core:
- наличие открытого исходного кода на GitHub;
- кроссплатформенность;
- модульность;
- расширяемость;
- возможность применения облачных технологий.
Более подробную информацию обо всех нововведениях можно найти на официальном сайте Microsoft.
Таким образом, платформа .NET Core существенно расширила области применения технологии ASP.NET и предоставила разработчикам большое количество возможностей по созданию программного продукта.
Entity Framework 6
Entity Framework — специальная объектно-ориентированная технология на базе фреймворка .NET, которая позволяет разработчикам получать доступ к данным, используя концептуальную объектную модель, а не непосредственно реляционную базу данных. Благодаря такому подходу уменьшается количество кода, необходимое для получения доступа к базе, растет производительность и уменьшается время на поддержку объектов в приложениях, которые работают с данными.
В двух словах, эта технология позволяет программисту абстрагироваться от самой базы данных и работать с данными независимо от типа хранилища.
LINQ
Language Integrated Query (язык интегрированных запросов) — это простая и удобная .NET технология доступа к данным. Особенность данного языка запросов: возможность применения ко всем источникам данных (XML-документы, XML-потоки, наборы данных ADO.NET, базы данных SQL, массивы и коллекции .NET и т. д.) одного и того же самого подхода выборки данных.
Git
Наиболее популярная система контроля версий, которая позволяет вести историю разработки проекта с возможностью доступа к каждой сохраненной версии.
Данные системы позволяют команде программистов работать над одним проектом одновременно, сохраняя внесенные изменения, а также отслеживать выполнение задач каждым членом группы.
Не во всех вакансиях можно встретить среди требований владение системой контроля версий, однако, знание Git или ее аналогов даст вам дополнительное преимущество перед остальными кандидатами.
Английский язык
Традиционное требование для каждого разработчика в IT. Знание языка на уровне чтения технической документации и комментирования кода вполне достаточно.
Подведем итоги
В статье были перечислены основные технологии, которыми должен обладать каждый .NET-программист. Поскольку веб-разработка ныне является очень популярной и востребованной, мы также добавили в список .NET средства, которые используются во время создания соответствующих серверных веб-решений. Однако среди всех пунктов наиболее важным является знание языка С# — каждый “дотнетчик” обязан им владеть на высоком уровне.
В свою очередь, перечень можно дополнить такими технологиями, как: TDD (разработка через тестирование), WCF, Unit тестирование, рефакторинг приложений. Их знание не является обязательным, однако, дает дополнительное преимущество перед другими кандидатами в глазах работодателя.
Бесплатные вебинары по схожей тематике:

Как стать Full-Stack разработчиком

Чек-лист успешной адаптации или как пройти испытательный срок в компании?

Алгоритмы и структуры данных в .NET.
Также вы можете ознакомиться со списком всех необходимых к изучению технологий на странице специальности .NET Developer. Комплексная программа обучения состоит из 49 видео курсов общей продолжительностью 346 часов. Перейдя на страницу, вы найдете много полезной информации — как для новичка, так и для разработчика, желающего углубить и дополнить свои знания.
Более подробно тему требований IT компаний к .NET разработчику рассматривал на вебинаре Виталий Емец — FullStack Developer, Microsoft Certified Specialist. Почему многие выбирают веб-направление и какими технологиями должен владеть кандидат? Ответы на эти и другие вопросы вы найдете в этом видео — “Как стать C#/.NET разработчиком?”.
ITVDN желает Вам достижения Ваших целей и готов быть надежным помощником в вопросах обучения программированию.
Как учить .NET: подробная инструкция для новичков и пару советов для опытных

Всем привет. Меня зовут Влад. Я старший .NET разработчик в компании DataArt. В IT я около семи лет, из них больше пяти работаю c .NET. Хочу дать некоторые советы тем, кто только начинает свой путь в IT как разработчик, а также тем, кто уже имеет пару лет опыта. Надеюсь, мое видение кому-то поможет на пути.
На написание этой статьи меня вдохновили несовершенные программы обучения многих курсов, а также несостоятельные, общие или слишком избыточные советы экспертов для новичков.
Речь пойдет о том, как, по-моему мнению, правильнее развиваться начинающим специалистам в мире разработки в целом и некоторые советы по развитию в мире .NET и прилегающих к нему технологий.
Добавлю оговорку: есть разные уровни новичков — интерны и джуниоры. Интерны — это те, кто не имеют опыта вовсе, обладают только теоретическими знаниями. Джуниоры — те, кто уже где-то недолго работали.
Что хотят от джуниора
В основном работодатель, нанимая начинающего специалиста, желает получить недооцененный актив. То есть изначально человека берут для развития, чтобы инвестиции работодателя окупились, и через какое-то время джуниор выполнял ту же работу так же качественно, как и специалист, который стоит на рынке дороже и имеет больше опыта.
Как ни странно, для начинающего гораздо важнее то, что называют soft skills, и знание английского языка. Но стоит учитывать, что есть вещи, которые можно исправить и которым можно научить, а есть те, которым нельзя. Например, если человек не говорит по-английски, но понимает базовый словарь и грамматику — то научить его разговорному языку — это рискованная затея. Но если джуниор уже немного разговаривает, то натаскать его за полгода вполне реально.
Если человек способен расслабленно вести беседу и проявляет, что называется, аналитические способности, не впадает в ступор от сложностей — это тоже можно отнести в разряд soft skills. Важно то, насколько человек способен доводить работу до результата, а умение общаться, правильно задавать вопросы и давать ответы — очень эффективный для этого инструмент.
Кстати, способность обучаться — тоже немаловажный фактор. Лучше взять специалиста, уже способного к самообучению, чем прививать это. Показателем могут быть, например, домашние поделки на GitHub или даже проекты в продакшене.
Ходит шутка (похожая на правду), что пройти собеседование на джуниора/интерна гораздо сложнее, чем на сеньора 🙂 Так оно и есть. Опытный специалист имеет портфолио/резюме — это уже говорит о том, что он способен приносить результат. Но если человек раньше не работал или работал мало — рекрутеру необходимо только за одно собеседование и, возможно, тестовое задание выяснить все о кандидате.
Но даже если человек хорошо показал себя на собеседовании, это еще не повод расслабляться — компания будет следить за тенденциями развития, чтобы вовремя выяснить, оправдывает ли джуниор инвестиции денег и времени в него или нет.
Где выгодны джуниоры
Существует целый ряд задач (несложный баг-фиксинг, правки верстки и UI, написание юнит-тестов), с которыми человек с небольшим количеством знаний и опыта справится за то же время, что и человек более опытный. Взять, к примеру, промышленную (enterprise) разработку, крупные проекты, где кучу времени уходит на рутину, вроде обновления проекта до актуальной версии, мердж, тестирование. Это жирный плюс в найме начинающих специалистов.
Если взять аутсорсинг и аутстаффинг (то есть перепродажу человеко-часов) в той или иной форме, то рейты, по которым продают джуниоров, не намного ниже рейтов миддл-разработчиков. А ЗП начинающих может быть значительно ниже, что делает их привлекательным активом компании, приносящим даже более высокую маржу, нежели более опытные разработчики. Опытных еще и найти гораздо сложнее — нужно платить агентствам или рекрутерам вплоть до одной зарплаты такого человека, чтобы осуществить найм. А маржа при заработке на высококлассных специалистах — низкая, они больше нужны для поддержания бизнеса в рабочем состоянии.
Первые шаги
Если вы вообще не из IT, у вас нет друзей-разработчиков, нет профильного образования, и вы совершенно ничего не понимаете — можно начать с каких-нибудь курсов. Боюсь, что оставлю сейчас без куска хлеба владельцев инфобизнесов, но в интернете можно найти достаточно бесплатных материалов, например, на торрентах. Но, естественно, я не рекомендую вам скачивать пиратский контент 🙂
Если с живым человеком-лектором вам проще, то советую курсы с большой длительностью, например от 3 до 6 месяцев. Мне кажется, это либо втянет вас в процесс, либо окончательно вам надоест, и вы поймете, что это не ваше.
Курсы не помогут вам найти работу и не помогут получить все необходимые знания для трудоустройства. Но если вы заплатите деньги, это дисциплинирует вас. Также курсы дают первую понятийную базу, от которой можно дальше отталкиваться, общее понимание предмета и что немаловажно — знакомства.
Но лучше всего иметь товарища из IT, который сможет проверить на адекватность курсы, куда вы хотите пойти, чтобы не вышло, что это банальное вытягивание денег, и вы получили хоть какую-то пользу.
Для людей, которые уже когда-то что-то кодили в универе или школе, имеют какое-то представление об IT-сфере, курсы — скорее всего, лишняя трата денег. Достаточно посмотреть их программу и далее самому искать нужные материалы.
Замечу, что любое обучение должно сопровождаться практикой. Будь то самообучение или курсы, вы должны показывать результат. Это может быть макет, если вы учите верстку, веб-приложение или мобильное — не важно. Главное, все, что вы узнаете теоретически, сразу же примените на практике.
Далее я распишу свое видение, с чего лучше начинать и как двигаться дальше в мире .NET разработки.
Hard Skills
Я разделю все сферы знаний hard skills на такие части:
- C# — синтаксис — это база. Нанимаясь на первую работу, вы должны знать хорошо хотя-бы это.
- LINQ — расширение C#, фактически его очень важная часть. Сейчас большая часть бизнес-логики пишется именно на нем.
- .NET — платформа, на которой работает все выше описанное. Понимание базовых вещей убережет вас от часов поиска в Гугле и непонятного для вас поведения проекта, если вы что-то сделали не так.
- Фреймворки — средства поверх C#, с использованием которых и ведется разработка. Для web — это MVC/WebForms/WebAPI/SignalR, для десктоп — WPF/WinForms. Для веба главное — понимать MVC. WebForms используется реже. Можно также добавить ASP.NET Core и Store App, однако проектов по ним не так много, так что начинать учить MVC — беспроигрышный вариант. Cамый популярный фреймворк для работы с данными — Entity Framework. Де-факто стандарт. Также нужно уметь работать хотя бы с одним IoC-контейнером, например Ninject, понимать, как и зачем работает Dependency Injection и почему слабо связанное приложение лучше поддерживается.
- SQL — очень часто требуется. Знание SQL — для вас огромный плюс. С .NET приложениями чаще всего используют MS SQL Server и язык запросов T-SQL.
- Шаблоны проектирования и парадигмы — даже если вы их не понимаете — то заучите. С практикой придет понимание. Шаблон сам по себе — наилучшее, найденное в ходе эволюции миллионов человеко-часов решение какой-то общей проблемы.
- Архитектурные гайды — лезть в вопросы проектирования поначалу глубоко не стоит. Но понимание, что такое SOA, N-layer, Microservices, поможет вам гораздо быстрее въезжать в суть дела.
- Базовое понимание Front-end — очень часто от бекенд-девелоперов требуют минимальные знания фронта. Возможно, достаточно JQuery, который используется в достаточном количестве проектов, заходящих в наши аутсорс-компании. Если вы человек с чистым бекенд-профилем, то, может быть, будете более интересны продуктовым компаниям, где множество людей делают большие технологические продукты, но, по-моему мнению, попасть в такую компанию новичку сложнее, нежели в аутсорс.
- Productivity tools — очень полезно приучать себя работать быстро с самого начала. Потом productivity tools сэкономят вам сотни часов времени, воспринимайте это как инвестицию.
- Системы контроля версий — средства для организации командной работы. Фрилансерам, которые работают над проектами самостоятельно, они могут быть и не нужны, но в компаниях всегда коллективная работа — там без них никак.
Для разработчиков разных уровней требуется разная степень погружения в эти направления. Давайте посмотрим, с чего начать.
Советы для интернов/джуниоров
Названия книг написаны в оригинале, можно без проблем найти русскоязычные адаптации в печатном или электронном виде.
C#
Хорошо подойдет для освоения базового синтаксиса самого языка. Лично мне никогда не нравились книги Троелсена, которые рекомендуют новичкам. По моим субъективным ощущениям, там много воды, а вот у Шилдте как раз все по делу и с примерами.
Очень важное замечание для начинающих. Если осваиваете C# с нуля, изучайте как можно детальнее именно сам язык, синтаксические конструкции и всевозможные их сочетания, пробуйте их применять, пытайтесь сами ставить себе вопросы и тут же отвечать, тестируя, как это работает, в общем-то исследовать.
Заучивать, какой тип сколько байт занимает в памяти, можно обзорно, но не стоит на этом зацикливаться. Лучше убедитесь, насколько хорошо вы понимаете примеры и сможете ли написать такое же.
Методы стандартных библиотек .NET — это энциклопедические знания, и заучивать их тоже по началу не стоит. Это гуглится за пару секунд, и куда более продуктивно будет это делать уже по мере самой работы (учебной, разумеется) над какими-то своими поделками. Так у методов будет свой «вес», и потребность в них. Следовательно, запомнятся они куда лучше.
Однако это лишь база. Необходимы еще соответствующие знания фреймворков и общее понимание ООП и многослойных, а может, и микросервисных архитектур, хотя-бы теоретическое. Реальное умение это применять приходит с опытом.
LINQ
Книжка дает исчерпывающие понимание средств LINQ в достаточном объеме для уверенной работы с ним, а с LINQ придется работать много. По сути, это огромная часть языка C#, на которой пишется немало логики. Я сам очень люблю использовать LINQ, где только смогу. Писать бизнес-логику (логику программы) в функциональном стиле (используя описательный формат преобразования данных, а не последовательный) куда лаконичнее и понятнее, как по мне. В общем в книге достаточно глубоко показаны все тонкости, рекомендую, не смотря на ее возраст. В LINQ мало что поменялось.
Бонус #1
Даю вам свою классификацию методов LINQ, которая поможет их запомнить куда лучше. Написал ее, когда сам изучал LINQ.
.NET
«CLR via C#» by Jeffrey Richter
Классика жанра. Совсем новичкам ее можно пропустить и сконцентрироваться на более практичной литературе по фреймворкам, но каждый .NET разработчик обязан ее прочитать. Книга дает базовое понимание, как устроена платформа .NET, как работают синтаксические средства.
Я бы дал некоторые советы, как читать эту книгу:
Часть 1 — Основы CLR — очень глубоко вникать не нужно, достаточно понять, что такое:
- строгие и не строгие имена сборок;
- что такое CLR, по сути, и как устроена сборка, манифест, метаданные;
- как запускается CLR через исполняемый файл exe и что еще в нем может содержаться кроме кода вызова;
- JIT-компиляция и IL код;
- CTS/CLS;
- версирование сборок.
Часть 2 — Проектирование типов — эту часть нужно хорошо изучить целиком, важная базовая часть C#/.NET.
Часть 3 — Основные типы данных — заучивать функции работы со строками нет смысла, это все легко гуглится. Особое внимание уделите:
- главе о делегатах — достаточно полная и базовая информация об этой части языка, понимание Func, Action;
- что такое StringBuilder, как организованы строки в .NET;
- интерфейсам ICollection, IEnumerable, IList;
- Nullable-типам.
Часть 4 — Ключевые механизмы — советую очень хорошо разобрать:
- концептуальный механизм уборки мусора;
- фундаментальные вещи об исключениях;
- что такое домен приложения и как он работает;
- что такое Reflection (рефлексия, отражение);
- общее понимание сериализации.
Часть 5 — Многопоточность — слишком глубоко вникать, как это работает на уровне ядра ОС, не стоит, но надо понимать общие концепции:
- про переключения контекста;
- про то, сколько памяти выделяет поток;
- что такое Task и как он соотносится с реальным потоком ОС;
- как работает синхронизация потоков на уровне приложения и ОС.
SQL
Пожалуй, самая лучшая книга по T-SQL, которую я видел для начинающих. Информация дается последовательно, детально и системно, однако в книге того издания, которое читал я, не было главы об индексах. Советую найти отдельно и изучить.
Бонус #2
Дам вам исходный код змейки, которую я написал на T-SQL. Делать такие проекты — очень хороший способ выучить язык лучше.
А теперь челлендж: кто первый напишет тетрис на T-SQL — получит от меня бутылку ирландского виски 🙂
Frameworks & Tools
Для веб-разработки рекомендую эту книгу. В ней неплохо разобраны базовые возможности ASP.NET MVC, контейнеры управления зависимостями (IoC), основы LINQ, AJAX, JQuery. Есть примеры с кодом, достаточно легко читается.
Также рекомендую очень хорошие сайты-справочники по фреймворкам на платформе .NET — Metanit.com и Professor Web. Есть очень много примеров.
Также неплохой специализированный ресурс по Entity Framework — Entity Framework Tutorial.
Productivity tools
Очень очень важно приучать себя с самого начала пользоваться средствами повышения продуктивности, чтобы не терять время на банальной механике работы. Возьмите за правило: чем больше действий вы производите на клавиатуре — то есть клавишами, а не мышью, тем быстрее вы работаете. Комбинации из горячих клавиш способны очень сильно ускорить рутину и не отнимать вашего внимания.
Обязательно установите себе ReSharper — лично я не мыслю свою работу без этого дополнения к Visual Studio. Для тех, кто использует Rider, Resharper вообще, как родной.
Если вы используете MS SQL Server Management Studio, то must have расширение — это SQL Hunting Dog. Некое подобие ReSharper’a для более быстрой навигации по сущностям базы и переключения баз.
Если ваша разработка связана с Web — осваивайте Chrome dev tools (F12 tools).
Для 99% случаев отладки кода в браузере их должно хватить. Для более хитрых случаев перехвата и изменения трафика используйте Fiddler.
Шаблоны проектирования и парадигмы
Русскоязычная книга по шаблонам проектирования, достаточно толковая, с примерами.
Парадокс шаблонов проектирования в том, что их знание чаще всего требуется от новичков, а сами шаблоны — это концентрация опыта тысяч разработчиков, и действительно научиться их применять можно только с годами. Поэтому для начала рекомендуется просто заучить формальные определения и схемы. Со временем это формирует стиль мышления, и вы будете применять шаблоны повсеместно. Самое плохое — применять шаблоны ради шаблонов, это называется over-engineering.
Также советую ознакомиться с парадигмами SOLID, главная из которых, я считаю «S» — single responsibility principle. Все остальное уже производное от нее.
Front-end
Я не рекомендую читать самую известную ортодоксальную книгу с носорогом, которая называется «JavaScript: The Definitive Guide» (Подробное руководство) by David Flanagan. Очень академичный стиль изложения, очень много воды и несущественных деталей. Конечно, если вы разработчик front-end фреймворков, то эта книга для вас. Но я все же люблю более практичный подход. Самое лучше, что есть в Рунете по Javascript, это JavaScript.ru и Learn Javascript.ru.
Информации на этих ресурсах достаточно, чтобы иметь компетенцию на уровне middle front-end разработчика. Конечно, нужен еще опыт владения технологией и фреймворками, но я говорю лишь об объеме знаний.
JQuery.page2page.ru — ресурс, который я рекомендую, если вы столкнулись с JQuery. В наших реалиях достаточно старых проектов — это может быть актуально.
Осваивать Angular, TypeScript или React вполне возможно на сайтах по официальной документации.
Из того, что мне показалось очень хорошим для вникания в React.js и современную инфраструктуру front-end разработки, это книга «Разработка веб-приложений в ReactJS» А. Хортона и Р. Вайса.
Вспомогательные средства
Очень полезны разработчикам любых уровней и направлений. Элементарные задачи — сделать скрин — отправить коллеге, записать видео — отправить клиенту — не должны вызывать трудностей.
Clip2net — утилита, которая позволяет на ходу дорисовать что-то на скриншоте и тут же его сохранить или отправить.
Jing — утилита, позволяющая в два клика записать видео с экрана, загрузить в облако и выдать ссылку на его просмотр.
Также есть онлайн-средства для тестирования небольших кусков кода, например, .NET Fiddle, или для регулярных выражений — RegExr.
Многие любят LINQPad — текстовый редактор, позволяющий тестировать LINQ2SQL или EF LINQ запросы к базе и разные куски кода без перекомпиляции тяжелых громоздких проектов.
Системы контроля версий
Сейчас в основном пользуются git-подобными системами, так что изучение контроля версий рекомендую начать именно с git.
Если вы думаете, что работа с git это обязательно заучивание команд командной строки — то это не так. Думаю нет ничего зазорного в том, чтобы использовать визуальные клиенты. Это даже проще с точки зрения разрешения конфликтов или организации работы с большим количеством файлов. Например, мне нравится SourceTree.
Для начала достаточно понимать, что такое Repository, Branch, Pull, Commit, Push, Merge, Stash. Если хотите создать свой приватный репозиторий — можете использовать BitBucket. Если хотите кому-то показать свой код, то удобно будет создать публичный репозиторий на GitHub.
Stack Overflow
Я очень рекомендую иметь там аккаунт и задавать вопросы, также по возможности давать ответы. Даже заданный вопрос может принести вам рейтинг. Например один из моих вопросов набрал 10 000 просмотров, что дало мне золотую медаль и хороший рейтинг.
Этот рейтинг можно тратить, выставляя бонус за ответы на ваши вопросы, на которые никто не хочет отвечать. С бонусом вероятность получить ответ возрастает. Меня это несколько раз спасало, когда мне нужно было срочно получить ответ. Я использовал библиотеку, на которую почти не было документации, и спросить было не у кого. В результате мои вопросы со временем очень сильно выросли в рейтинге.
Методологии разработки
Следует разобраться, что такое Agile-подход, хотя бы в теории, возможно, выучить «артефакты» Scrum.
Недавно IT Ukraine Association выложила документ с набором необходимых навыков для junior-специалистов. В своей учебе можно также ориентироваться на него. Методологии разработки и релиз-менеджмент уже занимают там важное место. Начать изучать Scrum можно прямо с Wiki.
Ясное дело, что в реальной жизни и реальных проектах все заточено под ситуацию, и некоторыми артефактами или процессуальными вещами можно жертвовать. Но тем не менее надо понимать, зачем это было придумано и как это помогает в работе. Это своего рода фреймворк взаимоотношений с клиентом, чтобы и для него разработка была более прозрачной и прогнозируемой, и команду не обижали.
Бонус #3
Даю свой список вопросов для подготовки к собеседованиям, который я составил несколько лет назад. Если ответите на все эти вопросы, можно сказать, что вы знаете C#/.NET и Core-библиотеки на уверенном middle-уровне.
Советы для разработчиков Middle/Senior уровня
Для чтения следующих книг уже желательно иметь хотя бы год-полтора опыта разработки, иначе горы теории не найдут свой отклик в вашем восприятии.
C#
Книга Джона Скита, топового комментатора со Stack Overflow. Джон — профессиональный разработчик на Java в Google, но это не помешало ему написать бестселлер про тонкости синтаксиса C#.
Очень детально разбираются нюансы синтаксиса, разница в поведении в разных версиях .NET фреймворка и просто легко читается. Если Рихтер — больше о .NET, то эта книга именно о тонкостях C# и об эволюции этих языковых средств.
T-SQL
Книга по подготовке к экзамену от «Майкрософт». Более структурного и внятного справочника по T-SQL я не находил. Темы очень четко разделены между собой, много наглядных примеров, даются все тонкости синтаксиса T-SQL. По сути, больше, чем в этой книге .NET разработчику, если он не является профессиональным Database developer’ом, знать и не нужно.
Архитектура
Эта книга — отправная точка в изучении архитектуры корпоративных приложений. В ней достаточное количество рассмотренных фундаментальных средств и понятий.
Книжка дает понимание о современных течениях в архитектурах, раскрывает понятия CQRS, DDD. Полезна для саморазвития. Читать ее или не читать — решать вам. Такие подходы вы увидите не в каждом проекте, но важно уметь оперировать категориями и шаблонами, описанными там.
Книжка Мартина Фаулера. Дается очень глубокий аналитический подход по рефакторингу и улучшению существующего кода.
Фреймворки
Если вас беспокоят вопросы производительности в старом-легаси проекте, а переписывать на чистый SQL вы не хотите — рекомендую гайд «Performance Considerations for EF 4, 5, and 6»
На Entity Framework можно писать достаточно производительный код, не прибегая к помощи Dapper’a или чистого ADO.NET, либо же переписывать уже существующий, оптимизируя его.
Также несколько книжек по более детальному разбору возможностей Entity Framework и производительности:
- «Mastering Entity Framework» by Rahul Rajat Singh
- «Entity Framework 6 Recipes» by Zeeshan Hirani (Author)
Следующие книги я не читал, но слышал рекомендации от коллег. Они могут помочь, если перед вами стоят специфические задачи в узких областях:
- Security — «.NET Framework Security» by Brian A. LaMacchia;
- Threading — «C# Threading Handbook» by Tobin Titus;
- Memory management — «Under the Hood of .NET Memory Management» by Chris Farrell.
Обзор Open-source проектов
Просмотр того, как сделаны Open-source проекты, помогает обогатить понимание и дает возможность взять себе лучшие фишки.
И еще можете глянуть самый знаменитый .NET Open-source E-commerce движок.
Нужны ли сертификаты от Microsoft?
Решать вам, в этом вопросе я не специалист. Однако скажу свое мнение.
- Компания, в которой работает достаточное количество сертифицированных спецов, получает скидки на продукты от MS, что делает вас немного приоритетнее других при найме.
- Некоторые клиенты предпочитают иметь дело с девелоперами с сертификатами. Также если вы занимаетесь удаленной работой без посредника, это может немного вас выделить.
- Иногда компания оплачивает сдачу экзаменов для своих сотрудников.
- Структурное изложение материала.
- Знания, полученные в процессе подготовки.
Могу отметить пособие по подготовке к экзамену как отличный учебник, да и вообще пособия для сдачи экзаменов по базам данных — чудесные учебные материалы.
- Потраченное время на подготовку и деньги на сдачу экзамена.
- В вопросах бывает слишком много не особо важных мелочей, которые редко применяются.
- Не скажу, что на всех экзаменах, но на тех, что видел я по веб-разработке, подготовка сводится к тому, чтобы найти базу с вопросами в интернете и заучить их.
Куда расти дальше
Рост компетенции человека возможен как в сторону софт скиллов — организации процесса обучения новичков, коучинга, организации работы команды, управления рисками на позиции проектного менеджера или CTO, так и узкой специализации — уметь делать более сложные вещи, изучать более редкие технологии или просто работать в разы быстрее других.
Могу посоветовать читать книги для общего развития, а также развития навыков в смежных специализациях. Например, по методологии проектирования UI можно ознакомиться с книгой проектировщика Apple — Джефа Раскина «Интерфейс. Новые направления в проектировании компьютерных систем».
Или же выбирайте базовые книги по проектному менеджменту: «Мифический человеко-месяц, или Как создаются программные системы» Фредерика Брукса.
Более академическая литература по проектному менеджменту — «Руководство к своду знаний по управлению проектами».
Или же можете записаться на курсы Stratoplan. Сам просмотрел пару штук, улучшил понимание процессов и людей в них. О «Стратоплане» как о курсах для менеджеров слышу только позитивные отзывы.
Куда двигаться — решать вам, но также стоит обсудить с руководством, какие специалисты более актуальны конкретно в вашей компании.
Ответы на популярные вопросы
Отвечу на несколько вопросов, которые часто перерастают в холивары из-за непонимания полной картины разработки.
Нужна ли программисту математика и алгоритмы?
Бывает по-разному. В программировании есть типичные задачи, решаемые типичными методами. Эти методы и можно назвать алгоритмами. Почти всегда все алгоритмические задачи так или иначе решены уже в каких-то библиотеках от сторонних производителей, и разработчикам остается только лишь использовать их. Так происходит в 99% случаев.
Однако если вы работаете над созданием уникальных технологических вещей — да, вам нужно в этом ориентироваться. То же самое с математикой — как ни странно, но чаще всего она нужна в геймдеве или в узкоспециализированном софте по расчетам / прогнозированию / машинному обучению и так далее. Кроме того, работа с алгоритмами и математикой расширяет умственные способности и паттерны мышления, что позволяет быстро думать и соображать.
Для входа в IT, думаю, с головой достаточно понимать:
- алгоритмы сортировки массивов (пузырек, слияние, quicksort);
- алгоритмы обхода бинарных деревьев в ширину и глубину;
- «О» большое и «о» малое, или временная сложность алгоритма;
- базовые структуры данных (стек, очередь, лист, дерево, хештейбл) и временные сложности поиска и добавления новых элементов в них.
Если вы учитесь/учились в техническом вузе — то для вас это будет относительно несложно. Но если профильного образования нет и тяги к алгоритмам тоже, развивайте свое портфолио на гитхабе, учитесь делать проекты и приносить результат.
И несколько холиварных вопросов 🙂
Что лучше — Java или C#?
В мире разработки есть более или менее уместные средства решить задачу, в том числе важный фактор — возможность найти людей, знающих технологию, и их цена. Однозначного ответа нет. На Java больше open-source, в C# более модерновый синтаксис. Java хостится на Linux, C# требует Windows, хотя .NET Core разворачивается на Linux, что делает его хорошим выбором для микросервисов под бесплатными системами управления базами данных, например PostgreSQL или MongoDB. У всех технологий есть плюсы и минусы. Все зависит от конкретной задачи.
Ставить или нет нижнее подчеркивание для приватных членов класса?
Как хотите 🙂 Однако если весь проект написан в едином стиле, его проще читать, и члены команды привыкают читать код быстрее. «C# Coding Conventions (C# Programming Guide)» — кое-что описано тут. Можно использовать StyleCop и блокировать компиляцию проекта в случае несоответствия форматированию. В целом стандартизация повышает скорость и понятность.
Что лучше — SQL или NoSQL базы данных?
Опять таки ответа нет — каждой задаче свое решение. Технологии — лишь инструментарий, решающий задачу. Очевидно, что хранить данные аналитики с достаточно плоской структурой и большим объемом удобней в NoSQL, а сущности, связанные сотнями связей и ограничений, — в реляционной базе.
Зачем эти вопросы? Своими ответами я хотел показать свое отношение к технологиям и разработке в целом. Не важно, каким молотком ты забьешь гвоздь. Важен факт забития гвоздя под нужды клиента, учитывая его потребности и возможные риски. Остальное — детали, которые ему, по сути, и не нужны.
Вот и все, если захотите со мной связаться, можете писать прямо на Facebook — Vladislav Furdak.
Все про українське ІТ в телеграмі — підписуйтеся на канал DOU
Подобається Сподобалось 15
До обраного В обраному 25
Что должен знать C#/.NET разработчик в 2023 году

![]()
13.12.2022
![]()
21004
Рейтинг: 5 . Проголосовало: 9
Вы проголосовали:
Для голосования нужно авторизироваться

- Язык программирования C#
- ООП
- Алгоритмы и структуры данных
- Шаблоны проектирования
- Базы данных
- SQL
- Entity Framework Core
- LINQ
- ASP.NET
- ASP.NET Core
- Git
- Основы FrontEnd
- Английский язык
- Итоги
На сегодняшний день .NET программист может применять свои навыки в различных сферах разработки программных продуктов:
- создание веб-приложений и веб-сервисов
- создание настольных приложений;
- создание облачных сервисов;
- создание игр;
- создание мобильных приложений.
Когда говорят о .NET разработчиках, имеют в виду программистов, которые пишут на языке С#. Этот язык программирования, как и вся платформа .NET, был создан, развивается и поддерживается компанией Microsoft, которая стабильно уже несколько десятилетий входит в ТОП-10 компаний — мировых лидеров рынка информационных технологий. Все продукты компании Microsoft созданы на платформе .NET. Какие же технологии необходимо изучить, чтобы стать .NET программистом?
Поскольку львиная доля .NET-вакансий приходится именно на веб-сегмент, данная статья будет охватывать как фундамент, которым обязаны владеть все разработчики этой платформы, так и основные технологии серверной стороны веб-девелопмента.

Любой .NET разработчик не может называться и быть таковым, если он не умеет хорошо программировать на языке C#.
Это универсальный объектно-ориентированный язык, который является мощным инструментом создания программного обеспечения с широкой областью применения. При столь высокой функциональности он является достаточно несложным в изучении и отлично подойдет тем, кто собирается сделать первый шаг навстречу программированию.
Благодаря широкому спектру применения, С# является очень востребованным языком. Различные ресурсы по поиску работы предлагают большое количество вакансий, причем, как на крупные проекты с четко определенным консервативным стеком технологий, так и в компании, которые создают новый программный продукт с применением наиболее современных инструментов.
Компания Microsoft активно развивает свое детище — .NET направление, потому C# всегда актуален, идет расширение функционала, добавляются новые возможности. Тенденция последних лет — кроссплатформенность, реализуемая в .NET Core. Огромное количество учебных материалов, качественная официальная документация, видео курсы, образовательные вебинары, дружное комьюнити — всё это создает максимально комфортные условия для грамотного поэтапного изучения данного языка.
Объектно-ориентированное программирование — это методология разработки программного обеспечения, в основе которой лежат четыре главных принципа: абстракция, инкапсуляция, наследование и полиморфизм. Поскольку C# является объектно-ориентированным языком, необходимость изучения и полного понимания ООП парадигм обязательно. Однако, есть и приятная новость: все принципы быстро и легко усваиваются во время изучения C#.
Понимание алгоритмов и структур данных – также обязательно для любого программиста.
Тема связана со специальностями:
Изучив структуры данных, вы сможете управлять сложностью своих программ, делая их более доступными для понимания, а также разрабатывать высокопроизводительные программы, которые будут эффективно работать с памятью.
Знание алгоритмов позволит вам создавать сложные конструкции для эффективного решения широкого спектра задач.
Паттерны (они же шаблоны) представляют собой архитектурные конструкции, которые описывают типичные способы решения распространенных задач, возникающих в ходе проектирования программного обеспечения. Всего существует более двух десятков шаблонов, однако знать их все — это обязанность архитектора, а не разработчика платформы .NET. Обычно в одном проекте используется небольшое количество паттернов, поэтому вам достаточно помнить лишь самые популярные из них.
Каждое приложение оперирует данными – от интернет-магазинов и банковских систем до корпоративных приложений и социальных сетей. Регистрация, авторизация и аутентификация пользователя, прием, изменение и отправка данных на сервер или даже простое сохранение конфигурации приложения – все это данные, требующие отдельного места для их хранения.
Этим хранилищем служат базы данных (БД), представляющие собой организованную структуру для приема, хранения и обработки данных различного формата – от ФИО и номеров телефона до изображений и видео контента.
Именно поэтому знания БД очень важны в том числе и для .NET разработчиков. Необходимо владеть базовой теорией по БД: основные термины, реляционные и нереляционные базы данных (вы будете работать именно с реляционными – имеющими реляционную структуру), нормализация, отношение one-to-one, one-to-many и many-to-many, поиск и упорядочение информации, работа с таблицами и т.п.
Structured Query Language — декларативный язык структурированных запросов, который создан для взаимодействия с базами данных. Особенность SQL состоит в том, что он лишь описывает необходимые компоненты и желаемые результаты, не указывая, как именно эти результаты должны быть получены.
Изучение языка запросов очень тесно связано с изучением теории баз данных, поэтому углубляясь в БД, вы непременно начнете практиковаться и набивать руку и с SQL.
Entity Framework — специальная объектно-ориентированная технология на базе фреймворка .NET, которая позволяет разработчикам получать доступ к данным, используя концептуальную объектную модель, а не непосредственно реляционную базу данных. Это дает возможность абстрагироваться от самой БД и работать с данными на более высоком уровне абстракции, который более понятен и удобен для человека. Благодаря такому подходу уменьшается количество кода, необходимого для получения доступа к базе, растет производительность и уменьшается время на поддержку объектов в приложениях, которые работают с данными.
В двух словах, эта технология позволяет программисту абстрагироваться от самой базы данных и работать с данными независимо от типа хранилища.
Language Integrated Query (язык интегрированных запросов) — это простая и удобная .NET технология доступа к данным. Особенность данного языка запросов: возможность применения ко всем источникам данных (XML-документы, XML-потоки, наборы данных ADO.NET, базы данных SQL, массивы и коллекции .NET и т. д.) одного и того же самого подхода выборки данных.
Active Server Pages для .NET — платформа, использующая среду выполнения .NET Framework и предоставляющая необходимые службы для создания серверных веб-приложений и веб-сервисов. Является развитием более ранней технологии Microsoft ASP.
ASP.NET базируется на среде выполнения Common Language Runtime (CLR), которая является основой всех приложений Microsoft .NET. Также данная платформа имеет преимущество в скорости по сравнению со скриптовыми технологиями.
Видео курсы по схожей тематике: