Говоря "настройка EF", я буду подразумевать настройку контекста базы данных. Поговорим в этой статье мы о некоторой автоматизации, кастомизации и обобщениях. Какая-то информация позволит делать обыденные вещи проще, а какая-то, возможно, станет ключевым фактором при выборе ORM.
Программист C#
Пользовательские шаблоны и расширения для Visual Studio под проект (Часть 4: пользовательские расширения)
Наконец, мы подошли к кульминации серии статей по автоматизации создания однотипных классов, проектов и даже целых архитектур. И расскажу я здесь про азы создания пользовательских расширений, про подключение с помощью расширений шаблонов элементов и проектов, про создание Wizard для наших шаблонов проектов, и про то, как удобнее это все использовать.
Пользовательские шаблоны и расширения для Visual Studio под проект (Часть 3: проекты типа «шаблон»)
Прочитав предыдущие 2 статьи ([1], [2]), вы могли задуматься, а как поставить все это дело на поток? Как распространять свежие версии шаблонов, отделив доставку от разработки? Как вообще эти шаблоны разрабатывать? До сих пор мы только пользовались магией Visual Studio для их автоматического создания на основе готовых файлов. Оказывается, в Visual Studio есть готовые шаблоны проектов для шаблонов проектов и элементов (классов). Их мы и рассмотрим в этой статье.
Пользовательские шаблоны и расширения для Visual Studio под проект (Часть 2: шаблоны проектов)
В прошлый раз я рассуждал на тему расширений и шаблонов, что их можно создавать не только для общего пользования, но и для нужд конкретного проекта. А так же показал, как легко можно создать шаблон элемента (класса, например). Вы можете ознакомиться с предыдущей статьей по этой ссылке. Здесь же мы поговорим про создание шаблона проекта.
Пользовательские шаблоны и расширения для Visual Studio под проект (Часть 1: шаблоны элементов)
В магазине Visual Studio есть множество различных расширений на все случаи жизни. Есть в сети различные их подборки, которые могут упростить жизнь в общих или конкретных случаях. Однако я, почему-то, никогда не встречал шаблоны или расширения заточенные под проект.
Метиленовый синий против COVID-19? Давайте попробуем разобраться
Все мы боимся новой заразы. Привитые и не привитые. И даже те, кто не прививаются принципиально. Те кто носят маски и те кто нет. Уже есть проработанные методики лечения, но их эффективность, мягко скажем, не очень, во всяком случае по моему субъективному мнению. И вот, совершенно случайно, я наткнулся на новость, датируемую прошлым годом, в которой говорилось, что ученые из Сеченовского университета выявили эффективность метиленового синего при лечении коронавируса.
Кого вы хотите принять на работу?
Когда я принимаю решение о том, какую выбрать архитектуру приложения, или как спроектировать БД, или какие нужны подготовительные работы для старта, или о том, что написать в следующем блоке кода, я думаю. Думаю о том, что я хочу получить, о том, как это решает мою проблему, есть ли более оптимальные решения. Согласитесь, такой подход будет полезен во многих сферах, причем не только интеллектуального труда. Но в данной статье я хочу поговорить про собеседование IT специалистов. Причем, специалистов с опытом, уровня Middle и выше. Приготовьтесь, я буду немного язвить.
Нюансы при работе с EF миграциями
Данная статья не является инструкцией по работе с EF миграциями. Здесь я собрал несколько скользких моментов и попытки их обойти. Давайте начнем!
Полезные приемы для работы с EntityFramework Core
Я недавно обнаружил, что не все, кто работают с EF, умеют его готовить. Более того, не горят желанием разбираться. Сталкиваются с проблемами на самых ранних этапах — настройке.
Даже после успешной настройки появляются проблемы с запросами данных. Не потому, что люди не знают LINQ, а потому что не все можно смаппить из объектов в реляционные модели. Потому что работая с линком люди думают таблицами. Рисуют SQL запросы и пытаются перевести их в LINQ.
Об этом и, возможно, о чем-то еще я и хочу поговорить в статье.
Сквозной функционал через обертки
Когда масштабы производства небольшие, можно особо не усердствовать и все это делать прямо в методах. Постепенно, конструктор сервиса начинает обрастать входящими сервисами для выполнения БЛ и сквозного функционала. А это уже ILogger, IAuditService, INotifiesSerice.
Не знаю как Вы, а я не люблю много инъекций и большие методы, которые выполняют много действий за раз.
Можно накрутить на код какую либо реализацию АОП. В стеке .NET такие реализации делают инъекции в ваше приложение в нужные места, внешне похожи на магию 80 уровня и, зачастую, имеют проблемы с типизацией и отладкой.
Я попытался найти золотую середину. Если данные проблемы не обошли вас стороной, добро пожаловать под кат.
Доступ к свойствам внутри поля Jsonb для Npgsql
PostgreSQL имеет тип данных Jsonb, который позволяет добавлять к стандартной реляционной модели дополнительные свойства с возможностью поиска по ним.
EntityFramework Core с расширением Npgsql умеет вытягивать данные поля в тип System.String
Однако для фильтрации по Json свойствам через EF на уровне запросов приходится использовать чистый SQL, что не очень то удобно, так как нужно лезть в маппинг (если он не автоматический), искать названия полей, соответствующих свойствам моделей, поддерживать это именование. Пропадает гибкость, которую нам дает ORM.
Если вас это угнетает, так же как и меня, добро пожаловать под кат.
В конце статьи имеется ссылка на исходники!
Прослушивание разговоров и похищение клиентов
Ограничение количества выполнений метода в секунду
Требования:
- Решение должно отрабатывать как можно быстрее (иначе в нем теряется смысл)
- Решение должно быть потокобезопасным
В результате у меня получилась функция (естественно в составе отдельного класса), которая возвращает true либо false (разрешение для выполнения).
События и потоки. Часть 1
Все примеры будут написаны на языке C# для версии фреймворка 4.0 (на 4.6 все несколько проще, но все еще есть много проектов на 4.0). Так же буду пытаться придерживаться версии C# 5.0.
ChatWars — MMORPG внутри телеграм
Геймплей игры протекает в чате с Telegramm-ботом.
Идейный вдохновитель игры — менеджер по развитию платежного сервиса VISA QIWI Владимир Кольцов. Разработкой занимались двое его коллег.
От вас требуется выбрать 1 из 5 замков и развивать своего персонажа, участвуя в периодических боях замков, выполняя квесты и участвуя в Pvp боях на арене. Крафта вроде пока нет.
Игра еще сырая, но начинать качаться и фармить игры уже можно.
Присоединяйтесь!
telegram.me/ChatWarsBot
Зубные щетки. Почему они быстро приходят в негодность
Вступление
Когда я был маленький, я часто замечал, что у моих родителей зубные щетки очень быстро становятся такими, как на картинке выше. С моей такого не происходило. И это касалось не только зубных щеток, а всех щеток в доме: для чистки ковра (обычная хозяйственная щетка), для чистки обуви, даже старого веника из прутьев. Я не придавал этому значения, ведь есть вещи намного интереснее, чем задумываться о щетках. Тогда я просто решил, что это плохие щетки.
TextBlock с подсветкой текста (WPF)
<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, а разруливать это проще, если от него унаследоваться.
Information
- Rating
- 6,006-th
- Location
- Томск, Томская обл., Россия
- Date of birth
- Registered
- Activity