Latest Articles

 | Sebastian Gingter

Asynchrone Programmierung wird immer häufiger als der Heilsbringer in Sachen Performance angepriesen. Doch stimmt das auch? Die Antwort ist ein ganz klares Jaein. Was bedeutet asynchrone Programmierung überhaupt, wie unterscheidet sie sich von Multithreading und was muss ich wirklich wissen, damit die Verwendung von...

Read article
 | Thorsten Hans

Meet the latest addition to Microsoft’s serverless offering – Azure Container Apps (ACA). Leverage scaling, resilience, and self-healing capabilities offered by Kubernetes without having the burden to manage and master Kubernetes itself. That’s the mission statement from Microsoft when it comes to ACA. But how does the...

Read article
 | Max Schulte

Moderne Businessanwendungen sind schon lange nicht mehr langweilig: Daten wollen visualisiert werden und zwar verständlich und ansprechend. Genau dabei helfen Web-Grafik-Engines wie BabylonJS. Sie ermöglichen, 2D-, 3D, Virtual- und Augmented-Reality-Inhalte verständlich darzustellen. Somit lassen sich unter anderem...

Read article
 | Thorsten Hans

Mit Azure Container Apps hat Microsoft einen neuen Serverless-Dienst angekündigt, der die Produktivität von Entwickler steigern soll. Endlich soll es möglich sein cloud-native Anwendungen auf Basis von Kubernetes zu erstellen und zu betreiben, ganz ohne sich um Kubernetes selbst kümmern zu müssen. Durch die nahtlose...

Read article
 | Manuel Rauber

Web Components: ein Begriff, gar (ehemaliger?) Hype, den wir in der Webentwicklung seit einiger Zeit lesen und immer wieder darüber stolpern. Custom Elements, Shadow DOM und HTML Templates ergeben ein natives Komponentenmodell für unseren Browser. Komponenten, wiederverwendbare SPA-Framework-unabhängige UI-Bausteine,...

Read article
 | Pawel Gerr

In diesem Webinar lernst Du, wie ein Roslyn Source Generator implementiert wird. Zuerst sehen wir uns einen Roslyn Source Generator in Aktion an und werden ihn anschließend gemeinsam implementieren.

Read article
 | Thorsten Hans

Vor einigen Monaten haben sowohl Microsoft als auch Docker eine nahtlose Integration von Azure Container Instances (ACI) und Docker CLI angekündigt. Als Container-Enthusiast musste ich mich natürlich mit dieser Integration befassen. Ich habe es in verschiedenen Szenarien getestet, um zu sehen, wie es mich unterstützen...

Read article
 | Yannick Baron

Store-Architekturen (Flux, Redux etc.) sind in aller Munde bei Frontend-Entwicklern und auch bei Angular-Devs. In diesem Webinar machen wir uns vertraut mit den Konzepten, die hinter @ngrx/store stecken. An Hand einer Beispielapplikation sehen wir uns an, wie Reducer, Selector, Action und Effect zusammenspielen. Auch...

Read article
 | Patrick Jahr

Stockende UI, keine Reaktion nach dem Klick auf einen Button oder einer Eingabe in einem Feld - dies sind nur wenige Beispiele alltäglicher Probleme, die der Nutzung von Client-Anwendungen im Allgemeinen, und bei Webanwendungen im Speziellen, immer wieder auftreten können. In diesem Artikel schauen wir uns an, wie wir...

Read article
 | Christian Liebel

Progressive Web Apps (PWA) sind ein webbasiertes Anwendungsmodell: Einmal geschrieben lassen sich diese Anwendungen überall dort ausführen, wo ein halbwegs moderner Browser zur Verfügung steht – von Mobilgeräten bis hin zum Desktop. Gerade auf Windows, macOS und Linux haben PWAs ein großes Potenzial, denn hier...

Read article
 | Thorsten Hans

Infrastructure as Code (IaC) is a crucial automisation technique. In May 2021 cloud native expert Thorsten Hans visited the conference ESPC 2021 (European SharePoint Conference) to demonstrate Terraforms capabilities and and what to keep in mind when working with it.

Read article
 | Sebastian Gingter

Git gibt uns mit der fixup-Option eine einfache aber effektive Möglichkeit, kleine Versäumnisse nachträglich so zu korrigieren, dass sie gar nicht mehr auffallen. Wie das genau geht, wollen wir in diesem Artikel erforschen. Mein Kollege Yannick Baron hat in seiner englischen Artikelserie zu Git bereits den interactive...

Read article
 | Boris Wilhelms

Authorization, also wer darf was machen, ist ein zentraler Baustein der Sicherheit in Applikationen. In diesem Webinar zeigt Ihnen Boris Wilhelms wie man die Keycloak Authorization Services in ASP.NET Core nutzen kann um HTTP-REST- oder gRPC-APIs abzusichern. Dabei werden ASP.NET Core integrierte Komponenten...

Read article
 | Thomas Hilzendegen

Whether to use a Promise or an Observable is a valid question. Let me show you a little hint for deciding when to use what.

Read article
 | Max Schulte

Eingabeformulare (kurz Forms) finden sich in jeder Web-App. Angefangen mit einer übersichtlichen Login-UI bis hin zu Seiten übergreifenden Steppern. Von einfach bis sehr komplex und hoch dynamisch sind Forms in allen Ausprägungen in einer Web-App anzutreffen. Wie ist es also möglich eine komplexe Formulare selbst zu...

Read article
 | Boris Wilhelms

Ob Authentication oder Authorization, Multi-Tenancy oder aber für einfache Anwendungen: Keycloak ist ein Open Source Identity and Access Management System mit dem Ihre Anwendungen Authentifizierung und Autorisierung auslagern können. Obwohl es ein Java-basierendes Produkt ist, lässt es sich dank offener Standards wie...

Read article
 | Thorsten Hans

Infrastructure as Code (IaC) ist eine wichtige Technik in der Automatisierung. Teams beginnen ihren Weg zu Cloud-Native oft so, dass sie alles automatisieren und die Infrastruktur ist hier keine Ausnahme. Die stetig wachsende Akzeptanz von Cloud-Diensten und die Digitalisierung sind nur einige Gründe, warum IaC-Tools...

Read article
 | Patrick Jahr

Stockende UI, langsame Reaktion nach dem Klick auf einen Button oder einer Eingabe in einem Feld – dies sind nur wenige Beispiele für alltägliche Probleme, die beim Benutzen von Client-Anwendungen im Allgemeinen, und bei Webanwendungen im Speziellen immer wieder auftreten können. Bei der Entwicklung von SPAs, und so...

Read article
 | Thorsten Hans

Kubernetes zu meistern ist hart und zeitaufwendig. Mit Kubernetes in Azure als .NET Core-Entwickler zu beginnen ist hingegen relativ einfach. Man benötigt sechs Schritte, um eine Anwendung in Azure Kubernetes Service (AKS) zu starten und zum Laufen zu bringen, beginnend mit einer einfachen .NET Core Web API. Dieser...

Read article
 | Thorsten Hans

Application deployment is complicated and error-prone. Especially when it comes to cloud-native apps. Numerous tools have to work seamlessly hand-in-hand to ensure deployments are successful. The Cloud Native Application Bundles (CNAB) specification defines how cloud-native apps are distributed, deployed, upgraded, and...

Read article
 | Sebastian Gingter

Mit der Einführung von async/await in C# 5 (2012) wurde das asynchrone Programmieren auf Basis von Tasks deutlich einfacher. Nebenläufigkeit ist allerdings grundsätzlich kein einfaches Thema, und wenn die Reihenfolge der Ausführung nicht mehr rein sequenziell ist, passieren schlimme Dinge können.

Read article
 | Christian Weyer

Blazor WebAssembly ermöglicht SPAs und PWAs für Desktop und Mobile - mit C#, .NET und HTTPS-/REST-Calls. Aber da muss es nicht aufhören. Über gRPC, beziehungsweise gRPC-Web, kann man zum einen optimierte binäre Daten zwischen Blazor und APIs austauschen - und zum anderen eine Contract-First-Programmierung realisieren....

Read article
 | Thomas Hilzendegen

Starting with iOS 14, the Intelligent Tracking Prevention raises some problems in Cordova or Capacitor apps, especially when the OAuth Implicit Flow based on Cookies with Silent Refresh is used for login and authentication.

Read article
 | Max Schulte

Every now and then, we think about optimizing and tuning the performance of our applications. In terms of Angular, one of the first strategies that come to our minds is the OnPush change detection. But how does it work, and is it worth putting effort into using it? For what use-cases does it make a difference? This...

Read article
 | Christian Weyer

Single Page Applications (SPAs) schreibt man mit JavaScript oder TypeScript – na klar! Mit ASP.NET Core Blazor gibt es jedoch eine mögliche Alternative für .NET-Entwickler. Auf Basis des Web-Standards WebAssembly stellt es Tooling und eine Runtime zur Verfügung, über die man SPAs mit C# & Razor entwickeln kann. In...

Read article
 | Christian Weyer

Dieser Artikel basiert auf den Inhalten des Webinars 'Blazor WebAssembly: Neues in .NET 5' und soll eine kurze Zusammenfassung der wichtigsten Punkte liefern. Hier finden Sie alle Details, das Slidedeck, die zahlreichen technischen Demos, das Webinarvideo und der Source Code.

Read article
 | Pawel Gerr

A few months ago, I had to implement a Web API for a relatively simple use case, but there was a challenge. The web endpoint must read and update a specific record using Entity Framework Core 5 and be capable of handling thousands of requests per second. Another requirement was the data integrity, so a transaction was...

Read article
 | Christian Liebel

In this last article of this series, I want to summarize the development process of the Paint remake and critically reflect on the technology choices. Was this experiment successful?

Read article
 | Christian Liebel

Was in zwei Sekunden nicht lädt, wird nie wieder aufgerufen: Die Erwartung von Anwendern an die Performance von Webanwendungen nimmt stetig zu. Nach dem Laden einer Webanwendung muss sich diese schnell und flüssig anfühlen, damit der Anwender sein Ziel erreichen kann. Im Webinar zeigt Ihnen Christian Liebel mit...

Read article
 | Max Schulte

This is the first article of the mini-series 'Condensed Angular Experiences'. We will explore concepts in Angular that seem simple but are very powerful and critical for the application architecture.

Read article
 | Thorsten Hans

Mit Cloud Native Application Bundle (CNAB) wurde ein Standard definiert, der besagt wie Cloud-Native-Anwendungen mitsamt der notwendigen Abhängigkeiten verteilt, aktualisiert und entfernt werden können. Porter ist eine - von Microsoft vorangetriebene - Open-Source Referenz-Implementierung von CNAB. Ein Paket, alles...

Read article
 | Pawel Gerr

This article is the 3rd part of a series about Roslyn Source Generators & co. In the 1st article, of this series, we built a Source Generator to generate a new property Items of a smart-enum. In the 2nd article, we added a Roslyn Analyzer and a Code Fix to prevent common mistake(s) and to help out the developers when...

Read article
 | Boris Wilhelms

Thinking and even recommending a monolithic architecture these days seems antiquated. While a microservices architecture clearly has its benefits, it also comes with drawbacks. Sometimes these drawbacks can be more significant than the benefits and might hinder your development, time-to-market, or your ability to...

Read article
 | Yannick Baron

RxJS unterstützt bei der Bewältigung asynchroner Probleme verschiedener Art, nicht nur bei AJAX-Requests. Allerdings erfordert das Stream-basierte Paradigma ein Umdenken für den Entwickler. Nachdem wir uns im ersten Teil intensiv mit den Grundbausteinen von RxJS beschäftigt haben und dann im zweiten Teil sehr intensiv...

Read article
 | Pawel Gerr

This article is the second part of a series about Roslyn Source Generators & co. In the previous article we built a Source Generator that extended a custom class by creating and initializing the new property Items. This new property returns all items of a smart-enum. Although the Source Generator is fully functional, I...

Read article
 | Christian Liebel

Unit-Tests sind ein hervorragendes Mittel, um (kritische) Funktionalität einer Anwendung automatisiert und schnell überprüfen zu lassen. Das SPA-Framework Angular liefert mit Karma von vornherein eine Testunterstützung mit. Mit Facebooks Jest gibt es jedoch ein weiteres Framework, das unter anderem mit paralleler...

Read article
 | Patrick Jahr

Wie in allen anderen browserbasierten Single-Page-Application (SPA) Frameworks, ist Blazor WebAssembly JSON-over-HTTP (über Web- oder REST-APIs) die bei weitem häufigste Methode, um Daten auszutauschen und serverseitige Vorgänge auszulösen. Der Client sendet eine HTTP-Anfrage mit JSON-Daten an eine URL, mitunter über...

Read article
 | Yannick Baron

Im ersten RxJS-Webinar der Serie 'RxJS von Grund auf: Einführung in reaktives JavaScript' haben wir uns die grundlegenden Konzepte hinter RxJS näher angesehen. Dabei kam ein Blick hinter die Kulissen von Operatoren und Operatorketten zu kurz. In diesem Teil legte Yannick am 16. Juni 2021 besonderen Fokus auf diese...

Read article
 | Pawel Gerr

The Roslyn Source Generators, which came with the .NET 5 SDK, are probably one of the best features in the last few years. They allow us to improve the way we share code today by generating C# code on-the-fly during development.

Read article
 | Patrick Jahr

Ein bei Entwicklern vielleicht nicht immer so beliebtes, aber für den Endbenutzer enorm wichtiges Thema, ist das Abfangen und Behandeln von Fehlern. Selbst wenn eine Anwendung vor der Bereitstellung gründlich getestet wurde ist es immer möglich, dass der Benutzer auf (unerwartete) Fehler stößt. In diesem Artikel...

Read article
 | Yannick Baron

RxJS ist sehr mächtig. So mächtig, dass es Angular als zentrales Denk- und Programmiermodell für die interne Kommunikation unter Komponenten und Services auserkoren hat. Sie fühlen sich noch nicht sicher genug, RxJS in vollem Umfang einzusetzen? Im Webinar zeigte Yannick Baron am 02. Juni 2021, wie Sie mit den...

Read article
 | Max Schulte

Angular and its router are powerful tools to create single-page applications (SPAs). However, there are some critical differences in the context of an Ionic Framework application. Ionic Framework (short Ionic) comes with many new components and features, such as its router and animation system. Ionic's router enables...

Read article
 | Christian Liebel

In part five of the series about the making of the web-based Microsoft Paint clone paint.js.org, I want to show how to implement support for dark mode in your web applications.

Read article
 | Sebastian Gingter

Thinktecture Backend- und API-Spezialist Sebastian Gingter zeigt in dieser 10-teiligen Screencast-Serie, wie man seine ASP.NET Core 3.1-API mithilfe von Swagger dokumentiert. Im zehnten und letzten Teil sehen Sie, wie Sie aus der Dokumentation auch Postman-Tests generieren können.

Read article
 | Pawel Gerr

Mit der Veröffentlichung von Entity Framework Core v3 hat sich das Verhalten des Objekt-Relationalen Mappers von Microsoft maßgeblich geändert. Einige Performance-Probleme haben sich mit der neuen Version praktisch von selbst gelöst, andere Probleme, die man teilweise von EF v6 kennt, kamen jedoch hinzu,...

Read article
 | Christian Liebel

In this fourth part of the series about the Microsoft Paint remake on paint.js.org, I want to demonstrate how you can save your drawings to your local disk, read them back later and how to add your web app as a handler for certain file extensions.

Read article
 | Yannick Baron

A big topic in SPA development is how to manage your application state. The solution often presented is the NgRx library. This article is not a guide, endorsement, or thorough evaluation of the technology. Instead, I want to share some experiences I have made with the store and give some references if you consider...

Read article
 | Christian Liebel

Write once, run anywhere – dieser alte Java-Traum ist dank Webtechnologien längst Realität geworden. Neuerdings haben Cross-Platform-Entwickler aber die Wahl zwischen altbewährten Ansätzen wie Capacitor und GitHub Electron, bei denen Web-Apps in native Container verpackt werden, und den neuen Progressive Web Apps...

Read article
 | Sebastian Gingter

Thinktecture Backend- und API-Spezialist Sebastian Gingter zeigt in dieser 10-teiligen Screencast-Serie wie man seine ASP.NET Core 3.1-API mithilfe von Swagger dokumentieren kann. Im neunten Teil sehen Sie, wie aus unserer Dokumentation vollständige Clients generiert werden können.

Read article
 | Thorsten Hans

Finally, one to rule them all: Azure Arc enabled Kubernetes allows you to manage and monitor Kubernetes clusters from different sources. Let Azure Arc act as a cockpit for all your Kubernetes clusters, no matter if they are running in AWS, Google Compute Cloud, Digital Ocean, or even a private data center. Watch this...

Read article
 | Christian Liebel

In part three of the series about the making of the web-based Microsoft Paint clone paint.js.org, I want to show how you can copy drawings from the Paint clone to other applications and paste them back.

Read article
 | Max Schulte

Webanwendungen können mitunter komplex werden. Täglich gibt es neue Anforderungen und am besten soll die App noch Cross-Plattform verfügbar sein. Und natürlich darf die Entwicklung nicht zu lange dauern. Ionic versucht als Opinionated-Framework dieses Problem zu adressieren. In diesem Webinar zeigte Max Schulte am 21....

Read article
 | Boris Wilhelms

At least in the .NET space, IdentityServer is a prominent candidate for implementing token-based security in your .NET and ASP.NET applications, server-side or SPAs. After the license change of the popular open-source library, many are wondering if there are any viable alternatives. If you are an existing...

Read article
 | Christian Liebel

After introducing into the project about the web-based Microsoft Paint clone in the first part of this series and talking about the choice of Web Components and the architecture of paint.js.org, I now want to demonstrate how I implemented the drawing functionality.

Read article
 | Patrick Jahr

Im vorherigen Teil dieser Serie ging es um den Aufbau einer sicheren Verbindung zwischen Client und Server mithilfe von SignalR. Nun möchten wir uns zwei wichtigen Punkten im Umgang mit einem Authentifizierungstoken widmen. Wir schauen uns an, wie wir unsere Echtzeitkommunikation mit Hilfe eines Referenztoken absichern...

Read article
 | Christian Liebel

Progressive Web Apps and the new powerful web APIs provided by Project Fugu allow developers to implement desktop-class productivity apps using web technologies. In this six-part article series, Christian Liebel shows you the critical parts of how paint.js.org was made, a web-based clone of the productivity app...

Read article
 | Thorsten Hans

Anwendungen in Containern zu betreiben gehört nicht nur zum guten Ton. Bereits seit Jahren befinden sich Technologien wie Kubernetes und Docker auf einem Siegeszug der seines gleichen sucht. Doch bereits beim Erstellen von Docker Images gilt es auf viele kleine Dinge zu achten um Anwendungen auf lange Sicht...

Read article
 | Patrick Jahr

Echtzeitkommunikation zwischen zwei Welten – dem Client und dem Server. In Anwendungen wie zum Beispiel Dashboards, Messaging Apps, oder Spielen ist die Echtzeitkommunikation kaum noch weg zu denken. Mit SignalR ist eine Lösung geschaffen mit der das Hinzufügen und das Aufbauen einer Echtzeitkommunikation zwischen...

Read article
 | Steffen Jahr

Learn how to use the Azure Cognitive Search, prepare your application data to make it searchable, and improve performance and quality of your search results. In the last articles of this series, we created an index and filled it with data from the PokeApi. Now it is time to show you how you can search this index and...

Read article
 | Christian Liebel

What doesn't load in two seconds will never be accessed again: User expectations for web application performance are steadily increasing. After a web application loads, it needs to feel fast and fluid in order for the user to achieve their goal.

Read article
 | Sebastian Gingter

Die Anforderungen an Software ändern sich mit der Zeit, und so muss sich die Software mit ändern. Das gilt ebenso für unsere Web-APIs. Doch sobald wir Endpunkte entfernen, Felder umbenennen oder gar das Verhalten ändern wollen oder müssen, so haben wir bei APIs das Problem, dass ältere Clientanwendungen mit dem neuen...

Read article
 | Max Schulte

Creating mobile and desktop applications is a complicated task. Different operating systems require us to have in-depth knowledge of multiple platforms. The web solves most of the problems for us by providing a single platform that runs everywhere - supported by different operating systems and browser vendors....

Read article
 | Christian Liebel

Storybook ist ein hervorragendes Tool zur Erstellung von UI-Komponentenkatalogen. Steuerelemente können hier isoliert betrachtet, ausprobiert und dokumentiert werden – eine perfekte Schnittstelle zwischen Designern, Entwicklern und weiteren Projektbeteiligten. Christian Liebel stellte im Webinar am 03. März 2021 ein...

Read article
 | Steffen Jahr

In this article series, you learn how to use the Azure Cognitive Search, prepare your application data to make it searchable, and improve your search results' performance and quality. In the first article, I introduced Azure Cognitive Search Services. In the second part, I demonstrated how to build an index that...

Read article
 | Sebastian Gingter

Thinktecture Backend- und API-Spezialist Sebastian Gingter zeigt in dieser 10-teiligen Screencast-Serie, wie man seine ASP.NET Core 3.1-API mithilfe von Swagger dokumentieren kann. Im siebten Teil sehen Sie, wie eine API, die Authentifizierung benötigt, korrekt dokumentiert wird.

Read article
 | Yannick Baron

RxJS is a very powerful tool and has been established in Angular as its central way of communication between components and services. If you are not entirely comfortable yet using RxJS in all of its glory, then this webinar is for you.

Read article
 | Thorsten Hans

Azure Arc erlaubt die Integration von externen Servern und Diensten in bestehende Azure-Abonnements. Ob die Systeme sich hierbei in privaten Rechenzentren oder alternativen Cloud Umgebungen befinden spielt keine Rolle. Vielmehr stellt Azure Arc eine klar definierte Integrationsschicht dar, um Verwaltungsmöglichkeiten...

Read article
 | Sebastian Gingter

Thinktecture Backend- und API-Spezialist Sebastian Gingter zeigt in dieser 10-teiligen Screencast-Serie wie man seine ASP.NET Core 3.1-API mithilfe von Swagger dokumentieren kann. Im sechsten Teil sehen Sie wie Sie vorgehen können, um mehrere API-Versionen gleichzeitig zu dokumentieren und wie Sie diese Versionen in...

Read article
 | Steffen Jahr

With this article series, you will learn how to use the Azure Cognitive Search, prepare your application data to make it searchable, and improve your search results' performance and quality. This second article of the series will demonstrate how to create, modify, and configure your data's index.

Read article
 | Thorsten Hans

Recording des Azure Arc-Webinars Inhalte Kurze Azure-Arc-Intro Funktionen und Möglichkeiten von Azure Arc-enabled Kubernetes Azure Arc-enabled Kubernetes: Hands-On, Inventarisierung, Governance Monitoring Möglichkeiten, Potentiale und Alternativen Q&A Git Repository Slidedeck…

Read article
 | Christian Weyer

In unserem Recommended Reading teilen unsere Experten aktuelle Inhalte die sie in den letzten Tagen und Wochen entdeckt haben und empfehlen können. Dieses Mal ist Blazor-Experte Christian Weyer an der Reihe. Zum nach wie vor top aktuellen aber auch heiß diskutierten Thema .NET…

Read article
 | Yannick Baron

In a previous article, I showed you some of the capabilities of interactive rebase. I mentioned that you can also drop commits when rebasing. In this article, I would like to demonstrate scenarios in which that makes sense and a short-cut to achieve what we want. Article series…

Read article
 | Thorsten Hans

Internet-facing solutions of different kinds such as websites, single-page applications (SPAs), or web/REST APIs have a common requirement: they require proper transport encryption. Adding a proper SSL certificate to services is not optional. If we talk about HTTP, it is always…

Read article
 | Konstantin Denerz

In this article you will see how to enrich your test suite with functional and visual end-to-end tests for your Angular applications. Setting the Scene In the previous article, Visual Testing Of Angular Components With Storybook & Chromatic, I described how to use visual tests to…

Read article
 | Steffen Jahr

With this article series, you will learn what Azure Cognitive Search is, and how to use it. See the essential steps and make your application's data searchable, improve search performance and the quality of search results. As this is the first article of the series, it provides…

Read article
 | Sebastian Gingter

Thinktecture Backend- und API-Spezialist Sebastian Gingter zeigt in dieser 10-teiligen Screencast-Serie wie man seine ASP.NET Core 3.1-API mithilfe von Swagger dokumentieren kann. Im fünften Teil sehen Sie, wie Sie die XML-Kommentare im Code auch in die Dokumentation bringen, das…

Read article
 | Sebastian Gingter

Im Webinar am 16. Dezember 2020 beschäftigte sich Sebastian Gingter mit dem Thema Blazor Server genauer: Was ist Blazor Server überhaupt, wo liegen die Unterschiede zum Client-seitigen Blazor und SPAs im Allgemeinen und welche Auswirkungen haben diese Unterschiede auf die Art…

Read article
 | Konstantin Denerz

In a previous article, From paper sketch to a running application - Adobe XD, Storybook & Angular in action, I described the basics of writing Storybook stories and Angular components. In this follow-up, you will learn to enhance the Storybook workflow through visual testing to…

Read article
 | Thorsten Hans

You want to provision and manage your cloud infrastructure professionally yet still keep things simple? Then you should check out this webinar recording and dive into Terraform with Thorsten Hans. You will learn by practical examples how to automate your mission-critical…

Read article
 | Christian Weyer

Ähnlich wie bei Angular und React wird auch bei Blazor ständig an der Plattform weiter gearbeitet. Vor allem bei Blazor WebAssembly als relativer Framework-Neuling sind die Verbesserungen und Neuerungen des ASP.NET-Teams bei Microsoft von Interesse.

Read article
 | Yannick Baron

Once you are comfortable with rebase, it is time to step up your game with interactive rebase. As introduced in the previous article, rebasing involves taking multiple commits and applying them to a base tip. Article Series Demystifying git Rebase Interactive Rebase Rebase Onto…

Read article
 | Sebastian Gingter

Thinktecture Backend- und API-Spezialist Sebastian Gingter zeigt in dieser 10-teiligen Screencast-Serie wie man seine ASP.NET Core 3.1-API mithilfe von Swagger dokumentieren kann. Im vierten Teil sehen Sie, wie XML-Doc-Kommentare im Code auch in das Swagger-Dokument gelangen.…

Read article
 | Yannick Baron

There he is. Bob. The new guy in the office. Time to on-board him onto the flagship project of the company. Sounds like a job for Kevin. Kevin helps out Bob to get setup. Providing him with the appropriate access rights, cloning the repository, and making sure Bob's seat is nice…

Read article
 | Sebastian Gingter

Als Entwickler wollen wir uns das Leben möglichst einfach machen. Und wenn wir eine Aufgabe vor uns haben, dann wollen wir auch möglichst viel damit erreichen. Nun haben wir eine ASP.NET-Core-Web-API gebaut und sie mit Hilfe von Swagger dokumentiert. Und nun? In seinem Talk auf…

Read article
 | Pawel Gerr

In general, you can divide template engines into two types. The relatively simple ones are using template strings with placeholders to be replaced by some concrete values. The other template engines can do everything the simple ones can but additionally provide means for control…

Read article
 | Yannick Baron

Working with git every day as our software of choice for version control, I always try to point out that familiarity with our toolset is important. The more comfortable you are with git, the easier it will be to integrate changes and follow their history. One highly debated…

Read article
 | Thorsten Hans

Der Cluster Autoscaler für Azure Kubernetes Service (AKS) ist bereits seit geraumer Zeit verfügbar. Ich habe ihn bereits für mehrere Projekte verwendet. Dieser Beitrag erklärt alle Details des AKS Cluster Autoscalers. Er beschreibt, wie Sie ihn sowohl für neue als auch für…

Read article
 | Thorsten Hans

Recording des Azure-Webinars Inhalte Scaling mit Kubernetes Boardmitteln Cluster Scaling mit Azure Kubernetes Service Was ist KEDA? Scaler in KEDA KEDA-Demo Beispielcode Slidedeck zum Azure Kubernetes Service-Webinar

Read article
 | Patrick Jahr

Seit der Version Blazor WebAssembly 3.2.0 enthält Blazor umfangreiche Unterstützung für clientseitige Authentifizierung, wodurch die Implementierung von OpenID Connect und OAuth2 in Single-Page-Applications (SPAs) deutlich vereinfacht wird. In diesem Artikel sehen wir uns an, wie…

Read article
 | Sebastian Gingter

Thinktecture Backend- und API-Spezialist Sebastian Gingter zeigt in dieser 10-teiligen Screencast-Serie wie man seine ASP.NET Core 3.1-API mithilfe von Swagger dokumentieren kann. Im dritten Teil sehen Sie, wie Sie die bisher eher rudimentäre Dokumentation aufpeppen. Mit…

Read article
 | Manuel Rauber

Web Components – ein Begriff, den wir immer öfter hören und lesen werden. Dahinter stehen die Technologien Custom Elements, Shadow DOM und HTML Templates. Zusammen ergeben sie ein natives Komponentenmodell für unseren Browser. Es hilft uns, wiederverwendbare UI-Komponenten zu…

Read article
 | Max Schulte

Im Webinar am 21. Oktober zeigt Max Schulte anhand einer Angular-Anwendung, Kernaspekte und Wege sowie einen Architekturansatz, um neue Visualisierungs- und Bedienmöglichkeiten in Ihre Anwendung integrieren zu können. Sie lernen die kritischen Unterschiede zwischen einem SPA…

Read article
 | Thinktecture Team

In this five-part article series, you learn how to manipulate your API behavior with a local proxy server. So far, this series has covered an introduction, taught you how to set up and configure Charles Proxy, and you have seen it in action. After presenting the Fiddler setup, we…

Read article
 | Christian Liebel

In the previous parts of this article series, we learned that Apple does not support the standardized web-based push mechanisms, and there is no sign of a possible timeline for implementation. Therefore we have to look at additional ways to bring the users' attention back to our…

Read article
 | Sebastian Gingter

Recording des ASP.NET Core API-Dokumentation-Webinars Inhalte Warum überhaupt API-Dokumentation? Wie dokumentiere ich eine ASP.NET Core Web-API? Technische Details Was sonst? API-Clients & Tests generieren Q&A Demo-Repository: https://github.com/thinktecture/tt-webinar-202…

Read article
 | Sebastian Gingter

Thinktecture Backend- und API-Spezialist Sebastian Gingter zeigt in dieser 10-teiligen Screencast-Serie wie man seine ASP.NET Core 3.1 API mithilfe von Swagger dokumentieren kann. Nach der Einführung in Teil 1, wird es im zweiten Teil praktisch und Sie sehen Code. Im Screencast…

Read article
 | Manuel Rauber

Stencil - a Web Components Compiler If you read through our Web Components Perks & Flaws series, you may remember that Web Components have some flaws, for example having to repeat much boilerplate code and respect the render loop, missing a template engine, or creating a build…

Read article
 | Thinktecture Team

In this five-part article series, you will learn how to manipulate your API behavior with a local proxy server. After an introduction, learning how to set up and configure Charles Proxy, and seeing it in action, we are now taking a look at the Fiddler setup and configuration…

Read article
 | Sebastian Gingter

Thinktecture Backend- und API-Spezialist Sebastian Gingter zeigt in dieser 10-teiligen Screencast-Serie wie man seine ASP.NET Core 3.1 API mithilfe von Swagger dokumentieren kann. Der erste Teil befasst sich damit welche Gründe für eine Dokumentation sprechen und wo der…

Read article
 | Thomas Hilzendegen

"Bitte prüfen Sie, ob eine Verbindung zum Internet vorhanden ist" - ein Satz, den wir alle kennen, wenn wir eine Anwendung nutzen wollen, die nicht offline verfügbar ist. In diesem Artikel zeigen wir, wie man eine bestehende (Angular-) Anwendung und ihre Daten offline nehmen kann…

Read article
 | Christian Liebel

Christian hat in seinem Webinar am 18. September 2020 über Progressive Web Apps die Offline-Fähigkeit in den Mittelpunkt gerückt - denn: zentrale Eigenschaft jeder Progressive Web App (PWA) ist die Verbindungsunabhängigkeit. Dank dem Service Worker funktioniert die App auch dann…

Read article
 | Manuel Rauber

In the blog series about Web Components, we talked a lot about the perks and flaws of Web Components (or: the current state of Web Components) and how their integrability in modern SPA frameworks looks like. But we only took a short look at Web Components being integrated as a…

Read article
 | Thorsten Hans

This article provides an introduction to Azure API Management (APIM) and shares options on how to address common use cases when exposing APIs. A wide variety of enterprises worldwide are in the process of adopting public cloud services and increasing their public API surface to…

Read article
 | Thorsten Hans

Im Webinar am 09. September 2020 half Infrastructure-as-Code-Spezialist Thorsten Hans nicht nur dabei die Terraform-Basics kennenzulernen. Vielmehr zeigte er, wie Sie eine exemplarische Infrastruktur für mehrere Umgebungen (Development / Staging / Production) erstellen, anpassen…

Read article
 | Christian Weyer

When people talk about WebAssembly and .NET Core these days, they immediately think about Blazor WebAssembly. But there is more to it. Actually, Blazor WebAssembly currently does not run our code as a WebAssembly (WASM) module, but rather runs the .NET CLR (or a Mono version of…

Read article
 | Thinktecture Team

In this five-part article series, you will learn how to manipulate your API behavior with a local proxy server. After setting the scene with an introduction and learning how to set up and configure Charles Proxy, we will now take a look at Charles Proxy in action. You will gain…

Read article
 | Patrick Jahr

Im ersten Teil der Artikelserie haben wir uns den generellen Verbindungsaufbau und Datenaustausch zwischen Client und Server mithilfe von SignalR angeschaut. Im zweiten Teil widmen wir uns nun der Absicherung unserer Echtzeitkommunikation. Ich zeige euch, wie ihr durch kleine…

Read article
 | Max Schulte

Progressive Web Apps (PWA) are one of the most promising new technologies for the web. They enable web apps to be used similar to native apps: they can be installed on the home screen and, with some additional work, also run offline. Apart from that, you also need access to platform features like notifications, the...

Read article
 | Pawel Gerr

With Blazor WebAssembly we are now able to create single-page applications (SPA) using C# and the ASP.NET Core Framework. When coming from ASP.NET Core MVC, you may ask yourself what .NET features are available, limited, or not available when running in the browser. One of them…

Read article
 | Patrick Jahr

ASP.NET Core SignalR vereinfacht die Implementierung einer bidirektionalen Echtzeitkommunikation zwischen Server und Clients. In dieser Artikelserie, möchte ich anhand einer Demoanwendung zeigen, wie eine Echtzeitkommunikation mit Hilfe von SignalR aufgebaut und abgesichert…

Read article
 | Thinktecture Team

In this five-part article series, you will learn how to manipulate your API behavior with a local proxy server. After setting the scene with an introduction, we will now learn how to set up the Charles Proxy and its configuration Article series Introduction Charles Proxy Setup…

Read article
 | Christian Liebel

The third part of the PWA push notification series will take a closer look at the HTTP Web Push protocol. If you want to learn more about the Notifications API or the Push API, check out the first two parts. Article Series Notifications API Push API HTTP Web Push ⬅ Additional…

Read article
 | Pawel Gerr

When starting with new frameworks that have a lifecycle for their artifacts like components, then you may assume that the lifecycle is strictly linear. In other words, step A comes before step B comes before step C, and so on. Usually, this is the case until it is not. The…

Read article
 | Christian Weyer

Single-Page Applications (SPAs): bisher implementierte man sie vornehmlich mit JavaScript oder TypeScript, oft im Rahmen eines SPA Frameworks wie Angular oder React. Mittlerweile können nun durch den WebAssembly-Standard theoretisch beliebige Sprachen genutzt werden. Mit dem…

Read article
 | Manuel Rauber

You might have read the article series about Web Components in which we talked about the advantages and disadvantages of Web Components in detail and how they are integrable in modern SPA frameworks. This article focuses on how you can create Web Components using a modern SPA…

Read article
 | Christian Liebel

Traditionally, when developers wanted to distribute their web-based apps through app stores like Google Play, there was only one option: Apache Cordova. In the meantime, Progressive Web Apps (PWA) have arrived. The life of a PWA starts in the browser, and users can choose to…

Read article
 | Konstantin Denerz

In this article, I will show you how to design and develop application components for a SPA. We will start of from a paper sketch, head over to a designer tool, like Adobe XD, followed by an interactive testing environment, like Storybook, to finally result in a running Angular…

Read article
 | Boris Wilhelms

In this article, I will demonstrate how a sample architecture for long-running web processes in Microsoft Azure can look like. Legacy On-Prem Application Scenario We recently "cloudified" a legacy application with one of our large customers which is quite old, based on C…

Read article
 | Yannick Baron

Recording des Git-Webinars Inhalte Motivation: Warum Versionsverwaltung? Initialisierung Datastructure: Tree Branching & Reintegration Resetting Remotes & Empfangen von Änderungen Beheben von Konflikten Plattformen und Lernmöglichkeiten Q&A Die Antworten auf die Q&A-Fragen des…

Read article
 | Thorsten Hans

Im Webinar am 08. Juli 2020 erklärte Thorsten Hans was Docker ist, warum Docker für jedes Unternehmen interessant ist und wie .NET-Web-Anwendungen effizient in Docker Containern betrieben werden. Lernen Sie die wichtigsten Charakteristiken und Kommandos, um mit der beliebten…

Read article
 | Thinktecture Team

When it comes to developing against an HTTPS/REST API, which we do not control ourselves, we face many problems regularly. Issues and hard to provoke edge cases may include a wrong implementation, an incomplete implementation or connection problems (dial-in issues, dropping…

Read article
 | Boris Wilhelms

Im Webinar am 01. Juli 2020 zeigte Boris Wilhelms, was das Serverless-Modell ist und wie wir als .NET-Entwickler Azure Functions nutzen können um Serverless-Code zu schreiben. Das Serverless-Modell ist eine von vielen verschiedenen Möglichkeiten, Anwendungen für die Cloud zu…

Read article
 | Thorsten Hans

Thinktecture Cloud-Native- und Infrastructure-as-Code-Spezialist Thorsten Hans erklärt in einer fünfteiligen Screencast-Serie das Framework Electron. Nach den Grundlagen und der Architektur, Developer-Essentials, der UX-Optimierung und Security-Maßnahmen, geht es im letzten Teil…

Read article
 | Pawel Gerr

It has been a while since I released my article about the usage of temp tables in Entity Framework (v6). Meanwhile, Microsoft has released a completely rewritten version of its O/R mapper so my old approach is no longer applicable. But before we learn about a new one, let us…

Read article
 | Manuel Rauber

In this four part article series, we are exploring the perks, flaws, and current standards of forming Web Components. This last article will teach you how Web Components can share data and services, and which role frameworks play. Article Series The Motivation for using Web…

Read article
 | Christian Liebel

Recording des Angular-Webinars Inhalte: Templating und Data Binding Benutzerdefinierte Steuerelemente Datenhaltung Dependency Injection Reaktive Programmierung Debugging Links: Code Sample: Angular-Beispie Code Sample: WPF-Beispiel Kostenloses Ebook "Angular für XAML…

Read article
 | Pawel Gerr

Both a LINQ query and an SQL statement are descriptions that state which data should be fetched, but not how.. Sure, when reading LINQ or SQL, we can make assumptions about the performance but not in every case. Some queries are either too fancy or too big to grasp, so our…

Read article
 | Thorsten Hans

Im Webinar am 03. Juni 2020 erklärte Thorsten Hans am Beispiel von Azure Kubernetes Service (AKS), was Kubernetes ist und wie der Container-Orchestrator funktioniert. Anhand einer exemplarischen .NET-Core-Anwendung hat er veranschaulicht, wie der Weg in das beliebte „Cloud…

Read article
 | Patrick Jahr

What to expect Learn how to create a native Web Component using LitElement Step-by-step explanations How to render your HTML template Adding styles Using asynchronous properties All based on a sample built with Visual Studio Code You can find a running example on stackblitz. What…

Read article
 | Thorsten Hans

Thinktecture Cloud-Native- und Infrastructure-as-Code-Spezialist Thorsten Hans erklärt in einer fünfteiligen Screencast-Serie das Framework Electron. Nachdem er bereits in die Grundlagen und Architektur, Developer-Essentials und die UX-Optimierung einführte, geht es im vierten…

Read article
 | Sebastian Gingter

Thinktecture Backend- und API-Spezialist Sebastian Gingter zeigt in dieser vierteiligen Screencast-Serie, wie eine ASP.NET Core 3.0 API versioniert wird. Nach einer Einführung in die API-Versionierung, der Integration in neue Projekte und Hinweisen zur Konfiguration, geht es im…

Read article
 | Manuel Rauber

The first article of this series introduced into the motivation for using Web Components. After looking at the perks in the second part, we are going to learn about the flaws of Web Components in this article. Please note that with the on-going development of the standards, some…

Read article
 | Konstantin Denerz

In some of my recent projects, I have experienced the need and requirements for better user experience by incorporating animations into Angular-based user interfaces. In this article, I am showing you how you can create an expressive toast component with Angular animations…

Read article
 | Pawel Gerr

For one of our customers, I recently had to change the target .NET Framework version from 4.5.1 to 4.6.1 because a new version of some important Nuget package requires .NET 4.6.1. Changing the framework version in newer SDK-based projects is not a problem but the old files, the…

Read article
 | Sebastian Gingter

Thinktecture Backend- und API-Spezialist Sebastian Gingter zeigt in dieser vierteiligen Screencast-Serie wie man seine ASP.NET Core 3.0 API versionieren kann. Nach der Einführung in die Versionierung und der Erläuterung über die Integration in neue Projekte, befasst sich der…

Read article
 | Manuel Rauber

Web Components - a term you most probably hear regularly in recent times as a web developer. With the standards of Shadow DOM, HTML Custom Elements, HTML Templates, and, in former times, HTML Imports, there finally is a native component model within the browser. In this four-part…

Read article
 | Manuel Rauber

In the introduction article to this series, I wrote about the motivation, why to use Web Components. Now we are going to take a closer look at the perks of using them - from a technical and business point of view. If you are interested in all technical features of Web Components…

Read article
 | Thorsten Hans

Thinktecture Cloud-Native- und Infrastructure-as-Code-Spezialist Thorsten Hans erklärt in einer fünfteiligen Screencast-Serie das Framework Electron. Nachdem er bereits in die Grundlagen und Architektur einführte und Developer-Essentials vorstellte, geht es im dritten Teil um die…

Read article
 | Konstantin Denerz

Diese Artikelserie beschäftigt sich mit dem dynamischen Nachladen von Angular-Modulen. Der letzte Artikel der Serie beschreibt einen Weg des Nachladens mit der Berücksichtigung eines Berechtigungskonzeptes. Die Kommunikation zwischen den dynamischen Modulen und der Hauptanwendung…

Read article
 | Patrick Jahr

What to expect Learn how to create a native Web Component without using a framework Explanation of all steps and essentials points like HTML Templates, Custom Elements and shadow DOM to create a Web Component, based on a sample built with Visual Studio Code. What are Web…

Read article
 | Christian Liebel

Mit Project Fugu mischen Google, Microsoft und Intel die Welt der webbasierten Anwendungsentwicklung gründlich auf. Fähigkeiten, die bisher nur nativen Anwendungen oder über Wrapper-Ansätze wie Apache Cordova oder GitHub Electron zugänglich waren, sollen ihren Weg in den Browser…

Read article
 | Sebastian Gingter

Thinktecture Backend- und API-Spezialist Sebastian Gingter zeigt in dieser vierteiligen Screencast-Serie wie man seine ASP.NET Core 3.0 API versionieren kann. Nach der Einführung in die API-Versionierung, befasst sich der zweite Teil damit, wie Versionierung in ein neues API…

Read article
 | Pawel Gerr

After talking about performance issues like N+1 Queries and the Cartesian Explosion that made its comeback in Entity Framework Core 3, we will today look at a performance issue that is not tied to any Entity Framework version but is rather a general one. What do I mean by…

Read article
 | Thorsten Hans

Thinktecture Cloud-Native- und Infrastructure-as-Code-Spezialist Thorsten Hans erklärt in einer fünfteiligen Screencast-Serie das Framework Electron. Nachdem der erste Teil in die Grundlagen und Architektur einführte, geht es im zweiten Teil um Developer-Essentials mit denen Sie…

Read article
 | Max Schulte

In diesem Artikel werde ich zeigen wie Angular und BabylonJS erfolgreich und zukunftssicher integriert werden. Beide Frameworks – Angular als Business-Application-Framework und BabylonJS als Graphics-Engine – sind auf dem jeweiligen Gebiet gestandene Beispiele und damit perfekt…

Read article
 | Konstantin Denerz

Eine hohe Performance und die Sicherheit von Webapplikationen ist für jeden Entwickler ein Dauerthema. Unter JavaScript ist es möglich, für eine hohe Performance nur die gerade benötigten oder wegen der Sicherheit nur die erlaubten Teile der Applikation zu laden. Diese…

Read article
 | Konstantin Denerz

Diese Artikelserie beschäftigt sich mit dem dynamischen Nachladen von Angular-Modulen. Im zweiten Teil der Serie erfahren Sie wie die initiale Lade- und Start-Performance durch das Nachladen mit Angular Router optimiert werden kann. Die im Artikel referenzierte Demo-Anwendung…

Read article
 | Christian Liebel

This part of our article series on PWA push notifications focuses on the Push API that deals with creating push subscriptions and receiving push messages. If you want to learn more about web-based notifications in general, check out the first part of our series on the…

Read article
 | Sebastian Gingter

Inhalte des Screencasts Warum API-Versionierung? Gründe, die für die Versionierung einer API sprechen, wann man API-Versionierung (nicht) in Betracht ziehen sollte und welche Kriterien dafür sprechen, eine neue Version einzuführen. Versionsauswahl: Es werden vier verschiedene…

Read article
 | Pawel Gerr

In Entity Framework Core 3.0/3.1 the SQL statement generation underwent significant changes. As we have seen in the previous post these changes removed both the implicit client-side evaluation and the N+1 Query Problem (which is good!). Unfortunately, these changes (re)introduced…

Read article
 | Thorsten Hans

What is KEDA KEDA stands for Kubernetes Event-driven Autoscaling. It is a thin layer built on top of Kubernetes to scale applications dynamically based on metrics from external systems. Although it comes with first-class support for Azure Functions, it is not limited to Azure…

Read article
 | Christian Weyer

As already outlined in my previous article, a Blazor application almost always has to integrate with the JavaScript world, and especially with the DOM layer in the browser. In this article, I am going to quickly show you how to transform your Blazor WebAssembly application into a…

Read article
 | Pawel Gerr

In a previous post we saw that EF 2.1 is highly susceptible to the N+1 queries problem. After the release of a new version of Entity Framework Core (EF) the first question coming to mind is: "Is it still a big issue in EF 3.1?" And if the answer is no, is there anything else we…

Read article
 | Thorsten Hans

Inhalte des Screencasts Was ist Electron? Ein kurzer Einblick in die Entstehungsgeschichte von GitHub Electron sowie deren Hintergründe. Warum Electron? Wert und Nutzen von Electron für die Entwicklung moderner Cross-Plattform-Anwendungen, die auf Desktop-Systemen ausgeführt…

Read article
 | Max Schulte

Welcome to the second part of this blog post series. If you want to learn how to basically integrate BabylonJS into Angular (or vice versa) please take a look at part 1. In this post, our goal is to make your application and the interactions fast! Article Series Integration…

Read article
 | Christian Liebel

For sure, Progressive Web Apps (PWA) are one of the hottest topics on the web today. A PWA should feel like a real app, including the ability to show push notifications. In this blog series, you will learn how to implement push messaging in your PWA or website using the Push API…

Read article
 | Sebastian Gingter

In my last articles on how to prepare your IdentityServer for Chromes SameSite Cookie changes and how to correctly delete your SameSite Cookies in Chrome 80 I explained the changes that Chrome did to its SameSite Cookie implementation, how that might affect you and how to avoid…

Read article
 | Max Schulte

In this two parts article, I will demonstrate how easy it can be to integrate a 3D engine like BabylonJS into a business application built with a SPA framework like Angular. You will see how those two frameworks can interact with each other and where possible performance pitfalls…

Read article
 | Christian Weyer

Microsoft's Blazor WebAssembly toolkit is one of the new kids on the block in WebAssembly land. For many developers WebAssembly (or WASM) is the origin for a new revolution in the web. We can finally(?) use other languages and frameworks than JavaScript to run applications in a…

Read article
 | Sebastian Gingter

In my last article I explained how the changes in Chrome 80 (February 2020) can break your existing web sites or web applications, because SameSite cookies will be treated differently. In that post I focused on how to correctly set your cookies and how to mitigate…

Read article
 | Sebastian Gingter

First, the good news: In February 2020 Google is going to release Chrome 80. This release will include Google's implementation of 'Incrementally better Cookies', which will make the web a more secure place and helps to ensure better privacy for users. The bad news is that this…

Read article
 | Yannick Baron

This is the second part of a small series, in which I want to share some pitfalls we discovered multiple times in code reviews over the years, as well a few patterns we identified as helpful. In the first part we discussed how nesting subscriptions can be harmful.

Read article
 | Yannick Baron

In the first and second part of this small series, we have discussed implementations that have flaws and can introduce side-effects to our data flow. We have learned how combining our streams and modeling our our data flow to yield a single result helped with solving the introduced problems.

Read article
 | Pawel Gerr

In the previous blog post we used a navigational property to work around the limitations of the extension method . The problem is, there is not always such a property we can use for grouping. Especially, when following domain driven design practices, a bidirectional navigation is…

Read article
 | Yannick Baron

Working on numerous Angular projects over the past couple of years, it has become evident, that a lot of developers still have a hard time working with RxJS which finds its use in Angular. While RxJS is a very powerful tool, it comes with a lot of operators and a whole paradigm shift. Even experienced developers can be...

Read article
 | Pawel Gerr

With Entity Framework Core 3.0 (EF) the internal implementation of the LINQ query translation has been changed a lot. So, some queries that didn't work previously are working now and some that worked are not working anymore. :) The LINQ extension method is a special one…

Read article
 | Pawel Gerr

Whether in an application in production or in integration tests on CI, the deadlocks are virtually unavoidable. The behavior of a deadlock depends on the database (MS SQL Server, MySQL, etc)  and the isolation level (like Snapshot Isolation). Some of the databases are blocking…

Read article
 | Pawel Gerr

In the blog post Entity Framework Core: Use TransactionScope with Caution! we saw a few cases we have to be aware of when using . Here is another one that can lead to an exception when using the new C# 8.0 feature: . First, we look at a code snippet without C# 8.0 feature: Which…

Read article
 | Pawel Gerr

The Entity Framework Core (EF) extension method provides us the ability to load additional data besides the entities we are querying for. For example: loading products along with their translations. In some use cases we want to load all translations for the requested products…

Read article
 | Pawel Gerr

With the introduction of ASP.NET Core 3.0 the default JSON serializer has been changed from Newtonsoft.Json to System.Text.Json. For projects and libraries switching to the new JSON serializer this change means more performance and the opportunity to rewrite our . Serialization…

Read article
 | Pawel Gerr

By switching the to and setting to in the csproj-file we are now benefiting from the introduced with the latest version of C#. By enabling this new feature all type members, input and output parameters are considered to be not-null. If some members or parameters, like can…

Read article
 | Pawel Gerr

In the blog post ROW_NUMBER Support we saw how to implement a custom function and in the previous post Improved Value Conversion Support we realized that inserting and selecting custom types is one thing but using them for filtering is something totally different. Let's take a…

Read article
 | Pawel Gerr

Entity Framework Core (EF) 2.1 introduced a new feature called Value Conversion. Now, we are able to map custom .NET types to a type the database understands and vice versa. This long-awaited feature is especially popular among software engineers following the domain driven…

Read article
 | Pawel Gerr

In the previous post (Custom Functions - using IMethodCallTranslator) we looked at the more flexible approach that requires some boilerplate code. For the usage of a custom function in a project, especially if there are no plans to make the function public then the sacrifice of…

Read article
 | Pawel Gerr

In the previous blog post (Entity Framework Core: ROW_NUMBER Support) we saw how to use the custom function with Entity Framework Core (EF). Now, we will look into the implementation. In the next and the last post of this series we will look ath the 2nd approach that uses the…

Read article
 | Pawel Gerr

There are some use cases that force me to use raw T-SQL instead of using LINQ. One of them is the need for ROW_NUMBER. But not anymore... One again, due to great work of Entity Framework (EF) team we are able to add more capabilities to EF quite easily. At the moment there are…

Read article
 | Pawel Gerr

Motivation One of the main queries in my projects is to select multiple database records having a collection of some kind of identifiers. Most of the time it works very well using the method . The query above is translated by the Entity Framework Core (EF Core) to clause: Most…

Read article
 | Pawel Gerr

When working with Entity Framework Core (EF) a lot of code can be tested using the In-Memory database provider but sometimes you want (or have) to go to the real database. For example, you are using not just LINQ but custom SQL statements due to performance reasons or you want to…

Read article
 | Pawel Gerr

In the first part of this short blog post series we looked at how to change the database schema of a DbContext, now it is all about changing the schema of the EF Core Migrations at runtime. The samples are on Github: PawelGerr/EntityFrameworkCore-Demos Given is a  implementing…

Read article
 | Pawel Gerr

One of the new features of Entity Framework Core 2.1 is the support of TransactionScopes. The usage of a  is very easy, just put a new instance in a , write the code inside the block and when you are finished then call to commit the transaction: But, before changing your code…

Read article
 | Pawel Gerr

At the moment there is no built-in support for changing the database schema at runtime. Luckily, Entity Framework Core (EF) provides us with the right tools to implement it by ourselves. The demos are on GitHub: github:PawelGerr/EntityFrameworkCore-Demos Given are a database…

Read article
 | Pawel Gerr

In the previous post we have created 2 Entity Framework Core (EF Core) models with a code first approach. One model was using the Table-per-Hierarchy (TPH) pattern and the other one Table-per-Type (TPT). In this post we want to approach a more common scenario we see in customer…

Read article
 | Pawel Gerr

With O/R mappers there are a few patterns how a class hierarchy can be mapped to a relational database. The most popular ones are the Table-Per-Hierarchy (TPH) and the Table-Per-Type (TPT) patterns. The Entity Framework Core 2.x (EF Core) officially supports the Table-per…

Read article
 | Pawel Gerr

In the previous post we have identified some Entity Framework (EF) LINQ queries that are affected by so called N+1 queries problem. In the meantime a new version (2.1-RC1) of Entity Framework has been released so we check the SQL statement generation yet another time. Samples…

Read article
 | Pawel Gerr

After working with Entity Framework 6 (EF 6) for several years, a software developer can predict the SQL statements being generated by EF just by looking at the LINQ queries. With Entity Framework Core (EF Core) the SQL statement generation has changed - in some cases for the…

Read article
 | Pawel Gerr

In the previous blog post I talked about how to change the log level at runtime by coupling the (or rather the ) with the . However, the solution has one drawback: you need to change the file  for that. In this post we will be able to change the log level without changing the…

Read article
 | Pawel Gerr

When running the application in production then the log level is set somewhere between and . The question is what to do if you or your customer experiences some undesired behavior and the logs with present log level aren't enough to pinpoint the issue. The first solution that…

Read article
 | Pawel Gerr

If you are using Autofac in your ASP.NET Core application then I recommend to update Autofac to version 4.6.1. This bugfix release brought a change how child scope handle additional registrations so that some errors like just disappear. With additional registrations I mean the…

Read article
 | Pawel Gerr

In the previous post "ASP.NET Core in production: Take back control of your web app" I mentioned that getting hold if the dependency injection (DI) is just one step of many to improve the architecture of your web applications. Today well will look into 2 other aspects that are…

Read article
 | Pawel Gerr

With ASP.NET Core the setup of a new MVC or a Web API project is essentially a 2-liner. The standard setup you can find in most tutorials is ideal for demos, workshops or simple web apps but is insufficient for complex applications. The standard setup looks as follows: The rest…

Read article
 | Pawel Gerr

If you register a type as a singleton then you expect just 1 instance of this type in your whole application. What you may not know is that ASP.NET Core is creating 2 instances of during building of the that may lead to 2 instance of your "singleton". This is the case if you…

Read article
 | Steffen Jahr

If you are working with Service Workers for the first time you'll probably have noticed that the Service Worker's functionality can be found on different objects. This can be a little bit confusing. First of all the API is a little bit misleading because is not an instance of…

Read article
 | Pawel Gerr

After working with the new ASP.NET Core server and the for a while in a number of projects I run into some performance issues. Actually, it was a throughput issue. It took me some time to figure out whether it is the server or the client responsible for the problems. And the…

Read article
 | Pawel Gerr

If you have switched your .NET Core project from to (MSBuild) and updated the nuget packages then you may run into an issue when executing some of the -commands. I got the following error after executing : The problem is that some of my (3rd party) dependencies are using…

Read article
 | Pawel Gerr

Configuration is one of the most prominent cornerstones in software systems, and especially in distributed systems. And it has been a point for discussions in .NET for quite some time. In one of our projects we have built a solution that lets different applications in different…

Read article
 | Pawel Gerr

If you are planing to run an ASP.NET Core application with IIS then this blog post might be worth a glance. These are a few issues I run into ... 1. Targets in .xproj-file If the project started with RC1 or earlier version of .NET Core then check for correct targets. Open the…

Read article
 | Pawel Gerr

After several years of using the same Dependency Injection (DI) framework like Autofac you may have a good understanding how your components, implementing the interface IDisposable, are going to be disposed. With the nuget package Microsoft.Extensions.DependencyInjection the new…

Read article
 | Pawel Gerr

With the introduction of .NET Core we got a framework that works not just on Windows, but on Linux and macOS as well. One of the best parts of .NET Core is that the APIs stayed almost the same compared to the old .NET, meaning developers can use their .NET skills to build cross…

Read article
 | Pawel Gerr

Fetching one record from a collection using navigational properties in Entity Framework may lead to unnecessary JOINs. To show the problem we need two tables Products and Prices. The query shown below is fetching products along with their first price. Looks simple. Lets look at…

Read article
 | Pawel Gerr

In an Angular 1 application we have been creating for one of our customers we used the $interpolate service to build a simple templating engine. The user was able to create snippets with placeholders within the web application to use these message fragments to compose an email to…

Read article
 | Pawel Gerr

Implementing database access with Entity Framework is pretty convenient, but sometimes the query performance can be very poor. Especially using navigational properties to load collections leads to significantly longer execution times and more I/O. To see the impact of the loading…

Read article
 | Pawel Gerr

With the new .NET Core framework and libraries we have got an interface called Microsoft.Extensions.Logging.ILogger to be used for writing log messages. Various 3rd party and built-in components make very good use of it. To see how much is being logged just create a simple Web…

Read article
 | Steffen Jahr

A few weeks ago one ouf our customers asked me what he can use if he wanted to move (in his words drag and drop) a HTML element. He told me that he found several examples using jQuery respectively jQuery UI but he wanted to have a plain solution without jQuery. His first approach…

Read article
 | Pawel Gerr

In this post, we will look into an approach for exchanging the definition of an AngularJS directive, i.e. the template, controller, compile/link functions etc., after the application has been bootstrapped whereby carrying out a full reload is not an option. Assume that you have…

Read article