Thinktecture T
We Are Thinktecture

We help developers!

We work with developers and architects and help them create impressive Angular apps with .NET Core backends, running on Azure or on their premises.

How may we help you with your challenging, complex, and critical projects?

Contact Us
On-The-Job Collaboration

Our mission is to help you become better developers and deliver your projects more efficiently. There might be no better way to learn than working together on your code.

Code and Architecture Reviews

We can be your sounding board to discuss critical ideas or to review the code of critical components before you base your large-scale development on them.

Architecture Consulting

We've been developing highly interactive browser-based applications, their backends and APIs since 2004 and we'd love to share the lessons we've learnt with you.

What you get

Technology Focus

Angular Performance Optimization

Angular is an incredibly fast framework, but sometimes it can feel as if its details or your browsers' CSS and JavaScript handling seem to work against you.

Based on our long experience, we can help you tackle load-time and runtime performance issues, including change detection optimization, lazy loading, or overall simplifications.

Web Components and PWA

The web is today's major business application platform. We can help you tap into its steadily expanding capabilities with Progressive Web Apps (PWA), Web Components and native integrations based on Project Fugu.

As a member of the W3C, we are actively working on these standards and on the future of the web.

Blazor and SPA Integration

Writing web applications with C#, HTML and CSS is an interesting new approach for .NET developers. But before planning to work with ASP.NET Core Blazor & WebAssembly, you should know their current capabilities and limits.

We've worked on integrating Blazor with SPAs and standard web technology APIs & libraries since the first days of Blazor and can help you avoid pitfalls from the beginning.

Container and Serverless

Reproducible system and execution environments with Docker containers are a win for every software developer.

Whether using today's de-facto standard Kubernetes as a container execution environment or pursuing a more serverless approach: our experts have many years of experience designing and developing distributed applications for the cloud-native world with a focus on Microsoft Azure

Optimized 2D and 3D Visualization

Visualizing data in 2D or 3D is an increasingly important task in business applications, especially on the web.

Our practical experience can enable you to integrate application frameworks like Angular with visualization libraries like three.js or babylon.js in an highly performant way - to make sure you can get the fps' your application deserves.

.NET Core and Entity Framework Performance

.NET Core has been our main server-side technology since very early alpha versions - and we've been using .NET since 2001.

We can help you identify performance bottlenecks in your codebase. If .NET Core or Entity Framework and its SQL abstractions pose response times problems in your projects, our specialists can help you get your queries execution back on target.
What we've written

Featured Articles

Blazor
Re-Using Angular components in a Blazor WebAssembly application using Angular Elements - Web Components custom elements, FTW!
Setting the scene - Blazor integrations Microsoft's Blazor WebAssembly toolkit is one of the new kids on the block in WebAssembly land. For many developers WebAssembly (or WASM) is the origin for a new revolution in the web. We can finally(?) use other languages and frameworks…
Christian Weyer
IdentityServer
How to correctly delete your SameSite Cookies in Chrome (80+)
In my last article I explained how the changes in Chrome 80 (February 2020) can break your existing web sites or web applications, because SameSite cookies will be treated differently. In that post I focused on how to correctly set your cookies and how to mitigate…
Sebastian Gingter
IdentityServer
How to prepare your IdentityServer for Chrome's SameSite cookie changes - and how to deal with Safari, nevertheless
First, the good news: In February 2020 Google is going to release Chrome 80. This release will include Google's implementation of 'Incrementally better Cookies', which will make the web a more secure place and helps to ensure better privacy for users. The bad news is that this…
Sebastian Gingter
RxJS
RxJS in Angular - Antipattern 2 - Stateful Streams
This is the second part of a small series, in which I want to share some pitfalls we discovered multiple times in code reviews over the years, as well a few patterns we identified as helpful. In the first part we discussed how nesting subscriptions can be harmful. Stateful…
Yannick Baron
RxJS
RxJS in Angular - Single result data streams and async pipe
In the first and second part of this small series, we have discussed implementations that have flaws and can introduce side-effects to our data flow. We have learned how combining our streams and modeling our our data flow to yield a single result helped with solving the…
Yannick Baron
Entity Framework
Entity Framework Core 3.0 - "Hidden" GROUP BY Capabilities (Part 2)
In the previous blog post we used a navigational property to work around the limitations of the extension method . The problem is, there is not always such a property we can use for grouping. Especially, when following domain driven design practices, a bidirectional navigation is…
Pawel Gerr
RxJS
RxJS in Angular - Antipattern 1 - Nested subscriptions
Working on numerous Angular projects over the past couple of years, it has become evident, that a lot of developers still have a hard time working with RxJS which finds its use in Angular. While RxJS is a very powerful tool, it comes with a lot of operators and a whole paradigm…
Yannick Baron
Entity Framework
Entity Framework Core 3.0 - "Hidden" GROUP BY Capabilities (Part 1)
With Entity Framework Core 3.0 (EF) the internal implementation of the LINQ query translation has been changed a lot. So, some queries that didn't work previously are working now and some that worked are not working anymore. :) The LINQ extension method is a special one…
Pawel Gerr

“Combining the domain experience of the software developers of our clients with our own in-depth technology specializations can massively accelerate development teams.”

Ingo Rammer —  CEO of Thinktecture