Xiaodi Yan's Blog

Coding is fun...

These days, everyone is talking about ChatGTP, which is a powerful AI tool that can have natural conversations with humans. It is powered by OpenAI. I have started to use ChatGPT in different scenarios. Besides using it to write some scripts, I also use it to revise or translate some text. In some cases, it provides a better result than Google Translate or DeepL. However, I still need to copy and paste the text to the website. I often use VS Code to write or translate technical documents, so I want to integrate AI power into my VS Code. Similar to Translator Helper, I spent around three hours building an OpenAI-powered VS Code extension. The extension is called ReVision. It is an open-source project, and you can find the source code on GitHub.

Read more »

Dapr is a new way to build distributed applications. It provides quite a few building blocks to abstract the common operations of distributed microservice architecture. In this article, let us take the first step with Dapr and understand how it works.

What is Dapr?

Dapr is not a framework or a library. It is a runtime. Dapr is language-agnostic. Before we explain what Dapr is, let us look at what problem Dapr can solve, then understand how it works.

Read more »

Azure DevOps Pipelines is one of my favorite components in Azure DevOps. In this article, I will show you how to customize the version number in the YAML file for .NET applications. Why? Because I have seen some developers set up the build version number as a parameter in Azure DevOps UI, so they have to update the parameter whenever they need to build a new version. The better way is to manage the version number as code, so the pipeline will read the configuration from the code then automatically update it. I’ll show you how to make it in .NET 6 applications. First, let’s look at what the semantic versioning is.

Read more »

Recently, I participated the MVP Global Cloud Skills Challenge, which allows all Microsoft MVPs to be competing on a global stage. As you know, Microsoft Learn is a free learning resource site for everyone who wants to learn Microsoft technologies. I have advocated it many times via my social network. Today, I would like to share what I learned from #TheMVPChallenge.

Read more »

Microsoft introduced Source Generator in the latest C# version. It is a new feature that allows us to generate source code when the code compiles. In this article, I will walk you through four ways that can generate source code to simplify our daily jobs. Then you can choose the proper way for various scenarios.

Read more »

Code-review is important in our daily development. Some developers may spend lots of time on learning new features of the languages, DDD, distributed system or some fancy stuff but the first thing we should keep in mind is we need to write the robust, maintainable code. Here are some tips from my recent code-review and I hope it would be helpful for you.

Read more »

Around two month ago, I was awarded Microsoft MVP for the 5th year. I would like to take this opportunity to reflect my last 3 years. After one year of preparation, I migrated to New Zealand from China in 2018. That was a huge change to me and my family. I would like to let you know how huge the impact is to have such amazing community support. This story is about CITANZ (Chinese IT Association NZ) and myself.

Read more »

Azure Automation is a service of Azure that allows us to automate Azure management tasks and orchestrate actions. It is widely used in operations to help us save time and reduce human errors. Recently, I just created the scripts to turn on/off the virtual machines on schedules to save cost. If you have the same requirement, feel free to copy/paste the scripts and save your money.

Read more »

Recently, I am using Xamarin to develop a mobile app for Android. In the app, there is a page that asks the user to input phone numbers twice to make sure the number has been typed correctly. The user is not allowed to copy/paste. So I need to implement a custom control that can disable copy/paste features.

Read more »
0%