An insightful journey into the evolution
of a great technology
“Knowledge is the ONLY
antidote to all fears. Start
reading a new book today.”
By Rasik Bihari Tiwari
.NET – The current spectrum
Solving any problem
using .NET Stack
Before you begin!
What you should accomplish through this
session – The evolution
Understand .NET
framework as a
whole
What all is available
today in MS .NET
framework
development stack
Any other Buzz
word like Mono
and Xamarine
What is .NET Core?
What is UWP and
.NET Native?
What to use when
.NET
15 years ago –
The invention
• Released on the eve of valentine’s day in 2002
• .NET Framework = Common Language Runtime
(CLR) + Framework Class Library (FCL)
CLR : Basic
execution
model
.NET
15 years ago
Development
Stacks
.NET : The
Good Parts
Language
Support - C#, VB
.NET
Support for
several
application
models –
WinForms, ASP
.NET
Visual Studio
IDE
Resolution of
many issues of
native world like
memory leaks
.NET : The
Struggling
Parts
Device
Agnostic?
OS
Agnostic?
Different
Devices,
Different
Needs
.NET
framework -
Full
.NET Compact
Framework
.NET MF -
Micro
Framework)
.NET
Framework for
Windows
Phone
.NET for
Silverlight
Fragmentation
of .Net
framework
FRAGMENTATION
Platform
Independent?
Yes/No
MSIL C# code -> MSIL
Common Language Infrastructure (CLI) =>
CLR
MSIL + CLI => Platform independent .NET
framework
ECMA 335 specification
.NET : 13 years back –
Cross platform hurdle
• .NET Mono :Ximian, Inc.
• Supported Platforms: Mac,
Linux, Windows
• Microsoft was never involved
in it.
.NET - 5 years back
• Store apps era : Windows 8
• .NET for Windows 8.x Store
apps = Win RT APIs
• Fragmentation problem
deepens.
• Common Code Sharing -
Portable class libraries
.NET : 2 years back
• Code Defragmentation
• UWP -> Device Agnostic .NET
Framework.
• UWP .NET CORE
• Apps Applications
Convergence for devices : Universal Windows Platform
Cross platform puzzle :
Linux, MacOS, Android
• Various Implementations of CLI
• .NET Framework
• Xamarine Mono (Cross platform)
• Portable .NET
• DotGNU
.NET 1 year back
• Microsoft crosses the cross
platform hurdle
.NET Core
• Cross platform
• Hosted on GitHub : You can also contribute
• Factored NuGet modules for each feature.
• Supported appModdels : ASP .NET Core, EF Core, Console apps
• Deprecated features :
• Remoting
• AppDomain
• Reflection
• Sandboxing using CAS security
• Supports app-local deployment
• Visual Studio Code – Cross platform IDE
Let’s work it in code : Lab
• Run a Hello World program
• No *.exe file in ‘bin’
directory. Why?
XAMARINE
.NET CORE
Code sharing
among various
.NET Stacks :
Introducing .NET
Standard
Portable class libraries – (Old
way)
Future of
.NET
When to use
.NET Core?
• Green field project
• Cross platform
• Side by Side different .NET versions for each
application
• Best performance
• Command line style for Linux developers
• Windows 10 UWP apps
When not to
use .NET
Core?
• Already existing brown field projects live in
production.
• New applications from scratch but are monolithic in
nature
• Need to leverage full .NET framework capabilities
which are not yet migrated to .NET core
• Need to leverage sub-frameworks not supported by
.NET core – Winforms, WPF, Web forms etc.
.NET
Right Now!
Ishan is an employee at 1E Noida Development Center.
Completely revamped documentation site. MSDN is gone.
https://docs.microsoft.com/en-us/
Shared source for .NET Framework is available -
https://referencesource.microsoft.com/
.NET Core 2.0
.NET Standard 2.0
Xamarine Mono will continue to support iOS and Android. More and more
APIs are being replaced with .NET core implementations. Mono had been very
buggy in lot of cases but now it is becoming better.
Q & A
How can you contact me?
rasik210@gmail.com
@rasik210
Thank you. Keep Learning!
“Knowledge is the ONLY antidote to all fears.
Start reading a new book today.”

.NET - The Current Spectrum

  • 1.
    An insightful journeyinto the evolution of a great technology “Knowledge is the ONLY antidote to all fears. Start reading a new book today.” By Rasik Bihari Tiwari .NET – The current spectrum
  • 2.
    Solving any problem using.NET Stack Before you begin!
  • 3.
    What you shouldaccomplish through this session – The evolution Understand .NET framework as a whole What all is available today in MS .NET framework development stack Any other Buzz word like Mono and Xamarine What is .NET Core? What is UWP and .NET Native? What to use when
  • 4.
    .NET 15 years ago– The invention • Released on the eve of valentine’s day in 2002 • .NET Framework = Common Language Runtime (CLR) + Framework Class Library (FCL)
  • 5.
  • 6.
  • 7.
    .NET : The GoodParts Language Support - C#, VB .NET Support for several application models – WinForms, ASP .NET Visual Studio IDE Resolution of many issues of native world like memory leaks
  • 8.
  • 9.
    Different Devices, Different Needs .NET framework - Full .NET Compact Framework .NETMF - Micro Framework) .NET Framework for Windows Phone .NET for Silverlight Fragmentation of .Net framework FRAGMENTATION
  • 10.
    Platform Independent? Yes/No MSIL C# code-> MSIL Common Language Infrastructure (CLI) => CLR MSIL + CLI => Platform independent .NET framework ECMA 335 specification
  • 11.
    .NET : 13years back – Cross platform hurdle • .NET Mono :Ximian, Inc. • Supported Platforms: Mac, Linux, Windows • Microsoft was never involved in it.
  • 12.
    .NET - 5years back • Store apps era : Windows 8 • .NET for Windows 8.x Store apps = Win RT APIs • Fragmentation problem deepens. • Common Code Sharing - Portable class libraries
  • 13.
    .NET : 2years back • Code Defragmentation • UWP -> Device Agnostic .NET Framework. • UWP .NET CORE • Apps Applications Convergence for devices : Universal Windows Platform
  • 14.
    Cross platform puzzle: Linux, MacOS, Android • Various Implementations of CLI • .NET Framework • Xamarine Mono (Cross platform) • Portable .NET • DotGNU
  • 15.
    .NET 1 yearback • Microsoft crosses the cross platform hurdle
  • 16.
    .NET Core • Crossplatform • Hosted on GitHub : You can also contribute • Factored NuGet modules for each feature. • Supported appModdels : ASP .NET Core, EF Core, Console apps • Deprecated features : • Remoting • AppDomain • Reflection • Sandboxing using CAS security • Supports app-local deployment • Visual Studio Code – Cross platform IDE
  • 17.
    Let’s work itin code : Lab • Run a Hello World program • No *.exe file in ‘bin’ directory. Why?
  • 18.
  • 19.
    Code sharing among various .NETStacks : Introducing .NET Standard Portable class libraries – (Old way)
  • 20.
  • 21.
    When to use .NETCore? • Green field project • Cross platform • Side by Side different .NET versions for each application • Best performance • Command line style for Linux developers • Windows 10 UWP apps
  • 22.
    When not to use.NET Core? • Already existing brown field projects live in production. • New applications from scratch but are monolithic in nature • Need to leverage full .NET framework capabilities which are not yet migrated to .NET core • Need to leverage sub-frameworks not supported by .NET core – Winforms, WPF, Web forms etc.
  • 23.
    .NET Right Now! Ishan isan employee at 1E Noida Development Center. Completely revamped documentation site. MSDN is gone. https://docs.microsoft.com/en-us/ Shared source for .NET Framework is available - https://referencesource.microsoft.com/ .NET Core 2.0 .NET Standard 2.0 Xamarine Mono will continue to support iOS and Android. More and more APIs are being replaced with .NET core implementations. Mono had been very buggy in lot of cases but now it is becoming better.
  • 24.
  • 25.
    How can youcontact me? rasik210@gmail.com @rasik210
  • 26.
    Thank you. KeepLearning! “Knowledge is the ONLY antidote to all fears. Start reading a new book today.”

Editor's Notes

  • #3 How to solve any problem given by your manager?
  • #5 Initial story of Anders Hejlsberg joining MS from Borland What is .NET Framework. The basic details. A virtual execution environment (VES) for a program written in C# e.g. JVM is a VES for programs written in Java. CLR = Services like JIT, Type safety, memory management, exception handling etc. out of the box. A virtual host inside the process for your .NET code. Anders Hejlsberg - https://channel9.msdn.com/blogs/thechannel9team/anders-hejlsberg-what-brought-about-the-birth-of-the-clr
  • #7 What is .NET Framework. The basic details. A virtual execution environment (VES) for a program written in C# e.g. JVM is a VES for programs written in Java. CLR = Services like JIT, Type safety, memory management, exception handling etc. out of the box. A virtual host inside the process for your .NET code. .NET CLI??
  • #8 Managed languages under one umbrella VB.NET, C#, F# Solve core issues of native world like dll hell (with versioning), memory leaks (via CLR), versioning etc. in COM and COM+ era. Support for variety of development models like WinForms, ASP .NET, WCF, WPF, SingalR, SilverLight One stop shop IDE Visual Studio for flawless debugging experience
  • #9 Restricted to Microsoft Operating Systems. C# .NET code can’t run on MacOS, Linux etc. Same .NET framework wasn’t common for all kinds of devices How would I run .net framework in an embedded system like traffic signal, ATM machine Raspberry pie Handheld devices like Phone A full fledged computer Disk footprint of full .NET framework is over 300 MB which isn’t affordable by small devices.
  • #10 Types of .NET CLR: Full .NET framework for Desktop (For client and server machines) .NET Compact Framework – Handheld devices, set top boxes .NET MF (Micro Framework) – Embedded systems, Further resource constrained devices (64 KB RAM) .NET framework for Windows Phone .NET for Silverlight ( to run as an plugin in browser) How to solve the needs to devices problem. Full .NET CLR cannot run on all kinds of devices. 400 MB footprint. Effectively .NET framework wasn’t device agnostic at all but was some how able to manage by having different types of CLRs for different devices. Different CLR code base for different device based frameworks. You require different kind of optimizations on different kind of devices. Different devices need different kind of capabilities. You don’t need same features on all sorts of devices.
  • #11 Cross-platform possibilities were kept open : Literally always CLR on Windows is an implementation of CLI. Link for ECMA-335 : https://www.visualstudio.com/license-terms/ecma-c-common-language-infrastructure-standards/ MSIL is platform independent thing. Then all you need is platform specific CLR which will JIT the MSIL and produce native instructions for any specific OS. It was always possible because of MSIL + CLR combo. Microsoft wrote only one CLI implementation known as CLR which was meant only to run on Windows OS. Also all the language and CLR specifications were registered as ECMA specifications (ECMA 335). It is called Common Language Infrastructure - http://www.ecma-international.org/publications/standards/Ecma-335.htm
  • #12 ECMA specifications/standard found a non-Microsoft implementer: Ximian, Inc. What is a specification and an implementation like a Interface IHuman { Breath(); Walk()} Class Male{} Class Female {}
  • #13 Beginning of store apps era : Windows 8 A new namespace Windows.Runtime Code Sharing : Portable class libraries Where to fit in WinRT and windows store Apps : Windows 8 era Explain the world of WinRT and .NET native may be. Further fragmentation to support Win RT APIs : .NET for Windows 8.x Store apps Win RT APIs -> More Fragementation : .NET for Windows 8.x Store apps Common Code Sharing - Portable class libraries
  • #14 Write code and run it from your PC to Phone to TV to IoT device Write Once -> Run Everywhere Universal Windows Platform(UWP) => Windows 10. Critical thing UWP DOES NOT EQUAL TO .NET CORE although it is based on .NET core. .NET framework becomes devices agnostic in true sense with Universal Windows platform (UWP) Universal Windows Platform(UWP) appeared with Windows 10. Store apps run in a different security sandbox due to which they are different from desktop applications.
  • #15 It was all getting mind boggling, open source, cross platform, Cloud. What to do now? Should Xamarine be here or it is mono only? Satya Nadella took over.
  • #16 Initially named DNX - https://www.red-gate.com/simple-talk/dotnet/net-framework/what-is-dnx/ .Net eXecution environment Later on became .NET core CoreFx (FCL/BCL of .NET core) – Core foundational libraries which are cross platform CoreCLR – Trimmed, lightweight, cross-platform version of CLR for .NET Core. - System.Obect is differerent in .net core than system.Object in .NET framework. To remove the dependency on Reflection APIs. - .NET framework is one big monolith. System wide deployement. 400 MB footprint.
  • #17 Major features which have been under the hammer for deprecation as they were heavy weights Open for contribution to all developers across the globe for pull requests.
  • #18 Run a Hello world program and run it from command prompt. No *.exe file. You have to use dotnet command line tools. Ask the question to viewers: Exe is a windows specific implementation. Also known as portable executable (PE) files. Create a hello world application in Ubuntu. And run the output in Windows platform. .NET core. How factoring was done into nuget packages Do I need to talk about Windows RT somewhere, ARM processors
  • #21 Future of .NET has been laid
  • #22 https://stackoverflow.com/questions/38063837/whats-the-difference-between-net-core-net-framework-and-Xamarin https://blogs.msdn.microsoft.com/cesardelatorre/2016/06/27/net-core-1-0-net-framework-xamarin-the-whatand-when-to-use-it/#dotnet-family
  • #23 https://stackoverflow.com/questions/38063837/whats-the-difference-between-net-core-net-framework-and-Xamarin https://blogs.msdn.microsoft.com/cesardelatorre/2016/06/27/net-core-1-0-net-framework-xamarin-the-whatand-when-to-use-it/#dotnet-family
  • #24 .Net core is NOT mono What is Xamarine? Xamarine Mono will continue to support iOS and Android. More and more APIs are being replaced with .Net core implementations. Mono had been very buggy in lot of cases but now it is becoming better. .Net standard 2.0 – Biggest surface area for cross platform usage .Net core 2.0 .Net core EF .Net core ASP NET Also say asp.net 5 was never released it become asp.net core 1.x Also .net 5 was never released. It became .net core 1.x