conhecendo o nuget e utilizando com asp.net mvc
DESCRIPTION
Nesta apresentação demonstro os conceitos relacionados ao NuGet e como podemos utilizá-lo numa aplicação ASP.NET MVC.TRANSCRIPT
![Page 1: Conhecendo o NuGet e utilizando com ASP.NET MVC](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/1.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/2.jpg)
• 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](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/3.jpg)
IntroduçãoNuGet surgiu com que objetivo?
![Page 4: Conhecendo o NuGet e utilizando com ASP.NET MVC](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/4.jpg)
• 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](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/5.jpg)
NuGetO que é? Para que serve?
![Page 6: Conhecendo o NuGet e utilizando com ASP.NET MVC](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/6.jpg)
• 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](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/7.jpg)
• 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](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/8.jpg)
• 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](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/9.jpg)
NuGetO processo de instalação...
![Page 10: Conhecendo o NuGet e utilizando com ASP.NET MVC](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/10.jpg)
• 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](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/11.jpg)
NuGet – Instalação 2
http://nuget.codeplex.com/releases
![Page 12: Conhecendo o NuGet e utilizando com ASP.NET MVC](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/12.jpg)
NuGetUtilizando com Visual Studio 2010
![Page 13: Conhecendo o NuGet e utilizando com ASP.NET MVC](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/13.jpg)
• 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](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/14.jpg)
• Add Library Package Reference
NuGet – Utilizando 2
![Page 15: Conhecendo o NuGet e utilizando com ASP.NET MVC](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/15.jpg)
• Add Library Package Reference > Settings
NuGet – Utilizando 3
![Page 16: Conhecendo o NuGet e utilizando com ASP.NET MVC](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/16.jpg)
• View > Other windows > Package Manager Console
NuGet – Utilizando 4
Gerenciamento via PowerShell
![Page 17: Conhecendo o NuGet e utilizando com ASP.NET MVC](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/17.jpg)
Demo1NuGet e o Visual Studio 2010
![Page 18: Conhecendo o NuGet e utilizando com ASP.NET MVC](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/18.jpg)
PowerShellBásico sobre a ferramenta
![Page 19: Conhecendo o NuGet e utilizando com ASP.NET MVC](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/19.jpg)
• 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](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/21.jpg)
NuGetNuGet, PowerShell e o Visual Studio 2010
![Page 22: Conhecendo o NuGet e utilizando com ASP.NET MVC](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/25.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/26.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/27.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/28.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/29.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/30.jpg)
Demo2
Algumas possibilidades do NuGetcom Package Manager Console
![Page 31: Conhecendo o NuGet e utilizando com ASP.NET MVC](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/31.jpg)
NuGetCriando e distribuindo seu pacote
![Page 32: Conhecendo o NuGet e utilizando com ASP.NET MVC](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/32.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/33.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/34.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/35.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/36.jpg)
4. Gerar pacote NuGet
NuGet - Criando pacote 5
![Page 37: Conhecendo o NuGet e utilizando com ASP.NET MVC](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/37.jpg)
ASP.NET MVCAdicionando repositório e utilizando na aplicação
![Page 38: Conhecendo o NuGet e utilizando com ASP.NET MVC](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/38.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/39.jpg)
Demo3NuGet, VS 2010 e ASP.NET MVC na Prática
![Page 40: Conhecendo o NuGet e utilizando com ASP.NET MVC](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/40.jpg)
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 41: Conhecendo o NuGet e utilizando com ASP.NET MVC](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/41.jpg)
Links
• NuGet: http://nuget.codeplex.com/
• Documentação oficial: http://nuget.codeplex.com/documentation?referringTitle=Home
• Como contribuir com NuGet: http://nuget.codeplex.com/documentation?title=Contributing%20to%20NuPack
• Conceitos sobre PowerShell: http://elemarjr.net/category/powershell/
![Page 42: Conhecendo o NuGet e utilizando com ASP.NET MVC](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/42.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b54c2d4a7959a77c8b45bd/html5/thumbnails/43.jpg)
Obrigado a todos