2 weeks Ago

Encodo’s configuration library for Quino: part I

Published by Marco on in Quino

In this article, I’ll continue the discussion about configuration improvements mentioned in the release notes for Quino 2.0-beta1. With beta2 development underway, I thought I’d share some more of the thought process behind the forthcoming changes.

Software Libraries

what sort of patterns integrate and customize the functionality of libraries in an application?

An application comprises multiple tasks, only some of which are part of that application’s actual domain. For those parts not in the... [More]

1 month Ago

v2.0-beta1: Configuration, services and web

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.

Highlights

These are the big ones that forced a major-version change.

C# 6 Features and C# 7 Design Notes

Published by Marco on in .NET/C#

Microsoft has recently made a lot of their .NET code open-source. Not only is the code for many of the base libraries open-source but also the code for the runtime itself. On top of that, basic .NET development is now much more open to community involvement.

In that spirit, even endeavors like designing the features to be included in the next version of C# are online and open to all: C# Design Meeting Notes for Jan 21, 2015 by Mads Torgerson (GitHub).

C# 6 Recap

You may be surprised at the version number “7”—aren’t... [More]

2 months Ago

Quino Data Driver architecture, Part III: The Pipeline

Published by Marco on in Quino

In part I of these series, we discussed applications, which provide the model and data provider, and sessions, which encapsulate high-level data context. In part II, we covered command types and inputs to the data pipeline.

In this article, we’re going to take a look at the data pipeline itself.

  1. Applications & Sessions
  2. Command types & inputs
  3. The Data Pipeline
  4. Builders & Commands
  5. Contexts and Connections
  6. Sessions, resources & objects

Overview

 Major Components of the Data
Driver
The primary goal of the data pipeline is, of... [More]

Quino Data Driver architecture, Part II: Command types & inputs

Published by Marco on in Quino

In part I, we discussed applications—which provide the model and data provider—and sessions—which encapsulate high-level data context.

In this article, we’re going to take a look at the command types & inputs

  1. Applications & Sessions
  2. Command types & inputs[1]
  3. The Data Pipeline
  4. Builders & Commands
  5. Contexts and Connections
  6. Sessions, resources & objects

Overview

 Major Components of the Data
Driver
Before we can discuss how the pipeline processes a given command, we should discuss what kinds of commands the data driver... [More]

Quino Data Driver architecture, Part I: Applications & Sessions

Published by Marco on in Quino

One part of Quino that has undergone quite a few changes in the last few versions is the data driver. The data driver is responsible for CRUD: create, read, update and delete operations. One part of this is the ORM—the object-relational mapper—that marshals data to and from relational databases like PostgreSql, SQL Server and SQLite.

We’re going to cover a few topics in this series:

  1. Applications & Sessions
  2. The Data Pipeline
  3. Builders & Commands
  4. Contexts and Connections
  5. Sessions, resources... [More]

Are you ready for ReSharper 9? Not for testing, you aren’t.

Published by Marco on in .NET/C#

We’ve been using ReSharper at Encodo since version 4. And we regularly use a ton of other software from JetBrains[1]—so we’re big fans.

How to Upgrade R#

As long-time users of ReSharper, we’ve become accustomed to the following pattern of adoption for new major versions:

EAP

  1. Read about cool new features and improvements on the JetBrains blog
  2. Check out the EAP builds page
  3. Wait for star ratings to get higher than 2 out of 5
  4. Install EAP of next major version
  5. Run into issues/problems that make... [More]

5 months Ago

Encodo’s new year’s gift for customers and friends: Williams!

Published by Marco on in Encodo News (en)

 Every year, Encodo tries to do something a little different for an end-of-year gift for colleagues, customers and close friends. Last year, we made Encodo-themed light bulbs with something called the Egg-Bot.

What could we do to top that?

And then, sometime last year, Daniel made a good suggestion: we should totally make our own schnapps!

  • Did we just buy schnapps in the store and put it in a bag with a card? We did not.
  • Did we design a label and slap it onto a bottled filled with someone... [More]

Who’s using up my entire SSD?

Published by Marco on in Tips and Tricks

Hard drives => SSDs

 In the old days, we cleaned up our hard drives because we didn’t have enough space for all of our stuff. Our operating systems, applications and caches took up a reasonable portion of that hard drive.

Then we had gigantic hard drives with more than enough space for everything. Operating systems, applications and caches grew. Parsimonious software was no longer in vogue because it was a waste of time and money.

SSDs replaced hard drives, improving speeds drastically and... [More]

The Road to Quino 2.0: Maintaining architecture with NDepend (part II)

Published by Marco on in Quino

In the previous article, I explained how we were using NDepend to clean up dependencies and the architecture of our Quino framework. You have to start somewhere, so I started with the two base assemblies: Quino and Encodo. Encodo only has dependencies on standard .NET assemblies, so let’s start with that one.

The first step in cleaning up the Encodo assembly is to remove dependencies on the Tools namespace. There seems to be some confusion as to what belongs in the Core namespace versus what... [More]

6 months Ago

The Road to Quino 2.0: Maintaining architecture with NDepend (part I)

Published by Marco on in Quino

Full disclosure

A while back—this last spring, I believe—I downloaded NDepend to analyze code dependencies. The trial license is fourteen days; needless to say, I got only one afternoon in before I was distracted by other duties. That was enough, however, to convince me that it was worth the $375 to continue to clean up Quino with NDepend.

I decided to wait until I had more time before opening my wallet. In the meantime, however, Patrick Smacchia of NDepend approached me with a free... [More]

v1.13.0: Schema migration, remoting, services and web apps

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.

Highlights

Data & Schema

  • Applications can now choose a base class for generated ORM objects. (QNO-3107)
  • Data driver: made various bug fixes and improvements. (QNO-4538, QNO-4554, QNO-4551)
  • Improved schema migration for fields and constraint-violation messages under SQL Server. (QNO-4490, QNO-4111, QNO-4582)
  • Improved... [More]

Schema migration in Quino 1.13

Published by Marco on in Quino

Quino is a metadata framework for .NET. It provides a means of defining an application-domain model in the form of metadata objects. Quino also provides many components and support libraries that work with that metadata to automate many services and functions. A few examples are an ORM, schema migration, automatically generated user interfaces and reporting tools.

The schema-migration tool

The component we’re going to discuss is the automated schema-migration for databases. A question that... [More]

Optimizing compilation and execution for dynamic languages

Published by Marco on in Web: HTML/CSS/JS

The long and very technical article Introducing the WebKit FTL JIT provides a fascinating and in-depth look at how a modern execution engine optimizes code for a highly dynamic language like JavaScript.

To make a long story short: the compiler(s) and execution engine optimize by profiling and analyzing code and lowering it to runtimes of ever decreasing abstraction to run as the least dynamic version possible.

A brief history lesson

What does it mean to “lower” code? A programming language... [More]

7 months Ago

Configure IIS for passing static-file requests to ASP.Net/MVC

Published by Marc on in .NET/C#

At Encodo we had several ASP.Net MVC projects what needed to serve some files with a custom MVC Controller/Action. The general problem with this is that IIS tries hard to serve simple files like PDF’s, pictures etc. with its static-file handler which is generally fine but not for files or lets say file-content served by our own action.

The goal is to switch off the static-file handling of IIS for some paths. One of the current projects came up with the following requirements so I did some... [More]