Legal Search

Legal Search

3 min read.

Many companies are in the process of moving from traditional web technologies such as ASP.NET and Spring Framework to frameworks running in the Web Browser. Modern JavaScript is a big mouthful to people only familiar with the bits of jQuery they used to use.

At Swisslex we are updating the existing website aiming to improve the usability. It is already a capable web interface to Swiss Legal documents, so the focus is on turning the professional experience and feedback from users into improvements to how Legal Research will work in the future.

We joined the project after it had stranded in the hands of a consulting company that seemed overwhelmed by making a real solution with Angular 2. Henrik joined the project as a technology coach, teaching how to build a front-end Web Application.

As part of the kick-off we were asked to advise on which technology to use. The consulting company originally tasked with the project had gone for Angular 2, and the question was whether to continue on that or go with something else. As it turned out the work done so far was to generate an example application, and put in a few bits, so we were free to go for something like React or Aurelia. This choice is a common challenge, and unfortunately many have too much technology excitement and too little human appreciation.

A good technology choice must

  1. Have backing to be well maintained in the future
  2. Avoid locking source code written in an exotic approach
  3. Be comprehendible by the team using it
  4. Fit with the other technologies used
  5. Have sufficient educational options

React vs Angular

From a technology standpoint we would pick an approach in the reactive camp(Ractive, React, Inferno, Observables etc.). In our experience several features of Angular are oversold and weren’t helpful at our past projects. So while popular, Angular isn’t our default pick.

Since Swisslex works well as a classic website interface and doesn’t really scream to be converted into an application style User Interface with constantly changing content it belongs to a large portion of services that are somewhat hurt when adopting Singe Page Application(SPA) technologies such as React and Angular. On the other hand there is limited focus on front-end Web technologies that aren’t a single page.

SPAs require a lot of work to implement because they require a lot of JavaScript coding. You cannot just make a nice looking page with HTML + CSS and then drop in a bit of JavaScript where needed. In an SPA JavaScript is in the driving seat, and it makes up the majority of the page functionality. Thinking about it you realise that it is completely counter to the basic idea of the Web.

So what to pick. In the end our advice was to stay with Angular on the grounds that it is adequate to solve the problems, and that as a team using C# adopting TypeScript should be a modest step, and make the team feel more up to the task of learning front-end programming.

Reactive Data

Reactive Interaction principles