Kronos – Creating a base request

Any Kronos client will be available to use three basic commands Insert Get Delete In future I want to add few more, like Count and GetKeys. Each of requests to the server serialized to binary form is preceded by few bytes of meta-data, including RequestType. In code its represented as a Request class, which in addition to type has two generic methods. At the beginning they might look Read more about Kronos – Creating a base request[…]

XGain #03 – Publishing .NET Core project to nuget

Packing and publishing nuget from standard .NET project is very simple. Create or generate nuspec file and run

nuget pack

The appearance of the Core framework and project.json file caused the a little change. Due to historical reason, in .NET Core we have two command line interfaces with utilities for packages.

  • DNU – DNX utility, used in project < RC2
  • Dotnet – the newest CLI, combined tool composed of DNX and DNU


XGain #02 – Heart of the TCP/IP server

In the third post about XGain I would like to say something about the heart of server. TcpListener is a great class to build server. It has a normal and async methods, you can choose between Socket and TcpClient. Unfortunately writing this same logic for new project might be boring. The most common steps:

  • choose entry port
  • create new instance of TcpListener
  • start listening
  • create a main loop for processing
  • handle new request


XGain #00 – TCP/IP server written in C#

Almost three months ago I’ve started working on Kronos with only one idea – make it as good as I can and have fun. In the past I had the pleasure to work only with high level networking – HTTP(S). Network layer in distributed systems is one of the most sensitive and in case of project with requirement for high performance, HTTP is not the best idea.



.NET Core project templates

New plugin for Visual Studio 2015 – Microsoft ASP.NET and Web Tools (download here) provides new templates for .NET Core – Console Application and Class Library. These templates are the base structure for all multi-platform projects in .NET.

.NET Core templates

Let’s start with executable type – Console Application. By default this one contains three files – AssemblyInfo.cs, Program.cs and project.json. Program file provides an entry point for application – just like normal static Main method in .NET Framework. The last one, project.json file is more interesting – it is the successor for old app.config. In this file you can find dependencies, .NET Core frameworks and nuspec information. […]

.NET Core and Continuous Integration with AppVeyor

I’ve spent some time on searching for good Continuous Integration (CI) for Kronos. My requirements were simple:

  • free for Open Source project
  • support for .NET Core (DNX runtimes)
  • easy configuration
  • good connection with github

Yegor Bugayenko wrote a great article about CI platforms. Here is a table with differences:


ASP.NET team uses AppVeyor. My decision was quite fast – let’s play with this CI.


Kronos #01 – distributed cache system based on .NET Core

Since last year I was thinking how to increase my skills with multithreading programming and distributed systems. I really like these topics – after reading few books I still want to learn more. With current growth rate of cloud platforms these two skills could be really desirable in the labor market. Also I never had enough experience with operating system other than Windows. In next May I will be completing my Bachelors degree, so it would be great to combine these ideas with my engineer’s thesis. After quick technology research and few conversations with another programmers – I’ve decided what I want to write – distributed cache system, available on Linux – Kronos. Sounds reasonable, yes?

Except one thing –  I want to do it with .NET.


%d bloggers like this: