Arquivo da categoria: Mundo dos .NETs

Criação de Team Project Collections – Passo a Passo

 

image

 

image

 

image

 

image

 

image

 

image

 

image


Visual Studio 2010 – Novidades

O Microsoft Visual Studio 2010 Ultimate é um conjunto completo de ferramentas de gerenciamento de ciclo de vida do aplicativo para equipes, que garante resultados de qualidade, desde o design até a implantação. Seja para criar novas soluções ou aperfeiçoar aplicativos existentes, o Visual Studio 2010 Ultimate permite que você dê vida a suas ideias através de um número cada vez maior de plataformas e tecnologias — incluindo computação paralela e em nuvem.

Elimine o problema de “não reprodução” com o IntelliTrace

O novo recurso IntelliTrace torna o problema de não reprodução de bugs coisa do passado. Os testadores podem arquivar bugs ricos e acionáveis com informações do sistema e até mesmo incluir um instantâneo do ambiente, para que os desenvolvedores possam reproduzir o bug reportado no estado em que foi encontrado.

Entenda a arquitetura existente

O Architecture Explorer ajuda você a entender e expandir o valor de seus ativos de código existentes e suas interdependências. Você pode produzir modelos detalhados de como exatamente um aplicativo é construído e explorar áreas específicas para obter um entendimento mais profundo.

Garanta a conformidade arquitetônica

Use o novo diagrama em camadas para definir e comunicar a arquitetura lógica do aplicativo e para validar artefatos de código na arquitetura necessária. Os diagramas em camada ajudam a manter seus esforços de desenvolvimento alinhados para que seu aplicativo corresponda à sua visão original.

Adote testes manuais

O Visual Studio Test Professional 2010, parte do Visual Studio 2010 Ultimate, fornece uma ferramenta única para capturar e atualizar testes de requisitos, automatizar navegação de testes manuais e agilizar a correção e aceitar o ciclo capturando todo o contexto do teste. Isso oferece aos desenvolvedores tudo que precisam para garantir que cada erro seja reproduzível.

Seja proativo no gerenciamento de projetos Agile

O Visual Studio 2010 Ultimate foi otimizado para corresponder ao processo de desenvolvimento iterativo atual com recursos que ajudam o usuário a permanecer produtivo e a reagir aos possíveis riscos antes que eles aconteçam. Você pode monitorar a integridade do seu projeto usando relatórios que são gerados automaticamente, além de gerenciar a capacidade de seu projeto com dados históricos e documentos de planejamento arquitetados no Microsoft Excel.


Geração de código a partir de um diagrama UML – Paralelismo – IntelliTrace

UML e Geração de código com T4

postei aqui sobre a geração de código com o T4. A maior parte das pessoas que acompanha meus posts e comentários sabe que sou adepto da geração de código, seja pelo uso de DSL´s ou ferramentas de geração a partir de templates. Cerca de 60% do código de um aplicativo LOB é relativo a cadastros e creio que toda a parte cadastral é factível de ser gerada automaticamente a partir de um modelo (de banco de dados, uml, dsl ou outro tipo de metadado).

Bem, todos sabem que o novo Visual Studio tem UML. Porém, o que poucos sabem é que no novo VS podemos estender e usar o UML para criar profiles (pense em criar seu stereotypes) e gerar código a partir de um diagrama UML com o apoio do T4.

Dê uma olhada neste post do Oleg Sych para entender do que estou falando. Me diga depois se isto não pode aumentar muito a produtividade e promover o uso de MDD.

E para quem quer ter uma ótima introdução e referência ao T4, dê uma olhada em outro post do Oleg Sych… parece até um dos posts do Waldemir de tanto link 😉

Paralelismo

Continua a enxurrada de bons textos sobre o que tem de novo e melhores práticas com as novas bibliotecas de paralelismo do .Net Framework 4.0. Neste link você encontra os novos textos que saíram esta semana:

  • OptimizingUsingConcurrencyVisualizer.pdf
  • ParallelProgramsinNET4_CodingGuidelines.pdf
  • ParentChildTPLTasksRelationship.pdf
  • PerformanceCharacteristicsOfSyncPrimitives.pdf
  • PerformanceCharacteristicsOfThreadSafeCollection.pdf
  • PLINQOrderingModel.pdf
  • TPLOptionsTour.pdf
  • UsingCancellationinNET4.pdf
  • UsingPLINQinOfficeAddins.pdf
  • WhenToUseParallelForEachOrPLINQ.pdf
  • WorkflowAndParallelExtensionsinNET4.pdf

IntelliTrace

Por fim, insisto em vocês darem uma olhada no mecanismo de IntelliTrace (ou Historical Debugger) do Visual Studio novo. Ele permite gravar dados de uma sessão de uso do seu programa para você depois simular uma sessão de depuração com o histórico do que ocorreu naquela sessão.

Imagine alguém testando seu programa e encontrando um erro. Imagine agora você recebendo um arquivo de histórico desta sessão e podendo checar o que aconteceu, vendo por onde o programa passou e olhando os valores das variáveis em uma chamada ou em qualquer outro ponto do programa. Isto é o IntelliTrace.

Existe ainda pouca literatura sobre o IntelliTrace. Mas nas minhas pesquisas achei:

Se achar mais artigos semelhantes, por favor, me envie seus os links para divulgarmos. Esta tecnologia é importante demais para ficar pouco conhecida.


UML no Visual Studio 2010

Uma das ferramentas mais importantes para arquitetos e desenvolvedores é o UML – Unified Modeling Language. Utilizar diagramas UML durante a modelagem de requisitos e projetos orientados a objetivos é uma excelente prática e garante bons resultados, permitindo uma boa definição dos componentes do sistema.

Durante os últimos anos, o Visual Studio tem sido a ferramenta primária como IDE – Integrated Development Environment para desenvolvedores e testadores para o desenvolvimento, validação e testes sobre a plataforma .NET.

Era possível usar o Office Visio for Enterprise Architects 2005 ou o Office Visio 2010, com templates para UML para as atividades de modelagem. Já vi pessoas fazendo diagramas UML no Power Point (fiquei de boca aberta). Porém, a comunidade sempre pediu uma integração UML na própria IDE do Visual Studio. Essa integração chegou com o Visual Studio 2010.

O Visual Studio 2010 suporta os principais diagramas do UML 2.1.2, a seguir:

  • UML Classe Diagram
  • UML Sequence Diagram
  • UML Use Case Diargam
  • UML Activity Diagram
  • UML Component Diagram

A partir de um projeto de modelagem ou mesmo de um projeto .NET, podemos criar um dos diagramas UML, como vemos nos templates abaixo:

image

Além dos diagramas UML, o Visual Studio oferece também dois diagramas muito bons para a modelagem de projetos:

  • Layer Diagram (Diagrama de Camadas)
  • Directed Graph Document (Diagrama de Depedências)

O Visual Studio 2010 ainda oferece recursos extendidos para geração de código a partir de UML, assim como validação, importação de arquivos UML xmi e outros recursos, que você encontra no Modeling Feature Pack. Veja mais nos links abaixo:

Visualization and Modeling Feature Pack
Ref.: http://msdn.microsoft.com/en-us/library/dd460723.aspx

Modeling the Application
Ref.: http://msdn.microsoft.com/en-us/library/57b85fsc.aspx

Visual Studio 2010 Feature Packs
Ref.: http://msdn.microsoft.com/en-us/vstudio/ff655021.aspx

Visual Studio Downloads
Ref.: http://msdn.microsoft.com/en-us/vstudio/bb984878.aspx

Falaremos ainda mais sobre UML no Visual Studio 2010. Apenas lembrando, o Visual Studio 2010 possui muitas funcionalidades facinantes e a integração com os Diagramas UML irá facilitar muito a vida de desenvolvedores, lideres e gerente de projetos.


“Criptografar” e “Descriptografar” uma querystrings

No desenvolvimento Web é muito comum utilizarmos querystrings para passar informações de uma página para outra.

Veja a classe “Criptografia”, contendo os métodos “Criptografar” e “Descriptografar”:

using System;
using System.Text;
using System.IO;
using System.Security.Cryptography;


public class Criptografia
{
private static byte
[] chave = { };
private static byte
[] iv = { 12, 34, 56, 78, 90, 102, 114, 126 };


public Criptografia()
{

}

public static string Criptografar(string valor, string chaveCriptografia)
{
DESCryptoServiceProvider des;
MemoryStream ms;
CryptoStream cs; byte[] input;

try
{
des = new DESCryptoServiceProvider();
ms = new MemoryStream();

input = Encoding.UTF8.GetBytes(valor);chave = Encoding.UTF8.GetBytes(chaveCriptografia.Substring(0, 8));

cs = new CryptoStream(ms, des.CreateEncryptor(chave, iv), CryptoStreamMode.Write);
cs.Write(input, 0, input.Length);
cs.FlushFinalBlock();

return Convert.ToBase64String(ms.ToArray());
}
catch (Exception ex)
{
throw ex;
}
}

public static string Descriptografar(string valor, string chaveCriptografia)
{
DESCryptoServiceProvider des;
MemoryStream ms;
CryptoStream cs; byte[] input;

try
{
des = new DESCryptoServiceProvider();
ms = new MemoryStream();

input = new byte[valor.Length];
input = Convert.FromBase64String(valor.Replace(" ", "+"));

chave = Encoding.UTF8.GetBytes(chaveCriptografia.Substring(0, 8));

cs = new CryptoStream(ms, des.CreateDecryptor(chave, iv), CryptoStreamMode.Write);
cs.Write(input, 0, input.Length);
cs.FlushFinalBlock();

return Encoding.UTF8.GetString(ms.ToArray());
}
catch (Exception ex)
{
throw ex;
}
}
}


Para testar o funcionamento da rotinha criei dois webforms: “Pagina1.aspx” e “Pagina2.aspx”.

Na “Pagina1.aspx” adicionei um Button e implementei o seguinte código para o evento Click.

Onde é montada a URL com o valor da querystring criptografado pelo método “Criptografar” da Classe “Criptografia”.

Escolhi o valor 12 como ID de exemplo:


protected
void Button1_Click(object sender, EventArgs e)
{
string url = "Pagina2.aspx?id=" + Criptografia.Criptografar("12", "#!$a36?@");

Response.Redirect(url);
}


Já na “Pagina2.aspx”, adicionei um Label e implementei o seguinte código para o evento Load da página. E exibirá o valor da querystring, já descriptografado no Label:


protected void Page_Load(object sender, EventArgs e)
{
string querystring = Request.QueryString["id"];

Label1.Text = Criptografia.Descriptografar(querystring, "#!$a36?@");
}

Observe o resultado:


Querystring criptografada e resultado descriptografado



Agora você poderá criar aplicações mais seguras utilizando querystring.

http://www.desenvolvendoparaweb.net/profiles/blog/show?id=2307362:BlogPost:38725&xgs=1&xg_source=msg_share_post


Download Visual Studio 2010 e .Net Framework 4.0

Você pode baixar e fazer download gratuito com avaliação de 90 dias de uso para todas as versões. Professional, Premium, Ultimate e Professional Test, neste link você encontra o comparativo entre as versões sobre os seus recursos.

Você pode baixar também o Visual Studio Expression, totalmente gratuito. Visual Web Developer 2010, Visual Basic 2010, Visual C # 2010 e Visual C + +. Uma rápida configuração e instalação para desenvolvimento Web você pode instalar através do Microsoft Platform Installer Web, com apenas um clique em Install você terá configurado e instalado o 4 ASP.NET, ASP.NET MVC 2, IIS Web Developer do SQL Server Express 2010 e Visual Express.

Mais informações você consegue no hot do Visual Studio http://www.microsoft.com/visualstudio/pt-br/visual-studio-2010-launch.

Destaques do VS 2010 e. NET 4

 

O Sr. Scott Guthrie mantém uma serie sobre destaques do VS 2010 e .NET, você pode acompanhar os artigos nos links abaixo:

Bons Estudos !


ASP.NET MVC 2 – Teoria Básica

Este é o primeiro de uma série de posts que estou escrevendo sobre o próximo lançamento da ASP.NET MVC 2.  Este post abrange os novos helpers HTML (métodos de ajuda HTML) fortemente tipados adicionados na ASP.NET MVC 2.

A arquitetura MVC foi descrita em meados de 1979 e foi originalmente desenvolvida para mapear as tarefas tradicionais de entrada, processamento e saída para o modelo de interação com o usuário.  A mostra de forma objetiva a abstração do MVC.

Arquitetura - MVC

Métodos de Ajuda HTML Existentes

A ASP.NET MVC 1 foi lançada com um conjunto de métodos de ajuda HTML que podem ser usados dentro de view templates (modelos de visão) para ajudar com a geração do HTML utilizado na UI. Por exemplo, para gerar uma TextBox (caixa de texto) você poderia escrever código (dentro do seu modelo de visão .aspx) usando o método de ajuda HTML.TextBox() igual a seguir:

imagem

O primeiro parâmetro para o método de ajuda acima fornece o nome/id para a caixa de texto, e o segundo parâmetro especifica o valor que esta deveria ter.  O método de ajuda acima, então, renderizará código HTML como o mostrado a seguir de volta para um browser (navegador):

imagem

Novos Métodos de Ajuda HTML Fortemente Tipados

Uma dos pedidos de funcionalidade mais comuns que as pessoas tinham para a ASP.NET MVC 2 foi para que nós também suportássemos métodos de ajuda HTML fortemente tipados que usam expressões lambda quando estes referenciam modelos/visões de modelo passados para um modelo de visão. Isso permite uma melhor verificação do código das visões no tempo de compilação (de modo que os erros podem ser encontrados em tempo de compilação em oposição ao tempo de execução), e também permite um melhor suporte de código IntelliSense dentro dos modelos de visão.

Novos métodos de ajuda HTML são agora incorporados à ASP.NET MVC 2. Estes métodos utilizam uma convenção de nomes no formato "HTMLHelperNameFor()" Por exemplo: HTML.TextBoxFor(), HTML.CheckBoxFor(), HTML.TextAreaFor(), etc.  Eles suportam o uso de uma expressão lambda para especificar tanto o nome/id do elemento, bem como o valor a renderizar para ele.

Por exemplo, usando a ASP.NET MVC 2, podemos agora usar o método de ajuda HTML.TextBoxFor(), além do HTML.TextBox() acima:

imagem

Observe acima como nós não precisamos especificar o parâmetro do tipo string "ProductName" – expressões lambda são flexíveis o suficiente para que possamos recuperar o nome da propriedade/campo do nosso modelo de objeto além do seu valor.

Em virtude dos métodos de ajuda HTML serem fortemente tipados, também temos total suporte da IntelliSense para eles dentro do Visual Studio, ao escrevermos a expressão lambda:

imagem

O HTML renderizado é o mesmo do método de ajuda HTML mostrado anteriormente:

imagem

Lista de Métodos de Ajuda HTML Fortemente Tipados que Acompanham a ASP.NET MVC 2

A ASP.NET MVC 2 foi construída com suporte para os seguintes métodos de ajuda HTML fortemente tipados:

Métodos de Ajuda HTML para Elementos:

  • Html.TextBoxFor ()
  • Html.TextAreaFor ()
  • Html.DropDownListFor ()
  • Html.CheckboxFor ()
  • Html.RadioButtonFor ()
  • Html.ListBoxFor ()
  • Html.PasswordFor ()
  • Html.HiddenFor ()
  • Html.LabelFor ()

Outros Métodos de Ajuda:

  • Html.EditorFor ()
  • Html.DisplayFor ()
  • Html.DisplayTextFor ()
  • Html.ValidationMessageFor ()

Eu vou falar mais sobre os novos métodos de ajuda HTML.EditorFor() e HTML.DisplayFor() em um post mais para frente nesta série, quando eu falar mais sobre a melhoria para auto-scaffold (geração automática de código) implementada na ASP.NET MVC 2. Nós também usaremos o método de ajuda HTML.ValidationMessageFor() no meu próximo post desta série, que abrange a melhoria no suporte à validação de dados dentro da ASP.NET MVC 2.

Métodos de Ajuda HTML Fortemente Tipados dentro da Geração de Código Automática

O VS 2008 e o VS 2010, por padrão agora usam os novos métodos de ajuda HTML fortemente tipados quando "geram código automaticamente" para modelos de visão fortemente tipadas usando o comando "Add View" (Adicionar Visão). 

Por exemplo, vamos supor que nós tivéssemos uma simples classe "ProdutosController" como a seguir que tem um método de ação "Editar" que renderiza um formulário de edição para uma classe Produto do modelos de dados:

imagem

Nós podemos clicar com o botão direito do mouse dentro do método de ação Edit usando o Visual Studio e selecionar o comando do menu de contexto "Add View" para criar um modelo de visão. Vamos optar por criar um modelo de visão "Editar" que é "scaffolded" (gerado automaticamente) usando um objeto Produto:

imagem

Com a ASP.NET MVC 2, o modelo da visão que é criado por padrão já utiliza os novos métodos de ajuda HTML fortemente tipados para fazer referência ao objeto Produto do modelo de dados:

imagem

Resumo

Os métodos de Ajuda HTML Fortemente Tipados incluídos na ASP.NET MVC 2 fornecem uma boa maneira de obter uma melhor verificação de tipos dentro dos seus modelos de visão. Isso permite uma melhor verificação das suas visões no tempo de compilação (o que lhe permite localizar erros em tempo de compilação ao invés do tempo de execução), e também permite o suporte à IntelliSense mais rica quando realizar a edição de seus modelos dentro do Visual Studio.

Bons Estudos!


Polimorfismo com C#

 

       É comum programadores no mundo .NET usarem o mesmo modo de programação adotado no VB 6.0 ou outra linguagem estruturada. Isto normalmente por falta de tempo devido a necessidade do cliente ou por não entender o poder da linguagem OO e com isso não ter interesse em aprende-los.

      Não sou um mestre em OO mas já aprendi alguma coisa durante os meus os últimos anos entre no mundo .NET. Um conceito que considero muito importante no mundo da programação OO é o Polimorfismo. Hoje pretendo falar sobre a parte conceitual e demonstrar exemplos básicos de sua implementação e, no futuro  vou poublicar um vídeo onde explico os exemplos C#.

Polimorfismo, em resumo, podemos dizer que é um mecanismo que permitem as classes fornecerem diferentes comportamentos de métodos que são referenciados pelo mesmo nome. Com isso permite que o método de uma classe seja acionado sem se preocupar com os detalhes da sua implementação. Podemos aplicar este conceito de três formas: usando interfaces, através de herança ou com classes abstratas.

Definição Wikipédia: Na programação orientada a objetos, o polimorfismo permite que referências de tipos de classes mais abstratas representem o comportamento das classes concretas que referenciam. Assim, é possível tratar vários tipos de maneira homogênea (através da interface do tipo mais abstrato).O termo polimorfismo é originário do grego e significa "muitas formas" (poli = muitas, morphos = formas).

Através de intefaces, ou seja a programação por contrato, podemos ter um cenários onde várias classes a implementam uma determinada interface, e a mesma classe pode implementar várias interfaces. Uma interface descreve métodos, propriedades e eventos que uma classe deve implementar e, também, os tipos de parâmetro que cada método recebe e retorna. A implementação é livre e fica sob responsabilidade da classe, visto que a mesma deverá atender o que diz o contrato da interface.

Através da herança, uma a classe só pode herdar de uma classe mas pode ser herdada por várias. As classes deridavas recebem campos, métodos, propriedades e eventos da classe base e com a mesma implementação da classe base. Novos membros (métodos, campos e propriedades) podem ser adicionados a classe derivada e, também, pode sobrescrever ou sobrecarregar os métodos da classe base. No próximo post falarei sobre overriding (sobrescrita), overloading (sobrecarga), e as palavras-chave new, virtual e override.

Com classes abstratas podemos fornecer elementos para os dois modelos acima. Tanto uma classe abstrata quanto uma interface não podem ser instanciados. A classe abstrada deve ser herdada por alguma classe. Pode ter alguns métodos implementados ou não. Quando não, é responsabilidade da classe derivada implementá-los. Os métodos implementados na classe abstrata podem ser sobrescritos. Intefaces e classes abstratas são muito utilizados na implementação de frameworks e padrões (Design Patterns).

Uma aplicação prática do polimorfismo
O exemplo seguinte, embora simples, mostra, a presença do polimorfismo, ao permitir instanciar, através de uma mesma referência de superclasse, tanto objetos desta como de sua subclasse. Sublinhamos alguns comandos para destacá-lo.
Numa academia, os atletas são categorizados pelo peso, conforme tabela da esquerda. Os lutadores, porém, têm categorias definidas pela da direita. Mas, é obvio, todo lutador é um atleta.

Temos, então, a seguinte hierarquia de herança em UML e a codificação correspondente em c#:

Caso tenha alguma dúvida, queria mais exemplos ou sugestão sobre o assunto, por favor, sinta-se a vontade para enviar e-mail para brupimentel@hotmail.com.


Visual Studio 2010 – .NET Framework 4.0

Olá,

Escrevendo novamente sobre o lançamento do ano, o Visual Studio 2010 e seu novo Framework em sua versão 4.0.

Não se via tão grande mudança na ferramenta desde 2005, o aguardado Framework 4.0 chegou depois do lançamento LINQ, WCF, CF e WPF em 2008!

image

Iniciei meus estudos e estou surpreendido com as possibilidades e inovações deste novo Framework!

Segue link completo para antes de fazer o download, ler um pouco sobre a ferramenta, por que um pouco de teoria sempre é bem-vinda!

http://msdn.microsoft.com/pt-br/vstudio/2010.aspx

BONS ESTUDOS!


Criando e validando sua Arquitetura com o Visual Studio 2010

O Visual Studio trouxe diversas novidades muito interessantes e dentre elas as ferramentas de arquitetura, que facilitara tanto arquitetos como desenvolvedores.

O Layer Diagram (camada diagrama) permite manter a integridade e independencia de suas camadas e ou até mesmo validar a arquitetura de algum código existente.

Segue exemplo de uma aplicação em 3 camadas com as seguintes camadas:

  • Interface – UI (Camada do usuário que será uma pagina aspx)
  • BLL – Business Logic Layer (Camada de lógica)
  • DAL – Data Access Layer (Camada de acesso a dados)

Logo após adicionarmos duas class library uma para BLL e outro para DAL.

O nosso projeto devera ter a mesma estrutura abaixo

Vamos fazer a referencia da class DAL para a classe BLL

 

Uma referencia da classe BLL para a interface

O Importante desse artigo não é o conteúdo dessas camadas e sim na sua arquitetura.

Agora no menu Architecture ->New Diagram

 


Vamos adicionar um Layer Diagram

Adicionado o Layer Diagram o Visual Studio 2010 irá inserir um projeto na solução do Tipo Model, conforme imagem abaixo.

Após adicionado um Layer Diagram o Visual Studio 2010 irá inserir um projeto na solução do Tipo Model, conforme imagem abaixo.

Depois iremos adicionar cada projeto para cada Layer, note que cada layer ficou com um número,  informando a quantidade de projetos que ele possui, no canto superior esquerdo.

Para validar a arquitetura basta clicar com o botão direito na opção Validate Architecture.

O Visual Studio irá validar as camadas automáticamente e exibir o resultado.

Se tudo estiver “certinho” uma mensagem de succeeded ira aparecer na janela.

Architecture validation succeeded (0 supressed).