domingo, 18 de julho de 2010

Criando uma aplicação WPF - Parte 2



Nesta segunda parte do tutorial vou continuar a trabalhar na camada de dados da aplicação, o Entity Framework já disponibiliza um meio padrão para o acesso a dados, que funciona perfeitamente com aplicações WPF, porém neste artigo quero ter uma maior flexibilidade na aplicação e por isso vou comentar duas outras formas de acessar os dados com Entity Framework:

  • ADO.NET POCO Entity Generator
  • ADO.NET Self-Tracking Entity Generator

A Primeira forma permite a possibilidade de trabalhar com POCO (Plain Old CLR Object) , esse padrão pode ser implementado através de uma extensão do Visual Studio 2010, para instalar basta ir no menu Tools - Extension Manager , clique em Online Gallery e digite no campo de busca a palavra T4, T4 (Text Template Transformation Toolkit) é um editor que possui um template POCO para o ADO.NET Entity Framework 4.

Instale as seguintes opções:

• tangible T4 Editor
• ADO.NET C# POCO Entity Generator
• ADO.NET C# Web Site POCO Entity Generator


Agora clique no seu ModelContato.edmx e com o botão direito do mouse, seleciona Add Code Generation Item, conforme a Figura Abaixo:



Selecione o opção ADO.NET POCO Entity Generator e dê o nome de ModeloPOCO.tt e clique em Add.


Note que em seu projeto foram adicionados dois arquivos com extensão tt, são eles ModelPOCO.Context.tt e ModelPOCO.tt, dentro de ModelPOCO.tt temos os arquivos ModelPOCO.cs e Contato.cs . Esse último é a classe entidade que você poderá utilizar em outras camadas do seu projeto.



Em nosso projeto vamos implementar o padrão MVVM, que veremos mais detalhes nos próximos tutoriais, esse padrão permite separar de uma forma mais elegante o designer da aplicação do acesso aos objetos que manipulam os dados, para auxiliar nesse processo nossas entidades podem implementar a interface INotifyPropertyChanged , essa interface auxilia a informar qualquer mudança nas propriedades de nossas entidades, assim uma mudança via código refletirá na tela sem que o programador precise informar ao elemento que o apresenta, por exemplo, vamos supor que um ListBox tenha uma listagem de e-mails, e um dos itens é o email alexandre.ts@gmail.com e dentro de um botão você modifica via código a propriedade email do seu objeto para alexandre@silverlight.net.br, através de binding essa mudança via código refletirá no ListBox sem que precise criar algum código C# para essa finalidade, para que isso ocorra, nossas entidades podem implementar a interface INotifyPropertyChanged.

Para implementar a interface INotifyPropertyChanged em nossas entidades de forma automática vamos utilizar o ADO.NET Self-Tracking Entity Generator, para isso remova os dois arquivos gerados pelo template anterior, que são ModelPOCO.Context.tt e ModelPOCO.tt, e clique novamente em Add Code Generation Item e selecione a opção ADO.NET Self-Tracking Entity Generator e dê o nome de ModelContato e clique em Add, os arquivos ModelContato.Context.tt e ModelContato.tt foram adicionados ao projeto e dentro de ModelContato.tt temos a entidade Contato.cs que implementa as interfaces IObjectWithChangeTracker e INotifyPropertyChanged.



No próximo tutorial veremos como utilizar essas novas classes que foram geradas pelo ADO.NET Self-Tracking Entity Generator, neste momento nosso projeto possui a seguinte estrutura:



terça-feira, 13 de julho de 2010

Revista .net Magazine Edição 75




A edição da revista .net Magazine número 75 já está disponível no portal DevMedia. O destaque da capa é o artigo SQL Azure com NHibernate e Entity Framework.

Artigos desta edição:

* Quick Update
Rodrigo Sendin

* WPF e Expression Blend 4
Alexandre Tadashi Sato e Robson Fernandes

* WPF para aplicações comerciais - Parte 2
Paulo Quicole

* SQL Azure com NHibernate e Entity Framework
Rodrigo Sendin

* Processo Unificado Aberto
Fábio Lúcio Meira

* Windows Phone 7
Vinicius Quaiato

* Pirataria: as leis nacionais protegem o seu trabalho
Celso Jefferson Messias Paganelli

Link para a versão digital:
http://www.devmedia.com.br/post-17465-Revista--net-Magazine-Edicao-75.html

segunda-feira, 12 de julho de 2010

Criando uma aplicação WPF - Parte 1



Vou iniciar neste artigo o desenvolvimento de uma aplicação bem simples com WPF 4, o projeto consiste em um cadastro de contatos, onde o usuário poderá incluir, alterar ou deletar um contato, por questões didáticas, o exemplo terá somente 3 campos e 1 tabela, apesar de simples, estarei trabalhando em um sistema organizado em camadas, o projeto utilizará o Entity Framework 4 e será desenvolvido seguindo o padrão MVVM (Model View View-Model), que terá uma parte do tutorial somente para explicar o assunto conceitualmente e na prática.

Na primeira parte do mini tutorial nós veremos a camada de dados do projeto, nessa camada vamos programar a forma que o nosso sistema vai persistir os dados em uma base de dados, neste caso, o MS SQL Server Express 2008.

Atualmente existem diversas formas de realizar essa tarefa, o que dificulta um pouco saber qual a melhor, porem é comum fazer uso de frameworks para facilitar a persistência de dados, os frameworks O/R ajudam a manter o seu projeto padronizado, auxiliando muito em boas práticas quando temos sistemas orientados a objetos e banco de dados relacionais.

A escolha do melhor framework para um determinado projeto merece um estudo, sendo para a camada de persistência, seja para o padrão MVVM, Inversão de Controles, entre outros, uma das preocupações com o uso de frameworks é a descontinuação do mesmo por parte dos proprietários ou comunidade envolvida, mas por diversas vezes, o uso de frameworks é uma grande vantagem dependendo da situação.

Para a camada de persistência , dois frameworks tem se destacado, o nHibernate, projeto maduro, que teve sua origem no famoso framework Hibernate para Java e o Entity Framework 4, projeto da Microsoft e com vasta documentação disponível.

Recentemente iniciei meus estudos com o Entity Framework 4, e neste tutorial estarei utilizando o framework , o EF4 oferece o mapeamento objeto relacional (O/R), ou seja, permite mapear as tabelas do banco de dados como objetos, podemos criar o modelo de classes do projeto utilizando técnicas de orientação a objetos, como herança por exemplo, e neste momento não vamos nos preocupar em como o modelo de classes será registrado na base de dados.

Para iniciar, vamos criar uma Solution para guardar os projetos que farão parte dessa solução, abra o Visual Studio 2010, e clique em File - New -Project, em Installed Templates, clique em Other Project Types, e selecione Visual Studio Solutions e em seguida Blank Solution, ou seja, uma solução vazia, dê o nome de SolutionContato e clique em OK.

Clique na imagem para ampliar

Agora vamos adicionar um projeto que servirá como camada de dados, para isso clique com o botão direito do mouse em sua solution e Add - New Project, e em Visual C#, clique em Class Library e dê o nome de Contato.Data e clique em OK.

Clique na imagem para ampliar


Em seguida delete o arquivo Class.cs, pois não vamos utiliza-lo. Agora chegou o momento de criar o modelo de classes do entity framework 4, para isso , clique com o botão direito do mouse no projeto Contato.Data , e em Add - New Item.



Selecione a opção ADO.NET Entity Data Model e dê o nome de ModelContato.edmx e clique em Add para adicionar no projeto.


Agora aparecerá a tela Entity Data Model Wizard, nesta tela temos a opção de escolher entre “Generate from database” e “Empty Model”, a primeira opção permite você gerar o modelo de dados através de uma base de dados já existente, e a segunda opção, vai criar um modelo vazio, onde você poderá modelar as classes e posteriormente gerar as tabelas na base de dados, neste tutorial, vamos criar tudo do zero, selecione a opção , “Empty Model” e clique em Finish.

Clique na imagem para ampliar

No centro da tela temos o ModelContato.edmx, neste local vamos desenhar o modelo de entidades do projeto, como nosso exemplo é muito simples, selecione na janela Toolbox um elemento Entity e arraste e solte para dentro do ModelContato.edmx, note que uma classe já com uma propriedade Id foi visualmente inserida no ModelContato.edmx



Se um projeto tem mais entidades, você pode inserir da mesma forma e utilizar as associações entre as classes (Association) e Herança (Inheritance) disponíveis no painel Toolbox.


Em nosso projeto, vamos criar 3 propriedades para a entidade, o nome, telefone e email do contato, para isso , selecione a entidade, clique com o botão direito do mouse em Add - Scalar Property, e digite o nome da primeira propriedade “Nome”, repita o processo para adicionar as propriedades telefone e e-mail, altere também o nome da entidade, clicando em Entity1 e digitando Contato.

Chegou o momento de criar a base de dados do modelo criado, o entity framework e o Visual Studio 2010 facilitam muito esse trabalho, veja como é simples o processo , clique com o botão direito do mouse no ModelContato.edmx que está no centro da tela, e selecione Generate Database from Model...



Em Generate Database Wizard clique no botão New Connection para criar uma nova conexão com o SQL Server Express.

 
Clique na imagem para ampliar


Em Connection Properties, digite o nome do servidor em Server Name, e em Select or enter a database name, informe o nome de uma nova base de dados, neste exemplo, informe ContatoDB. Uma mensagem vai aparecer perguntando se deseja criar a base de dados, clique em Sim.

Clique na imagem para ampliar



Clique na imagem para ampliar

Pronto, deixe marcado a opção “Save entity connection setting in App.Config as” para que os dados da sua conexão sejam inseridos no arquivo App.Config e clique em Next.


Clique na imagem para ampliar

Um tela vai aparecer com todos os script para a criação das tabelas no SQL Server, clique em Finish, localize no Visual Studio 2010 o botão “Execute SQL” e clique para gerar a base de dados, se tudo ocorrer com sucesso, você receberá a mensagem Command(s) completed successfully.



Nesta primeira parte do tutorial vimos como adicionar o modelo de entidades utilizando o Entity Framework 4, segue a estrutura do projeto nesta etapa :

terça-feira, 22 de junho de 2010

Criando sua primeira aplicação Silverlight




A edição número 2 da easy .net Magazine, a única revista voltada para quem está começando com a plataforma .net, já está disponível no portal DevMedia, você pode acessar o conteúdo através do leitor digital do portal.




Nesta edição temos os seguintes artigos e vídeos:

Silverlight
Criando sua primeira aplicação
Alexandre Tadashi Sato

Visual Studio
Conheça os principais elementos do IDE criando uma aplicação prática
Vitor Luiz Rubio

Vídeo - Tratamento de Exceções em aplicações .NET
Guinther Pauli

C#
Primeiros passos com a linguagem – Parte 2
Vladimir Rech

Acessando dados em aplicações .NET
Entendendo as formas de acesso a dados mais utilizadas
Leandro Daniel

Vídeo - Mapeamento Objeto / Relacional
Guinther Pauli

Nesta edição escrevi uma introdução ao Silverlight, você aprenderá como criar o seu primeiro projeto usando a tecnologia Silverlight, conhecerá como criar o layout das telas, os principais componentes disponíveis e finalizar criando um pequeno projeto que servirá como introdução a essa tecnologia.

Este mês a tecnologia Silverlight é capa de duas das revistas do grupo DevMedia, a easy .net Magazine e a .net Magazine.

easy .net Magazine 2 – Introdução ao Silverlight

.net Magazine 74 – Silverlight 4

Mais informações em http://guintherpauli.blogspot.com/2010/06/revista-easy-net-magazine-02.html

quarta-feira, 16 de junho de 2010

Silverlight 4 - .Net Magazine 74




A Revista .net Magazine de número 74 já está disponível, essa edição está repleta de artigos interessantes, como o desenvolvimento de aplicativos comerciais com WPF (Windows Presentation Foundation), transações com NHibernate, MEF (Managed Extensibility Framework), EF (Entity Framework 4) passo a passo, o desenvolvimento de um web chat em ASP.NET e AJAX e para quem está começando a programar, a revista tem um artigo com uma introdução a programação com C# .NET.

Nesta edição eu contribuí com um artigo sobre as novidades do Silverlight 4, através de um overview sobre os principais recursos adicionados desde a versão final do Silverlight 3. Além das novidades o artigo tem alguns exemplos para que você possa aplicar na prática.

O artigo sobre as novidades do Silverlight 4 foi escrito junto com o Robson Fernandes, que conheci através da comunidade redeRIA, o Robson trabalha com Expression Blend 4 e seu conhecimento está mais focado na área de Design, realizando excelentes trabalhos com essa ferramenta, para mais informações visitem o blog http://www.riasoftware.com.br/ , provavelmente novos artigos ainda vão surgir dessa parceria.




Fiquei muito feliz em ter o artigo como capa da .net Magazine 74, destaco aqui um merecido agradecimento a todos os profissionais da DevMedia pelo apoio. Clique aqui para acessar o artigo sobre as novidades do Silverlight 4.

A Revista .net Magazine 74 tem uma versão digital disponível no site da DevMedia, veja o resumo desta edição no link http://www.devmedia.com.br/resumo/default.asp?ed=74&site=1 e mais informações como vídeo-aulas de brindes da revista, apresentações (ppt) da versão digital, vídeo-aulas e artigo extra na versão digital no blog do Guinther Pauli (Editor Chefe da .net Magazine ) - http://guintherpauli.blogspot.com/2010/06/revista-net-magazine-74.html

segunda-feira, 24 de maio de 2010

Download dos arquivos para iniciar com o desenvolvimento em Silverlight 4

Segue a lista de  links das principais ferramentas, tutoriais, comunidades e blogs para quem quer começar com o desenvolvimento de aplicativos em Silverlight.




Para quem ainda não tem o ambiente de desenvolvimento instalado:

IDE de desenvolvimento : Visual Studio 2010 RC
Complemento para o Visual Studio: Silverlight 4 Tools para Visual Studio 2010
(Contém o Runtime do Silverlight 4, SDK, Tooling para o Visual Studio e o WCF RIA Services RC)
Ferramenta de auxílio para o design de aplicativos em Silverlight/WPF : Expression Blend 4
Conjunto de componentes para o Silverlight 4 : Silverlight Toolkit

Outros sites interessantes:

Sites Oficiais do Silverlight : link e link
Curso de Silverlight 4: link
Exemplos  online do Silverlight 4 Toolkit: link
Hello World: link
Comunidade Silverlight Brasil : link
Silverlight Developer Center (em português) : link
Innovation Lab (em português) : link
o UAU nosso de cada dia : link
Comunidade RedeRIA : link
DevMedia: link
RIASoftware: link
Desenvolvendo para Web : link
Shine Draw : link
Project Rosetta : link
Expression Blend : link