Разрушаем мифы и смотрим на принципы работы ORM. .NET ecosystem has a void in the data-access-layer space: on one side there is 17-year-old ADO.NET — a powerful but archaic and inconvenient API; on the other side there are various flavors of Microsoft's Entity Framework (EF) which appeals to beginners and those scared of SQL, but breaks down for anything non-trivial or complicated, and is also painfully slow. This void between ADO.NET and EF has been ignored by Microsoft, which has led to proliferation of third-party libraries which all try to come up with the best mix of simple APIs and data-access-patterns delivering the power and speed of ADO.NET. One example of such micro-ORM library is Dapper. When neither ADO.NET nor EF are fit for the task at hand, how does one decide what micro-ORM to choose? "For every complex problem there is an answer that is clear, simple, and wrong." We'll rethink what makes a good micro-ORM library, and compare ADO.NET, EF, and most existing state-of-the-art micro-ORM libraries, considering not only performance benchmarks but also architecture, design, APIs, and advanced features. You will come away with a deep understanding of tradeoffs and optimizations involved in building a good micro-ORM library, which will help you not only make the right micro-ORM decision for your tasks and teams, but perhaps even write your own micro-ORM, or contribute to existing OSS libraries. This is an advanced-level talk which covers low-level ADO.NET, various micro-optimizations & tricks, connection, transaction, and query patterns, etc. as well as high-level architectural concepts and advanced micro-ORM features. While you're dreaming about a Raspberry Pi IoT with a custom-GC running Apache Kafka, come to learn about what you actually do at work.
Нет ничего проще, чем отладить асинхронный код — когда про это рассказывают два профессионала WinDbg и других инструментов. Times have changed. Multi-core CPUs have become the norm and multi-threadi…
Given the new capabilities of .NET Core to run on Linux and ARM CPUs, creating an IoT application is straightforward. But don't stop at the blinking led because you would miss the most important desi…
Массовый переход от монолитов к микросервисам решает одни проблемы, но создаёт другие — взаимодействие сервисов существенно сложнее и дороже, чем взаимодействие объектов в памяти. Частично упростить …
Новых фич C# 8 много, надо про все знать. Очередной релиз C# приносит достаточно много новых фич, которые хочется обсудить. Тут присутствуют как кардинальные изменения, которые затрагивают весь язык…
Базы данных — сложная, многогранная и фундаментальная тема. Разработчику мобильных приложений, с одной стороны, неразумно тратить много времени на ее всестороннее изучение. С другой стороны, влияние …
Новый фреймворк, определяющий стандарт на ближайшие годы. A lot has happened in the past five years concerning .NET Core and ASP.NET Core development. With version 3.0 coming out, it's time to look …
Developing cross-platform apps for Windows, iOS, macOS, Android, and WebAssembly can be a complex process, especially when it comes to the user interface. Each platform has its ways of defining dynam…
. Performance is at the heart of .NET, with an incredible amount of energy invested in every release towards making the stack faster and more scalable. In this talk, Stephen Toub will walk through ex…
Создание парсеров и лексических анализаторов — затратное по времени дело. Обычно к ним прибегают при необходимости реализации различного рода формальных грамматик, в том числе предметно-ориентированн…
We'll explore the anatomy of a Blazor component in this session and see how the code generation system operates that does its work behind the scenes. Also, you'll experience advanced Blazor componen…
Ошибки и проблемы использования многопоточности в .NET. Платформа .NET предоставляет множество готовых примитивов синхронизации и потокобезопасных коллекций. Если при разработке приложения нужно реа…
Founded in April 2017, NUKE is a free, open source build automation system for C#/.NET that runs cross-platform on .NET Core, .NET Framework, and Mono. While builds are bootstrapped with conventional…
В своем докладе автор расскажет историю миграции большого энтерпрайз-приложения с MS SQL на PostgreSQL, которое не останавливалось ни на минуту в ходе этого процесса. Естественно на этом непростом пу…
Кто, если не автор Pro .NET Memory Management, расскажет, как писать собственный GC для .NET? As you may already know, starting with .NET Core 2.1 a new feature called Local GC has been added. It al…
Продолжая тему исправления чужих ошибок с целью повышения производительности, Станислав расскажет о группе техник, при помощи которых его команда достигла многократного увеличения производительности …
Вы задумывались, как ReSharper анализирует ваш код? В докладе Андрей с практическими примерами расскажет о том, как писать кросс-процедурные анализы кода и почему это теперь необходимо для самых раз…
Обзорный доклад о специфике B2B-проектов. Мы рассмотрим основные моменты и возможные варианты реализации требований, которые встречаются на проектах. На конкретных примерах мы построим гибкую модель,…
Современные приложения состоят из множества подсистем: базы данных, кеши, брокеры сообщений. Для обработки одного запроса от пользователя сервер может выполнять десятки внутренних подзапросов. Вы ска…
The SOLID principles. The five commandments of the software world. Forgotten for years, as developers focused on JavaScript frameworks with stupid names and complicated patterns. Not grasping that th…