Technologies

Technologies

Technology is ever evolving and it is important to strike a balance between not being on the bleeding edge, but also not being left in the past, using techniques and tools that are not as efficient as more recent ones. Being MVPs and technology insiders, we can help you pick the right technology, technology that hits the sweet spot and that you will get many years of mileage out of. Currently, the following technologies are commonly used in our projects:

Native, Cross-Platform Mobile

For native, cross-platform (iOS, Android, Windows on both phones and tablets) we use Xamarin and Windows Universal Applications, developed using the same tools as the middle tier (Visual Studio, C#) and Xamarin Studio. We create completely native performance and native look and feel applications, that share a large amount of code, for faster development and improved maintenance.

Web UI

The web user interface is usually developed as a Single Page Application (SPA) using TypeScript or JavaScript, and a framework such as Angular or React. Widgets from component vendors (such as Kendo UI) are used where appropriate. We use HTML 5 that runs in modern browsers on a range of devices, from desktops to tablets and phones. Responsive design allows the application to adapt to the capabilities of the viewer’s device.

Cloud

Trailhead’s developers have been doing Cloud development and deployment for many years, and have amassed a large working knowledge of both Amazon Web Services (AWS) and Microsoft Azure. We design multi-tenant, mobile and IoT friendly cloud services that are hosted in the provider of your choice.

Security

Security is an integral part of developing cloud-based and mobile software, ranging from on-device secure storage (SQLite with SQLCipher), encrypted communications (HTTPS/SSL), robust authentication and authorization (claims-based, local authentication or federated), and secure storage (SQL Server transparent database encryption and strong password hashing) and encrypted configuration settings. We also take care to avoid various common attacks, like SQL injection, cross domain origin forgery etc, and can provide security audits.

Database

The database is typically one of the flavors of Microsoft SQL Server, including cloud versions, and versions that offer clustering, high performance, transparent encryption and automatic failover.

Middle Tier

The middle tier or application server usually a Microsoft ASP.NET (including the new cross-platform ASP.NET Core) application, written in C#. It uses an ORM such as Entity Framework (and now Entity Framework Core) or Dapper, to access the database, and components such as Dependency Injection (.NET Core DI, Ninject, Autofac) to increase modularity, extensibility, and testability. The middle tier is written to be stateless so it can be load balanced and scale out.

APIs

The middle tier is exposed to web or mobile clients, or other systems using a REST API, passing JSON securely over HTTPS/SSL. In some cases we use OData, and in legacy systems WCF.

IoT

The buzzword of the year, Internet of Things. Trailhead has hands-on experience developing IoT using Windows 10 IoT and C#, accessing a range of sensors and peripherals, and communicating with cloud services.

Testing

Automated web testing is done using Selenium or Protractor, and automated mobile testing with Appium or Microsoft App Center Test. In addition, we use standard unit testing practices for API level testing.

Packages

Software components are pulled in and distributed using Nuget for .NET development, and NPM for JavaScript web development.

Reporting and Analysis

For reporting we generally use SSRS or Telerik reporting, and Microsoft OLAP Services for analysis.