InfoQ Homepage .NET Content on InfoQ
-
Creating an HTML UI for Desktop .NET Applications
Developers are looking for ways to employ the richness of the Web UI in desktop applications. The common approach is to embed a browser component to render the HTML UI within the desktop app.
-
Advanced Use Cases for the Repository Pattern in .NET
In our previous article, we looked at the basic patterns needed to implement a repository. In many cases these patterns were such a thin layer around the underlying data access technology they were essentially unnecessary. However, once you have a repository in place, many new opportunities become available.
-
Implementation Strategies for the Repository Pattern with Entity Framework, Dapper, and Chain
This article will focus on the basic functionality that one would find in a typical repository created with .NET. We’ll look at both general functionality and how that functionality would be implemented using three different styles of ORM: Entity Framework, Dapper, and Tortuga Chain.
-
On Abstractions and For-Each Performance in C#
Donald Knuth famously said, “We should forget about small efficiencies, say about 97% of the time”. But when faced with the other 3%, it is good to know what’s going on behind the scenes. So in this article we’ll be taking a dive into the foreach loop.
-
Designing with Exceptions in .NET
Exceptions are an integral part of working with .NET, but far too many developers don’t think about them from an API design perspective. Most of their work begins and ends with knowing which exceptions they need to catch and which should be allowed to hit the global logger. You can significantly reduce the time it takes to correct bugs if you design the API to use exceptions correctly.
-
Getting Started with ASP.Net Performance Monitoring and Optimization
“This web page is slow” is a common and regular complaint about web sites, especially since web applications started replacing desktop applications. While the web brings some desirable characteristics such as global delivery, it also brings its share of challenges at the performance level.
-
Creating RESTful Services with T4 Based on Model and Interfaces
When generating RESTful services with WebAPI, a lot of boilerplate code has to be implemented. Amel Musić demonstrates how T4 and EnvDTE can be used to create a flexible code generator that dramatically reduces the amount of time and effort this takes.
-
Starcounter vs. ORM and DDD
The so-called “object-relation impedance mismatch” has long been discussed in engineering circles. Most attempts at a solution rely try to mask the issue by pulling logic into the application tier. Kostiantyn Cherniavskyi looks at these issues and shows how many of them can be solved with hybrid databases such as Starcounter.
-
F# in Numbers: A Look at the Annual F# Survey Results
In April, for the second time, fsharpWorks organized the F# community survey. Over 600 developers completed the survey in 2016 (which is 15% more than in 2015). The survey provides an insight into the brains of the F# community. In this article, I'll summarize some of the results.
-
HTTP-RPC: A Lightweight Cross-Platform REST Framework
HTTP-RPC is an open-source framework allowing developers to create and access cross-platform polyglot RESTful web services using a convenient, RPC-like metaphor, while preserving fundamental REST principles such as statelessness and uniform resource access.
-
C#/Web API Code Generation Patterns for the RAML User
In this article, Jonathan Allen outlines the design patterns that users of REST specification languages such as RAML, Swagger, and API Blueprint should adhere to when generating code for C# and ASP.NET Web API. This includes topics such as model validation, async support, and request cancellation.
-
Big Memory .NET Part 2 - Pile, Our Big Memory Solution for .NET
In part one, Leonid Ganeline introduced the concept of big memory and discussed why it is so hard to deal with in a .NET environment. In part two, Dmitriy Khmaladze describes their solution NFX Pile; a hybrid memory manager written in C# with 100% managed code.