Talks DotNext 2018 Moscow

Best Practices

Gerald Versluis DotControl
Gerald Versluis
Day 1 / 16:30  / Track 3 / EN / Для практикующих инженеров

Creating airplane mode proof Xamarin applications

Creating offline-first, bandwidth-aware applications to enrich your user experience.

Read more
Igor Lukanin Kontur
Igor Lukanin
Day 2 / 17:30  / Track 1 / RU / Для практикующих инженеров

Surviving under load: fault-tolerant server, smart client

You'll learn how to build load-tolerant microservices and perform load testing to make sure they can sustain load.

Read more
Aleksandr Kugushev EPAM
Aleksandr Kugushev
Day 1 / 11:00  / Track 2 / RU / Введение в технологию

When to use Test Last, Test First, and TDD

Instead of fighting "Test Last vs TDD" war we'll discuss in which cases choosing either approach gives the greatest advantage.

Read more
Vladimir Khorikov
Vladimir Khorikov
Day 2 / 10:30  / Track 2 / EN / Для практикующих инженеров

Pragmatic unit testing

Unit testing is a vast topic. The industry has accumulated a huge amount of information about it during the past two decades. However, not all unit testing practices yield equal results. It is important for you as a developer to know which practices provide the best return on your efforts.

Read more
Aliaksei Harshkalep EPAM
Aliaksei Harshkalep
Day 1 / 14:30  / Track 2 / RU / Введение в технологию

Building integration test environment using Docker containers

Aliaksei will offer an approach to writing integration tests using containerization technology, which allows us to create test environment of almost any degree of complexity. He will tell how this kind of integration tests can become a part of the development process and drastically improve the project quality, drawing on real-life examples.

Read more


Vagif Abilov Miles
Vagif Abilov
Day 2 / 16:00  / Track 2 / RU / Для практикующих инженеров

Life of actors in clusters: why, when and how

Vagif will talk about a system based on actor model with built-in scalability: frameworks like Akka let you seamlessly distribute the load between multiple cluster nodes, and actors have location transparency.

Read more
Steffen Forkmann msu solutions GmbH
Steffen Forkmann
msu solutions GmbH
Day 1 / 14:30  / Track 1 / EN / Введение в технологию

Modern web development with SAFE-Stack

You will learn about the full power of SAFE-Stack, a stack which includes powerful F# to JavaScript compiler, library that brings the popular "Elm architecture" to F#, and ASP.NET Core technologies.

Read more
Maxim Arshinov HighTech Group
Maxim Arshinov
HighTech Group
Day 2 / 12:00  / Track 1 / RU / Для практикующих инженеров

Instant design

Maxim will tell about the criteria of good and bad code, how and by what we should measure them. He will review the common tasks and approaches, advantages and disadvantages. In the conclusion he will give recommendations and best practices for web apps design.

Read more
Konstantin Gustov Raiffeisenbank
Konstantin Gustov
Day 1 / 16:30  / Track 1 / RU / Введение в технологию

From monolith to microservices: history and practice

Konstantin will tell about a case of switching from monolithic to microservice architecture, give some tips and describe several situations in which these practices helped to reach the goal.

Read more
Alexey Merson
Alexey Merson
Day 1 / 18:00  / Track 3 / RU / Введение в технологию

Domain-driven design: pragmatic approach

Alexey will talk about domain-driven design: what it is, why we need it, what are its essentials and problems with implementing it.

Read more


Alexandre Mutel Unity Technologies
Alexandre Mutel
Unity Technologies
Day 2 / 14:00  / Track 2 / EN / Хардкор. Сложный низкоуровневый доклад, требующий от слушателя знаний технологии.

Behind the burst compiler, converting .NET IL to highly optimized native code by using LLVM

In this talk you will discover the work behind the burst compiler done at Unity Technologies: a solution to compile a subset of the C# language to highly optimized native code using the LLVM compiler infrastructure.

Read more
Egor Bogatov Microsoft
Egor Bogatov
Day 1 / 12:30  / Track 1 / RU / Хардкор. Сложный низкоуровневый доклад, требующий от слушателя знаний технологии.

.NET Core 2.1: Intrinsics and other micro-optimizations

This talk consists of interesting micro-optimizations, which were used in .NET Core by the developers and community members, and concentrates on newly minted API to the processor's SIMD instructions, such as SSE and AVX.

Read more
Evgeny Peshkov Kontur
Evgeny Peshkov
Day 2 / 16:00  / Track 3 / RU / Хардкор. Сложный низкоуровневый доклад, требующий от слушателя знаний технологии.

System metrics: learning to avoid pitfalls

Evgeny will tell what are the differences between various system metrics, which mistakes in metric collecting do not allow you to see performance issues, which performance issues do Process and PerformanceCounter classes have, and what is the internal design of Performance Counters and how to work with them correctly and effectively.

Read more
Konrad Kokosa Gritstep
Konrad Kokosa
Day 2 / 10:30  / Track 3 / EN / Хардкор. Сложный низкоуровневый доклад, требующий от слушателя знаний технологии.

Make your custom .NET GC — "whys" and "hows"

Learn how you can customize or even completely rewrite the GC in .NET, as well as, why you may ever want to do it.

Read more
Anatoly Popov Net2Phone
Anatoly Popov
Day 1 / 11:00  / Track 3 / RU / Для практикующих инженеров

Using Tarantool in .NET projects

Anatoly will tell about using the Tarantool DBMS and writing a connector for it. He will also touch on connector optimization and practices of writing quick code, using Span< T> and others.

Read more


Jeffrey Richter Microsoft
Jeffrey Richter
Day 1 / 11:00  / Track 1 / EN / Для практикующих инженеров


Jeff focuses on .NET Generics, on how the CLR creates type objects of generic types and memory and performance issues when using generics with reference types versus value types, and on constraints and the odd behaviors they exhibit.

Read more
Pavel Yosifovich Author of the "Windows Internals" book
Pavel Yosifovich
Author of the "Windows Internals" book
Day 2 / 12:00  / Track 2 / EN / Хардкор. Сложный низкоуровневый доклад, требующий от слушателя знаний технологии.

Windows 10 internals for .NET developers

Windows 10 is here and is progressing at a much faster cadence than in the past. This session is about Windows 10 internals features and how they impact and/or can be used by .NET developers.

Read more
Christophe Nasarre Criteo
Christophe Nasarre
Day 2 / 17:30  / Track 3 / EN / Хардкор. Сложный низкоуровневый доклад, требующий от слушателя знаний технологии.

Building your own debugging toolbox with ClrMD

You have to investigate problems live or post-mortem on tens of GB of application memory by browsing complex structures, such as the threadpool or the timer queue and… you start to spend your life typing tons of SOS commands in WinDbg… and you abandon it. Here comes ClrMD to the rescue!

Join us to learn how to write your own tools and WinDbg extensions in C# to automate your future investigations.

Read more
Raffaele Rialdi Vevy Europe
Raffaele Rialdi
Vevy Europe
Day 1 / 18:00  / Track 1 / EN / Для практикующих инженеров

Boosting memory management in interoperability scenarios

We will dig into the new APIs, language features and runtime implementations in IoT and communication scenarios. The goal is showing how these tools give us the opportunity to manage memory efficiently with low complexity in code to improve performance, code maintenance and safety.

Read more
Egor Grishechko Insolar
Egor Grishechko
Day 2 / 14:00  / Track 3 / RU / Для практикующих инженеров

ValueTask: what and why

Recently, in the new versions of language, ValueTask, task-like types and IValueTaskSource appeared. Most people don't even know they exist, and those who do know don't understand what to do with them. Egor will tell what are these new types, why we might need them and when it is and isn't reasonable to use them.

Read more
Ivan Dashkevich Kontur
Ivan Dashkevich
Day 2 / 10:30  / Track 1 / RU / Для практикующих инженеров

Yield and async-await: internals and uses

Compiler turns methods with yield return and async methods into automata. We'll discuss what exactly they are turned into, some nuances and specific aspects, and examples of tasks where these automata can be used.

Read more
Chris Bacon Google
Chris Bacon
Day 1 / 12:30  / Track 3 / EN / Готовьтесь, будет подгорать

So you want to create your own .NET runtime?

Running C#/.NET code is something we do all the time. But how does the .exe/.dll file produced by the compiler actually get executed? We'll explore some of what's going on inside the dotnet[core]/Mono runtime, giving some insight into the inner workings of .NET.

Read more


Dylan Beattie Skills Matter
Dylan Beattie
Skills Matter
Day 2 / 19:00  / Track 1 / EN / Введение в технологию

Ctrl-Alt-Del: learning to love legacy code

We'll talk about how to bring legacy code under control using continuous integration and managed deployments, explore creative ways to use common technologies like DNS to create more productive development environments, and talk about why good old Ctrl-Alt-Del might be the secret to unlocking the potential of your legacy codebase.

Read more
Jeffrey Richter Microsoft
Jeffrey Richter
Day 2 / 16:00  / Track 1 / EN / Введение в технологию

Building responsive and scalable applications

Jeff will demonstrate the importance of performing asynchronous I/O to build responsive and highly-scalable applications that efficiently use system and application resources.

Read more
Anton Tretyakov BARS Group
Anton Tretyakov
BARS Group
Day 1 / 14:30  / Track 3 / RU / Для практикующих инженеров

Implementing IQueryProvider

This talk covers the following topics:

  • what is IQueryProvider in .NET;
  • using IQueryProvider to expand IQueryable;
  • implementing your own ORM based on IQueryProvider;
  • building facade with the help of IQueryProvider.
Read more
George Polevoy Dodo Pizza
George Polevoy
Dodo Pizza
Day 2 / 17:30  / Track 2 / RU / Введение в технологию

Dodo IS performance architecture

Performance and stability of a distributed system are inextricably intertwined. We'll discuss how one influences another and how to attain good characteristics mainly by means of architecture, not runtime characteristics of specific components.

Read more
Kevin Gosse Criteo
Kevin Gosse
Day 2 / 12:00  / Track 3 / EN / Для практикующих инженеров

Extend the new WinDbg to build your own dream debugging tool

You'll explore the various extension points provided by the new WinDbg and learn how to use them to improve the user experience by turning the app into a fully featured multi-window debugger with live C#/ClrMD scripting support.

Read more
Halil İbrahim Kalkan Volosoft Computer and Technology
Halil İbrahim Kalkan
Volosoft Computer and Technology
Day 1 / 16:30  / Track 2 / EN / Для практикующих инженеров

ASP.NET Core multi-tenant architecture: Challenges and solutions

Implementation of a multi-tenant infrastructure to create SaaS applications in ASP.NET Core.

Read more
Oleg Tarasov MTS
Oleg Tarasov
Day 1 / 12:30  / Track 2 / RU / Введение в технологию

Help all the humans: Why in the world would you invent your own chat bot platform

Yes, we created our own chat bot platform. In this talk you're going to find out why we did this and what challenges chat bots encounter in a cruel human-centric world. We will also discuss some neat machine learning algorithms which help machines understand the gibberish we humans call language.

Read more