Estou animado hoje para anunciar o lançamento de vários produtos:
- ASP.NET MVC 3
- NuGet
- IIS Express 7.5
- SQL Server Compact Edition 4
- Web Deploy e Web Web Farm Framework 2.0
- Orchard 1.0
- WebMatrix 1.0
Os produtos acima são todos gratuitos. Eles são construídos tendo como base o lançamento do .NET 4 e VS 2010 (em Inglês), e adicionam muito valor adicional para a ASP.NET (Web Forms e MVC) e para a pilha do Microsoft Web Server.
ASP.NET MVC 3
Hoje nós estamos lançando a versão final da ASP.NET MVC 3. Você pode baixar e instalar a ASP.NET MVC 3 aqui. O código-fonte da ASP.NET MVC 3 (lançado sob uma licença de código
aberto compatível com OSI) também pode, opcionalmente, ser baixado aqui.
A ASP.NET MVC 3 é uma atualização significante que traz com ela vários e ótimos recursos. Algumas das melhorias incluem:
Razor
A
ASP.NET MVC 3 vem com uma nova opção de motor de visões chamada "Razor"
(além de continuar a suportar/melhorar o motor de visões .aspx
existente). O Razor minimiza o número de caracteres e teclas
necessárias ao escrever um modelo de visão, e permite um fluxo de
trabalho de codificação rápido e fluído.
Ao contrário da maioria
das sintaxes de modelos, você não precisa interromper sua codificação
para indicar explicitamente o início e o fim de blocos do servidor
dentro do seu código HTML. O analisador do Razor é inteligente o
suficiente para deduzir esses blocos a partir do seu código. Isto
permite uma sintaxe muito compacta e expressiva, que é limpa, rápida e
divertida para digitar.
Você pode saber mais sobre o Razor a partir de alguns dos posts que escrevi sobre ele ao longo dos últimos seis meses:
O
lançamento de hoje tem suporte completo da IntelliSense de código para o
Razor (VB e C #) com o Visual Studio 2010 e o gratuito Visual Web
Developer 2010 Express.
Melhorias de JavaScript
A ASP.NET MVC 3 permite cenários mais ricos de JavaScript e tira proveito dos recursos que estão surgindo com a HTML5.
Os métodos de ajuda AJAX de Validação na ASP.NET MVC 3 agora usam uma abordagem JavaScript discreta/não obtrusiva (em Inglês).
JavaScript não obtrusivo evita a injeção de código JavaScript dentro
da marcação HTML, e permite uma separação mais clara de comportamento
usando a nova convenção de atributo "data-" da HTML 5 (o qual,
convenientemente, funciona em navegadores mais antigos - incluindo IE6).
Isto mantém seu HTML simples e limpo, e torna mais fácil,
opcionalmente, trocar ou personalizar bibliotecas JS.
A ASP.NET MVC 3 agora inclui suporte nativo para postar parâmetros baseados em JSON
(em Inglês) a partir de JavaScript no lado do cliente para métodos de ação no
servidor. Isso facilita a troca de dados entre o cliente e o servidor, e
constrói ricas front-ends (interfaces do usuário) em JavaScript. Nós
achamos que esta capacidade será especialmente útil daqui para frente,
com cenários que envolvem modelos do cliente e ligação de dados (em Inglês) - incluindo os plugins da jQuery que o time da ASP.NET contribuiu recentemente para o projeto jQuery.
Versões
anteriores da ASP.NET MVC incluíram a biblioteca central da jQuery. A
ASP.NET MVC 3 agora também traz o plugin jQuery Validate (o qual nossos
métodos de ajuda de validação usam em cenários de validação no lado do
cliente). Nós também estamos enviando e incluindo o plugin jQuery UI,
por padrão (o qual fornece um rico conjunto de widgets de UI JavaScript
para o lado do cliente para você usar dentro de seus projetos).
Validação Melhorada
A
ASP.NET MVC 3 inclui um conjunto grande de aprimoramentos para
validação de dados que torna ainda mais fácil trabalhar com dados.
Validação
no lado do cliente é agora ativada por padrão com a ASP.NET MVC 3
(usando uma implementação JavaScript não-obtrusiva). O lançamento de
hoje também inclui suporte nativo para Validação Remota (em Inglês)
- que te permite fazer anotações em uma classe do modelo com um
atributo de validação que faz com que a ASP.NET MVC realize uma chamada
de validação remota para um método do servidor quando for validar os
dados de entrada no cliente.
Os recursos de validação
introduzidos no namespace System.ComponentModel.DataAnnotations do .NET 4
são agora suportados pela ASP.NET MVC 3. Isso inclui suporte para a
nova interface IValidatableObject
- que te permite executar validação no nível do modelo, e te permite
fornecer mensagens de erro de validação específicas para o estado geral
do modelo, ou entre duas propriedades do modelo.
A ASP.NET MVC 3
também suporta as melhorias feitas na classe ValidationAttribute no
.NET 4. A classe ValidationAttribute agora suporta uma nova sobrecarga
IsValid que fornece mais informações sobre o contexto atual de
validação, tal como qual é o objeto que está sendo validado. Isso
permite cenários mais ricos, onde você pode validar o valor atual tendo
como base outra propriedade do modelo. Nós entregamos um atributo de validação [Compare] nativo (em Inglês) com a ASP.NET MVC 3 que usa esse suporte e que torna fácil comparar e validar os valores de propriedade.
Você
pode usar qualquer API ou tecnologia de acesso a dados com a ASP.NET
MVC. No ano passado, trabalhamos em estreita colaboração com o time de
Dados do .NET para assegurar que a nova biblioteca EF Code First funcione muito bem em aplicações ASP.NET MVC. Estes dois posts
que escrevi cobrem as últimas amostras da EF Code First e demonstram
como usar a biblioteca com a ASP.NET MVC 3 para permitir a fácil edição
de dados (com suporte para validação de dados cliente-servidor, ponta a
ponta). A versão final da biblioteca EF Code First será lançada nas
próximas semanas.
Hoje também estamos publicando a primeira
prévia de um novo projeto MvcScaffolding. Ele permite que você
facilmente crie automaticamente Controladores e Visões para ASP.NET MVC
3, e funciona muito bem com a EF Code-First (e é conectável para
suportar outros provedores de dados). Você pode aprender mais sobre ele
- e instalá-lo via NuGet hoje - a partir do post MvcScaffolding no blog de Steve Sanderson (em Inglês).
Cache de Saída
Versões anteriores da ASP.NET MVC suportaram o cacheamento do conteúdo de saída no nível de uma URL ou método de ação.
Com
a ASP.NET MVC V3 nós também estamos permitindo suporte para o
cacheamento de saída de páginas parciais - o que te permite facilmente
fazer o cacheamento de saída de regiões ou fragmentos de uma resposta em
oposição à totalidade da página. Isso acaba sendo super útil em muitas
situações, e permite reduzir drasticamente o trabalho que sua aplicação
faz no servidor.
O novo suporte para cache de saída de página
parcial na ASP.NET MVC 3 permite que você facilmente reuse
sub-regiões/fragmentos de uma página em várias URLs de um site. Ele
suporta a capacidade de armazenar em cache o conteúdo tanto no servidor
web, ou, opcionalmente, cache-lo dentro de um servidor de cache
distribuído, como o Windows Server AppFabric ou memcached.
Vou
postar alguns tutoriais no meu blog que mostram como tirar proveito do
novo suporte para cache de saída da ASP.NET MVC 3 para cenários de
página parcial.
Melhor Injeção de Dependência
A
ASP.NET MVC 3 oferece um melhor suporte para a aplicação de Injeção de
Dependência (Dependency Injection - DI) e integração com contêineres de
injeção de dependência/IOC.
Com a ASP.NET MVC 3, você já não
precisa criar classes ControllerFactory customizadas a fim de ativar DI
com controladores. Você pode ao invés disso, apenas registrar um
framework/contêiner de injeção de dependência com a ASP.NET MVC 3 e ele
irá resolver as dependências, não somente para Controladores, mas também
para a Visões, Filtros de Ação, Model Binders (Ligadores de Dados do Modelo), Provedores de Valor (Value Providers), Provedores de Validação
(Validation Providers) e Provedores de Metadados para o Modelo (Model
Metadata Providers) que você usa dentro de sua aplicação.
Isso torna muito mais fácil integrar de maneira limpa a injeção de dependência dentro de seus projetos.
Outras Coisas Boas
A
ASP.NET MVC 3 inclui dezenas de outras melhorias agradáveis que ajudam a
reduzir a quantidade de código que você escreve e que tornam o código
que você escreve mais limpo. Aqui estão alguns exemplos:
- Janela
de diálogo New Project (Novo Projeto) melhorada, o que torna mais fácil começar novos
projetos ASP.NET MVC 3 a partir de modelos de projeto existentes.
- Suporte
melhorado para scaffolding (criação automática) para a opção
Add->View (Adicionar->Visão), a qual permite a geração de modelos de visão ainda mais
limpos.
- Nova propriedade ViewBag que usa o suporte a tipos
dinâmicos do .NET 4 para tornar mais fácil passar dados dos
controladores para visões.
- Suporte a Filtros Globais que
permite especificar atributos de filtro (como [HandleError]) em todos os
controladores dentro de uma aplicação.
- Novo atributo
[AllowHtml] que permite a validação de uma solicitação de forma mais
granular quando é feita a ligação dos dados do formulário em modelos.
- Suporte
para controladores sem sessão, o que permite o controle fino no tocante
a SessionState estar habilitada ou não em um controlador.
- Novos tipos de ActionResult como HttpNotFoundResult e RedirectPermanent (em Inglês) para cenários HTTP comuns.
- Novo método de ajuda Html.Raw() para indicar que a saída não deve ser codificada em HTML.
- Novos métodos de ajuda Crypto (criptografia) para salgar e fazer o hash de senhas.
- E muito, muito mais ...
Aprenda Mais sobre a ASP.NET MVC 3
Estaremos postando muitos tutoriais e amostras no site http://asp.net/mvc nas próximas semanas. A seguir estão dois bons tutoriais sobre a ASP.NET MVC 3 disponíveis no site hoje (em Inglês):
Postaremos tutoriais sobre a ASP.NET MVC 3 adicionais e vídeos no site http://asp.net/mvc no futuro. Visite o site regularmente para encontrar novos tutoriais.
Como Atualizar Projetos Existentes
A
ASP.NET MVC 3 é compatível com a ASP.NET MVC 2 - o que significa que
deve ser fácil atualizar projetos MVC existentes para a ASP.NET MVC 3.
As
novas funcionalidades incluídas na ASP.NET MVC 3 são construídas em
cima do trabalho de base que já fizemos com os lançamentos da MVC 1 e
MVC 2 - o que significa que as habilidades, conhecimentos, bibliotecas e
livros que você adquiriu são diretamente aplicáveis com o lançamento da
MVC 3. A MVC 3 adiciona novas funcionalidades e capacidades - ela não
torna nenhuma já existente obsoleta.
Você pode atualizar projetos ASP.NET MVC 2 existentes, seguindo os passos de atualização manual nas notas de lançamento (em Inglês). Alternativamente, você pode usar essa ferramenta automatizada de atualização da ASP.NET MVC 3 (em Inglês) para facilmente atualizar seus projetos existentes.
Versões Localizadas
O
lançamento da ASP.NET MVC 3 de hoje está disponível em Inglês. Estaremos lançando versões localizadas da ASP.NET MVC 3 (em 9 idiomas)
em poucos dias. Colocarei no blog links para os downloads localizados,
assim que estiverem disponíveis.
NuGet
Hoje
estamos lançando o NuGet - um gerenciador de pacotes gratuito, de código
livre que torna fácil encontrar, instalar e usar bibliotecas de código
aberto em seus projetos. Ele funciona com todos os tipos de projeto do
.NET (incluindo ASP.NET Web Forms, ASP.NET MVC, WPF, WinForms,
Silverlight e Bibliotecas de Classe - class libraries). Você pode fazer o download e
instalá-lo aqui.
O NuGet permite que os desenvolvedores que
mantêm projetos de código aberto (por exemplo, projetos .NET como Moq,
NHibernate, Ninject, StructureMap, NUnit, Windsor, Raven, Elmah, etc)
empacotem suas bibliotecas e registrem as mesmas em uma galeria/catálogo
online que é pesquisável. As ferramentas do NuPack no lado do cliente -
que incluem plena integração com o Visual Studio - tornam trivial para
qualquer desenvolvedor .NET que quer usar uma dessas bibliotecas
encontrar e instalar as mesmas dentro do projeto no qual estão
trabalhando.
O NuPack trata o gerenciamento de dependências entre
as bibliotecas (por exemplo: library1 depende de library2). Também
torna mais fácil atualizar (e, opcionalmente, remover) bibliotecas de
seus projetos mais tarde. Ele suporta a atualização de arquivos
web.config (se um pacote precisa de definições de configuração). Ele
também permite que os pacotes adicionem scripts PowerShell em um projeto
(por exemplo: comandos para análise do projeto). Mais importante ainda,
o NuPack é transparente e limpo - e não instala nada no nível do
sistema. Em vez disso, ele é focado em tornar mais fácil o gerenciamento
de bibliotecas que você usa em seus projetos.
Nosso objetivo com
o NuPack é torná-lo o mais simples possível para integrar bibliotecas
de código aberto dentro de projetos .NET.
Galeria/Catálogo do NuGet
Nesta semana, também lançamos uma versão beta do web site http://nuget.org
- que permite que qualquer pessoa facilmente pesquise e navegue por uma
galeria online de pacotes de código aberto disponíveis via NuGet. O
site também permite que desenvolvedores opcionalmente enviem novos
pacotes que desejam compartilhar com os outros. Você pode saber mais
sobre como criar e compartilhar um pacote aqui (em Inglês).
Há centenas de projetos .NET de código aberto já dentro da Galeria NuGet. Esperamos ter milhares no futuro.
IIS Express 7.5
Hoje
estamos lançando também o IIS Express 7.5. O IIS Express é uma versão
gratuita do IIS 7.5 que é otimizado para cenários de desenvolvimento. Ele funciona com projetos ASP.NET Web Forms e ASP.NET MVC.
Nós
pensamos que o IIS Express combina a facilidade de utilização do
Servidor Web da ASP.NET (também conhecido como Cassini), atualmente
incorporado no Visual Studio, com todo o poder do IIS. Especificamente:
- Ele é leve e fácil para instalar (menos de 5 MB de download e uma instalação rápida)
- Ele não requer uma conta de administrador para executar/depurar aplicativos do Visual Studio
- Ele habilita um conjunto completo de recursos de servidor web - incluindo SSL, Reescrita de URL e outros módulos do IIS 7.x.
- Ele suporta e habilita o mesmo modelo de extensibilidade e configurações do arquivo web.config que o IIS 7.x suporta
- Ele
pode ser instalado lado a lado com o servidor web IIS completo, bem
como o ASP.NET Development Server (eles não entram em conflito)
- Ele
funciona no Windows XP e sistemas operacionais mais novos - o que te dá
um conjunto completo de recursos de desenvolvimento do IIS 7.x em todas
as plataformas do sistema operacional Windows.
O IIS
Express (como o Servidor de Desenvolvimento da ASP.NET) pode ser
rapidamente iniciado para executar um site a partir de um diretório no
disco. Ele não necessita de qualquer registro/etapas de configuração.
Isto torna muito fácil lançar e executar cenários de desenvolvimento. Você também pode, opcionalmente, redistribuir o IIS Express com suas
próprias aplicações, se você quiser um servidor web leve. O EULA
(end-user license agreement) do IIS Express inclui agora direitos de
redistribuição.
O Visual Studio 2010 SP1 adiciona suporte para o IIS Express. Leia o meu post sobre o VS 2010 SP1 e IIS Express para saber mais sobre o que ele permite.
SQL Server Compact Edition 4
Hoje
estamos lançando também o SQL Server Compact Edition 4 (também
conhecido como SQL CE 4). O SQL CE é um motor de banco de dados
gratuito que pode ser integrado a uma aplicação, possibilitando um fácil
armazenamento de dados.
Instalação de Banco de Dados não mais Necessária
O SQL CE não
requer que você execute uma instalação ou instale um servidor de banco
de dados, a fim de usá-lo. Você pode simplesmente copiar os arquivos
binários do SQL CE para o diretório \bin de sua aplicação ASP.NET, e
então sua aplicação pode usá-lo como um mecanismo de banco de dados. Nenhuma instalação ou permissões de segurança adicionais são necessárias
para que ele seja executado. Você não precisa ter uma conta de
administrador na máquina. Basta copiar sua aplicação Web em qualquer
servidor e ela irá funcionar. Isto é verdadeiro mesmo em aplicações
medium-trust (nível de segurança média) rodando em um ambiente de
hospedagem.
O SQL CE é executado na memória dentro de sua
aplicação ASP.NET e será iniciado quando você acessar um banco de dados
SQL CE, e será desligado automaticamente quando a aplicação for
descarregada/parada. Bancos de dados SQL CE são armazenados como
arquivos que residem dentro da pasta \App_Data de suas aplicações
ASP.NET.
Trabalha com APIs de Dados Existentes
O
SQL CE 4 trabalha com APIs de dados existentes baseadas no .NET, e
suporta uma sintaxe de consulta compatível com o SQL Server. Isto
significa que você pode usar APIs de dados existentes como ADO.NET, bem
como ORMs de alto nível como Entity Framework e NHibernate com o SQL
CE. Isso permite que você use as mesmas habilidades de programação de
dados e APIs de dados que você conhece hoje.
Suporta Cenários de Desenvolvimento, Teste e Produção
O
SQL CE pode ser usado em cenários de desenvolvimento, testes, e
cenários leves de produção. Com o lançamento do SQL CE 4, fizemos o
trabalho de engenharia para garantir que o SQL CE não irá quebrar ou
entrar em um estado de deadlock (impasse) quando usado em um cenário de
servidor multi-thread (como ASP.NET). Esta é uma grande mudança a
partir de versões anteriores do SQL CE - que foram projetadas para
cenários cliente apenas e que explicitamente bloqueava sua execução em
ambientes de web-server. Começando com o SQL CE 4, você pode usá-lo em
um servidor web também.
Não há restrições de licença com o SQL CE. Ele também é totalmente gratuito.
Ferramentas de Apoio com o VS 2010 SP1
O Visual Studio 2010 SP1 adiciona suporte para o SQL CE 4 e Projetos ASP.NET. Leia meu post sobre o VS 2010 SP1 e SQL CE 4 (em Inglês) para saber mais sobre o que ele permite.
Web Deploy e Web Farm Framework 2.0
Hoje
também estamos lançando o Microsoft Web Deploy V2 e o Microsoft Web
Farm Framework V2. Estes serviços fornecem uma maneira flexível e
poderosa para implantar/instalar aplicações ASP.NET em um único servidor
ou em um cluster/fazenda/sítio de máquinas.
Você pode aprender mais sobre esses recursos a partir de meus posts anteriores sobre eles:
Visite o site http://iis.net para aprender mais e instalá-los. Ambos são gratuitos.
Orchard 1.0
Hoje também estamos lançando o Orchard v1.0.
O
Orchard é projeto baseado na comunidade que é gratuito e de código
fonte livre. Ele fornece um Content Management System (CMS) ou Sistema
de Gerenciamento de Conteúdo e um sistema de Blog prontos para serem
usados, e permitem que você facilmente crie e gerencie websites sem ter
que escrever código (proprietários de sites podem personalizar um site
através de ferramentas de edição baseadas no browser integrado no
Orchard). Leia estes tutoriais (em Inglês) para saber mais sobre como você poderá configurar e gerenciar o seu próprio site com o Orchard.
O
Orchard em si é construído como uma aplicação ASP.NET MVC 3 utilizando
modelos de visão do Razor (e por padrão usa o SQL CE 4 para o armazenamento
de dados). Os desenvolvedores que desejarem estender um site do
Orchard com funcionalidades personalizadas podem abrir e editá-lo como um
projeto do Visual Studio - e adicionar novos Controladores/Visões
nele.
WebMatrix 1.0
A WebMatrix é uma nova
ferramenta gratuita de desenvolvimento web da Microsoft que fornece um
conjunto de tecnologias que tornam mais fácil habilitar o
desenvolvimento de Web sites. Ela permite que um desenvolvedor inicie
um novo site, navegando e fazendo download de um modelo de aplicação a
partir de uma galeria online de aplicações web (as quais incluem
aplicações populares como Umbraco, DotNetNuke, Orchard, WordPress,
Drupal e Joomla). Alternativamente, ela também permite aos
desenvolvedores criar e codificar web sites a partir do zero.
A
WebMatrix é focada em tarefas e ajuda a guiar os desenvolvedores
enquanto eles trabalham em sites. A WebMatrix inclui o IIS Express, o
SQL CE 4 e a ASP.NET - fornecendo uma combinação que contém um
web-server integrado, banco de dados e framework de programação. Ela
também inclui suporte nativo para a publicação/instalação de aplicações
web, o que torna fácil encontrar e implantar sites nos provedores de
hospedagem.
Você pode aprender mais sobre a WebMatrix a partir do meu post Apresentando a WebMatrix (em Inglês). Visite http://microsoft.com/web para fazer o download e instalá-la hoje.
Sumário
Eu
estou realmente animado com relação aos lançamentos de hoje - eles
fornecem um monte de valor adicional que torna o desenvolvimento Web com
ASP.NET, Visual Studio e Microsoft Web Server muito melhor.
Muitas pessoas trabalharam duro para compartilhar isso com você hoje. Em nome de toda minha equipe - esperamos que gostem!
Scott
PS
Além do blog, eu também estou agora utilizando o Twitter para
atualizações rápidas e para compartilhar links.Siga-me em:
twitter.com/ScottGu
Texto traduzido do post original por
Leniel Macaferi.