Yesterday

 

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]
 

1 week Ago

 

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]

 

2 weeks Ago

 

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]

 

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

 

iTunes: another tale of woe in UX

Published by Marco on in UX & Design

I know that pointing out errors in iTunes is a bit passé but Apple keeps releasing new versions of this thing without addressing the fundamental problems that it has as a synchronization client.

The software has to synchronize with hardware from only one manufacturer—the same one that makes iTunes. I’ll leave off complaints about the horrific, very old and utterly non-scaling UI and just regale you with a tale of a recent interaction in which I restored my phone from a backup. In that sense,... [More]

 

2 months Ago

 

More reinforcements!

Published by Marco on in Encodo News (en)

We are happy to welcome Fabrizio Niedda to our team! We are still searching for even more Encodo team members; see our jobs page for more information (available only in German).

 

Weitere Verstärkung!

Published by Marco on in Encodo News (de)

Wir freuen uns darüber, Fabrizio Niedda in unserem Team begrüssen zu dürfen! Wir sind jedoch weiterhin auf der Suche nach Verstärkung; mehr Informationen dazu gibt es hier.

 

An introduction to PowerShell

Published by Marco on in Tips and Tricks

On Wednesday, August 27th, Tymon gave the rest of Encodo[1] a great introduction to PowerShell. I’ve attached the presentation but a lot of the content was in demonstrations on the command-line.

  1. Download the presentation
  2. Unzip to a local folder
  3. Open index.html in a modern web browser (Chrome/Opera/Firefox work the best; IE has some rendering issues)

We learned a few very interesting things:

  • PowerShell is pre-installed on every modern Windows computer
  • You can PowerShell to other machines... [More]
 

ASP.Net MVC Areas

Published by Marc on in .NET/C#

After some initial skepticism regarding Areas, I now use them more and more when building new Web-Applications using ASP.Net MVC. Therefore, I decided to cover some of my thoughts and experiences in a blog post so others may get some inspiration out of it.

Before we start, here’s a link to a general introduction to the area feature of MVC. Check out this article if you are not yet familiar with Areas.

Furthermore, this topic is based on MVC 5 and C# 4 but may also apply to older versions too... [More]

 

3 months Ago

 

Is Encodo a .NET/C# company?

Published by Marco on in Technology

Encodo has never been about maintaining or establishing a monoculture in either operating system, programming language or IDE. Pragmatism drives our technology and environment choices.[1]

Choosing technology

Each project we work on has different requirements and we choose the tools and technologies that fit best. A good fit involves considering:

  • What exists in the project already?
  • How much work needs to be done?
  • What future directions could the project take?
  • How maintainable is the... [More]
 

Should you return null or an empty list?

Published by Marco on in .NET/C#

I’ve seen a bunch of articles addressing this topic of late, so I’ve decided to weigh in.

The reason we frown on returning null from a method that returns a list or sequence is that we want to be able to freely use these sequences or lists with in a functional manner.

It seems to me that the proponents of “no nulls” are generally those who have a functional language at their disposal and the antagonists do not. In functional languages, we almost always return sequences instead of lists or... [More]

 

4 months Ago

 

Optimizing data access for high-latency networks: part IV

Published by Marco on in Quino

 In the previous three articles, we sped up the opening of the calendar in Encodo’s time-tracking product Punchclock. We showed how we reduced the number of queries from one very slow query per person to a single very fast query for all people at once.

Because we’re talking about latency in these articles, we’d also like to clear away a few other queries that aren’t related to time entries but are still slowing things down.

Lazy-loading unneeded values

In particular, the queries that “Load... [More]

 

v1.12.0: .Improvements to data-provider statistics and Windows 8.1 fixes

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

 Punchclock About Box Punchclock Splash Screen

 

Optimizing data access for high-latency networks: part III

Published by Marco on in Quino

 In the previous article, we partially addressed a performance problem in the calendar of Encodo’s time-tracking product, Punchclock. While we managed to drastically reduce the amount of time taken by each query (>95% time saved), we were still executing more queries than strictly necessary.

The query that we’re trying to optimized further is shown below.

var people =
  Session.GetList<Person>().
  Where(p => Session.GetCount(p.TimeEntries.Query) > 0).
  ToList();

This query executes one... [More]

 

Optimizing data access for high-latency networks: part II

Published by Marco on in Quino

 In the previous article, we discussed a performance problem in the calendar of Encodo’s time-tracking product, Punchclock.

Instead of guessing at the problem, we profiled the application using the database-statistics window available to all Quino applications.[1] We quickly discovered that most of the slowdown stems from the relatively innocuous line of code shown below.

var people = 
  Session.GetList<Person>().
  Where(p => p.TimeEntries.Any()).
  ToList();

First things first: what does... [More]