EzDotNetty 1.0.20

dotnet add package EzDotNetty --version 1.0.20
NuGet\Install-Package EzDotNetty -Version 1.0.20
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="EzDotNetty" Version="1.0.20" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add EzDotNetty --version 1.0.20
#r "nuget: EzDotNetty, 1.0.20"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install EzDotNetty as a Cake Addin
#addin nuget:?package=EzDotNetty&version=1.0.20

// Install EzDotNetty as a Cake Tool
#tool nuget:?package=EzDotNetty&version=1.0.20

Website Made with

Publish Nuget Github Package Publish Nuget Package

GitHub forks GitHub stars GitHub watchers GitHub followers

GitHub GitHub repo size in bytes GitHub code size in bytes



Easily usable with DotNetty.

Implemented by C# .NET 8

The purpose of this project is to easily build and operate a server using DotNetty.








structure review


  • BootstrapHelper
    • 손쉽게 DotNetty 기본 옵션으로 가동해주는 Helper Class
    • 생성자에 넘기는 THandler Type에 따라, 소켓 커넥션마다 Handler를 생성해줌
      • 이는 DotNetty의 구조이자 규칙이며, Handler는 커넥션마다 생성된다는 점을 감안해서 코딩 해주어야 함.
  • Config
    • 말그대로 설정 파일
      • AppSettings.json 으로 부터 읽어옴
      • 설정 파일에 property가 있을 경우 이곳에서 확장해도 되고, 기능은 별개의 설정 파일을 쓰거나, 별개의 class를 생성해서 읽어도 무방하긴 함
        • IConfigurationRoot 자체가 string 형태로 설정 값에 대한 접근을 허용하기 때문
  • Handler
    • 기본적인 DotNetty 이벤트를 받아서 처리해주는 ChannelHandlerAdapter의 상속받은 클래스 이자, 일부 메소드를 abstract로 지정한 추상 클래스
      • BootstrapHelper에서 THandler의 명시 타입을 규칙화 하기 위해 존재하는 클래스
  • Logging
    • Serilog에 대한 설정 기능
    • LoggerId를 상속 받아 구현함으로써, LoggerId에 대한 동적 추가 가능하게 구현
  • Service
    • SchedulerService
      • 특정 주기마다 불려지는 기능을 지원하는 서비스
  • Util
    • JsonUtil
      • Json의 ExtensionData 부분을 Populate 해주는 Extend 기능을 위한 클래스


  • BootstrapHelper
    • Helper Class that easily operates with DotNetty basic options
    • Depending on the THandler Type passed to the constructor, a Handler is created for each socket connection.
      • This is the structure and rule of DotNetty, and the Handler should be coded considering that it is created for each connection.
  • Config
    • Literally config file
      • Read from AppSettings.json
      • If there is a property in the configuration file, it can be extended here, and it is okay to write a separate configuration file or create and read a separate class for functions.
        • Because IConfigurationRoot itself allows access to the setting value in the form of a string
  • Handler
    • A class inherited from ChannelHandlerAdapter that receives and handles basic DotNetty events, and an abstract class with some methods designated as abstract.
      • A class that exists to regularize the explicit type of THandler in BootstrapHelper.
  • Logging
    • Setting function for Serilog
    • By inheriting and implementing LoggerId, it is possible to dynamically add LoggerId.
  • Service
    • SchedulerService
      • A service that supports a function called every specific cycle
  • Util
    • JsonUtil
      • A class for the extend function that populates the ExtensionData part of Json.

version history


use .NET 8


improve logging interface. changed namespace LogConfigration → Loggers


Arranged to use serilog default options


Added file logging configuration from serilog.json.


added file logging to default option.


Change private set of Enumeration to set for json deserialize


Changed Newtonsoft.json to use ZeroFormatter as Protocol function. Changed to a more explicit example where the test client and test server send and receive Protocols directly.


Remove some logger. Initialize all logger in Loggin.Collection. Need register LoggerId. (Per LoggerId type. Include inheritance)


Fix invalid namespace. (wrong namespace, sln, csproj word issue)


Added log level switch function. (SeriLog)


Added Enumeration Get method.


Improve Logging Class. (change to use LoggerId)

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.20 106 3/6/2024
1.0.19 376 11/16/2022
1.0.18 310 11/15/2022
1.0.17 415 6/10/2022
1.0.16 410 4/22/2022
1.0.15 403 3/21/2022
1.0.14 499 3/1/2022
1.0.13 415 1/27/2022
1.0.12 383 1/27/2022
1.0.10 393 1/27/2022
1.0.9 422 1/27/2022
1.0.8 257 1/5/2022
1.0.7 278 1/5/2022
1.0.6 261 1/3/2022
1.0.5 262 1/3/2022
1.0.4 269 1/1/2022
1.0.3 283 12/29/2021
1.0.2 256 12/29/2021
1.0.1 265 12/29/2021
1.0.0 249 12/28/2021