.NET: The Good Parts - From the CLR to the Community

    Would you like to meet John Galloway (Executive Director of the .NET Foundation), Pavel Yosifovich (author of the legendary Windows Internals and new courses at Pluralsight )? Or maybe with Alex Thyssen - 12x MVP in the Visual Studio category? Or take training with Conrad Cocos (author of Pro .NET Memory Management)? Now you have such an opportunity.


    The largest conference for .NET developers, DotNext 2019 Piter, will be held May 15-16 in St. Petersburg . Under the cut will be a structural review of the lecture program and a few words about the training.


    Once Douglas Crockford wrote the book “JavaScript: The Good Parts” and this marked the beginning of many works devoted to highlighting the best in a variety of technologies. In this hub, we will talk about the four best sections of knowledge about the .NET ecosystem that are relevant in 2019.



    As you know, work on the selection of reports begins in more than six months. Here is our caterpillar:



    As you move along this path, the boxes on the conference program page gradually fill up. Today is April 26th, only 19 days left before the conference, and this is the finish line. Speakers polish the reports to a brilliance, organizers prepare for the conference, participants purchase tickets.


    An interesting fact: the members of the Program Committee manage to not only work at the main work and make a conference - they invent their own reports and write books. Andrey Akinshin DreamWalker from JetBrains, a man who does not need to be represented, managed to complete the book “Pro .NET Benchmarking” in parallel with the preparation of the conference , with which we warmly congratulate him!


    Main topics


    The structure of the conference is not static. It changes from year to year, reflecting the most important trends in the world of .NET development. You can learn the most useful things at the moment and talk with the most sought-after speakers.


    In the spring of 2019, the list of main topics is as follows:


    • Trends - cool overview reports on the state of .NET development in general;
    • Architecture - all about good architecture;
    • Best practices - good practices in various fields of development;
    • Internals are the guts of various technologies, from compilers to libraries.

    Let's deal with each category individually.


    In this habropost not all reports are told! Rather, it is a kind of quick overview. You yourself can look at the full DotNext 2019 Piter program . I strongly advise you to do this, because no matter how you say “halva”, your mouth will not be sweet!


    Everything under the hood is the same hardcore, only for the sake of which many generally come to conferences.


    Pavel Yosifovich is known as the author of Windows Internals, WPF Cookbook, Mastering Windows C ++ App Development, and six courses at Pluralsight. If you are also interested in C ++, he also talks about it . In addition, he is a well-known developer, trainer and speaker, but in this role we practically did not see him - he almost never happens in Russia. It is a great pride and good luck that Pavel comes to DotNext for the second time. The previous time, he really liked it. In his new talk, “Building your own profiling and diagnosis tools with Event Tracing for Windows,” he will talk about how to put ETW in his service, and he will also provide many practical details.


    Christophe Nasarre is an amazing person who, in addition to 25+ years working with Microsoft technologies, has been a technical reviewer at MSPress, Addison-Wesley and other publishers since 1996, working on books like CLR via C # and the latest editions of Windows Internals . Together with Kevin Gosse, they will give a powerful talk on Debugging asynchronous scenarios in .NET . There is nothing easier than debugging asynchronous code - when two WinDbg professionals and other tools talk about it.


    Andrey Karpov works at JetBrains, where he is involved in C # language support in ReSharper and Rider products. Prior to JetBrains, he was involved in low-level programming, researching the Windows kernel, and so on. The C # language continues to develop rapidly. The upcoming release adds support for asynchronous iterators. What it is? What is it for? How it works? You can learn how to use async streams right now by visiting the talk “Yield at me, 'cause I'm awaiting” .


    Nikita Tsukanov has amazing work experience. He started in Navigator with development under WinCE / Mobile on C / C ++, made a VPN service with a cross-platform client on GTK #, the Promarket trading platform, the Mono maintain for Nokia N900, made tools for chip tuning cars, a mobile messenger with End2End -encryption, and a bunch of things. His talk “Cross-platform object-oriented interaction of C # and C ++” will present a solution for two-way transparent interaction between C ++ and C # at the interface level, which can implement both C # classes and C ++ classes. In other words, you can forget the horrors of C ++ / CLI and consider an alternative.


    Evgeny Peshkov epeshk is engaged in the general infrastructure in the company Kontur, is developing a cloud platform for hosting applications. He is interested in the internal device of .NET and Windows and uses this knowledge in practice. In the new report, “Multithreading in .NET: When Performance Is Lacking,” we look at the errors and problems of using multithreading in .NET. Let's look at a few examples when using tools from the standard .NET library led to performance drawdowns and talk about solutions tailored for specific tasks and devoid of these shortcomings.



    Many are skeptical of reports about the distant future when spacecraft plow the expanses of .NET. Fortunately, everything is much more interesting here, because the reports are conducted by well-known and respected people in the community who are worth listening to. Often, in feedback forms, people ask for a specific person to come — and the program committee is trying to fulfill these desires.


    For example, Dino Esposito will conduct two reports at once - “ASP.NET Core 3.0: State of the art” and “ASP.NET Blazor programming 101” . Firstly, these are just very popular topics. Secondly, Dino is a person who has written more than 20 books, under 1000 articles, made 500+ reports at conferences and so on and so forth - one of the most popular English-speaking .NET speakers. And thirdly, Dino has made a solid history in DotNext, making a report every year, starting in 2014, including the opening keynote of the first Moscow DotNext. Obviously, he should talk about ASP.NET Core 3.0.


    Dmitry Nesteruk mezastel , which many in the St. Petersburg .NET community already know, will talk about the latest in C # 8 . By the way, back in 2014, Dmitry made the very first report of the very first DotNext in St. Petersburg - and here he is again with us! And yet Nico Vermeir talk about the future of desktop development and Wesley Cabus opposite - of chaos testing . In general, these are the topics that are now actively discussed in the community, and that is why they got into the program.


    Separately, I want to say about John Galloway. John is executive director of the .NET Foundation, technical evangelist at Microsoft, co-author of Professional ASP.NET MVC, and well-known tutorials like the MVC Music Store , a renowned speaker and podcast. Many people already know about the .NET Foundation, but they don’t understand exactly what it really is and why even know about it. John will reveal all these questions and tell you how you can participate in this.



    Architecture is about how to organize your systems, which elements to choose, and how they should behave and interact. How to assemble large ones from small subsystems. How to choose the right architectural style that will guide the development, how to describe and convey it, and so on.


    Architectural reports undergo a particularly rigorous review by the program committee. If such a report refers to the practices developed in a project, it should be a truly successful technological project. The speaker should not only know the topic, but also intelligibly explain even the most complex abstract things in a minimum of time (hour per report). In general, this should be information that can be trusted, and not something taken from the ceiling. The key difference from, for example, the Trends category is that architectural effects will not affect today or tomorrow, and it is precisely to look at the principles tested by time that we visit such reports.


    Here it is necessary to mention, for example, the report of Vagif Abilov VagifAbilov . Wagif has been working for the Norwegian company Miles and his programming experience spans about three decades. Now he is engaged in the development of systems in F # and C #, often speaks at conferences, takes part in open source projects and supports Simple.OData.Client. His report “Life after business facilities (confession of the PLO veteran)”should be of interest to everyone who enjoys domain modeling and F #. A few years ago, tired of mutating data structures, thread synchronization and cumbersome business objects, the Wagif team switched to using F #. This report will discuss both the expectations of such a transition and the new approach to domain modeling that they have mastered. We’ll listen separately about business objects — more precisely, about their absence — and how they can be successfully replaced. Since such topics are often controversial, we decided to start the discussion right during Vagif’s report, making it interactive and inviting another popular speaker, Maxim Arshinov, marshinov .


    If your project is not a prime Legacy, then most likely it is based on some fashionable architectural concept. CQRS, for example. Or DDD. Or maybe an Actor Model? However, it makes no difference - all of them are somehow connected with the world of functional programming. Roman Nevolin nevoroman will tell us all about this in a report with the saying “Why is your architecture functional and how to live with it .


    So that you do not think that this is some kind of meeting of functionaries and F # -ists, you need to mention the reports that develop the discussion of the classical dilemma of microservices and monoliths. Sean Farmar of Particular Software (NServiceBus developers) in his Successfully decomposing your monolith report will show not only how to saw a monolith, but also how to use the DDD and SOA principles to model a simple vertical slice. The topic of DDD will be continued by Konstantin Gustov in his report “DDD in microservices: complexity versus complexity” .



    Best practices are a way to formulate successful practical experiences. If there is an optimal way to achieve the goal, then perhaps it can be applied in other places. The term “best practice” was coined in 1914 by Frederick Winslow Taylor , an American engineer, the founder of the scientific organization of labor and management. “Among the whole variety of methods and tools used at every moment of each process, there is always one method and tool that works faster and better than others . More than a hundred years have passed since then, mankind has made another great discovery - programming conferences, the best way to discover best practices!


    Among reports of this type, there are traditionally many simple introductory reports and applied reports. The most important thing in them is to clearly convey a purely practical idea so that you can come to work in a couple of days and start applying it. In the wilds of architectural astronautics, they usually do not go deep, for this there is a different set of topics.


    Who would you like to see as a speaker in this category? Let's start with Alex Thissen. He has been programming since the late 90s, has worked as a leading developer in various companies (from small startups to huge enterprise enterprises) and now teaches application developers to use Microsoft technologies, architects to design and build modern distributed applications, and develops games in their free time. His talk, “I don't feel so well ... Integrating health checks in your .NET Core solutions”as expected, it falls into the smoothie category and talks about a very specific thing: health endpoints in ASP.NET Core 2.2. How to embed them, what they are like, what happens to external dependencies like databases and HTTP endpoints. And finally, how to use it all on a cluster of containerized software.


    But Dmitry Ivanov from JetBrains has a heavier report. “Async programming in .NET: Best practices” is a story about a sore point. Deadlocks and flights with the advent of async / await did not disappear anywhere - they dug deeper and became more difficult to diagnose. The correct and incorrect patterns for writing asynchronous code will be told not by anyone, but by the technical expert JetBrains Rider and the developer of the ReSharper kernel (data structures, caches, multithreading).


    To briefly mention the other speakers, Info Support architect Edwin van Wijk with “How to get a grip on your microservices system using a service mesh” - a story about how to implement a mesh for your microservices and build basic things like routing , circuit breakers, and so on. Roberto Freato will tell us how to simplify life by hiding behind the API Gateway, but not write bicycles in the report “API gateway made easy with Ocelot and containers” , and Matthias Koch , the developer of the modern NUKE assembly system, will talk about it. .



    17 мая, сразу после основной программы конференции, пройдёт тренинг Konrad Kokosa. Он продлится с 10 до 18 часов дня.


    Это тренинг, от которого может получить пользу почти каждый .NET-разработчик. Он начинается с базовых понятий о рантайме .NET и дальше проходится по куче аспектов управления памятью. И опытный разработчик, и новичок смогут получить от тренинга многое. Даже очень продвинутому разработчику есть чему там поучиться!


    Конрад — автор книги «Pro .NET Memory Management». Более дюжины лет он продолжает работать над производительностью и архитектурными проблемами в .NET-мире, включая ускорение работы веб-приложений. Перформанс и диагностика .NET-приложений — вот специализация его тренингов. Конрад получил MVP в категории Visual Studio and Development Tools и является сооснователем https://dotnetos.org.


    Цель в том, чтобы в результате тренинга участники получили куда более глубокое представление об автоматическом управлении памятью в рантайме .NET (и во Framework, и в Core). Это позволит писать код, учитывающий работу с памятью, и диагностировать различные связанные с этим проблемы. Более того, здесь мы познакомимся не только с непосредственным применением вещей, но и с тем, как и почему они были реализованы именно таким образом, а не каким-то другим. Например, коснёмся деталей реализации сборщика мусора. Это позволит легко решать широкий спектр других вопросов, которые выходят за рамки тем тренинга.


    Следующие шаги


    Напоминаю, что конференция DotNext 2019 Piter пройдёт 15-16 мая в Санкт-Петербурге. Ознакомиться с программой можно на официальном сайте.


    You can buy tickets there .


    Note that there are different types of tickets - for example, discounts are provided for students, graduate students and teachers. There are special online tickets for those who for some reason will not be able to arrive live (obviously, such participants in a paid online broadcast will also receive all the video from the conference).


    It is important that from May 1st there will be an increase in ticket prices. Since Early Bird in December 2018, they have grown little by little. Less than a month is left before the conference, and on May 1, prices will be final. If you firmly decided to go, then it makes no sense to pull, you need to take it now.


    Have a nice upcoming May holidays and see you at DotNext 2019 Piter!


    Also popular now: