Jonathan Allen, InfoQ

Jonathan Allen

InfoQ

Contact Jonathan

Discover and connect with journalists and influencers around the world, save time on email research, monitor the news, and more.

Start free trial

Recent:
  • Unknown
Past:
  • InfoQ

Past articles by Jonathan:

.NET 7 Removes Its Insecure XmlSecureResolver

.NET 7 has replaced the insecure XmlSecureResolver with a new ThrowingResolver type. → Read More

.NET 7 Adds Aggressive Garbage Collection for Kubernetes

In a Kubernetes cluster, idle services may consume too much memory, resulting in an out-of-memory situation for the whole server even nothing significant is occurring. The new GCCollectionMode.Aggressive option allows the application to tell the runtime to release memory it doesn’t need when going idle. → Read More

Tagged Strings in Visual Studio and .NET 7

As part of .NET 7, developers now have the ability to tag strings using the StringSyntax attribute. These tags inform tools such as Visual Studio as to the nature of the string. For example, you can mark the string as containing JSON or RegEx and Visual Studio will apply the appropriate syntax highlighting. → Read More

.NET 7 Adds Generic Math

Along with Static Abstract Methods in interfaces comes support for generic math in .NET 7 via interfaces such as INumber. → Read More

C# 11 and .NET 7 Bring Generic Parsing

Using the new Static Abstract Methods feature, .NET 7 eliminates the need to use reflection when parsing strings into generic objects. → Read More

InfoQ .NET Trends Report 2022

Every year, all InfoQ editors invite seasoned developers and practitioners from the industry to discuss the current trends in the entire software development landscape. In this article, we discuss some of the .NET Trends for 2022, divided into four stages of adoption. → Read More

PostgreSQL 14 Breaks the .NET and Java Drivers for PostgreSQL

In some circumstances, the new syntax in PostgreSQL 14 will break its official .NET and Java database driver. Specifically, when using either to create a SQL function using BEGIN ATOMIC ... END. If you are not modifying your database schema via Npgsql or PgJDBC, there’s no need to worry. → Read More

Database Command Batching in .NET 6

.NET 6 adds the ability for ADO.NET database drivers to support efficient command batching using native protocols. → Read More

C# Warning Waves Hint at New Keywords in the Future

Like C# 9 and 10, C# 11 has quietly added a new compiler warning. This opt-in warning prevents the use of type names (e.g. classes, structs, and interfaces) that are all lowercase. → Read More

The Fundamentals of Testing with Persistence Layers

These days few developers are trained on how to write anything other than unit tests. This article seeks to correct the issue by reintroducing the concept of testing with databases. → Read More

.NET 6: Threading Improvements

While numerous libraries exist to abstract away the complexities of asynchronous and concurrent programming, developers still need to drop down to lower thread-handling logic from time to time. Continuing our API changes for .NET 6 series, we look at some new tricks for multi-threading. → Read More

Introducing System.Threading.RateLimiting for .NET

While rate limiting is a well-known problem for web servers, there are many other situations where similar capabilities are needed. With the introduction of System.Threading.RateLimiting, developers will be able to add this capability without writing it themselves. → Read More

Async Streaming with EF Core and ASP.NET Core 6

Combining enhancements to .NET Core and EF Core, ASP.NET Core 6 has gained the ability to handle arbitrarily large JSON files via asynchronous streaming and the IAsyncEnumerable interface. → Read More

ASP.NET Core 6 to Challenge Python and Node

ASP.NET Core 6 will allow developers to build REST APIs using a single-file model similar to basic Python and Node applications. Under this model, developers will no longer need to create a Program class, a Startup class, or Controller classes. → Read More

.NET 6: Collections Improvements

Next in our series on the API changes for .NET 6, we look at collections. → Read More

Building a Source Generator for C#

In this article we’ll be writing a Source Generator for C#. Along the way we’ll explain some of the key technologies and pitfalls you might encounter on the way. → Read More

Case Study: A Decade of Microservices at a Financial Firm

Microservices are the hot new architectural pattern, but the problem with “hot” and “new” is that it can take years for the real costs of an architectural pattern to be revealed. Fortunately, the pattern isn’t new, just the name is. So, we can learn from companies that have been doing this for a decade or more. → Read More

.NET 6 LINQ Improvements

Continuing our series on the over 100 API changes in .NET 6, we look at extensions to the LINQ library. → Read More

.NET 6: Async Improvements

Among the over 100 API changes in .NET 6 are several features designed to make working with asynchronous code easier and safer. These include new WaitAsync methods, reusable CancellationTokenSource, and execution context management. → Read More

.NET 6: Date and Time Structures

A long-standing problem with .NET’s Base Class Library is the inability to separately represent date and time values. As part of .NET 6, the new DateOnly and TimeOnly classes seek to correct this oversight. → Read More