Programming TaskBeat

The choice of the right framework is the most long term investment in case of software products. That’s why initially we were a bit hesitant to choose a powerful framework. Eventually we’ve came to a conclusion that the more powerful the framework, the more lightweight the application itself. Over the years we’ve saved hundreds of development hours by lifting vast amount of features right out of the framework instead of developing them from scratch. The choice of a framework was pivotal to how we build software and how we integrate with third-party software.

The choice of the .NET framework allowed us to abstract from the details of HTML, CSS and JavaScript and start developing software on a much higher level of abstraction. The choice of the framework allows generating browser code automatically and to some extent treat it like assembly language rather than spend hundreds of hours entering the code and adjust to different browsers. This continues to serve the product development very well and allows us focus on features details, rather than details of the code itself.

Departure from developing browser code (like CSS or JavaScript) does not mean we’ve abstracted from the programming languages. Quite opposite in fact as choice of the right platform enabled us to work with a variety of programming languages: C# leading the pack, but not excluding Python, TypeScript and many more that can be used right out of the box to mix at any point in time, if needed and mix those languages in development of a very consistent technology platform rather than a fragmented stack of different services and different projects written in different languages.

Mixing of languages in TaskBeat happens not only within the project scope but actually it allows us write application using multiple programming languages at a class level. Mixing technologies can result in a dependency hell but having them hosted on the same framework allows not only to write one project and each class in the most productive language we choose (if we wanted to) but foremost allows combating the hell of complexity of hosting different frameworks side by side that most of the project experience today.

Front-end of the application is written in a traditional mix of HTML, CSS and JQuery. Having said that most of the front-end code is automatically generated out of the ASP.NET code written in C# and TypeScript.

Middle application layer the programming language of choice is C#, which proved crucial for the technical success of the project and remains prevailing choice for most of the projects. There’s tons of why implementing TaskBeat is about combating crazy complexity but we’re sure that without C#’s ultimate expressiveness the task would be much harder than it actually was for us.

Back-end of the application is solidly embedded on Microsoft Windows Communication Foundation (“Indigo”) as the transport protocol, Microsoft SQL Server as the storage engine and series of custom NoSQL implementations for indexing data and some analytical processing you see in TaskBeat today and going forward.