logo
  • Home
  • Acerca
  • Autores
  • Faq
  • Rede
  Twitter   Feed-me! RSS!
Set 8

Criando uma aplicação WPF – Parte Final

Escrito por Alexandre Tadashi em 1, 4, 6, aplicacao, AR, arte, BI, blog, Blogs, botão, Botões, class, classe, classes, código, control, dados, Desenvolvimento, DRE, for, git, Google, html, IE, if, image, int, Introdução, Links, lista, mg, O, on, padrão, processo, RIA, Ria’s Geral, silverlight, TAT, Tutoriais, Tutorial, Twitter, UI, update, validação, WPF, XAML, XP @ 09 8th, 2010 | via http://alexandretadashi.net/ | Sem comentários
Alexandre Tadashi
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Nesta última parte da série “Criando uma aplicação WPF”, vamos inserir as funcionalidades de cada botão, ou seja, a execução dos processos de inclusão, alteração e exclusão de registros, no inicio da classe ContatoViewModel, adicione as variaveis do tipo RelayCommand , conforme abaixo:

        //Suporte ao ICommand        private RelayCommand _updateCommand;        private RelayCommand _deleteCommand;        private RelayCommand _insertCommand;        private RelayCommand _saveCommand;

A classe RelayCommand é uma das classes de apoio escritas por Josh Smith, em seguida vamos implementar o suporte a ICommand e criar os métodos que executarão as chamadas de cada processo.

        #region Comandos

        public ICommand UpdateCommand        {            get            {                if (_updateCommand == null)                {                    _updateCommand = new RelayCommand(param => Update());                }

                return _updateCommand;            }        }

        public ICommand DeleteCommand        {            get            {                if (_deleteCommand == null)                {                    _updateCommand = new RelayCommand(param => Delete());                }

                return _updateCommand;            }        }

        public ICommand InsertCommand        {            get            {                if (_insertCommand == null)                {                    _insertCommand = new RelayCommand(param => Insert());                }

                return _insertCommand;            }        }

        public ICommand SaveCommand        {            get            {                if (_saveCommand == null)                {                    _saveCommand = new RelayCommand(param => Save());                }

                return _saveCommand;            }        }        #endregion

        #region Métodos

        public void Update()        {

            _base.Update(contatoSelecionado);

            _base.Save(contatoSelecionado);

        }

        public void Delete()        {            _base.Delete(contatoSelecionado);

            _base.Save(contatoSelecionado);

            listaContatos.Remove(contatoSelecionado);

        }

        public void Insert()        {

            contatoSelecionado = new Contato();            contatoSelecionado.Id = 0;

            _base.Add(contatoSelecionado);

            OnPropertyChanged("ContatoSelecionado");

        }

        public void Save()        {

            listaContatos.Add(_base.Save(contatoSelecionado));

            OnPropertyChanged("ContatoSelecionado");

        }

        #endregion

E para finalizar vamos inserir o código XAML que liga os botões ao comando através de Binding:

O Botão insert cria uma nova instância da entidade Contato, limpando a tela, após digitar as informações na tela e clicar no botão Commit, as informações são registradas na base de dados, os botões Delete e Update apagam e atualizam o registro,com isso finalizamos esta pequena série, existe muita coisa ainda para aperfeiçoar no projeto, o controle de acesso aos botões, a validação dos dados, etc… mas o objetivo foi apresentar uma introdução ao desenvolvimento de aplicações com WPF + EF4 com o padrão MVVM, esse padrão pode parecer um pouco complexo e trabalhoso, cada projeto deve ser analisado quanto os beneficios que ele ganhará adotando o padrão, espero ter introduzido o leitor do blog no mundo do WPF.

As outras partes do tutorial podem ser acessadas nos links:
Criando uma aplicacao WPF >> Parte 1
Criando uma aplicacao WPF >> Parte 2
Criando uma aplicacao WPF >> Parte 3
Criando uma aplicacao WPF >> Parte 4
Criando uma aplicacao WPF >> Parte 5

O meu muito obrigado à todos que postaram cometários no blog ou enviaram mensagens por e-mail sobre este tutorial, são esses comentários que motivam um profissional a continuar a escrever.

Thanks

Twitter: @atsh2

Set 8

Criando uma aplicação WPF – Parte 5

Escrito por Alexandre Tadashi em 1, 4, 6, app, AR, arte, BI, blog, Blogs, Botões, carregar, class, classe, classes, código, collection, control, dados, Design, designer, Download, DRE, for, framework, Frameworks, Google, IE, if, image, int, interface, Introdução, layout, lista, mg, monitor, mudanças, O, on, padrão, Projetos, RIA, Ria’s Geral, silverlight, TAT, Tema, Tutoriais, Tutorial, Twitter, UI, UX, vs, window, Wordpress, WPF, XAML, XP @ 09 8th, 2010 | via http://alexandretadashi.net/ | Sem comentários
Alexandre Tadashi
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

A camada View da aplicação é onde vamos aplicar o padrão MVVM (Model-View-ViewModel) , adicione um projeto do tipo WPF Application em sua Solution, coloque o nome de Contatos.View.

Crie duas pastas neste projeto, uma com o nome de Apoio, onde vamos inserir duas classes de apoio ao projeto, a outra pasta coloque o nome de ViewModel, onde vamos criar a classe que servirá de ponte entre a View e o Modelo.

Adicione uma classe ao projeto com o nome de ContatoViewModel:

No arquivo MainWindow.xaml vamos criar o layout da aplicação, não vou me preocupar com o designer pois não é o foco deste tutorial, adicione quatro objetos do tipo Button, três TextBlock, três TextBox e uma ListBox, deixe conforme a Figura abaixo:

Na pasta Apoio vamos adicionar duas classes escritas por Josh Smith, um dos gurus do WPF, seu blog é http://joshsmithonwpf.wordpress.com/ , como o foco do tutorial e apresentar uma introdução ao conceito, não vou utilizar de frameworks, o que pode ser interessante em um projeto real, mas para este tutorial, quanto mais simples, melhor para entender, essas duas classes são simples, a primeira servirá de base para a classe ContatoViewModel e a segunda de apoio ao suporte de ICommand.

Faça o download das classes aqui.

Na pasta ViewModel crie um arquivo do tipo Class com o nome de ContatoViewModel e adicione as duas referências aos dois projetos que criamos anterioramente:

Agora vamos herdar algumas funcionalidades da classe de apoio chamada BaseViewModel que implementa a interface INotifyPropertyChanged, que permite monitorar as mudanças que ocorrem em algumas propriedades na classe ContatoViewModel.

public class ContatoViewModel : BaseViewModel

Crie uma instância do acesso ao modelo a dados no inicio da classe ContatoViewModel, uma ObservableCollection chamada listaContatos, que auxiliará na ligação através de databinding com o ListBox e uma entidade Contato chamada contatoSelecionado, que também estará auxiliando na ligação através de databinding ao ListBox e ao DataContext de um Stackpanel, este Stackpanel é o layout control que contém os TextBox com o databinding das propriedades.

        ContatoDAO _base = new ContatoDAO();

        //Lista de Contatos        ObservableCollection listaContatos;

        //Contato Selecionado        public Contato contatoSelecionado = null;
No construtor da classe ContatoViewModel vamos carregar os dados do modelo para uma ObservableColletion alimentando a variável listaContatos.

            # region Dados

            //Carrega todos os contatos cadastrados            ObservableCollection lista =            new ObservableCollection();

            IQueryable rev = _base.GetAll();

            foreach (var item in rev.ToList())            {                lista.Add(item);            }

            listaContatos = lista;

            # endregion

Agora chegou o momento de criar os métodos que serão utilizados como databinding na View :

        # region Propriedades

        //Método que retorna uma lista de contatos        //que será utilizado        //na View via databinding                public ObservableCollection ListaContatos        {            get            {                return listaContatos;            }        }

        //Método que retorna um contato        //Selecionado que será utilizado        //na View via databinding        public Contato ContatoSelecionado        {            get { return contatoSelecionado; }            set            {                //seta o contato selecionado                contatoSelecionado = value;

                //Avisa a View que a                 //propriedade foi alterada                OnPropertyChanged("ContatoSelecionado");

            }

        }

        # endregion

No code-behind do arquivo MainPage.xaml, dentro do método MainWindow(), crie uma instância do ContatoViewModel e ligue ao DataContext do Layout Control Grid.

        public MainWindow()        {

            InitializeComponent();

            ContatoViewModel vm = new ContatoViewModel();

            LayoutRoot.DataContext = vm;

         }

No código XAML que cria a ListBox vamos ligar duas propriedades através de databinding , a primeira é a propriedade ItemsSource, criando um Binding com ListaContatos, a segunda propriedade é o SelectedItem, criando um Binding com ContatoSelecionado.

Os TextBox estão posicionados dentro de um Layout StackPanel, a proprieadade DataContext está ligada através de Binding com o ContatoSelecionado, cada TextBox tem sua propriedade Text ligado com as propriedades da entidade Contato.

Copie o App.config do projeto Contatos.Data para a projeto Contatos.View, marque a camada View como Set as StartUp Project, adicione algumas informações na base de dados e em seguida execute a aplicação, o ListBox será carregado e ao clicar em um item, os TextBox serão alimentados com as informações do item selecionado.

Na próxima parte do tutorial estaremos finalizando a série, inserindo as funcionalidades dos botões.

Twitter: @atsh2

Set 4

O que é o Silverlight

Escrito por Ebercom em .NET, 1, 4, 6, Animações, app, AR, BI, blog, Blogs, browser, C#, cliente, Componente, Componentes, control, Controles, dados, demo, Desenvolvimento, Desktop, Diversos, exemplo, Exemplos, for, framework, html, IE, image, int, interface, internet, Language Runtime, mg, Microsoft, networking, O, on, Plugin, pt, RIA, Ria’s Geral, Rich Internet Application, runtime, servidor, silverlight, smooth streaming, streaming, UI, web, Wordpress, WPF, XAML, XML, XP @ 09 4th, 2010 | via http://www.flexdev.com.br/home | Sem comentários
Ebercom
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Silverlight é um plugin multibrowser e multiplataforma para o desenvolvimento de aplicações RIA e para facilitar a integração com media. Ele reuniu as capacidades de aplicações desktop, aplicações web, funcionalidades do servidor e do cliente, desenvolvimento com linguagens scripts ou orientada a objetos.

O que devemos ter em mente é que o Silverlight é mais do que simplesmente um container para executar aplicações ricas e interativas na web. O silverlight é uma plataforma para desenvolvimento de aplicações, cross-plataforma e cross-browser.

No silverlight o conteúdo é declarado utilizando o XAML. O XAML é um arquivo XML onde é possível declarar elementos visuais da interface, incluindo animações.

O Silverlight contém um subset do .Net Framework que inclui bibliotecas e componentes para integração de dados, networking, controles WPF e CLR (Common Language Runtime). Isso permite que desenvolvamos as nossas aplicações utilizando as linguagens mais comuns em .Net, VB.Net e C#, compiladas.

Não é necessário ter o .Net Framework instalado no cliente ou no servidor. Apenas o plug-in do silverlight é necessário.

Para mais informações sobre Rich Internet Application, veja: http://en.wikipedia.org/wiki/Rich_Internet_application

Exemplos de aplicações em silverlight:

HARD ROCK – MEMORABILIA

image

 Calculadora interessante…

image

 Microsoft Health

image

 

Experience IIS Smooth Streaming

image

 Out of Browser

image

Mais exemplos em http://www.silverlight.net/community/samples/silverlight-samples/.

Ago 26

A lista de palestras do TechEd Brasil 2010 foi alterada

Escrito por Kelps Sousa em .NET, 1, 4, 6, app, AR, arte, BI, Blend, blog, browser, C#, class, Desenvolvimento, Dica, Dicas, email, err, Eventos, expression, Expression Blend, Ferramenta, for, framework, Google, IE, image, int, internet, lista, map, MEF, mg, Microsoft, News, novidade, Novidades, O, on, Palestra, Palestras, rest, RIA, Ria’s Geral, Rich Internet Application, Scrum, serviço, Serviços, silverlight, Silverlight 4, site, Tech, TechEd, Tecnologia, template, Visual Studio, Visual Studio 2010, WCF, web, window, windows, WPF, XP @ 08 26th, 2010 | via http://kelps-sousa.blogspot.com/ | Sem comentários
Kelps Sousa
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

A lista de palestras do TechEd Brasil 2010 foi alterada ontem devido à ajustes na grade e 2 das minhas palestras mudaram de dia e de horário. Se você já havia montado a sua agenda, vá ao site e atualize.

Tech·Ed 2010

Segue abaixo a grade que montei para mim com as minhas 3 palestras destacadas (as minhas que mudaram de horário estão marcadas abaixo com um * )

segunda-feira, 13/09/2010

  • 13:45 – 15:00 – Dicas, truques do visual Studio 2010 e novas funcionalidades do Visual Basic e C# – João Paulo Clementi, Renato Haddad
  • 15:30 – 16:45 – Desenvolvimento com C# no mundo moderno – Alfred Myers
  • 17:15 – 18:30 – Tudo o que você precisa saber sobre Scrum e Visual Studio ALM em 150 min – Parte 1 – André Dias, Giovanni Bassi
  • 18:45 – 20:00 – Scrum Process Template para TFS 2010: Seja ágil de verdade – Parte 2 – André Dias, Giovanni Bassi

terça-feira, 14/09/2010

  • 09:00 – 10:15 – Novidades e razões para migrar para o Microsoft .Net Framework 4 – Diego Blanco, João Paulo Clementi
  • 10:45 – 12:00 – Meu site anda meio lento… e eu não sei mais o que fazer! – Vinicius Canto Xavier
  • 13:45 – 15:00 – WPF Data-Binding de A à Z – Kelps Leite de Sousa *
  • 15:30 – 16:45 – Implementando Serviços RESTful usando o Microsoft .NET Framework – Israel Aece
  • 17:15 – 18:30 – Aplicações WEB com Silverlight 4 fora do Browser – Djonatas Tenfen, Rogerio Cordeiro
  • ASK the Experts – Mesa de Silverlight (não aparece na grade)

quarta-feira, 15/09/2010

  • 09:00 – 10:15 – Silverlight 4 e Expression Blend 4: Tecnologia e Ferramenta em suas Mãos – Rodrigo Kono
  • 10:45 – 12:00 – Como e onde devo utilizar o Managed Extensibility Framework (MEF) – Rogério Moraes de Carvalho
  • 13:45 – 15:00 – Criando Rich Internet Applications (RIA) com Silverlight 4 e WCF RIA Services – Kelps Leite de Sousa
  • 15:30 – 16:45 – Entendendo a Plataforma de Aplicações do Windows Phone 7 – Galileu Vieira, Luciano Condé
  • 17:15 – 18:30 – Aproveitando ao máximo as ferramentas do Visual Studio 2010 para Silverlight e WPF – Kelps Leite de Sousa *

Infelizmente não será possível assistir a todas a palestras que eu gostaria. Espero que as palestras sejam gravadas esse ano para que possamos assistir depois as palestras que perdermos ao vivo.

Vejo vocês lá!



Ago 23

Criando uma aplicação WPF – Parte 4

Escrito por Alexandre Tadashi em 1, 4, 6, AR, Arquitetura, arte, BI, Blend, blog, Blogs, botão, C#, class, Class Library, classe, codeplex, código, dados, demo, Desenvolvimento, Design, designer, Documentação, err, event, Evento, Eventos, exemplo, expression, Expression Blend, Ferramenta, Flex, for, framework, Google, IE, if, image, int, interface, kit, layout, library, LOB, Melhores Práticas, mg, MSDN, mudanças, O, on, padrão, problema, problemas, pt, referencia, RIA, Ria’s Geral, runtime, silverlight, site, TAT, template, Teste, tool, toolkit, Tutoriais, Tutorial, Twitter, UI, uint, WPF, XAML, XP @ 08 23rd, 2010 | via http://alexandretadashi.net/ | Sem comentários
Alexandre Tadashi
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Nesta etapa do tutorial podemos separar as entidades geradas pelo T4 em um projeto separado, que posteriormente vamos utilizar na camada visual da aplicação, para realizar essa tarefa, adicione um novo projeto do tipo Class Library em sua Solution, com o nome de Contatos.Entities, em seguida delete o arquivo Class1.cs, pois não vamos utilizá-lo.

Na camada Contatos.Data, localize o arquivo ModeloContato.tt, que contém a classe Contato.cs, e mova o arquivo para a camada Contatos.Entities, para mover, arraste o arquivo com a tecla Shift pressionada e solte na camada Contatos.Entities.

O Resultado será :
Modifique os namespaces da nova camada, de Contatos.Data para Contato.Entities, e em seguida, na camada Contato.Entities adicione uma referencia a System.Runtime.Serialization.
Na camada Contatos.Data adicione uma referência ao projeto Contatos.Entities.

Se tiver dificuldades em separar as camadas, dê uma olhada neste tutorial:
http://blogs.msdn.com/b/adonet/archive/2010/01/25/walkthrough-poco-template-for-the-entity-framework.aspx

View e MVVM

O padrão de design MVVM (Model-View-ViewModel) é muito utilizado em aplicações Silverlight e WPF, principalmente em aplicações LOB, apesar de ser um padrão avançado, ele não resolve todos os problemas do desenvolvimento de um projeto, porém proporciona uma forma interessante de separar a camada View da camada Model de sua aplicação.

Resumidamente este padrão proporciona separar o modelo (Model) da interface visual do projeto (View), tanto o WPF como o Silverlight, tem um forte suporte a databinding, com esse modelo o desenvolver poderá trabalhar separado do designer na aplicação, ou seja, o designer terá uma maior flexibilidade, podendo utilizar por exemplo o Expression Blend e se concentrar no layout.

Existem diversas ferramentas disponíveis para você aplicar o padrão MVVM com as melhores práticas para uma aplicação em produção, como por exemplo, o framework MVVM Light Toolkit e o Prism, este último tem uma documentação interessante no link  http://compositewpf.codeplex.com/, porém neste tutorial não vou utilizar nenhum framework, para simplificar, vou criar um exemplo básico,  com o objetivo de explicar o conceito do padrão.

Para separar a View do Model, uma terceira classe será criada, essa classe será a ViewModel, ou seja, será a ponte entre essas duas camadas, o ViewModel pode implementar a interface INotifyPropertyChanged, ICommand, fazer validações, escutar eventos, possibilitar testes direto no ViewModel e fazer a adaptação entre a View e o Model.

Dessa forma a View, mais precisamente o arquivo XAML, fica com o mínimo de code-behind em C#, através de binding, ligamos a View com o ViewModel, dessa forma, por exemplo, o código que estaria dentro do evento click de um botão no code-behind do XAML, estará no ViewModel, sendo ligado através de ICommand, na teoria, ao abrir o code-behind de um arquivo XAML não teríamos códigos em C# para a manipulação dos dados e eventos, dessa forma o layout da aplicação fica mais flexível para sofrer mudanças.

O Padrão tem a seguinte arquitetura:

No próximo tutorial o fechamento desta série.
Twitter: @atsh2

Ago 20

XAMLCast – Episódio 19 – Novidades, Visual Studio LightSwitch e Behaviors

Escrito por XAML Cast em .NET, 1, 2.0, 2009, 3d, 4, 6, AR, Asp.Net, back, Behavior, Behaviors, BI, blog, Blogs, class, codeplex, control, cool, Download, DRE, expression, Expression Gallery, for, Formação, framework, ide, if, int, iTunes, Links, live, mg, Microsoft, Microsoft Expression, MSDN, novidade, Novidades, O, on, Pessoal, RIA, Ria’s Geral, rss, RTW, silverlight, site, tag, tool, Twitter, update, Vídeo, Visual Studio, vs, web, Widget, Wordpress, WPF, XAML, XP @ 08 20th, 2010 | via http://www.xamlcast.net | Sem comentários
XAML Cast
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Olá pessoal!

Estamos na edição 19!
São 42′ de boa informação. Ouça, comente e aproveite os links abaixo.

  • Silverlight Media Framework 2.0 (07/07)
  • XAML Power Toys for VS2010
  • Power Tools no ScottGu’s Blog
  • RTW do WPF Ribbon Control
  • Visual Studio LightSwitch
    • Vídeo no CH9: Anúncio no VSLive!
    • Post no blog do Somasegar
    • Lançamento previsto para o dia 23 de agosto de 2010
  • Behaviors
    • Top 5 Silverlight Behaviors
    • Microsoft Expression Gallery (Silverlight Behaviors)

Para assinar:

  • Feed RSS: http://www.xamlcast.net
  • iTunes/iPod: pcast://www.xamlcast.net
  • Zune: zune://subscribe/?XAMLCast=http://www.xamlcast.net

O XAMLCast também está no Twitter!

  • Twitter oficial: @xamlcast (e hashtag #xamlcast)
  • Siga os XAMLCasters:
    • @kelps
    • @robertos_br
    • @rodrigokono
  • Adicione o Twibbon do XAMLCast ao seu avatar!
    • http://twibbon.com/join/XAMLCast

Até o próximo!

Abraços,

Kelps, Roberto Sonnino e Rodrigo Kono

http://feedproxy.google.com/~r/xamlcast/~5/s2VYgWqhLpo/xamlcast – 19.mp3

Ago 16

Gráficos 3D – Silverlight, WPF e WP7

Escrito por Alexandre Tadashi em .NET, 1, 3d, 4, 6, Animações, app, Apresentação, AR, arte, Artigo, BI, blog, Blogs, C#, class, codeplex, código, código fonte, Componente, Componentes, dados, Desenvolvedor, Design, designer, Diversos, Download, err, Excel, exemplo, Ferramenta, fonte, fonts, for, free, Geral, Google, Gráfico, IE, if, image, int, kit, label, layout, mg, Microsoft, O, on, online, Outros, PHP, RIA, Ria’s Geral, silverlight, Silverlight 4, site, tool, toolkit, Tutoriais, tv, Twitter, UI, uint, Ved, Visual Studio, Visual Studio 2010, window, windows, WPF, XAML, XP @ 08 16th, 2010 | via http://alexandretadashi.net/ | Sem comentários
Alexandre Tadashi
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Existem diversas ferramentas que facilitam a vida do desenvolvedor quando a tarefa é a criação de gráficos para apresentação de dados, essas ferramentas são bem completas e visualmente ricas, geralmente possibilitam criar gráficos de diversos formatos, por exemplo, gráficos de pizza, linhas e colunas, que são os mais comuns e até gráficos combinados na mesma visualização.

Uma das ferramentas mais conhecidas é o Silverlight Toolkit , que além de criar gráficos, tem uma série de outros componentes interessantes, sua licença é a Microsoft Public License (Ms-PL).

O amCharts também é um excelente projeto, tem uma licença comercial e outra free, contém belos gráficos com animações e interações com o usuário, vale a pena dar uma conferida.

Neste artigo vou mostrar como criar um gráfico simples usando a ferramenta Visifire, essa ferramenta tem uma licença comercial e outra GPL, os gráficos são visualmente ricos, animados e interativos, permite de forma simples a criação de gráficos de atualização online, no site do fabricante tem uma página onde você poderá testar como o gráfico vai ficar.
Faça o download do visifire no site do fabricante, não é necessário instalar nada, o download contém os binários para o WPF, Silverlight e Windows Phone 7.

Crie uma aplicação Silverlight 4 no Visual Studio 2010, adicione uma referência ao binários do visifire para o Silverlight (SL.Visifire.Charts ), no código XAML, dentro do Layout Grid, adicione um elemento do tipo gráfico com o nome de Pizza:

Agora na sua MainPage_Loaded, adicione o código abaixo:

Title titulo = new Title();
titulo.Text = “Gráfico de Pizza”;
titulo.FontSize = 40;

Pizza.Titles.Add(titulo);

DataSeries dataSeries = new DataSeries();
dataSeries.RenderAs = RenderAs.Pie;
DataPoint dataPoint;

for (int i = 0; i < 5; i++)
{
        dataPoint = new DataPoint();
        dataPoint.YValue = 1000 + i;
        dataPoint.LabelText = “Item:” + i;
        dataSeries.DataPoints.Add(dataPoint);
}

Pizza.Series.Add(dataSeries);

Pizza.View3D = true;

O Código acima adiciona o título “Gráfico de Pizza” ao gráfico, depois acrescenta 5 itens que vão compor o gráfico de Pizza, em RenderAs definimos o tipo do gráfico como Pie e por fim habilitamos a visualização em 3D do gráfico.

Sem modificar nada no código fonte em C#, você também poderá criar o mesmo gráfico para WPF e Windows Phone 7, para Windows Phone por exemplo, basta você criar um projeto do tipo Windows Phone Application, se esse tipo de projeto não estiver disponível no seu Visual Studio 2010, instale o seguinte pacote, depois é só fazer uma referência aos binários do visifire para Windows Phone, e adicionar o gráfico da mesma forma que fizemos para o Silverlight.

Twitter: @atsh2

Ago 3

Criando uma aplicação WPF – Parte 3

Escrito por Alexandre Tadashi em 1, 4, 6, AR, arte, blog, Blogs, botão, C#, class, classe, collection, CRUD, dados, DRE, Entity Framework, exemplo, for, framework, geo, Geral, Google, IE, if, image, int, interface, linq, mg, O, on, padrão, pt, RIA, Ria’s Geral, silverlight, state, string, TAT, Tecnologia, Tema, template, Tutoriais, Tutorial, UI, uint, update, visao, WPF, XP @ 08 3rd, 2010 | via http://alexandretadashi.net/ | Sem comentários
Alexandre Tadashi
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Nesta terceira parte do tutorial vou criar uma Interface e uma classe que servirão de apoio para a manipulação dos dados com o Entity Framework 4, a Interface eu vou chamar de IDAO.cs , e ela será implementada pela classe ContatoDAO.cs, que vai conter os métodos CRUD da aplicação.

O objetivo dessa série de tutoriais é apresentar uma forma simples de trabalhar com o Entity Framework 4 em um projeto em camadas com WPF, utilizando o padrão MVVM, existem diversas maneiras de criar uma aplicação WPF, neste tutorial simplifiquei alguns passos para que fique mais fácil para quem está começando com a tecnologia.

Na camada de dados da aplicação, adicione uma interface chamada IDAO, para isso, clique com o botão direito do mouse no projeto Contatos.Data e em Add – New Item, em Installed Templates, selecione Visual C# Items, clique em Interface, dê o nome de IDAO.cs e adicione ao projeto.

clique na foto para ampliar

Esta interface servirá de contrato para que a classe ContatoDAO.cs implemente todos os métodos CRUD .

using System;using System.Collections.Generic;using System.Linq;using System.Text;

namespace Contatos.Data{    public interface IDAO< T >    {        T Add(T pEntity);        void Delete(T pEntity);        void Update(T pEntity);        IQueryable GetAll();

    }}

Neste exemplo o método Add será responsável pela inclusão de um registro na base de dados, o método retornará a entidade adicionada na base, já setado com o Id do registro, os métodos Update e Delete, recebem o objeto, com o objetivo de atualizar e deletar respectivamente e o método GetAll retornará todos os registros na tabela Contato.

Vou adicionar agora a classe ContatoDAO.cs, para isso, clique com o botão direito do mouse no projeto Contatos.Data e em Add – New Item, em Installed Templates, selecione Visual C# Items, clique em Class, dê o nome de ContatoDAO.cs e adicione ao projeto.

 

 
A Primeira modificação que vou fazer no projeto é implementar a interface IDAO e passar a entidade Contato como T:

Em seguida vou criar uma instância do modelo do EntityFramework, o arquivo ModelContato.Context.cs contém o nome na string ContainerName, neste exemplo o nome da classe é ModelContatoContainer:

ModelContatoContainer model = new ModelContatoContainer();

Agora basta implementar as quatro operações CRUD conforme abaixo:
   

# region CRUD

        public T Add(T pEntity)        {            model.ContatoSet.AddObject(pEntity);            model.SaveChanges();            return pEntity;        }

        public void Delete(T pEntity)        {            model.ContatoSet.Attach(pEntity);            model.DeleteObject(pEntity);            model.SaveChanges();        }

        public void Update(T pEntity)        {            model.ContatoSet.Attach(pEntity);            model.ObjectStateManager.ChangeObjectState(pEntity,                               System.Data.EntityState.Modified);            model.SaveChanges();        }

        public IQueryable GetAll()        {            return model.CreateObjectSet();        }

# endregion

Uma visão geral da classe pode ser vista na figura abaixo:

Neste momento nosso projeto está com a seguinte estrutura:

continua…

Jul 24

Lista de palestras do TechEd Brasil 2010 disponivel no site

Escrito por Kelps Sousa em .NET, 1, 4, 6, AR, blog, class, event, Evento, Eventos, filtra, Google, html, image, lista, map, mg, News, O, on, Palestra, Palestras, Ria’s Geral, silverlight, site, Sun, Tech, TechEd, UI, Visual Studio 2010, vs, WPF @ 07 24th, 2010 | via http://kelps-sousa.blogspot.com/ | Sem comentários
Kelps Sousa
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

A lista de palestras do TechEd Brasil 2010 já está disponível no site. Ainda não foi divulgada a agenda com data e hora de cada palestra, então ainda não dá pra saber quais palestras vou conseguir assistir, mas já é possível ter uma idéia do conteúdo desse evento. Como eu já disse em um post anterior, estarei palestrando esse ano sobre 3 assuntos. para saber mais sobre minhas palestras (ou de qualquer outra pessoa) basta acessar a página de palestras e filtrar por palestrante.

TechEd Brasil 2010 - Palestras

Vejos vocês lá!



Jul 18

Criando uma aplicação WPF – Parte 2

Escrito por Alexandre Tadashi em .NET, 1, 4, 6, AR, arte, Artigo, auto, BI, blog, Blogs, botão, busca, C#, camp, class, classe, classes, código, dados, Design, designer, DRE, email, Entity Framework, exemplo, Flex, for, framework, git, gmail, Google, IE, if, image, int, interface, kit, lista, menu, mg, O, on, online, padrão, processo, pt, RIA, Ria’s Geral, silverlight, site, tag, TAT, template, tool, toolkit, Tracking, Tutoriais, Tutorial, UI, uint, UX, Visual Studio, Visual Studio 2010, web, WPF, XP @ 07 18th, 2010 | via http://alexandretadashi.net/ | Sem comentários
Alexandre Tadashi
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

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:

« Entradas anteriores | Entradas recentes »

ACERCA

O que é o RedeRIA ?

O redeRIA não é nada mais que um agregador de feed's que disponibiliza o conteudo de varios blogs e autores ao redor do mundo RIA, actualmente agregamos mais de 2791 entradas vindas de 53 blogs especializados em ria’s, pelo que só fica a ganhar em assinar o feed ou seguir a comunidade no twitter.

Se acha que o seu blog ou um blog de um amigo é interessante e util para os leitores o redeRIA, faça a sua submissão aqui.

Feed: assine já
Twitter: siga-nos

GOOGLE

Votação


Deveria o RedeRia agregar conteúdo em inglês?
Ver Resultados

AUTORES


Eduardo KrausAlexandre TadashiBindableCognitiva SoluçõesDaniel LopesDaniel SchmitzDanielPedrinhaDClick TeamEbercomEdgard DavidsonElvis FernandesErko BrideeFabiel PrestesFábio Batista da SilvaFabio da SilvaFabriccio BernardesFelipe BorellaFlavia MoreiraGabriel VersalliniGabriela T. PerryIgor MusardoJanderson CardosoJoão AugustoJose Carlos FielKelps SousaLeonardo FrançaLucas MarçalLuis MessiasLuiz TarabalMario JuniorMário SantosMauro MartinsPablo SouzaPedro ClaudioreneRia BrazilriaPTRicardo CerqueiraRobson FernandesRodrigo Pereira FragaSaintBrSamuelFacchinelloSergio SouzaSilva DeveloperStefan HorochovecTech CaffeTecinforThiago BuenoVedVinícius SandimWillian ManoXAML Cast

PUBLICIDADE








Powered by Wordpress & msdevstudio.com