SlideShare a Scribd company logo
1 of 25
Download to read offline
The New .NET Stack
By Aaron Stannard,
CTO Petabridge,
Co-Founder Akka.NET
You have to...
We have to do thisWe had to do this
What if we could...
Introducing the New .NET Enterprise Stack
No fear of write-heavy workloads
The Experience of Being a .NET Developer
No More Excuses
Growth vs Fixed Mindset
Infrastructure: Windows Azure
Data: C* for App Data
Data: Spark Streaming for Reporting
Runtime: CoreCLR or Mono/CLR
Programming Model: Akka.NET
UI: NancyFX, ASP.NET vNext, SignalR
Operational Metrics
Developer Metrics
Code Footprint: 83% Smaller
Turnaround time: 6 months
Fun: 100000% more
What's Next?
https://petabridge.com/stack

More Related Content

What's hot

Techniques for maintainable Quarkus applications
Techniques for maintainable Quarkus applicationsTechniques for maintainable Quarkus applications
Techniques for maintainable Quarkus applicationsAna-Maria Mihalceanu
 
Strata CA 2019: From Jupyter to Production Manu Mukerji
Strata CA 2019: From Jupyter to Production Manu MukerjiStrata CA 2019: From Jupyter to Production Manu Mukerji
Strata CA 2019: From Jupyter to Production Manu MukerjiManu Mukerji
 
BizOps Done Right: Breaking DevOps Silos to Deliver Great User Experiences
BizOps Done Right: Breaking DevOps Silos to Deliver Great User ExperiencesBizOps Done Right: Breaking DevOps Silos to Deliver Great User Experiences
BizOps Done Right: Breaking DevOps Silos to Deliver Great User ExperiencesKlaus Enzenhofer
 
Migrating From AngularJS To React
Migrating From AngularJS To ReactMigrating From AngularJS To React
Migrating From AngularJS To ReactAdir Amsalem
 
Introduction to Puppet Enterprise 2016.4
Introduction to Puppet Enterprise 2016.4Introduction to Puppet Enterprise 2016.4
Introduction to Puppet Enterprise 2016.4Hallie Exall
 
Introduction to Puppet Enterprise 2016.5
Introduction to Puppet Enterprise 2016.5Introduction to Puppet Enterprise 2016.5
Introduction to Puppet Enterprise 2016.5Puppet
 
CipherGraph Networks Cloud Access Gateway: Sales
CipherGraph Networks Cloud Access Gateway: SalesCipherGraph Networks Cloud Access Gateway: Sales
CipherGraph Networks Cloud Access Gateway: SalesCipherGraph Networks
 
Introduction to Puppet Enterprise 2016.5
Introduction to Puppet Enterprise 2016.5Introduction to Puppet Enterprise 2016.5
Introduction to Puppet Enterprise 2016.5Puppet
 
The Why and How of Continuous Delivery
The Why and How of Continuous DeliveryThe Why and How of Continuous Delivery
The Why and How of Continuous DeliveryNigel McNie
 
Intro to Puppet Enterprise
Intro to Puppet EnterpriseIntro to Puppet Enterprise
Intro to Puppet EnterprisePuppet
 
Intro to Puppet Enterprise Webinar 07.27.2017
Intro to Puppet Enterprise Webinar 07.27.2017Intro to Puppet Enterprise Webinar 07.27.2017
Intro to Puppet Enterprise Webinar 07.27.2017Claire Priester Papas
 
Java4hipsters
Java4hipsters Java4hipsters
Java4hipsters Intersog
 
WinOps Conf 2016 - Gael Colas - Configuration Management Theory: Why Idempote...
WinOps Conf 2016 - Gael Colas - Configuration Management Theory: Why Idempote...WinOps Conf 2016 - Gael Colas - Configuration Management Theory: Why Idempote...
WinOps Conf 2016 - Gael Colas - Configuration Management Theory: Why Idempote...WinOps Conf
 
Microservices in production 15/12/2015
Microservices in production 15/12/2015Microservices in production 15/12/2015
Microservices in production 15/12/2015Damien Daly
 
Humana digitally transforming health and well-being with Pivotal cloud foundr...
Humana digitally transforming health and well-being with Pivotal cloud foundr...Humana digitally transforming health and well-being with Pivotal cloud foundr...
Humana digitally transforming health and well-being with Pivotal cloud foundr...Dynatrace
 
Branching Your Way to Low-Code Perfection
Branching Your Way to Low-Code PerfectionBranching Your Way to Low-Code Perfection
Branching Your Way to Low-Code PerfectionOutSystems
 
How to Be More Productive With AI Development Assistance
How to Be More Productive With AI Development AssistanceHow to Be More Productive With AI Development Assistance
How to Be More Productive With AI Development AssistanceOutSystems
 

What's hot (20)

Techniques for maintainable Quarkus applications
Techniques for maintainable Quarkus applicationsTechniques for maintainable Quarkus applications
Techniques for maintainable Quarkus applications
 
Strata CA 2019: From Jupyter to Production Manu Mukerji
Strata CA 2019: From Jupyter to Production Manu MukerjiStrata CA 2019: From Jupyter to Production Manu Mukerji
Strata CA 2019: From Jupyter to Production Manu Mukerji
 
GraphQL @ Wix
GraphQL @ WixGraphQL @ Wix
GraphQL @ Wix
 
Why software projects fail in 2021?
Why software projects fail in 2021?Why software projects fail in 2021?
Why software projects fail in 2021?
 
BizOps Done Right: Breaking DevOps Silos to Deliver Great User Experiences
BizOps Done Right: Breaking DevOps Silos to Deliver Great User ExperiencesBizOps Done Right: Breaking DevOps Silos to Deliver Great User Experiences
BizOps Done Right: Breaking DevOps Silos to Deliver Great User Experiences
 
Migrating From AngularJS To React
Migrating From AngularJS To ReactMigrating From AngularJS To React
Migrating From AngularJS To React
 
Introduction to Puppet Enterprise 2016.4
Introduction to Puppet Enterprise 2016.4Introduction to Puppet Enterprise 2016.4
Introduction to Puppet Enterprise 2016.4
 
Introduction to Puppet Enterprise 2016.5
Introduction to Puppet Enterprise 2016.5Introduction to Puppet Enterprise 2016.5
Introduction to Puppet Enterprise 2016.5
 
Path to continuous delivery
Path to continuous deliveryPath to continuous delivery
Path to continuous delivery
 
CipherGraph Networks Cloud Access Gateway: Sales
CipherGraph Networks Cloud Access Gateway: SalesCipherGraph Networks Cloud Access Gateway: Sales
CipherGraph Networks Cloud Access Gateway: Sales
 
Introduction to Puppet Enterprise 2016.5
Introduction to Puppet Enterprise 2016.5Introduction to Puppet Enterprise 2016.5
Introduction to Puppet Enterprise 2016.5
 
The Why and How of Continuous Delivery
The Why and How of Continuous DeliveryThe Why and How of Continuous Delivery
The Why and How of Continuous Delivery
 
Intro to Puppet Enterprise
Intro to Puppet EnterpriseIntro to Puppet Enterprise
Intro to Puppet Enterprise
 
Intro to Puppet Enterprise Webinar 07.27.2017
Intro to Puppet Enterprise Webinar 07.27.2017Intro to Puppet Enterprise Webinar 07.27.2017
Intro to Puppet Enterprise Webinar 07.27.2017
 
Java4hipsters
Java4hipsters Java4hipsters
Java4hipsters
 
WinOps Conf 2016 - Gael Colas - Configuration Management Theory: Why Idempote...
WinOps Conf 2016 - Gael Colas - Configuration Management Theory: Why Idempote...WinOps Conf 2016 - Gael Colas - Configuration Management Theory: Why Idempote...
WinOps Conf 2016 - Gael Colas - Configuration Management Theory: Why Idempote...
 
Microservices in production 15/12/2015
Microservices in production 15/12/2015Microservices in production 15/12/2015
Microservices in production 15/12/2015
 
Humana digitally transforming health and well-being with Pivotal cloud foundr...
Humana digitally transforming health and well-being with Pivotal cloud foundr...Humana digitally transforming health and well-being with Pivotal cloud foundr...
Humana digitally transforming health and well-being with Pivotal cloud foundr...
 
Branching Your Way to Low-Code Perfection
Branching Your Way to Low-Code PerfectionBranching Your Way to Low-Code Perfection
Branching Your Way to Low-Code Perfection
 
How to Be More Productive With AI Development Assistance
How to Be More Productive With AI Development AssistanceHow to Be More Productive With AI Development Assistance
How to Be More Productive With AI Development Assistance
 

More from petabridge

NET Systems Programming Learned the Hard Way.pptx
NET Systems Programming Learned the Hard Way.pptxNET Systems Programming Learned the Hard Way.pptx
NET Systems Programming Learned the Hard Way.pptxpetabridge
 
DotNext 2020 - When and How to Use the Actor Model and Akka.NET
DotNext 2020 - When and How to Use the Actor Model and Akka.NETDotNext 2020 - When and How to Use the Actor Model and Akka.NET
DotNext 2020 - When and How to Use the Actor Model and Akka.NETpetabridge
 
.NET Conf 2019 When and How to Use the Actor Model: an Introduction to Akka...
.NET Conf 2019   When and How to Use the Actor Model: an Introduction to Akka....NET Conf 2019   When and How to Use the Actor Model: an Introduction to Akka...
.NET Conf 2019 When and How to Use the Actor Model: an Introduction to Akka...petabridge
 
Continuous Deployment with Akka.Cluster and Kubernetes (Akka.NET)
Continuous Deployment with Akka.Cluster and Kubernetes (Akka.NET)Continuous Deployment with Akka.Cluster and Kubernetes (Akka.NET)
Continuous Deployment with Akka.Cluster and Kubernetes (Akka.NET)petabridge
 
Introduction to Distributed Tracing
Introduction to Distributed TracingIntroduction to Distributed Tracing
Introduction to Distributed Tracingpetabridge
 
Akka.NET: Concurrency without the Pain
Akka.NET: Concurrency without the PainAkka.NET: Concurrency without the Pain
Akka.NET: Concurrency without the Painpetabridge
 
Introduction to Akka.NET and Akka.Cluster
Introduction to Akka.NET and Akka.ClusterIntroduction to Akka.NET and Akka.Cluster
Introduction to Akka.NET and Akka.Clusterpetabridge
 
Automed .NET Performance Testing with NBench
Automed .NET Performance Testing with NBenchAutomed .NET Performance Testing with NBench
Automed .NET Performance Testing with NBenchpetabridge
 
We're all distributed systems devs now: a crash course in distributed program...
We're all distributed systems devs now: a crash course in distributed program...We're all distributed systems devs now: a crash course in distributed program...
We're all distributed systems devs now: a crash course in distributed program...petabridge
 
Full-Stack, Message-oriented Programming w/ Akka.NET Actors
Full-Stack, Message-oriented Programming w/ Akka.NET ActorsFull-Stack, Message-oriented Programming w/ Akka.NET Actors
Full-Stack, Message-oriented Programming w/ Akka.NET Actorspetabridge
 
OSS From the Outside In - A Personal Journey With Akka.NET
OSS From the Outside In - A Personal Journey With Akka.NETOSS From the Outside In - A Personal Journey With Akka.NET
OSS From the Outside In - A Personal Journey With Akka.NETpetabridge
 
Concurrency, Without the Pain: An Intro to Akka.NET @ Bay.NET
Concurrency, Without the Pain: An Intro to Akka.NET @ Bay.NETConcurrency, Without the Pain: An Intro to Akka.NET @ Bay.NET
Concurrency, Without the Pain: An Intro to Akka.NET @ Bay.NETpetabridge
 
Syncromatics Akka.NET Case Study
Syncromatics Akka.NET Case StudySyncromatics Akka.NET Case Study
Syncromatics Akka.NET Case Studypetabridge
 
Akka.NET @ London.NET
Akka.NET @ London.NETAkka.NET @ London.NET
Akka.NET @ London.NETpetabridge
 
Akka.NET Fundamentals — #ProgNet15
Akka.NET Fundamentals — #ProgNet15Akka.NET Fundamentals — #ProgNet15
Akka.NET Fundamentals — #ProgNet15petabridge
 
Slides - Intro to Akka.Cluster
Slides - Intro to Akka.ClusterSlides - Intro to Akka.Cluster
Slides - Intro to Akka.Clusterpetabridge
 
Akka.NET: Concurrency Without the Pain (Intro to the Actor Model)
Akka.NET: Concurrency Without the Pain (Intro to the Actor Model)Akka.NET: Concurrency Without the Pain (Intro to the Actor Model)
Akka.NET: Concurrency Without the Pain (Intro to the Actor Model)petabridge
 
Distributed Transactions in Akka.NET
Distributed Transactions in Akka.NETDistributed Transactions in Akka.NET
Distributed Transactions in Akka.NETpetabridge
 
Streaming ETL With Akka.NET
Streaming ETL With Akka.NETStreaming ETL With Akka.NET
Streaming ETL With Akka.NETpetabridge
 
2 12-2015 - Cassandra Day LA - Using DataStax Enterprise and Actor Systems fo...
2 12-2015 - Cassandra Day LA - Using DataStax Enterprise and Actor Systems fo...2 12-2015 - Cassandra Day LA - Using DataStax Enterprise and Actor Systems fo...
2 12-2015 - Cassandra Day LA - Using DataStax Enterprise and Actor Systems fo...petabridge
 

More from petabridge (20)

NET Systems Programming Learned the Hard Way.pptx
NET Systems Programming Learned the Hard Way.pptxNET Systems Programming Learned the Hard Way.pptx
NET Systems Programming Learned the Hard Way.pptx
 
DotNext 2020 - When and How to Use the Actor Model and Akka.NET
DotNext 2020 - When and How to Use the Actor Model and Akka.NETDotNext 2020 - When and How to Use the Actor Model and Akka.NET
DotNext 2020 - When and How to Use the Actor Model and Akka.NET
 
.NET Conf 2019 When and How to Use the Actor Model: an Introduction to Akka...
.NET Conf 2019   When and How to Use the Actor Model: an Introduction to Akka....NET Conf 2019   When and How to Use the Actor Model: an Introduction to Akka...
.NET Conf 2019 When and How to Use the Actor Model: an Introduction to Akka...
 
Continuous Deployment with Akka.Cluster and Kubernetes (Akka.NET)
Continuous Deployment with Akka.Cluster and Kubernetes (Akka.NET)Continuous Deployment with Akka.Cluster and Kubernetes (Akka.NET)
Continuous Deployment with Akka.Cluster and Kubernetes (Akka.NET)
 
Introduction to Distributed Tracing
Introduction to Distributed TracingIntroduction to Distributed Tracing
Introduction to Distributed Tracing
 
Akka.NET: Concurrency without the Pain
Akka.NET: Concurrency without the PainAkka.NET: Concurrency without the Pain
Akka.NET: Concurrency without the Pain
 
Introduction to Akka.NET and Akka.Cluster
Introduction to Akka.NET and Akka.ClusterIntroduction to Akka.NET and Akka.Cluster
Introduction to Akka.NET and Akka.Cluster
 
Automed .NET Performance Testing with NBench
Automed .NET Performance Testing with NBenchAutomed .NET Performance Testing with NBench
Automed .NET Performance Testing with NBench
 
We're all distributed systems devs now: a crash course in distributed program...
We're all distributed systems devs now: a crash course in distributed program...We're all distributed systems devs now: a crash course in distributed program...
We're all distributed systems devs now: a crash course in distributed program...
 
Full-Stack, Message-oriented Programming w/ Akka.NET Actors
Full-Stack, Message-oriented Programming w/ Akka.NET ActorsFull-Stack, Message-oriented Programming w/ Akka.NET Actors
Full-Stack, Message-oriented Programming w/ Akka.NET Actors
 
OSS From the Outside In - A Personal Journey With Akka.NET
OSS From the Outside In - A Personal Journey With Akka.NETOSS From the Outside In - A Personal Journey With Akka.NET
OSS From the Outside In - A Personal Journey With Akka.NET
 
Concurrency, Without the Pain: An Intro to Akka.NET @ Bay.NET
Concurrency, Without the Pain: An Intro to Akka.NET @ Bay.NETConcurrency, Without the Pain: An Intro to Akka.NET @ Bay.NET
Concurrency, Without the Pain: An Intro to Akka.NET @ Bay.NET
 
Syncromatics Akka.NET Case Study
Syncromatics Akka.NET Case StudySyncromatics Akka.NET Case Study
Syncromatics Akka.NET Case Study
 
Akka.NET @ London.NET
Akka.NET @ London.NETAkka.NET @ London.NET
Akka.NET @ London.NET
 
Akka.NET Fundamentals — #ProgNet15
Akka.NET Fundamentals — #ProgNet15Akka.NET Fundamentals — #ProgNet15
Akka.NET Fundamentals — #ProgNet15
 
Slides - Intro to Akka.Cluster
Slides - Intro to Akka.ClusterSlides - Intro to Akka.Cluster
Slides - Intro to Akka.Cluster
 
Akka.NET: Concurrency Without the Pain (Intro to the Actor Model)
Akka.NET: Concurrency Without the Pain (Intro to the Actor Model)Akka.NET: Concurrency Without the Pain (Intro to the Actor Model)
Akka.NET: Concurrency Without the Pain (Intro to the Actor Model)
 
Distributed Transactions in Akka.NET
Distributed Transactions in Akka.NETDistributed Transactions in Akka.NET
Distributed Transactions in Akka.NET
 
Streaming ETL With Akka.NET
Streaming ETL With Akka.NETStreaming ETL With Akka.NET
Streaming ETL With Akka.NET
 
2 12-2015 - Cassandra Day LA - Using DataStax Enterprise and Actor Systems fo...
2 12-2015 - Cassandra Day LA - Using DataStax Enterprise and Actor Systems fo...2 12-2015 - Cassandra Day LA - Using DataStax Enterprise and Actor Systems fo...
2 12-2015 - Cassandra Day LA - Using DataStax Enterprise and Actor Systems fo...
 

Recently uploaded

Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFMichael Gough
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentMahmoud Rabie
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Nikki Chapple
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Mark Simos
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...Karmanjay Verma
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessWSO2
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...amber724300
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sectoritnewsafrica
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...BookNet Canada
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Jeffrey Haguewood
 

Recently uploaded (20)

Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDF
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career Development
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with Platformless
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
 

The New .NET Stack: Introducing the Modern .NET Enterprise Stack

Editor's Notes

  1. .NET has been, historically, an expensive ecosystem to play in. Because to play in it, you have to do so by Microsoft’s rules. You have to buy a license for Visual Studio, or more likely, an MSDN subscription. You have to buy a license for Windows Server. You have to buy a license for Windows Server. You have to develop your web applications in a framework built by Microsoft, like ASP.NET or WCF. You have to host your web applications in IIS. And the list goes on.
  2. Let me tell you a little story from a point in my career with Microsoft from 2010-2011. HTML5 had become mostly standardized and most of its features were rapidly being picked up by all of the major web browsers. One of the HTML5 APIs that had developers really, really excited in early 2011 was the introduction of WebSockets – essentially persistent TCP sockets that are negotiated via HTTP before cutting over to a TCP-based protocol that allows for true server push. At the time the Internet was blowing up about a terrific whitepaper Twitter published showing some results from their performance experiemnts with WebSockets in their web client, and I think they claimed that they experienced something incredible like an 80+% drop in load on servers they switched from using HTTP long-polling to websockets. The point is, this is a technology that everyone was flipping out about including .NET developers. Only problem was – Internet Information Services, the web server built into Windows Server, had zero support for WebSockets. So even if you managed to find a websocket library for .NET, and there really weren’t any at the time, we had to wait for the next release of IIS to come out…. Which was bundled with the next release of Windows Server, 2012…. And we’d need to purchase and upgrade and roll that out to all of our servers…. In order to support an established standard that had been discussed for years. Welcome to the world of developing at the pace of Microsoft. So the choice .NET developers were faced with was: Wait for 12-18 months plus $N dollars per server and do a major systems upgrade whenever Microsoft said you could; or Switch to Node.JS, the new kid on the block at the time – and boasted fantastic support for WebSockets through its Socket.IO library, which is still immensely popular today. I witnessed droves and droves of .NET developers make the obvious choice: to abandon .NET and switch to a platform that didn’t introduce stupid tradeoffs like this. And that’s been the story of our ecosystem. Play by Microsoft’s rules… Or go somewhere else. And .NET developers have been leaving our ecosystem for years for multitudes of reasons. I nearly left it because I was tired of having to write drivers for technologies like Cassandra and tons of other OSS technologies I wanted to use with my .NET applications – just being able to use the first-party drivers in Java or Scala really appealed to me. Others have left because they wanted access to the latest front-end technologies like coffeescript, SASS, bower, and others – thing they can easily get in the Python, Ruby, or Node.JS ecosystems. In short: our ecosystem has been one where we’ve had to trade away our access to the rest of the world’s innovation in order to have Visual Studio and an integrated experience. And recently, that experience has become less and less valuable on its own. And it’s not just this example either – there’s
  3. The possibility I’m here to tell you about today is one where we .NET developers no longer have to do this anymore. All of those “haves” I mentioned earlier… are “hads” now. We now have the possibility of choice and having a say in our experience as developers. I want everyone in this room to leave today knowing full well that there is an entire realm available to you now that never existed before, and I’m going to give you access to choose it. All you have to do is listen closely. The state of .NET as we know it has radically changed.
  4. So here’s the fork in the road for us – if we could build reliable, distributed systems in pure .NET… Using Visual Studio… Running our apps on Windows Server OR Linux – it doesn’t matter which. And deploying using the latest technologies available to the rest of the industry, like Docker or Chef… Well, now we can.
  5. Introducing the new .NET stack. First, we start with our growth mindset. We’re not afraid of experimentation, and we treat every experiment as a growth opportunity. And as a result, we’re going to build consistently better and better experiences for our users over time. Next, we’re going to use Windows Azure as the foundation of our stack – it has a lot of offer, especially with Service Fabric coming down the rails soon. And if we’re able to take advantage of the Docker support being built into it, we can have a level of deployment agility both on the cloud and on-premise that’s never been achievable in .NET before. That’s an extraordinary breakthrough. Next, the data stack – we’re going to roll with Cassandra and Spark. Cassandra will be our durable store for our application state and it will be used exclusively for application state. Because we’re bold .NET developers, we’re going to do something with our reporting requirements – completely delegate them to Spark Streaming and whatever datastore Spark writes to. Never again will we introduce horrible performance and mismatch problems to our database by conflating reporting and app requirements ever again. Put a wall between those two and forget about them. The runtime – we’re going to rock CoreCLR / CLR / Mono. Compile on any platform, run on any platform, and forget about it. No GAC. No strong-named assemblies. We’re done with that – bin-deploy everything and be agile. At the application layer – we’re going to introduce the increasingly popular Akka.NET actor framework as an instrument for building layers of soft real-time, distributed services that can help us build “impossible” applications such as multi-player games, banking software, and more. And lastly – our front-end. We’re going to take advantage of the abundance of X-plat front-end technologies coming to .NET and use those. IIS and Windows Server are now optional.
  6. Picking SQL Server is a career risk Workloads are becoming increasingly write-heavy, and relational data stores are simply not designed for that.
  7. Write .NET where you want it, run it where you want it But around the time I was at Microsoft, I got present to the reality of what it was like being a .NET developer versus the alternatives. And the truth is, the experience of being a .NET developer has been one where we are utterly constrained in our choice of technologies and the feasibility of their cost.
  8. There are no more excuses for .NET developers to be the red-headed step children of web development. In terms of the technologies that are available to us now, we are free from the tyranny of Windows and SQL Server Licensing. .NET is now a viable cross-platform runtime, whether it’s with Mono 4.0 or the upcoming .NET Core PCL. On top of that, there are now mature drivers available for .NET developers for virtually every popular OSS database. With the advent of Omnisharp, Visual Studio Code, and the amazing amount of stuff Microsoft’s put into the free “Visual Studio Community” edition – our toolchain isn’t an issue either. We can develop our .NET apps on Windows, OS X, or Linux easier than we ever have before. And when it comes to our web frameworks and servers, we have an abundance of choice there too with the rise of OWIN and cross-platform web frameworks like NancyFX and ASP.NET vNext. No more being locked into IIS only. Beyond that… with the rise of projects like Orleans, DotNetty, Akka.NET, and many others – we’re starting to enjoy a real OSS ecosystem in .NET that can deliver the sort of tools we need to build distributed enterprise applications all in 100% native C# and F#. We’re out of excuses! We can take on some really big challenges now if we change our mindset, and that is exactly what I’m proposing we do.
  9. The first thing we have to change as .NET developers is our mindset – not our tools. I love .NET and .NET developers, but our ecosystem is especially guilty of having adopted a “fixed” mindset about the way things are and are not in our world. Some of this is due to the choices Microsoft has afforded to us historically, but all of that is now different – it’s up to us to choose how things occur for us. Here’s what I mean by a “fixed” mindset. In a fixed mindset, you have a static definition of the way you are and the way everything else is. You’re either a naturally good programmer or you’re not. You stick to what you know so no one can judge you as a failure. The outcome is the only thing that matters – if you tried something new in an implementation of a project it fails to deliver on some key metric, then you look at the effort as wasted and retreat to doing whatever you were doing before. In school children, kids who were routinely praised for their intelligence or the outcomes of their exams growing up develop a fixed mindset about who they are – “I must be naturally smart!” These are the kids who can’t cope with the dynamism of the real world once they graduate – they know how to take standardized exams like a champion, but they can’t make it through the workday without receiving some kind of validation or reward – because that’s the fixed little world they know from college. They’re debilitated and limited performers in the real-world, which is why here in Silicon Valley we have so many stereotypes about Ivy League and Stanford kids who can’t cut it here. We, .NET developers, are a lot like these kids – most of us are terrified at the thought of wondering outside of our comfort zone of SQL Server + Windows + ASP.NET + CRUD. We have a fixed view of the world that everything has to be done the way we’ve been doing it since 2001, making changes only once we’re absolutely forced to by opportunity and circumstance. I assert that the widespread pervasiveness of this fixed, complacent “if it ain’t broke, don’t fix it” attitude is more responsible for the lack of progress in our ecosystem than anything Microsoft has ever done. So let’s start with this. Instead of a fixed mentality, we need a growth mentality. A growth mentality is one where we have a dynamic view of the world – “good programmers are made through consistent effort and practice.” See the difference? Kids who are praised for the effort they put into their work in school, rather than their results, develop a growth mentality. They love being challenged – they view failure and trial and error as growth exercises that will ultimately help them master whatever it is they’re up to. This growth mindset is what we .NET developers have to do adopt in order to have a future where we have an abundance of choice. We have to rise to the challenge of running .NET on .NETCore on Linux using Docker in order to build highly available, cloud-agnostic services. We have to treat SQL Server as *an* option, not *the* option when it comes to storing our data. We need to be willing to play with new programming models, such as the actor model, to build the sorts of experiences our users demand in 2015. We have to experiment and treat project failures not as wastes of effort, but as growth exercises that help us expand our zone of effectiveness. If we as an ecosystem can accomplish this, then we will join the ranks of the JVM as unstoppable juggernauts.
  10. In short, what got .NET to where it is over the past 15 years – SQL Server, ASP.NET, Windows, and IIS, won’t be what takes us to whatever our future has in store for us over the next 15 years. So let’s stop asking for a “faster horse” and start asking for automobiles. You know, I had a developer who contacted us and talked about how their business is losing tens of thousands of dollars per day due to SQL Server throughput issues caused by row lock contention. In the same breath as telling me how much pain this is causing their business they excitedly told me about how moving to their SQL Server instance to a 64-core, 512GB of RAM box was going to solve all of their problems. Do you see the obvious issue here? You can’t scale your way out of a contention problem – you have to fundamentally change your relationship with your data.
  11. A business story about MarkedUp’s success with this stack