Скидка 700 BYN
на все курсы до 31 мая!
4 ноября

Язык C# и платформа .NET — братья Биба и Боба

Первые версии Windows выглядели печально — впрочем, чего еще ждать от стартапа, во главе которого стоял сын богатого адвоката из касты золотой молодежи. Операционная система работала плохо, а нормальной документации не существовало, из-за чего разработчики писали приложения чуть ли не наугад. Оптимизма не добавлял и ассортимент подходов к процессу программирования — внутри «Винды» существовали разные языки, и их многообразие мешало логичному развитию системы.

Билл Гейтс исправил творящееся безобразие простым, но элегантным решением. В 2002 году Microsoft презентует .NET Framework — платформу, которая прячет все ужасы глубоко внутри, а на каждый баг предоставляет чудо-костыль. С задачей надстройка справилась настолько хорошо, что в ноябре 2023 года «мелкомягкие» планируют показать сообществу ее восьмую по счету версию. Статус главенствующего языка приобрел C#, который изначально создавался для работы с Windows и .NET


Что такое C# и как он связан с платформой .NET

Почему когда говорят о математике, имеют в виду арабские цифры? Потому что они играют роль наиболее удобного и распространенного инструмента, позволяющего решать задачи, брать интегралы и заниматься прочими неинтересными делами. Сложно представить человека, который с серьезным лицом ведет бухгалтерию с помощью римской прописи или палочек цивилизации майя.

Аналогичным образом дела обстоят с языком C# и платформой .NET — первый становится условными «цифрами», а второй — «математикой». В мире айти по-прежнему существует и F# и Visual Basic, но 95% программ в рассматриваемой экосистеме написано на «си-шарпе».

Если обратиться за помощью к скучной справке, то C# — это язык программирования, созданный в период с 1998 по 2002 год командой экспертов Microsoft под руководством Андерса Хейлсберга и Скотта Вильтаумота. Он входит в семью C-подобных языков, а его синтаксис приближен к C++ и Java. Платформа .NET — специальная технология, предназначенная для разработки и запуска программного обеспечения.


Для чего программистам нужен C#

Индекс TIOBE рапортует, что C# — пятый по популярности язык программирования в мире (на первом месте вольготно расположился Python, феномен славы которого мы разбирали в большом материале). Без «шарпов» не могут обойтись ни банки, ни диджитал-агентства, ни крупные IT-компании. Сотрудники Microsoft пишут на нем приложения для Windows и Xbox, эксперты Tesla — корпоративные веб-сервисы, а специалисты Яндекса — софт для автоматизации бизнес-процессов.

C# — язык не универсальный, но сфер применения у него много:

  1. Десктопные приложения. Поскольку «шарпы» — язык от Microsoft, на нем удобно писать настольные программы для Windows.
  2. Веб-приложения. Здесь «шарпы» на третьем-пятом месте по популярности — после PHP и Java.
  3. Финтех. Если говорить очень грубо, то «шарпы» подходят всему, что связано с отчетами, деньгами, платежами и банковским софтом.
  4. Геймдев. Скрипты на игровом движке Unity разрабатывают с помощью C#. Блокбастер а-ля GTA с ним не сделать, но Pathfinder: Kingmaker или Subnautica — пожалуйста.
  5. Мобильные приложения. Тут «шарпы» работают в паре с Xamarin или MAUI — платформами, предназначенными для создания приложений на Android и iOS.
«Если ты пишешь маленький форум, то C#, скорее всего, тебе не подойдет, потому что гораздо проще воспользоваться инструментами PHP. Если хочешь сделать огромную платформу вроде второго «Фейсбука», тогда «шарпы» станут прекрасным бэкенд-решением. Впрочем, бывают и исключения — известный всем программистам форум Stack Overflow написан на C#», — Павел Львов, преподаватель курса C# (.NET)-разработчик в TMS.
Преимущества и недостатки языка

Плюсы и минусы «шарпов» проистекают из одного и того же. C# — это устоявшаяся экосистема, в которой нет детских ошибок. Язык открывает доступ к огромному объему хорошо проверенного кода и множеству библиотек. Какую бы задачу ни пытался решить разработчик, все вспомогательные утилиты окажутся под рукой — он сможет их скачать и использовать.

Microsoft осознанно двигает «шарпы» в сторону увеличения объема синтаксического сахара — возможностей, не влияющих на поведение программ, но делающих процесс использования языка куда более удобным. В итоге девелоперы сосредотачиваются на глобальных задачах (бизнес-логике конкретных файлов, классов и методов), не теряя времени на мелкую и рутинную работу.

В представленном векторе развития есть и одна важная проблема. Поскольку C# — это старый и устоявшийся язык, на нем написано много проектов с откровенно сложным легаси-кодом (без документации, тестов и сопроводительной или справочной информации). Поддерживать легаси на любой платформе — не так весело и приятно, как создавать все с нуля.
      «В «шарпах» есть строгая типизация, они требуют, чтобы ты создавал классы или использовал интерфейсы. Тот же TypeScript выглядит проще и «легковеснее» — там можно обходиться меньшим объемом кода. Впрочем, именно за счет типизации и высоких требований, C# почти не оставляет места для ошибок. Чем больше тебе нужно уточнить перед тем, как написать программу, тем легче потом понять, что пошло не так», — Павел Львов, преподаватель курса C# (.NET)-разработчик в TMS.
      Ключевые навыки C# разработчика

      На «шарпах» можно писать мобильные приложения, десктопные программы, серверные части сайтов и игры — поэтому библиотеки, фреймворки, подходы и шаблоны разнятся кардинально. Легко представить ситуацию, когда один разработчик встречает двух товарищей и начинает рассказывать им о своих инструментах — окажется, что ни тот ни другой об этих тулзах никогда и ничего не слышал.

      Разбираться с ключевыми навыками девелопера, владеющего «шарпами», будем на примере веба. Чтобы начать создавать серверную часть сайтов с использованием возможностей языка C#, придется освоить:

      1. Фронтенд — смежная технология изучается на базовом уровне. Учим HTML, CSS и JavaScript, пробуем верстать простые странички.
      2. Инструменты самих «шарпов» — ООП, наследование, классы, объекты, полиморфизмы, конструкторы, методы и сеттинги.
      3. Базы данных — реляционные (Microsoft SQL Server и PostgreSQL) и нереляционные (MongoDB и Redis).
      4. ORM — технологии, связывающие базы данных с языками программирования. Таких много, но выбор стоит сделать в пользу популярного Entity Framework.
      5. Инструменты платформы .NET — способы организации кода MVC и протоколы API (последние нужны для отладки взаимодействия между фронтом и бэком).
          «Если говорить про библиотеки, которые будут считаться универсальными для всех разработчиков на C# — это то, что уже есть в самом языке. Более того, мы не используем абсолютно все инструменты «шарпов» — каждый применяет небольшой объем тулзов, пригодных для конкретно своей области. Фреймворки специализированы по направлениям — они меняются в зависимости от продукта», — Павел Львов, преподаватель курса C# (.NET)-разработчик в TMS.
          Востребованность и уровень зарплат

          Судить о востребованности C# разработчиков по белорусскому рынку сложно — по данным интернет-издания devby.io, медианная зарплата специалистов в рамках этого направления в стране составляет $2 400. В Европе статистика смотрится интереснее — на сервисе Glassdoor размещено >16 000 предложений с вилкой заработных плат от 55 до 195 тыс. долларов в год.

          И там, и там работодателями чаще становятся IT-компании, финтех-бренды и организации, связанные с приборостроением и электроникой. В зоне востребованности — специалисты с опытом от 3 до 6 лет. Джунов хантят не слишком активно — для быстрого трудоустройства необходим хотя бы годовой бэкграунд.



              «Стоит ли учить язык? В зависимости от того, кем ты хочешь стать. Если желаешь быть человеком с серьезными хард-скилами, за счет которых можно уделять меньшее внимание софтовым навыкам или английскому — C# станет отличным выбором. Фронтенд-разработчики и тестировщики сталкиваются с огромной конкуренцией из-за того, что их направления предполагают либо малый уровень, либо полное отсутствие требований к хард-скилам. У C# такие требования есть — если ты им соответствуешь, с работой проблем нет», — Павел Львов, преподаватель курса C# (.NET)-разработчик в TMS.
              Превратить язык C# и платформу .NET в инструменты для поиска работы мечты можно в IT-школе TeachMeSkills. Твоими наставниками станут сотрудники международных компаний (HiQo Solutions, Concentrix, Forte Group, Godel Technologies Europe или, например, EPAM) с огромным опытом коммерческой разработки. За шесть месяцев занятий ты изучишь синтаксис «шарпов», разработаешь первое веб-приложение на ASP.NET, освоишь базы данных и познакомишься с фреймворком Entity.


                  Над материалом работал Михаил Агеев
                  Понравился материал? Поделись им с друзьями!

                  Стань востребованным IT специалистом

                  Наша цель — дать тебе знания и опыт, достаточные для трудоустройства в крупнейшие IT компании.