In today's tutorial we are going to create a simple retrospective app. It will save information about the discussed topics and show them to users in real time so they can easily see the previous, current, and future topics during the current meeting. The code is written in .NET 5. It’s divided into several services, every one of them responsible for a single context.
In this article, I'm going to use NLog to write my .Net 5.0 web application logs into Elastic. after that, I will show you how you can monitor and search your logs with different filters by Kibana.
Microsoft has updated Xamarin.Essentials and has revealed its plans for Xamarin.Forms once .NET MAUI Essentials arrives this fall. Alongside more details of MAUI, Microsoft says it will end updates to the Xamarin mobile app development platform in November 2022. Xamarin has been the Microsoft technology for developers to use if they want to develop apps for iOS and Android using C#. It is based on Mono, the open source implementation of Microsoft's .NET Framework. NET MAUI, the .NET Multi-platform App UI, a framework for building native device applications spanning mobile, tablet, and desktop.
In my last post, we looked at the Compose Method refactoring as a means of breaking up long methods into smaller ones, each with an equivalent level of granularity. This is the refactoring in my applications I tend to use the most, mainly because it's the simplest way of breaking up a hard-to-understand method.
Open source was an attractive and exciting idea when we first considered sharing .NET Core on GitHub. At the same time, GitHub was a largely unknown platform for many of us and we had a lot of questions about how everything would work. “What if someone forks the runtime on the first day? Is the project over?”. We knew enough that we should take the time to learn the patterns that developers had already established and also what they expected of us. That said, we also had to host a project and org from day one, and it got busy much quicker than we expected. We’re several years and versions in at this point, and the rest is now history. It’s been a fun journey that we’ll reflect on with folks that have been part of it in a variety of ways.
So far in this series, we’ve learned when we should consider using StringBuilder in our code and learned about the memory overhead of using a StringBuilder. It’s now time to learn how the StringBuilder can “expand” its capacity and support appending string data efficiently. As with the last post, this content is based upon a review of the implementation details of the StringBuilder class and these details may change over time. I have used the current code from .NET 6 while researching this blog post. The design of StringBuilder has changed little in past versions of .NET, so I expect these to remain broadly applicable to earlier .NET versions.
前面几篇都是基于阿里云ECS直接玩的，有童鞋问直接用Windows Server 2019可以玩不，本篇就为你介绍一下如何给Windows Server 2019配置Docker环境。本文介绍了如何在本地的Windows Server 2019服务器上安装和配置Docker环境，最后演示了一下ASP.NET应用的基本容器操作。前面几篇都是基于阿里云ECS直接玩的，有童鞋问直接用Windows Server 2019可以玩不，本篇就为你介绍一下如何给Windows Server 2019配置Docker环境。1 准备工作首先，你需要一台服务器，安装 Windows Server 2019 Dat...
In the previous posts in this series, I took a first look at the internal design of StringBuilder class as a linked list, and then looked at the source code behind the constructors and Append methods. In this post I look at (arguably) the most important method on StingBuilder, ToString(), and show how the final string is created from multiple chunks. I also looks at the overload ToString(startIndex, count), and show how recent implementations differ from that used in .NET Framework.
C# 8 has introduced a new pattern: Property pattern. This pattern enables you to match on properties of the object examined, if you missed that feature, here is the Microsoft documentation here: Property pattern. C# 10 improves that pattern by simplifying access to nested properties. In the article I’ll show what it is.
In .NET 6.0, we are shipping a new C# source generator to help improve the performance of applications that use System.Text.Json. In this post, I’ll go over why we built it, how it works, and what benefits you can experience in your application.
What is CQRS? Traditional Software Development data models, which appear to indicate or infer that reads and writes are in synchronization when it comes to interacting with the database, in order to maintain the ACID( Atomicity, Consistency, Isolation, Durability) properties pertaining to the data.
In this article, we are going to learn about Onion architecture and what are its advantages. We will build a RESTful API that follows the Onion architecture, with ASP.NET Core and .NET 5. The Onion architecture is also commonly known as the “Clean architecture” or “Ports and adapters”. These archite...
My team and I needed, a while back, to put together a generator class for creating SQL statements which will be run by Dapper. The idea was to have it work like this...In other words, we wanted a little helper class that could generate SQL for us, and for reasons I'm not going to get into here, was not Entity Framework. Of course, it only got more complex from there. But that said, the tool we ended up with was pretty dang nice, and I thought it might be useful for my dear readers and their projects. Let's build a class DapperHelper that can generate parameterized INSERT and UPDATE SQL statements!
A new MvvmCross version is available on NuGet! You can always find the latest changelog in the root of the repository to see what has changed between versions. This is a minor release with some bug fixes to MvvmCross. In addition we have a new non-breaking feature, which adds sticky messages to the Messaging plugin. Most pressing issue is the registration of IMvxTextProvider which didn’t work and resulted in issues resolving it.
In this tutorial I will show you how you can implement exception handling and logging in ASP.NET Core Web API. You will learn the proper way of handling exceptions and writing these exceptions and any additional data into log files. This is rather important and essential when your product is on live, since then you will have loads of users.
This week, we talk about .NET 6 Preview 6, Visual Studio 2022, and abstracting away Kubernetes.
This article is part of a learn programming series where you need no prior knowledge of programming. If you want to learn how to program and want to learn it using .NET/C#, this is the right place. I suggest reading the whole series in order, starting with Creating your first .NET/C# program, but that’s not mandatory.
直接从一个新概念的认知过程说下 elasticsearch data stream。记得第一次听到 data stream 的时候，还是去年下半年在公交大巴车上早 8 点听魏彬老师的直播，后来就一直没用。等使用的时候，去翻看文档和资料前，从认知的角度，不免会有如下的疑问：没有 data stream 的时候，如何管理时序型数据？什么是 data stream？data stream 的特点有哪些？为什么要有 data stream？data stream 能做什么？data stream 应用场景？data stream 和 索引 index 的关系？data stream 和 索引生命周期管...
It's been a long road, but I've finally released Markdown Monster 2.0. Markdown Monster is a sophisticated, yet easy to use Markdown Editor for Windows. If you've followed this blog and my Twitter feed, you've probably seen some of the discussions around my (mis)adventures around the process of building the update for this version. It's big release in terms of underlying architecture and foundations. It's updating some technologies to provide some future proofing by moving away from some legacy technologies and with that opening up new functionality that will make it easier to add enhancements to the Web based editor and preview in the future.