.NET Core Solution of multiple projects

.NET Core is using file-system to organize projects. Sometimes the working project is getting quite big and it makes sense to organize it in multiple sub-folders. The problem what I encountered was with the local dependencies. In .NET and Visual Studio it is straight forward to reference projects across a solution. There is something similar in .NET Core - it is global.json file, which acts as a solution for organizing multiple projects.

JVMTI - Creating a simple agent

Hooking VMs is pretty cool, it is possible to look inside and see what exactly is happening in a Java application. Java provides an interface for hooking JavaVM, this interface is great if you want to develop a profiler, debugger or monitoring solution. There were two separate interfaces for profilers and debuggers, JVMPI (Java Virtual Machine Profiling Interface) and the JVMDI (Java Virtual Machine Debug Interface). Both of these interfaces are obsolete in the latest JDK and has been replaced with JVMTI (Java Virtual Machine Tool Interface).

Moving from C# to Java

I have been working with C# for a while now, but now a new project came written in Java and it is time to switch languages. Both languages are quite similar and in same time there are many differences. In this post I noted down few high level differences.

Creating a custom serialization class

Sometimes it is not enough to mark a whole class as serializable, quite often a class will have .net internal type that is not serializable, for example XmlDocument. In such case we need a wrapper class that is derived from ISerializable interface.

.NET Object Serialization

Have you ever wanted to send an object across application domains, save the object as a file or send it over the Internet to completely different service - then object serialization is for you. Serialization offers a way to describe object’s state(data) in a way that is understandable by other components. For example, object can be transformed into a XML or a Soap document, will get into output formats latter on.