In this session we look at modern software architectures and how they find their place in the .NET world. We examine the architectural requirements of modern reactive systems that are structured into microservices and have the ability to provide feedback to users in near real-time. Architectural patterns include microservices, messaging, CQRS and the actor model. We take a look at .NET based frameworks that support these concepts, like "Azure Service Fabric", "Project Orleans", "Akka.NET" and NServiceBus" and tools to communicate back to the client like "SignalR" or "XSockets".
4. TicTacTech
Modern .NET Software Architecture4 09.09.2016
http://tictactech.azurewebsites.net/
On Android I had problems
with Chrome, but it works
great with Opera !?
5. Modern .NET Software Architecture5 09.09.2016
A Brief History of
Sofware Engineering
6. A Look Around Today
Modern .NET Software Architecture6 09.09.2016
Google Trend „Microservices“
7. A Look Around Today
Modern .NET Software Architecture7 09.09.2016
Google Trend „SOA“
8. A Look Around Today
Modern .NET Software Architecture8 09.09.2016
Google Trend „SOA“
9. A Look Around Today
Modern .NET Software Architecture9 09.09.2016
Google Trend „Microservices“ versus „Service Oriented Architecture“
10. A Brief History of Software Engineering
Modern .NET Software Architecture10 09.09.2016
1940
09.09.2016Mark 1
1978
The UNIX
Philosophy
(DOTADIW)
1970
WWW
1989
1996
SOA
2001
Agile
Manifesto
RESTful
Services
2000
2003
DDD
2002
The Cloud
2007
DevOps
2005
‘’Micro-
Web-
Services‘’
2011
Microservices
2013
Reactive
Manifesto
11. The Unix Philosophy (1978) - DOTADIW
Modern .NET Software Architecture11 09.09.2016
13. The Unix Philosophy (1978) - DOTADIW
Modern .NET Software Architecture13 09.09.2016
14. The Unix Philosophy (1978) - DOTADIW
Modern .NET Software Architecture14 09.09.2016
„Do one thing and do it well“
Make each program do one thing well
Expect the output of every program to become the input to another
Design software and systems to be tried early, don‘t hesitate to
throw away
Use and make tools.
15. The Reactive Manifesto
Modern .NET Software Architecture15 09.09.2016
https://www.reactivemanifesto.org/
REACTIVE
Elastic
Responsive Resilient
Message
Driven
17. The Evolution of Software Architecture
Modern .NET Software Architecture17 09.09.2016
18. The Evolution of Software Architecture
Modern .NET Software Architecture18 09.09.2016
19. The Evolution of Software Architecture
Modern .NET Software Architecture19 09.09.2016
20. Microservice Characteristics
Modern .NET Software Architecture20 09.09.2016
Small and self contained, owns its datasource, owned by 1 team
Easy to replace, individually deployable and disposable
Organized around capabilities
Implemented with „what fits best“
„Smart endpoints and dumb pipes“
Designed for failure
http://martinfowler.com/articles/microservices.html/
23. Microservice Example 1: Microsoft Azure
Modern .NET Software Architecture23 09.09.2016
Clemens Vasters: Utopia ESB
http://channel9.msdn.com/Blogs/Subscribe/Wheres-the-ESB
24. Microservice Example 2
Modern .NET Software Architecture24 09.09.2016
«MicroMonolith - Top anti-
patterns of distributed systems»
- Michal Franc
NDC Oslo 2016
https://vimeo.com/171704583
25. Microservice Example 3
Modern .NET Software Architecture25 09.09.2016
«A High-Performance Solution
to Microservices UI
Composition»
NDC Oslo 2016
https://vimeo.com/171927597
27. ServiceBus
Modern .NET Software Architecture27 09.09.2016
PlayerChanged
Logged-In
HTML - JS
Web API
Data Collector
SignalR
“Branding Service”
ArchitetureOverview
HTML - JS
Web API
Reliable Actors
Reliable Service
Service Bus Listener
Game Events
SignalR
Web API
HTML - JS
Document DB
28. Microservice Example 4: TicTacTech
Modern .NET Software Architecture28 09.09.2016
PlayerService GameService StatisticsService User Interface
Azure ServiceBus
aurelia.io
Azure Web Job
Service Fabric
Reliable Actors
Sql Server
29. Azure Service Fabric
Modern .NET Software Architecture29 09.09.2016
Cluster Management
Stateful Middle Tier
Runs any EXE
Specific APIs
– Reliable Actors
– Reliable Services
Rolling Updates