Book Image

Hands-On Microservices with C#

By : Matt Cole
Book Image

Hands-On Microservices with C#

By: Matt Cole

Overview of this book

C# is a powerful language when it comes to building applications and software architecture using rich libraries and tools such as .NET. This book will harness the strength of C# in developing microservices architectures and applications. This book shows developers how to develop an enterprise-grade, event-driven, asynchronous, message-based microservice framework using C#, .NET, and various open source tools. We will discuss how to send and receive messages, how to design many types of microservice that are truly usable in a corporate environment. We will also dissect each case and explain the code, best practices, pros and cons, and more. Through our journey, we will use many open source tools, and create file monitors, a machine learning microservice, a quantitative financial microservice that can handle bonds and credit default swaps, a deployment microservice to show you how to better manage your deployments, and memory, health status, and other microservices. By the end of this book, you will have a complete microservice ecosystem you can place into production or customize in no time.
Table of Contents (16 chapters)
11
Trello Microservice – Board Status Updating
12
Microservice Manager – The Nexus

Building your microservice – part one

In our first example, we are going to manually wrap the Windows FileSystemWatcher object to do what we want. This will give us ultimate control over the object and the process. This work was originally done by Mr. Peter Meinl, and a big thanks goes out to him to allow us to use his work in this book. You can check out his blog at https://petermeinl.wordpress.com/.

Here's what we hope to accomplish in this chapter:

Architecture of classes: Buffering and Recovering FSW

The first class we will provide is the BufferingFileSystemWatcher. This object:

  • Buffers FileSystemWatcher events in a BlockingCollection. This helps reduce memory consumption and it even over increases the internal buffer size.
  • Reports existing files via a new event, Existed.
  • Provides sorting events by oldest (existing) files first. This is the default when subscribing...