Pull to refresh
6
0
Анатолий @iRumba

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

Send message

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

Reading time11 min
Views7.3K

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

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

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

Reading time7 min
Views2.9K

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

Читать далее
Rating0
Comments6

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

Reading time5 min
Views3.8K

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

Читать далее
Rating0
Comments2

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

Reading time3 min
Views5.6K

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

Читать далее
Total votes 4: ↑4 and ↓0+4
Comments7

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

Reading time6 min
Views8.6K

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

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments4

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

Reading time4 min
Views56K

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

Читать далее
Total votes 28: ↑2 and ↓26-24
Comments66

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

Reading time5 min
Views12K

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

Читать далее
Total votes 22: ↑18 and ↓4+20
Comments36

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

Reading time6 min
Views8.3K
Всем привет.

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

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

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

Reading time10 min
Views4K
При разработке мы не редко сталкиваемся с ситуацией, когда при выполнении какой-либо бизнес-логики требуется записать логи, аудиты, разослать оповещения. В общем реализовать некоторый сквозной функционал.

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

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

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

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

Reading time4 min
Views9.1K

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


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


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


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


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

Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments8

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

Reading time2 min
Views11K
Задача: разработать возможность запускать на выполнение заданное количество операций в секунду.

Требования:

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

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

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

Reading time6 min
Views23K
Сразу скажу, что статья не про потоки, а про события в контексте потоков в .NET. Поэтому я не буду пытаться организовать работу потоков правильно (со всеми блокировками, колбэками, отменой и тд). Для правильной организации потоков есть другие статьи.

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

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

Reading time1 min
Views4.9K


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

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

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

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

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

telegram.me/ChatWarsBot

Скриншоты


Total votes 22: ↑13 and ↓9+4
Comments14

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

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

Вступление


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

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

Reading time13 min
Views13K
Привет Хабр! Я создал контрол на основе 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, а разруливать это проще, если от него унаследоваться.
Читать дальше →
Total votes 9: ↑7 and ↓2+5
Comments14

Information

Rating
Does not participate
Location
Томск, Томская обл., Россия
Date of birth
Registered
Activity