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.
Trailheads 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 Windows Azure. We design multi tenant, mobile and IoT friendly cloud services that are hosted in the provider of your choice
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, also federated such as Facebook Single Sign On), and secure storage (SQL Server transparent database encryption, strong PBKDF2 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.
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
The middle tier or application server usually a Microsoft ASP.NET (including the new cross platform ASP.NET Core) application, written in C# using Visual Studio. It uses an ORM such as Dapper, nHibernate or in some cases Entity Framework (and now Entity Framework Core), to access the database, and components such as Dependency Injection (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.
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.
The buzzword of the year… 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.
Automated web testing is done using Selenium and Browserstack, and automated mobile testing with Appium and Xamarin Test Cloud. In addition, we use standard unit testing practices for API level testing.
Reporting and Analysis
For reporting we generally use SSRS or Telerik reporting, and Microsoft OLAP Services for analysis.