.Net Core

Bohdan Pashkovskyi
Bohdan Pashkovskyi.NET Software engineer em CoreValue
.NET Core
(revolution of .NET)
2016
Bohdan Pashkovskyi
Motivation Behind .NET Core
When .NET first shipped in 2002, it was a
single framework, but it didn’t take long
before the .NET Compact Framework
shipped, providing a smaller version of .NET
designed for mobile devices. Over the years,
this exercise was repeated multiple times, so
that today there are different flavors of .NET
specific to different platforms.
Add to this the further platform reach
provided by Mono and Xamarin, which target
Linux, Mac, and native iOS and Android
devices. For each platform, a separate
vertical stack consisting of runtime,
framework, and app model is required to
develop .NET applications.
What is .NET Core
a small, optimized
runtime
CoreCLR
a set of libraries
CoreFX
.NET Core 5 is a modular runtime and
library implementation that includes a
subset of the .NET Framework. Currently
it is feature complete on Windows, and
in-progress builds exist for both Linux
and OS X.
.NET Core features
.NET Core is a set of runtime,
library and compiler
components. Microsoft uses
these components in various
configurations for device and
cloud workloads. You can do the
same for your app or service.
Modular
Managed runtimes make code
easy to write and guarantee
safe execution. .NET Core
manages memory with a
garbage collector, compiles your
code with a JIT compiler or
ahead of time with .NET Native.
.
Managed
You can create .NET Core apps
that run on multiple OSes and
CPUs. .NET Core runs on
Windows. Ports are in progress
for Linux, OS X and FreeBSD, as
is integration with the LLVM
compiler.
Cross-platform
.NET Core features
.NET Core brings with it a set of
languages, led by C#, with VB
and F# with support for modern
language features, like generics,
Language Integrated Query
(LINQ), async support and
more.
Modern
The managed runtime of .NET
Core allows for a streamlined
and easy interoperability with
native code through several
ways. Each of them allows for a
rich set of scenarios not to
mention great performance..
Interoperable
Runtime modularity allows for
an extensibility model through a
good set of abstractions for
adding new components to the
actual runtime and its class
library, but also through its
package manager NuGet.
Extensible
.NET Core features
.NET Core is versatile in multiple
scenarios, from client
applications, across web, server
workloads to mobile apps. With
its "pay as you go" model, .NET
Core can be adapted easily to
perform great and provide a rich
experience developing for each
of these.
Adaptable
NET Core is portable across
various platforms, both in terms
of operating systems and
processor architectures. Code
written for it is also portable
across application stacks, such
as Mono, making it feasible to
move applications across app
stacks as well..
Portable
.NET Core is backed by an open
ECMA standard that outlines all
of its capabilities which can be
used to make a new reference
implementation. A lot of
projects did exactly this, and
there are various
implementation out there.
Open
DNX Overview
The .NET Execution Environment (DNX) is a software development kit (SDK) and runtime
environment that has everything you need to build and run .NET applications for Windows, Mac
and Linux. It provides a host process, CLR hosting logic and managed entry point discovery. DNX
was built for running cross-platform ASP.NET Web applications, but it can run other types of .NET
applications, too, such as cross-platform console apps.
Open source friendly
Why build DNX? Package managers have
completely changed the face of
modern software development
and DNX makes it easy to
create and consume packages.
DNX provides tools for
installing, creating and
managing NuGet packages.
DNX projects simplify building
NuGet packages by cross-
compiling for multiple target
frameworks and can output
NuGet packages directly. You
can reference NuGet packages
directly from your projects and
transitive dependencies are
handled for you. You can also
build and install development
tools as packages for your
project and globally on a
machine.
Build for .NET Core
DNX dramatically simplifies the work needed to
develop cross-platform applications using .NET
Core. It takes care of hosting the CLR, handling
dependencies and bootstrapping your application.
You can easily define projects and solutions using
a lightweight JSON format (project.json), build
your projects and publish them for distribution.
DNX makes it easy to work with open source
projects. With DNX projects you can easily
replace an existing dependency with its
source code and let DNX compile it in-
memory at runtime. You can then debug the
source and modify it without having to
modify the rest of your application.
What is ASP.NET 5?
ASP.NET 5 is a new open-source and cross-platform framework for building modern cloud-based
Web applications using .NET. We built it from the ground up to provide an optimized development
framework for apps that are either deployed to the cloud or run on-premises. It consists of
modular components with minimal overhead, so you retain flexibility while constructing your
solutions. You can develop and run your ASP.NET 5 applications cross-platform on Windows, Mac
and Linux. ASP.NET 5 is fully open source on GitHub.
In summary, with ASP.NET 5 you gain the following
foundational improvements:
New light-weight and modular HTTP request pipeline
Ability to host on IIS or self-host in your own process
Built on .NET Core, which supports true side-by-side app versioning
Ships entirely as NuGet packages
Integrated support for creating and using NuGet packages
Single aligned web stack for Web UI and Web APIs
Built-in support for dependency injection
New tooling that simplifies modern web development
Build and run cross-platform ASP.NET apps on Windows, Mac and Linux
Open source and community focused
Cloud-ready environment-based configuration
ASP.NET Project
Structure
ASP.NET 5’s project structure adds
new concepts and replaces some
legacy elements found in previous
versions of ASP.NET projects. The
new default web project template
creates a solution and project
structure like the one shown here:
The project.json
File
The project.json file is new to
ASP.NET 5. It is used to define the
project’s server side dependencies
(discussed below), as well as
other project-specific information.
The top-level default sections
included in project.json of the
default web project template are
highlighted below:
{
"userSecretsId": "aspnet5-WebApplication1-8479b9ce-7b8f-4402-
9616-0843bc642f09",
"version": "1.0.0-*",
"compilationOptions": { "emitEntryPoint": true
},
"dependencies": {
"EntityFramework.Commands": "7.0.0-rc1-final",
...
},
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel",
"ef": "EntityFramework.Commands"
},
"frameworks": {
"dnx451": { },
"dnxcore50": { }
},
"exclude": [ "wwwroot", "node_modules" ],
"publishExclude": [ "**.user", "**.vspscc" ],
"scripts": {
"prepublish": [ "npm install", "bower install", "gulp
clean", "gulp min" ]
}
}
The global.json
File
The global.json file is used to
configure the solution as a whole.
It includes just two sections,
projects and sdk by default.
{
"projects": [ "src", "test" ],
"sdk": {
"version": "1.0.0-rc1-final"
}
}
The wwwroot
Folder
In previous versions of ASP.NET, the root of the
project was typically the root of the web app. If
you placed a Default.aspx file in the project root of
an early version of ASP.NET, it would load if a
request was made to the web application’s root. In
later versions of ASP.NET, support for routing was
added, making it possible to decouple the locations
of files from their corresponding URLs (thus,
HomeController in the Controllers folder is able to
serve requests made to the root of the site, using a
default route implementation). However, this
routing was used only for ASP.NET-specific
application logic, not static files needed by the
client to properly render the resulting page.
Resources like images, script files, and stylesheets
were generally still loaded based on their location
within the file structure of the application, based off
of the root of the project.
Client Side Dependency
Management
The Dependencies folder contains two subfolders:
Bower and NPM. These folders correspond to two
package managers by the same names, and
they’re used to pull in client-side dependencies and
tools (e.g. jQuery, Bootstrap, or Gulp). Expanding
the folders reveals which dependencies are
currently managed by each tool, and the current
version being used by the project.
Server Side Dependency
Management
The References folder, shown within Solution
Explorer in Visual Studio, details the server-side
references for the project. It should be familiar to
ASP.NET developers, but it has been modified to
differentiate between references for different
framework targets, such as the full DNX 4.5.1 vs.
DNX Core 5.0. Within each framework target, you
will find individual references, with icons indicating
whether the reference is to an assembly, a NuGet
package, or a project.
Application Startup
The ConfigureServices method is used to specify
which services are available to the app. The default
template uses helper methods to add a variety of
services used for EF, Identity, and MVC. This is also
where you can add your own services, as we did
above to expose the configuration as a service. The
complete ConfigureServices method, including the
call to add Configuration as a service, is shown
here:
Summary
ASP.NET 5 introduces a few concepts that didn’t exist in
previous versions of ASP.NET. Rather than working with
web.config, packages.config, and a variety of project
properties stored in the .csproj/.vbproj file, developers can
now work with specific files and folders devoted to specific
purposes. Although at first there is some learning curve, the
end result is more secure, more maintainable, works better
with source control, and has better separation of concerns
than the approach used in previous versions of ASP.NET.
Questions?
1 de 19

Recomendados

.Net Core por
.Net Core.Net Core
.Net CoreSoftware Infrastructure
875 visualizações17 slides
.Net Core por
.Net Core.Net Core
.Net CoreBertrand Le Roy
10.1K visualizações21 slides
ASP.NET Core: The best of the new bits por
ASP.NET Core: The best of the new bitsASP.NET Core: The best of the new bits
ASP.NET Core: The best of the new bitsKen Cenerelli
1.6K visualizações50 slides
.Net Core - not your daddy's dotnet por
.Net Core - not your daddy's dotnet.Net Core - not your daddy's dotnet
.Net Core - not your daddy's dotnetRick van den Bosch
1.2K visualizações59 slides
Introduction to .NET Core por
Introduction to .NET CoreIntroduction to .NET Core
Introduction to .NET CoreJohnny Hooyberghs
2.3K visualizações35 slides
Introduction to .NET Core por
Introduction to .NET CoreIntroduction to .NET Core
Introduction to .NET CoreMarco Parenzan
3.6K visualizações65 slides

Mais conteúdo relacionado

Mais procurados

React Native por
React NativeReact Native
React NativeASIMYILDIZ
134 visualizações20 slides
.Net Core 1.0 vs .NET Framework por
.Net Core 1.0 vs .NET Framework.Net Core 1.0 vs .NET Framework
.Net Core 1.0 vs .NET FrameworkWyn B. Van Devanter
1.3K visualizações14 slides
Node.js por
Node.jsNode.js
Node.jskrishnapriya Tadepalli
526 visualizações37 slides
Node js introduction por
Node js introductionNode js introduction
Node js introductionJoseph de Castelnau
7.9K visualizações19 slides
Introduction to Node js por
Introduction to Node jsIntroduction to Node js
Introduction to Node jsAkshay Mathur
11.7K visualizações61 slides
ASP.NET Core MVC + Web API with Overview por
ASP.NET Core MVC + Web API with OverviewASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with OverviewShahed Chowdhuri
8.2K visualizações22 slides

Mais procurados(20)

React Native por ASIMYILDIZ
React NativeReact Native
React Native
ASIMYILDIZ134 visualizações
.Net Core 1.0 vs .NET Framework por Wyn B. Van Devanter
.Net Core 1.0 vs .NET Framework.Net Core 1.0 vs .NET Framework
.Net Core 1.0 vs .NET Framework
Wyn B. Van Devanter1.3K visualizações
Node js introduction por Joseph de Castelnau
Node js introductionNode js introduction
Node js introduction
Joseph de Castelnau7.9K visualizações
Introduction to Node js por Akshay Mathur
Introduction to Node jsIntroduction to Node js
Introduction to Node js
Akshay Mathur11.7K visualizações
ASP.NET Core MVC + Web API with Overview por Shahed Chowdhuri
ASP.NET Core MVC + Web API with OverviewASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with Overview
Shahed Chowdhuri8.2K visualizações
Introduction to Docker Compose por Ajeet Singh Raina
Introduction to Docker ComposeIntroduction to Docker Compose
Introduction to Docker Compose
Ajeet Singh Raina16.4K visualizações
Reactjs por Neha Sharma
Reactjs Reactjs
Reactjs
Neha Sharma10.5K visualizações
.NET Core, ASP.NET Core Course, Session 6 por aminmesbahi
.NET Core, ASP.NET Core Course, Session 6.NET Core, ASP.NET Core Course, Session 6
.NET Core, ASP.NET Core Course, Session 6
aminmesbahi483 visualizações
Introduction to NodeJS por Cere Labs Pvt. Ltd
Introduction to NodeJSIntroduction to NodeJS
Introduction to NodeJS
Cere Labs Pvt. Ltd842 visualizações
Docker: From Zero to Hero por fazalraja
Docker: From Zero to HeroDocker: From Zero to Hero
Docker: From Zero to Hero
fazalraja1.9K visualizações
Nakov - .NET Framework Overview - English por Svetlin Nakov
Nakov - .NET Framework Overview - EnglishNakov - .NET Framework Overview - English
Nakov - .NET Framework Overview - English
Svetlin Nakov3.9K visualizações
ASP.NET Core MVC + Web API with Overview por Shahed Chowdhuri
ASP.NET Core MVC + Web API with OverviewASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with Overview
Shahed Chowdhuri4.6K visualizações
Nodejs presentation por Arvind Devaraj
Nodejs presentationNodejs presentation
Nodejs presentation
Arvind Devaraj8.8K visualizações
Its time to React.js por Ritesh Mehrotra
Its time to React.jsIts time to React.js
Its time to React.js
Ritesh Mehrotra3.8K visualizações
Asp.Net Core MVC , Razor page , Entity Framework Core por mohamed elshafey
Asp.Net Core MVC , Razor page , Entity Framework CoreAsp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework Core
mohamed elshafey372 visualizações
React workshop presentation por Bojan Golubović
React workshop presentationReact workshop presentation
React workshop presentation
Bojan Golubović6.9K visualizações
React js por Alireza Akbari
React jsReact js
React js
Alireza Akbari507 visualizações

Similar a .Net Core

.Net framework vs .net core a complete comparison por
.Net framework vs .net core  a complete comparison.Net framework vs .net core  a complete comparison
.Net framework vs .net core a complete comparisonKaty Slemon
106 visualizações18 slides
Asp. net core 3.0 build modern web and cloud applications (top 13 features +... por
Asp. net core 3.0  build modern web and cloud applications (top 13 features +...Asp. net core 3.0  build modern web and cloud applications (top 13 features +...
Asp. net core 3.0 build modern web and cloud applications (top 13 features +...Katy Slemon
49 visualizações27 slides
dotNET frameworks por
dotNET frameworksdotNET frameworks
dotNET frameworksnawal saad
3K visualizações8 slides
Pottnet MeetUp Essen - ASP.Net Core por
Pottnet MeetUp Essen - ASP.Net CorePottnet MeetUp Essen - ASP.Net Core
Pottnet MeetUp Essen - ASP.Net CoreMalte Lantin
266 visualizações25 slides
Pottnet Meetup Essen - ASP.Net Core por
Pottnet Meetup Essen - ASP.Net CorePottnet Meetup Essen - ASP.Net Core
Pottnet Meetup Essen - ASP.Net CoreMalte Lantin
153 visualizações25 slides
Built Cross-Platform Application with .NET Core Development.pdf por
Built Cross-Platform Application with .NET Core Development.pdfBuilt Cross-Platform Application with .NET Core Development.pdf
Built Cross-Platform Application with .NET Core Development.pdfI-Verve Inc
9 visualizações6 slides

Similar a .Net Core(20)

.Net framework vs .net core a complete comparison por Katy Slemon
.Net framework vs .net core  a complete comparison.Net framework vs .net core  a complete comparison
.Net framework vs .net core a complete comparison
Katy Slemon106 visualizações
Asp. net core 3.0 build modern web and cloud applications (top 13 features +... por Katy Slemon
Asp. net core 3.0  build modern web and cloud applications (top 13 features +...Asp. net core 3.0  build modern web and cloud applications (top 13 features +...
Asp. net core 3.0 build modern web and cloud applications (top 13 features +...
Katy Slemon49 visualizações
dotNET frameworks por nawal saad
dotNET frameworksdotNET frameworks
dotNET frameworks
nawal saad3K visualizações
Pottnet MeetUp Essen - ASP.Net Core por Malte Lantin
Pottnet MeetUp Essen - ASP.Net CorePottnet MeetUp Essen - ASP.Net Core
Pottnet MeetUp Essen - ASP.Net Core
Malte Lantin266 visualizações
Pottnet Meetup Essen - ASP.Net Core por Malte Lantin
Pottnet Meetup Essen - ASP.Net CorePottnet Meetup Essen - ASP.Net Core
Pottnet Meetup Essen - ASP.Net Core
Malte Lantin153 visualizações
Built Cross-Platform Application with .NET Core Development.pdf por I-Verve Inc
Built Cross-Platform Application with .NET Core Development.pdfBuilt Cross-Platform Application with .NET Core Development.pdf
Built Cross-Platform Application with .NET Core Development.pdf
I-Verve Inc9 visualizações
The ultimate cheat sheet on .net core, .net framework, and .net standard por Concetto Labs
The ultimate cheat sheet on .net core, .net framework, and .net standardThe ultimate cheat sheet on .net core, .net framework, and .net standard
The ultimate cheat sheet on .net core, .net framework, and .net standard
Concetto Labs100 visualizações
Difference between .net and asp.net all you need to know por sophiaaaddison
Difference between .net and asp.net  all you need to knowDifference between .net and asp.net  all you need to know
Difference between .net and asp.net all you need to know
sophiaaaddison37 visualizações
Net Framework vs .Net Core A Complete Comparison.pdf por WPWeb Infotech
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
WPWeb Infotech49 visualizações
All the amazing features of asp.net core por GrayCell Technologies
All the amazing features of asp.net coreAll the amazing features of asp.net core
All the amazing features of asp.net core
GrayCell Technologies31 visualizações
tutorials-visual-studio_visual-studio-2015-preview-comes-with-emulator-for-an... por Anil Sharma
tutorials-visual-studio_visual-studio-2015-preview-comes-with-emulator-for-an...tutorials-visual-studio_visual-studio-2015-preview-comes-with-emulator-for-an...
tutorials-visual-studio_visual-studio-2015-preview-comes-with-emulator-for-an...
Anil Sharma990 visualizações
Academy PRO: .NET Core intro por Binary Studio
Academy PRO: .NET Core introAcademy PRO: .NET Core intro
Academy PRO: .NET Core intro
Binary Studio125 visualizações
What is the next generation of .Net? por Faiyneen Shaikh
What is the next generation of  .Net?What is the next generation of  .Net?
What is the next generation of .Net?
Faiyneen Shaikh16 visualizações
Learn .NET Core - Introduction por Eng Teong Cheah
Learn .NET Core - IntroductionLearn .NET Core - Introduction
Learn .NET Core - Introduction
Eng Teong Cheah80 visualizações
Building Modern Web Apps Using ASP.NET 5 por WinWire Technologies Inc
Building Modern Web Apps Using ASP.NET 5Building Modern Web Apps Using ASP.NET 5
Building Modern Web Apps Using ASP.NET 5
WinWire Technologies Inc382 visualizações
Online furniture management system por Yesu Raj
Online furniture management systemOnline furniture management system
Online furniture management system
Yesu Raj3.9K visualizações
Full session asp net mvc vs aspnet core por fizmhd
Full session asp net mvc vs aspnet coreFull session asp net mvc vs aspnet core
Full session asp net mvc vs aspnet core
fizmhd187 visualizações
Top 11 Front-End Web Development Tools To Consider in 2020 por Katy Slemon
 Top 11 Front-End Web Development Tools To Consider in 2020 Top 11 Front-End Web Development Tools To Consider in 2020
Top 11 Front-End Web Development Tools To Consider in 2020
Katy Slemon53 visualizações

Mais de Bohdan Pashkovskyi

Telegram bots por
Telegram botsTelegram bots
Telegram botsBohdan Pashkovskyi
203 visualizações38 slides
CoreCamp "Automated testing basics for developers" por
CoreCamp "Automated testing basics for developers"CoreCamp "Automated testing basics for developers"
CoreCamp "Automated testing basics for developers"Bohdan Pashkovskyi
107 visualizações53 slides
CQRS and Event Sourcing por
CQRS and Event SourcingCQRS and Event Sourcing
CQRS and Event SourcingBohdan Pashkovskyi
119 visualizações26 slides
C# Lesson 3 por
C# Lesson 3C# Lesson 3
C# Lesson 3Bohdan Pashkovskyi
129 visualizações11 slides
C# Lesson 1 por
C# Lesson 1C# Lesson 1
C# Lesson 1Bohdan Pashkovskyi
77 visualizações5 slides
Automated testing por
Automated testingAutomated testing
Automated testingBohdan Pashkovskyi
105 visualizações38 slides

Mais de Bohdan Pashkovskyi(9)

CoreCamp "Automated testing basics for developers" por Bohdan Pashkovskyi
CoreCamp "Automated testing basics for developers"CoreCamp "Automated testing basics for developers"
CoreCamp "Automated testing basics for developers"
Bohdan Pashkovskyi107 visualizações
CQRS and Event Sourcing por Bohdan Pashkovskyi
CQRS and Event SourcingCQRS and Event Sourcing
CQRS and Event Sourcing
Bohdan Pashkovskyi119 visualizações
Automated testing por Bohdan Pashkovskyi
Automated testingAutomated testing
Automated testing
Bohdan Pashkovskyi105 visualizações
Asynchronous programming in C# por Bohdan Pashkovskyi
Asynchronous programming in C#Asynchronous programming in C#
Asynchronous programming in C#
Bohdan Pashkovskyi425 visualizações
ASP .NET MVC - best practices por Bohdan Pashkovskyi
ASP .NET MVC - best practicesASP .NET MVC - best practices
ASP .NET MVC - best practices
Bohdan Pashkovskyi390 visualizações

Último

Elevate your SAP landscape's efficiency and performance with HCL Workload Aut... por
Elevate your SAP landscape's efficiency and performance with HCL Workload Aut...Elevate your SAP landscape's efficiency and performance with HCL Workload Aut...
Elevate your SAP landscape's efficiency and performance with HCL Workload Aut...HCLSoftware
6 visualizações2 slides
Tridens DevOps por
Tridens DevOpsTridens DevOps
Tridens DevOpsTridens
9 visualizações28 slides
SAP FOR TYRE INDUSTRY.pdf por
SAP FOR TYRE INDUSTRY.pdfSAP FOR TYRE INDUSTRY.pdf
SAP FOR TYRE INDUSTRY.pdfVirendra Rai, PMP
24 visualizações3 slides
DSD-INT 2023 Next-Generation Flood Inundation Mapping for Taiwan - Delft3D FM... por
DSD-INT 2023 Next-Generation Flood Inundation Mapping for Taiwan - Delft3D FM...DSD-INT 2023 Next-Generation Flood Inundation Mapping for Taiwan - Delft3D FM...
DSD-INT 2023 Next-Generation Flood Inundation Mapping for Taiwan - Delft3D FM...Deltares
7 visualizações40 slides
LAVADORA ROLO.docx por
LAVADORA ROLO.docxLAVADORA ROLO.docx
LAVADORA ROLO.docxSamuelRamirez83524
7 visualizações1 slide
DSD-INT 2023 Delft3D FM Suite 2024.01 1D2D - Beta testing programme - Geertsema por
DSD-INT 2023 Delft3D FM Suite 2024.01 1D2D - Beta testing programme - GeertsemaDSD-INT 2023 Delft3D FM Suite 2024.01 1D2D - Beta testing programme - Geertsema
DSD-INT 2023 Delft3D FM Suite 2024.01 1D2D - Beta testing programme - GeertsemaDeltares
17 visualizações13 slides

Último(20)

Elevate your SAP landscape's efficiency and performance with HCL Workload Aut... por HCLSoftware
Elevate your SAP landscape's efficiency and performance with HCL Workload Aut...Elevate your SAP landscape's efficiency and performance with HCL Workload Aut...
Elevate your SAP landscape's efficiency and performance with HCL Workload Aut...
HCLSoftware6 visualizações
Tridens DevOps por Tridens
Tridens DevOpsTridens DevOps
Tridens DevOps
Tridens9 visualizações
SAP FOR TYRE INDUSTRY.pdf por Virendra Rai, PMP
SAP FOR TYRE INDUSTRY.pdfSAP FOR TYRE INDUSTRY.pdf
SAP FOR TYRE INDUSTRY.pdf
Virendra Rai, PMP24 visualizações
DSD-INT 2023 Next-Generation Flood Inundation Mapping for Taiwan - Delft3D FM... por Deltares
DSD-INT 2023 Next-Generation Flood Inundation Mapping for Taiwan - Delft3D FM...DSD-INT 2023 Next-Generation Flood Inundation Mapping for Taiwan - Delft3D FM...
DSD-INT 2023 Next-Generation Flood Inundation Mapping for Taiwan - Delft3D FM...
Deltares7 visualizações
DSD-INT 2023 Delft3D FM Suite 2024.01 1D2D - Beta testing programme - Geertsema por Deltares
DSD-INT 2023 Delft3D FM Suite 2024.01 1D2D - Beta testing programme - GeertsemaDSD-INT 2023 Delft3D FM Suite 2024.01 1D2D - Beta testing programme - Geertsema
DSD-INT 2023 Delft3D FM Suite 2024.01 1D2D - Beta testing programme - Geertsema
Deltares17 visualizações
Cycleops - Automate deployments on top of bare metal.pptx por Thanassis Parathyras
Cycleops - Automate deployments on top of bare metal.pptxCycleops - Automate deployments on top of bare metal.pptx
Cycleops - Automate deployments on top of bare metal.pptx
Thanassis Parathyras31 visualizações
Headless JS UG Presentation.pptx por Jack Spektor
Headless JS UG Presentation.pptxHeadless JS UG Presentation.pptx
Headless JS UG Presentation.pptx
Jack Spektor7 visualizações
DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko... por Deltares
DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko...DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko...
DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko...
Deltares12 visualizações
Neo4j y GenAI por Neo4j
Neo4j y GenAI Neo4j y GenAI
Neo4j y GenAI
Neo4j45 visualizações
Winter '24 Release Chat.pdf por melbourneauuser
Winter '24 Release Chat.pdfWinter '24 Release Chat.pdf
Winter '24 Release Chat.pdf
melbourneauuser9 visualizações
DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J... por Deltares
DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J...DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J...
DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J...
Deltares9 visualizações
DSD-INT 2023 European Digital Twin Ocean and Delft3D FM - Dols por Deltares
DSD-INT 2023 European Digital Twin Ocean and Delft3D FM - DolsDSD-INT 2023 European Digital Twin Ocean and Delft3D FM - Dols
DSD-INT 2023 European Digital Twin Ocean and Delft3D FM - Dols
Deltares7 visualizações
Consulting for Data Monetization Maximizing the Profit Potential of Your Data... por Flexsin
Consulting for Data Monetization Maximizing the Profit Potential of Your Data...Consulting for Data Monetization Maximizing the Profit Potential of Your Data...
Consulting for Data Monetization Maximizing the Profit Potential of Your Data...
Flexsin 15 visualizações
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx por animuscrm
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx
animuscrm13 visualizações
DSD-INT 2023 Modelling litter in the Yarra and Maribyrnong Rivers (Australia)... por Deltares
DSD-INT 2023 Modelling litter in the Yarra and Maribyrnong Rivers (Australia)...DSD-INT 2023 Modelling litter in the Yarra and Maribyrnong Rivers (Australia)...
DSD-INT 2023 Modelling litter in the Yarra and Maribyrnong Rivers (Australia)...
Deltares9 visualizações
HarshithAkkapelli_Presentation.pdf por harshithakkapelli
HarshithAkkapelli_Presentation.pdfHarshithAkkapelli_Presentation.pdf
HarshithAkkapelli_Presentation.pdf
harshithakkapelli11 visualizações
Software testing company in India.pptx por SakshiPatel82
Software testing company in India.pptxSoftware testing company in India.pptx
Software testing company in India.pptx
SakshiPatel827 visualizações
Roadmap y Novedades de producto por Neo4j
Roadmap y Novedades de productoRoadmap y Novedades de producto
Roadmap y Novedades de producto
Neo4j50 visualizações
Generic or specific? Making sensible software design decisions por Bert Jan Schrijver
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
Bert Jan Schrijver6 visualizações

.Net Core

  • 1. .NET Core (revolution of .NET) 2016 Bohdan Pashkovskyi
  • 2. Motivation Behind .NET Core When .NET first shipped in 2002, it was a single framework, but it didn’t take long before the .NET Compact Framework shipped, providing a smaller version of .NET designed for mobile devices. Over the years, this exercise was repeated multiple times, so that today there are different flavors of .NET specific to different platforms. Add to this the further platform reach provided by Mono and Xamarin, which target Linux, Mac, and native iOS and Android devices. For each platform, a separate vertical stack consisting of runtime, framework, and app model is required to develop .NET applications.
  • 3. What is .NET Core a small, optimized runtime CoreCLR a set of libraries CoreFX .NET Core 5 is a modular runtime and library implementation that includes a subset of the .NET Framework. Currently it is feature complete on Windows, and in-progress builds exist for both Linux and OS X.
  • 4. .NET Core features .NET Core is a set of runtime, library and compiler components. Microsoft uses these components in various configurations for device and cloud workloads. You can do the same for your app or service. Modular Managed runtimes make code easy to write and guarantee safe execution. .NET Core manages memory with a garbage collector, compiles your code with a JIT compiler or ahead of time with .NET Native. . Managed You can create .NET Core apps that run on multiple OSes and CPUs. .NET Core runs on Windows. Ports are in progress for Linux, OS X and FreeBSD, as is integration with the LLVM compiler. Cross-platform
  • 5. .NET Core features .NET Core brings with it a set of languages, led by C#, with VB and F# with support for modern language features, like generics, Language Integrated Query (LINQ), async support and more. Modern The managed runtime of .NET Core allows for a streamlined and easy interoperability with native code through several ways. Each of them allows for a rich set of scenarios not to mention great performance.. Interoperable Runtime modularity allows for an extensibility model through a good set of abstractions for adding new components to the actual runtime and its class library, but also through its package manager NuGet. Extensible
  • 6. .NET Core features .NET Core is versatile in multiple scenarios, from client applications, across web, server workloads to mobile apps. With its "pay as you go" model, .NET Core can be adapted easily to perform great and provide a rich experience developing for each of these. Adaptable NET Core is portable across various platforms, both in terms of operating systems and processor architectures. Code written for it is also portable across application stacks, such as Mono, making it feasible to move applications across app stacks as well.. Portable .NET Core is backed by an open ECMA standard that outlines all of its capabilities which can be used to make a new reference implementation. A lot of projects did exactly this, and there are various implementation out there. Open
  • 7. DNX Overview The .NET Execution Environment (DNX) is a software development kit (SDK) and runtime environment that has everything you need to build and run .NET applications for Windows, Mac and Linux. It provides a host process, CLR hosting logic and managed entry point discovery. DNX was built for running cross-platform ASP.NET Web applications, but it can run other types of .NET applications, too, such as cross-platform console apps.
  • 8. Open source friendly Why build DNX? Package managers have completely changed the face of modern software development and DNX makes it easy to create and consume packages. DNX provides tools for installing, creating and managing NuGet packages. DNX projects simplify building NuGet packages by cross- compiling for multiple target frameworks and can output NuGet packages directly. You can reference NuGet packages directly from your projects and transitive dependencies are handled for you. You can also build and install development tools as packages for your project and globally on a machine. Build for .NET Core DNX dramatically simplifies the work needed to develop cross-platform applications using .NET Core. It takes care of hosting the CLR, handling dependencies and bootstrapping your application. You can easily define projects and solutions using a lightweight JSON format (project.json), build your projects and publish them for distribution. DNX makes it easy to work with open source projects. With DNX projects you can easily replace an existing dependency with its source code and let DNX compile it in- memory at runtime. You can then debug the source and modify it without having to modify the rest of your application.
  • 9. What is ASP.NET 5? ASP.NET 5 is a new open-source and cross-platform framework for building modern cloud-based Web applications using .NET. We built it from the ground up to provide an optimized development framework for apps that are either deployed to the cloud or run on-premises. It consists of modular components with minimal overhead, so you retain flexibility while constructing your solutions. You can develop and run your ASP.NET 5 applications cross-platform on Windows, Mac and Linux. ASP.NET 5 is fully open source on GitHub.
  • 10. In summary, with ASP.NET 5 you gain the following foundational improvements: New light-weight and modular HTTP request pipeline Ability to host on IIS or self-host in your own process Built on .NET Core, which supports true side-by-side app versioning Ships entirely as NuGet packages Integrated support for creating and using NuGet packages Single aligned web stack for Web UI and Web APIs Built-in support for dependency injection New tooling that simplifies modern web development Build and run cross-platform ASP.NET apps on Windows, Mac and Linux Open source and community focused Cloud-ready environment-based configuration
  • 11. ASP.NET Project Structure ASP.NET 5’s project structure adds new concepts and replaces some legacy elements found in previous versions of ASP.NET projects. The new default web project template creates a solution and project structure like the one shown here:
  • 12. The project.json File The project.json file is new to ASP.NET 5. It is used to define the project’s server side dependencies (discussed below), as well as other project-specific information. The top-level default sections included in project.json of the default web project template are highlighted below: { "userSecretsId": "aspnet5-WebApplication1-8479b9ce-7b8f-4402- 9616-0843bc642f09", "version": "1.0.0-*", "compilationOptions": { "emitEntryPoint": true }, "dependencies": { "EntityFramework.Commands": "7.0.0-rc1-final", ... }, "commands": { "web": "Microsoft.AspNet.Server.Kestrel", "ef": "EntityFramework.Commands" }, "frameworks": { "dnx451": { }, "dnxcore50": { } }, "exclude": [ "wwwroot", "node_modules" ], "publishExclude": [ "**.user", "**.vspscc" ], "scripts": { "prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ] } }
  • 13. The global.json File The global.json file is used to configure the solution as a whole. It includes just two sections, projects and sdk by default. { "projects": [ "src", "test" ], "sdk": { "version": "1.0.0-rc1-final" } }
  • 14. The wwwroot Folder In previous versions of ASP.NET, the root of the project was typically the root of the web app. If you placed a Default.aspx file in the project root of an early version of ASP.NET, it would load if a request was made to the web application’s root. In later versions of ASP.NET, support for routing was added, making it possible to decouple the locations of files from their corresponding URLs (thus, HomeController in the Controllers folder is able to serve requests made to the root of the site, using a default route implementation). However, this routing was used only for ASP.NET-specific application logic, not static files needed by the client to properly render the resulting page. Resources like images, script files, and stylesheets were generally still loaded based on their location within the file structure of the application, based off of the root of the project.
  • 15. Client Side Dependency Management The Dependencies folder contains two subfolders: Bower and NPM. These folders correspond to two package managers by the same names, and they’re used to pull in client-side dependencies and tools (e.g. jQuery, Bootstrap, or Gulp). Expanding the folders reveals which dependencies are currently managed by each tool, and the current version being used by the project.
  • 16. Server Side Dependency Management The References folder, shown within Solution Explorer in Visual Studio, details the server-side references for the project. It should be familiar to ASP.NET developers, but it has been modified to differentiate between references for different framework targets, such as the full DNX 4.5.1 vs. DNX Core 5.0. Within each framework target, you will find individual references, with icons indicating whether the reference is to an assembly, a NuGet package, or a project.
  • 17. Application Startup The ConfigureServices method is used to specify which services are available to the app. The default template uses helper methods to add a variety of services used for EF, Identity, and MVC. This is also where you can add your own services, as we did above to expose the configuration as a service. The complete ConfigureServices method, including the call to add Configuration as a service, is shown here:
  • 18. Summary ASP.NET 5 introduces a few concepts that didn’t exist in previous versions of ASP.NET. Rather than working with web.config, packages.config, and a variety of project properties stored in the .csproj/.vbproj file, developers can now work with specific files and folders devoted to specific purposes. Although at first there is some learning curve, the end result is more secure, more maintainable, works better with source control, and has better separation of concerns than the approach used in previous versions of ASP.NET.