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

Spring Integration

Escrito por DClick Team em 1, 2.0, 4, 6, apache, api, app, AR, Arquitetura, Artigo, BI, class, classe, cliente, código, dados, demo, Design, email, err, event, Evento, Eventos, exemplo, Exemplos, expression, Ferramenta, Flex, for, Formação, framework, futuro, Google, html, ide, IE, if, image, imagens, int, interface, Java, Mac, mg, mudanças, O, on, Outros, padrão, problema, problemas, programação, reference, RIA, Ria’s Geral, serviço, Serviços, site, Spring, SpringFramework, string, Sun, TAT, Tema, Teste, Tutorial, Twitter, UI, uint, Vários, web, Webservice, XML, XP, zend @ 12 8th, 2010 | via http://blog.dclick.com.br/pt/ | Sem comentários
DClick Team
? 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 »

Uma arquitetura desacoplada com o Spring Integration


A cada dia crescem mais as aplicações que disponibilizam serviços Web para que qualquer cliente possa consultá-los. E a cada dia que passa nossas aplicações dependem mais e mais desses serviços para obter informações de usuários, armazenar dados remotamente, consultar emails, postar entradas no twitter dentre outros. Por isso logo surge um problema o qual é bem difícil de lidar: dependência da API dos serviços.

Depender de uma determinada API para algum serviço é um fator de risco bem alto se considerarmos que as APIs podem mudar e nossa aplicação pode parar de funcionar do dia para a noite. E pior, dependendo da mudança é necessário uma reestruturação muito grande em nosso código para se adequar a nova especificação. Pensando nisso que programamos seguindo padrões de design de código e boas práticas de programação. Ainda assim pode não ser suficiente se pensarmos de uma maneira um pouco mais macro em nossa aplicação, pois em algum ponto do nosso sistema ainda existirá uma “ponte” de integração com algum determinado serviço (entenda serviço como qualquer WebService, classe ou biblioteca que consultamos).

A solução é desacoplar o máximo possível nossa aplicação de tais serviços, e deixarmos nossa aplicações executar independente de como o serviço será consultado. Para obter esse nível de abstração é necessário programar e planejar o sistema pronto para se adequar as mudanças, e a melhor maneira de se programar para mudança é não programar. Parece um pensamento meio estranho, mas se analisarmos com cuidado veremos que existe uma certa razão para isso, pois quanto menos código tivermos, menos precisará ser mudado.

Spring Integration permite que criemos serviços de maneira totalmente desacoplada entre si e outros serviços Web, e disponibiliza as conexões em sua própria Bean Factory, ou seja, nosso sistema é livre de qualquer consulta a serviços ou API externa a aplicação. Vamos entender um pouco da arquitetura do Spring Integration.


Entendendo o que está acontecendo


A idéia por trás do spring integration é bem simples na verdade: todo serviço só distribui informação e recebe informação através de channels (canais). Canais são uma forma de acoplar os serviços, sem que estes dependam da API ou da maneira com que as chamadas são feitas.
Toda canal trafega mensagens. Mensagens possuem um cabeçalho e um conteúdo qualquer:


E um canal nada mais é do que o responsável por receber e disponibilizar tais mensagens a quem estiver interessado. Para ser mais direto, qualquer bean definido no contexto do spring tem acesso a tais canais.


Fica claro aqui que podemos ter vários tipos diferentes de canais com várias configurações e comportamentos diferentes. De fato o spring disponibiliza tais configurações e comportamentos out of the box. Veremos mais pra frente.

Exemplo prático


Vamos criar um exemplo para entender melhor os conceitos.
A primeira coisa a se fazer é baixar os jars do spring integration. Feito isso adicione-os ao classpath do seu projeto que deve ser um spring application padrão. Se você está usando o maven, basta adicionar as seguintes dependências:

1
2
3
4
5
6
7
8
9
10
11
? ? >
? ? ? ? >org.springframework>
? ? ? ? >spring-expression>
? ? ? ? >3.0.5.RELEASE>
? ? >

? ? >
? ? ? ? >org.springframework.integration>
? ? ? ? >spring-integration-core>
? ? ? ? >2.0.0.RELEASE>
? ? >


Estou assumindo que as dependências para o contexto do spring já estejam corretamente configuradas.

Agora em nosso arquivo de beans do spring, basta adicionarmos o seguinte namespace e schema location:

1
2
3
4
5
6
7
8
9
10
11
12
<?xml version=“1.0″ encoding=“UTF-8″?>
xmlns=“http://www.springframework.org/schema/beans”
? ? xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xmlns:amq=“http://activemq.apache.org/schema/core”
? ? xmlns:context=“http://www.springframework.org/schema/context” xmlns:si=“http://www.springframework.org/schema/integration”
? ? xsi:schemaLocation=“http://activemq.apache.org/schema/core http://www.springframework.org/schema/aop
? ? ? ? http://www.springframework.org/schema/beans
? ? ? ? http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
? ? ? ? http://www.springframework.org/schema/context
? ? ? ? http://www.springframework.org/schema/context/spring-context-3.0.xsd
? ? ? ? http://www.springframework.org/schema/integration
? ? ? ? http://www.springframework.org/schema/integration/spring-integration-2.0.xsd”
>

>


Podemos começar a configurar nossos serviços e canais agora.

Crie um serviço bem simples que recebe e guarda uma String, e disponibiliza-a em um getter:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package br.com.dclick.services;

@Service(“simpleService”)
public class SimpleService {

? ? private String s;

? ? public void setString(String s) {
? ? ? ? this.s = s;
? ? }

? ? public String getS() {
? ? ? ? return s;
? ? }
}


Repare que estou usando a criação de beans por anotação, por isso tenho que colocar em meu arquivo de beans que o pacote de tal serviço deve ser “escaneado”:

1
? ? :component-scan?base-package=“br.com.dclick.services” />


Crie um teste unitário para nosso serviço, e certifique-se que a injeção dos beans está sendo feita corretamente e que o spring está corretamente configurado até aqui. Não é o foco deste artigo mostrar como configurar tal teste, por isso vou supor que as configurações já estão corretas e vou colocar o código do teste diretamente (estou usando JUnit 4):

1
2
3
4
5
6
? ? private SimpleService simpleService;

? ? @Test
? ? public void testChannels() {
? ? ? ? Assert.assertNotNull(this.simpleService);
? ? }


Vamos criar agora um canal de entrada e um canal de saída em nossos beans. Para isso basta adicionar o seguinte código em nosso xml de beans:

1
2
3
4
5
? ? :channel id=“input” />

? ? :channel id=“output”>
? ? ? ? :queue capacity=“10″ />
? ? :channel>


Estou setando uma capacidade para nosso canal de saída para ilustrar uma das possíveis configurações do canal.

Até aqui nenhum segredo. Vamos agora disparar nosso serviço quando uma determinada mensagem for adicionada ao canal de entrada. É aqui que o spring integration se mostra muito flexível e poderoso. Não necessário nenhuma mudança no código para que essa conexão do serviço com o canal seja feita, basta adicionarmos um service-activator para fazer o trabalho. Para isso basta adicionar o seguinte bean ao xml:

1
2
3
? ? :service-activator input-channel=“input”
? ? ? ? output-channel=“output” ref=“simpleService” method=“setString”>

? ? :service-activator>


Estamos dizendo que uma mensagem que chega no canal input, deve ter seu conteúdo enviado para o método setString no bean simpleService, e que o resultado deve ser adicionado no canal output.
Simples não? Vamos testar agora:

1
2
3
4
5
6
7
8
9
10
? ? private MessageChannel input;

? ? @Test
? ? public void testChannels() {
? ? ? ? Assert.assertNotNull(this.simpleService);
? ? ? ?
? ? ? ? input.send(new GenericMessage(“hello!”));
? ? ? ?
? ? ? ? Assert.assertEquals(“hello!”, this.simpleService.getS());
? ? }


Vamos mudar nosso serviço para devolver o valor que foi setado no métodosetString, com isso nosso service activator irá pegar o resultado e enviá-lo para o canal de saída:

1
2
3
4
? ? public String setString(String s) {
? ? ? ? this.s = s;
? ? ? ? return this.s;
? ? }


E agora conseguimos fazer o seguinte teste:

1
2
3
4
5
6
7
8
9
10
11
12
13
? ? private MessageChannel output;

? ? @Test
? ? public void testChannels() {
? ? ? ? Assert.assertNotNull(this.simpleService);
? ? ? ?
? ? ? ? input.send(new GenericMessage(“hello!”));
? ? ? ?
? ? ? ? Assert.assertEquals(“hello!”, this.simpleService.getS());
? ? ? ?
? ? ? ? Message msg = (Message) this.output.receive();
? ? ? ? Assert.assertEquals(“hello!”, msg.getPayload());
? ? }


Rode o teste e verifique que ele passa.
Vamos recapitular então o que vimos até agora. Criamos um serviço que é totalmente livre de qualquer API que apenas guarda uma String que é setada através do método setString. Criamos um canal de entrada (input) e um de saída (output) que guarda até 10 mensagens. Conectamos os canais com um service activator, que quando recebe uma mensagem no canal de entrada, invoca o método setString em nosso serviço e envia uma mensagem para o canal de saída com o valor que o serviço devolveu. Fizemos um teste que envia uma String para o canal de entrada, verifica que chegou até o serviço, e verifica que estava disponível no canal de saída.

Um fato interessante é que o método receive do canal de saída “trava” até que chegue uma nova mensagem, portanto estamos falando de uma arquitetura passiva baseadas em eventos que são disparados com o recebimento de mensagens. Muito bom!

Gateways


O conceito de Gateway existe para facilitar o envio de mensagens aos canais, estabelecendo um interface comum para que possam ser usados de maneira natural no código.
Vamos criar um gateway para invocar nosso serviço que guarda a String:

1
2
3
4
5
package br.com.dclick.services;

public interface SimpleGateway {
? ? void call(String s);
}


Pronto! Basta agora adicionarmos o gateway em nosso arquivo de beans:

1
2
? ? :gateway id=“simpleGateway” default-request-channel=“input”
? ? ? ? service-interface=“br.com.dclick.services.SimpleGateway” />


Estamos dizendo aqui que nosso gateway irá despachar as mensagens para o canal input, e como o gateway recebe uma String, o Spring sabe que o conteúdo da mensagem que deve ser enviada é do tipo String. Vamos ao teste:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
? ? private SimpleGateway simpleGateway;
? ?
? ? @Test
? ? public void testChannels() {
? ? ? ? Assert.assertNotNull(this.simpleService);
? ? ? ?
? ? ? ? input.send(new GenericMessage(“hello!”));
? ? ? ?
? ? ? ? Assert.assertEquals(“hello!”, this.simpleService.getS());
? ? ? ?
? ? ? ? Message msg = (Message) this.output.receive();
? ? ? ? Assert.assertEquals(“hello!”, msg.getPayload());
? ? ? ?
? ? ? ? this.simpleGateway.call(“uma string”);
? ? ? ?
? ? ? ? Assert.assertEquals(“uma string”, this.simpleService.getS());
? ? }


Próximos passos


Spring Integration é uma ferramenta muito poderosa, que permite criarmos aplicações de qualquer porte com uma arquitetura muito desacoplada facilitando a escalabilidade e reação a mudanças externas. Repare que sua aplicação ganha um aspecto de arquitetura voltada a eventos que são disparados através de mensagens, e que não há limitações de tipos e quantidades de conexões. Por exemplo, nosso canal de saída poderia sem problemas ser o canal de entrada para um outro serviço, ou até mesmo para um outro método do mesmo serviço. Também existem várias regras de encaminhamento de mensagens disponíveis no spring integration, como por exemplo um roteador de mensagens, um replicador de mensagens, um agregador, etc. Veremos alguns exemplos no futuro.

Existem muitos outros pacotes disponíveis como por exemplo o de integração com o twitter, o de integração com arquivos, o de integração com jms, dentre outros. Veremos tais integrações mais para frente.

Por @Gust4v0_H4xx0r

As imagens foram tiradas do próprio site do Spring Integration.

Nov 6

Expression Studio 4 – Artigo .Net Magazine 79

Escrito por Alexandre Tadashi em .Net Magazine, 1, 4, 6, AR, Artigo, blog, Blogs, class, comunidade, Desenvolvedor, Desenvolvimento, Desenvolvimento Web, Design, designer, DevMedia, Dica, err, etica, Experiência do Usuário, expression, Ferramenta, Google, html, IE, if, image, int, lista, mg, Microsoft, Microsoft Expression, NaN, O, on, prototipagem, RIA, Ria’s Geral, silverlight, site, Twitter, UI, Ved, web, XP @ 11 6th, 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 »

Este artigo trata de um overview da mais nova versão das ferramentas contidas no pacote Microsoft Expression. Lançado recentemente, o Expression 4 possui importantes ferramentas para o dia-a-dia do desenvolvedor, designer e híbridos (profissionais que atuam tanto na criação e concepção de conceitos e design, até navegação, experiência do usuário e desenvolvimento da aplicação e/ou websites).

Escrevi o artigo junto com o Fernando Martin (Caverna), evangelista de desenvolvimento web com foco em ferramentas e prototipagem, integrante de time de de especialistas e comunidades da Microsoft Brasil.

Saiba mais:  http://www.devmedia.com.br/post-18487-Revista–net-Magazine-Edicao-79.html

Twitter: @atsh2

Nov 6

Silverlight – Crie suas primeiras animações

Escrito por Alexandre Tadashi em .NET, .Net Magazine, 1, 4, 6, Ajax, Animações, AR, arte, Artigo, Artigos, BI, Blend, blog, Blogs, class, css, Curso, Desenvolvimento, DevMedia, err, etica, expression, Expression Blend, Ferramenta, Google, html, IE, if, image, int, Introdução, Java, Javascript, mg, O, on, pt, RIA, Ria’s Geral, silverlight, Storyboard, Twitter, UI, XP @ 11 6th, 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 »

Está disponível a nova edição da easy .net Magazine, a edição 6 contém cinco artigos:
• AJAX, CSS e JavaScript
• Silverlight
• Introdução ao GridView – Parte 1
• Delegates
• Introdução ao desenvolvimento em .NET

Nesta edição colaborei com o artigo sobre silverlight, será apresentado um poderoso recurso do silverlight que é chamado de Storyboard, que possibilita criar animações em Silverlight. Durante o artigo vamos conhecer os tipos de animações disponíveis. O artigo irá também fazer uma breve introdução a ferramenta Expression Blend 4.

link: http://www.devmedia.com.br/post-18470-Silverlight.html

Twitter: @atsh2

Out 29

XAMLCast – Interview with Paul Betts about ReactiveXaml

Escrito por XAML Cast em .NET, 1, 4, 6, Access, app, AR, back, BI, blog, class, Design, development, Dicas, Download, DRE, engine, entrevista, expression, flash, for, FullScreen, git, Google, ide, IE, if, int, iTunes, labs, Links, mg, Microsoft, MSDN, O, on, player, pt, Ria’s Geral, rss, screen, silverlight, Software, tag, team, Twitter, Vídeo, wave, Widget, window, windows, WPF, XAML, XP @ 10 29th, 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 »

Hey everyone!

[Para os ouvintes brasileiros/portugueses: a entrevista foi feita em inglês mas o vídeo também foi legendado em português! Aproveite!]

Following on our special series of interviews, Roberto interviewed Paul Betts, a Software Development Engineer in the Windows team and creator of ReactiveXaml. In a video special, he talked about Reactive programming and how to apply it to WPF and Silverlight through RxXaml. An awesome introduction to a new paradigm on WPF/SL development!

If you want to download the video, leave a comment in this post. If there’s enough demand, I’ll upload the video (1.6GB!) to a file share.

Here are the links we talked about in the interview:

Reactive Extensions for .net
http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx

ReactiveXaml
http://github.com/xpaulbettsx/ReactiveXaml

ReactiveXaml Google Group
http://groups.google.com/group/reactivexaml

Paul’s Twitter
http://twitter.com/xpaulbettsx

Paul’s Blog
http://blog.paulbetts.org

Also, don’t miss our previous interview with Arturo Toledo about design and Expression!

Subscribe to receive XAMLCast directly on your MP3 player, phone or RSS reader:

  • RSS feed: http://www.xamlcast.net
  • iTunes/iPod: pcast://www.xamlcast.net
  • Zune/Windows Phone 7: zune://subscribe/?XAMLCast=http://www.xamlcast.net

You can follow XAMLCast on Twitter: @xamlcast

  • Hashtag #xamlcast
  • Follow the XAMLCasters:
    • @kelps
    • @robertos_br
    • @rodrigokono

Stay tuned for more!

Kelps, Roberto Sonnino and Rodrigo Kono

Out 23

XAMLCast – interview with Arturo Toledo

Escrito por XAML Cast em .NET, 1, 2009, 4, 6, action, AR, AUG, back, BI, blog, case, class, Design, Download, DRE, entrevista, expression, finally, for, ide, IE, int, iTunes, Links, mg, Microsoft, MSDN, O, on, platform, player, Ria’s Geral, rss, silverlight, Smashing Magazine, surface, tag, team, tool, tv, Twitter, UI, user experience, UX, web, Widget, window, windows, WPF, XAML, XP @ 10 23rd, 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 »

Hey everyone!

[Para os ouvintes brasileiros e portugueses: Este post é em Inglês pois a entrevista foi realizada em Inglês. Os episódios em Português voltam em breve!]

Earlier this year we did some special interviews for XAMLCast with influential people in the WPF/SL community. Well finally we’ve got time to release them!

To start, Roberto interviewed Arturo Toledo, now Sr. Program Manager for the Microsoft Web Platform. He talked about design, Metro, trends and Expression. Don’t miss it!

Here are the links we talked about in the interview:

Smashing Magazine Webdesign Trends
http://www.smashingmagazine.com/2010/01/04/showcase-of-modern-navigation-design-trends/
http://www.smashingmagazine.com/2009/01/14/web-design-trends-for-2009/
http://www.smashingmagazine.com/2009/01/21/current-web-design-trends-for-2009/

Windows UX
http://www.microsoft.com/downloads/details.aspx?familyid=E49820CB-954D-45AE-9CB3-1B9E8EA7FE8C&displaylang=en

Metro UX
http://download.microsoft.com/download/D/8/6/D869941E-455D-4882-A6B8-0DBCAA6AF2D4/UI%20Design%20and%20Interaction%20Guide%20for%20Windows%20Phone%207%20Series.pdf

August de los Reyes (Surface team) talks about Natural User Experiences (NUI)
http://www.microsoft.com/belux/msdn/nl/chopsticks/default.aspx?id=1406
http://www.webdirections.org/resources/august-de-los-reyes-predicting-the-past/

Gesturecons
http://www.gesturecons.com

Expression Studio
http://www.microsoft.com/expression/

.Toolbox Design School
http://microsoft.com/design/toolbox

Arturo’s Twitter
http://twitter.com/arturot

Arturo’s Blog
http://ux.artu.tv

Subscribe to receive XAMLCast directly on your MP3 player, phone or RSS reader:

  • RSS feed: http://www.xamlcast.net
  • iTunes/iPod: pcast://www.xamlcast.net
  • Zune/Windows Phone 7: zune://subscribe/?XAMLCast=http://www.xamlcast.net

You can follow XAMLCast on Twitter: @xamlcast

  • Hashtag #xamlcast
  • Follow the XAMLCasters:
    • @kelps
    • @robertos_br
    • @rodrigokono

Stay tuned for more!

Kelps, Roberto Sonnino and Rodrigo Kono

http://feedproxy.google.com/~r/xamlcast/~5/M7oDASLMztI/XAMLCast – Interview with Arturo Toledo – 96kbps.mp3

Set 9

XAMLCast – Episódio 20 – Visual Studio LightSwitch e 10 coisas que um dev WPF/SL deve saber por Pete Brown

Escrito por XAML Cast em .NET, 1, 3d, 4, 6, AR, audio, back, BI, blog, class, Desenvolvedor, developer, Dicas, DRE, err, expression, Ferramenta, Gravação, iTunes, Links, mg, Microsoft, Novidades, O, on, Opinião, player, podcast, Ria’s Geral, rss, silverlight, tag, Twitter, Ved, Visual Studio, Widget, WPF, XAML, XP @ 09 9th, 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 »

Chegamos ao episódio número 20!

Este episódio comentamos especialmente o Top 10 que o Pete Brown publicou na semana passada. A gravação está bacana e esperamos que gostem!

Links de referência deste podcast:

  • Visual Studio LightSwitch
    • Participe enviando sua opinião sobre esta nova ferramenta através do twitter ou comentando no posta deste audio.
  • Contratação no Time de Expression (Christian Shormman)
  • 10 coisas que um desenvolvedor WPF e Silverlight deve saber by Pete Brown

Cadastre e receba o podcast diretamente no seu Ipod, Zune, Mp3 player, etc:

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

O XAMLCast no Twitter: @xamlcast

  • Hashtag #xamlcast
  • Siga os XAMLCasters:
    • @kelps
    • @robertos_br
    • @rodrigokono

Até o próximo!

Abraços,

Kelps, Roberto Sonnino e Rodrigo Kono

http://feedproxy.google.com/~r/xamlcast/~5/IRWuIHFQtl8/xamlcast – 20.mp3

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

Jul 14

Revista .net Magazine Edição 75

Escrito por Alexandre Tadashi em .NET, .Net Magazine, 1, 4, 6, AR, arte, Artigo, Artigos, azure, BI, Blend, blog, Blogs, class, Destaque, DevMedia, Dica, DRE, Entity Framework, expression, Expression Blend, framework, git, Google, Hibernate, html, IE, if, image, mg, NaN, O, on, portal, processo, quick, Revista .net Magazine, RIA, Ria’s Geral, silverlight, UI, update, window, windows, WPF, XP @ 07 14th, 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 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

« 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