Доброго времени суток, уважаемые коллеги по цеху! Хочу рассказать о своём последнем проекте, написанном по фану - обёртке для трёх нейросетевых проектов: нашумевшей StableDiffusion (используется её форк InvokeAI) и более старых - lama-cleaner и rembg.
C# *
Объектно-ориентированный язык программирования
Новости
Основы Entity Framework Core. Часть [0]
Всем привет!
В этой части будет кратко рассказано о технологии Entity Framework Core, а также её установки в свой проект.
Кратко о технологии
Общая цель EF — предоставить возможность взаимодействия с данными из реляционных баз данных с использованием объектной модели, которая отображается напрямую на бизнес-объекты в создаваемых приложениях. Например, вместо того, чтобы трактовать пакет данных как коллекцию строк и столбцов, вы можете оперировать с коллекцией строго типизированных объектов, называемых сущностями. Такие сущности хранятся в специализированных классах коллекций, поддерживающих LINQ, что позволяет выполнять операции доступа к данным в коде С#.
Entity Framework Core (также известная как EF Core) представляет собой пакет объектно-реляционного отображения (object-relational mapping - ОRМ) производства Microsoft, который позволяет приложениям .NET Core хранить данные в реляционных базах данных. Entity Framework Core решает одну основную задачу: сохранение объектов .NET в базе данных (БД) и извлечение их в более позднее время.
Сравнение AutoMapper и Mapster
Использование автоматизированных инструментов преобразования объектов (object-object mapping) может помочь в организации кода и отделении ответственности за преобразования в отдельный изолированный уровень приложения.
AutoMapper — самая популярная библиотека для маппинга объектов в dotnet — NuGet-пакет скачали больше 313 миллионов раз за 11 лет существования библиотеки.
Mapster появился на 4 года позже AutoMapper и имеет 8.2 миллионов загрузок на nuget.org. Популярность отличается больше, чем на порядок, так зачем бы вообще смотреть на альтернативу AutoMapper? Дело в том, что Mapster обещает лучшую производительность и меньший объем памяти по сравнению с другими библиотеками маппинга объектов, поэтому стоит по крайней мере рассмотреть использование этой библиотеки и понять возможности для замены автомаппера на мапстер.
Добавляем поддержку Markdown в ASP.NET Core приложение. Часть 2
Первую часть можно прочитать здесь.
Когда мы работаем над сайтом, неплохо иметь под рукой простой способ управлять разделом с документацией или блогом, просто перекидывая Markdown-файлы в нужную папку, которые затем используются на этих страницах в качестве контента, аккуратно вплетенного в айдентику бренда на нашем сайте, не так ли? В этой идее нет ничего нового — большинство CMS-систем и генераторов контента именно так и делают. Но это, как правило, специализированные инструменты, обособленные от нашего веб-приложения. Вот бы здорово было, если бы у нас был простой способ добавить поддержку Markdown на страницах нашего уже существующего веб-приложения?
Давайте же взглянем на middleware-компонент ASP.NET Core, который упрощает настройку папок для Markdown-файлов, которые используются в качестве контента нашего веб-сайта.
Как создать игру в 2022. Моя история создания игр
Привет. Меня зовут Саня и мне 14 лет, я учусь в 9 классе в Москве. В этой статье я расскажу, как создал свою игру и поделюсь своим опытом в разработке. А также расскажу, как создать игру новичку в 2022 году.
UNIGINE 2.16: Asset Store, Vulkan и DX12, Даблы и Марс в Community, интеграция с ROS, .NET 6, новый менеджер окон
Состоялся релиз 2.16: мы внедрили поддержку DirectX 12 и Vulkan API, открыли Asset Store, добавили даблы и демо Марса в Community SDK, улучшили рендеринг (отражения, свечение, размытие при движении, эффекты камеры и др.). Появились новые SDK-браузер, редактор текстур и менеджер окон, и много другого полезного.
Без лишней скромности, этот релиз открывает новую главу в развитии платформы UNIGINE.
Начнем с самого интересного.
Начало работы с бесcерверными функциями Azure. Часть 2
Продолжение первой части.
Начало работы с бесcерверными функциями Azure. Часть 1
“Serverless” — это популярный в наши дни технический термин, который означает не совсем то, что мы думаем, когда его слышим. Это потому, что сервер все таки есть — на нем размещены эти самые бессерверные приложения и функции. Но дело в том, что у нас действительно создается впечатление, что никакого сервера нет, потому что нам не нужно работать с ним, заниматься его управлением или беспокоиться о таких вещах, как масштабирование, потому что все это делается за нас. Serverless functions — это не просто веб-сервисы, которые размещаются в облаке. Эти функции имеют событийно-ориентированную архитектуру и предоставляют прекрасный способ оркестровки различных служб с помощью настраиваемых триггеров и привязок, что сокращает объем кода, который нам нужно писать самим. Мы можем просто сосредоточиться на логике, которую мы хотим реализовать, не растрачивая усилия на возню с оркестровками.
Рефакторинг кода для unit тестирования
Цель статьи - показать как можно решить проблему при написании юнит тестов, когда в коде есть зависимости на внешний ресурс (база данных/сеть/файловая система).
Xamarin.Forms — определение координат нажатия на экран
Некоторые элементы управления в приложении могут реагировать на жесты - например кнопки, CollectionView, выезжающее сбоку меню у FlyoutPage. Ещё есть распознаватели жестов (GestureRecognizers), которые можно добавить элементам управления, не умеющим реагировать на касания. Можно использовать эффекты (Effects).
Но иногда надо узнать о касании в любом месте экрана и координаты этого касания. Например, для рисования пальцем или для написания пользовательских элементов управления. На андроид и iOS есть способ это сделать при помощи DependencyService. Это странно, но часть такого полезного и можно сказать базового функционала надо писать самому или покупать (https://www.mrgestures.com/).
Книга «EF Core в действии» в правильном переводе команды DotNetRu
Около трех лет назад наше сообщество DotNet.Ru приняло участие в интересном эксперименте. Взаимодействуя с издательством ДМК-пресс, члены сообщества работали над переводом на русский язык замечательной книги Конрада Кокосы «Управление памятью в .NET для профессионалов». Перевести книгу на 1000 страниц со сложным техническим текстом стало для нас настоящим вызовом, но мы с ним справились и эксперимент оказался успешным. Сообщество получило качественный перевод отличной книги.
Вдохновившись результатами эксперимента, мы принялись за следующий проект — «ASP.NET Core в действии» Эндрю Лока. Если кто не знает, Эндрю Лок — настоящий эксперт в ASP.NET Core, также у него есть прекрасный блог, в котором он делится опытом и пишет глубокие технические статьи. Вторая книга пошла еще бодрее, рассказывали про нее тут.
А сегодня мы рады представить вам наш новый релиз: книгу Джона Смита «Entity Framework Core в действии» в правильном переводе от DotNetRu. EF Core стал почти стандартом при разработке .NET приложений, использующих реляционные базы данных, и большое число разработчиков успешно применяют его в своих проектах. Эта книга представляет собой подробное руководство по работе с этим инструментом и будет интересна как новичкам, так и опытным разработчикам.
Под катом расскажем о процессе перевода и снабдим промокодом на книгу и не только.
Самописные компоненты в конвейере обработчиков ASP.NET Core: подключение и доступ к сервисам
В этой статье я хочу рассказать о том, как расширяются возможности ASP.NET Core по обработке запросов к веб-серверу с помощью самостоятельно написанных компонентов конвейера обработки.
Обычно для разработки серверной части веб-приложений (по-простому — бэка) с помощью ASP.NET Core имеет смысл использовать базирующиеся на нем фреймворки высокого уровня: MVC Core, Razor Pages и т.д.: они позволяют с минимумом усилий решать типовые задачи. Но встречаются задачи нетиповые, которые требуют для своего решения перейти на более низкий уровень (или, по крайней мере, понимать, что на этом уровне происходит) — на уровень базовых возможностей ASP.NET Core. И в этой статье как раз рассказывается об использовании одной из этих базовых возможностей — компонентов middleware, из которых создается конвейер обработки запросов к веб-серверу. Далее в статье я буду называть их компонентами-обработчиками, потому что официальный перевод из документации от MS — "ПО промежуточного слоя" — он некрасив и не описывает их функции. Конкретно в статье рассматривается, какие средства предоставляет фреймворк ASP.NET Core для создания самописных компонентов-обработчиков. И особое внимание уделено тому, как эти компоненты могут получить доступ к другой базовой возможности ASP.NET Core — сервисам, которые зарегистрированы в контейнере сервисов (он же — "DI-контейнер"), как к стандартным для ASP.NET Core, так и к самописным.
Использование GitHub в обучении студентов. Автоматизация проверок. Часть II
Это продолжение статьи про автоматизацию проверок работ студентов (первая часть).
Сегодня продолжу рассказывать про автоматизацию проверок работ студентов: проверку правильности решения (прохождение unit-тестов). И пока ещё примеры будут связаны с C#.
Понимаю, что для многих информация в статье будет "слабой" и т.п. Но, надеюсь, хоть какому-нибудь преподавателю она пригодится. Потому как, многие преподаватели программирования не знают как облегчить себе проверки студенческих работ. Даже таким простым способом.
EspMon: мониторинг CPU и GPU с помощью T-Display S3
Я любительница Fallout 4. Эту игру можно расширять бесконечно, поэтому мне до сих пор, даже спустя семь лет, интересно к ней возвращаться. Я постоянно что-то или в неё добавляю, или изменяю.
Когда у меня, наконец, появилась 2080ti, я смогла запустить её в 4К. Игра пошла настолько легко, что я решила нагрузить её вычислениями, добавив по всему ландшафту густой лес. В конце концов, я заметила, что карточка зашумела и начала потеть.
Но мне хотелось мониторить нагрузку не только по шуму системы охлаждения, а забивать экран всякими наложениями я не люблю. Поэтому я достала свой миниатюрный T-Display S3 и решила реализовать всё это на нем.
Планируете взяться за .NET MAUI? Будьте готовы к приключениям с NullReferenceException
.NET Multi-platform App UI – фреймворк, который пишут профессионалы. Тем не менее, код некоторых его функций выглядит так, будто разработчики забыли о последствиях разыменования нулевых ссылок.
Особенности реализации List в C#
List является одной из самых популярных коллекций в C#. Давайте разберёмся в некоторых особенностях работы с ним и посмотрим на внутреннюю реализацию его отдельных частей.
Новые функции внедрения зависимостей в .Net 6
Продолжаем делиться полезными материалами в backend-разработке. Осваивая новые инструменты, специалисты SimbirSoft часто читают материалы зарубежных авторов, чтобы быть в курсе актуальных тенденций. В этот раз наш выбор пал на серию материалов британского разработчика Эндрю Лока про новые возможности .NET 6. С разрешения автора мы перевели статью, в которой он разбирает функции внедрения зависимостей в .NET 6. Материал будет полезен тем, кто хочет познакомиться с нововведениями в .Net 6 при переходе на эту технологию.
Fluent Assertions — инструмент автоматизированного тестирования
Проверки в автотестах являются обязательным компонентом, так как основная задача любого теста сравнить ожидаемый результат с фактическим. Меня зовут Вадим, я специалист по тестированию, и в этой статье я хочу уделить внимание одной из частей любого автотеста – Assert. Казалось бы, какие трудности могут возникнуть с этим, на первый взгляд, простым компонентом любого автотеста? На одном из своих проектов я столкнулся с большим количеством автотестов, проблемой которых как раз и были неверно написанные проверки. Хочу рассказать о причинах возникновения этих трудностей и поделиться путём решения проблемы, который мне удалось пройти вместе с командой.
Создание .NET библиотеки от А до Я
Думаете о создании .NET библиотеки, но не знаете, в какую сторону двигаться? Уже разрабатываете нечто подобное, но хочется открыть для себя что-то новое? Ищете варианты расширить автоматизацию? Не знаете, что делать с пользователями?
Надеюсь, данная статья поможет ответить на эти и другие вопросы. На примере своей библиотеки с открытым исходным кодом – DryWetMIDI – рассмотрим различные аспекты создания подобных проектов. И хотя речь будет идти про .NET/C#, уверен, многое применимо и к другим популярным платформам и языкам программирования.
Source Generators в действии
C# 9 дал долгожданную возможность кодогенерации, интегрированную с компилятором. Тем, кто мечтал избавиться от тысяч строк шаблонного кода или попробовать метапрограммирование, стало проще это сделать.
Ранее Андрей Дятлов TessenR выступил на конференции DotNext с докладом «Source Generators в действии». А теперь, пока мы готовим следующий DotNext, сделали для Хабра текстовую расшифровку его доклада.
Что вообще такое эти Source Generators? Как их использовать? Как предоставить пользователю вашего генератора необходимую гибкость конфигурации и понятные сообщения о возникающих проблемах? Как разобраться, когда что-то пошло не так?
Ответы на все эти и другие вопросы — в тексте.
Вклад авторов
-
sidristij 1681.2 -
foto_shooter 1051.0 -
olegchir 1001.8 -
n0mo 667.0 -
sahsAGU 656.0 -
marshinov 654.6 -
timyrik20 652.6 -
kekekeks 623.4 -
DreamWalker 566.0 -
PsyHaSTe 547.4