Обычно моя работа связана с разработкой функционала REST веб-сервисов. Чаще всего, разработка эта ведется на базе уже существующих приложений, созданных и настроенных ранее по шаблону Web API в VisualStudio. Создавать новые приложения приходится не часто, последнее созданное мной, было еще на .NET Core 3.1, поэтому, когда возникает подобная задача, приходится тратить время на повторное изучение технологий первоначальной настройки приложения, чтобы оно отвечало всем требованиям бизнес-процесса компании, в которой я работаю. Столкнулся с этой задачей накануне, решил создать шаблон приложения (ссылка на репозиторий GitHub), в котором уже все настроено и готово. Краткое описание процесса привожу в этой статье. Постарался разбить сам процесс на независимые блоки, чтобы для реализации одного из них не приходилось изучать другие. Намеренно подробно освящаю настройку базовых функции, не вдаваясь в описание принципа работы той или иной функции - для более глубокого понимания привожу ссылки на документацию, по которой учился сам. Статья моя будет полезна для новичков в качестве отправной точки для изучения тех или иных функций .Net Core 6, а так же для специалистов, которые как и я, сосредоточены на реализации бизнес-логики приложения и требуется сократить время восстановления в памяти технологии его первоначальной настройки.
Пользователь
Развертывание ASP.NET Core приложения в Kubernetes
Данная статья является краткой инструкцией по развертыванию ASP.NET Core приложения в Kubernetes с написанием Dockerfile для формирования образа (Docker image) и минимального манифеста для создания деплоймента и объекта, предоставляющего доступ к нему, – в статье будет использован ingress в исполнении nginx.
.NET и HashiCorp Vault: Использование секретов в настройках .NET Core приложения
Данная статья поможет разобраться в нюансах настройки секретов HasiCorp Vault и NET приложения в Kubernetes.
5 вещей, которым я научился за 20 лет программирования
Последние 4-5 десятилетий спрос на программистов вырос в сотни раз. По некоторым оценкам их количество удваивается каждые пять лет, и в результате программист с 5-летним опытом работы имеет стаж работы в отрасли больший, чем у половины всех ее сотрудников.
Эрик Дитрих* около 10 лет провел на должностях, где его основной функцией было написание кода. Еще 10 лет были связаны с управлением программистами, их обучением, консультированием организаций, практикой оценки кодовой базы, а в наши дни и контент-маркетингом. Но во всех этих ролях он в той или иной степени писал код. И, по своим расчетам, прошел больший путь, чем 94% работающих в отрасли. Получается некое противопоставление: программист со стажем, который общается с кучей новичков в программировании.
Специально для своего блога Эрик попытался обобщить весь свой опыт в виде кратких советов, которые он хотел бы дать молодым программистам. Под катом — наиболее важные, на взгляд автора, уроки и выводы из его 20-летней карьеры.
*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.
Оптимизация или почему прод в огне
Порой наши попытки что-то оптимизировать и принести пользу бизнесу оборачиваются нам дополнительной работой, а бизнесу - убытками.
В этой статье я опишу почему это происходит.
Методы расширения в C#
В этой статье мы рассмотрим такой механизм, как методы расширения, который позволяет добавлять методы в уже созданные типы.
Гори это ИТ синим пламенем
Когда-то давно я мечтал стать программистом. Еще со средних класов школы начал ездить на олимпиады по программированию, писал игровые моды и просто нереально кайфовал от того, что делал. Начинал еще с Turbo Pascal, потом С, потом скриптовые языки, в универе математическое моделирование на С++ и matlab. Только в универе пришлось на теор.физике тусоваться, ибо не прошел по балах на программирование, но да ладно. Спустя 3 года я все таки решил кинуть физику, так как просто не видел денег в этой сфере в своей стране, и получил все таки первую долгожданном ИТ. Это была серверная разработка на Python.
С тех пор прошло уже 6 лет. Не могу сказать, что я сверх нерд и мое мнение авторитетное - но какой-то опыт в своей сфере все таки имею. Повидать успел с десяток различных компаний - от крупнейших в СНГ и крупных на диком западе, до мелких стартапов ( не думайте, что я во всех них успел поработать - это тема отдельная). Это печально...
Проблемы unsafe кода C#
Случайно найдя в интернете алгоритм разворота строки с использованием unsafe кода в C# я решил протестировать, что еще интересно можно сделать используя указатели. В итоге собрал для вас 5 самых интересных примеров в этой статье.
Вы узнаете как — изменить значение константы во время runtime.
Возможно вам не нужен AutoMapper
Вы знали, что AutoMapper и MediatR создал один и тот же человек?
Джимми Богард создал две крайне обсуждаемые и спорные темы в .NET разработке. Если с MediatR уже разобрались, то c AutoMapper также хотелось бы расставить все точки над "ё".
В этой статье хочу поговорить об истории возникновения библиотеки. О том какую задачу она была призвана решать изначально. И уделить внимание её недостаткам.
Помоги компилятору, и он поможет тебе. Тонкости работы с nullable reference типами в C#
Nullable reference типы появились в C# 3 года назад. За это время они смогли найти свою аудиторию. Но даже те, кто имеет дело с этим зверем, скорее всего, не знают всех его возможностей. Давайте разберёмся, как более качественно взаимодействовать с этими типами.
Быстрый консольный ввод на .NET
Во времена, когда .NET был закрытой технологией только для Windows, за ним и языком C# закрепилась репутация платформы, которая отлично подходит для решения бизнес-задач, но непригодна для соревновательного программирования и написания высокопроизводительного кода.
Часто приходится слышать, что "шарпы медленные", особенно в контексте алгоритмических задач, например с timus.online и codeforces.com. И, увы, не только слышать, но и сталкиваться с реальными проблемами, связанными с особенностями платформы, получая Wrong Answer, Runtime Error, Memory Limit, Time Limit при корректном алгоритме.
Большинство этих проблем кроется в особенностях консольного ввода и вывода. Да и часто куда проще написать cin >> n
или sc.nextInt()
, чем int.Parse(Console.ReadLine())
или Console.ReadLine().Split().Select(int.Parse).ToArray()
, из-за чего выбор падает на другой язык.
Далее я расскажу о распространённых проблемах с консольным вводом-выводом в .NET, и о том, как сделать ввод быстрым и удобным.
Юнит-тесты на внедрение зависимостей Microsoft.Extensions.DependencyInjection
C постепенным переходом проектов на .NET Core фреймворки все большую популярность набирает стандартная реализация внедрения зависимостей от Microsoft. При использовании любого фреймворка для внедрения зависимостей рано или поздно разработчики сталкиваются с проблемой забытой или неправильной регистрации зависимостей, что влечет за собой ошибку в рантайме приложения. В этой статье разбираемся как покрыть unit-тестами внедрение зависимостей стандартной библиотеки Microsoft.Extensions.DependencyInjection.
Как сохранить здоровье, работая за компьютером?
Вы заботитесь о своем здоровье?
Лично для меня возможность свободно организовывать рабочее время стала главным доводом «за», когда я решил оставить офис и присоединиться к фрилансерам. За годы, проведенные в компании, я добился многих целей, которые были мне интересны, заплатив за это своим зрением, осанкой и истраченным временем. Основным уроком, который я из этого вынес, стало то, что успех, достигнутый за счет подорванного здоровья, не стоит потраченных на него усилий. Перенеся большую часть своей работы домой, я поставил задачу организовать время, проводимое за компьютером, так, чтобы снизить его воздействие на здоровье до минимума.
Что оказалось непросто. В данной статье я расскажу о моем способе организации «правильного» рабочего дня, о том, что следует для этого делать, и где лежат грабли, на которые нельзя наступать. Тема «компьютер и здоровье» уже несколько раз поднималась на Хабре, поэтому я задумывал этот пост как статью, которую можно добавить в закладки и использовать в качестве «руководства к действию».
NFun — expression evaluator для .Net
Представляю вам Nfun - встраиваемый язык и исполнитель выражений, который поддерживает примитивные типы, массивы, структуры и лямбда выражения.
Вероятнее всего, вы уже встречали задачи, требующие такой инструмент, и в этой статье я хочу показать примеры его применения, его возможности и почему это может быть вам полезно.
Как увеличилась производительность LINQ в .NET 7?
В новой версии .NET улучшилась производительность методов Min, Max, Average и Sum для массивов и списков. Как вы думаете, во сколько раз увеличилась скорость их выполнения? В 2 раза, в 5? Нет, они стали гораздо быстрее. Посмотрим, как этого удалось достичь.
Чем программисту заняться в 1990 году: осваиваем чёрную магию ассемблера
Итак, DeLorean доставил вас в США 1990 года. Как и полагается в таких случаях, в машине что-то сломалось, так что вам предстоит задержаться на некоторое время. Пока Док Браун занимается ремонтом, вам тоже надо чем-то заняться.
В этой статье давайте пофантазируем о том, как могло бы выглядеть программирование в 1990 году.
Вы вспоминаете, что вы ж программист – можно заняться программированием!
Миграция микросервиса с геоданными с MS SQL на PostgreSQL
Не секрет, что тема перехода в IT-сфере на технологии, не требующие дорогостоящего лицензирования становится всё более актуальной. В то же время, очевидно и стремление компаний попасть в Реестр отечественного ПО, чтобы получить разного рода преференции для себя и своих сотрудников.
С точки зрения обновления технологического стека, мы воспользовались методическими рекомендациями Реестра отечественного ПО и приняли решение о переводе наших проектов на технологии со свободными лицензиями, в частности .NET 6 и PostgreSQL. Это открыло путь как к оптимизации производительности приложений и уменьшению расходов на лицензирование, так и добавлению решений компании в реестр.
В данной статье предлагаю рассмотреть путь по миграции географического микросервиса с MS SQL на PostgreSQL с фокусом на пространственные (spatial) типы данных.
Вопрос стоимости лицензий и непосредственного сравнения MS SQL vs PostgreSQL опустим, т.к. эта тема весьма хорошо раскрыта в DotNext-докладе моего коллеги, Стаса Флусова. Рекомендую к просмотру!
Что нового в .NET 7?
Вышел .NET 7, а это значит, что можно вдоволь насладиться различными нововведениями и фишками. Расскажем про самые интересные улучшения: C# 11, контейнеры, производительность, GC и прочее.
Сумачечая производительность LINQ в .Net7
Исторически так сложилось, что LINQ взыскал "сомнительную" репутацию за его скромную производительность. LINQ медленный, аллоцирует память, сложно читается, поэтому обычно его используют как инструмент запросов к БД и то, зачастую сложные запросы легче написать на SQL. Даже на собеседованиях джунов просят не использовать LINQ в алгоритмах.
Однако в .NET 7 всё будет по-другому...
Релокация на Бали: что нужно знать перед переездом
Привет, Habr. Я Ира, интернет-маркетолог и digital nomad.
С февраля этого года большая часть моих друзей покинула Россию. Пересекаясь с ними в разных странах, всегда доходит дело до разговоров о том, как и где теперь жить. И пока все обсуждают, как выросли цены на жилье в Грузии, какие есть минусы у Армении с Казахстаном и насколько легко легализоваться в Черногории, я ощущаю себя дьяволом, который нашептывает каждому: «Пс! А ведь есть Азия… Есть Бали…Там классно!». Да, у Бали есть свои нюансы, но пожив там, я поняла, что это хорошее место для временной релокации.
В этом материале я постаралась собрать ответы на самые частые вопросы, которые возникают у людей при мысли о переезде на остров. Надеюсь, этот гайд поможет сформировать представление о Бали и, возможно, подтолкнет приехать сюда хотя бы на пару месяцев.
Информация
- В рейтинге
- Не участвует
- Зарегистрирован
- Активность