Damir Arh has many years of experience with software development and maintenance; from complex enterprise software projects to modern consumer-oriented mobile applications. Although he has worked with a wide spectrum of different languages, his favorite language remains C#. In his drive towards better development processes, he is a proponent of Test-driven development, Continuous Integration, and Continuous Deployment. He shares his knowledge by speaking at local user groups and conferences, blogging, and writing articles. He is an awarded Microsoft MVP for .NET since 2012.

Damir Arh has written 54 articles, which have been read 8019703 times.
3401
Abstract: This tutorial shows two different options for running your .NET code as part of a GitHub Actions workflow using .NET local tools and custom Github actions.
27563
Abstract: The tutorial explains how a .NET Developer can take advantage of GitHub Actions. It presents two ways to create a GitHub Actions workflow for a .NET solution.
42496
Abstract: In this tutorial, I compare Azure Static Web Apps with Azure App Service and explain how to publish a Blazor WebAssembly application as a Static Web App.
96607
Abstract: This article explores C# async streams in detail: from the basics and the reasoning behind them, to real-world examples of using and creating them.
220036
Abstract: Learn about cloud applications, study it's internal architecture as well as several design patterns that are especially useful in such applications.
655050
Abstract: In this tutorial, I look at the state of the Nullable Reference Types feature in C#, one year after its initial release.
463190
Abstract: The tutorial introduces a subset of C# 9 features which can make your code shorter and simpler. It concludes with a brief look at what future versions of the language might bring.
829219
Abstract: This article covers a selection of design patterns that are used in most web applications today.
1191363
Abstract: This article provides a complete overview of .NET 5: what it is, when it was released, what it includes, where to download and how you can use it.
552670
Abstract: This tutorial introduces several architectural and design patterns that can be used to implement common scenarios in .NET desktop and mobile applications.
462442
Abstract: This article is an introduction to understand application architecture for the Microsoft technology stack.
392283
Abstract: This tutorial on .NET 5 provides a complete overview of the latest version of .NET - .NET 5 Preview 8. It covers new features, performance, release schedule, it’s current status and how you can download .NET 5 and test the latest preview.
212974
Abstract: There are different cloud services available to .NET developers for publishing their applications on Microsoft Azure. This tutorial provides an overview of these services and how a .NET Developer can leverage these services to create cloud applications.
232623
Abstract: Microsoft held the 10th edition of Build, its annual developer conference. This article provides an overview of announcements at this year’s Build virtual event that are particularly relevant for developers.
130017
Abstract: What were the announcements made at Microsoft Ignite that are of interest to developers? How can developers use these announcements to steer ahead in 2020! Read on!
101460
Abstract: In this tutorial, I will describe the tools and frameworks available to .NET developers for all aspects of mobile application development i.e. front-end, back-end and operations.
90424
Abstract: The recommended pattern for asynchronous programming in the .NET framework is the task-based asynchronous programming (TAP). This tutorial gives a brief info about this pattern.
55997
Abstract: Developers do not need to implement the IEnumerable and IEnumerator interfaces to return an IEnumerable. They can avoid writing all of that code by taking advantage of support for iterators in C#. This tutorial shows how.
49150
Abstract: This article is an overview of .NET Core 3.0 covering all the new features and improvements it’s bringing to the .NET ecosystem.
68063
Abstract: Although there haven’t been as many new developments in approaches to desktop development as there were in web development, there are still several different frameworks available to .NET developers for creating desktop apps. This article provides an overview of them, compares their features and gives recommendations on what to choose depending on the application requirements.
141191
Abstract: There are many approaches available for developing a web application in .NET. In this article, I will give an overview of frameworks that you can choose for your .NET projects.
41504
Abstract: The tutorial provides an overview of .NET Core Global tools: how to use them, how to create them and what to expect of them in future versions of .NET Core.
162862
Abstract: This tutorial gives an overview of all the new features in C# 8 which can be tried out using Visual Studio 2019.
62925
Abstract: The way LINQ queries are executed depends on the kind of data source being queried. This tutorial talks about how a LINQ query is executed and how this affects performance.
19888
Abstract: The .NET ecosystem including .NET Core, .NET Standard, C# and Visual Studio 2019 introduced many changes and new features in the year 2018. This article talks about these new feature updates and highlights how it will affect the way we develop applications in the future.
18694
Abstract: A tutorial on some less commonly used arithmetic, relational, logical, equality operators in C# and how to use them.
44733
Abstract: This C# tutorial explains how Garbage Collection works in .NET Framework and .NET Core, and some best practices to follow.
31004
Abstract: The .NET framework Base Class Library contains many collection classes. This can make it difficult to decide when to use which. Grouping them together based on their properties can make the choice for a specific scenario, much easier.
24092
Abstract: Since its original release in 2002, C# has been regularly updated with new features. Today, we will look at the most important new features of each major language version and explore how the C# code we have been writing, has evolved through years.
57484
Abstract: This tutorial explores how to develop .NET Core applications in Visual Studio Code (VS Code). We will explore some extensions that enhance Visual Studio Code and improves your .NET Core development experience.
81218
Abstract: Dynamic binding in C# opens some possibilities which would not be available in a strictly strong typed language. This tutorial explores how C# supports dynamic binding.
92595
Abstract: In this C# 8 tutorial, I am going to introduce a selection of currently planned features which will most probably end up in the final release. All of the C# 8 features are still early in development and are likely to change.
81174
Abstract: C# 7 has added a number of new features to the language. This tutorial looks at the new features added to the minor versions of C# i.e. C# 7.1, 7.2 and and 7.3.
48832
Abstract: A peek into the major differences between the .NET framework versions and how we can still target older versions of .NET framework even when using the latest development tools.
37470
Abstract: Even developers with good C# skills write code that might behave unexpectedly sometimes. This article features several C# code snippets which fall into that category, and explains the reasons behind the surprising behavior.
71655
Abstract: Visual Studio 2017 15.3 update was a big milestone for C#. It was the release vehicle for C# 7.1 – the first minor version of C# 7. This article will take a closer look at its new features and the plans for future versions (C# 8) of the language.
32501
Abstract: Live Unit Testing functionality in Visual Studio 2017 brought more attention to the practice of continuous testing. This article will explain what continuous testing is all about, why you should care and how you can practice it as a .NET developer.
48458
Abstract: Microsoft has been recently announcing a slew of new development tools and frameworks for .NET Developers. This post gives a brief overview of what was announced and what is currently available.
71521
Abstract: As a C# developer, you might already be writing some functional code without realizing it. This article describes some of the functional approaches you are already using in C#, as well as some improvements in C# 7 that make functional programming in it, easier.
30466
Abstract: .NET Standard 2.0 and XAML Standard were announced at Build 2017, which could have a big effect on the future of cross-platform development in .NET. In this article we’ll take a detailed look at what they are and why they might be important.
146970
Abstract: C# 7 is the next version of C#. This article provides an overview of the new features in C# 7.0.
115532
Abstract: Effective error and exception handling in any kind of an application plays an important role in providing a pleasant experience to the user, when unexpected failures occur. This article talks about some effective error handling strategies that you can use in your projects.
126546
Abstract: Learn approaches to concurrent programming in .NET Core, as well as potential issues to be aware of.
67817
Abstract: Singleton is one of the basic software design patterns, but if not implemented correctly can introduce complications in your application. This article discusses common use cases where you should avoid the Singleton pattern.
51945
Abstract: This Visual Studio Code (VS Code) article will help you get started, and make you more productive at this increasingly popular text editor.
23087
Abstract: Microsoft recently announced a slew of new development tools and frameworks for developers at Connect(); // 2016. This post gives a brief overview of what was announced.
31530
Abstract: What is .NET Standard and why should developers care about it. Also get a sneak peek into the upcoming .NET Standard 2.0.
175999
Abstract: The async and await keywords in C# makes asynchronous programming simpler, however one can still use them incorrectly. This article highlights some common mistakes, and gives advice on how to avoid these mistakes.
20050
Abstract: Project Centennial converts Windows desktop applications to Universal Windows platform (UWP) so as to include them in Windows Store and give them full application identity.
42731
Abstract: Roslyn now known as .NET Compiler Platform is the next generation of C# compiler and more. This article gives a general overview and guidance about Roslyn.
41548
Abstract: Project template creation for Visual Studio can be another tool in your tool belt. This guide will get you started.
47745
Abstract: C# 6.0 brings many small improvements to the language. However, does it make sense to upgrade your existing C# code base to take advantage of the new C# 6.0 features? Let us find out.
25014
Abstract: Diagnostic analyzers are a great new extensibility feature in Visual Studio 2015 for performing static code analysis. This article will walk you through the process of creating a simple diagnostic analyzer on your own.
25894
Abstract: Diagnostic analyzers in Visual Studio 2015 will strongly affect the way we will be writing code in future.This article will help you learn everything you need to know about diagnostic analyzers.