August 7, 2017
Lalit Kale
@techiethought
.NET Platform & .NET Core
Fundamentals
Limerick DotNet Azure User Group (LDNA)
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)
Our Sponsors
Limerick DotNet Azure User Group (LDNA)
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
.NET
2000 2017
What is .NET?
The umbrella term for .NET Standard and all .NET implementations and workloads.
Always capitalized, never ".Net".
What is .NET?
• 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
What is .NET – Circa 2003
Inside Look - .NET 2003
Unmanaged Vs. Managed Applications
CLR & CTS
CTS Fundamental Types
• Classes
• Structures
• Enumerations
• Interfaces
• Delegates
Garbage Collection
• .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
• 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
Fast Forward… 2015
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
Break
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
Limerick DotNet Azure User Group (LDNA)
And Satya nuked our world!
Any Developer. Any App. Any Platform
Microsoft Vision
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
2016 – Open Source and Microsoft
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
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
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
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
Programming Model Problem in brewing
Solution - .NET Standard 2.0
APIs Included and Streamlined
Compatibility Towards .NET Standard
.
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 Group
https://www.meetup.com/limerick-dotnet/
Twitter: limerickdotnet

Dot net platform and dotnet core fundamentals

  • 1.
    August 7, 2017 LalitKale @techiethought .NET Platform & .NET Core Fundamentals Limerick DotNet Azure User Group (LDNA)
  • 2.
    About Me • 12years 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)
  • 3.
    Our Sponsors Limerick DotNetAzure User Group (LDNA)
  • 4.
    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
  • 5.
  • 6.
  • 7.
    The umbrella termfor .NET Standard and all .NET implementations and workloads. Always capitalized, never ".Net". What is .NET?
  • 8.
    • 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
  • 9.
    What is .NET– Circa 2003
  • 10.
    Inside Look -.NET 2003
  • 11.
  • 12.
    CLR & CTS CTSFundamental Types • Classes • Structures • Enumerations • Interfaces • Delegates
  • 13.
  • 14.
    • .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
  • 15.
    • Technologies • DesktopApplication 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
  • 16.
  • 17.
    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
  • 18.
  • 25.
    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
  • 26.
    Limerick DotNet AzureUser Group (LDNA) And Satya nuked our world!
  • 27.
    Any Developer. AnyApp. Any Platform Microsoft Vision
  • 28.
    Microsoft + OpenSource 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
  • 29.
    2016 – OpenSource and Microsoft
  • 30.
    Microsoft is committedto 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
  • 31.
    Limerick DotNet AzureUser 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
  • 32.
    Limerick DotNet AzureUser Group (LDNA) .NET Core 1.0 • Cross Platform • Light-weight • New CLI Tooling – dotnet • Unit Testing Support with Xunit, Nunit • Docker Deployment Possible
  • 33.
    Limerick DotNet AzureUser 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
  • 34.
  • 35.
    Solution - .NETStandard 2.0
  • 36.
    APIs Included andStreamlined
  • 37.
  • 38.
    . This presentation isshared 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 Group https://www.meetup.com/limerick-dotnet/ Twitter: limerickdotnet

Editor's Notes

  • #4 Please note, this is mandatory slide and Do Not change or exclude
  • #8 https://docs.microsoft.com/en-us/dotnet/standard/glossary
  • #13 https://technet.microsoft.com/en-us/library/bb496996.aspx
  • #14 https://docs.microsoft.com/en-us/dotnet/standard/garbage-collection/fundamentals http://www.cs.inf.ethz.ch/ssw/files/GC_in_NET.pdf
  • #19 Slide 5 to 11 are our sponsors adverts. These will be run only in break during the session. So, do not change or exclude these slides. However, you can move them as a group wherever you wanted to have break.
  • #20 Bank of Ireland: 53 sec <iframe width="560" height="315" src="https://www.youtube.com/embed/IcjQzsx-95c?autoplay=1&amp;rel=0&amp;controls=0&amp;showinfo=0" frameborder="0" allowfullscreen></iframe>
  • #21 Microsoft Cloud: Empowering Cancer Research: 40 sec <iframe width="560" height="315" src="https://www.youtube.com/embed/GY2Bg0op-Kc?autoplay=1&amp;rel=0&amp;controls=0&amp;showinfo=0" frameborder="0" allowfullscreen></iframe>
  • #22 Microsoft Ireland:Why Build with Microsoft Azure? 1.48 sec <iframe width="560" height="315" src="https://www.youtube.com/embed/M8PIwKtsrR4?autoplay=1&amp;rel=0&amp;controls=0&amp;showinfo=0" frameborder="0" allowfullscreen></iframe>
  • #23 JetBrains: The Drive to Develop : 2.10 sec <iframe width="560" height="315" src="https://www.youtube.com/embed/tTShTikQA6U?autoplay=1&amp;rel=0&amp;controls=0&amp;showinfo=0" frameborder="0" allowfullscreen></iframe>
  • #24 Introduction to Database DevOps: RedGate 1.30 sec <iframe width="560" height="315" src="https://www.youtube.com/embed/VEVzrkmfyaA?autoplay=1&amp;rel=0&amp;controls=0&amp;showinfo=0" frameborder="0" allowfullscreen></iframe>
  • #25 Redgate SQL Clone: 1.05 Sec <iframe width="560" height="315" src="https://www.youtube.com/embed/0A2ZXvVQji4?autoplay=1&amp;rel=0&amp;controls=0&amp;showinfo=0" frameborder="0" allowfullscreen></iframe>
  • #33 https://github.com/dotnet/core/blob/master/roadmap.md
  • #39 This is End slide. As a user group, we wanted to share your contribution with our community, off course, with due credits. Hence, we are sharing this presentation under creative commons Noncommercial-ShareAlike 4.0 international license.