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

Post on 08-Jan-2017

99 views 0 download

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

Mahmoud Ali (iamakamud@gmail.com)@akamud

.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

Microsoft ♥ Open source

.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

• Por que não Codeplex?

Microsoft no GitHub

http://dotnet.github.io/

Crescimento da comunidade .NET OSS

98 repositories13557 forks2360 contributors

Crescendo diariamente

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

Qualquer app, qualquer plataforma

.NETC#VB

F#

JavaScript

Inovação .NET

Cross-Platform

Open Source

O caminho à frente do .NET.NET Core

ASP.NET 5

Abertura das plataformas

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

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

.NET Core

NuGet é mainstream no .NET Core

.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

.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

.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

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/

Demo: Roslyn

O ASP.NET 5

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?

• 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)

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

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

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

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

Modern Web – Ferramentas padrões

Demo: ASP.NET 5 no Visual Studio 2015 RC

Modern Web – Cross Platform

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

Open Source com contribuições

RuntimeWindows, Mac, Linux

OSS

Tudo pode ser feito pela linha de comando

.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

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)

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

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

Demo: ASP.NET 5 no Mac com VS Code

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

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?

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

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)

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

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

Participe!

• 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

• 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

• 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

@akamudhttp://high5devs.comiamakamud@gmail.com