Pull to refresh
5
0
Владимир @dotnetchik

веб-разработчик

Send message

Docker для разработки C#

Reading time6 min
Views6.9K

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

С помощью Docker, приложение будет безопасно изолированно в контейнере. Есть возможность управлять и ограничивать характеристики контейнера такие как CPU, Memory и другие, а также мониторить производительность и затрачиваемые ресурсы.

Возможности Docker достаточно обширны, однако в данной статье хотелось бы остановиться на трех:

Читать далее
Total votes 13: ↑8 and ↓5+7
Comments14

Деплой .NET приложений для самых маленьких. Часть 2. Github Actions

Level of difficultyEasy
Reading time8 min
Views3.4K

В прошлой статье мы рассмотрели чрезвычайно популярный инструмент для выкатки приложений Jenkins. Мы подружили его через плагины с SSH, с GitHub, построили простой пайплайн с помощью Groovy. И вроде все здорово, все работает как должно, но все равно есть ощущение, что можно сделать лучше. И действительно, наш процесс можно улучшить, перестав проводить сборку на VPS.

Ранее для сборки мы использовали агент Jenkins, который был установлен на нашем хостинге, где и происходила сборка приложения и его выкатка. Конечно, в реальных проектах существует больше одного боевого сервера, существуют промежуточные серверы – тестовые, демо, стейдж. Не всегда и везде, конечно, но когда у вас несколько серверов, то и сборку приложений можно проводить на каких-то промежуточных, а после всех тестов и проверок, рабочее собранное приложение доставлять до прода. Но у нас все по простому, сразу в прод и агент был там же.

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

Читать далее
Total votes 19: ↑16 and ↓3+24
Comments2

Основы работы с файлами и потоками в C#

Level of difficultyEasy
Reading time9 min
Views5.9K

Работа с файлами — неотъемлемая часть многих проектов. Простая запись логов, чтение конфигурационных файлов или обработка больших данных — все это является частью взаимодействовия с файловой системой.

В этой статье мы рассмотрим основы работы с файлами и потоками в C#.

Читать далее
Total votes 17: ↑11 and ↓6+8
Comments10

Кем можно стать в IT без опыта работы

Level of difficultyEasy
Reading time7 min
Views18K

Статья посвящается студентам IT-специальностей. Когда 10 лет назад я была студенткой провинциального ВУЗа, то думала, что меня учат на программиста. Преподаватели — теоретики, доценты, профессора — были настолько же далеки от реальной разработки ПО, как программа ВУЗа от программирования и современных технологий (в ней были полугодовые курсы Delphi, Pascal, 1C и Java). В дипломе значится безликое "инженер", просить помощи было не у кого. 

Глядя на знакомых студентов и кандидатов, которые приходят на собеседования, могу сказать, что проблема актуальна до сих пор. Зачастую даже люди с опытом работы в несколько лет не понимаю, чем ещё они могли бы заниматься, кроме почти случайно выбранного направления. Сама я кодила пять лет прежде чем осознала, что моё призвание в системном и бизнес-анализе.

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

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

Много слов к картинке
Total votes 13: ↑7 and ↓6+5
Comments26

Переход на .NET Aspire из отдельных проектов. Часть 1. Перевод приложений в Aspire

Level of difficultyMedium
Reading time5 min
Views3.7K

Не так давно в свет вышел .NET Aspire - продукт для упрощения создания и публикации микросервисных приложений от Microsoft. В рамках данной статьи будет рассмотрен ручной переход на Aspire в "игрушечном" случае: пара небольших проектов, один из которых обращается к Postgres'у.

Читать далее
Total votes 8: ↑6 and ↓2+4
Comments2

Доступ к Docker Hub из России. Как подключиться к Docker Hub после блокировки

Level of difficultyMedium
Reading time2 min
Views29K

30 мая 2024 Docker Hub заблокировал пользователей из России, что повлияло на многие сервисы и проекты. В том числе на наш. В статье будет несколько способов оперативно получить доступ к Docker Hub из России.

Читать далее
Total votes 25: ↑19 and ↓6+16
Comments22

.NET Aspire — империя дотнета наносит ответный удар

Level of difficultyEasy
Reading time7 min
Views35K

Когда я первый раз услышал про .NET Aspire, я подумал что это какая-то очередная лажа от Майкрософта, про которую все забудут через неделю.

Особенно, учитывая какую дичь часто завозят в шарп (например те же ужасно спроектированные Primary Constructor'ы про которые я писал, или вот прикол-пропозал от самого Тоуба). Так что ожидания у меня, честно говоря, были ниже нуля.

Но попробовав его лично, я был, честно говоря, шокирован. Трепещите, жависты!! Трепещите гошники! Трещепищите питонисты - такого вы еще точно не видели.

Я даже представить не мог, что DevEx можно сделать настолько офигительным.

Узнать про Aspire без смс и регистрации
Total votes 38: ↑36 and ↓2+42
Comments51

Как потреблять API с ограничением по RPS в .NET приложениях

Level of difficultyEasy
Reading time11 min
Views13K


Однажды каждый C# программист получает на работе задачу по разработке интеграции с внешней системой, где ограничена максимальная частота запросов в секунду.

Интернет яростно сопротивлялся предоставить мне инструкцию к написанию такого кода, закидывая туториалами по настройке ограничения RPS на сервере, а не клиенте.

Но теперь на Хабре есть эта статья, которая научит отправлять запросы из HttpClient так, чтобы не получать 429 Too Many Requests.
Читать дальше →
Total votes 45: ↑44 and ↓1+63
Comments10

Импозантный «Композит». Как я подключал клон ZX Spectrum к современному телевизору, чтобы вернуться в детство

Level of difficultyEasy
Reading time7 min
Views16K


Как говорится, если у вас в детстве не было велосипеда, а сейчас есть BMW, то в детстве у вас всё равно не было велосипеда. У меня велосипед был, но мечтал я о компьютере ZX Spectrum, с которым познакомился в гостях у приятеля ещё в восьмом классе. Однако наша дружба со «Спекки» оказалась мимолётной, как питерское лето: собранный из дефектной «зоновской» платы и пригоршни микросхем «Ленинград-1» работал нестабильно, к тому же родители категорически запретили мне распаивать на единственном в семье цветном «Рубине» разъём RGB. Вместо него мне отдали на растерзание старый чёрно-белый дедушкин телевизор, чаще всего показывавший, как в известном мультфильме, паутину. Помучавшись со «Спектрумом» пару месяцев, я забросил его на антресоль, а вскоре скопил на IBM-совместимый «Поиск». Но желание наверстать упущенное осталось. И вот совсем недавно мне достался интересный клон «Спектрума» под названием «Композит», который я решил приспособить к современному монитору или телевизору, и попытаться хотя бы ненадолго вернуть ушедшее детство. О самом компьютере и о том, с какими неожиданными трудностями мне пришлось столкнуться — сегодняшний рассказ.
Читать дальше →
Total votes 124: ↑124 and ↓0+146
Comments58

Деплой .NET приложений для самых маленьких. Часть 0

Level of difficultyMedium
Reading time11 min
Views10K

Давным-давно, когда Linux был ещё на ядре 2.6, а PHP5 был глотком свежего воздуха, я впервые заинтересовался миром веб-технологий. Читал учебники, статьи, зависал на форумах, но все равно мало мог понять как код, который я вижу на экране, превращается в волшебные сайты с кнопками, формами и анимациями. Узнал про LAMP и его аналоги для Windows, узнал, что, оказывается, есть хостинги, где такие сайты размещаются. Как только появился внешний интернет без трафика, я поспешил перенести свои локальные поделия во внешний мир, попутно узнав про замечательный протокол FTP. Просто мир волшебных открытий был для меня, особенно когда узнал, что не нужно писать свой форум с нуля, а можно использовать что-то из phpBB, vBulletin и других уже готовых движков.

И когда я много лет спустя переключился в мир .NET, перечисленные ранее умения сыграли со мной злую шутку – я долго не мог понять, как мне найти хостинг для .NET приложений. Почему все известные мне хостинги с лёгкостью предоставляли возможность развернуть PHP приложения, причём даже предлагая какие-то предустановленные версии CMS, но днём с огнём не сыщешь хостинг под .NET. Мое непонимание принципа развертывания приложений усугубляли статьи, которые предлагали их размещать в подходящих сервисах типа Heroku, Digital Ocean или Azure – ведь это так просто и дешево…

Поэтому предлагаю максимально подробно рассмотреть вопрос публикации .NET приложений в арендованном VPS.

Читать далее
Total votes 26: ↑22 and ↓4+26
Comments31

NET hosting. Обзор вариантов и пример деплоя приложения

Level of difficultyMedium
Reading time6 min
Views2.9K

Приложения Dotnet и Mono можно развернуть на сервере разными способами. В статье мы рассмотрим специализированные решения для хостинга dotnet приложений и предоставим инструкцию по развертыванию, написанную на конкретном примере.

Читать далее
Total votes 12: ↑10 and ↓2+11
Comments8

Как задеплоить сайт в облако. Инструкция для новичков

Level of difficultyEasy
Reading time6 min
Views9.2K

Опубликовать сайт можно разными способами. Например, если проект лежит в репозитории на GitHub, можно воспользоваться GitHub Pages. Но если вы не боитесь трудностей, советуем попробовать кое-что поинтересней — разместить сайт на облачном сервере.

Новичкам этот способ может показаться сложным. Но на самом деле он очень удобен, потому что вы сможете легко масштабировать архитектуру проекта и гибко управлять мощностями сервера.
Читать дальше →
Total votes 34: ↑28 and ↓6+31
Comments18

Лучшие практики для надёжной работы с RabbitMQ

Level of difficultyEasy
Reading time13 min
Views27K

Привет, Хабр! Я Женя, архитектор интеграционной платформы в Точке, отвечаю за асинхронный обмен сообщениями между внутренними сервисами, за ESB и за брокеры сообщений.

В этой статье я постарался кратко и последовательно изложить основные моменты, о которых полезно помнить при использовании RabbitMQ, если важны стабильность обмена и сохранность данных.

В первую очередь материал рассчитан на разработчиков, которым ещё не приходилось погружаться в тонкости работы с RabbitMQ или использовать его вообще. Более опытным читателям статья может пригодиться в качестве компактной и упорядоченной выжимки из уже знакомых статей, вебинаров и многочисленных страниц документации.

Следуй за белым кроликом
Total votes 58: ↑58 and ↓0+59
Comments16

Самый простой и подробный гайд по конкурентным коллекциям в C#

Level of difficultyEasy
Reading time18 min
Views24K


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

Конкурентные коллекции в C# предлагают встроенные механизмы для обработки конкурентного доступа, что делает их мощным инструментом в программировании с конкурентным доступом.

В рамках статьи я попробую объяснить System.Collections.Concurrent настолько, насколько это возможно, включая примеры и сценарии использования. Также будет затронута тема сравнения с неизменяемыми (immutable) и замороженными (frozen) коллекциями.
Читать дальше →
Total votes 43: ↑41 and ↓2+60
Comments26

Обзор библиотеки FluentValidation. Часть 1. Первые шаги

Level of difficultyEasy
Reading time5 min
Views5.5K

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

Пройти валидацию
Total votes 11: ↑5 and ↓6+4
Comments14

Хватит маппить все руками, используй Mapster

Level of difficultyMedium
Reading time13 min
Views21K

Привет, Хабр! Меня зовут Георгий, я С#-разработчик в SimbirSoft. Хочу рассказать об опыте использования библиотеки Mapster: как он может упростить разработку, сэкономить силы и частично избавиться от рутины маппинга.

Данная статья подойдет и тем, кто только собирается открыть для себя мир автомаппинга, и тем, кто хочет найти для себя альтернативу используемой библиотеки. Для полного понимания, что тут будет происходить желательно обладать базовым пониманием C#, знать о существовании DI и подозревать, что рефлексия не так проста, как кажется.  Ну и LINQ с EF.Core, куда же без них (хотя про них достаточно просто когда-то слышать и примерно представлять, зачем они нужны).

Читать далее
Total votes 8: ↑6 and ↓2+6
Comments24

Тонкости работы short-circuit routing в ASP.NET Core 8.0

Level of difficultyMedium
Reading time9 min
Views5.1K

В статье детально и с примерами рассказываю про short-circuit routing — новую фичу Minimal API в ASP.NET Core 8.0. Она позволяет игнорировать добавленные middleware при вызове отдельных endpoint-ов. Рассмотрим, как это работает, сравним методы и немного поговорим про то, как добавляются middleware в приложение на ASP.NET Core.

Не читайте эту статью, если вам нужно просто прикрутить short-circuit routing и не париться, как оно работает, — для этого достаточно документации и обзора от Andrew Lock. У меня же после них осталось больше вопросов, чем ответов, потому я залез по самые локти в код и разобрался. Если вам тоже интересно — добро пожаловать под кат.

Хочу разобраться
Total votes 14: ↑14 and ↓0+14
Comments9

Памятка РП. Микросервисная архитектура

Level of difficultyMedium
Reading time75 min
Views18K

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

Читать далее
Total votes 4: ↑3 and ↓1+2
Comments3

Итак, вы думаете, что знаете Git? Часть вторая: новое в Git

Level of difficultyEasy
Reading time4 min
Views28K

Автор оригинала Скотт Чакон — сооснователь GitHub и основатель нового клиента GitButler. Этот клиент ставит во главу угла рабочий процесс и удобство разработки, в том числе код-ревью, и не является просто очередной обёрткой над CLI git.


Далее в нашей серии постов из трёх частей у нас новые фичи! Здесь я расскажу про пять относительно новых вещей в git, о которых вы могли не слышать, потому что ну почему вы?


Мы взглянем на:


Погружаемся!
Total votes 35: ↑34 and ↓1+40
Comments84

Валидация входных данных в фильтрах Minimal API .NET, просто и без затей

Level of difficultyMedium
Reading time6 min
Views4.3K

В последние год-два снова набирает силу тенденция обращать самое пристальное внимание на производительность разрабатываемых приложений. Тема на самом деле непростая, поскольку производительность не на пустом месте появляется и требует значительных временных ресурсов и квалификации специалистов. В данной статье обсуждается эффективный способ валидации данных для .NET. Если C# входит в круг ваших интересов, если ваши коллеги обсуждают за кофе Minimal API, эта статья определённо для вас.

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments27
1

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity