Dot net platform and dotnet core fundamentals

38
August 7, 2017 Lalit Kale @techiethought .NET Platform & .NET Core Fundamentals Limerick DotNet Azure User Group (LDNA)

Transcript of Dot net platform and dotnet core fundamentals

Page 1: Dot net platform and dotnet core fundamentals

August 7, 2017

Lalit Kale@techiethought

.NET Platform & .NET Core Fundamentals

Limerick DotNet Azure User Group (LDNA)

Page 2: Dot net platform and dotnet core fundamentals

About Me

• 12 years of .NET

• Roles: Software Developer Sr. Developer Tech Lead Architect

• Start-up to large enterprise

• Interested in software architecture of High-Volume High Traffic

distributed Systems

• Happy to help with anything related to .NET and Azure Cloud

• Twitter: @atechiethought

Limerick DotNet Azure User Group (LDNA)

Page 3: Dot net platform and dotnet core fundamentals

Our Sponsors

Limerick DotNet Azure User Group (LDNA)

Page 4: Dot net platform and dotnet core fundamentals

Before we start…• Audience:

• Beginner .NET developers and developers coming from other non-windows background

• Eventual pieces of new information/insights/ peek into future of .NET for Senior .NET developers

• People who are keen on improving their craft

• Presentation:

• Approx. Time: 1 Hour (45 min session +10-15 minutes of break + 10-15 minutes of questions)

• Discussion Over Monotonous Delivery

• Planned slides for Questions are marked with Question Icon, Feel free to jump in to express your

thoughts or ask questions by raising your hands

• Code Snippets to understand the concepts – Not Ready for Production

• All Views/Opinions expressed here are mine and nothing to do with my current/past employers

Page 5: Dot net platform and dotnet core fundamentals

.NET

2000 2017

Page 6: Dot net platform and dotnet core fundamentals

What is .NET?

Page 7: Dot net platform and dotnet core fundamentals

The umbrella term for .NET Standard and all .NET implementations and workloads.

Always capitalized, never ".Net".

What is .NET?

Page 8: Dot net platform and dotnet core fundamentals

• COM/DCOM Problems

• DLL Hell

• C++ Code and Memory Management

• Java – Becoming Mightier Force (Seen as Enemy) • Runs Everywhere!!

• Linux – Seen as a Cancer

• XML – God Sent

• Namespaces

• Win 2000, Win XP Days

2002

Page 9: Dot net platform and dotnet core fundamentals

What is .NET – Circa 2003

Page 10: Dot net platform and dotnet core fundamentals

Inside Look - .NET 2003

Page 11: Dot net platform and dotnet core fundamentals

Unmanaged Vs. Managed Applications

Page 12: Dot net platform and dotnet core fundamentals

CLR & CTS

CTS Fundamental Types

• Classes

• Structures

• Enumerations

• Interfaces

• Delegates

Page 13: Dot net platform and dotnet core fundamentals

Garbage Collection

Page 14: Dot net platform and dotnet core fundamentals

• .NET = Umbrella Term

• .NET BCL = Base Class Library

• CLR = Common Language Runtime

• .NET Framework = .NET BCL + .NET CLR + Bunch of Supporting

Utilities (assembly signing, Service Discovery , ASP.NET Registration,

ADO-XML and IIS Related Utils)

• .NET Languages (CLI Compliant): C#, VB.NET , F#, C++/CLI

• Assembly = EXE or DLL (Output of Program)

• GAC = Single Machine-Wide Registry for .NET Framework DLLs

Terminology

Page 15: Dot net platform and dotnet core fundamentals

• Technologies

• Desktop Application Development• Winforms• WPF = Windows Presentation Foundation• WIF = Windows Identity Foundation• UWP = Universal Windows Platform

• Web/ Services Application Development• XML WebServices• WCF = Windows Communication Foundation• ASP.NET = Classic Server Pages Technology based on .NET• WebForms = Part of ASP.NET (~Pages)• ASP.NET MVC = Light Weight MVC Framework • ASP.NET WebApi = Rest Based Framework for creating API

• Data • Entity Framework = Object Relationship Mapping Framework

• Sharepoint = Web based Portal development Technology

• Dynamics = Microsoft Customer Relationship Management Software

Terminology

Page 16: Dot net platform and dotnet core fundamentals

Fast Forward… 2015

Page 17: Dot net platform and dotnet core fundamentals

Points to Note• Single .NET framework per System

• GAC = Shared Library Place on Your System

• JIT = AOT Compiler – Pre, Econo, RyuJIT

• Machine.Config• Garbage Collection Modes and Other Perf Settings

• Deployment Models• Xcopy

• Nuget = Package manager for .NET

• Perf Counters

Page 18: Dot net platform and dotnet core fundamentals

Break

Page 19: Dot net platform and dotnet core fundamentals
Page 20: Dot net platform and dotnet core fundamentals
Page 21: Dot net platform and dotnet core fundamentals
Page 22: Dot net platform and dotnet core fundamentals
Page 23: Dot net platform and dotnet core fundamentals
Page 24: Dot net platform and dotnet core fundamentals
Page 25: Dot net platform and dotnet core fundamentals

Trouble in Paradise…• Market Forces

• 2005-2014 = Ruby and RoR

• 2007 - 2015 ASP.NET MVC

• 2009 - 2015 Node.jS + NPM = (Libuv + V8) based Async I/O

• 2010 – Microsoft Cloud made commercially available as “Windows Azure”

• Shift in Programming Trends => Desktop Web Mobile & Cloud

• No influence on Mobile Developer Ecosystem Despite Nokia Acquisition

• Shift in Leadership in Microsoft - 2015

Page 26: Dot net platform and dotnet core fundamentals

Limerick DotNet Azure User Group (LDNA)

And Satya nuked our world!

Page 27: Dot net platform and dotnet core fundamentals

Any Developer. Any App. Any Platform

Microsoft Vision

Page 28: Dot net platform and dotnet core fundamentals

Microsoft + Open Source Momentum

Dead and buried: Microsoft's holy war on open-source

software

“Years ago, Microsoft's CEO described open source as a cancer. Times have changed. Just ask 22-year Redmond veteran and open-

source proponent Mark Hill.”

Charles Cooper

Redmond top man Satya Nadella:

'Microsoft LOVES Linux‘

Neil McAllister

Microsoft: the Open Source Company

“This is not your dad’s Microsoft”

Steven J. Vaughan-Nichols

Tweet

Page 29: Dot net platform and dotnet core fundamentals

2016 – Open Source and Microsoft

Page 30: Dot net platform and dotnet core fundamentals

Microsoft is committed to Linux

Now

Linux is a real business for Microsoft

They’ve been at this for a while

Linux and open source is a fundamental

part of what Microsoft does

Page 31: Dot net platform and dotnet core fundamentals

Limerick DotNet Azure User Group (LDNA)

Change Needed for .NET• Flagship Ecosystem shift from Windows Azure Cloud

• Cloud means (Open Source and Cross Platform)

• Biggest Hurdle

• IIS and Web Programming Model

• IIS is tightly coupled with

• System.Web

• System.Net

• Legacy Baggage

• XML

• Remoting

• Enterprise Services

• In Cross Platform World

• Common Denominator for Windows world (Portable Class Library) has not worked

• Need New lightweight Stripped down version of web-server which will serve .NET based web applications

Page 32: Dot net platform and dotnet core fundamentals

Limerick DotNet Azure User Group (LDNA)

.NET Core 1.0• Cross Platform

• Light-weight

• New CLI Tooling – dotnet

• Unit Testing Support with Xunit, Nunit

• Docker Deployment Possible

Page 33: Dot net platform and dotnet core fundamentals

Limerick DotNet Azure User Group (LDNA)

2016 – Happening Year• Two Big Trends

• Containers Ecosystem Emerged and Catching up Strongly –• Docker Adoption in .NET Developers is growing fast

• Azure Cloud Support for Containers with different services

• Windows Server 2016 • Support for native Windows Containers & Hyper-V Containers

• Created separate version for Containers – servercore and nanoserver

• Microservices• Application Architecture tuned for smaller services

• Can see lot of Ops influence in this architectural style

Page 34: Dot net platform and dotnet core fundamentals

Programming Model Problem in brewing

Page 35: Dot net platform and dotnet core fundamentals

Solution - .NET Standard 2.0

Page 36: Dot net platform and dotnet core fundamentals

APIs Included and Streamlined

Page 37: Dot net platform and dotnet core fundamentals

Compatibility Towards .NET Standard

Page 38: Dot net platform and dotnet core fundamentals

.

This presentation is shared under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International license. More information for this license is available at http://creativecommons.org/licenses/by-nc-sa/4.0/

All trademarks are the property of their respective owners. Lalit Kale or Limerick DotNet-Azure User Group or it’s members makes no warranties, express, implied or statutory, as to the information in this presentation.

Limerick DotNet-Azure User Grouphttps://www.meetup.com/limerick-dotnet/

Twitter: limerickdotnet