.NET 2015, ASP.NET 5, C# 6 e tudo mais

46
Mahmoud Ali ([email protected] ) @ akamud .NET 2015, ASP.NET 5, C# 6 e tudo mais

Transcript of .NET 2015, ASP.NET 5, C# 6 e tudo mais

Page 1: .NET 2015, ASP.NET 5, C# 6 e tudo mais

Mahmoud Ali ([email protected])@akamud

.NET 2015, ASP.NET 5, C# 6 e tudo mais

Page 2: .NET 2015, ASP.NET 5, C# 6 e tudo mais

1. Microsoft ♥ Open source2. Abertura das plataformas3. O ASP.NET 5

As 3 mudanças no mundo da Microsoft

Page 3: .NET 2015, ASP.NET 5, C# 6 e tudo mais

Microsoft ♥ Open source

Page 4: .NET 2015, ASP.NET 5, C# 6 e tudo mais
Page 5: .NET 2015, ASP.NET 5, C# 6 e tudo mais
Page 6: .NET 2015, ASP.NET 5, C# 6 e tudo mais

.NET ReferenceSource.NET 4.5.2Código inteiro aberto para pesquisa

https://github.com/Microsoft/referencesource/blob/master/mscorlib/system/reflection/emit/methodbuilder.cs#L736

Page 7: .NET 2015, ASP.NET 5, C# 6 e tudo mais

• Por que não Codeplex?

Microsoft no GitHub

Page 8: .NET 2015, ASP.NET 5, C# 6 e tudo mais

http://dotnet.github.io/

Crescimento da comunidade .NET OSS

98 repositories13557 forks2360 contributors

Crescendo diariamente

Page 9: .NET 2015, ASP.NET 5, C# 6 e tudo mais

OpennessCommunityRapid innovation

.NET Foundation .NET API for Hadoop WebClient

.NET Compiler Platform ("Roslyn").NET Map Reduce API for Hadoop

.NET Micro Framework

ASP.NET MVCASP.NET Web API

ASP.NET Web Pages

ASP.NET SignalR

MVVM Light Toolkit

.NET Core 5

Orleans

MEF (Managed Extensibility Framework)

OWIN Authentication MiddlewareRx (Reactive Extensions)

Orchard CMS Windows Azure .NET SDK

Thinktecture IdentityManager

WnsRecipe

Mimekit Xamarin.AuthXamarin.Mobile

Couchbase for .NET

Meet the people behind the .NET Foundationhttp://www.dotnetfoundation.org/team

Join the conversation with the community http://www.dotnetfoundation.org @dotnetfdn

MailkitSystem.Drawing

ASP.NET 5

Salesforce Toolkits for .NET

NuGetKudu Cecil

Page 10: .NET 2015, ASP.NET 5, C# 6 e tudo mais

Qualquer app, qualquer plataforma

.NETC#VB

F#

JavaScript

Page 11: .NET 2015, ASP.NET 5, C# 6 e tudo mais

Inovação .NET

Cross-Platform

Open Source

O caminho à frente do .NET.NET Core

ASP.NET 5

Page 12: .NET 2015, ASP.NET 5, C# 6 e tudo mais

Abertura das plataformas

Page 13: .NET 2015, ASP.NET 5, C# 6 e tudo mais

Windows Desktop.NET

A história dos .NETs verticais

AppModel

Framework

Runtime

Windows Store Windows Phone

ASP.NET 4 ASP.NET 5

AppModel

Framework

Runtime

Runtime

App

Model

Framewor

k

Runtime

App

Model

Framework Runtime

App

Model

Framework

Page 14: .NET 2015, ASP.NET 5, C# 6 e tudo mais

O que é o .NET Core?

ASP.NET 5App Model

Universal Windows Apps Model

Any otherapp model

.NET Core Unified BCL(Base Class

Library)

Runtime Adaption Layer.NET Nativeand Runtime

Core CLR Other Runtime

Page 15: .NET 2015, ASP.NET 5, C# 6 e tudo mais

.NET Core

NuGet é mainstream no .NET Core

Page 16: .NET 2015, ASP.NET 5, C# 6 e tudo mais

.NET 2015Versão simplificada

Next gen JITSIMD

Runtime Compilers.NET Compiler PlatformLanguages innovation

.NET Core 5 Libraries

.NET Framework 4.6 Libraries

NuGet packagesCommon

.NET Framework 4.6

.NET Core 5

Page 17: .NET 2015, ASP.NET 5, C# 6 e tudo mais

.NET 2015

RyuJIT + SIMDGarbage Collector

Runtime 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 librariesNuGet packages

LibrariesShared

Page 18: .NET 2015, ASP.NET 5, C# 6 e tudo mais

.NET Compiler Platform (“Roslyn”) AntesCompiladores fechados/isoladosDifícil de estender

C#, VBCódigo fonte

.exe/.dilIL assemblies

Compiladores .NET atuais

DepoisAPI: plataforma abertaRefatoração e melhor experiência nas IDEsCode analysisDiagnósticos customizadosCompiladores open source .NET Compiler Platform

(Roslyn)

C#, VBCódigo fonte

.exe/.dilIL assemblies

Plataforma abertapara desenvolvedores

Page 19: .NET 2015, ASP.NET 5, C# 6 e tudo mais

Omnisharp

Code Cracker

Intellisense completo para qualquer plataforma

Análises de código e code fix feitos pela comunidade

https://github.com/code-cracker/code-cracker

http://www.omnisharp.net/

Page 20: .NET 2015, ASP.NET 5, C# 6 e tudo mais

Demo: Roslyn

Page 21: .NET 2015, ASP.NET 5, C# 6 e tudo mais

O ASP.NET 5

Page 22: .NET 2015, ASP.NET 5, C# 6 e tudo mais

ASP.NET 5

.NET Framework 4.6 stack e libs

.NET Core 5 stack e libs

Framework unificado para MVC, Web API e SignalR

Framework .NET completo para qualquer cenário esuporte às bibliotecas

Runtime pequeno otimizado para servidores e computação nas nuvens

Onde entra o ASP.NET 5 nisso tudo?

Page 23: .NET 2015, ASP.NET 5, C# 6 e tudo mais

• 1996 - Active Server Pages (ASP) • 2002 – ASP.NET• 2008 – ASP.NET MVC• 2010 – ASP.NET Web Pages• 2012 – ASP.NET Web API, SignalR• 2014 – ASP.NET 5 (e o Core CLR)

História do ASP (19 anos)

Page 24: .NET 2015, ASP.NET 5, C# 6 e tudo mais

ASP.NET 5 e a Modern Web

Escolha seus editorese ferramentas

Open Source com contribuições Cross-PlatformOSS

Transição simples de on-premises para nuvem

Ciclo de desenvolvimento mais ágilTotalmente Modular

Rápido

Page 25: .NET 2015, ASP.NET 5, C# 6 e tudo mais

Modern Web – Agilidade

Ciclo de desenvolvimento mais ágilRecursos são lançados como pacotesFramework é lançado como parte da aplicação

Mais controleBugs de segurança são arrumados pela MicrosoftFaça suas alterações em um fork do projeto e use-o nas suas aplicaçõesAtualização de módulos separados de acordo com sua necessidade

Page 26: .NET 2015, ASP.NET 5, C# 6 e tudo mais

Modern Web - RápidoPerformance de execução

Inicialização mais rápida (50%+)Menos memória / maior densidade (> redução de 90%)Use um socket, um framework, ou ambos

Produtividade de desenvolvimento e baixo atritoEdite o código e atualize o browserFlexibilidade de um ambiente dinâmico com a força do .NETDesenvolva com Visual Studio, editores de terceiros ou editores na nuvemPadrões da web moderna

Page 27: .NET 2015, ASP.NET 5, C# 6 e tudo mais

• Ferramentas da Modern Web• Arquivos de configurações em JSON• Visual Studio Code (Linux, Mac, Windows)

Modern Web – Ferramentas padrões

Page 28: .NET 2015, ASP.NET 5, C# 6 e tudo mais

Demo: ASP.NET 5 no Visual Studio 2015 RC

Page 29: .NET 2015, ASP.NET 5, C# 6 e tudo mais

Modern Web – Cross Platform

EditoresVisual Studio, Code, Texto, editors na nuvemSem editores (linha de comando)

Open Source com contribuições

RuntimeWindows, Mac, Linux

OSS

Page 30: .NET 2015, ASP.NET 5, C# 6 e tudo mais
Page 31: .NET 2015, ASP.NET 5, C# 6 e tudo mais

Tudo pode ser feito pela linha de comando

Page 32: .NET 2015, ASP.NET 5, C# 6 e tudo mais

.NET Cross-Platform

Mono

.NET Core cross-platform Desenvolvimento Mobile e parceria .NET/Xamarin

.NETXamarin

Unity

Services e Web applications

Mobile apps

Windows Linux Mac OS X .NET Core

ASP.NET 5

Page 33: .NET 2015, ASP.NET 5, C# 6 e tudo mais

Como adquirir os runtimes?

• .NET Core already installed as part of VS2015 RC

• Clone repo on GitHub and build from source (advanced)

• Download & install tar file

• Use Homebrew formula on GitHub

• Download & install tar file

• Create VM on Azure Marketplace

• Use Dockerfile on Docker Hub (coming)

Page 34: .NET 2015, ASP.NET 5, C# 6 e tudo mais

Instalando e rodando no Mac

• brew tap aspnet/dnx• brew update• brew install dnvm• dnx . kestrel

• Homebrew(http://brew.sh)

Fonte: https://channel9.msdn.com/Events/Build/2015/3-670

Page 35: .NET 2015, ASP.NET 5, C# 6 e tudo mais

Instalando e rodando no Linux

• tar zxvf PartsUnlimited-demo-app-linux.tar.gz -C ~/• source ~/.dnx/dnvm/dnvm.sh• dnvm use 1.0.0-beta5-11624 -r coreclr -arch x64• dnx . kestrel

• tar file (*.tar.gz)

Fonte: https://channel9.msdn.com/Events/Build/2015/3-670

Page 36: .NET 2015, ASP.NET 5, C# 6 e tudo mais

Demo: ASP.NET 5 no Mac com VS Code

Vai funcionar? ¯\_(ツ )_/¯

Page 37: .NET 2015, ASP.NET 5, C# 6 e tudo mais

ASP.NET 5

.NET Framework 4.6 stack e libs

.NET Core 5 stack e libs

Framework unificado para MVC, Web API e SignalR

Framework .NET completo para qualquer cenário esuporte às bibliotecas

Runtime pequeno otimizado para servidores e computação nas nuvens

O que isso significa pra veteranos .NET?

Page 38: .NET 2015, ASP.NET 5, C# 6 e tudo mais

ASP.NET 5 - Compatibility• Web Forms, MVC 5, Web API 2, Web Pages 3, EF 6• Suporte total ao ASP.NET 5 (com .NET 4.6)

• MVC, Web API, Web Pages 6, EF 7• Breaking changes:• Novo Sistema de projetos • Novo Sistema de configuração• Junção do MVC / Web API / Web Pages• Sem System.Web, novo HttpContext peso-leve (que não é System.Net.Http)

• .NET 5 no Core CLR• Subset do .NET Framework completo• Coisas das quais você depende podem não estar disponíveis

Page 39: .NET 2015, ASP.NET 5, C# 6 e tudo mais

O que é o .NET Framework 4.6?.NET Framework 4.x ainda vai ser o mais usado por um bom tempo

.NET Framework

4

.NET Framework

4.5

.NET Framework

4.5.1

.NET Framework

4.5.2

.NET Framework 4.6

Evolution in time

• Substituto in-place altamente compatível para o .NET 4, 4.5, 4.5.1, e 4.5.2

• Suporte total a qualquer API .NET e bibliotecas atualmente no mercado

• ASP.NET 5 também pode rodar em cima do .NET 4.6

• .NET também ganha todo o investimento nos novos compiladores, novo JIT e novas inovações das linguagens (C# 6 e VB 14)

Page 40: .NET 2015, ASP.NET 5, C# 6 e tudo mais

ASP.NET 5 - Resumo

Recurso Rodando no .NET 4.6

Rodando no .NET Core 5

Pronto para nuvem * *Design modular * *Injeção de dependência * *Tracing / Debugging consistente * *Desenvolvimento mais ágil (Sem necessidade de Build)

* *

Open Source * *Totalmente lado a lado (framework enviado junto com a aplicação)

*

Startup rápido, pouca memória / alta responsividade *

MVC 6 (MVC + Web API + Web Pages), SignalR 3

Page 41: .NET 2015, ASP.NET 5, C# 6 e tudo mais

Entity Framework 6.xEvolução do EF atualContinuará rodando no .NET Framework 4.6

Entity Framework 7Suas habilidades em LINQ e EF serão reusadas, fácil

de migrar a maioria dos aplicativos existentes hojeOtimizado para nuvem (baixo consumo de memória e

alta eficiência)Otimizado para dispositivos (leve, funciona com

SQLite)Suporta bases relacionais e não-relacionaisRoda no .NET Core 5 e .NET Framework 4.6Pronto para closs-platform (baseado no .NET Core 5)Feito com cenários desconectados em mente (web

services)Ambas são OPEN SOURCE!

Acesso a dados / investimentos ORM no .NET

Page 42: .NET 2015, ASP.NET 5, C# 6 e tudo mais

Participe!

Page 43: .NET 2015, ASP.NET 5, C# 6 e tudo mais

• Visual Studio Community 2015 RC (grátis para sempre)

http://bit.ly/vs2015dl• Visual Studio Code (cross-platform)https://code.visualstudio.com/

Como testar o ASP.NET 5 hoje

Page 44: .NET 2015, ASP.NET 5, C# 6 e tudo mais

• Linkinception! (Esta apresentação)http://1drv.ms/1zPTRM3

• Community Roundupshttps://www.youtube.com/playlist?list=PL0M0zPgJ3HSftTAAHttA3JQU4vOjXFquF

• Documentação ASP.NET (open source)http://docs.asp.net/en/latest/

• Jabbrhttps://jabbr.net/#/rooms/AspNetvNext

• GitHub AspNethttps://github.com/aspnet/

• Projetos do .NET Foundationhttp://www.dotnetfoundation.org/projects

Links + Bônus

Page 45: .NET 2015, ASP.NET 5, C# 6 e tudo mais

• Ferramentas da Modern Web no Visual Studio 2015http://high5devs.com/2015/02/o-visual-studio-2015-e-a-modern-web-2/

• ASPNET 5 rodando numa Raspberry Pi 2http://www.hanselman.com/blog/HowToRunASPNET5Beta3OrGoLangOnARaspberryPi2.aspx

• Omnisharphttp://www.omnisharp.net/

• Code Crackerhttp://code-cracker.github.io/

• Código-fonte do .NET completohttp://referencesource.microsoft.com/

• Analisando algumas mudanças do Entity Framework 7http://bit.ly/1DX2rne

Links + Bônus