W kwietniu tego roku odbyłem swój debiut jako prelegent na konferencji konferencji programistycznej 4Developers, gdzie opowiedziałem o .NET Core w 2017 w ramach .NET Core Tour. Już 18 września w Gdańsku odbędzie się druga, lokalna edycja, skupiona na czterech ścieżkach: .NET, C++, App architecture i Soft Skills. Tym razem będę poprowadzę znacznie bardziej techniczną prezentację Read more about [PL] – Wpadnij na 4Developers Gdańsk 2017[…]
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[…]
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[…]
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![…]
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[…]
Packing and publishing nuget from standard .NET project is very simple. Create or generate nuspec file and run
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
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
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.
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.
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.
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. […]