Contents

92 Articles

Search

8 months Ago

Quino Documentation: Table of Contents

Published by Marco on

For over a year, I’ve been writing articles about various parts of Quino. A customer asked if I could collect those links into a coherent table of contents, to make it easier to use as a reference.

Configuration

Modeling

A scalable pattern for building... [More]

11 months Ago

v3.1: New metadata builder API

Published by Marco on

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.

Highlights

This release is a “bridge” release that has the entire new Metadata API as well as the older version, which is marked as obsolete. It is intended that projects upgrade to this version only temporarily in order to more easily migrate to the 4.0 Metadata API. At that point, projects should immediately upgrade... [More]

1 year Ago

Quino Retrospective and Roadmap

Published by Marco on

History

Before taking a look at the roadmap, let’s quickly recap how far we’ve come. An overview of the release schedule shows a steady accretion of features over the years, as driven by customer or project needs.

The list below includes more detail on the releases highlighted in the graphic.[1]

  • 0.1: Proof of concept with metadata, PostgreSql (data and schema-migration) and Winforms UI
  • 1.0: First customer product with PostgreSql, DevExpress Winforms UI and Reporting
  • 1.0.5: MS-SQL driver... [More]

v3.0: Metadata builders and code-generation improvements

Published by Marco on

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.

Highlights

v2.2: Winform fixes and Query Improvements

Published by Marco on

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.

Highlights

Mini-applications and utilities with Quino

Published by Marco on

In several articles last year[1], I went into a lot of detail about the configuration and startup for Quino applications. Those posts discuss a lot about what led to the architecture Quino has for loading up an application.

 Some of you might be wondering: what if I want to start up and run an application that doesn’t use Quino? Can I build applications that don’t use any fancy metadata because they’re super-simple and don’t even need to store any data? Those are the kind of utility applications... [More]

v2.1.1 & v2.1.2: Bug fixes for web authentication, logging and services

Published by Marco on

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

Highlights

  • Improved configuration, logging and error-handling for Windows services. (QNO-4992, QNO-5043, QNO-5057, QNO-5076, QNO-5077, QNO-5109)
  • Schema-based validation is once again applied. Without these validators, it was possible to make a model without the required... [More]

2 years Ago

v2.1: API-smoothing and performance

Published by Marco on

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.

Highlights

Quino 2 is finally ready and will go out the door with a 2.1 rather than a 2.0 version number. The reason being that we released 2.0 internally and tested the hell out of it. 2.1 is the result of that testing. It includes a lot of bug fixes as well as API tweaks to make things easier for developers.

v2.0: Logging, Dependencies, New Assemblies & Nuget

Published by Marco on

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.

Highlights

In the beta1 and beta2 release notes, we read about changes to configuration, dependency reduction, the data driver architecture, DDL commands, security and access control in web applications and a new code-generation format.

In 2.0 final—which was actually released internally on November 13th, 2015 (a... [More]

Quino 2: Starting up an application, in detail

Published by Marco on

As part of the final release process for Quino 2, we’ve upgraded 5 solutions[1] from Quino 1.13 to the latest API in order to shake out any remaining API inconsistencies or even just inelegant or clumsy calls or constructs. A lot of questions came up during these conversions, so I wrote the following blog to provide detail on the exact workings and execution order of a Quino application.

I’ve discussed the design of Quino’s configuration before, most recently in API Design: Running an Application... [More]

IServer: converting hierarchy to composition

Published by Marco on

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]

Iterating with NDepend to remove cyclic dependencies (Part II)

Published by Marco on

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]

Splitting up assemblies in Quino using NDepend (Part I)

Published by Marco on

 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 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 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]