Please enable JavaScript to use this page!

AllTalks site logo
🍔

Кросс процедурный анализ потока управления

Вы задумывались, как ReSharper анализирует ваш код? В докладе Андрей с практическими примерами расскажет о том, как писать кросс-процедурные анализы кода и почему это теперь необходимо для самых разнообразных анализаторов C#-кода, неважно, написаны они на базе ReSharper, Roslyn или собственных моделях кода. В качестве примера в общих чертах будет описано, как работает data-flow анализ в ReSharper и как на него повлияли локальные функции, появившиеся в C# 7. Будет итеративно рассмотрен алгоритм сбора данных для кросс-процедурных анализов без привязки к конкретным API Roslyn/ReSharper и дана оценка сложности построения модели по памяти/времени на каждом шаге. Андрей также приведет несколько примеров использования полученной модели вне рамок исходного примера. Доклад будет наиболее интересен и полезен людям, заинтересованным в написании собственных анализаторов кода, в первую очередь для языка C#, однако принципы, которые будут показаны в докладе, применимы к любым языкам. Кроме того, итеративное усложнение, оценка и оптимизация алгоритма построения модели данных и работа с графом вызовов могут быть интересны как примеры практических алгоритмических задач.


DotNext

70 min

Могу ли я спрыгнуть с F5-корабля прямиком в гиперпространство в реальном времени?

Александр Якунин

Каковы связи между обновлениями, работающими в режиме реального времени, инкрементными сборками, кэшированием, избыточностью микросервиса и, наконец, популярностью React? Александр покажет, как набор…

DotNext

71 min

Introduction to open source Uno Platform

Jérôme Laban

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…

DotNext

71 min

SOLID – The five commandments of good software

Chris Klug

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…

DotNext

72 min

Unlocking performance improvements in .NET

Stephen Toub

. 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…

DotNext

59 min

Многопоточность в .NET: когда производительности не хватает

Евгений Пешков

Ошибки и проблемы использования многопоточности в .NET. Платформа .NET предоставляет множество готовых примитивов синхронизации и потокобезопасных коллекций. Если при разработке приложения нужно реа…

DotNext

61 min

Простая и быстрая реализация парсеров на C#

Карлен Симонян

Создание парсеров и лексических анализаторов — затратное по времени дело. Обычно к ним прибегают при необходимости реализации различного рода формальных грамматик, в том числе предметно-ориентированн…

DotNext

59 min

ASP.NET Blazor programming 101

Dino Esposito

Задаём тренд — пишем на C# в браузере. Blazor is a client-side framework capable of running C# code that unlike its notorious far ancestor Silverlight doesn't suffer from plugin-itis and doesn't for…

DotNext

56 min

Async programming in .NET: Best practices

Дмитрий Иванов

Всё ли известно про async/await? Мы уверены, что нет — Дмитрий расскажет все тонкости работы с ними. Появление async/await в C# привело к пересмотру того, как писать простой и корректный параллельны…

DotNext

59 min

How I built Rockstar: Parsing esoteric languages with .NET

Dylan Beattie

In 2018, Dylan Beattie created an esoteric programming language called Rockstar, designed for creating computer programs that are also rock song lyrics. The language was initially created as a joke..…

DotNext

54 min

Что нового в C# 8

Дмитрий Нестерук

Новых фич C# 8 много, надо про все знать. Очередной релиз C# приносит достаточно много новых фич, которые хочется обсудить. Тут присутствуют как кардинальные изменения, которые затрагивают весь язык…

DotNext

58 min

Yield at me, 'cause I'm awaiting: асинхронные итераторы в C# 8

Андрей Карпов (DotNext)

Научитесь пользоваться async streams уже сейчас. Язык C# продолжает интенсивно развиваться. Готовящаяся к выходу новая версия добавляет поддержку асинхронных итераторов. Что это такое? Для чего это …

DotNext

58 min

NUKE — a modern build system for C#/.NET

Matthias Koch

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…

DotNext

60 min

Кросс платформенное объектно ориентированное взаимодействие C# и C++

Никита Цуканов

Забудем ужасы C++/CLI и рассмотрим альтернативу. При всей простоте использования технологии P/Invoke, она, увы, пригодна лишь для использования библиотек, предоставляющих функции в C-стиле. Объектно…

DotNext

73 min

Building a cross-platform 2D game with MonoGame and C#

Pavel Yosifovich

This talk shows how to write a 2D game using the MonoGame framework with C# that runs on Windows, Linux, Android, and other platforms supported by MonoGame. MonoGame is a framework originally modele…

NDC London

47 min

Using Immutable Data Structures in C# and .NET

Spencer Schneidenbach

Immutable objects - aka objects whose properties and fields can't change after instantiation - are one of the fundamental pillars of functional programming. Yet, it also has other great uses in class…