.NET Core Tour

NET Core Tour is a series of meetups and workshop focused on .NET, especially about recent changes.  I will talk about current architecture of .NET Framework, .NET Standard and several upcoming features like Span<T>, ArrayPool or ValueTask. Piotr Gankiewicz will help me with presenting live demos of ASP and .NET Core applications. During four months we are going Read more about .NET Core Tour[…]

Visual Studio Launch Party in Wrocław – quick review

Last Tuesday I had a chance to participate in the first meeting of the new IT group in Wrocław called Make Sense in It. This event was also a Visual Studio Launch Party in Wrocław. The event was held in an unusual place called Factory of the sense positioned in a old, stylish tenement house in the center Read more about Visual Studio Launch Party in Wrocław – quick review[…]

Win a ticket to the 4Developers conference!

This year I have a pleasure to be a speaker on the one of the biggest dev conference in Poland – 4Developers. It is a conference focused on the four assumptions – idea, interdisciplinarity, participation and community. During one day you can listen and watch presentation of more than 130 speakers and learn new things from 13 paths like .NET, Java, Read more about Win a ticket to the 4Developers conference![…]

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 #01 – abstraction over Socket

Previously  I’ve described the most popular ways to deal with TCP/IP connection in .NET framework. This time I want to show you one of the most important interface in the XGain server – ISocket.

Network layer is really hard to test and debug. XGain works on the Socket class level and this class doesn’t have an interface. That means testing of any component references to this type is really hard, but everything is possible. Few months ago I found a good podcast with Paweł Klimczyk and Maciej Aniserewicz about mocking frameworks. In full .NET Framework we can use TypeMock to create a fake call to the any method from any type. Unfortunately, this library does not support .NET Core platform.

[…]

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.

TCP IP

[…]

.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:

CI

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

[…]