/
Something has Frozen Over: .NET on Linux and OS X Something has Frozen Over: .NET on Linux and OS X

Something has Frozen Over: .NET on Linux and OS X - PowerPoint Presentation

conchita-marotz
conchita-marotz . @conchita-marotz
Follow
352 views
Uploaded On 2018-12-16

Something has Frozen Over: .NET on Linux and OS X - PPT Presentation

Chris Risner Senior Technical Evangelist ChrisRisner http chrisrisnercom About Me Agenda Why NET on Linux OS X The Easy Way Getting Setup Creating an App Running ASPNET Misc Advanced ID: 742024

asp net thu linux net asp linux thu http windows apps aspnet code install github debugging server aloeswood creating

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "Something has Frozen Over: .NET on Linux..." is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

Something has Frozen Over: .NET on Linux and OS X

Chris Risner

Senior Technical Evangelist@ChrisRisnerhttp://chrisrisner.comSlide2
Slide3

About MeSlide4

Agenda

Why .NET on Linux / OS X

The Easy WayGetting SetupCreating an AppRunning ASP.NETMisc / AdvancedWrap-upSlide5

Why .NET on Linux / OS X? Slide6

Projects: 1583

Contributors 9045

Stars: 119706

Forks: 23518

TodaySlide7

64-bit JIT + SIMD

Garbage CollectorRuntime components

Compilers

.NET Compiler Platform

(Roslyn)

Languages innovation

.NET Framework 4.6

.NET

Core 5

Fully-featured and integrated

.NET libraries and runtime for Windows

Modular

and optimized

.NET libraries and runtimes

WPF

ASP.NET

(

4 & 5)

Windows Forms

ASP.NET 5

Universal

Windows

Apps

CoreCLR

.

NET Native

Base class libraries

NuGet packages

Libraries

Shared

.NET on Linux and OS X

RC

RCSlide8

Why on Linux?

Developers – New workloads and technologies

Organizations – New market opportunitiesIT - Platform diversificationIT - Server consolidation in the cloudSlide9

Dev Benefits

Customers can run .NET apps and services in Linux

Support in VS for developing xPlat .NET AppsSupport in VS for deploying .NET apps to DockerEdit, compile, and debug .NET code on OS X and Linux.NET Core is open source on GitHubSlide10
Slide11

Running .NET on Linux the Easy WaySlide12

Docker

Tools for Visual Studio 2015Currently in preview

Separate installhttp://aka.ms/VSDockerToolsASP.NET 5 templates already part of VS 2015Integrates well with AzurePushes to any Docker

hostSlide13

DEMO: Running ASP.NET on Linux with VSSlide14

Getting SetupSlide15

Getting the bits!

Development

Development/DeploymentSlide16

Installing on OS X

Install

Visual Studio Code

Install

asp.net

from

http://get.asp.net

OR

curl

-

sSL

https://

raw.githubusercontent.com

/

aspnet

/Home/

dev

/

dnvminstall.sh

| DNX_BRANCH=

dev

sh

&& source ~/.

dnx

/

dnvm

/

dnvm.sh

Dnvm

upgrade –r

coreclrSlide17

Installing on Linux

Optionally install

Mono

//More on this later

Install and build

libuv

Install

DNVM

//Much

more on this later

http://

aka.ms/AspNetOnLinux

http://aka.ms/DotNetSettingUpLinuxSlide18

Kestrel

Cross platform Web Server

Built using Libuv (same as Node)Libuv is an async IO libraryOpen Sourcehttps://

github.com/aspnet/KestrelHttpServer

You can run / write your own web server

IIS /

WebListener

also work

http://aka.ms/aspnet5serversSlide19

Creating an AppSlide20

Dev Environment Options

http://

omnisharp.netSlide21

Visual Studio CodeLightweight, cross-plat editor that runs on Windows, OS X and LinuxProvides IntelliSense, colorization, refactoring, etc.Edit, compile, and run apps locally

Debugging support for .NET apps (sort of ;))Open sourceSupport for extensionsSlide22

YeomanScaffolding tool for appsInstalled with NPMMakes creating new projects super easy!

yo aspnetGenerators installed with npmSlide23

DEMO: Creating a Console AppSlide24

What’d we just see?

Dnvm

- .NET Version ManagerDnu - .NET Development UtilityDnx - .NET ExecutionYo – yeoman

Building for Mono and CoreCLRSlide25

Running ASP.NETSlide26

DEMO: Building an ASP.NET AppSlide27

Debugging and Unit TestsSlide28

Debugging

Doesn’t work out of the box

Can work with MonoRequires creating build task using xbuild and creating EXEPossible for ASP.NET but more complexBuilt-in to VS Code comingWorking with CoreCLR

comingSlide29

Unit Testing

Unit test project in Yeoman

Add new commandAdd dependenciesAdd test class(es)Dnx testSlide30

DEMO: Debugging and Unit TestsSlide31

Deployment, Advanced,

MiscSlide32

Deployment

Xcopy deployment to target environment

On-premises, IaaS, Docker, etcDeploy .NET Core with app N

o system wide installation necessaryPackage in

Docker

in VSSlide33

.NET Core On

GitHubSlide34

Calling Native Code

[DllImport("

libc")]private static extern int printf(string format);…printf("Hello, //Codemash 2016!\

n");

// Same as

PInvoke

on WindowsSlide35

Setting the

EnvironmentWindows:

set ASPNET_ENV=DevelopmentOS X / Linux:export ASPNET_ENV=Development(also Staging, Production)Slide36

Performance

https://

github.com/aspnet/benchmarksSlide37
Slide38

DEMO: SQLSlide39

WrapupSlide40

Today

Install Visual Studio 2015 on Windows

Manual installs on OS X / LinuxPre-built VM on Azure MarketplaceDocker using dockerfileSlide41

What’s coming?

Remote debugging in VS2015

Local debugging in VS CodePerformance improvementsMore libraries ported to .NET Core.NET Nativedotnet CLISlide42

Prepping your Apps

Creating a new app

Start with VS 2015 ASP.NET 5 templatesCheck out PartsUnlimited sample on GitHubMoving existing appsTransition to ASP.NET 5 on WindowsSlide43

Go Live!

Production approved

Engage directly with teams on GitHubhttp://aka.ms/NetCoreSupportSlide44

MICROSOFT SESSIONS

DayRoom

EventSpeakerThu 8:00AMSalon E

The Hitchhiker's Guide to Azure Mobile Apps

David Giard

Fri 4:00PM

Aloeswood

/Leopardwood

Secrets of Success in the style of GLEE

Jennifer

Marsman

Thu

9:15AM

Mangrove

Something has Frozen Over: .NET on Linux and OS X

Chris Risner

Thu

9:15AM

Salon A

Designing a Game for Mobile

Amanda Lange

Thu 11:45PM

Salon

A

Rise of the Machines

Josh Holmes

Fri 4:00PM

Orange

Cloud-Scale Event Processing with the Reactive Extensions (Rx)

Matthew Podwysocki

Thu 10:30AM

Zambezi

Designing C# 7 in the Open

Kevin Pilch-Bisson

Fri 9:45AM

Aloeswood

/Leopardwood

Big Data for the SQL Ninja

Matt Winkler

Thu

3:30PM

ZambeziCloud Design Patterns for Scalability and PerformanceMatt Johnson

Thu 1:00PMGuava/TamarindGetting Started with nuML, an Open Source .NET Machine Learning LibrarySeth JuarezThu 9:15AMSalon HTracking Real World Web PerformanceNik MolnarThu 9:15AMSagewood/ZebrawoodThe Code Behind the VulnerabilityBarry DorransThu 1:00PMSagewood/ZebrawoodIntroducing the new ASP.NET Authorization and Data Protection StacksBarry DorransSlide45

MVP SESSIONS

DayRoomEvent

SpeakerTue 1:00PMSalon ACross Platform Mobile UI with Xamarin Forms Workshop

Jason Awbrey

Wed 8:00AM

Aloeswood

, Leopardwood

Tune SQL Server Like a Guru! – Part 1

Kevin Boles

Wed 11:45:AM

Cypress

Async Everywhere!

Stephen Cleary

Wed 11:45:AM

Aloeswood

, Leopardwood

Abstract Art: Getting Abstraction “Just Right”

Jeremy Clark

Wed 1:00PM

Aloeswood, Leopardwood

Tune SQL Server Like a Guru! – Part 2

Kevin Boles

Thu 8:00AM

Nile

CQRS 2.0

David Hoerster

Thu 8:00AM

Zambezi

Node.js Crash Course

David Neal

Thu 10:30AM

Sagewood

, Zebrawood

Whose Shoulders are These?

Jack Daniel

Thu 10:30AM

Orange

Bringing Up Our Future – On Mentoring Junior Developers

Sarah Dutkiewicz

Thu 10:30AM

Indigo Bay

Consuming REST APIs, for all interpretations of REST

Darrel MillerThu 10:30AMSalon AA Look at Team Foundation Server 2015 BuildPaul HackerThu 11:45AMIndigo BayCommon TSQL MistakesKevin BolesThu 1:00PM

Aloeswood, LeopardwoodGrowing a Testing^H^H^H^H^H^H^HWhole Quality Team The Hard WayJim HolmesThu 1:00PMSalon DGetting Started with 3D PrintingAdam BarneyThu 1:00PMSalon AHypermedia APIs: The rest of RESTChris MarinosThu 3:30PMSuite 1, Suite 6Why I Left Angular and Knockout for ReactCory HouseThu 3:30PMAloeswood, LeopardwoodLoad Testing Your Web Application in Visual Studio: A Case StudyJames BenderFri 9:45AMSalon DElectronics 101 for IoT DevelopersAdam BarneyFri 9:45AMSalon EConvention Over Configuration: Queueing is EasyMatthew GrovesFri 9:45AMSuite 1, Suite 6“OMG! This Codebase Sucks!” Paying Down Technical Debt While Continuing to Deliver ValueJim HolmesFri 9:45AMMangroveXAML & C# Powered iOS, Android, and Windows appsJames MontemagnoFri 12:15PM

Zambezi

ECMAScript 2015 & JavaScript – Don’t Get Left BehindJared Faris

Fri 4:00PMIndigo Bay

Cross-Platform Desktop Apps with ElectronDavid NealSlide46

Resources

@ChrisRisner

http://chrisrisner.comhttp://code.visualstudio.comhttp://github.com/aspnet

/homehttp://docs.asp.net

http

://

get.asp.net

http://live.asp.net

https://github.com/Microsoft/HealthClinic.biz

/Slide47
Slide48

Docker

fileFROM microsoft

/aspnet:1.0.0-rc1 COPY . /appWORKDIR /appRUN ["dnu", "restore"]

 EXPOSE 5000/

tcp

ENTRYPOINT ["

dnx

",

"-p"

"

project.json

",

"web"]