<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-9133086504761119710</id><updated>2011-11-27T21:33:40.081-02:00</updated><category term='C#'/><category term='Arquitetura'/><category term='JUDE'/><category term='Tecnologia'/><category term='Flex'/><category term='UML'/><category term='Código'/><category term='.NET Remoting'/><category term='Design'/><category term='Humor'/><category term='Análise'/><category term='RIA'/><category term='Ajax'/><category term='Silverlight'/><category term='.NET'/><category term='Sobre o blog'/><title type='text'>Desenvolvendo SW</title><subtitle type='html'>Analisar, projetar e implementar...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://desenvolvendosw.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9133086504761119710/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://desenvolvendosw.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Maxmiliano Franco Braga</name><uri>https://profiles.google.com/103867396570455075124</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-S9HjGUgOFj0/AAAAAAAAAAI/AAAAAAAAO2c/CygY1Ose8x0/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9133086504761119710.post-804056788004695891</id><published>2008-07-14T22:16:00.000-03:00</published><updated>2008-07-14T23:05:32.708-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RIA'/><category scheme='http://www.blogger.com/atom/ns#' term='Ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><title type='text'>Interfaces Ricas</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;RIA&lt;/span&gt; é uma sigla muito discutida recentemente. Vem de Rich Interfaace Applications. Ou Aplicações com Interfaces Ricas. O termo aplica-se, basicamente, a aplicações para Internet, já que (em teoria) aplicações desktop já possuem Interfaces Ricas (ou deveriam possuir).&lt;br /&gt;&lt;br /&gt;Recentemente estive em contato com algumas tecnologias que prometem realizar os sonhos de muitos programadores web. Adianto que nenhuma é perfeita. Todas têm pontos positivos e negativos. E cada uma pode ser melhor em determinada situação.&lt;br /&gt;&lt;br /&gt;Nos últimos meses pesquisei e testei Ajax, Silverlight e Flex.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ajax&lt;/span&gt; resume-se, basicamente na utilização de XML e javascript trabalhando em conjunto para permitir posts assíncronos. Utilizei duas bibliotecas: AjaxToolkit, da Microsoft, em conjunto com Visual Studio (C#) e ICEFaces, da ICESoft, em conjunto com o Eclipse (Java). A solução da Microsoft exige bastante codificação javascript. A solução Java possui mais componentes e esconde um pouco do javascript neles, mas é de difícil configuração.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Silverlight&lt;/span&gt;, da Microsoft, permite a criação de Interfaces bastante ricas. Uma grande vantagem é que o programador .NET não precisa aprender outra linguagem. A página, apesar de não ser em ASP.NET, é em XAML (que é quase um XML). a parte servidora pode ser em qualquer linguagem do Framework .NET (C# ou VB.NET, por exemplo). Mas o SL peca por não possuir muitos componentes disponíveis. Além de não ser multiplataforma. Fanáticos por Microsoft poderiam dizerq ue o Silverlight é multiplaforma: "roda no Vista, no XP,  noServer 2008, no Server 2003". Pra mim é pouco. O Silverlight já está lançando a versão 2.0 e ainda não tem plugin para o Firefox rodando no Linux? Pra mim é pouco! Silverlight pode ser ideal  para aplicações 100% ambiente Windows. Se precisar de um pouco de portabilidade, melhor procurar outra opção.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Flex&lt;/span&gt;, da Adobe, constrói interfaces ricas através de aplicações Flash. O framework já traz muitos componentes e efeitos fáceis de utilizar em uma aplicação web. Apesar do Flex utilizar ActionScript, uma linguagem  que eu não conhecia, achei muito fácil trabalhar com ele. Uma grande dificuldade que tive até agora foi encontrar uma forma de gerar, visualizar e imprimir relatórios.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9133086504761119710-804056788004695891?l=desenvolvendosw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://desenvolvendosw.blogspot.com/feeds/804056788004695891/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9133086504761119710&amp;postID=804056788004695891' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9133086504761119710/posts/default/804056788004695891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9133086504761119710/posts/default/804056788004695891'/><link rel='alternate' type='text/html' href='http://desenvolvendosw.blogspot.com/2008/07/interfaces-ricas.html' title='Interfaces Ricas'/><author><name>Maxmiliano Franco Braga</name><uri>https://profiles.google.com/103867396570455075124</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-S9HjGUgOFj0/AAAAAAAAAAI/AAAAAAAAO2c/CygY1Ose8x0/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9133086504761119710.post-6215993372721278748</id><published>2008-04-11T22:42:00.000-03:00</published><updated>2008-04-11T23:33:01.221-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Código'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Programando por Interfaces</title><content type='html'>&lt;div style="text-align: justify;"&gt;Já ouvi de várias pessoas diversas vantagens sobre programar através da Interface. O princípio é simples: crie Interfaces para só depois criar as Implementações.&lt;br /&gt;&lt;br /&gt;Eu poderia citar e dissertar sobre as diversas vantagens. Que vão desde permitir que o contrato das classes sejam estabelecidos antes de suas implementações, até encapsular as classes concretas, deixando à mostra somente o que interessa: como utilizar a classe. Porém, já existem diversos artigos por aí explicando essas vantagens em detalhes.&lt;br /&gt;&lt;br /&gt;O que tenho a dizer é que será muito mais fácil compreender estas vantagens se tivermos um exemplo de como e por quê isso funciona.&lt;br /&gt;&lt;br /&gt;Normalmente, temos a noção de quais métodos nossa classe vai precisar possuir. Se você mal escreve a assinatura do primeiro método e já parte para a sua implementação, corre um sério risco de esquecer tudo o que havia planejado no início. Criar a Interface antes também ajuda a não deixar este problema acontecer.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;Um pouco de código... Duas Interfaces para nosso projeto de Matriz de Rastreabilidade. Interfaces para Entidades de Negócio.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ITipoDeArtefato.cs&lt;/span&gt;&lt;br /&gt;&lt;div class="Section1"&gt;&lt;hr /&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="" lang="EN-US"&gt;using&lt;/span&gt;&lt;span style="" lang="EN-US"&gt; System;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="" lang="EN-US"&gt;using&lt;/span&gt;&lt;span style="" lang="EN-US"&gt; System.Collections.Generic;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="" lang="EN-US"&gt;using&lt;/span&gt;&lt;span style="" lang="EN-US"&gt; System.Linq;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="" lang="EN-US"&gt;using&lt;/span&gt;&lt;span style="" lang="EN-US"&gt; System.Text;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="" lang="EN-US"&gt;namespace&lt;/span&gt;&lt;span style="" lang="EN-US"&gt; Dominio.Interfaces&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="" lang="EN-US"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;interface&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;ITipoDeArtefato&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;    &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color:blue;"&gt;void&lt;/span&gt; setCodigo(&lt;span style="color:blue;"&gt;int&lt;/span&gt; codigo);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color:blue;"&gt;int&lt;/span&gt; getCodigo();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color:blue;"&gt;void&lt;/span&gt; setDescricao(&lt;span style="color:blue;"&gt;string&lt;/span&gt; descricao);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=""&gt;string&lt;/span&gt;&lt;span style=""&gt; getDescricao();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;    &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="line-height: 115%;"&gt;}&lt;/span&gt;&lt;/p&gt;  &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;IArtefato.cs&lt;/span&gt;&lt;br /&gt;&lt;div face="courier new" class="Section1"&gt;&lt;hr /&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0pt;"&gt;&lt;span lang="EN-US"  style="font-size:85%;"&gt;using&lt;/span&gt;&lt;span lang="EN-US"  style="font-size:85%;"&gt; System;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0pt;"&gt;&lt;span lang="EN-US"  style="font-size:85%;"&gt;using&lt;/span&gt;&lt;span lang="EN-US"  style="font-size:85%;"&gt; System.Collections.Generic;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span lang="EN-US"  style="font-size:85%;"&gt;using&lt;/span&gt;&lt;span lang="EN-US"  style="font-size:85%;"&gt; System.Text;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0pt;"&gt;&lt;span lang="EN-US"  style="font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size:85%;"&gt;namespace&lt;/span&gt;&lt;span style="font-size:85%;"&gt; Dominio.Interfaces&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size:85%;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;interface&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;IArtefato&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=""&gt;    &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color:blue;"&gt;void&lt;/span&gt; addImpactado(&lt;span style="color: rgb(43, 145, 175);"&gt;IArtefato&lt;/span&gt; artefato);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color:blue;"&gt;void&lt;/span&gt; removeImpactado(&lt;span style="color: rgb(43, 145, 175);"&gt;IArtefato&lt;/span&gt; artefato);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color:blue;"&gt;void&lt;/span&gt; addDependencia(&lt;span style="color: rgb(43, 145, 175);"&gt;IArtefato&lt;/span&gt; artefato);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color:blue;"&gt;void&lt;/span&gt; removeDependencia(&lt;span style="color: rgb(43, 145, 175);"&gt;IArtefato&lt;/span&gt; artefato);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"  style="font-size:85%;"&gt;int&lt;/span&gt;&lt;span lang="EN-US"  style="font-size:85%;"&gt; getCodigo();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span lang="EN-US"  style="font-size:85%;"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color:blue;"&gt;string&lt;/span&gt; getDescricao();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span lang="EN-US"  style="font-size:85%;"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color:blue;"&gt;void&lt;/span&gt; setCodigo(&lt;span style="color:blue;"&gt;int&lt;/span&gt; codigo);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span lang="EN-US"  style="font-size:85%;"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color:blue;"&gt;void&lt;/span&gt; setDescricao(&lt;span style="color:blue;"&gt;string&lt;/span&gt; descricao);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span lang="EN-US"  style="font-size:85%;"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;ITipoDeArtefato&lt;/span&gt; getTipoDeArtefato();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span lang="EN-US"  style="font-size:85%;"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color:blue;"&gt;void&lt;/span&gt; setTipoDeArtefato(&lt;span style="color: rgb(43, 145, 175);"&gt;ITipoDeArtefato&lt;/span&gt; tipoDeArtefato);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span lang="EN-US"  style="font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span lang="EN-US"  style="font-size:85%;"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;IDictionary&lt;/span&gt;&lt;&lt;span style="color:blue;"&gt;int&lt;/span&gt;, &lt;span style="color: rgb(43, 145, 175);"&gt;IArtefato&lt;/span&gt;&gt; getListaImpactados();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span lang="EN-US"  style="font-size:85%;"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;IDictionary&lt;/span&gt;&lt;&lt;span style="color:blue;"&gt;int&lt;/span&gt;, &lt;span style="color: rgb(43, 145, 175);"&gt;IArtefato&lt;/span&gt;&gt; getListaDependencias();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span lang="EN-US"  style="font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span lang="EN-US"  style="font-size:85%;"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;void&lt;/span&gt;&lt;span style="font-size:85%;"&gt; setListaImpactados(&lt;span style="color: rgb(43, 145, 175);"&gt;IDictionary&lt;/span&gt;&lt;&lt;span style="color:blue;"&gt;int&lt;/span&gt;, &lt;span style="color: rgb(43, 145, 175);"&gt;IArtefato&lt;/span&gt;&gt; listaImpactados);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color:blue;"&gt;void&lt;/span&gt; setListaDependencias(&lt;span style="color: rgb(43, 145, 175);"&gt;IDictionary&lt;/span&gt;&lt;&lt;span style="color:blue;"&gt;int&lt;/span&gt;, &lt;span style="color: rgb(43, 145, 175);"&gt;IArtefato&lt;/span&gt;&gt; listaDependencias);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=""&gt;    &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="line-height: 115%;font-size:85%;" &gt;}&lt;/span&gt;&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9133086504761119710-6215993372721278748?l=desenvolvendosw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://desenvolvendosw.blogspot.com/feeds/6215993372721278748/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9133086504761119710&amp;postID=6215993372721278748' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9133086504761119710/posts/default/6215993372721278748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9133086504761119710/posts/default/6215993372721278748'/><link rel='alternate' type='text/html' href='http://desenvolvendosw.blogspot.com/2008/04/programando-por-interfaces.html' title='Programando por Interfaces'/><author><name>Maxmiliano Franco Braga</name><uri>https://profiles.google.com/103867396570455075124</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-S9HjGUgOFj0/AAAAAAAAAAI/AAAAAAAAO2c/CygY1Ose8x0/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9133086504761119710.post-4537544087809915266</id><published>2008-03-26T00:26:00.000-03:00</published><updated>2008-03-26T00:40:01.221-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET Remoting'/><category scheme='http://www.blogger.com/atom/ns#' term='Tecnologia'/><title type='text'>Um bom exemplo de .NET Remoting</title><content type='html'>Tentando conhecer pouco mais sobre .NET Remoting, encontrei um site interessante com um bom exemplo. Nele é mostrado como um cliente pode criar instâncias para um objeto remoto, que está em um serviddor que publica serviços através de .NET Remoting.&lt;br /&gt;&lt;br /&gt;Bem simples e prático, ele mostra .NET Remoting funcionando através de TCP. Vale lembrar que ele também permite conexões via HTTP.&lt;br /&gt;&lt;br /&gt;Eis o link:&lt;br /&gt;&lt;a href="http://www.developer.com/net/cplus/article.php/10919_1479761_1"&gt;http://www.developer.com/net/cplus/article.php/10919_1479761_1&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Vale à pena conferir...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9133086504761119710-4537544087809915266?l=desenvolvendosw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://desenvolvendosw.blogspot.com/feeds/4537544087809915266/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9133086504761119710&amp;postID=4537544087809915266' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9133086504761119710/posts/default/4537544087809915266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9133086504761119710/posts/default/4537544087809915266'/><link rel='alternate' type='text/html' href='http://desenvolvendosw.blogspot.com/2008/03/um-bom-exemplo-de-net-remoting.html' title='Um bom exemplo de .NET Remoting'/><author><name>Maxmiliano Franco Braga</name><uri>https://profiles.google.com/103867396570455075124</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-S9HjGUgOFj0/AAAAAAAAAAI/AAAAAAAAO2c/CygY1Ose8x0/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9133086504761119710.post-387894075171522242</id><published>2008-03-20T23:15:00.000-03:00</published><updated>2008-12-09T16:27:02.339-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UML'/><category scheme='http://www.blogger.com/atom/ns#' term='JUDE'/><category scheme='http://www.blogger.com/atom/ns#' term='Arquitetura'/><category scheme='http://www.blogger.com/atom/ns#' term='Design'/><title type='text'>Matriz de Rastreabilidade (Parte 2)</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Arquitetura de Software&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;O domínio é pequeno, e talvez não exigisse uma arquitetura elaborada. Mas para praticar um pouco, quis utilizar um padrão com o qual já tive contato e já vi funcionando tanto em .NET quanto em Java.&lt;br /&gt;&lt;br /&gt;Os nomes das camadas podem mudar, mas já vi muita gente utilizando algo semelhante ao que é apresentado no modelo abaixo:&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_svtS-6jpB2k/R-MbeL87whI/AAAAAAAAAQI/p4PVhhqrysQ/s1600-h/Imagem+05.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_svtS-6jpB2k/R-MbeL87whI/AAAAAAAAAQI/p4PVhhqrysQ/s400/Imagem+05.JPG" alt="" id="BLOGGER_PHOTO_ID_5180014201824592402" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Algumas considerações:&lt;/span&gt;&lt;br /&gt;- Cada camada acessa outra através de fábricas.&lt;br /&gt;- Apresentação conhece Interfaces de Façade e Domínio&lt;br /&gt;- Façade conhece Interfaces de DAO e Domínio.&lt;br /&gt;- DAO conhece de Domínio.&lt;br /&gt;- Classes das camadas Façade e DAO são Singleton.&lt;br /&gt;- Controlodor de tela é responsável por controles de tela e entra/saída de dados.&lt;br /&gt;- Façade é responsável por processar informações, manipular objetos e encaminhá-los à DAO.&lt;br /&gt;- Dentro da Façade é que o sistema é distribuído.&lt;br /&gt;- DAO é responsável pelo mapeamento OR.&lt;br /&gt;- É de Domínio que surgem os objetos de negócio.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9133086504761119710-387894075171522242?l=desenvolvendosw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://desenvolvendosw.blogspot.com/feeds/387894075171522242/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9133086504761119710&amp;postID=387894075171522242' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9133086504761119710/posts/default/387894075171522242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9133086504761119710/posts/default/387894075171522242'/><link rel='alternate' type='text/html' href='http://desenvolvendosw.blogspot.com/2008/03/matriz-de-rastreabilidade-parte-2.html' title='Matriz de Rastreabilidade (Parte 2)'/><author><name>Maxmiliano Franco Braga</name><uri>https://profiles.google.com/103867396570455075124</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-S9HjGUgOFj0/AAAAAAAAAAI/AAAAAAAAO2c/CygY1Ose8x0/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_svtS-6jpB2k/R-MbeL87whI/AAAAAAAAAQI/p4PVhhqrysQ/s72-c/Imagem+05.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9133086504761119710.post-3419776265942598288</id><published>2008-03-18T23:28:00.000-03:00</published><updated>2008-03-18T23:37:04.175-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Humor'/><title type='text'>Discontração</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Why do computer programmers confuse Halloween with Christmas?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Because Oct 31 = Dec 25.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;=)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9133086504761119710-3419776265942598288?l=desenvolvendosw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://desenvolvendosw.blogspot.com/feeds/3419776265942598288/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9133086504761119710&amp;postID=3419776265942598288' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9133086504761119710/posts/default/3419776265942598288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9133086504761119710/posts/default/3419776265942598288'/><link rel='alternate' type='text/html' href='http://desenvolvendosw.blogspot.com/2008/03/discontrao.html' title='Discontração'/><author><name>Maxmiliano Franco Braga</name><uri>https://profiles.google.com/103867396570455075124</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-S9HjGUgOFj0/AAAAAAAAAAI/AAAAAAAAO2c/CygY1Ose8x0/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9133086504761119710.post-2241068729003015388</id><published>2008-03-17T23:53:00.000-03:00</published><updated>2008-12-09T16:27:03.192-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UML'/><category scheme='http://www.blogger.com/atom/ns#' term='JUDE'/><category scheme='http://www.blogger.com/atom/ns#' term='Análise'/><title type='text'>Matriz de Rastreabilidade (Parte 1)</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Motivação&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;"A &lt;b&gt;Matriz de Rastreabilidade&lt;/b&gt; auxilia bastante na identificação de impactos." Muitos concordam com isso. Entretanto, basta o primeiro aperto durante o ciclo de desenvolvimento e esta frase parece ser esquecida.&lt;br /&gt;&lt;br /&gt;Também pudera. Em muitos casos, a Matriz de Rastreabilidade é algo extremamente complicado de ser mantido. Não conheço nenhum software &lt;s&gt;free&lt;/s&gt; acessível que mantenha esta matriz. O fato é que existem softwares bastante completos em que a Matriz, ou as associações entre artefatos, é apenas uma parte de todo um conjunto de funcionalidades.&lt;br /&gt;&lt;br /&gt;Até para passar o tempo, há algum tempo atrás, comecei a desenvolver uma Matriz de Rastreabilidade em VS.NET 2005. O projeto parou. Quando surgiu a oportunidade em um trabalho de grupo, sugeri para outros três colegas que fizéssemos um software que gerenciasse impactos entre artefatos. A linguagem era Java. A idéia evoluiu e hoje estamos fazendo este trabalho.&lt;br /&gt;&lt;br /&gt;Mas agora preciso voltar a estudar .NET. Pensei, então, em recomeçar o projeto para ser minha nova cobaia em C#.&lt;br /&gt;&lt;br /&gt;Sem complicações e muita delonga, vamos lá!&lt;br /&gt;&lt;br /&gt;Todos sabem o quanto é importante eliciar, encontrar, analisar, documentar e validar requisitos. Estas atividades são muito importantes porque blá blá blá blá blá... Não quero dizer que não seja importante. É sim! E muito. Só não quero fazer isso agora! Afinal, todo mundo sabe como funciona uma matriz de rastreabilidade.&lt;br /&gt;&lt;br /&gt;Se temos N artefatos, teremos uma matriz NxN em que cada célula representa a relação entre dois artefatos. A relação pode ser do tipo "depende de", "impacta em", "não está relacionado diretamente". A legenda que cada um utiliza para representar é indiferente neste momento.&lt;br /&gt;&lt;br /&gt;Ok, ok! Esta é para os mais conservadores (analistas de requisitos que ficam com medo de perder o emprego quando alguém põe a mão na massa sem falar com ele): suponhamos que eu levantei &lt;span style="color: rgb(153, 153, 153);font-size:78%;" &gt;(já conhecia)&lt;/span&gt; e validei &lt;span style="color: rgb(153, 153, 153);font-size:78%;" &gt;(comigo mesmo)&lt;/span&gt; os requisitos, e estão todos anotados &lt;span style="color: rgb(153, 153, 153);font-size:78%;" &gt;(na minha cabeça)&lt;/span&gt;. Tenho um pouco de tempo. Farei uma rápida repassada.&lt;br /&gt;&lt;br /&gt;Então, vamos lá!&lt;br /&gt;&lt;br /&gt;Um artefato de software possui uma descrição e um identificador numérico único. Um artefato pode ser do tipo "Especificação de Caso de Uso", "CONOPs - Conceitos de Operações", "Classe de Design", entre outros. Seria legal que tipo fosse uma classe. Código e descrição são suficientes?&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_svtS-6jpB2k/R98zembwYiI/AAAAAAAAAPY/LbKyAb6SpGA/s1600-h/Imagem+01.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_svtS-6jpB2k/R98zembwYiI/AAAAAAAAAPY/LbKyAb6SpGA/s400/Imagem+01.JPG" alt="" id="BLOGGER_PHOTO_ID_5178914697305416226" border="0" /&gt;&lt;/a&gt;Maravilha! Agora eu posso cadastrar todos os artefatos de software no meu sistema. Ótimo! Mas e aí? Cadê a tal matriz?&lt;br /&gt;&lt;br /&gt;Agora vem, talvez, a parte mais complicada da história. Cada artefato pode impactar em zero ou mais artefatos (0..*). Da mesma forma, um artefato pode depender de zero ou mais artefatos. E agora? Lascou?&lt;br /&gt;&lt;br /&gt;Começamos bem! Temos um auto-relacionamento.&lt;br /&gt;&lt;br /&gt;Se minhas aulas de UML e Orientação a Objetos valeram de alguma coisa, acho que podemos representar isto de três maneiras.&lt;br /&gt;&lt;center&gt;&lt;br /&gt;Assim:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_svtS-6jpB2k/R981WGbwYjI/AAAAAAAAAPg/K4iJUOvS-FM/s1600-h/Imagem+02.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_svtS-6jpB2k/R981WGbwYjI/AAAAAAAAAPg/K4iJUOvS-FM/s400/Imagem+02.JPG" alt="" id="BLOGGER_PHOTO_ID_5178916750299783730" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;Associações com setas.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ou talvez assim:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_svtS-6jpB2k/R982DmbwYkI/AAAAAAAAAPo/wngB5IVDUjg/s1600-h/Imagem+03.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_svtS-6jpB2k/R982DmbwYkI/AAAAAAAAAPo/wngB5IVDUjg/s400/Imagem+03.JPG" alt="" id="BLOGGER_PHOTO_ID_5178917531983831618" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;Associações como atributos.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Alguns até representam assim:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_svtS-6jpB2k/R982lmbwYlI/AAAAAAAAAPw/6emRX5qn9tE/s1600-h/Imagem+04.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_svtS-6jpB2k/R982lmbwYlI/AAAAAAAAAPw/6emRX5qn9tE/s400/Imagem+04.JPG" alt="" id="BLOGGER_PHOTO_ID_5178918116099383890" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;Associações como atributos e com setas.&lt;/span&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Prefiro não querer acreditar que uma abordagem é certa ou melhor que a outra. Eu, particularmente, não gosto de redundância. Então, não utilizo a terceira (atributos e setas). Gosto mais da segunda (como atributos), pois deixa o modelo mais enxuto. Nada contra quem prefere usar muitas setas, gosto pessoal.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_svtS-6jpB2k/R984p2bwYmI/AAAAAAAAAP4/1ofObynh_VU/s1600-h/Imagem+03b.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_svtS-6jpB2k/R984p2bwYmI/AAAAAAAAAP4/1ofObynh_VU/s400/Imagem+03b.JPG" alt="" id="BLOGGER_PHOTO_ID_5178920388137083490" border="0" /&gt;&lt;/a&gt;Temos nosso modelo de domínio. O problema parece bem simples e, aparentemente, este modelo permite que tenhamos as informações necessárias para nossa matriz:&lt;br /&gt;- Quais são os artefatos?&lt;br /&gt;- Qual o tipo de cada artefato?&lt;br /&gt;- Quem depende de quem?&lt;br /&gt;- Quem impacta em quem?&lt;br /&gt;&lt;br /&gt;A seguir, tentarei esboçar a &lt;b&gt;Arquitetura de Software&lt;/b&gt; que pretendo utilizar para resolver nosso problema.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;- O quê!? Você vai projetar e documentar uma arquitetura para um sistema que tem apenas duas classes no modelo de domínio?&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Sim, eu vou! É uma ótima oportunidade para experimentar e fazer testes. Não quero deixá-la passar.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9133086504761119710-2241068729003015388?l=desenvolvendosw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://desenvolvendosw.blogspot.com/feeds/2241068729003015388/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9133086504761119710&amp;postID=2241068729003015388' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9133086504761119710/posts/default/2241068729003015388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9133086504761119710/posts/default/2241068729003015388'/><link rel='alternate' type='text/html' href='http://desenvolvendosw.blogspot.com/2008/03/matriz-de-rastreabilidade-parte-1.html' title='Matriz de Rastreabilidade (Parte 1)'/><author><name>Maxmiliano Franco Braga</name><uri>https://profiles.google.com/103867396570455075124</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-S9HjGUgOFj0/AAAAAAAAAAI/AAAAAAAAO2c/CygY1Ose8x0/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_svtS-6jpB2k/R98zembwYiI/AAAAAAAAAPY/LbKyAb6SpGA/s72-c/Imagem+01.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9133086504761119710.post-4113958005386635623</id><published>2008-03-17T22:13:00.000-03:00</published><updated>2008-03-17T23:50:48.624-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sobre o blog'/><title type='text'>Um novo começo...</title><content type='html'>&lt;div style="text-align: justify;"&gt;Este não é o primeiro blog que crio. E, provavelmente, não será o último. Também não é o primeiro sobre Desenvolvimento de Software.&lt;br /&gt;&lt;br /&gt;A intenção é registrar um pouco da experiência que tive e venho tendo com Engenharia de Software.&lt;br /&gt;&lt;br /&gt;Vou criar posts e escrever como se fosse para diversas pessoas, interessadas ou não no assunto, lerem. Vou, inclusive colocar anúncios no blog. Se alguém quiser clicar nestes links e me ajudar a ficar rico, ótimo! :-) Mas se ninguém gostar dos anúncios, ninguém quiser nem ler e muito menos entrar no blog... sem problemas! Vou continuar assim, mesmo.&lt;br /&gt;&lt;br /&gt;Claro que escrever para alguém é melhor do que escrever para ninguém. Comentários com sugestões, perguntas, críticas construtivas e idéias serão sempre bem vindos.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9133086504761119710-4113958005386635623?l=desenvolvendosw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://desenvolvendosw.blogspot.com/feeds/4113958005386635623/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9133086504761119710&amp;postID=4113958005386635623' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9133086504761119710/posts/default/4113958005386635623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9133086504761119710/posts/default/4113958005386635623'/><link rel='alternate' type='text/html' href='http://desenvolvendosw.blogspot.com/2008/03/um-novo-comeo.html' title='Um novo começo...'/><author><name>Maxmiliano Franco Braga</name><uri>https://profiles.google.com/103867396570455075124</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-S9HjGUgOFj0/AAAAAAAAAAI/AAAAAAAAO2c/CygY1Ose8x0/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry></feed>
