5 days Ago

IServer: converting hierarchy to composition

Published by Marco on in Quino

Quino has long included support for connecting to an application server instead of connecting directly to databases or other sources. The application server uses the same model as the client and provides modeled services (application-specific) as well as CRUD for non-modeled data interactions.

We wrote the first version of the server in 2008. Since then, it’s acquired better authentication and authorization capabilities as well as routing and state-handling. We’ve always based it on the .NET HttpListener... [More]

1 month Ago

Iterating with NDepend to remove cyclic dependencies (Part II)

Published by Marco on in Quino

In the previous article, we discussed the task of Splitting up assemblies in Quino using NDepend. In this article, I’ll discuss both the high-level and low-level workflows I used with NDepend to efficiently clear up these cycles.

Please note that what follows is a description of how I have used the tool—so far—to get my very specific tasks accomplished. If you’re looking to solve other problems or want to solve the same problems more efficiently, you should take a look at the official... [More]

2 months Ago

Splitting up assemblies in Quino using NDepend (Part I)

Published by Marco on in Quino

 A lot of work has been put into Quino 2.0[1], with almost no stone left unturned. Almost every subsystem has been refactored and simplified, including but not limited to the data driver, the schema migration, generated code and metadata, model-building, security and authentication, service-application support and, of course, configuration and execution.

Two of the finishing touches before releasing 2.0 are to reorganize all of the code into a more coherent namespace structure and to reduce the... [More]

API Design: To Generic or not Generic? (Part II)

Published by Marco on in Quino

 In this article, I’m going to continue the discussion started in Part I, where we laid some groundwork about the state machine that is the startup/execution/shutdown feature of Quino. As we discussed, this part of the API still suffers from “several places where generic TApplication parameters [are] cluttering the API”. In this article, we’ll take a closer look at different design approaches to this concrete example—and see how we decided whether to use generic type parameters.

Consistency... [More]

API Design: Running an Application (Part I)

Published by Marco on in Quino

In this article, we’re going to discuss a bit more about the configuration library in Quino 2.0.

Other entries on this topic have been the articles about Encodo’s configuration library for Quino: part I, part II and part III.

The goal of this article is to discuss a concrete example of how we decided whether to use generic type parameters throughout the configuration part of Quino. The meat of that discussion will be in a part 2 because we’re going to have to lay some groundwork about the... [More]

3 months Ago

Encodo 10th Anniversary Team Weekend

Published by Marco on in Encodo News (en)

Encodo celebrated its 10th anniversary as a company this summer in Bussang in the Lorraine region of France.

We’d originally voted on different ideas and a trip to Amsterdam had squeezed by camping by one vote. Planning our weekend in Amsterdam proved difficult. Something called SAIL Amersterdam—which takes place every five years—was on the same weekend we’d chosen and all the hotels were full.

So, we improvised and Karin found a lovely place in Bussang, just about an hour over the border... [More]

ReSharper Unit Test Runner 9.x update

Published by Marco on in .NET/C#

Way back in February, I wrote about my experiences with ReSharper 9 when it first came out. The following article provides an update, this time with version 9.2, released just last week.

tl;dr: I’m back to ReSharper 8.2.3 and am a bit worried about the state of the 9.x series of ReSharper. Ordinarily, JetBrains has eliminated performance, stability and functional issues by the first minor version-update (9.1), to say nothing of the second (9.2).

Test Runner

In the previous article, my main... [More]

4 months Ago

Encodo Git Handbook 3.0

Published by Marco on in Development

Encodo first published a Git Handbook for employees in September 2011 and last updated it in July of 2012. Since then, we’ve continued to use Git, refining our practices and tools. Although a lot of the content is still relevant, some parts are quite outdated and the overall organization suffered through several subsequent, unpublished updates.

What did we change from the version 2.0?

  • We removed all references to the Encodo Git Shell. This shell was a custom environment based on Cygwin. It... [More]

5 months Ago


Published by Marco on in Encodo News (de)

Wir freuen uns darüber, Wadim Smirnow in unserem Team begrüssen zu dürfen!


Published by Marco on in Encodo News (en)

We are happy to welcome Wadim Smirnow to our team!

6 months Ago

How Encodo sets up new workstations

Published by Marco on in Tips and Tricks

     We’ve recently set up a few new workstations with Windows 8.1 and wanted to share the process we use, in case it might come in handy for others.

Windows can take a long time to install, as can Microsoft Office and, most especially, Visual Studio with all of its service packs. If we installed everything manually every time we needed a new machine, we’d lose a day each time.

To solve this problem, we decided to define the Encodo Windows Base Image, which includes all of the standard software... [More]

We have an apprentice!

Published by bizzi on in Encodo News (en)

After a long search, we’ve finally found a first-year apprentice, Robin Henkel. He has already started working for us, doing some practical training throughout the summer until he officially starts his apprenticeship in the fall.

Wir haben einen neuen Lernenden gefunden!

Published by bizzi on in Encodo News (de)

Nach monatelanger Suche haben wir in Robin Henkel den richtigen neuen Lernenden für uns gefunden. Über den Sommer wird er ein Praktikum bei uns machen und in die Entwicklungswelt von Encodo eingeführt. Ab August beginnt er offiziell seine Lehre zum Applikationsentwickler.

v2.0-beta2: Code generation, IOC and configuration

Published by Marco on in Quino

The summary below describes major new features, items of note and breaking changes. The full list of issues is also available for those with access to the Encodo issue tracker.


In beta1, we read about changes to configuration, the data driver architecture, DDL commands, and security and access control in web applications.

In beta-2, we made the following additional improvements:

  • Introduced a new generated-code version that avoids all global references and provides a... [More]

7 months Ago

Encodo’s configuration library for Quino: part III

Published by Marco on in Quino

 This discussion about configuration spans three articles:

  1. part I discusses the history of the configuration system in Quino as well as a handful of principles we kept in mind while designing the new system
  2. part II discusses the basic architectural changes and compares an example from the old configuration system to the new.
  3. part III takes a look at configuring the “execution order”—the actions to execute during application startup and shutdown


Registering with an IOC is all... [More]