.NET fwdays’23 онлайн-конференція | Program guide

Fwdays
9 min readJun 7, 2023

--

Нарешті цей час настав🤩

.NET fwdays’23 — онлайн-конференція, яка вже дев’ятий рік поспіль збере локальних та світових архітекторів, розробників та тестувальників, які використовують .NET framework у своїй роботі.

Оптимізація .NET додатку, побудова парсерів в C#, труднощі реалізації відладчика для .NET WASM додатків, про це все, та не тільки дізнаєтесь на конференції.

Підготували для вас гайд програмою, тож читайте, коментуйте і підключайтесь online 17 червня на наш івент.

Свіжі анонси, новини та цікавинки постимо у Telegram чаті, додавайтесь.

Для учасників, які купили Online Full квиток надається доступ до нашого чату в Discord для спілкування з учасниками та спікерами конференції.

🗓 Дата: 17 червня— основний день конференції

та декілька додаткових ефірів:

15 червня — “Дискусія з Kevin Gosse”. Залишайте питання до Kevin Gosse (Staff Engineer у Datadog), і їх обов’язково буде обговорено під час ефіру: https://bit.ly/3oM6JmJ

21 березня — воркшоп “Чи може мій .NET додатку використовувати менше CPU / RAM?” з Євгеном Татариновим (Senior software developer в інфраструктурній команді, Covent IT)

Підготували для вас коротку інструкцію, як підключитися до конференції👇

⏰ 11:00 — відкриття та старт доповідей

Розпочнемо з привітального слова від організаторів та згадаємо практичні моменти, які стануть вам у пригоді до та під час конференції.

Трохи інформації про доповіді.

Під час конференції учасники розділяються на 2 паралельні треки: Ukrainian track (доповіді будуть представлені українською мовою) та English track (доповіді — англійською мовою).

11:10

Ukrainian track:

Створення надійної інтеграційної архітектури за допомогою EventStoreDB для No/Low-Code платформи — Сергій Кохан, [ukr] [Advanced]

“Спікер розгляне реальний приклад у сфері логістики, як вони у LogiqApps створювали надійну та масштабовану інтеграційну архітектуру, використовуючи .NET Core, Azure, EventStoreDB та Power Platform. Розповість, як вони вирішували виклики інтеграції декількох джерел даних, включаючи сторонні системи через event-driven архітектуру, а також дасть уявлення про використання постійних підписок для проєкцій подій та ефективної синхронізації даних між Dataverse та CosmosDB.”

English track:

How do you think when you’re coding? — Jon Skeet, [eng] [Intermediate]

“Software engineers spend a lot of time “in a code environment” for various reasons (along with time writing design documents etc, of course). How much attention do you pay do how you spend this time?

Do you think and act the same way when diagnosing a problem as when fixing it? How about when you’re writing a prototype vs when you’re writing a production feature? Does hobby coding feel like professional coding? In this talk, Jon will reflect on how he thinks when coding — not as a directive for you to do the same thing, but as an example of how you might think about coding, encouraging you to reflect on your own practices. What works really well? Which practices are “nice to have” and which ones are crucial, leading to real problems if you ignore them? Expect to have more questions than answers by the end of the session — but questions that you’ll need to ask yourself and your team.”

11:50 — Break (10 хв)

12:00

Ukrainian track:

Челленджі в імплементації розподіленої системи відправки повідомлень із використанням передових підходів у .NET— Владислав Фурдак, [ukr] [Intermediate]

“Розробка та реалізація масштабованої та надійної служби відправки повідомлень може здатися складним і трудомістким завданням. Однак, давайте дослідимо, деякі ключові моменти реалізації в .NET, які допоможуть нам досягти бажаного рівня атрибутів якості та уникнути несподіваних перешкод.

Для цього, ми:

  • Ознайомимся з деякими функціями драйвера .NET Confluent Kafka.
  • Розглянемо реальні приклади використання Channels у .NET як механізму InProc Pub/Sub для підвищення перфомансу сервісу.
  • Обговоримо використання Minimal API та його обмеження.
  • Порівняємо gRPC із HTTP та визначимо, який варіант більше підходить для нашого конкретного сценарію.”

English track:

Running SaaS multi-tenant applications with ASP.NET Core and Azure — Marco De Sanctis, [eng] [Intermediate-Advanced]

“Real world multi-tenant applications are conceptually simple, but hide lots of complexities under the hood: when confidential data of multiple clients coexist under the same platform, you must ensure that data is kept segregated at any layer of your architecture.

During this talk we’ll try to demystify some of these aspects, analysing how we can build a SaaS application in ASP.NET Core, secure it via Azure AD B2C, and deliver it via the Azure infrastructure.

We’ll investigate how to use policies in our server side logic and even at the database level (via SQL Server’s Row Level Security) to ensure data is kept segregated even when running on a shared infrastructure.”

12:40 — Break (20 хв)

13:00

Ukrainian track:

Приховані труднощі реалізації відладчика для .NET WASM додатків — Андрій Рубльов, [ukr] [Advanced]

“Реалізація інфраструктури налагодження для програм .NET (Blazor) WebAssembly є складною через її унікальне середовище виконання. У цій доповіді ми глибоко зануримося в приховані труднощі реалізації інтерфейсу IDE налагоджувача для програм .NET WASM.

Почнемо з огляду анатомії виконання додатка Blazor WASM, зокрема розглядаємо Debug Proxy. Потім ми порівняємо звичайне налагодження .NET з налагодженням Blazor і представимо інфраструктуру налагодження Rider. Далі ми обговоримо етапи ініціалізації сеансу налагодження, зокрема те, як використовується CDP (Chrome DevTools Protocol). Ми розглянемо точки зупинки, оцінку та вивчимо оркестровку кількох консольних переглядів. Нарешті, ми обговоримо кілька слів про hot-reload, як воно працює та як воно підтримується з боку IDE.

Ця доповідь є важливою для розробників .NET, які працюють із Blazor WASM, і для всіх, хто зацікавлений у розумінні складнощів налагодження додатків .NET.”

English track:

Making boring old WinForms game fun and cool with latest .NET features and cloud — Jiří Činčura, [eng] [Intermediate-Advanced]

“20 years ago I wrote a small WinForms game. All was done probably in under 2 hours. But .NET is different .NET now than it was before. Can I take some cool up-to-date technologies, cloud included, and make the game fun and cool? Let’s find out…”

13:40 — Lunch (40 хв)

⏰14:20

Ukrainian track:

Оптимізація .NET додатку — це просто ! / ? — Євген Татаринов, [ukr] [Advanced]

“Оптимізація .NET додатку здається складною та стомлюючою задачею. Проте, не будемо поспішати з висновками і розглянемо декілька прикладів з реальних проектів.

Для цього ми:

  • Заглянемо під капот додатку з реального проєкту;
  • Визначимо метрику, за якою будемо проводити оптимізацію;
  • Виберемо необхідні інструменти;
  • Знайдемо bottlenecks /memory leaks і best practice для боротьби з ними.

Покращуючи додаток крок за кроком ми переконаємося в тому, що не складним аналізом і простими best practice можна зменшити загальну кількість ресурсів, що він використовує.”

English track:

From ZX Spectrum to Blazor: Emulating a ZX Spectrum with .NET 7 and Blazor— Jimmy Engström, [eng] [Intermediate]

“Every journey begins with a single step; mine started with the hum of a ZX Spectrum. Picture this — the year is 1985, and a wide-eyed seven-year-old me is unwrapping my first ever computer, a Sinclair ZX Spectrum. The device might seem quaint by today’s standards, but back then, it was a portal to a world of infinite possibilities.

As I grew and honed my skills, a tantalizing question kept gnawing at me — “Could I, perhaps, build an emulator?” And thus began a quest, an odyssey across the vast landscapes of development that I’m eager to share with you in this session.

From nostalgic 1985 to the cutting-edge era of XNA, Zune, XBOX, HoloLens, and finally landing in the realm of Blazor, I’ve traversed a diverse spectrum of tech. We’ll delve into the nuts and bolts — registers, memory management, the symphony of sound, the dance of input and output, all within the tapestry of a Blazor WebAssembly application.

So join me, as we embark on this thrilling journey, retracing the steps of my path from a starry-eyed child to a seasoned developer. Let’s turn back time, dive into the depths of coding, and rekindle the magic of our own origin stories.”

15:00 — Break (10 хв)

⏰ 15:10

Ukrainian track:

Запровадження Distributed Tracing у великих програмних системах — Костянтин Шароварський, [ukr] [Intermediate]

“Зі зростанням бізнесу програмні системи стають все складнішими, адже різні команди додають різні функції для різних цілей. І щоб зрозуміти, як працює система, потрібно більше часу. Distributed Tracing — корисний інструмент для того, щоб подивитися, що і як відбувається в системі, які операції виконуються, які сервіси використовуються та як швидко вони працюють. В цій доповіді я розповім, що таке Distributed Tracing та як ми запровадили цей інструмент в наші програмні системи, також порекомендую слухачам, на що звернути увагу, якщо вони захочуть зробити те ж саме.”

English track:

Beyond Relational with Entity Framework — Giorgi Dalakishvili, [eng] [Intermediate]

“In this session, you will see how to achieve each of the above goals with Entity Framework Core. Specifically, I will step through and show how you can use Entity Framework Core for JSON documents, how to use temporal tables to keep the complete history of your data, and query hierarchical data with EF Core 8.

Developers working with Entity Framework Core will learn how to store data in JSON columns and how easily you can drill into the JSON data with familiar LINQ query syntax. You will see how to filter and sort results based on elements of the JSON document, project elements from JSON, and even update the JSON document. Furthermore, you will see how temporal tables can store all the historical data and how straightforward it is to query for historical records with Entity Framework Core. Finally, I will show how to query hierarchical data with the upcoming version of Entity Framework Core 8.

Join me for a demo-rich session and learn about Entity Framework Core features that you will be able to apply right after the session.”

15:50 — Break (10 хв)

⏰ 16:00

Ukrainian track:

Побудова парсерів в C#: від теорії до практики. Кейс Uklon про розбір Conditional Restrictions тегів в OSM — Юрій Науринський, [ukr] [Intermediate]

“Робота застосунку Uklon тісно пов’язана з картами та їх специфікою. У своєму спічі хочу поділитися цікавим кейсом, з яким ми зіштовхнулись нещодавно. Якщо коротко, то є дорога з обмеженнями по часу — в один час по ній можна їхати, в інший — ні. Ці обмеження задаються тегами Conditional Restrictions в OSM (Open Street Map). Тому маємо потребу такі теги парсити та обраховувати відповідне обмеження на будь-який момент часу. Для парсингу ми обрали парсинг-комбінатори, а для обрахування розробили свою логіку, яку теж трошки зачепимо під час презентації.

Адженда:

  • Що таке парсер-комбінатори
  • Порівняння парсер-комбінаторів з регулярками та повноцінними парсерами
  • Що таке Conditional Restrictions теги в OSM та в чому їх складність
  • Чому для розбору Conditional Restrictions тегів в OSM обрали саме парсер- комбінатори
  • Як парсити такі теги за допомогою парсер-комбінаторів
  • Як потім обчислити Restriction
  • Summary”

English track:

Applying DDD Thinking to EF Core Search Filters — Julie Lerman, [eng] [Intermediate]

“So often, we developers get so caught up in trying to solve a problem that we don’t recognize we are working way too hard! Domain-Driven Design thinking can help you keep in mind that complex problems are more easily solved by breaking them down into smaller, solvable problems. Applying this thinking to search can help reduced the complexity of implementing the logic behind filtering data in your applications. This session will demonstrate a pattern of leveraging SQL Server (or your favorite RDBMS) and a separate model within your bounded context to enable developers to more easily allow users to discover the items they are seeking.”

16:40 — Break (10 хв)

⏰ 16:50

Ukrainian track:

Source Generators in Action — Володимир Ланцов, [ukr] [Intermediate]

“Під час доповіді ми в режимі реального часу створимо source generator, розберемося з деякими проблемами, які ми потенційно можемо зустріти під час розробки, та навчимося вирішувати їх.”

English track:

What’s Next in C# — Mads Torgersen, [eng] [Intermediate]

“Join Mads on a tour of upcoming language features in C#. While still very much in the works, C# 12 is starting to take shape. We touch on some of the ways, big and small, that C# is striving to make your life easier in the coming years.”

17:30 — Closing (10 хв)

Учасники з квитками матимуть доступ до трансляцій упродовж 3-х місяців.

Гарного перегляду!

#dotnetfwdays

Приєднуйтесь до Телеграм чату, якщо ви ще не там.

До зустрічі 17 червня! 🤗

--

--

Fwdays
Fwdays

Written by Fwdays

We organize large conferences (JS, PHP, .NET, Highload, etc.) and meetups

No responses yet