iTechArt logo

.NET? Да! Самое главное о платформе и ее перспективах

Development & QA

.NET сейчас активно развивается. Посудите сами, .NET Core — в топе самых популярных и любимых фреймворков по версии StackOverflow. C# входит в топ 5 наиболее популярных языков на GitHub, а ASP.NET находится в списке 30 самых активно разрабатываемых open-source-проектов. Почему .NET переживает новую волну популярности, с чего начать новичкам, и как развивается корпоративное комьюнити, рассказывают Олег Кирасов, Евгений Разумов и Дмитрий Алексейчик. Олег и Женя руководят группами разработки в Минске, а Дима — в Гродно. 

Наши собеседники
Олег Кирасов.jpg

Олег Кирасов

Group Manager iTechArt

Благодаря .NET смог имплементировать как сложнейшие enterprise-решения, так и небольшие проекты для малого бизнеса.

Евгений Разумов.jpg

Евгений Разумов

Group Manager iTechArt

.NET ассоциируется у Евгения с надежностью и поддержкой.

Дмитрий Алексейчик.jpg

Дмитрий Алексейчик

Group Manager iTechArt

.NET привлекает Дмитрия своим стремлением к совершенствованию и возможностью запускать продукты в самых разных окружениях.

Все мы когда-то и с чего-то начинали. Расскажите, как вы стартовали карьеру и почему выбрали .NET? 

ЕВГЕНИЙ РАЗУМОВ: Все началось с изучения программирования в университете. .NET и C# привлекли своей универсальностью,  обширной и понятной документацией, да и в целом, принцип поиска информации у продуктов Microsoft — один из самых удобных. .NET постоянно развивается, позволяет писать быстрые и легкие кроссплатформенные приложения и ассоциируется с надежностью и поддержкой. 

ДМИТРИЙ АЛЕКСЕЙЧИК: Я попал в .NET мир в 2007 году. Работал на мебельном производстве, где весь учет был построен на базе данных Microsoft Access. Мы писали на внутреннем языке макросов VBA, пока не увидели, что его возможностей не хватает. Стали искать замену, и выбор пал на связку .NET + Sql Server. Это решение  наиболее органично сочеталось с офисным пакетом и позволяло гибко управлять внешним видом приложения. С тех пор прошло много времени, но .NET, как и раньше, привлекает своим стремлением к совершенствованию и возможностью запускать продукты в самых разных окружениях. Например, последние мои проекты запускаются на Linux и хостятся в Docker и Kubernetes. 

ОЛЕГ КИРАСОВ: Я начинал работать на С++, когда .NET еще не существовало в природе. Переход для меня был очевиден, потому что с .NET можно было решать самые сложные задачи и концентрироваться на главном: на идее, на предмете реализации. Благодаря .NET я смог имплементировать как сложнейшие enterprise-решения, так и небольшие проекты для малого бизнеса.

Это правда, что при помощи .NET можно написать все что угодно: хоть мобильное приложение, хоть машинное обучение и ботов? 

ОЛЕГ КИРАСОВ: В мире существует множество языков программирования и фреймворков для того, чтобы запустить проект любой сложности. Но часто мы упираемся в невозможность гармонично расширять и поддерживать написанную систему. Не хочу называть .NET серебряной пулей, но, если изначально в .NET Framework входил только один стек технологий, с помощью которого можно было разрабатывать Windows и Web-приложения, то затем появились и другие реализации. Например, Xamarin для разработки мобильных iOS и Android приложений. А с выходом открытой платформы разработки .NET Core C#+Linux используется не только энтузиастами. Теперь это прекрасная альтернатива Java. С помощью платформы можно реализовать как Сloud Software-as-a-Service (SAAS) решения для малого и среднего бизнеса, так и on-premise решения для крупных предприятий.

Над какими интересными проектами на .NET работаете в компании? 

ОЛЕГ КИРАСОВ: Каждому, кто работает в iTechArt, хорошо знакома аббревиатура SMG — Solution Management Gate. Так вот, это один из проектов нашей группы. Мы занимаемся его поддержкой. Для тех, кто не знает, SMG — внутренний веб-сервис, который помогает управлять проектами и процессами в компании. Например, планирование и управление ресурсами, тайм-менеджмент и многое другое. У каждого сотрудника компании есть профиль в SMG с контактной информацией и актуальной загрузкой.
Среди коммерческих проектов выделю Dealcloud. Это крупная платформа, которая ускоряет заключение сделок и устраняет присущие традиционным CRM-системам ограничения. Клиенты могут создавать и настраивать динамический пользовательский интерфейс для отслеживания данных и их взаимосвязи. 

ЕВГЕНИЙ РАЗУМОВ: Наша группа работает над fintech-проектом ипотечного кредитования в Великобритании. Приложение построено на микросервисной архитектуре с использованием самого свежего стека. На проекте есть модули, написанные на  .NET, Java, Python и Go. По-моему, это хороший пример, когда под каждую задачу используется набор тех технологий, которые лучше всего подходят для ее решения. Также у нас есть и проекты-долгожители, которым 5 лет и больше. И хотя некоторые из них по-прежнему используют .NET Framework, задачи от этого не менее интересные.

ДМИТРИЙ АЛЕКСЕЙЧИК: Мы также разрабатываем проект для рынка Великобритании, приложение для оценки кредитоспособности пользователя. Задача — за 60 секунд дать человеку ответ, может ли он получить кредит либо рассрочку на определенные виды товаров. Заказчику нравится, что платформа разрабатывается на .NET, его ведь использование подходов, методологии и шаблонов обеспечивает удобную поддержку проекта в будущем.

Как вы считаете, .NET подходит лучше для Enterprise или для стартапов? 

ЕВГЕНИЙ РАЗУМОВ: До появления .NET Core основной сегмент, где был востребован фреймворк .NET, — крупные Enterprise-приложения со сложной логикой и большим объемом кода. Но спустя время платформа .NET Core и ее актуальная версия .NET 5.0 стали использоваться для решения более простых задач из-за скорости, легковесности, гибкости и возможности разворачивать приложения не только на дорогом сервере Windows. Это вызвало новую волну популярности .NET среди разработчиков. 

Насколько сложно новичку стартовать карьеру в .NET? 

ОЛЕГ: В .NET высокий порог входа. Инженеру нужно хорошо понимать основы объектно-ориентированного программирования, шаблоны проектирования и алгоритмы. Так как большинство проектов идут с приставкой WEB, то, фактически, нужно быть Full-stack разработчиком. Но оно того стоит. Еще добавлю от себя, что если будете идти в ногу с .NET, использовать последние наработки, то всегда будете востребованы рынком труда. По-моему, начиная работать с .NET, вы даете хороший старт своему карьерному росту:)

Что бы вы посоветовали тем, кто только начинает писать на .NET? 

ОЛЕГ КИРАСОВ: Может быть немного повторю, что сказал ранее, но на старте очень важно сформировать правильное мышление. Поэтому рекомендую изучать основы ООП, шаблоны проектирования, LINQ. Для того, чтобы лучше разобраться с паттернами, советую хороший ресурс refactoring.guru.Также не забывайте уделять внимание английскому языку. Есть даже шутка, что это первый язык, который должен знать разработчик. 

ЕВГЕНИЙ РАЗУМОВ: Я бы еще рекомендовал придерживаться баланса между теорией и практикой. В моей карьере есть пример, когда человек читал много технических книг, основной упор делал на теорию и мало времени уделял практике. По итогу у него сформировался идеализированный мир, в котором весь код написан правильно. В результате первое время ему было достаточно сложно адаптироваться к реальности, в которой не все так, как в книгах. 

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

Какие полезные ресурсы/книги могли бы посоветовать? 

ОЛЕГ КИРАСОВ:  Из русскоязычных источников могу упомянуть Habr, где удобно читать переводы со ссылками на первоисточник. Из книг, на мой взгляд, обязательны к прочтению «CLR via C#» Джеффри Рихтера, а также «Алгоритмы» и «Руководство по разработке» Стивена С. Скиена.

ДМИТРИЙ АЛЕКСЕЙЧИК: Из литературы могу посоветовать «Паттерны проектирования на платформе .NET» и «Design Patterns: Elements of Reusable Object-Oriented Software». Если вам нравятся вебинары, то  посетите вот этот сайт, а если все же больше любите читать, то здесь можно найти статьи .NET-разработчиков со всего мира. 

И последний вопрос: как развивается .NET-комьюнити в компании? 

ОЛЕГ КИРАСОВ: Сейчас мы занимаемся подбором менторской группы. Она будет помогать другим ребятам развивать различные скилы, повышать свою Seniority. В планах проводить больше внутренних митапов для обмена опытом:)

ДМИТРИЙ АЛЕКСЕЙЧИК: .NET развивается настолько быстро, что, к сожалению, не всегда успеваешь уследить за всеми статьями, митапами и конференциями. Недавно мы сами проводили для наших ребят внутренний митап Dev2Dev, где рассказывали про новые фишки С# 9.0 и .NET 5.0.

ЕВГЕНИЙ РАЗУМОВ: Мы также занимаемся созданием mentoring-программы для повышения квалификации .NET-инженеров. Часто обмен опытом происходит при личном общении. Есть ребята, которые во внерабочее время занимаются своими pet-проектами, пробуют возможности новых версий, а потом делятся своими знаниями с другими.

Олег Кирасов, менеджер группы G7

Сейчас мы занимаемся подбором менторской группы по .NET. Она будет помогать другим ребятам развивать различные скилы, повышать свою Seniority.