1. Criando uma aplicação ASP.NET MVC com auxílio do NuGet Fabrício Sanchez |MVC Summit 2011
2. 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
4. Introdução / Motivação Reutilização de código é uma característica desejável 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
6. NuGet - 1 Cenário: utilização do NHibernate no projeto ‘X’ 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
7. NuGet - 2 NuGet é um gerenciador de pacotes/bibliotecas 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)
8. NuGet - 3 Locais de busca: Feed ATOM, repositório local ou rede É 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
10. NuGet – Instalação 1 Download na página do projeto no Codeplex É 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
19. PowerShell 1 Ferramenta para gestão de recursos via shell 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
22. NuGet - Comandos 1 Get-Package 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
24. NuGet - Comandos 3 Install-Package 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
26. NuGet - Comandos 5 Update-Package 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
28. NuGet - Comandos 8 Uninstall-Package 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
32. NuGet - Criando pacote 1 Regras Criar um arquivo com as extensão ‘nuspec’ e conteúdo XML Estruturar diretórios do pacote Baixar a ferramenta ‘nuget.exe’ Encapsular os arquivos e diretórios do pacote via linha de comando (MS-DOS)
33. NuGet - Criando pacote 2 1. Arquivo de manifesto <?xmlversion="1.0" encoding="utf-8"?> <packagexmlns="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="Contentpp_Code" /> <file src="Content.css" target="Contentpp_Code" /> <file src="Content.png" target="Contentpp_Code" /> </files> </package>
34. NuGet - Criando pacote 3 2. Estrutura de diretórios 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
35. NuGet - Criando pacote 4 3. Baixar NuGet.exe http://nuget.codeplex.com/releases/57303/download/197743 Ferramenta para geração de pacote: NuGet.exe
38. ASP.NET MVC - Prática Adicionando repositório e utilizando o helper 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
40. 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
41. 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/
42. 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