Conhecendo o NuGet e utilizando com ASP.NET MVC

43
Criando uma aplicação ASP.NET MVC com auxílio do NuGet Fabrício Sanchez | MVC Summit 2011

description

Nesta apresentação demonstro os conceitos relacionados ao NuGet e como podemos utilizá-lo numa aplicação ASP.NET MVC.

Transcript of Conhecendo o NuGet e utilizando com ASP.NET MVC

Page 1: Conhecendo o NuGet e utilizando com ASP.NET MVC

Criando uma aplicação ASP.NET MVC com auxílio do NuGet

Fabrício Sanchez | MVC Summit 2011

Page 2: Conhecendo o NuGet e utilizando com ASP.NET MVC

• Introdução / Motivação• NuGet– O que é e para que serve?– Instalação– Utilizando no Visual Studio 2010– Gerenciando via PowerShell– Criando e utilizando pacotes

• Demonstração

Agenda

Page 3: Conhecendo o NuGet e utilizando com ASP.NET MVC

IntroduçãoNuGet surgiu com que objetivo?

Page 4: Conhecendo o NuGet e utilizando com ASP.NET MVC

• Reutilização de código é uma característica desejável

Introdução / Motivação

• Existe uma grande quantidade de componentes e bibliotecas .NET

• Gerenciar tais componentes, bibliotecas e suas dependências é complexo

• Surgiu a necessidade de uma ferramenta que automatizasse tal gerenciamento

Page 5: Conhecendo o NuGet e utilizando com ASP.NET MVC

NuGetO que é? Para que serve?

Page 6: Conhecendo o NuGet e utilizando com ASP.NET MVC

• Cenário: utilização do NHibernate no projeto ‘X’

NuGet - 1

• Passo 1: Procurar pela versão mais recente na internet (dependências inclusive)

• Passo 2: Adicionar referências manualmente ao projeto

• Passo 3: Constatar eventuais problemas e corrigí-los

LENTIDÃO - RETRABALHO

Page 7: Conhecendo o NuGet e utilizando com ASP.NET MVC

• NuGet é um gerenciador de pacotes/bibliotecas

NuGet - 2

• Integrado ao Visual Studio 2010 através de uma extension

• Integrado com PowerShell

• Projeto Open-Source lançado pela Microsoft

• Mantido por desenvolvedores da comunidade, principalmente do projeto Nubular (Nu)

Page 8: Conhecendo o NuGet e utilizando com ASP.NET MVC

• Locais de busca: Feed ATOM, repositório local ou rede

NuGet - 3

• É possível integrar recursos do PowerShell com comandos NuGet

• Pode ser utilizado com qualquer tipo de projeto dentro da plataforma .NET

• Pré-requisito para utilização do NuGet com PowerShell: versão 2.0 instalada

Page 9: Conhecendo o NuGet e utilizando com ASP.NET MVC

NuGetO processo de instalação...

Page 10: Conhecendo o NuGet e utilizando com ASP.NET MVC

• Download na página do projeto no Codeplex

NuGet – Instalação 1

• É disponibilizado através de uma extensão do Visual Studio 2010 (vsix)

• Funciona para todas as versões do Visual Studio 2010, inclusive as livres

Page 11: Conhecendo o NuGet e utilizando com ASP.NET MVC

NuGet – Instalação 2

http://nuget.codeplex.com/releases

Page 12: Conhecendo o NuGet e utilizando com ASP.NET MVC

NuGetUtilizando com Visual Studio 2010

Page 13: Conhecendo o NuGet e utilizando com ASP.NET MVC

• Add Library Package Reference (Adicionar pacotes)

NuGet – Utilizando 1

• Add Library Package Reference > Settings (Configuração do NuGet)

• Tools > Library Package Manager > Package Manager Settings (Configuração do NuGet)

• View > Other windows > Package Manager Console (Interface PowerShell)

Page 14: Conhecendo o NuGet e utilizando com ASP.NET MVC

• Add Library Package Reference

NuGet – Utilizando 2

Page 15: Conhecendo o NuGet e utilizando com ASP.NET MVC

• Add Library Package Reference > Settings

NuGet – Utilizando 3

Page 16: Conhecendo o NuGet e utilizando com ASP.NET MVC

• View > Other windows > Package Manager Console

NuGet – Utilizando 4

Gerenciamento via PowerShell

Page 17: Conhecendo o NuGet e utilizando com ASP.NET MVC

Demo1NuGet e o Visual Studio 2010

Page 18: Conhecendo o NuGet e utilizando com ASP.NET MVC

PowerShellBásico sobre a ferramenta

Page 19: Conhecendo o NuGet e utilizando com ASP.NET MVC

• Ferramenta para gestão de recursos via shell

PowerShell 1

• Rica coleção de verbos

• Pipeline baseado em objetos

• Voltado para construção de scripts

• Implementa o conceito de Cmdlets

• Cmdlets facilitam o aprendizado do vocabulário

Page 20: Conhecendo o NuGet e utilizando com ASP.NET MVC

PowerShell em execução

PowerShell 2

Obtendo informações sobre o

processo da calculadora

Page 21: Conhecendo o NuGet e utilizando com ASP.NET MVC

NuGetNuGet, PowerShell e o Visual Studio 2010

Page 22: Conhecendo o NuGet e utilizando com ASP.NET MVC

Get-Package

NuGet - Comandos 1

• Lista pacotes definidos para determinado source

• Parâmetros para o comando– Source: repositório de pacotes (ATOM, local ou rede)– Updates: pacotes com atualizações disponíveis– Remote: lista pacotes em um feed específico– Filter: refina a busca com base no critério especificado

Page 23: Conhecendo o NuGet e utilizando com ASP.NET MVC

Get-Package

NuGet - Comandos 2

• Alguns exemplos

• Get-Package • Get-Package –Remote• Get-Package –Source ‘path’• Get-Package –Updates

Page 24: Conhecendo o NuGet e utilizando com ASP.NET MVC

Install-Package

NuGet - Comandos 3

• Adiciona um pacote e suas dependências ao projeto

• Parâmetros para o comando– Id: pacote a ser instalado (obrigatório)– IgnoreDependencies: ignora dependências do pacote– Project: Informa o projeto que receberá o pacote– Source: repositório onde o pacote será buscado– Version: verifica a versão do pacote a ser instalado

Page 25: Conhecendo o NuGet e utilizando com ASP.NET MVC

Install-Package

NuGet - Comandos 4

• Alguns exemplos

• Install-Package –Id jQuery • Install-Package ‘pacote’ –Source ‘path’• Install-Package ‘pacote’ –Source ‘path’ -Version ‘versão’

Page 26: Conhecendo o NuGet e utilizando com ASP.NET MVC

Update-Package

NuGet - Comandos 5

• Atualiza um pacote e suas dependências

• Parâmetros para o comando– Id: pacote a ser atualizado (obrigatório)– UpdateDependencies: atualiza dependências do pacote– Project: Informa o projeto que receberá o pacote– Source: repositório onde o pacote será buscado– Version: especifica a versão do pacote a qual será

atualizada

Page 27: Conhecendo o NuGet e utilizando com ASP.NET MVC

Update-Package

NuGet - Comandos 6

• Alguns exemplos

• Update-Package Facebook.Helper• Update-Package Facebook.Helper –Version 1.0

Page 28: Conhecendo o NuGet e utilizando com ASP.NET MVC

Uninstall-Package

NuGet - Comandos 8

• Remove um pacote e suas dependências do projeto

• Parâmetros para o comando– Id: pacote a ser removido (obrigatório)– RemoveDependencies: remove dependências do pacote– Force: força a remoção, mesmo que outros dele

dependam– Source: repositório onde o pacote será buscado– Project: define o projeto do qual será removido o pacote

Page 29: Conhecendo o NuGet e utilizando com ASP.NET MVC

Uninstall-Package

NuGet - Comandos 9

• Alguns exemplos

• Uninstall-Package -Id elmah• Uninstall-Package GuEditor -RemoveDependencies

Page 30: Conhecendo o NuGet e utilizando com ASP.NET MVC

Demo2

Algumas possibilidades do NuGetcom Package Manager Console

Page 31: Conhecendo o NuGet e utilizando com ASP.NET MVC

NuGetCriando e distribuindo seu pacote

Page 32: Conhecendo o NuGet e utilizando com ASP.NET MVC

Regras

NuGet - Criando pacote 1

1. Criar um arquivo com as extensão ‘nuspec’ e conteúdo XML

2. Estruturar diretórios do pacote3. Baixar a ferramenta ‘nuget.exe’4. Encapsular os arquivos e diretórios do pacote via

linha de comando (MS-DOS)

Page 33: Conhecendo o NuGet e utilizando com ASP.NET MVC

1. Arquivo de manifesto

NuGet - Criando pacote 2

<?xml version="1.0" encoding="utf-8"?><package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> <metadata>

<id>Helper.Eventos.2011</id> <version>1.0.0</version> <authors>Fabricio Sanchez</authors> <description>Este helper adiciona a seu site, uma barra com os links dos sites dos principais eventos de 2011.</description> <language>pt-BR</language> </metadata> <files> <file src="Content\*.cshtml" target="Content\App_Code" /> <file src="Content\*.css" target="Content\App_Code" /> <file src="Content\*.png" target="Content\App_Code" /> </files></package>

Page 34: Conhecendo o NuGet e utilizando com ASP.NET MVC

2. Estrutura de diretórios

NuGet - Criando pacote 3

Contém o Helper, o CSHTML e a imagem de background

Arquivo de manifesto do

pacote (será lido pelo NuGet)

Receberá o pacote no final gerado pelo NuGet.exe

Page 35: Conhecendo o NuGet e utilizando com ASP.NET MVC

3. Baixar NuGet.exe

NuGet - Criando pacote 4

Ferramenta para geração de pacote: NuGet.exe

http://nuget.codeplex.com/releases/57303/download/197743

Page 36: Conhecendo o NuGet e utilizando com ASP.NET MVC

4. Gerar pacote NuGet

NuGet - Criando pacote 5

Page 37: Conhecendo o NuGet e utilizando com ASP.NET MVC

ASP.NET MVCAdicionando repositório e utilizando na aplicação

Page 38: Conhecendo o NuGet e utilizando com ASP.NET MVC

Adicionando repositório e utilizando o helper

ASP.NET MVC - Prática

• Etapas:

• Criar uma aplicação ASP.NET MVC 3 com Razor• Adicionar um repositório local• Instalar o Helper criado anteriormente

‘HelperEventos2011’• Utilizar o helper na aplicação

Page 39: Conhecendo o NuGet e utilizando com ASP.NET MVC

Demo3NuGet, VS 2010 e ASP.NET MVC na Prática

Page 40: Conhecendo o NuGet e utilizando com ASP.NET MVC

Conclusões

• NuGet é uma ótima alternativa para gerenciar dependências

• PowerShell é uma excelente opção para manipular o NuGet

• Reaproveitar código é sempre uma excelente alternativa

Page 42: Conhecendo o NuGet e utilizando com ASP.NET MVC

Informações de contato

• Blog:http://fabriciosanchez.com.br/

• Twitter:http://twitter.com/SanchezFabricio

• Facebook:http://facebook.com/fabriciolopessanchez

• Linkedin:http://www.linkedin.com/in/fabriciosanchez

Page 43: Conhecendo o NuGet e utilizando com ASP.NET MVC

Obrigado a todos