Monthly Archives: September 2014

Micro Services from Language Viewpoint

Micro services is apparently a new buzzword in software engineering world, despite of the fact that it is essentially just another term for something known as SOA for many years (yes, I know that there is some difference in perception of these two terms, but underlying idea has not changed). Attention to such architecture was heated by example of large internet companies like Netflix and Amazon. Some companies publish code of infrastructure components as open source.

Though micro services architecture is more suitable for polyglot technology than monolithic, language and platform still matters. It might be beneficial to use the same infrastructure for all micro services, to reuse deployment, messaging, logging and monitoring components. It is even better if some of these components can be available for free as open source libraries.

Now if you are Java developer, you have huge advantage, because so many large companies use it. If you search for “Java micro services” you will find hundreds of articles and presentations, libraries as Finagle by Twitter, Hystrix by Netflix, even meetup events.

If you search for “.net micro services” you will get… nothing! With less strict search phrase it is possible to find couple of articles (1, 2), and even an open source monitoring solution. But it is far from what is available for Java, and even not comparable to Javascript.

Is it because .NET is mostly for enterprise solutions and enterprise developers have not yet adopted micro services? Or just because Microsoft licensing is not working well with scale-out approach of service-oriented architectures?

BrightstarDB the First Decent RDF Storage For .NET Projects

In recent Hanselminutes podcast episode Scott Hanselman was talking about a new NoSQL database BrightstarDB. It is interesting that this is graph DB based on RDF (Resource Definition Framework, a data format from Semantic Web world).

I was learning Semantic Web and assessed it for one of my projects back in 2010. Then I needed to develop a solution to manage data for agricultural companies: knowledge about plants, diseases, pests, chemicals to fight diseases and pests, their relative efficiency, etc. I found that a graph representation could be good enough for this task, and made a research of available libraries which could be used in .NET application to read/write/process RDF. I posted results of that research in my Russian blog: In short, there were some quite expensive solutions (up to $160,000), and few free ones. At that time the best free library was SemWeb.NET:

“SemWeb.NET is a Semantic Web/RDF library written in C# for Mono or Microsoft’s .NET. The library can be used for reading and writing RDF (XML, N3), keeping RDF in persistent storage (memory, MySQL, etc.), querying persistent storage via simple graph matching and SPARQL, and making SPARQL queries to remote endpoints. Limited RDFS and general-purpose inferencing is also possible.”

Continue reading