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