Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Шаблон приложения Asp .Net Core 6 Web API с предустановкой и настройкой необходимых инструментов

Время на прочтение7 мин
Количество просмотров14K

Обычно моя работа связана с разработкой функционала REST веб-сервисов. Чаще всего, разработка эта ведется на базе уже существующих приложений, созданных и настроенных ранее по шаблону Web API в VisualStudio. Создавать новые приложения приходится не часто, последнее созданное мной, было еще на .NET Core 3.1, поэтому, когда возникает подобная задача, приходится тратить время на повторное изучение технологий первоначальной настройки приложения, чтобы оно отвечало всем требованиям бизнес-процесса компании, в которой я работаю. Столкнулся с этой задачей накануне, решил создать шаблон приложения (ссылка на репозиторий GitHub), в котором уже все настроено и готово. Краткое описание процесса привожу в этой статье. Постарался разбить сам процесс на независимые блоки, чтобы для реализации одного из них не приходилось изучать другие. Намеренно подробно освящаю настройку базовых функции, не вдаваясь в описание принципа работы той или иной функции - для более глубокого понимания привожу ссылки на документацию, по которой учился сам. Статья моя будет полезна для новичков в качестве отправной точки для изучения тех или иных функций .Net Core 6, а так же для специалистов, которые как и я, сосредоточены на реализации бизнес-логики приложения и требуется сократить время восстановления в памяти технологии его первоначальной настройки.

Читать далее
Всего голосов 12: ↑6 и ↓6+2
Комментарии5

Развертывание ASP.NET Core приложения в Kubernetes

Время на прочтение6 мин
Количество просмотров12K

Данная статья является краткой инструкцией по развертыванию ASP.NET Core приложения в Kubernetes с написанием Dockerfile для формирования образа (Docker image) и минимального манифеста для создания деплоймента и объекта, предоставляющего доступ к нему, – в статье будет использован ingress в исполнении nginx.

Читать далее
Всего голосов 14: ↑12 и ↓2+12
Комментарии15

.NET и HashiCorp Vault: Использование секретов в настройках .NET Core приложения

Время на прочтение6 мин
Количество просмотров8.4K

Данная статья поможет разобраться в нюансах настройки секретов HasiCorp Vault и NET приложения в Kubernetes.

Читать далее
Всего голосов 9: ↑8 и ↓1+9
Комментарии14

5 вещей, которым я научился за 20 лет программирования

Время на прочтение10 мин
Количество просмотров70K

Последние 4-5 десятилетий спрос на программистов вырос в сотни раз. По некоторым оценкам их количество удваивается каждые пять лет, и в результате программист с 5-летним опытом работы имеет стаж работы в отрасли больший, чем у половины всех ее сотрудников.

Эрик Дитрих* около 10 лет провел на должностях, где его основной функцией было написание кода. Еще 10 лет были связаны с управлением программистами, их обучением, консультированием организаций, практикой оценки кодовой базы, а в наши дни и контент-маркетингом. Но во всех этих ролях он в той или иной степени писал код. И, по своим расчетам, прошел больший путь, чем 94% работающих в отрасли. Получается некое противопоставление: программист со стажем, который общается с кучей новичков в программировании.

Специально для своего блога Эрик попытался обобщить весь свой опыт в виде кратких советов, которые он хотел бы дать молодым программистам. Под катом — наиболее важные, на взгляд автора, уроки и выводы из его 20-летней карьеры.

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

Читать далее
Всего голосов 82: ↑74 и ↓8+75
Комментарии111

Оптимизация или почему прод в огне

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров8.1K

Порой наши попытки что-то оптимизировать и принести пользу бизнесу оборачиваются нам дополнительной работой, а бизнесу - убытками.

В этой статье я опишу почему это происходит.

Читать далее
Всего голосов 16: ↑6 и ↓10-1
Комментарии15

Методы расширения в C#

Время на прочтение5 мин
Количество просмотров13K

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

Читать далее
Всего голосов 14: ↑10 и ↓4+6
Комментарии21

Гори это ИТ синим пламенем

Время на прочтение5 мин
Количество просмотров122K

Когда-то давно я мечтал стать программистом. Еще со средних класов школы начал ездить на олимпиады по программированию, писал игровые моды и просто нереально кайфовал от того, что делал. Начинал еще с Turbo Pascal, потом С, потом скриптовые языки, в универе математическое моделирование на С++ и matlab. Только в универе пришлось на теор.физике тусоваться, ибо не прошел по балах на программирование, но да ладно. Спустя 3 года я все таки решил кинуть физику, так как просто не видел денег в этой сфере в своей стране, и получил все таки первую долгожданном ИТ. Это была серверная разработка на Python.

С тех пор прошло уже 6 лет. Не могу сказать, что я сверх нерд и мое мнение авторитетное - но какой-то опыт в своей сфере все таки имею. Повидать успел с десяток различных компаний - от крупнейших в СНГ и крупных на диком западе, до мелких стартапов ( не думайте, что я во всех них успел поработать - это тема отдельная). Это печально...

Читать далее
Всего голосов 231: ↑188 и ↓43+182
Комментарии650

Проблемы unsafe кода C#

Время на прочтение5 мин
Количество просмотров14K

Случайно найдя в интернете алгоритм разворота строки с использованием unsafe кода в C# я решил протестировать, что еще интересно можно сделать используя указатели. В итоге собрал для вас 5 самых интересных примеров в этой статье.

Вы узнаете как изменить значение константы во время runtime.

Читать далее ->
Всего голосов 26: ↑23 и ↓3+25
Комментарии10

Возможно вам не нужен AutoMapper

Время на прочтение7 мин
Количество просмотров11K

Вы знали, что AutoMapper и MediatR создал один и тот же человек?

Джимми Богард создал две крайне обсуждаемые и спорные темы в .NET разработке. Если с MediatR уже разобрались, то c AutoMapper также хотелось бы расставить все точки над "ё".

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

Читать далее
Всего голосов 14: ↑12 и ↓2+10
Комментарии34

Помоги компилятору, и он поможет тебе. Тонкости работы с nullable reference типами в C#

Время на прочтение10 мин
Количество просмотров10K

Nullable reference типы появились в C# 3 года назад. За это время они смогли найти свою аудиторию. Но даже те, кто имеет дело с этим зверем, скорее всего, не знают всех его возможностей. Давайте разберёмся, как более качественно взаимодействовать с этими типами.

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии13

Быстрый консольный ввод на .NET

Время на прочтение9 мин
Количество просмотров16K

Во времена, когда .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, и о том, как сделать ввод быстрым и удобным.

Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии9

Юнит-тесты на внедрение зависимостей Microsoft.Extensions.DependencyInjection

Время на прочтение5 мин
Количество просмотров4.5K

C постепенным переходом проектов на .NET Core фреймворки все большую популярность набирает стандартная реализация внедрения зависимостей от Microsoft. При использовании любого фреймворка для внедрения зависимостей рано или поздно разработчики сталкиваются с проблемой забытой или неправильной регистрации зависимостей, что влечет за собой ошибку в рантайме приложения. В этой статье разбираемся как покрыть unit-тестами внедрение зависимостей стандартной библиотеки Microsoft.Extensions.DependencyInjection.

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии13

Как сохранить здоровье, работая за компьютером?

Время на прочтение8 мин
Количество просмотров106K
Иллюстрация

Вы заботитесь о своем здоровье?


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

Что оказалось непросто. В данной статье я расскажу о моем способе организации «правильного» рабочего дня, о том, что следует для этого делать, и где лежат грабли, на которые нельзя наступать. Тема «компьютер и здоровье» уже несколько раз поднималась на Хабре, поэтому я задумывал этот пост как статью, которую можно добавить в закладки и использовать в качестве «руководства к действию».

Читать дальше →
Всего голосов 272: ↑259 и ↓13+246
Комментарии139

NFun — expression evaluator для .Net

Время на прочтение6 мин
Количество просмотров4.3K

Представляю вам Nfun - встраиваемый язык и исполнитель выражений, который поддерживает примитивные типы, массивы, структуры и лямбда выражения. 

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

Let's make some nFun!
Всего голосов 9: ↑9 и ↓0+9
Комментарии34

Как увеличилась производительность LINQ в .NET 7?

Время на прочтение6 мин
Количество просмотров5.8K

В новой версии .NET улучшилась производительность методов Min, Max, Average и Sum для массивов и списков. Как вы думаете, во сколько раз увеличилась скорость их выполнения? В 2 раза, в 5? Нет, они стали гораздо быстрее. Посмотрим, как этого удалось достичь.

Читать далее
Всего голосов 10: ↑9 и ↓1+13
Комментарии1

Чем программисту заняться в 1990 году: осваиваем чёрную магию ассемблера

Время на прочтение17 мин
Количество просмотров26K

Итак, DeLorean доставил вас в США 1990 года. Как и полагается в таких случаях, в машине что-то сломалось, так что вам предстоит задержаться на некоторое время. Пока Док Браун занимается ремонтом, вам тоже надо чем-то заняться. 

В этой статье давайте пофантазируем о том, как могло бы выглядеть программирование в 1990 году.

Вы вспоминаете, что вы ж программист – можно заняться программированием! 

Читать далее
Всего голосов 97: ↑96 и ↓1+113
Комментарии161

Миграция микросервиса с геоданными с MS SQL на PostgreSQL

Время на прочтение12 мин
Количество просмотров8.4K

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

С точки зрения обновления технологического стека, мы воспользовались методическими рекомендациями Реестра отечественного ПО и приняли решение о переводе наших проектов на технологии со свободными лицензиями, в частности .NET 6 и PostgreSQL. Это открыло путь как к оптимизации производительности приложений и уменьшению расходов на лицензирование, так и добавлению решений компании в реестр.

В данной статье предлагаю рассмотреть путь по миграции географического микросервиса с MS SQL на PostgreSQL с фокусом на пространственные (spatial) типы данных.

Вопрос стоимости лицензий и непосредственного сравнения MS SQL vs PostgreSQL опустим, т.к. эта тема весьма хорошо раскрыта в DotNext-докладе моего коллеги, Стаса Флусова. Рекомендую к просмотру!

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии3

Что нового в .NET 7?

Время на прочтение5 мин
Количество просмотров28K

Вышел .NET 7, а это значит, что можно вдоволь насладиться различными нововведениями и фишками. Расскажем про самые интересные улучшения: C# 11, контейнеры, производительность, GC и прочее.

Читать далее
Всего голосов 40: ↑40 и ↓0+40
Комментарии36

Сумачечая производительность LINQ в .Net7

Время на прочтение3 мин
Количество просмотров15K

Исторически так сложилось, что LINQ взыскал "сомнительную" репутацию за его скромную производительность. LINQ медленный, аллоцирует память, сложно читается, поэтому обычно его используют как инструмент запросов к БД и то, зачастую сложные запросы легче написать на SQL. Даже на собеседованиях джунов просят не использовать LINQ в алгоритмах.

Однако в .NET 7 всё будет по-другому...

Подробней...
Всего голосов 32: ↑26 и ↓6+25
Комментарии26

Релокация на Бали: что нужно знать перед переездом

Время на прочтение12 мин
Количество просмотров32K

Привет, Habr. Я Ира, интернет-маркетолог и digital nomad.

С февраля этого года большая часть моих друзей покинула Россию. Пересекаясь с ними в разных странах, всегда доходит дело до разговоров о том, как и где теперь жить. И пока все обсуждают, как выросли цены на жилье в Грузии, какие есть минусы у Армении с Казахстаном и насколько легко легализоваться в Черногории, я ощущаю себя дьяволом, который нашептывает каждому: «Пс! А ведь есть Азия… Есть Бали…Там классно!». Да, у Бали есть свои нюансы, но пожив там, я поняла, что это хорошее место для временной релокации.

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

Читать далее
Всего голосов 29: ↑23 и ↓6+22
Комментарии59

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность