Как стать автором
Обновить
6
0
Анатолий @iRumba

Программист C#

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

Расширенная наcтройка EF Core

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

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

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

Пользовательские шаблоны и расширения для Visual Studio под проект (Часть 4: пользовательские расширения)

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

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

Читать далее
Рейтинг0
Комментарии6

Пользовательские шаблоны и расширения для Visual Studio под проект (Часть 3: проекты типа «шаблон»)

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

Прочитав предыдущие 2 статьи ([1], [2]), вы могли задуматься, а как поставить все это дело на поток? Как распространять свежие версии шаблонов, отделив доставку от разработки? Как вообще эти шаблоны разрабатывать? До сих пор мы только пользовались магией Visual Studio для их автоматического создания на основе готовых файлов. Оказывается, в Visual Studio есть готовые шаблоны проектов для шаблонов проектов и элементов (классов). Их мы и рассмотрим в этой статье.

Читать далее
Рейтинг0
Комментарии2

Пользовательские шаблоны и расширения для Visual Studio под проект (Часть 2: шаблоны проектов)

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

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

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

Пользовательские шаблоны и расширения для Visual Studio под проект (Часть 1: шаблоны элементов)

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

В магазине Visual Studio есть множество различных расширений на все случаи жизни. Есть в сети различные их подборки, которые могут упростить жизнь в общих или конкретных случаях. Однако я, почему-то, никогда не встречал шаблоны или расширения заточенные под проект.

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

Метиленовый синий против COVID-19? Давайте попробуем разобраться

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

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

Читать далее
Всего голосов 28: ↑2 и ↓26-24
Комментарии66

Кого вы хотите принять на работу?

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

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

Читать далее
Всего голосов 22: ↑18 и ↓4+20
Комментарии36

Нюансы при работе с EF миграциями

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

Данная статья не является инструкцией по работе с EF миграциями. Здесь я собрал несколько скользких моментов и попытки их обойти. Давайте начнем!

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

Полезные приемы для работы с EntityFramework Core

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

Я недавно обнаружил, что не все, кто работают с EF, умеют его готовить. Более того, не горят желанием разбираться. Сталкиваются с проблемами на самых ранних этапах — настройке.
Даже после успешной настройки появляются проблемы с запросами данных. Не потому, что люди не знают LINQ, а потому что не все можно смаппить из объектов в реляционные модели. Потому что работая с линком люди думают таблицами. Рисуют SQL запросы и пытаются перевести их в LINQ.

Об этом и, возможно, о чем-то еще я и хочу поговорить в статье.
Читать дальше →
Всего голосов 7: ↑1 и ↓6-5
Комментарии17

Сквозной функционал через обертки

Время на прочтение10 мин
Количество просмотров4K
При разработке мы не редко сталкиваемся с ситуацией, когда при выполнении какой-либо бизнес-логики требуется записать логи, аудиты, разослать оповещения. В общем реализовать некоторый сквозной функционал.

Когда масштабы производства небольшие, можно особо не усердствовать и все это делать прямо в методах. Постепенно, конструктор сервиса начинает обрастать входящими сервисами для выполнения БЛ и сквозного функционала. А это уже ILogger, IAuditService, INotifiesSerice.
Не знаю как Вы, а я не люблю много инъекций и большие методы, которые выполняют много действий за раз.

Можно накрутить на код какую либо реализацию АОП. В стеке .NET такие реализации делают инъекции в ваше приложение в нужные места, внешне похожи на магию 80 уровня и, зачастую, имеют проблемы с типизацией и отладкой.

Я попытался найти золотую середину. Если данные проблемы не обошли вас стороной, добро пожаловать под кат.
Читать дальше →
Всего голосов 3: ↑2 и ↓1+4
Комментарии65

Доступ к свойствам внутри поля Jsonb для Npgsql

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

PostgreSQL имеет тип данных Jsonb, который позволяет добавлять к стандартной реляционной модели дополнительные свойства с возможностью поиска по ним.


EntityFramework Core с расширением Npgsql умеет вытягивать данные поля в тип System.String


Однако для фильтрации по Json свойствам через EF на уровне запросов приходится использовать чистый SQL, что не очень то удобно, так как нужно лезть в маппинг (если он не автоматический), искать названия полей, соответствующих свойствам моделей, поддерживать это именование. Пропадает гибкость, которую нам дает ORM.


Если вас это угнетает, так же как и меня, добро пожаловать под кат.


В конце статьи имеется ссылка на исходники!

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

Прослушивание разговоров и похищение клиентов

Время на прочтение1 мин
Количество просмотров16K
Если вы работаете в сфере услуг (особенно выездных), опасайтесь того, что ваши разговоры могут прослушивать и воровать клиентов.
Читать дальше →
Всего голосов 17: ↑10 и ↓7+3
Комментарии35

Ограничение количества выполнений метода в секунду

Время на прочтение2 мин
Количество просмотров11K
Задача: разработать возможность запускать на выполнение заданное количество операций в секунду.

Требования:

  • Решение должно отрабатывать как можно быстрее (иначе в нем теряется смысл)
  • Решение должно быть потокобезопасным

В результате у меня получилась функция (естественно в составе отдельного класса), которая возвращает true либо false (разрешение для выполнения).
Читать дальше →
Всего голосов 22: ↑14 и ↓8+6
Комментарии72

События и потоки. Часть 1

Время на прочтение6 мин
Количество просмотров23K
Сразу скажу, что статья не про потоки, а про события в контексте потоков в .NET. Поэтому я не буду пытаться организовать работу потоков правильно (со всеми блокировками, колбэками, отменой и тд). Для правильной организации потоков есть другие статьи.

Все примеры будут написаны на языке C# для версии фреймворка 4.0 (на 4.6 все несколько проще, но все еще есть много проектов на 4.0). Так же буду пытаться придерживаться версии C# 5.0.
Читать дальше →
Всего голосов 22: ↑16 и ↓6+10
Комментарии94

ChatWars — MMORPG внутри телеграм

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


Геймплей игры протекает в чате с Telegramm-ботом.

Идейный вдохновитель игры — менеджер по развитию платежного сервиса VISA QIWI Владимир Кольцов. Разработкой занимались двое его коллег.

От вас требуется выбрать 1 из 5 замков и развивать своего персонажа, участвуя в периодических боях замков, выполняя квесты и участвуя в Pvp боях на арене. Крафта вроде пока нет.

Игра еще сырая, но начинать качаться и фармить игры уже можно.

Присоединяйтесь!

telegram.me/ChatWarsBot

Скриншоты


Всего голосов 22: ↑13 и ↓9+4
Комментарии14

Зубные щетки. Почему они быстро приходят в негодность

Время на прочтение2 мин
Количество просмотров28K
Оффтоп
Небольшое отступление. Я планирую написать серию статей с лайфхаками. Но это не те лайфхаки, к которым все привыкли, типа как разжечь огонь имея лишь пластиковую бутылку или как построить квадрокоптер из двух старых миксеров. В своих статьях я попытаюсь объяснить простые вещи, с которыми мы сталкиваемся регулярно и постараюсь объяснить, как делать их более эффективно, быстро и менее затратно.

Вступление


Когда я был маленький, я часто замечал, что у моих родителей зубные щетки очень быстро становятся такими, как на картинке выше. С моей такого не происходило. И это касалось не только зубных щеток, а всех щеток в доме: для чистки ковра (обычная хозяйственная щетка), для чистки обуви, даже старого веника из прутьев. Я не придавал этому значения, ведь есть вещи намного интереснее, чем задумываться о щетках. Тогда я просто решил, что это плохие щетки.
Читать дальше →
Всего голосов 126: ↑64 и ↓62+2
Комментарии79

TextBlock с подсветкой текста (WPF)

Время на прочтение13 мин
Количество просмотров13K
Привет Хабр! Я создал контрол на основе TextBlock с возможностью подсветки текста. Для начала приведу пример его использования, затем опишу, как он создавался.

Пример использования контрола
<local:HighlightTextBlock TextWrapping="Wrap">
    <local:HighlightTextBlock.HighlightRules>
        <local:HighlightRule HightlightedText="{Binding Filter, Source={x:Reference thisWindow}}">
            <local:HighlightRule.Highlights>
                <local:HighlightBackgroung Brush="Yellow"/>
                <local:HighlightForeground Brush="Black"/>
            </local:HighlightRule.Highlights>
        </local:HighlightRule>
    </local:HighlightTextBlock.HighlightRules>
    <Run FontWeight="Bold">Property:</Run>
    <Run Text="{Binding Property}"/>
</local:HighlightTextBlock>


Начало разработки


Потребовалось мне подсветить текст в TextBlock, введенный в строку поиска. На первый взгляд задача показалась простой. Пришло в голову разделить текст на 3 элемента Run, которые бы передавали в конвертер весь текст, строку поиска и свое положение (1/2/3). Средний Run имеет Backgroung.

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

Была еще мысль формировать Xaml «на лету», парсить его при помощи XamlReader и кидать в TextBlock. Но эта мысль тоже сразу отвалилась, потому что попахивает.

Следующей (и окончательной) идеей стало создать систему правил подсветки и прикрутить ее к TextBlock. Тут 2 варианта: свой контрол с блэкджеком и девочками на основе TextBlock или AttachedProperty. После недолгих раздумий, я решил, что все таки лучше создать отдельный контрол, потому что функционал подсветки может наложить некоторые ограничения на функциональность самого TextBlock, а разруливать это проще, если от него унаследоваться.
Читать дальше →
Всего голосов 9: ↑7 и ↓2+5
Комментарии14

Информация

В рейтинге
4 625-й
Откуда
Томск, Томская обл., Россия
Дата рождения
Зарегистрирован
Активность