In 2024
September 25th 2024
NT konferenca 2024
Portorož, Slovenia
It's pretty common nowadays for applications to call one or more HTTP service as part of their functionality. In automated tests we want to mock those, so that the we can test the application in isolation. We will explore how to do that at 3 different levels: by mocking the `HttpClient`, by mocking the service class, and by mocking the HTTP service. By the end of the talk, you will learn when to choose each option and which tools you can use to do it.
September 23rd 2024
NT konferenca 2024
Portorož, Slovenia
Since .NET 5, the .NET SDK ships with a collection of Roslyn analyzers which inspect your code for different code quality and style issues. With each version, this collection grows. You can choose to ignore these issues. Or you can pay attention to them, learn something new about .NET or C#, and start writing better code because of it. In this talk, I'll choose a selection of reported issues in .NET 8 to present some not so obvious, but very useful .NET features. And hopefully convince you to not ignore the issues in the future.
September 23rd 2024
NT konferenca 2024
Portorož, Slovenia
Since a new version of .NET is being released every autumn, C# has also adopted the same cadence. So, this November C# 13 is going to be released alongside with .NET 9. In this talk, we will take a look at its new features and how they will affect the code we will be writing (and reading) in the future. Wherever it is relevant, we will refresh our memory about the features of previous language versions, on which this year's features are based. As much as possible, we will try out the new features ourselves.
In 2023
October 18th 2023
After NTK - Dev Edition
Ljubljana, Slovenia
Since a new version of .NET is being released every autumn, C# has also adopted the same cadence. So, this November C# 12 is going to be released alongside with .NET 8. In this talk, we will take a look at its new features and how they will affect the code we will be writing (and reading) in the future. Wherever it is relevant, we will refresh our memory about the features of previous language versions, on which this year's features are based. As much as possible, we will try out the new features ourselves.
September 26th 2023
NT konferenca 2023
Portorož, Slovenia
Setting up a working development environment on your local computer can often take quite some time nowadays. It becomes even more of an issue when you collaborate on multiple projects at once or when the developers on the project use different operating systems. In this talk, we will learn how this process can be simplified by using the Dev Containers extension for Visual Studio Code which uses a file with a description of the development environment to recreate it in Docker. The same file can also be used to set up a development environment in the cloud using GitHub Codespaces.
September 25th 2023
NT konferenca 2023
Portorož, Slovenia
Since a new version of .NET is being released every autumn, C# has also adopted the same cadence. So, this November C# 12 is going to be released alongside with .NET 8. In this talk, we will take a look at its new features and how they will affect the code we will be writing (and reading) in the future. Wherever it is relevant, we will refresh our memory about the features of previous language versions, on which this year's features are based. As much as possible, we will try out the new features ourselves.
In 2022
November 15th 2022
Ljubljana.tech
Ljubljana, Slovenia
GitHub Actions can be a great choice for building and deploying code from GitHub repositories. This talk should help you get started using GitHub Actions for your .NET projects. We will look at the tools available, learn to understand and modify workflow files, check the actions available in the GitHub Marketplace, and create a simple custom action ourselves.
September 27th 2022
NT konferenca 2022
Portorož, Slovenia
You might still remember the first .NET MAUI announcement when the MVU (Model-View-Update) pattern was introduced as an alternative to using XAML and the MVVM (Model-View-ViewModel) pattern for application development. Since then, .NET MAUI has been released. But we haven't heard much about the MVU pattern lately. In this talk, we will first compare the two patterns. Then we will look at the current state of the Comet library for developing .NET MAUI application using the MVU pattern and try to create a simple application with it.
September 26th 2022
NT konferenca 2022
Portorož, Slovenia
GitHub Actions can be a great choice for building and deploying code from GitHub repositories. This talk should help you get started using GitHub Actions for your .NET projects. We will look at the tools available, learn to understand and modify workflow files, check the actions available in the GitHub Marketplace, and create a simple custom action ourselves.
May 7th 2022
Global Azure 2022
Online
GitHub Actions can be a great choice for building and deploying code from GitHub repositories. This talk should help you get started using GitHub Actions for your .NET projects. We will look at the tools available, learn to understand and modify workflow files, check the actions available in the GitHub Marketplace, and create a simple custom action ourselves.
In 2021
October 20th 2021
.NET DeveloperDays 2021
Warsaw, Poland
To refresh our memory, we will first explain the benefits of using async streams and examples of available APIs. We will continue by creating an async stream implementation ourselves and look at the potential reasons for doing so. We will conclude by comparing async streams to observables from Reactive extensions.
October 19th 2021
.NET DeveloperDays 2021
Warsaw, Poland
The `async` and `await` keywords have been a part of the C# programming language for a long time. Despite that, they still hide pitfalls that not only beginners but also more experienced developers occasionally fall into.
In this talk, I will present some of the most common mistakes we can make when writing asynchronous code and show ways to avoid them. Key topics:
- `async void` is dangerous
- avoiding deadlocks
- synchronization context
September 27th 2021
NT konferenca 2021
Portorož, Slovenia
To refresh our memory, we will first explain the benefits of using async streams and examples of available APIs. We will continue by creating an async stream implementation ourselves and look at the potential reasons for doing so. We will conclude by comparing async streams to observables from Reactive extensions.
May 12th 2021
JetBrains .NET Days Online 2021
Online
The `async` and `await` keywords have been a part of the C# programming language for a long time. Despite that, they still hide pitfalls that not only beginners but also more experienced developers occasionally fall into.
In this talk, I will present some of the most common mistakes we can make when writing asynchronous code and show ways to avoid them. Key topics:
- `async void` is dangerous
- avoiding deadlocks
- synchronization context
April 16th 2021
Global Azure 2021
Online
Azure Static Web Apps are a service for hosting static web applications and their serverless backend. In the talk, I will introduce them in detail and compare them to Azure App Services. In the demo, I will use them for hosting a Blazor WebAssembly app with an Azure Functions backend. Before the end, I will mention the (current) limitations and consider when this form hosting might not (yet) be the right choice.
In 2020
November 25th 2020
NT Remote
Online
Along with .NET 5, a new version of C# was also released. Although it's only been a year since the release of the previous version, multiple new features are being introduced. The most important ones are:
- The main focus of this release is improved support for immutable types, provided through record types, with expressions and init-only properties.
- Pattern matching is being extended with new pattern types.
- Top-level programs and target-typed new expressions can reduce the boilerplate code needed in certain scenarios.
October 21st 2020
.NET DeveloperDays 2020
Online
Of all the new features in C# 8, nullable reference types have the largest impact on our code. A year after the release we'll take a closer look at the feature. After covering the basics to refresh our memory, we'll move on to the challenges that the feature can impose, including:
- Introducing nullable reference types into an existing codebase
- Support in libraries
- Advanced annotations
- Support in Entity Framework Core
May 20th 2020
NT Remote
Online
Of all the new features in C# 8, nullable reference types have the strongest impact on our code. We will start the session with basics to refresh our memory almost a year after the release. Only then will we continue with the challenges which we might face when using the nullable reference types. We will cover the incremental introduction of the feature into our code, existing support in libraries, usage in combination with generic classes, and support in EF Core. We will conclude the session with an overview of Microsoft's plans for nullable reference types in the near future.
In 2019
October 24th 2019
.NET DeveloperDays 2019
Warsaw, Poland
With the release of C# 8, the long-awaited safe handling of null values in reference types has finally become a part of our favorite programming language. But that's not the only important new feature in this version. There's expanded support for pattern matching, asynchronous streams, default interface methods, and more. In this session, I will explain what all these features are and show you how they can be used with some sample code.
October 14th 2019
MakeIT 2019
Portorož, Slovenia
As we have started migrating our applications to the cloud, microservices replaced multi-tiered architecture as the recommended choice. But is choosing the architecture really always that simple? The session covers the advantages and disadvantages of both architectural patterns and attempts to provide some guidance on how to choose the right one. It concludes with an overview of cloud services that can be used to host the applications depending on the architectural pattern they follow.
September 10th 2019
SLODUG
Ljubljana, Slovenia
The long-awaited support for safer handling of null values in reference types is finally coming with C# 8. But that's not the only large new feature. The session covers all of its new features: expanded support for pattern matching, Asynchronous streams, ranges and indexes, static local functions and more.
May 23rd 2019
NT konferenca 2019
Portorož, Slovenia
Global tools are a feature of .NET Core SDK 2.1 you might have overlooked. It's the infrastructure for simple distribution and deployment of command line tools. The session starts with an overview of how to find, install and use existing tools. It covers how to simply develop your own tool and publish it for others. It concludes with upcoming changes to global tools in .NET Core 3.0.
May 22nd 2019
NT konferenca 2019
Portorož, Slovenia
As we have started migrating our applications to the cloud, microservices replaced multi-tiered architecture as the recommended choice. But is choosing the architecture really always that simple? The session covers the advantages and disadvantages of both architectural patterns and attempts to provide some guidance on how to choose the right one. It concludes with an overview of Azure services that can be used to host the applications depending on the architectural pattern they follow.
May 21st 2019
NT konferenca 2019
Portorož, Slovenia
The long-awaited support for safer handling of null values in reference types is finally coming with C# 8. But that's not the only large new feature. The session covers all of its new features: expanded support for pattern matching, Asynchronous streams, ranges and indexes, static local functions and more.
April 27th 2019
Global Azure Bootcamp 2019
Ljubljana, Slovenia
As we have started migrating our applications to the cloud, microservices replaced multi-tiered architecture as the recommended choice. But is choosing the architecture really always that simple? The session covers the advantages and disadvantages of both architectural patterns and attempts to provide some guidance on how to choose the right one. It concludes with an overview of Azure services that can be used to host the applications depending on the architectural pattern they follow.
In 2018
May 23rd 2018
NT konferenca 2018
Portorož, Slovenia
How to configure a .NET Core project for continuous testing in Visual Studio 2017 and Visual Studio Code?
May 22nd 2018
NT konferenca 2018
Portorož, Slovenia
An overview of C# gotchas which might surprise even an experienced developer.
April 21st 2018
Global Azure Bootcamp 2018
Ljubljana, Slovenia
Visual Studio Code extensions and workspace configuration to make .NET Core development easier. It encompasses project creation, debugging, continuous testing, code coverage and Azure deployment.
In 2017
June 23rd 2017
SLODUG
Ljubljana, Slovenia
Overview of .NET Core and .NET Standard (1.x and 2.0), followed by guidance whether it is already time to start developing in them.
May 15th 2017
NT konferenca 2017
Portorož, Slovenia
Overview of .NET Core and .NET Standard (1.x and 2.0), followed by guidance whether it is already time to start developing in them.
April 22nd 2017
Global Azure Bootcamp 2017
Ljubljana, Slovenia
An overview of Azure related features in Visual Studio 2017
March 7th 2017
Visual Studio 2017 Launch
Ljubljana, Slovenia
New features and improvements in Visual Studio 2017.
In 2016
September 15th 2016
Cancel konferenca 2016
Ljubljana, Slovenia
What are the most common mistakes when using async and await, and how to avoid them?
September 15th 2016
Cancel konferenca 2016
Ljubljana, Slovenia
New C# language constructs currently in development, which will probably be included in C# 7.
May 18th 2016
NT konferenca 2016
Portorož, Slovenia
What are the most common mistakes when using async and await, and how to avoid them?
May 17th 2016
NT konferenca 2016
Portorož, Slovenia
New C# language constructs currently in development, which might be included in C# 7.
May 16th 2016
NT konferenca 2016
Portorož, Slovenia
What are the most common mistakes when using async and await, and how to avoid them?
In 2015
November 24th 2015
TechDays 2015
Ljubljana, Slovenia
How to make universal Windows applications more interactive by using tiles, toasts and push notifications?
November 24th 2015
TechDays 2015
Ljubljana, Slovenia
How can universal Windows applications communicate with other universal applications and desktop applications?
September 30th 2015
Cancel konferenca 2015
Nova Gorica, Slovenia
What are diagnostic analyzers, why would one need them and how to develop them.
September 30th 2015
Cancel konferenca 2015
Nova Gorica, Slovenia
Practical overview of debugging features in Visual Studio 2015
May 20th 2015
NT konferenca 2015
Portorož, Slovenia
Overview of changes in C# 6.
May 20th 2015
NT konferenca 2015
Portorož, Slovenia
What are diagnostic analyzers, why would one need them and how to develop them.
January 27th 2015
TechDays 2015
Ljubljana, Slovenia
A short introduction to Visual Studio Community 2013, followed by an overview of new features in Visual Studio 2015: .NET Compiler Platform, C# 6, NuGet 3, Shared Projects and Smart Unit Tests.
In 2014
September 18th 2014
SLODUG
Ljubljana, Slovenia
An overview of NuGet, focused on package consumer's viewpoint, including a tutorial on publishing the first package in official NuGet gallery. It concludes with a broader view of NuGet ecosystem.
April 9th 2014
NT konferenca 2014
Bled, Slovenia
Presentation of new features for developers in Windows 8.1 Update: universal project for Windows and Windows Phone, interprocess communication for sideloaded enterprise LOB Windows Store apps.
February 25th 2014
Windows 8.1 Developers Contest
Ljubljana, Slovenia
Architectural guidance for development of apps for Windows Store in Windows 8.1.
February 25th 2014
Windows 8.1 Developers Contest
Ljubljana, Slovenia
How to take advantage of live tiles to make your Windows Store applications more visible.
In 2013
October 10th 2013
jesenska NT konferenca 2014
Ljubljana, Slovenia
Slides from my session on changes in Windows Store apps development in Windows 8.1 at NT conference 2014 autumn.
October 10th 2013
jesenska NT konferenca 2014
Ljubljana, Slovenia
Slides from my session on data synchronization and occasionally connected apps development for Windows 8 at NT conference 2014 autumn.
April 25th 2013
NT konferenca 2013
Bled, Slovenia
Slides from my session on LOB apps for Windows Store at NT conference 2013.
April 23rd 2013
NT konferenca 2013
Bled, Slovenia
Slides from my session at NT conference 2013 Windows 8 and Windows Phone 8 precon track.
April 23rd 2013
NT konferenca 2013
Bled, Slovenia
Slides from my session on MVP, MVC and MVVM design patterns at NT conference 2013.
April 23rd 2013
NT konferenca 2013
Bled, Slovenia
Slides from my session on IoC basics at NT conference 2013.
In 2012
December 11th 2012
re//build/
Ljubljana, Slovenia
Introductory presentation about development of Windows Store apps.
November 9th 2012
Wowzapp Hackathon
Ljubljana, Slovenia
An introductory workshop to Windows Store apps development.
October 22nd 2012
Bleeding Edge
Laško, Slovenia
A presentation about the architecture of Windows Store applications.
October 21st 2012
Bleeding Edge
Laško, Slovenia
A presentation about a selection of new features in .NET 4.5: async/await keywords, portable class libraries and Workflow Foundation improvements.
September 25th 2012
Visual Studio 2012 Community Launch
Ljubljana, Slovenia
A short introduction to Portable Class Libraries.
May 23rd 2012
NT konferenca 2012
Portorož, Slovenia
A presentation about what's new in Windows Workflow Foundation in .NET 4.5 from NT conference 2012.
May 23rd 2012
NT konferenca 2012
Portorož, Slovenia
A presentation on how to get started with development of Metro applications for Windows 8 in C#.
In 2011
September 30th 2011
Bleeding Edge
Gozd Martuljek, Slovenia
A presentation about using existing .NET code in Metro applications for Windows 8.
May 24th 2011
NT konferenca 2011
Portorož, Slovenia
A presentation about Windows API Code Pack from NT conference 2011.