by bill-s, 2019-11-19T17:36:01.953Z
An iteration and evolutionary changes of an ASP.NET Core Web API is handled by Versioning. Versioning of an API gives confidence to the clients which consumes API for a long time. Any changes or development of an API will be accessible using the new version and it won't cause issues to the clients consuming the old version of API.
by bill-s, 2019-11-19T17:44:25.105Z
I’ve always liked microservices because they embrace small, well-encapsulated building blocks. They mitigate deployment hell by treating each component of a software system as its own product, with versions, testing, and releases.
A microservice is “micro” because of the narrow scope of its functionality, not necessarily because the length of its code is very short. A microservice’s functionality, so long as it’s kept to the limited scope, can go as deep as required by the business. By limiting scope, we isolate different bits of logic in our software by vertical niche; our client application can still get to all the functionality it needs, through several small APIs, each of which scales independently. Much better than a single, monolithic API!
by bill-s, 2019-11-19T17:37:26.672Z
Do you struggle to understand async/await in C#? How it works and why?
I did. So I asked the best - the author of async, Stephen Toub. This talk is summary of the most interesting insights from him that helped me and my colleagues on CoreFX team to finally truly understand the magic behind async/await.
by bill-s, 2019-11-19T17:35:11.673Z
Improving a codebase can be a difficult task. The larger the codebase, the more difficult it becomes to find and fix poor code manually. When confronted with a new codebase, metrics are needed to determine what needs to be improved. This article discusses some tools to get the metrics, and the series discusses how to use the information to make targeted refactors.
by bill-s, 2019-11-19T17:45:43.758Z
In that post, I determined that Dapper performed markedly better for queries against a SQL Server database than Entity Framework did, and even outperformed ADO.NET in certain cases.
by bill-s, 2019-11-19T17:44:57.171Z
In this post, we look broadly at the capabilities of ML.NET, Microsoft's open source machine learning framework, compared to Azure Cognitives Services.
ML.NET is Microsoft’s recently released open-source, cross-platform, code-first framework for Machine Learning. Although new to us, the framework has its roots in Microsoft Research, and has been used by many internal teams over the last decade, including those working on products you have almost certainly heard of — Microsoft Windows, Office and Bing, to name a few.
by bill-s, 2019-11-19T17:42:20.594Z
ASP.NET Core 3 is Microsoft’s server-side application framework designed for implementing modern architectures with modern security requirements.
In this talk we will have a look at the various security services that come with ASP.NET Core and how they fit into the bigger picture of the security architecture. We will have a look at features like hosting, data protection, authentication & authorization, ASP.NET Identity and the new IdentityServer integration for standard-based access control for APIs.
by pawel.kmiec, 2019-11-18T09:14:31.993Z
Evaluation of gRPC & JSON performance in ASP.NET Core 3. Offical gRPC libraries, protobuf-net.Grpc, Newtonsoft.Json and System.Text.Json are compared
by bill-s, 2019-11-19T07:20:57.102Z
ASP.NET Core now enables developers to build gRPC services. gRPC is an opinionated contract-first remote procedure call framework, with a focus on performance and developer productivity. gRPC integrates with ASP.NET Core 3.0, so you can use your existing ASP.NET Core logging, configuration, authentication patterns to build new gRPC services.
by bill-s, 2019-11-19T17:43:35.280Z
In this blog post we will look at how you could create an instance of an object in C# without calling its constructor – which sounds a bit crazy, but is actually something that has been supported by both CLR and Core CLR for a long time now.
More after the jump.
by bill-s, 2019-11-19T17:44:05.215Z
In this post I will explore and highlight an approach to logging which you can apply in high-performance, high load applications to reduce the overhead of logging.
by bill-s, 2019-11-19T17:34:53.661Z
The Mediator pattern in C# enables objects to communicate, without knowing each other’s identities. It also encapsulates a protocol that objects can follow.
You can think of a Mediator object as a kind of a coordinator; that handles traffic between appropriate parties based on its own logic.
Mediator promotes loose coupling by keeping objects from referring to each other explicitly, and it lets you vary their interaction independently.