<?xml version="1.0" encoding="Windows-1252"?><rss version="2.0"><channel><title>Projetando.NET - Artigos</title><link>http://www.projetando.net/Sections/Articles.aspx</link><description>Artigos relacionados à plataforma de desenvolvimento .NET da Microsoft.</description><copyright>Copyright 2003 - 2007 Projetando.NET. All rights reserved.</copyright><item><title>WCF - Reliable Messages</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=90</link><description>Ao consumir um serviço WCF podemos interagir com o mesmo através de diferentes mecanismos, tais como, &lt;i&gt;request-reply&lt;/i&gt; ou &lt;i&gt;one-way&lt;/i&gt;. Sabemos que, independente do tipo que você utilize, a mensagem trafega entre o cliente e o serviço através da rede, utilizando o protocolo especificado pelo &lt;i&gt;binding&lt;/i&gt;. Com isso, uma das principais preocupações que se tem é com relação a garantia de entrega da mensagem ao seu destinatário, pois problemas com a rede podem acontecer, fazendo com que a mensagem seja interceptada ou simplesmente perdida. A finalidade deste artigo é apresentar uma técnica disponibilizada pelo WCF, para evitar que problemas como estes comprometam a consistência e execução de um serviço.</description><author>Israel Aece</author><pubDate>12/11/2008 18:00:00</pubDate></item><item><title>WCF - Error Handling</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=89</link><description>Independentemente de que tipo de aplicação estamos criando, erros sempre podem acontecer. O mesmo serve para serviços, não estando isentos disso. Em se tratando de serviços, os erros podem ser os mais variados possíveis, havendo problemas a nível de transporte (protocolo), na entrega/recebimento da mensagem, no runtime ou até mesmo (e é o mais comum) na execução da operação (método). O WCF fornece várias técnicas para analisar e tratar os possíveis erros que ocorrem durante a execução do serviço. O grande desafio aqui é como fazer com que este problema (erro) seja passado para o cliente que o consome independentemente da plataforma, dando à ele a capacidade de saber o que ocorreu e como contorná-lo, mantendo a aplicação cliente e proxy estáveis. Esse artigo abordará como devemos proceder para disparar erros, notificar o cliente e, como ele pode fazer para tratar os erros que ocorrem.</description><author>Israel Aece</author><pubDate>30/9/2008 0:25:00</pubDate></item><item><title>WCF - Tipos de Mensagens</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=88</link><description>Tradicionalmente, em qualquer tipo de aplicação, podemos criar um método que faz alguma tarefa. Ao criá-lo, podemos consumí-lo na mesma aplicação ao até mesmo referenciar a classe em que ele está contido e também consumí-los nos mais variados projetos. Ao realizar a chamada para este método, devemos esperar a sua execução e, quando finalizada, damos continuidade na execução do programa. Ao criar uma operação em um serviço WCF, ela também se comportará da mesma forma. Mas essa não é a única alternativa fornecida pelo WCF. O foco deste artigo é explorar tais alternativas e como elas influenciam na configuração e implementação e execução do serviço.</description><author>Israel Aece</author><pubDate>30/9/2008 0:20:00</pubDate></item><item><title>WCF - Sincronização</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=87</link><description>Ao expor um serviço para que ele seja consumido, devemos nos atentar à possibilidade deste serviço ser acessado simultaneamente. Isso ocorre quando múltiplas requisições (threads) tentam acessar o mesmo recurso ao mesmo tempo. A possibilidade de acessos simultâneos poderá acontecer dependendo do tipo de gerenciamento de instância escolhido para o serviço. A finalidade deste artigo é mostrar as três opções fornecidas pelo WCF para tratar a concorrência e, além disso, exibir algumas das várias técnicas de sincronização fornecidas pelo .NET Framework e que poderão ser utilizadas em conjunto com o WCF.</description><author>Israel Aece</author><pubDate>30/9/2008 0:15:00</pubDate></item><item><title>WCF - Throttling e Pooling</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=86</link><description>Através do gerenciamento de instância de um serviço podemos definir qual a forma de criação de uma instância para servir uma determinada requisição. Essa configuração que fazemos à nivel de serviço, através de um &lt;i&gt;behavior&lt;/i&gt;, não impõe nenhuma restrição na quantidade de instância e/ou execuções concorrentes que são realizadas e, dependendo do volume de requisições que o serviço tenha ou até mesmo a quantidade de recursos que ele utiliza, podemos degradar consideravelmente a performance. O &lt;i&gt;Throttling&lt;/i&gt; possibilita restringirmos a quantidade de sessões, instâncias e chamadas concorrentes que são realizadas para um serviço. Além do &lt;i&gt;Throttling&lt;/i&gt;, ainda há outra funcionalidade que pode ser utilizada em um serviço, que é o &lt;i&gt;Pooling&lt;/i&gt; de objetos. Este artigo explicará como proceder para efetuar a configuração do &lt;i&gt;Throttling&lt;/i&gt; e suas implicações; também falaremos supercialmente sobre a estrutura do &lt;i&gt;Pooling&lt;/i&gt; e como implementá-lo.</description><author>Israel Aece</author><pubDate>8/9/2008 18:00:00</pubDate></item><item><title>WCF - Gerenciamento de Instâncias</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=84</link><description>O gerenciamento de instância é uma técnica que é utilizada pelo WCF ou qualquer outra tecnologia de computação distribuída que determina como e por quem as requisições dos clientes serão atendidas. A escolha do modo de gerenciamento de instâncias interfere diretamente na escalabilidade, performance e transações de um serviço/componente, além de termos algumas mudanças à nível de implementação de contrato, que precisamos nos atentar para garantir que o mesmo funcione sob o modelo de gerenciamento escolhido. A finalidade do artigo consiste, basicamente, em mostrar cada uma das três técnicas disponíveis pelo WCF mas, também, abordando os seus respectivos benefícios e algumas técnicas que circundam esse processo e que, de alguma forma, estão ligadas e influenciam na escolha e/ou implementação. O artigo também abordará os cuidados que devemos ter na escolha e implementação de cada uma das técnicas fornecidas.</description><author>Israel Aece</author><pubDate>1/9/2008 22:39:00</pubDate></item><item><title>WCF - Transferência e Codificação de Dados</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=83</link><description>Um dos maiores benefícios que serviços da Web tem em relação à tecnologias de comunicação distribuídas é o uso de XML como base da codificação, permitindo assim, a interoperabilidade entre as mais diversas plataformas. Entretanto, a escolha do padrão de codificação e a forma de transferência destas informações a serem adotados pelo serviço influenciará diretamente na performance e interoperabilidade do mesmo e também daqueles que o consomem. O WCF - &lt;i&gt;Windows Communication Foundation&lt;/i&gt; - fornece algumas técnicas e alternativas que podemos adotar durante a configuração ou criação de um determinado serviço. A finalidade deste artigo é mostrar como implementar tal configuração/criação e analisar os impactos (inclusive a nível de contrato), benefícios e restrições de cada uma destas técnicas.</description><author>Israel Aece</author><pubDate>29/8/2008 21:03:00</pubDate></item><item><title>WCF - Chamadas Assíncronas</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=82</link><description>Muitas vezes desenvolvemos um método para desempenhar alguma tarefa e, depois de devidamente codificado, invocamos o mesmo a partir de algum ponto da aplicação. Dependendo do que este método faz, ele pode levar certo tempo para executar e, se o tempo for consideravelmente alto, podemos começar a ter problemas na aplicação, pois como a chamada é sempre realizada de síncrona, enquanto o método não retornar, a execução do sistema que faz o uso do mesmo irá congelar, aguardando o retorno do método para dar seqüência na execução. A finalidade deste artigo é mostrar como implementar o processamento assíncrono tanto do lado do cliente (&lt;i&gt;proxy&lt;/i&gt;) bem como do lado do servidor (contrato) em serviços WCF.</description><author>Israel Aece</author><pubDate>20/8/2008 21:34:15</pubDate></item><item><title>WCF - Serviços RESTFul</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=80</link><description>A versão 3.5 do &lt;i&gt;Windows Communication Foundation&lt;/i&gt; introduziu uma nova forma de expor e consumir serviços. Esse novo modelo, também conhecido como &lt;i&gt;Web Programming Model&lt;/i&gt;, permite o consumo destes serviços através dos mais variados clientes, como é o caso dos navegadores. A finalidade deste artigo é explorar os tipos que estão disponíveis para tornar isso possível.</description><author>Israel Aece</author><pubDate>27/7/2008 8:36:00</pubDate></item><item><title>WCF - Expondo componente COM+</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=79</link><description>Com o surgimento do WCF, uma plataforma de comunicação unificada, a Microsoft não se esqueceu do legado, ou seja, de componentes grandes e complexos hospedados no COM+ e, possibilita a utilização do WCF para expor esse componente através do HTTP (ou qualquer outra forma). Ao contrário do que acontecia anteriormente com Web Services, não precisamos recorrer ao &lt;i&gt;Component Services&lt;/i&gt; para isso. Junto com o SDK do .NET Framework 3.X, a Microsoft disponibiliza uma ferramenta chamada &lt;i&gt;Microsoft Service Configuration Editor&lt;/i&gt; que, dentre todas as funcionalidades disponibilizadas, uma delas é a possibilidade de integração de um componente COM+ a um serviço WCF, que será tema deste artigo.</description><author>Israel Aece</author><pubDate>5/7/2008 10:20:17</pubDate></item><item><title>WCF Partial Trust</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=78</link><description>Na primeira versão do WCF (Windows Communication Foundation) - .NET Framework 3.0 - ele não era suportado em ambientes que estavam sob &lt;i&gt;Partial Trust&lt;/i&gt;, o que obrigava muitos clientes a conceder mais direitos do que o necessário para poder executar/invocar um serviço escrito em WCF. Depois de muitas requisições, a Microsoft decidiu afrouxar essa segurança com o lançamento do .NET Framework 3.5, permitindo (com várias restrições) que serviços sejam invocados a partir de um ambiente parcialmente confiável. A finalidade deste artigo é exibir como criar um &lt;i&gt;proxy&lt;/i&gt; para um serviço que expõe um &lt;i&gt;endpoint&lt;/i&gt; não suportado neste ambiente.</description><author>Israel Aece</author><pubDate>6/5/2008 22:41:36</pubDate></item><item><title>Por dentro da Base Classe Library</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=77</link><description>A &lt;i&gt;Base Classe Library&lt;/i&gt; (também conhecida como BCL) é um conjunto de classes que o .NET disponibiliza para todas as linguagens que rodam sob o &lt;i&gt;.NET Framework&lt;/i&gt;. Essa base encapsula várias funcionalidades que tornam o trabalho dos desenvolvedores muito mais fácil. As classes contidas dentro da BCL é comum para qualquer tipo de aplicação, ou seja, independentemente de tecnologia (ASP.NET, Windows Forns, WPF, etc.), você poderá consumir essas classes que, representam tarefas que são comumente utilizadas. Veremos no decorrer deste artigo/livro cada um dos principais &lt;i&gt;namespaces&lt;/i&gt; da BCL. A idéia é abordar o conteúdo mais útil ao dia-à-dia, mostrando exemplos em Visual Basic .NET e Visual C#.</description><author>Israel Aece</author><pubDate>23/2/2008 9:00:44</pubDate></item><item><title>Criando um BuildProvider</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=76</link><description>Apesar de você não perceber, muito provavelmente já deve ter utilizado esta funcionalidade. Quando criamos arquivos de &lt;i&gt;resources&lt;/i&gt; na nossa aplicação, automaticamente é criada uma classe chamada &lt;i&gt;Resources&lt;/i&gt; e, dentro dela, são criadas propriedades que servem de &lt;i&gt;wrapper&lt;/i&gt; para acessar cada um dos itens de forma mais simples e, conseqüentemente, já tendo suporte através do &lt;i&gt;intellisense&lt;/i&gt; do Visual Studio .NET 2005. Isso é possível graças a um &lt;i&gt;builder provider&lt;/i&gt; chamado &lt;i&gt;ResourcesBuildProvider&lt;/i&gt; que está contido no &lt;i&gt;namespace System.Web.Compilation&lt;/i&gt;. A finalidade deste artigo é mostrar possíveis cenários para a utilização e também explicar como proceder para construí-lo.</description><author>Israel Aece</author><pubDate>18/12/2007 5:04:57</pubDate></item><item><title>Criando novos Providers</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=75</link><description>A arquitetura chamada pela Microsoft de &lt;i&gt;Provider Model&lt;/i&gt; foi introduzida na versão 2.0 do ASP.NET com a finalidade de podermos configurar um determinado repositório de dados, tornando isso &lt;i&gt;plug and play&lt;/i&gt;. Porém, isso não é novidade. O que poucos sabem é que podemos utilizar essa mesma arquitetura para criar nossos próprios &lt;i&gt;providers&lt;/i&gt;, não necessariamente vinculando-os a alguma fonte de dados. A idéia deste artigo é ilustrar como devemos proceder para criar o nosso próprio modelo de &lt;i&gt;providers&lt;/i&gt; e, tirar todo o proveito fornecido pela plataforma, ou seja, tornar a mudança entre um &lt;i&gt;provider&lt;/i&gt; e outro de forma transparente, sem a necessidade de recompilar a aplicação.</description><author>Israel Aece</author><pubDate>11/9/2007 9:12:27</pubDate></item><item><title>ASP.NET Internals</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=74</link><description>O ASP.NET introduziu uma nova forma de desenvolver aplicações Web, onde temos uma produtividade muito maior em relação ao ASP Clássico e, além disso, uma base sólida e comum de tipos que nos permite desenvolver uma aplicação muito mais robusta e performática. Além disso, o ASP.NET fornece uma flexibilidade muito grande onde, através de alguns objetos, você pode estender ou mudar o comportamento do processamento de uma determinada requisição. Com toda essa facilidade, alguns pontos ainda são bem obscuros, principalmente no que diz respeito ao processo de recebimento e execução de um pedido. Apesar de não ser uma matéria obrigatória para o desenvolvimento de aplicações ASP.NET, a idéia deste artigo é explorar e entender todo o processamento de uma requisição para um recurso ASP.NET, começando desde o IIS até o processo interno, referente ao &lt;i&gt;runtime&lt;/i&gt; do ASP.NET.</description><author>Israel Aece</author><pubDate>8/8/2007 18:08:40</pubDate></item><item><title>Consumindo serviços WCF no AJAX</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=73</link><description>Uma das grandes partes do .NET Framework 3.0 foi o WCF - &lt;i&gt;Windows Communication Foundation&lt;/i&gt;. Quando ele foi lançado, várias formas de acessar os serviços WCF também foram disponibilizadas. Entre as formas, conhecidas como &lt;i&gt;endpoints&lt;/i&gt;, podemos citar algumas, tais como: HTTP, TCP e MSMQ. Com a vinda do ASP.NET AJAX, surgiu a necessidade de consumir serviços WCF diretamente dentro deste tipo de aplicação. Através do Visual Studio .NET 2008 e o .NET Framework 3.5, a Microsoft se preocupou com a necessidade de consumir serviços WCF no AJAX e aproveitou esta oportunidade para criar um &lt;i&gt;binding&lt;/i&gt;. Este &lt;i&gt;binding&lt;/i&gt;, chamado de &lt;i&gt;WebHttpBinding&lt;/i&gt;, trata-se de um novo tipo de &lt;i&gt;binding&lt;/i&gt; que permite a criação de um &lt;i&gt;endpoint&lt;/i&gt; para ser consumido por aplicações AJAX e que será discutido neste artigo.</description><author>Israel Aece</author><pubDate>8/8/2007 18:04:35</pubDate></item><item><title>Client Application Services</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=72</link><description>A nova versão do Visual Studio (&lt;i&gt;codename "Orcas"&lt;/i&gt;) traz uma série de novas funcionalidades a nível de linguagens e de aplicações. No caso das linguagens, podemos citar algumas técnicas que já foram abordadas &lt;a href="http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=70" target="_blank"&gt;neste outro artigo&lt;/a&gt; quando falamos sobre o LINQ. Quando falamos a nível de aplicações, muitas funcionalidades foram criadas e, uma delas, que é chamada de &lt;i&gt;Client Application Services&lt;/i&gt;, é tema deste artigo. &lt;i&gt;Client Application Services&lt;/i&gt; trata-se de um novo conjunto de funcionalidades que habilita os mais diversos tipos de aplicações a autenticar usuários, recuperar suas respectivas &lt;i&gt;roles&lt;/i&gt; e ainda persistir informações de cada um desses usuários em um servidor qualquer, utilizando a infra-estrutura fornecida pelo ASP.NET 2.0.</description><author>Israel Aece</author><pubDate>17/6/2007 22:00:00</pubDate></item><item><title>Know Types em WCF</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=71</link><description>É muito comum em qualquer linguagem orientada a objetos, criarmos uma classe base e que, a partir dela, criar classes derivadas. Além disso, um dos grandes benefícios que temos com a orientação a objetos é a possibilidade de declararmos uma variável do tipo da classe base e atribuirmos a ela uma instância de uma classe concreta e, da mesma forma, podemos ter uma função em que em seus parâmetros os seus tipos são especificados com o tipo da classe base e, conseqüentemente, podemos também passar instâncias das classes derivadas. Infelizmente não funciona da mesma forma quando falamos de serviços que são expostos a partir do WCF. Neste cenário, por padrão, você não pode usar uma classe derivada ao invés de uma classe base. É justamente esta funcionalidade disponibilizada pelo WCF que iremos analisar neste artigo.</description><author>Israel Aece</author><pubDate>2/6/2007 13:36:26</pubDate></item><item><title>Explorando o LINQ</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=70</link><description>Aqueles que acompanham a evolução das linguagens Visual Basic .NET e Visual C# notaram grandes melhorias entre as versões 1.x e 2.0 do .NET Framework. Uma das principais que podemos destacar é a criação dos Generics. Com uma nova versão do .NET Framework saindo, a 3.5, a Microsoft decidiu lançar junto com ela as novas versões das linguagens que mencionamos anteriormente, que possuem grandes melhorias que ajudaram bastante na escrita de código. Além dessas várias funcionalidades, podemos dizer que a principal delas é o LINQ - Language Integrated Query. Este artigo dá uma visão detalhada das funcionalidades do .NET 3.5 e também do LINQ, utilizando vídeos como um complemento a cada uma das seções do artigo.</description><author>Israel Aece</author><pubDate>23/5/2007 23:56:41</pubDate></item><item><title>Boas Práticas de Programação</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=69</link><description>Para termos um código bem enxuto e com boa qualidade não basta apenas termos convenção de nomes, classes, variáveis, etc.. Precisamos ter um padrão para algumas situações para melhorarmos não somente a performance do código que está sendo escrito, mas também a qualidade de ordenação para que, futuros desenvolvedores, ao olharem o nosso código em uma manutenção, consigam facilmente identificar e assim trabalhar em cima do problema e não reaprender tudo o que fizeram, disperdiçando assim tempo e dinheiro. A finalidade deste artigo é mostrar algumas técnicas que ajudam na manutenção do código e também melhora consideravelmente a performance.</description><author>Israel Aece</author><pubDate>9/5/2007 8:57:09</pubDate></item><item><title>Tracing em serviços WCF
</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=68</link><description>Toda e qualquer tipo de aplicação sempre exige uma forma de armazenar possíveis erros que possam acontecer durante a sua execução. Isso irá ajudar imensamente para diagnosticarmos problemas que ocorrem e, conseqüentemente, facilitar na sua solução. Isso não é diferente em serviços WCF. Esse artigo tem a finalidade de demonstrar a integração que os serviços WCF possibilitam para a captura e persistência dos erros para uma posterior análise.</description><author>Israel Aece</author><pubDate>30/4/2007 7:27:22</pubDate></item><item><title>Integrando WCF com MembershipProvider e RoleProvider</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=67</link><description>Por padrão, serviços WCF utilizam as identidades e grupos do Windows para autenticação e autorização, respectivamente. Um dos grandes problemas é quando temos isso sendo disponibilizado através de uma aplicação web, pois iria requerer que todos os clientes que acessam via web estivessem devidamente cadastrados dentro do Windows; além disso, há o problema com relação aos grupos de usuários, já que muitas vezes não temos acesso para cadastrá-los e, quando isso não é um problema, podemos ter um problema adicional quando estivermos rodando em culturas de servidores diferentes. Com isso, dificilmente uma aplicação ou serviços que são expostos para a internet utilizam as contas e grupos do Windows. A solução é que felizmente o ASP.NET 2.0 fornece uma infraestrutura completa para o gerenciamento de autenticação e autorização, chamada de &lt;i&gt;Provider Model&lt;/i&gt;. Essa integração é o tema deste artigo.</description><author>Israel Aece</author><pubDate>20/4/2007 11:15:51</pubDate></item><item><title>Hosting de Serviços WCF</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=66</link><description>Como já sabemos, WCF - Windows Communication Foundation - é parte integrante do .NET Framework 3.0. Ele fornece um conjunto de classes para a construção e hospedagem de serviços baseando-se na arquitetura SOA (Service Oriented Architecture), podendo expor tais serviços para serem acessados através dos mais diversos tipos de protocolos, como por exemplo: HTTP, TCP, IPC e MSMQ. Atualmente existem três tipos de hosts para serviços construídos em WCF: self-hosting (através da classe ServiceHost), IIS (Internet Information Services) e WAS (Windows Activation Services - Windows Vista) e, é exatamente isso que este artigo abordará, ou seja, como configurar cada um desses hosts para expor os serviços construídos em WCF.</description><author>Israel Aece</author><pubDate>25/3/2007 23:01:37</pubDate></item><item><title>Formatando objetos utilizando IFormattable</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=65</link><description>Já vimos e utilizamos várias vezes padrões de formatação que são fornecidos intrinsicamente pela infraestrutura do .NET Framework desde a sua versão 1.x. Esses padrões são comuns quando necessitamos formatar datas ou números, para exibirmos ao usuário um valor mais amigável e, alguns exemplos típicos estão &lt;a href="http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=10" target="_blank"&gt;neste artigo&lt;/a&gt;. Mas há situações em que precisamos formatar o nosso objeto customizado e, felizmente, o .NET Framework fornece uma interface chamada &lt;i&gt;IFormattable&lt;/i&gt; qual possui um único método denominado, &lt;i&gt;ToString&lt;/i&gt; qual é invocado automaticamente pelo runtime quando especificamos uma formatação.</description><author>Israel Aece</author><pubDate>10/1/2007 20:11:31</pubDate></item><item><title>Migrando Profiles</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=64</link><description>É muito comum termos cenários onde usuários podem interagir com uma determinada aplicação ASP.NET, onde deverá manter os valores durante todo o percurso do mesmo dentro do site. O ASP.NET 2.0 introduziu um recurso bem interessante chamado de &lt;i&gt;Profiles&lt;/i&gt;, qual já discutimos anteriormente &lt;a href="http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=22" target="1"&gt;nestes&lt;/a&gt; &lt;a href="http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=25" target="2"&gt;artigos&lt;/a&gt;. Como também já sabemos, estes &lt;i&gt;profiles&lt;/i&gt; podem ser somente para usuários autenticados ou ainda, em alguns cenários, usuários anônimos podem também ter o seu próprio &lt;i&gt;profile&lt;/i&gt;. Um caso típico, é quando estamos em uma loja virtual e adicionamos todos os produtos que desejamos em nossa cesta de compras e, somente quando formos finalizar a compra, é que nos identificamos, ou seja, passamos de usuário anônimo para um usuário autenticado.</description><author>Israel Aece</author><pubDate>20/11/2006 21:51:26</pubDate></item><item><title>WebParts</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=63</link><description>Dentre todas as novidades que foram incluídas dentro do ASP.NET 2.0, não podemos descartar as chamadas Web Parts. O uso delas permitem que os usuários finais da aplicação possam modificar o conteúdo da página, a aparência e também o comportamento, sem recorrer a códigos e/ou operações mais complexas. Para aqueles que já estão familiarizados com o Windows Live Spaces, verão que o mesmo faz o uso dessas Web Parts. Além do Windows Live Spaces, ainda temos o mais recente Live.com, o qual provavelmente faz o uso desse recurso. As Web Parts permitem ao desenvolvedor criar aplicações mais ricas e ao mesmo tempo deixar o usuário customizar como ele desejar. No decorrer deste artigo, vamos conhecer as principais funcionalidades disponibilizadas pela arquitetura de Web Parts.</description><author>Israel Aece</author><pubDate>8/11/2006 0:29:40</pubDate></item><item><title>Entendendo e Implementando Segurança no ASP.NET 2.0</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=62</link><description>As novas API's de segurança do ASP.NET 2.0 estão realmente mais completas e com muitas das coisas que fazíamos anteriormente com ASP.NET 1.x já encapsuladas. Um novo design nas classes, controles ricos que já estão integrados com estas API's de segurança, tornando o código mais seguro, elegante e menos propício a erros e, além destas características, a quantidade de código caiu drasticamente. A finalidade deste artigo é dar um overview completo destas novas API's, começando em como está desenhada a arquitetura da mesma e passando pelo Membership e Roles. Depois disso, veremos as integrações com os controles já intrínsicos do ASP.NET, o Web Site Administration Tool e finalmente, um exemplo da configuração na íntegra do arquivo Web.Config.</description><author>Israel Aece</author><pubDate>3/5/2006 0:57:19</pubDate></item><item><title>Criando um DebuggerVisualizer</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=61</link><description>A Microsoft incluiu na versão 2.0 do .NET Framework uma possibilidade de criar um debugger customizado para um determinado objeto que temos. Isso permite-nos criar uma interface mais amigável em relação à qual é fornecida quando utilizamos o debug do Visual Studio .NET 2005. Essa técnica é chamada de Debugger Visualizer e veremos como criá-lo no decorrer deste artigo.</description><author>Israel Aece</author><pubDate>30/4/2006 12:26:11</pubDate></item><item><title>Health Monitoring</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=60</link><description>Nas versões anteriores do ASP.NET tínhamos algumas funcionalidades/serviços que nos permitiam monitorar a vida de uma aplicação ASP.NET. Podemos considerar como estes serviços os Traces e os contadores de performance. O ASP.NET 2.0 introduz um novo conceito, chamado de Health Monitoring, que trata-se de uma infraestrutura completa para monitoramento da aplicação ASP.NET, permitindo-nos analisar posteriormente o comportamento de tal aplicação, analisando a performance, diagnosticar falhas da aplicação e também eventos significativos durante a vida da aplicação em questão.</description><author>Israel Aece</author><pubDate>19/3/2006 22:40:58</pubDate></item><item><title>Limitando o conteúdo de uma coluna no DataGrid</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=59</link><description>Quando carregamos um DataGrid com valores vindos de uma base de dados, muitas vezes o conteúdo da coluna da tabela ultrapassa o espaço que temos para exibir o mesmo para o usuário. Nestes casos, temos que limitar a quantidade de caracteres para não "estourar" a largura da área de trabalho. O que se costuma fazer nestas situações é limitar já diretamente na query SQL utilizando o método SUBSTRING ou, já diretamente no código ASP.NET onde, no evento ItemDataBound do DataGrid utiliza também o método Substring da String para limitar. A solução apresentada neste artigo é criar uma coluna customizada para que não se precise alterar a query SQL e também evitar de tratar isso em todo o evento ItemDataBound. A idéia é criar uma coluna que herde diretamente da classe BoundColumn que tem as funcionalidades básicas de uma coluna do DataGrid.</description><author>Israel Aece</author><pubDate>11/3/2006 7:48:11</pubDate></item><item><title>Criando uma Seção de Configuração</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=58</link><description>Quando construímos algum componente e este deverá ser parametrizado através de valores que o desenvolvedor pode customizar no arquivo Web.Config/App.Config, podemos criar seções customizadas dentro destes arquivos para essa configuração. A vantagem de criar e utilizar esse recurso ao invés da seção appSettings é que aqui conseguimos uma melhor flexibilidade. A finalidade deste artigo é demonstrar como fazer isso na versão 2.0 do .NET Framework.</description><author>Israel Aece</author><pubDate>18/2/2006 9:16:53</pubDate></item><item><title>Client-Side Callbacks - ASP.NET 2.0</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=56</link><description>Um dos principais desafios dos desenvolvedores de aplicações Web, é construir uma aplicação intuitiva e ao mesmo tempo dinâmica, tornando a aplicação o mais próximo possível do "mundo Windows". Como essa aproximação é sempre comparada pelos clientes, o principal ponto negativo que as pessoas que estão migrando suas aplicações Windows para aplicações Web, é o fato de quando submetemos algo para ser processado no servidor, a página causa um Refresh, ou seja, ela é totalmente reconstruída. Veremos no decorrer deste artigo, a proposta da Microsoft até então para suprir essa necessidade.</description><author>Israel Aece</author><pubDate>9/1/2006 21:52:58</pubDate></item><item><title>Percorrendo os Itens do DataGrid</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=55</link><description>Há alguns cenários onde precisamos ter no controle DataGrid e, em cada um dos itens (linhas) do mesmo, ter um CheckBox, que tem a finalidade de "marcar" um determinado registro, onde futuramente precisaremos recuperar os registros que estão marcados para efetuarmos algum processo com eles. Será mostrado neste artigo como devemos fazer para recuperar os registros "marcados" pelo usuário.</description><author>Israel Aece</author><pubDate>4/12/2005 20:14:24</pubDate></item><item><title>Por dentro do ADO.NET 2.0</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=54</link><description>Novas funcionalidades foram adicionadas no .NET Framework e o ADO.NET não poderia ter ficado sem estas novas "features". Chamado de ADO.NET 2.0, ele traz intrinsicamente muitas coisas que eram impossíveis de fazer nas versões anteriores ou exigia muito código até alcançar o resultado desejado. Este artigo tem a finalidade de apresentar essas novas funcionalidades, onde em cada tópica será abordado uma destas novas funcionalidades.</description><author>Israel Aece</author><pubDate>21/11/2005 18:39:12</pubDate></item><item><title>Acessando valores em UserControls - ASCX</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=53</link><description>Muitas vezes temos valores dentro de User Controls (arquivos ASCX) que queremos acessar no Web Form (ASPX). Claro que além de acessar estes valores, podemos em alguns momentos, definir os mesmos. Para que isso seja possível, o ideal é a criação de uma propriedade pública de escrita e leitura para possibilitar o acesso "externo", em outras palavras, no WebForm que hospedará este User Control. A idéia deste artigo é mostrar como fazer para definir e ler valores de controles ASCX.</description><author>Israel Aece</author><pubDate>3/11/2005 19:41:00</pubDate></item><item><title>URL dinâmica em Web Services</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=52</link><description>Quando somos responsáveis pelo desenvolvimento dos WebServices e também da aplicação cliente que irá consumir este serviço, criamos o WebService e o hospedamos na própria máquina de desenvolvimento (localhost) e, fazemos referência à ele nesta aplicação. Mas o grande problema disso é, que como quando fizermos o deployment do WebService, a URL do mesmo irá mudar e, conseqüentemente, a URL apontando para localhost não existirá ou não estará mais acessível. A finalidade desta artigo é justamente "driblar" este problema e, deixar isso flexível, pois quando mudar a URL do Web Service, não precisar recompilar a aplicação que o consome.</description><author>Israel Aece</author><pubDate>23/10/2005 17:02:10</pubDate></item><item><title>Criando um DataGrid em Runtime</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=51</link><description>Depois de várias sugestões e dúvidas que vejo nos Newsgroups, decidi escrever este artigo, que tem a finalidade de explicar passo à passo como criar um controle DataGrid do ASP.NET 1.x em tempo de execução. Particularmente eu nunca precisei disto em minhas experiências no trabalho, mas vejo constantemente o pessoal utilizá-los. A idéia basicamente será a construção de um DataGrid, suas colunas e eventos.</description><author>Israel Aece</author><pubDate>23/10/2005 1:16:50</pubDate></item><item><title>Controle Calendar e Banco de Dados</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=50</link><description>Muitas vezes armazenamos em um banco de dados informações com dados e seus respectivos acontecimentos. Existem vários exemplos disso em nosso dia à dia: Eventos que serão realizados em uma determinada data e também um outro exemplo bem conhecido é o de Agendas, onde armazenamos na base de dados os compromissos/anotações para aquela respectiva data. Neste artigo veremos como exibir os registros de uma base de dados dentro do Controle Calendar.</description><author>Israel Aece</author><pubDate>13/10/2005 21:39:42</pubDate></item><item><title>Páginas Assíncronas do ASP.NET 2.0 - Parte 1</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=49</link><description>No momento em que o ASP.NET 1.x recebe uma requisição para uma determinada página, o runtime do ASP.NET resgata uma Thread do Pool e atribui esta à requisição para que a mesma seja executada. Isso faz com que todo o processo, desde a inicialização até a renderização, seja processado por essa Thread. Isso é conhecido como um processo (ou página) síncrono, ou seja, a Thread que está sendo utilizada somente será liberada no momento em que esse processo finalizar. Veremos neste artigo, a nova forma em que o ASP.NET 2.0 trabalha, ou seja, com páginas assíncronas.</description><author>Israel Aece</author><pubDate>2/10/2005 11:12:25</pubDate></item><item><title>Manipulando a Tag Body
</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=48</link><description>Em muitas situações precisamos em tempo de execução adicionar ou mesmo alterar os atributos da tag body do WebForm. Um exemplo disso seria alterar a cor de fundo da página ou até adicionar um código JavaScript no evento onLoad. Para que possamos fazer essas manipulações, há alguns detalhes que não podemos deixar para trás. Veremos neste artigo como devemos proceder para alcançarmos esta funcionalidade.</description><author>Israel Aece</author><pubDate>27/9/2005 18:33:23</pubDate></item><item><title>Pré-Compilação do ASP.NET 2.0</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=47</link><description>Uma das mudanças mais impactantes do ASP.NET 2.0 em relação as versões anteriores, ASP.NET 1.x, é a forma de compilarmos a aplicação. Já estavamos acostumados durante a compilação da versão 1.x do ASP.NET, através do Visual Studio .NET, a geração de um arquivo do tipo DLL dentro do diretório \bin na raiz da aplicação, que correspondia a todo o código fonte da aplicação em questão. Veremos neste artigo algumas das formas de pré-compilarmos a aplicação ASP.NET 2.0.</description><author>Israel Aece</author><pubDate>16/9/2005 0:51:32</pubDate></item><item><title>Linha do DataGrid - Disparando algum evento
</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=46</link><description>Muitas vezes, quando dispomos aos usuários uma página web com uma listagem de registros e um botão de ação, sempre é interessante acoplar nesta solução uma funcionalidade que não está presente por padrão. Essa funcionalidade é habilitar a linha toda do controle DataGrid para executar a ação. Este artigo vai abordar este ponto, ou seja, aprender como gerar esta funcionalidade.</description><author>Israel Aece</author><pubDate>6/9/2005 20:29:32</pubDate></item><item><title>Escrevendo Texto em Imagens</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=45</link><description>Há ocasiões em que dado uma string, devemos escreve-lá para o cliente através de uma imagem para evitar que ele não copie este conteúdo facilmente. Para criarmos isso no ASP.NET, existe diversas formas e uma delas vamos ver neste artigo.</description><author>Israel Aece</author><pubDate>26/8/2005 22:56:49</pubDate></item><item><title>Múltiplos arquivos de configuração</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=44</link><description>Existe uma configuração no arquivo Web.Config que muitos desconhecem e, dependendo da quantidade de configurações que temos em nossa aplicação é bastante interessante utilizá-la. Trata-se do atributo file do elemento appSettings. Através dele podemos definir um arquivo à parte para colocarmos as configurações do nosso sistema ou o que acharmos necessário.</description><author>Israel Aece</author><pubDate>22/8/2005 21:02:45</pubDate></item><item><title>Explorando o GridView</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=43</link><description>Neste artigo mostrarei o novo controle do ASP.NET 2.0, chamado GridView. Esta é uma versão muito melhorada do DataGrid das versões 1.x do ASP.NET, contendo uma série de vantagens, principalmente no que diz respeito à agilidade no desenvolvimento, ganhando assim uma enorme produtividade.</description><author>Israel Aece</author><pubDate>15/8/2005 21:59:15</pubDate></item><item><title>Direção da Coluna com DataList</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=42</link><description>Há casos em que precisamos exibir os registros da nossa fonte de dados horizontalmente, definindo um número X de colunas. Para isso você pode utilizar o controle DataList, que já fornece instrinsicamente esta funcionalidade e veremos o uso desta neste artigo.</description><author>Israel Aece</author><pubDate>15/8/2005 21:12:25</pubDate></item><item><title>Titulos da Página via CodeBehind</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=41</link><description>Em ocasiões é necessário darmos um título à página via CodeBehind, onde queremos customizar ainda mais a página à ser exibida ao Usuário final. Isso é bastante utilizado em seções do site onde o conteúdo é bastante dinâmico, e colocando o título da página já com o assunto específico que a mesma aborda.</description><author>Israel Aece</author><pubDate>15/8/2005 21:11:02</pubDate></item><item><title>Recuperando o codigo HTML de WebControls</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=40</link><description>Há momentos em que necessitamos recuperar o conteúdo HTML que é renderizado por um determinado controle. Um cenário típico é quando precisamos enviar o código HTML gerado por um controle DataGrid por email para um usuário. Isso evitará percorrer novamente a fonte de dados para montar uma String para definí-la como o corpo do email. Facilmente, podemos recuperar este conteúdo sem muito código. Como todos os controles WebControls herdam direta ou indiretamente de System.Web.UI.Control, todos implementam o método RenderControl(HtmlTextWriter) e assim nos devolverá o conteúdo (em código HTML), por ele gerado.</description><author>Israel Aece</author><pubDate>15/8/2005 21:10:03</pubDate></item><item><title>Coluna Booleana no DataGrid</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=39</link><description>Quando exibimos um conteúdo de uma tabela em um DataGrid e algum dos campos da mesma é uma coluna do tipo Booleana, muitas vezes precisamos dar ao usuário uma mensagem mais amigável do que um simples "True" ou "False". Neste caso, utilizamos o evento ItemDataBound do DataGrid e assim conseguimos interceptar o Bind no DataGrid, e com isso, verificamos o valor do campo booleano, personalizando assim, a mensagem ao usuário.</description><author>Israel Aece</author><pubDate>15/8/2005 21:08:55</pubDate></item><item><title>Escrevendo Imagens através de Stream</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=38</link><description>Algumas vezes temos um Stream que contém dados para imprimirmos na tela para o usuário. Um cenário muito usado é quando por exemplo precisamos exibir ao usuário um avatar, ou mesmo uma imagem que está armazenada em uma DB qualquer e para não interferir o processamento da página corrente, criamos uma segunda página, esta responsável por recuperar o arquivo e carregar em um objeto do tipo FileStream, e assim, percorrer este objeto e imprimi-lo no browser. A classe FileStream está contida dentro do Namespace System.IO, qual temos que importá-lo para a utilização desta classe sem a necessidade de digitarmos o "path" completo da mesma. Apenas como exemplo, utilizaremos um arquivo que está no disco para exibição.</description><author>Israel Aece</author><pubDate>15/8/2005 21:07:34</pubDate></item><item><title>DataGrid com Pop-up e Parametro</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=37</link><description>Muitas vezes precisamos exibir um conjunto de dados em um controle do tipo DataGrid e como os dados não estão todos sendo exibidos ao Usuário podemos criar uma nova janela onde passamos como parâmetro para a mesma o ID, identificando o registro, e assim nesta nova janela efetuamos uma nova Query na DB e assim retornamos seu conteúdo na íntegra.</description><author>Israel Aece</author><pubDate>15/8/2005 21:06:06</pubDate></item><item><title>Lendo XML de uma String</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=36</link><description>Em determinados momentos quando não temos um arquivo XML fisicamente criado, mas temos seu conteúdo, qual foi recuperado de algum método ou mesmo uma Query SQL em uma String e necessitamos carregar essa String (o conteúdo XML) em um DataSet, podemos utilizar a classe StringReader juntamente com o método ReadXml do Dataset para isso.</description><author>Israel Aece</author><pubDate>15/8/2005 21:05:08</pubDate></item><item><title>Transformando XML com XSLT</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=35</link><description>Quando temos um arquivo XML, podemos querer exibí-lo para o Usuário. Como seu formato é incompreensível para Usuários que não conhecem, pode-se estruturá-lo para exibir de uma forma mais amigável. Para isso utilizamos XSLT para transformar o XML, mostrando assim ao Usuário algo compreensível, utilizando HTML para formatar e exibir estes valores.</description><author>Israel Aece</author><pubDate>15/8/2005 21:02:24</pubDate></item><item><title>Colorindo a Linha do DataGrid no Evento onMouseOver</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=33</link><description>Para que a navegação fique um pouco mais interativa para o Usuário, tornando-a bem mais inteligente. Algo que podemos fazer para melhorar, é quando o Usuário passar o ponteiro do mouse pelas linhas do DataGrid, a cor do background da célula muda para que o mesmo tenha uma referência de onde esta, que veremos neste artigo como criar.</description><author>Israel Aece</author><pubDate>15/8/2005 21:00:30</pubDate></item><item><title>Colorindo Colunas do DataGrid</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=32</link><description>Exibe a forma customizarmos a coloração das colunas de um controle DataGrid.</description><author>Israel Aece</author><pubDate>15/8/2005 20:58:59</pubDate></item><item><title>Protegendo todas as páginas de uma Aplicação</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=31</link><description>Em momentos precisamos criar algum tipo de aplicação em que todas as suas páginas são restritas, ou seja, todas necessitam que o usuário esteja autenticado para que tenha acesso as mesmas. Este artigo mostrará como restringir todas as páginas de uma aplicação ASP.NET.</description><author>Israel Aece</author><pubDate>15/8/2005 20:57:35</pubDate></item><item><title>Preenchendo um DataList com Hashtable</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=30</link><description>Este artigo mostra a forma de como devemos fazer para manipular e preencher um controle DataList a partir de um objeto HashTable.</description><author>Israel Aece</author><pubDate>15/8/2005 20:55:56</pubDate></item><item><title>Definindo Figuras para Navegação da Paginação no DataGrid</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=29</link><description>Quando definimos uma paginação "built-in" do DataGrid e optamos a navegação da paginação por botões de "Anterior" e "Proximo", por default o DataGrid "sugere" os caracteres: "&lt;" e "&gt;". Podemos também definir por exemplo estes botões com figuras que desejarmos, qual é o tema tema deste artigo.</description><author>Israel Aece</author><pubDate>15/8/2005 20:53:24</pubDate></item><item><title>DropDownList com duas Colunas da DB</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=28</link><description>Este artigo exemplifica como podemos exibir duas colunas de uma fonte de dados dentro de um controle DropDownList.</description><author>Israel Aece</author><pubDate>15/8/2005 20:51:54</pubDate></item><item><title>Sumarizando valores no DataGrid</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=27</link><description>Este artigo explica como devemos fazer para sumarizar uma determinada coluna do controle DataGrid.</description><author>Israel Aece</author><pubDate>15/8/2005 20:49:06</pubDate></item><item><title>Novas "features" de Segurança</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=26</link><description>Na versão 2.0 do ASP.NET, com a grande gama de controles a nosso dispor para melhor trabalharmos o front-end (UI), temos ainda classes para manipular os usuários em nossa Base de Dados. Classes quais utilizam o Provider Model Design Pattern, e assim conseguímos ter um código genérico, idenpendentemente de que Banco de Dados (ou qualquer outro tipo de repositório) estamos utilizando em nossa aplicação.</description><author>Israel Aece</author><pubDate>15/8/2005 20:45:15</pubDate></item><item><title>Objeto Profile [ Parte 2 ]</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=25</link><description>Dando seqüencia e finalizando o artigo sobre Profiles, que é uma nova "feature" do ASP.NET 2.0, veremos no decorrer deste artigo como configurar os Profile Providers e também como gerar relatórios para gerenciamento dos mesmos. Para quem quiser ler a primeira parte deste artigo, poderá visitá-lo &lt;a href="http://www.projetando.net/Articles/ViewArticle.aspx?ArticleID=53&amp;CategoryID=1"&gt;neste link&lt;/a&gt;.</description><author>Israel Aece</author><pubDate>15/8/2005 20:41:51</pubDate></item><item><title>Validation Groups</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=24</link><description>Nas versões 1.x do ASP.NET temos um grande problema quando o assunto são os controles de validação. Isso ocorre quando temos mais de um botão que submete o formulário ao servidor, ou melhor, temos "ilhas" de controles em um mesmo WebForm (ASPX), que são independentes um dos outros, onde cada um deles trata informações diferentes. O problema é quando pressionamos qualquer um destes botões, todos os validadores são disparados, impossibilitando o usuário de continuar o processo, obrigando-o a preencher todo o formulário para prosseguir. Isso foi pensado melhor e resolvido na versão 2.0 do ASP.NET e a Microsoft incluio os chamados Validation Groups que é exatamente o tema deste artigo.</description><author>Israel Aece</author><pubDate>15/8/2005 20:40:11</pubDate></item><item><title>Compressão de Arquivos</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=23</link><description>Nas versões 1.X do .NET não tínhamos nenhuma classe que pudesse nos disponibilizar recursos para comprimir e/ou descomprimir arquivos, o que nos forçava a buscar em outros componentes, de terceiros, esta funcionalidade se precisássemos disso em nossa aplicação, seja ela qual for. Já nesta nova versão temos um namespace exclusivo para isso, chamado System.IO.Compression, qual é o foco deste artigo.</description><author>Israel Aece</author><pubDate>15/8/2005 20:37:01</pubDate></item><item><title>Objeto Profile [ Parte 1 ]</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=22</link><description>Neste artigo apresentarei um overview do novo objeto do ASP.NET 2.0, chamado Profile qual tem a finalidade específica de armazenar informações de um determinado usuário em seu contexto.</description><author>Israel Aece</author><pubDate>15/8/2005 20:33:32</pubDate></item><item><title>Performance em Aplicações</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=21</link><description>Este artigo abordará boas práticas de escrita de código, tratamento de Exceptions, validações e principalmente performance em aplicações ASP.NET. Entre estes, vamos ver: validação de dados que o usuário insere no sistema, Data Binding, Cache, ViewState, Session, Server Controls, acesso à dados entre outras características do ASP.NET, que se, mal usadas podem causar um impacto negativo na aplicação desenvolvida.</description><author>Israel Aece</author><pubDate>15/8/2005 20:31:26</pubDate></item><item><title>Criando objetos SQL com .NET (CLR - Managed Code)</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=20</link><description>Vamos ver no decorrer deste artigo como fazer para criar esses tipos de objetos utilizando uma linguagem .NET. O artigo se baseia na versão Beta 2 do SQL Server 2005 e versão Beta 1 do Visual Studio .NET 2005. Vale lembrar que, pelo fato destes softwares estarem ainda em suas versões betas, é possível que até a sua versão final alguma característica possa vir a mudar.</description><author>Israel Aece</author><pubDate>15/8/2005 20:28:54</pubDate></item><item><title>Guia Inicial do NHibernate</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=19</link><description>NHibernate é um Framework baseado em .NET para persistir os objetos para bases de dados relacionais. Baseado em uma ferramenta de persistência de dados do Java, chamado &lt;a href="http://www.hibernate.org"&gt;Hibernate&lt;/a&gt;, o NHibernate tem a finalidade de persistir os objetos .NET em uma base de dados relacional subjacente. Isso facilita muito ao invés de escrever códigos SQL dentro e fora da base de dados, pois o NHibernate gera o código SQL necessário, certificando-se que os tipos e o valores são corretamente criados.</description><author>Israel Aece</author><pubDate>15/8/2005 20:25:05</pubDate></item><item><title>Creational Pattern - Builder</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=18</link><description>Há algum tempo já falamos de uma pattern que fazia parte da seção Behavioral (Comportamental), chamada Template Method. Este artigo falará sobre uma outra pattern chamada Builder, que por sua vez encontra-se na seção Creational (Criacional).</description><author>Israel Aece</author><pubDate>15/8/2005 20:21:05</pubDate></item><item><title>Paginando Dados utilizando DataList</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=17</link><description>Ao contrário do DataGrid, o DataList não nos fornece &lt;i&gt;wizards&lt;/i&gt; para a paginação do mesmo, tendo assim que criarmos uma customizada, recuperando e exibindo os dados da página que o usuário desejar visualizar. Há momentos em que o &lt;i&gt;result-set&lt;/i&gt; da base de dados é muito grande, ou seja, é retornado uma grande quantidade de registros, o que pode custar muito caro para o cliente, tendo que receber todos os registros, e exibir apenas os registros que se enquadram na página atual, e limitando ao número de registros por páginas. O artigo mostrará como retornar somente os registros da base de dados qual se enquadram com a página que o usuário requerer, através de uma Stored Procedure.</description><author>Israel Aece</author><pubDate>15/8/2005 20:18:37</pubDate></item><item><title>Behavioral Pattern – Template Method</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=16</link><description>Neste artigo abordaremos sobre a Pattern Template Method que está contida dentro da seção Behavioral (Comportamental).</description><author>Israel Aece</author><pubDate>15/8/2005 20:13:58</pubDate></item><item><title>Disparando o Evento SelectedIndexChanged do DropDownList dentro do DataGrid</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=15</link><description>Este artigo explicará como construir um DataGrid onde dentro dele, quando editarmos um determinado registro, a linha em edição deverá mostrar os DropDownLists (Estado e Município, respectivamente), onde ao selecionar o Estado, o segundo DropDownList deverá ser populado com as cidades referentes aquele Estado selecionado pelo usuário.</description><author>Israel Aece</author><pubDate>15/8/2005 20:09:07</pubDate></item><item><title>Analisando o Microsoft PetShop 3.0</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=14</link><description>Para quem não conhece, o Microsoft PetShop 3.0 é uma aplicação de uma loja virtual fictícia que vende pequenos animais que a Microsoft construiu com o propósito de um caso de estudo baseado no Java Pet Store da Sun, mas construindo-a sob a Plataforma .NET. Mas este artigo não tem o intuito de mostrar esta comparação e sim abordar a estrutura em que o mesmo foi construído. Para quem se interessar, poderar ver o estudo/análise desta comparação através deste link: &lt;a href="http://www.middleware-company.com/buzz/buzz0703.jsp"&gt;http://www.middleware-company.com/buzz/buzz0703.jsp&lt;/a&gt;.</description><author>Israel Aece</author><pubDate>15/8/2005 20:04:50</pubDate></item><item><title>Data[Grid][List], Arquivos e Imagens</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=13</link><description>Muitas vezes em nossos sistemas de internet, precisamos exibir uma listagem os arquivos que estão no disco do servidor para o Usuário, seja para uma simples conferência ou até mesmo para edição do mesmos (quando possível). O .NET Framework nos fornece diversas classes para acesso à arquivos e diretórios. Todas contidas dentro do Namespace System.IO. Neste artigo veremos sobre a classe DirectoryInfo e sobre o método GetFiles().</description><author>Israel Aece</author><pubDate>15/8/2005 19:59:52</pubDate></item><item><title>Migrando de ASP para ASP.NET</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=12</link><description>Com a vinda do ASP.NET e o Visual Studio .NET, quem utiliza o ASP para o desenvolvimento de aplicações Web sentiu e sente dificuldades para tal migração, principalmente com o novo conceito de Code Behind que tem por finalidade de separar o código que é executado no servidor do HTML que é exibido no cliente. Este artigo tem como finalidade mostrar aos desenvolvedores ASP como são realizados os mais frequentes processos, fazendo uma comparação entre ASP e depois em ASP.NET, iniciando com um overview sobre a plataforma .NET.</description><author>Israel Aece</author><pubDate>15/8/2005 19:57:24</pubDate></item><item><title>Adicionando Registros no DataGrid</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=11</link><description>Neste artigo apresentarei uma forma de inserção de registros diretamente no DataGrid. Sendo assim, não haverá a necessidade da criação de um formulário à parte para a manipulação do cadastro em questão.</description><author>Israel Aece</author><pubDate>15/8/2005 19:53:36</pubDate></item><item><title>Formatando Valores em Colunas do DataGrid</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=10</link><description>Frequentemente quando utilizamos um controle do tipo DataGrid, e inserimos valores do tipo Data, Dinheiro, Inteiros ou Decimais, precisamos formatar esse valor de acordo com a finalidade desse Campo. Nesse artigo apresentarei a propriedade DataFormatString da classe BoundColumn de um DataGrid.</description><author>Israel Aece</author><pubDate>15/8/2005 19:48:44</pubDate></item><item><title>Configurando uma Aplicação</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=9</link><description>Hoje temos dois arquivos bastante importantes quando trabalhamos com aplicações ASP.NET. São eles: Global.asax e o arquivo Web.Config. Esses arquivos tornam a Aplicação bastante flexível, pois reúnem as configurações e eventos em um único lugar.</description><author>Israel Aece</author><pubDate>15/8/2005 19:44:58</pubDate></item><item><title>Dicas úteis ao dia à dia</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=8</link><description>Depois de receber várias dúvidas via E-Mail, e selecionar algumas dúvidas dos Fóruns que participo, resolvi escrever este artigo colocando diversas funcionalidades que precisamos no dia-à-dia que muitas das vezes não lembramos como se faz.</description><author>Israel Aece</author><pubDate>15/8/2005 19:42:25</pubDate></item><item><title>Trabalhando com Arquivos</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=7</link><description>Frequentemente necessitamos trabalhar com arquivos, sejam eles "*.txt", "*.xml", ".csv", etc. Nesse artigo mostrarei como fazemos para criar, excluir, ler arquivos e diretórios a partir de uma Aplicação Web (ASP.NET).</description><author>Israel Aece</author><pubDate>15/8/2005 19:40:47</pubDate></item><item><title>Construindo uma Área Restrita</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=6</link><description>Sempre que construímos uma aplicação Web, é muito comum criarmos áreas administrativas e restritas, onde os usuários poderão gerenciar o conteúdo das páginas, pedidos, clientes, entre muitas outras coisas. Neste artigo explicarei como fazermos para criarmos uma área restrita em sua aplicação.</description><author>Israel Aece</author><pubDate>15/8/2005 19:37:29</pubDate></item><item><title>System.Collections.CollectionBase</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=5</link><description>É muito comum em runtime retornarmos valores da Base de Dados e armazenarmos em DataSets, mas com isso ocorre o “Weakly Typed” e o “Late Binding”, ou seja, não temos a segurança de tipos e o acesso à suas propriedades somente ocorre durante o tempo de execução. Tendo esse problema, o que podemos fazer para termos nossos próprios objetos com suas respectivas propriedades e métodos ao invés de uma genérica? Então neste artigo explicarei como podemos criar uma coleção customizada, onde utilizaremos o CollectionBase.</description><author>Israel Aece</author><pubDate>15/8/2005 19:35:11</pubDate></item><item><title>IEWebControls - TabStrip e MultiPage</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=4</link><description>O Microsoft IE Web Controls nos disponibiliza ótimos controles para o desenvolvimento de Aplicações Web. Neste artigo abordarei sobre o TabStrip e o MultiPage, que usando-os em conjunto, podemos deixar nosso WebForm bastante intuitivo e de fácil acesso ao usuário final.</description><author>Israel Aece</author><pubDate>15/8/2005 19:32:16</pubDate></item><item><title>Criando um DALHelper</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=3</link><description>Como a maioria dos sistemas atuais necessitam de Base de Dados, sempre quando precisamos acessar, inserir, alterar ou excluir um determinado registro, precisamos criar a conexão com a Base de Dados, definir a query, os parâmetros e escolher a opção para executá-la (ExecuteNonQuery, ExecuteScalar ou ExecuteReader). Para não ficarmos fazendo a todo momento todos esses passos, ou seja, criar conexão, parâmetros, etc., explicarei nesse artigo como criar um DALHelper. DALHelper quer dizer: Data Application Layer (Camada de Dados) e Helper (Ajudante), que auxiliará no acesso aos dados, reduzindo assim a quantidade de código em nossa Aplicação.</description><author>Israel Aece</author><pubDate>15/8/2005 19:26:56</pubDate></item><item><title>DataGrid Editável</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=2</link><description>Neste artigo explicarei como utilizar o controle Datagrid do ASP.NET para editar registros utilizando Template Columns onde utilizaremos dentro do mesmo controles como CheckBox e DropDownList.</description><author>Israel Aece</author><pubDate>15/8/2005 19:23:57</pubDate></item><item><title>Depurando e Tratando Erros</title><link>http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=1</link><description>Este artigo explica a forma de tratar e depurar erros utilizando a plataforma .NET com exemplos em Visual Basic .NET.</description><author>Israel Aece</author><pubDate>15/8/2005 19:20:41</pubDate></item></channel></rss>