SlideShare ist ein Scribd-Unternehmen logo
1 von 8
Downloaden Sie, um offline zu lesen
1Future of .NET - .NET on Non-Windows Platforms	 Mphasis
Future of .NET - .NET on Non-Windows Platforms
A PoV by
Aniruddha Chakrabarti
AVP Digital, Mphasis
2Future of .NET - .NET on Non-Windows Platforms	 Mphasis
compatible. Microsoft had released the source code of many
components of .NET including ASP.NET and Entity Frameworks
some years ago, but with .NET 5.0 Microsoft .NET’s team has
completely morphed into an open source community driven culture.
The entire codebase is developed openly on GitHub jointly by
Microsoft developers and the community.
Overview
For over a decade now, .NET has been one of the popular platforms
for building large-scale distributed applications in enterprise and
consumer space. Along with Java/JEE it has dominated enterprise
application development. To this day, it has been one of the most
popular stacks for building web apps (ASP.NET), mobile apps
(Windows Phones, Xamarin), cloud apps (Azure), desktop/smart
client apps (Windows Store apps, WPF, and Windows Forms), and
apps for Xbox, Kinect etc. Over the years, it has changed itself
significantly adding new capabilities and redesigning some of its
existing capabilities.
One of the biggest challenges that .NET has faced for even wider
adoption is its dependency on Windows. When Microsoft planned
.NET in 2000/2001, the world was different – Microsoft purposefully
took a dependency on their popular Windows operating system.
With the upcoming .NET 5.0 (probable release in 2016), Microsoft
has taken a big bet on making .NET open source and cross-platform
.NET 5.0 would have two flavors:
•	 A full-fledged .NET Framework 5.0, which would be running
only on Windows
•	 A slim-lined, relatively small, and optimized version of .NET
called .NET Core 5.0 which would be running on Linux,
OS X, and Windows. .NET Core is a subset of the full .NET
Framework and not all features of the full .NET Framework is
available on .NET Core
.NET Core (Subset)
.NET Framework (Full)
Figure 1 – .NET Framework vs .NET Core in .NET 5.0
One of the biggest challenges that .NET
has faced for even wider adoption is its
dependency on Windows.
Microsoft has changed their strategy significantly over last couple of years towards the Non-Microsoft world. Microsoft
understands and acknowledges the fact that within a large enterprise there would be Non-Microsoft software including
various Linux flavors as Server OS, Mac laptops and desktops, Android and Apple Phones, Java, Python, Node, and other
languages and stacks.
•	 Azure supports many Linux distros including Ubuntu, CentOS, CoreOS, Oracle Linux, SUSE and latest RHEL
•	 Azure supports Non-SQL Server databases including Oracle, MongoDB, Redis
•	 Azure supports running Java, Python, Ruby and Node server side apps. Azure client
libraries are available in Java, Python, Ruby and Node, apart from .NET
•	 Micrsoft Office, for long had a version for Mac. Now Microsoft Office is available for Android and iOS devices as well
The move to create a smaller version of .NET for Non-Windows platforms including Linux and OS X is a major step in
Microsoft’s move towards a polygot world.
3Future of .NET - .NET on Non-Windows Platforms	 Mphasis
WPF Windows
Forms
ASP.NET 4.6 WPF Workflow
Foundation
Silverlight
Collections Reflection Threading
& Tasks
Networking
& Socket
LINQ IO
Security
Crypto-
graphy PLINQ SerializationXML
Regular
Expression
BCL / Libraries (Base Class Libraries)
CLR
(Common
Language
Runtime)
.NET Framework
Full featured and integrated .NET libraries and runtimes Supported platform – Windows only
Common
Runtime
JIT Compiler
GC (Garbage Collector)
Compiler
.NET Compiler Service (“Roslyn”)
Languages (C#, VB, F#)
.NET story – .NET version 4.6 (till circa 2015)
.NET Framework
.NET Framework consists of:
CLR (Common Language Runtime)
CLR or Common Language Runtime is a virtual machine that provides
a run-time environment to run the code, and provides services that
make the development process easier. CLR is similar to JVM or Java
Virtual Machine. Just the way JVM supports multiple languages like
Java, Scala, Clojure, etc. CLR supports multiple languages like C#,
VB, F#, IronPython (Python implementation running on .NET), etc.
BCL (Base Class Library)
BCL or Base Class Library is a runtime library, which provides access
to system functionality including IO, Threading, File Access, Data
Access, Reflection, Serialization, Networking, Security, LINQ, etc.
It is the foundation on which .NET Framework applications,
components, and controls are built. It’s also called as
.NET Framework Class Library or FCL.
Figure 2 – Full-fledged .NET Framework on Windows
.NET story – .NET 5.0 (circa 2015 onward)
Figure 3 – Different Components of .NET Framework vs .NET Core
WPF
Windows
Forms
ASP.NET
4.6
ASP.NET 5.0
Future
Component
Future
Component
DNX(.NETExecution
Environment)
Runtime
JIT Compiler, GC
Next Gen JIT (“RyuJIT”)
Compiler
.NET Compiler Service (“Roslyn”)
Languages (C#, VB, F#)
LLILC Compiler (based on LLVM)
Shared Libraries
NuGet Packages
Common
Core CLR
(Common Language
Runtime)
Core FX / Libraries
(Core Base Class Libraries)
.NET Core (Subset)
Open source, cross platform, modular and optimized subset of
.NET libraries and runtimes
Supported platform – Linux, OS X and Windows
CLR
Runtime)
BCL / Libraries
(Base Class
Libraries)
.NET Framework (Full)
Full featured and integrated .NET libraries
and runtimes
Supported Platform – Windows only
(Common Language
4Future of .NET - .NET on Non-Windows Platforms	 Mphasis
.NET Core
.NET Core is a cross platform implementation of .NET
implemented by Microsoft. .NET Core is a streamlined and
relatively small subset of the larger .NET Framework (that was
available until now only on Windows). .NET Core is modularized
and is available as hundreds of individually deployable NuGet
packages. .NET Core packages could be installed from the NuGet
repository.
Currently .NET Core is primarily driven so that ASP.NET can run
on Linux and OS X apart from Windows. Currently .NET Core
supports ASP.NET 5.0, simple Console apps, and Windows 10
UWP (Universal Windows Platform) apps.
Universal Windows Platform provides a common universal set of
runtime APIs for devices running Windows 10 including Windows
Store App running on PC and tablets, Windows Phone Apps
running on Windows Phone, Xbox Apps, and Surface Apps.
This is possible as different Windows 10 flavors running on these
difference device types share a common core. With this evolution,
apps that target the UWP can call not only the WinRT APIs that are
common to all devices, but also APIs (including Win32 and .NET
APIs) that are specific to the device family the app is running on.
The UWP provides a guaranteed core API layer across devices.
.NET Core Libraries are not installed in GAC
(.NET Framework Libraries are installed in GAC) – instead .NET Core
Libraries are installed in a single subfolder under the ‘Users’ folder
which means that it does not require admin rights. .NET Core install
does not use Windows registry.
There could be multiple versions of DNX or .NET Execution
Environments or .NET versions in a machine.
Currently .NET Core is primarily driven so that
ASP.NET can run on Linux and
OS X apart from Windows.
.NET Core consists of:
Core CLR
Core CLR is a subset of the larger CLR or Common Language
Runtime. It is cross-platform, with multiple OS and CPU ports.
It includes the garbage collector, JIT compiler, base .NET data
types, and many low-level classes.
Core FX
Core FX is a stripped down subset of larger BCL or Base Class
Libraries for .NET Core. It includes classes for collections, file
systems, console, XML, async, and many other components of
BCL. Since Core FX is a slimmed optimized version of full BCL
that could be ported to Linux and OS X, all APIs of BCL are not
present in Core FX.
All of the .NET Core libraries are distributed as NuGet packages.
These NuGet Packages could be installed easily within Visual
Studio or with one of the NuGet clients directly.
Figure 4 – CLR & BCL vs. Core CLR & Core FX in .NET 5.0
Figure 4b – .NET Core Libraries in “Users” folder.
Core CLR
(Common Language Runtime)
Core FX / Libraries
(Core Base Class Libraries)
.NET Core (Subset)
BCL / Libraries
(Base Class Libraries)
CLR
(Common Language Runtime)
.NET Framework (Full)
Figure 4a – .NET Core Libraries in “Users” folder
Next Gen JIT (“RyuJIT”)
RyuJIT is Microsoft’s next gen 64 bit just in time (JIT) compiler
for .NET. According to the performance analysis done by .Net
runtime team, the new next-generation X64 RyuJIT compiler is
twice as fast compared to the older X64 compiler. This means
apps compiled with RyuJIT will deliver up to 30% faster start up.
RyuJIT was released by Microsoft along with .NET 4.6 release
and it forms a core part of .NET 5.0 as well.
5Future of .NET - .NET on Non-Windows Platforms	 Mphasis
.NET Compiler Service (“Roslyn”)
Roslyn is an open source compiler for C# and VB with rich code
analysis APIs. Microsoft developed Roslyn from ground up and
redesigned both C# and VB compilers to use services provided
by Roslyn. Typically, older generation compilers are complete
black boxes, and IDEs or other tools cannot use them as services.
Roslyn exposes its functionality as services, which could be easily
consumed by IDEs and other tools (code analysis tools for example).
LLILC Compiler
LLILC (pronounced as ‘lilac’) is an LLVM based MSIL Compiler
for .NET Core. It includes a set of cross-platform .NET code
generation tools that enables compilation of MSIL byte code to
LLVM supported platforms.
LLVM is a very popular open source compiler platform. LLVM was
originally implemented for C and C++. Later it gained widespread
popularity and used by many language compilers including
Common Lisp, Ada, D, Fortran, Go, Haskell, Java bytecode, Julia,
Objective-C, Swift, Python, R, Ruby, Rust, Scala, and Lua.
LLILC creates a bridge into LLVM for .NET, making LLVM’s broad
chip support and tools available to .NET Core.
ASP.NET 5.0
ASP.NET 5.0 is the cross platform version of ASP.NET that runs
on Windows, Linux, OS X, and any other .NET Core platforms.
It’s the latest version of several ASP.NET technologies, including
ASP.NET MVC and Web API (Web Forms are not supported in
ASP.NET 5.0)
Until 4.6, ASP.NET was supported only on Windows. Microsoft
took the dependency on Windows long back when ASP.NET was
first designed back in 2000-01.
Now with the changed scenario, Microsoft wanted to enable
running ASP.NET on Non-Windows platforms including Linux
distros and OS X with ASP.NET 5, an ASP.NET website/webapp
could be deployed on Linux and OS X servers that would open
up many scenarios.
New .NET 5.0 Command Line Tools
DNVM: DNVM or .NET Version Manager helps in installing and
managing the versions of .NET runtimes or DNX
(.NET Execution Environments) installed on a machine.
DNVM is similar to utilities like NVM (Node Version Manager) and
RVM (Ruby Version Manager) that helps in managing and installing
versions of Node and Ruby respectively.
Figure 5 – DNVM Command Line Utility
DNVM could be used to list all the .NET versions or DNX installed
(use DNVM list command). As shown below, there could be
multiple versions of .NET runtime installed with one of them
being the default.
Figure 6 – DNVM list showing versions of DNX / .NET runtimes installed
To change to a different version –
C:Usersaniruddha.c>dnvm use -r coreclr -arch
x64 1.0.0-rc2-16128
Adding C:Usersaniruddha.c.dnxruntimesdnx-
coreclr-win-x64.1.0.0-rc2-16128bin to process
PATH
.NET Core is a .NET Foundation project.
Microsoft created .NET Foundation in 2014 to
foster open development and collaboration
around the growing collection of open source
projects for .NET – it’s an independent forum
driven by the community and Microsoft.
.NET Foundation owns and drives many other
open source .NET projects apart from
.NET Core including ASP.NET 5, .NET Compiler
Platform (“Roslyn”), Entity Framework, ASP.NET
MVC, Web API, ASP.NET SignalR, WCF, MSBuild
and NuGet. Projects owned by .NET Foundation
are open source and licensed under an open
source license model.
6Future of .NET - .NET on Non-Windows Platforms	 Mphasis
New .NET 5.0 UI Tools
Visual Studio Code
Microsoft created a lightweight cross platform
editor that supports Windows, Linux, and
OS X. On Windows, developers could use the
Visual Studio Community Edition that is the free
version of the Visual Studio IDE. But on Linux
and OS X, developers could use the Visual 		
Studio Code which is free. Apart from Visual
Studio Code, other editors like Sublime, Atom, Bracket or Vim
could be used.
Figure 9 – Visual Studio Code
OmniSharp
OmniSharp is a community driven open
source project created to improve the
development experience of .NET 5.0
especially on Non-Windows platforms
and in third-party editors like Sublime
Text. It’s a set of tools, editor integrations
and libraries for developing in .NET.
OmniSharp works with a number of
lightweight editors including Sublime Text,
Atom, Brackets, Emacs, and Vim. Microsoft’s new Visual Studio
Code editor also uses OmniSharp.
Generator-ASP.NET
Yeoman is a scaffolding platform built on
top of Node.js that allows you to build
template-based generators for projects or
code files. generator-aspnet is a yeoman
generator that allows you to scaffold
ASP.NET 5 applications.
Figure 7 – Changing the default DNX version
To install the latest version of .NET Core use
D:WorkPlaydotNetCore>dnvm upgrade -r coreclr
To install the latest version of full .NET Framework use
D:WorkPlaydotNetCore>dnvm upgrade -r clr
DNVM installed the newly released (November 2015)
.NET 5.0 RC1 and made it the default.
DNX: DNX or .NET Execution Environment software development
kit (SDK) and runtime environment, which contains everything
required to build and run .NET applications for Windows,
Mac, and Linux.
Figure 7a – Changing the default DNX version
DNU: DNU or .NET Development Utilities provides a variety of
utility functions to assist with development in .NET Core and
ASP.NET 5. Most commonly, DNU is used to install and manage
library packages in a .NET Core app. It’s also used to package
and publish a .NET Core application. DNU uses NuGet behind the
scenes for package management and deployment.
New .NET 5.0 Project System
.NET 5.0 and ASP.NET 5.0 introduces a new lightweight project
system. Until .NET 4.6, .NET used MSBuild based project system.
MSBuild uses XML files for defining projects – for example C#
projects uses .csproj files which are XML files that define a project.
Figure 8 – project.json file structure used by .NET Core projects
.NET 5.0 introduces a more agile JSON based project system
– project files are actually JSON files (project.json) that
describes the project, .NET Framework version that it uses, the
dependencies etc. project. json structure is similar to the project
files used by NPM (Node Package Manager), Grunt or Gulp.
The future of .NET lies in successfully running it on
Non-Windows platforms, modularizing it fully and
developing it openly along with the community.
7Future of .NET - .NET on Non-Windows Platforms	 Mphasis
Conclusion
The future of .NET lies in successfully running it on Non-Windows
platforms, modularizing it fully and developing it openly along with
the community. Currently .NET Core only enables ASP.NET 5.0
apps, simple console apps and Windows 10 WUP apps, but we
believe that in the future, Microsoft would enable other workloads.
It would be not be surprising if .NET components like WCF
(Windows Communication Foundation) and WF (Workflow
Foundation) are the next set of things to be ported on to
non-Windows platforms. Being able to run .NET on Non-Windows
platforms would open up many possibilities for Microsoft and
large enterprises who have made significant investment for .NET.
Note: As the time this POV was published, Microsoft announced
that .NET Core 5.0 would be called .NET Core 1.0 and ASP.NET
Core 5.0 would be called ASP.NET Core 1.0. The primary reason
behind this decision is .NET Core and ASP.NET Core is not
backward compatible and introduces many new ideas.
.NET Core is not compatible with .NET 4.6 and hence it’s better to
call it as .NET Core 1.0 so that developers and architects do not
confuse .NET Core with full-fledged .NET 4.6 Framework.
Further Reading
•	 .NET Framework		 https://msdn.microsoft.com/en-us/vstudio/aa496123
•	 CLR		https://msdn.microsoft.com/en-us/library/8bs2ecf4(v=vs.110).aspx
•	 BCL		https://msdn.microsoft.com/en-us/library/gg145045(v=vs.110).aspx
•	 .NET Core		 https://dotnet.github.io/
•	 Core CLR		 https://github.com/dotnet/coreclr
•	 Core FX		 https://github.com/dotnet/corefx
•	 .NET Core Documentation		 http://dotnet.readthedocs.org/en/latest/
•	 .NET 4.6 Release		 http://blogs.msdn.com/b/dotnet/archive/2015/07/20/announcing-net-framework-4-6.aspx
•	 Roslyn		https://github.com/dotnet/roslyn
•	 ASP.NET		http://asp.net/vnext
•	 ASP.NET 5.0 RC (Release Candidate)		 https://get.asp.net/
•	 .NET Foundation		 http://www.dotnetfoundation.org/
•	 .NET Core 1.0 and
ASP.NET Core 1.0 Announcement		 http://www.hanselman.com/blog/ASPNET5IsDeadIntroducingASPNETCore10AndNETCore10.aspx
Copyright ©: Third party product and brand names mentioned in this POV (.NET, Microsoft, OS X, Apple, Linux, Xamarin) belong to their respective owners.
8Future of .NET - .NET on Non-Windows Platforms	 Mphasis
VAS29/02/16USLETTERBASIL3824
For more information, contact: marketinginfo@mphasis.com
USA
460 Park Avenue South
Suite #1101
New York, NY 10016, USA
Tel.: +1 212 686 6655
Fax: +1 212 683 1690
Copyright © Mphasis Corporation. All rights reserved.
UK
88 Wood Street
London EC2V 7RS, UK
Tel.: +44 20 8528 1000
Fax: +44 20 8528 1001
INDIA
Bagmane World Technology Center
Marathahalli Ring Road
DoddanakundhiVillage,Mahadevapura
Bangalore 560 048, India
Tel.: +91 80 3352 5000
Fax: +91 80 6695 9942
About Mphasis
Mphasis is a global Technology Services and Solutions company specializing in the areas of Digital and Governance, Risk & Compliance. Our solution
focus and superior human capital propels our partnership with large enterprise customers in their Digital Transformation journeys and with global
financial institutions in the conception and execution of their Governance, Risk and Compliance Strategies. We focus on next generation technologies for
differentiated solutions delivering optimized operations for clients.
www.mphasis.com
Aniruddha Chakrabarti
Associate Vice President, Digital, Mphasis
Aniruddha has 16+ years of IT experience spread across systems integration,
technology consulting, IT outsourcing and product development.
He has extensive experience of delivery leadership, solution architecture,
presales, technology architecture and program management of large scale
distributed systems.
As AVP, Digital in Mphasis Aniruddha is responsible for Presales, Solutions,
RFP/RFI and Capability Development of Digital Practice. Before as
Sr. Manager & Sr. Principal Architect in Accenture, he led architecture and
large delivery teams. He had played delivery leadership and architecture
focused roles in Microsoft, Target, Misys and Cognizant.
His interests include digital, cloud, mobility, IoT, distributed systems, web,
open source, .NET, Java, programming languages and NoSQL. His industry
experience spans Retail, Healthcare, Capital Markets, Insurance, Travel,
Hospitality, Pharma and Medical Technology.

Weitere ähnliche Inhalte

Was ist angesagt?

Overview of .Net Framework 4.5
Overview of .Net Framework 4.5Overview of .Net Framework 4.5
Overview of .Net Framework 4.5Bhushan Mulmule
 
.NET Framework 4.0 – Changes & Benefits
.NET Framework 4.0 – Changes & Benefits .NET Framework 4.0 – Changes & Benefits
.NET Framework 4.0 – Changes & Benefits Deepika Chaudhary
 
.net CLR
.net CLR.net CLR
.net CLRDevTalk
 
Introduction to .NET Framework
Introduction to .NET FrameworkIntroduction to .NET Framework
Introduction to .NET FrameworkKamlesh Makvana
 
Introduction to .NET
Introduction to .NETIntroduction to .NET
Introduction to .NETSushil Dahal
 
FMXLinux Introduction - Delphi's FireMonkey for Linux
FMXLinux Introduction - Delphi's FireMonkey for LinuxFMXLinux Introduction - Delphi's FireMonkey for Linux
FMXLinux Introduction - Delphi's FireMonkey for LinuxEmbarcadero Technologies
 
2018 20 best id es for python programming
2018 20 best id es for python programming2018 20 best id es for python programming
2018 20 best id es for python programmingSyedBrothersRealEsta
 
A Sneak Peek At Visual Studio 2010 And .Net Framework 4.0
A Sneak Peek At Visual Studio 2010 And .Net Framework 4.0A Sneak Peek At Visual Studio 2010 And .Net Framework 4.0
A Sneak Peek At Visual Studio 2010 And .Net Framework 4.0Antonio Chagoury
 
Inside .net framework
Inside .net frameworkInside .net framework
Inside .net frameworkFaisal Aziz
 
Introduction .NET Framework
Introduction .NET FrameworkIntroduction .NET Framework
Introduction .NET Frameworkjavadib
 
test2PPT
test2PPTtest2PPT
test2PPTAdmin
 
The .NET Platform - A Brief Overview
The .NET Platform - A Brief OverviewThe .NET Platform - A Brief Overview
The .NET Platform - A Brief OverviewCarlos Lopes
 
Dotnet interview qa
Dotnet interview qaDotnet interview qa
Dotnet interview qaabcxyzqaz
 

Was ist angesagt? (20)

Overview of .Net Framework 4.5
Overview of .Net Framework 4.5Overview of .Net Framework 4.5
Overview of .Net Framework 4.5
 
.NET Framework 4.0 – Changes & Benefits
.NET Framework 4.0 – Changes & Benefits .NET Framework 4.0 – Changes & Benefits
.NET Framework 4.0 – Changes & Benefits
 
.net CLR
.net CLR.net CLR
.net CLR
 
Introduction to .NET Framework
Introduction to .NET FrameworkIntroduction to .NET Framework
Introduction to .NET Framework
 
Introduction to .NET
Introduction to .NETIntroduction to .NET
Introduction to .NET
 
Explore asp.net core 3.0 features
Explore asp.net core 3.0 featuresExplore asp.net core 3.0 features
Explore asp.net core 3.0 features
 
FMXLinux Introduction - Delphi's FireMonkey for Linux
FMXLinux Introduction - Delphi's FireMonkey for LinuxFMXLinux Introduction - Delphi's FireMonkey for Linux
FMXLinux Introduction - Delphi's FireMonkey for Linux
 
2018 20 best id es for python programming
2018 20 best id es for python programming2018 20 best id es for python programming
2018 20 best id es for python programming
 
A Sneak Peek At Visual Studio 2010 And .Net Framework 4.0
A Sneak Peek At Visual Studio 2010 And .Net Framework 4.0A Sneak Peek At Visual Studio 2010 And .Net Framework 4.0
A Sneak Peek At Visual Studio 2010 And .Net Framework 4.0
 
Inside .net framework
Inside .net frameworkInside .net framework
Inside .net framework
 
Introduction .NET Framework
Introduction .NET FrameworkIntroduction .NET Framework
Introduction .NET Framework
 
Asp net
Asp netAsp net
Asp net
 
test2PPT
test2PPTtest2PPT
test2PPT
 
Introduction to .NET Framework
Introduction to .NET FrameworkIntroduction to .NET Framework
Introduction to .NET Framework
 
The .NET Platform - A Brief Overview
The .NET Platform - A Brief OverviewThe .NET Platform - A Brief Overview
The .NET Platform - A Brief Overview
 
Programming
Programming Programming
Programming
 
Dotnet interview qa
Dotnet interview qaDotnet interview qa
Dotnet interview qa
 
Net news
Net newsNet news
Net news
 
Net framework
Net frameworkNet framework
Net framework
 
Asp dot net
Asp dot netAsp dot net
Asp dot net
 

Andere mochten auch

Donetconf2016: The Future of C#
Donetconf2016: The Future of C#Donetconf2016: The Future of C#
Donetconf2016: The Future of C#Jacinto Limjap
 
Dot net projects
Dot net projectsDot net projects
Dot net projectsshahu2212
 
2 Sw Dot Net Project T Itles, Ieee 2009, Etc., Year 2009 2010
2   Sw   Dot Net Project T Itles, Ieee 2009, Etc., Year 2009   20102   Sw   Dot Net Project T Itles, Ieee 2009, Etc., Year 2009   2010
2 Sw Dot Net Project T Itles, Ieee 2009, Etc., Year 2009 2010ncct
 
FEDT VB NET- Creating VB .Net Project
FEDT  VB  NET- Creating VB .Net Project FEDT  VB  NET- Creating VB .Net Project
FEDT VB NET- Creating VB .Net Project Trinity Dwarka
 
.Net project titles 2011, Real time projects in .net, Java Final year project...
.Net project titles 2011, Real time projects in .net, Java Final year project....Net project titles 2011, Real time projects in .net, Java Final year project...
.Net project titles 2011, Real time projects in .net, Java Final year project...Suresh Radhakrishnan
 
Software Projects Asp.Net Java Ncct Chenai
Software Projects Asp.Net Java Ncct ChenaiSoftware Projects Asp.Net Java Ncct Chenai
Software Projects Asp.Net Java Ncct Chenaincct
 
Vb.Net Projects, Final Year Projects
Vb.Net Projects, Final Year ProjectsVb.Net Projects, Final Year Projects
Vb.Net Projects, Final Year Projectsncct
 
Python for the C# developer
Python for the C# developerPython for the C# developer
Python for the C# developerMichael Kennedy
 
Microsoft .Net Projects
Microsoft .Net ProjectsMicrosoft .Net Projects
Microsoft .Net ProjectsZealous System
 
BE Final Year CSE, ECE, EEE, IT, IS Projects,Bangalore
BE Final Year CSE, ECE, EEE, IT, IS Projects,BangaloreBE Final Year CSE, ECE, EEE, IT, IS Projects,Bangalore
BE Final Year CSE, ECE, EEE, IT, IS Projects,BangaloreIGEEKS TECHNOLOGIES
 
SEO for international multilingual projects
SEO for international multilingual projectsSEO for international multilingual projects
SEO for international multilingual projectsAni Lopez
 
Latest mca projects
Latest mca projectsLatest mca projects
Latest mca projectsGagnertech
 
C# and the Evolution of a Programming Language
C# and the Evolution of a Programming LanguageC# and the Evolution of a Programming Language
C# and the Evolution of a Programming LanguageJacinto Limjap
 
C# 7.0 Hacks and Features
C# 7.0 Hacks and FeaturesC# 7.0 Hacks and Features
C# 7.0 Hacks and FeaturesAbhishek Sur
 
C# features through examples
C# features through examplesC# features through examples
C# features through examplesZayen Chagra
 
Evolution of c# - by K.Jegan
Evolution of c# - by K.JeganEvolution of c# - by K.Jegan
Evolution of c# - by K.Jegantalenttransform
 
Property dealing , A .net project
Property dealing , A .net projectProperty dealing , A .net project
Property dealing , A .net projectAnjali Kamboj
 
.NET and C# introduction
.NET and C# introduction.NET and C# introduction
.NET and C# introductionPeter Gfader
 
Be project ppt asp.net
Be project ppt asp.netBe project ppt asp.net
Be project ppt asp.netSanket Jagare
 

Andere mochten auch (20)

Donetconf2016: The Future of C#
Donetconf2016: The Future of C#Donetconf2016: The Future of C#
Donetconf2016: The Future of C#
 
Dot net projects
Dot net projectsDot net projects
Dot net projects
 
2 Sw Dot Net Project T Itles, Ieee 2009, Etc., Year 2009 2010
2   Sw   Dot Net Project T Itles, Ieee 2009, Etc., Year 2009   20102   Sw   Dot Net Project T Itles, Ieee 2009, Etc., Year 2009   2010
2 Sw Dot Net Project T Itles, Ieee 2009, Etc., Year 2009 2010
 
FEDT VB NET- Creating VB .Net Project
FEDT  VB  NET- Creating VB .Net Project FEDT  VB  NET- Creating VB .Net Project
FEDT VB NET- Creating VB .Net Project
 
.Net project titles 2011, Real time projects in .net, Java Final year project...
.Net project titles 2011, Real time projects in .net, Java Final year project....Net project titles 2011, Real time projects in .net, Java Final year project...
.Net project titles 2011, Real time projects in .net, Java Final year project...
 
Software Projects Asp.Net Java Ncct Chenai
Software Projects Asp.Net Java Ncct ChenaiSoftware Projects Asp.Net Java Ncct Chenai
Software Projects Asp.Net Java Ncct Chenai
 
Vb.Net Projects, Final Year Projects
Vb.Net Projects, Final Year ProjectsVb.Net Projects, Final Year Projects
Vb.Net Projects, Final Year Projects
 
Python for the C# developer
Python for the C# developerPython for the C# developer
Python for the C# developer
 
Microsoft .Net Projects
Microsoft .Net ProjectsMicrosoft .Net Projects
Microsoft .Net Projects
 
BE Final Year CSE, ECE, EEE, IT, IS Projects,Bangalore
BE Final Year CSE, ECE, EEE, IT, IS Projects,BangaloreBE Final Year CSE, ECE, EEE, IT, IS Projects,Bangalore
BE Final Year CSE, ECE, EEE, IT, IS Projects,Bangalore
 
SEO for international multilingual projects
SEO for international multilingual projectsSEO for international multilingual projects
SEO for international multilingual projects
 
Latest mca projects
Latest mca projectsLatest mca projects
Latest mca projects
 
C# and the Evolution of a Programming Language
C# and the Evolution of a Programming LanguageC# and the Evolution of a Programming Language
C# and the Evolution of a Programming Language
 
C# 7.0 Hacks and Features
C# 7.0 Hacks and FeaturesC# 7.0 Hacks and Features
C# 7.0 Hacks and Features
 
C# features through examples
C# features through examplesC# features through examples
C# features through examples
 
Evolution of c# - by K.Jegan
Evolution of c# - by K.JeganEvolution of c# - by K.Jegan
Evolution of c# - by K.Jegan
 
C# 7
C# 7C# 7
C# 7
 
Property dealing , A .net project
Property dealing , A .net projectProperty dealing , A .net project
Property dealing , A .net project
 
.NET and C# introduction
.NET and C# introduction.NET and C# introduction
.NET and C# introduction
 
Be project ppt asp.net
Be project ppt asp.netBe project ppt asp.net
Be project ppt asp.net
 

Ähnlich wie Future of .NET - .NET on Non Windows Platforms

.Net introduction by Quontra Solutions
.Net introduction by Quontra Solutions.Net introduction by Quontra Solutions
.Net introduction by Quontra SolutionsQUONTRASOLUTIONS
 
Dot net-interview-questions-and-answers part i
Dot net-interview-questions-and-answers part iDot net-interview-questions-and-answers part i
Dot net-interview-questions-and-answers part iRakesh Joshi
 
Dot net-interview-questions-and-answers part i
Dot net-interview-questions-and-answers part iDot net-interview-questions-and-answers part i
Dot net-interview-questions-and-answers part iRakesh Joshi
 
1..Net Framework Architecture-(c#)
1..Net Framework Architecture-(c#)1..Net Framework Architecture-(c#)
1..Net Framework Architecture-(c#)Shoaib Ghachi
 
Net Framework vs .Net Core A Complete Comparison.pdf
Net Framework vs  .Net Core  A Complete Comparison.pdfNet Framework vs  .Net Core  A Complete Comparison.pdf
Net Framework vs .Net Core A Complete Comparison.pdfWPWeb Infotech
 
Unit I- Introduction to .NET Framework.pdf
Unit I- Introduction to .NET Framework.pdfUnit I- Introduction to .NET Framework.pdf
Unit I- Introduction to .NET Framework.pdfUjwala Junghare
 
Pottnet Meetup Essen - ASP.Net Core
Pottnet Meetup Essen - ASP.Net CorePottnet Meetup Essen - ASP.Net Core
Pottnet Meetup Essen - ASP.Net CoreMalte Lantin
 
Pottnet MeetUp Essen - ASP.Net Core
Pottnet MeetUp Essen - ASP.Net CorePottnet MeetUp Essen - ASP.Net Core
Pottnet MeetUp Essen - ASP.Net CoreMalte Lantin
 
Overview of microsoft dot net platforms
Overview of microsoft dot net platformsOverview of microsoft dot net platforms
Overview of microsoft dot net platformsAbhijit B.
 
Net framework
Net frameworkNet framework
Net frameworkjhsri
 
NET app modernization and Microsoft Azure.pptx
NET app modernization and Microsoft Azure.pptxNET app modernization and Microsoft Azure.pptx
NET app modernization and Microsoft Azure.pptxNishitPatel409228
 
Dot net interview_questions
Dot net interview_questionsDot net interview_questions
Dot net interview_questions9292929292
 
O futuro do .NET : O que eu preciso saber
O futuro do .NET : O que eu preciso saberO futuro do .NET : O que eu preciso saber
O futuro do .NET : O que eu preciso saberDanilo Bordini
 
Net framework
Net frameworkNet framework
Net frameworkArun Pal
 

Ähnlich wie Future of .NET - .NET on Non Windows Platforms (20)

.Net introduction by Quontra Solutions
.Net introduction by Quontra Solutions.Net introduction by Quontra Solutions
.Net introduction by Quontra Solutions
 
Introduction to .net
Introduction to .netIntroduction to .net
Introduction to .net
 
Dot net-interview-questions-and-answers part i
Dot net-interview-questions-and-answers part iDot net-interview-questions-and-answers part i
Dot net-interview-questions-and-answers part i
 
Dot net-interview-questions-and-answers part i
Dot net-interview-questions-and-answers part iDot net-interview-questions-and-answers part i
Dot net-interview-questions-and-answers part i
 
1..Net Framework Architecture-(c#)
1..Net Framework Architecture-(c#)1..Net Framework Architecture-(c#)
1..Net Framework Architecture-(c#)
 
Net Framework vs .Net Core A Complete Comparison.pdf
Net Framework vs  .Net Core  A Complete Comparison.pdfNet Framework vs  .Net Core  A Complete Comparison.pdf
Net Framework vs .Net Core A Complete Comparison.pdf
 
c#.pptx
c#.pptxc#.pptx
c#.pptx
 
Chapter1
Chapter1Chapter1
Chapter1
 
Unit I- Introduction to .NET Framework.pdf
Unit I- Introduction to .NET Framework.pdfUnit I- Introduction to .NET Framework.pdf
Unit I- Introduction to .NET Framework.pdf
 
ASP.NET vs ASP.NET Core
ASP.NET vs ASP.NET CoreASP.NET vs ASP.NET Core
ASP.NET vs ASP.NET Core
 
Pottnet Meetup Essen - ASP.Net Core
Pottnet Meetup Essen - ASP.Net CorePottnet Meetup Essen - ASP.Net Core
Pottnet Meetup Essen - ASP.Net Core
 
Pottnet MeetUp Essen - ASP.Net Core
Pottnet MeetUp Essen - ASP.Net CorePottnet MeetUp Essen - ASP.Net Core
Pottnet MeetUp Essen - ASP.Net Core
 
.Net
.Net.Net
.Net
 
Overview of microsoft dot net platforms
Overview of microsoft dot net platformsOverview of microsoft dot net platforms
Overview of microsoft dot net platforms
 
Net framework
Net frameworkNet framework
Net framework
 
NET app modernization and Microsoft Azure.pptx
NET app modernization and Microsoft Azure.pptxNET app modernization and Microsoft Azure.pptx
NET app modernization and Microsoft Azure.pptx
 
Dot net interview_questions
Dot net interview_questionsDot net interview_questions
Dot net interview_questions
 
Synapse india reviews sharing asp.net
Synapse india reviews sharing  asp.netSynapse india reviews sharing  asp.net
Synapse india reviews sharing asp.net
 
O futuro do .NET : O que eu preciso saber
O futuro do .NET : O que eu preciso saberO futuro do .NET : O que eu preciso saber
O futuro do .NET : O que eu preciso saber
 
Net framework
Net frameworkNet framework
Net framework
 

Mehr von Aniruddha Chakrabarti

Thomas Cook and Accenture expand relationship with 10 year technology consult...
Thomas Cook and Accenture expand relationship with 10 year technology consult...Thomas Cook and Accenture expand relationship with 10 year technology consult...
Thomas Cook and Accenture expand relationship with 10 year technology consult...Aniruddha Chakrabarti
 
NLP using JavaScript Natural Library
NLP using JavaScript Natural LibraryNLP using JavaScript Natural Library
NLP using JavaScript Natural LibraryAniruddha Chakrabarti
 
Golang - Overview of Go (golang) Language
Golang - Overview of Go (golang) LanguageGolang - Overview of Go (golang) Language
Golang - Overview of Go (golang) LanguageAniruddha Chakrabarti
 
Amazon alexa - building custom skills
Amazon alexa - building custom skillsAmazon alexa - building custom skills
Amazon alexa - building custom skillsAniruddha Chakrabarti
 
Using Node-RED for building IoT workflows
Using Node-RED for building IoT workflowsUsing Node-RED for building IoT workflows
Using Node-RED for building IoT workflowsAniruddha Chakrabarti
 
Mphasis Digital - Use Go (gloang) for system programming, distributed systems...
Mphasis Digital - Use Go (gloang) for system programming, distributed systems...Mphasis Digital - Use Go (gloang) for system programming, distributed systems...
Mphasis Digital - Use Go (gloang) for system programming, distributed systems...Aniruddha Chakrabarti
 
Using Swift for all Apple platforms (iOS, watchOS, tvOS and OS X)
Using Swift for all Apple platforms (iOS, watchOS, tvOS and OS X)Using Swift for all Apple platforms (iOS, watchOS, tvOS and OS X)
Using Swift for all Apple platforms (iOS, watchOS, tvOS and OS X)Aniruddha Chakrabarti
 
Mphasis Digital POV - Emerging Open Standard Protocol stack for IoT
Mphasis Digital POV - Emerging Open Standard Protocol stack for IoTMphasis Digital POV - Emerging Open Standard Protocol stack for IoT
Mphasis Digital POV - Emerging Open Standard Protocol stack for IoTAniruddha Chakrabarti
 

Mehr von Aniruddha Chakrabarti (20)

Pinecone Vector Database.pdf
Pinecone Vector Database.pdfPinecone Vector Database.pdf
Pinecone Vector Database.pdf
 
Mphasis-Annual-Report-2018.pdf
Mphasis-Annual-Report-2018.pdfMphasis-Annual-Report-2018.pdf
Mphasis-Annual-Report-2018.pdf
 
Thomas Cook and Accenture expand relationship with 10 year technology consult...
Thomas Cook and Accenture expand relationship with 10 year technology consult...Thomas Cook and Accenture expand relationship with 10 year technology consult...
Thomas Cook and Accenture expand relationship with 10 year technology consult...
 
NLP using JavaScript Natural Library
NLP using JavaScript Natural LibraryNLP using JavaScript Natural Library
NLP using JavaScript Natural Library
 
Dart programming language
Dart programming languageDart programming language
Dart programming language
 
Third era of computing
Third era of computingThird era of computing
Third era of computing
 
Golang - Overview of Go (golang) Language
Golang - Overview of Go (golang) LanguageGolang - Overview of Go (golang) Language
Golang - Overview of Go (golang) Language
 
Amazon alexa - building custom skills
Amazon alexa - building custom skillsAmazon alexa - building custom skills
Amazon alexa - building custom skills
 
Using Node-RED for building IoT workflows
Using Node-RED for building IoT workflowsUsing Node-RED for building IoT workflows
Using Node-RED for building IoT workflows
 
Mphasis Digital - Use Go (gloang) for system programming, distributed systems...
Mphasis Digital - Use Go (gloang) for system programming, distributed systems...Mphasis Digital - Use Go (gloang) for system programming, distributed systems...
Mphasis Digital - Use Go (gloang) for system programming, distributed systems...
 
Using Swift for all Apple platforms (iOS, watchOS, tvOS and OS X)
Using Swift for all Apple platforms (iOS, watchOS, tvOS and OS X)Using Swift for all Apple platforms (iOS, watchOS, tvOS and OS X)
Using Swift for all Apple platforms (iOS, watchOS, tvOS and OS X)
 
CoAP - Web Protocol for IoT
CoAP - Web Protocol for IoTCoAP - Web Protocol for IoT
CoAP - Web Protocol for IoT
 
Groovy Programming Language
Groovy Programming LanguageGroovy Programming Language
Groovy Programming Language
 
Mphasis Digital POV - Emerging Open Standard Protocol stack for IoT
Mphasis Digital POV - Emerging Open Standard Protocol stack for IoTMphasis Digital POV - Emerging Open Standard Protocol stack for IoT
Mphasis Digital POV - Emerging Open Standard Protocol stack for IoT
 
Level DB - Quick Cheat Sheet
Level DB - Quick Cheat SheetLevel DB - Quick Cheat Sheet
Level DB - Quick Cheat Sheet
 
Lisp
LispLisp
Lisp
 
Overview of CoffeeScript
Overview of CoffeeScriptOverview of CoffeeScript
Overview of CoffeeScript
 
memcached Distributed Cache
memcached Distributed Cachememcached Distributed Cache
memcached Distributed Cache
 
Redis and it's data types
Redis and it's data typesRedis and it's data types
Redis and it's data types
 
pebble - Building apps on pebble
pebble - Building apps on pebblepebble - Building apps on pebble
pebble - Building apps on pebble
 

Kürzlich hochgeladen

Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...software pro Development
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfryanfarris8
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...kalichargn70th171
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024Mind IT Systems
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 

Kürzlich hochgeladen (20)

Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 

Future of .NET - .NET on Non Windows Platforms

  • 1. 1Future of .NET - .NET on Non-Windows Platforms Mphasis Future of .NET - .NET on Non-Windows Platforms A PoV by Aniruddha Chakrabarti AVP Digital, Mphasis
  • 2. 2Future of .NET - .NET on Non-Windows Platforms Mphasis compatible. Microsoft had released the source code of many components of .NET including ASP.NET and Entity Frameworks some years ago, but with .NET 5.0 Microsoft .NET’s team has completely morphed into an open source community driven culture. The entire codebase is developed openly on GitHub jointly by Microsoft developers and the community. Overview For over a decade now, .NET has been one of the popular platforms for building large-scale distributed applications in enterprise and consumer space. Along with Java/JEE it has dominated enterprise application development. To this day, it has been one of the most popular stacks for building web apps (ASP.NET), mobile apps (Windows Phones, Xamarin), cloud apps (Azure), desktop/smart client apps (Windows Store apps, WPF, and Windows Forms), and apps for Xbox, Kinect etc. Over the years, it has changed itself significantly adding new capabilities and redesigning some of its existing capabilities. One of the biggest challenges that .NET has faced for even wider adoption is its dependency on Windows. When Microsoft planned .NET in 2000/2001, the world was different – Microsoft purposefully took a dependency on their popular Windows operating system. With the upcoming .NET 5.0 (probable release in 2016), Microsoft has taken a big bet on making .NET open source and cross-platform .NET 5.0 would have two flavors: • A full-fledged .NET Framework 5.0, which would be running only on Windows • A slim-lined, relatively small, and optimized version of .NET called .NET Core 5.0 which would be running on Linux, OS X, and Windows. .NET Core is a subset of the full .NET Framework and not all features of the full .NET Framework is available on .NET Core .NET Core (Subset) .NET Framework (Full) Figure 1 – .NET Framework vs .NET Core in .NET 5.0 One of the biggest challenges that .NET has faced for even wider adoption is its dependency on Windows. Microsoft has changed their strategy significantly over last couple of years towards the Non-Microsoft world. Microsoft understands and acknowledges the fact that within a large enterprise there would be Non-Microsoft software including various Linux flavors as Server OS, Mac laptops and desktops, Android and Apple Phones, Java, Python, Node, and other languages and stacks. • Azure supports many Linux distros including Ubuntu, CentOS, CoreOS, Oracle Linux, SUSE and latest RHEL • Azure supports Non-SQL Server databases including Oracle, MongoDB, Redis • Azure supports running Java, Python, Ruby and Node server side apps. Azure client libraries are available in Java, Python, Ruby and Node, apart from .NET • Micrsoft Office, for long had a version for Mac. Now Microsoft Office is available for Android and iOS devices as well The move to create a smaller version of .NET for Non-Windows platforms including Linux and OS X is a major step in Microsoft’s move towards a polygot world.
  • 3. 3Future of .NET - .NET on Non-Windows Platforms Mphasis WPF Windows Forms ASP.NET 4.6 WPF Workflow Foundation Silverlight Collections Reflection Threading & Tasks Networking & Socket LINQ IO Security Crypto- graphy PLINQ SerializationXML Regular Expression BCL / Libraries (Base Class Libraries) CLR (Common Language Runtime) .NET Framework Full featured and integrated .NET libraries and runtimes Supported platform – Windows only Common Runtime JIT Compiler GC (Garbage Collector) Compiler .NET Compiler Service (“Roslyn”) Languages (C#, VB, F#) .NET story – .NET version 4.6 (till circa 2015) .NET Framework .NET Framework consists of: CLR (Common Language Runtime) CLR or Common Language Runtime is a virtual machine that provides a run-time environment to run the code, and provides services that make the development process easier. CLR is similar to JVM or Java Virtual Machine. Just the way JVM supports multiple languages like Java, Scala, Clojure, etc. CLR supports multiple languages like C#, VB, F#, IronPython (Python implementation running on .NET), etc. BCL (Base Class Library) BCL or Base Class Library is a runtime library, which provides access to system functionality including IO, Threading, File Access, Data Access, Reflection, Serialization, Networking, Security, LINQ, etc. It is the foundation on which .NET Framework applications, components, and controls are built. It’s also called as .NET Framework Class Library or FCL. Figure 2 – Full-fledged .NET Framework on Windows .NET story – .NET 5.0 (circa 2015 onward) Figure 3 – Different Components of .NET Framework vs .NET Core WPF Windows Forms ASP.NET 4.6 ASP.NET 5.0 Future Component Future Component DNX(.NETExecution Environment) Runtime JIT Compiler, GC Next Gen JIT (“RyuJIT”) Compiler .NET Compiler Service (“Roslyn”) Languages (C#, VB, F#) LLILC Compiler (based on LLVM) Shared Libraries NuGet Packages Common Core CLR (Common Language Runtime) Core FX / Libraries (Core Base Class Libraries) .NET Core (Subset) Open source, cross platform, modular and optimized subset of .NET libraries and runtimes Supported platform – Linux, OS X and Windows CLR Runtime) BCL / Libraries (Base Class Libraries) .NET Framework (Full) Full featured and integrated .NET libraries and runtimes Supported Platform – Windows only (Common Language
  • 4. 4Future of .NET - .NET on Non-Windows Platforms Mphasis .NET Core .NET Core is a cross platform implementation of .NET implemented by Microsoft. .NET Core is a streamlined and relatively small subset of the larger .NET Framework (that was available until now only on Windows). .NET Core is modularized and is available as hundreds of individually deployable NuGet packages. .NET Core packages could be installed from the NuGet repository. Currently .NET Core is primarily driven so that ASP.NET can run on Linux and OS X apart from Windows. Currently .NET Core supports ASP.NET 5.0, simple Console apps, and Windows 10 UWP (Universal Windows Platform) apps. Universal Windows Platform provides a common universal set of runtime APIs for devices running Windows 10 including Windows Store App running on PC and tablets, Windows Phone Apps running on Windows Phone, Xbox Apps, and Surface Apps. This is possible as different Windows 10 flavors running on these difference device types share a common core. With this evolution, apps that target the UWP can call not only the WinRT APIs that are common to all devices, but also APIs (including Win32 and .NET APIs) that are specific to the device family the app is running on. The UWP provides a guaranteed core API layer across devices. .NET Core Libraries are not installed in GAC (.NET Framework Libraries are installed in GAC) – instead .NET Core Libraries are installed in a single subfolder under the ‘Users’ folder which means that it does not require admin rights. .NET Core install does not use Windows registry. There could be multiple versions of DNX or .NET Execution Environments or .NET versions in a machine. Currently .NET Core is primarily driven so that ASP.NET can run on Linux and OS X apart from Windows. .NET Core consists of: Core CLR Core CLR is a subset of the larger CLR or Common Language Runtime. It is cross-platform, with multiple OS and CPU ports. It includes the garbage collector, JIT compiler, base .NET data types, and many low-level classes. Core FX Core FX is a stripped down subset of larger BCL or Base Class Libraries for .NET Core. It includes classes for collections, file systems, console, XML, async, and many other components of BCL. Since Core FX is a slimmed optimized version of full BCL that could be ported to Linux and OS X, all APIs of BCL are not present in Core FX. All of the .NET Core libraries are distributed as NuGet packages. These NuGet Packages could be installed easily within Visual Studio or with one of the NuGet clients directly. Figure 4 – CLR & BCL vs. Core CLR & Core FX in .NET 5.0 Figure 4b – .NET Core Libraries in “Users” folder. Core CLR (Common Language Runtime) Core FX / Libraries (Core Base Class Libraries) .NET Core (Subset) BCL / Libraries (Base Class Libraries) CLR (Common Language Runtime) .NET Framework (Full) Figure 4a – .NET Core Libraries in “Users” folder Next Gen JIT (“RyuJIT”) RyuJIT is Microsoft’s next gen 64 bit just in time (JIT) compiler for .NET. According to the performance analysis done by .Net runtime team, the new next-generation X64 RyuJIT compiler is twice as fast compared to the older X64 compiler. This means apps compiled with RyuJIT will deliver up to 30% faster start up. RyuJIT was released by Microsoft along with .NET 4.6 release and it forms a core part of .NET 5.0 as well.
  • 5. 5Future of .NET - .NET on Non-Windows Platforms Mphasis .NET Compiler Service (“Roslyn”) Roslyn is an open source compiler for C# and VB with rich code analysis APIs. Microsoft developed Roslyn from ground up and redesigned both C# and VB compilers to use services provided by Roslyn. Typically, older generation compilers are complete black boxes, and IDEs or other tools cannot use them as services. Roslyn exposes its functionality as services, which could be easily consumed by IDEs and other tools (code analysis tools for example). LLILC Compiler LLILC (pronounced as ‘lilac’) is an LLVM based MSIL Compiler for .NET Core. It includes a set of cross-platform .NET code generation tools that enables compilation of MSIL byte code to LLVM supported platforms. LLVM is a very popular open source compiler platform. LLVM was originally implemented for C and C++. Later it gained widespread popularity and used by many language compilers including Common Lisp, Ada, D, Fortran, Go, Haskell, Java bytecode, Julia, Objective-C, Swift, Python, R, Ruby, Rust, Scala, and Lua. LLILC creates a bridge into LLVM for .NET, making LLVM’s broad chip support and tools available to .NET Core. ASP.NET 5.0 ASP.NET 5.0 is the cross platform version of ASP.NET that runs on Windows, Linux, OS X, and any other .NET Core platforms. It’s the latest version of several ASP.NET technologies, including ASP.NET MVC and Web API (Web Forms are not supported in ASP.NET 5.0) Until 4.6, ASP.NET was supported only on Windows. Microsoft took the dependency on Windows long back when ASP.NET was first designed back in 2000-01. Now with the changed scenario, Microsoft wanted to enable running ASP.NET on Non-Windows platforms including Linux distros and OS X with ASP.NET 5, an ASP.NET website/webapp could be deployed on Linux and OS X servers that would open up many scenarios. New .NET 5.0 Command Line Tools DNVM: DNVM or .NET Version Manager helps in installing and managing the versions of .NET runtimes or DNX (.NET Execution Environments) installed on a machine. DNVM is similar to utilities like NVM (Node Version Manager) and RVM (Ruby Version Manager) that helps in managing and installing versions of Node and Ruby respectively. Figure 5 – DNVM Command Line Utility DNVM could be used to list all the .NET versions or DNX installed (use DNVM list command). As shown below, there could be multiple versions of .NET runtime installed with one of them being the default. Figure 6 – DNVM list showing versions of DNX / .NET runtimes installed To change to a different version – C:Usersaniruddha.c>dnvm use -r coreclr -arch x64 1.0.0-rc2-16128 Adding C:Usersaniruddha.c.dnxruntimesdnx- coreclr-win-x64.1.0.0-rc2-16128bin to process PATH .NET Core is a .NET Foundation project. Microsoft created .NET Foundation in 2014 to foster open development and collaboration around the growing collection of open source projects for .NET – it’s an independent forum driven by the community and Microsoft. .NET Foundation owns and drives many other open source .NET projects apart from .NET Core including ASP.NET 5, .NET Compiler Platform (“Roslyn”), Entity Framework, ASP.NET MVC, Web API, ASP.NET SignalR, WCF, MSBuild and NuGet. Projects owned by .NET Foundation are open source and licensed under an open source license model.
  • 6. 6Future of .NET - .NET on Non-Windows Platforms Mphasis New .NET 5.0 UI Tools Visual Studio Code Microsoft created a lightweight cross platform editor that supports Windows, Linux, and OS X. On Windows, developers could use the Visual Studio Community Edition that is the free version of the Visual Studio IDE. But on Linux and OS X, developers could use the Visual Studio Code which is free. Apart from Visual Studio Code, other editors like Sublime, Atom, Bracket or Vim could be used. Figure 9 – Visual Studio Code OmniSharp OmniSharp is a community driven open source project created to improve the development experience of .NET 5.0 especially on Non-Windows platforms and in third-party editors like Sublime Text. It’s a set of tools, editor integrations and libraries for developing in .NET. OmniSharp works with a number of lightweight editors including Sublime Text, Atom, Brackets, Emacs, and Vim. Microsoft’s new Visual Studio Code editor also uses OmniSharp. Generator-ASP.NET Yeoman is a scaffolding platform built on top of Node.js that allows you to build template-based generators for projects or code files. generator-aspnet is a yeoman generator that allows you to scaffold ASP.NET 5 applications. Figure 7 – Changing the default DNX version To install the latest version of .NET Core use D:WorkPlaydotNetCore>dnvm upgrade -r coreclr To install the latest version of full .NET Framework use D:WorkPlaydotNetCore>dnvm upgrade -r clr DNVM installed the newly released (November 2015) .NET 5.0 RC1 and made it the default. DNX: DNX or .NET Execution Environment software development kit (SDK) and runtime environment, which contains everything required to build and run .NET applications for Windows, Mac, and Linux. Figure 7a – Changing the default DNX version DNU: DNU or .NET Development Utilities provides a variety of utility functions to assist with development in .NET Core and ASP.NET 5. Most commonly, DNU is used to install and manage library packages in a .NET Core app. It’s also used to package and publish a .NET Core application. DNU uses NuGet behind the scenes for package management and deployment. New .NET 5.0 Project System .NET 5.0 and ASP.NET 5.0 introduces a new lightweight project system. Until .NET 4.6, .NET used MSBuild based project system. MSBuild uses XML files for defining projects – for example C# projects uses .csproj files which are XML files that define a project. Figure 8 – project.json file structure used by .NET Core projects .NET 5.0 introduces a more agile JSON based project system – project files are actually JSON files (project.json) that describes the project, .NET Framework version that it uses, the dependencies etc. project. json structure is similar to the project files used by NPM (Node Package Manager), Grunt or Gulp. The future of .NET lies in successfully running it on Non-Windows platforms, modularizing it fully and developing it openly along with the community.
  • 7. 7Future of .NET - .NET on Non-Windows Platforms Mphasis Conclusion The future of .NET lies in successfully running it on Non-Windows platforms, modularizing it fully and developing it openly along with the community. Currently .NET Core only enables ASP.NET 5.0 apps, simple console apps and Windows 10 WUP apps, but we believe that in the future, Microsoft would enable other workloads. It would be not be surprising if .NET components like WCF (Windows Communication Foundation) and WF (Workflow Foundation) are the next set of things to be ported on to non-Windows platforms. Being able to run .NET on Non-Windows platforms would open up many possibilities for Microsoft and large enterprises who have made significant investment for .NET. Note: As the time this POV was published, Microsoft announced that .NET Core 5.0 would be called .NET Core 1.0 and ASP.NET Core 5.0 would be called ASP.NET Core 1.0. The primary reason behind this decision is .NET Core and ASP.NET Core is not backward compatible and introduces many new ideas. .NET Core is not compatible with .NET 4.6 and hence it’s better to call it as .NET Core 1.0 so that developers and architects do not confuse .NET Core with full-fledged .NET 4.6 Framework. Further Reading • .NET Framework https://msdn.microsoft.com/en-us/vstudio/aa496123 • CLR https://msdn.microsoft.com/en-us/library/8bs2ecf4(v=vs.110).aspx • BCL https://msdn.microsoft.com/en-us/library/gg145045(v=vs.110).aspx • .NET Core https://dotnet.github.io/ • Core CLR https://github.com/dotnet/coreclr • Core FX https://github.com/dotnet/corefx • .NET Core Documentation http://dotnet.readthedocs.org/en/latest/ • .NET 4.6 Release http://blogs.msdn.com/b/dotnet/archive/2015/07/20/announcing-net-framework-4-6.aspx • Roslyn https://github.com/dotnet/roslyn • ASP.NET http://asp.net/vnext • ASP.NET 5.0 RC (Release Candidate) https://get.asp.net/ • .NET Foundation http://www.dotnetfoundation.org/ • .NET Core 1.0 and ASP.NET Core 1.0 Announcement http://www.hanselman.com/blog/ASPNET5IsDeadIntroducingASPNETCore10AndNETCore10.aspx Copyright ©: Third party product and brand names mentioned in this POV (.NET, Microsoft, OS X, Apple, Linux, Xamarin) belong to their respective owners.
  • 8. 8Future of .NET - .NET on Non-Windows Platforms Mphasis VAS29/02/16USLETTERBASIL3824 For more information, contact: marketinginfo@mphasis.com USA 460 Park Avenue South Suite #1101 New York, NY 10016, USA Tel.: +1 212 686 6655 Fax: +1 212 683 1690 Copyright © Mphasis Corporation. All rights reserved. UK 88 Wood Street London EC2V 7RS, UK Tel.: +44 20 8528 1000 Fax: +44 20 8528 1001 INDIA Bagmane World Technology Center Marathahalli Ring Road DoddanakundhiVillage,Mahadevapura Bangalore 560 048, India Tel.: +91 80 3352 5000 Fax: +91 80 6695 9942 About Mphasis Mphasis is a global Technology Services and Solutions company specializing in the areas of Digital and Governance, Risk & Compliance. Our solution focus and superior human capital propels our partnership with large enterprise customers in their Digital Transformation journeys and with global financial institutions in the conception and execution of their Governance, Risk and Compliance Strategies. We focus on next generation technologies for differentiated solutions delivering optimized operations for clients. www.mphasis.com Aniruddha Chakrabarti Associate Vice President, Digital, Mphasis Aniruddha has 16+ years of IT experience spread across systems integration, technology consulting, IT outsourcing and product development. He has extensive experience of delivery leadership, solution architecture, presales, technology architecture and program management of large scale distributed systems. As AVP, Digital in Mphasis Aniruddha is responsible for Presales, Solutions, RFP/RFI and Capability Development of Digital Practice. Before as Sr. Manager & Sr. Principal Architect in Accenture, he led architecture and large delivery teams. He had played delivery leadership and architecture focused roles in Microsoft, Target, Misys and Cognizant. His interests include digital, cloud, mobility, IoT, distributed systems, web, open source, .NET, Java, programming languages and NoSQL. His industry experience spans Retail, Healthcare, Capital Markets, Insurance, Travel, Hospitality, Pharma and Medical Technology.