sexta-feira, 30 de setembro de 2011

Oportunidade de Emprego Desenvolvimento .NET em Santa Maria - RS

O amigo Mauricio Lacerda, supervisor de desenvolvimento da TellFree de Santa Maria - RS, enviou uma oportunidade para divulgação aos interessados, segue abaixo.

Prezados, boa tarde!

Solicitamos a gentileza de encaminhar a oportunidade abaixo ou nos fornecer indicações.

A empresa TellFree Comunicações Unificadas abriu processo seletivo para a unidade de Santa Maria/RS.

Programador .NET Pleno (2 VAGAS)
Requisitos Técnicos:
Conhecimentos em C#
Conhecimentos em ASP.NET
Conhecimentos em padrões Web
Conhecimentos em MySQL
Salário e Benefícios:
Salário entre R$ 2.066,64 e R$ 2.555,25
Vale Transporte
Vale Alimentação R$ 150,00/mês
Vale Refeição R$ 20,00/dia
Plano Odontológico
Plano de Saúde

Estágio para área de teste e qualidade (1 VAGA)
Requisitos Técnicos:
Conhecimentos acadêmicos
Facilidade na escrita de documentação
Execução de testes funcionais
Salário e Benefícios:
Bolsa entre R$ 701,00 e R$ 936,00
Vale Transporte
Vale Refeição R$ 16,00/dia
Vale Alimentação R$ 112,50/mês
Plano Odontológico

Interessados devem enviar currículo profissional para mauricio.lacerda@tellfree.com.br.

quarta-feira, 21 de setembro de 2011

Revista Easy .net Magazine 15


A Easy .net Magazine é uma revista especializada, única no mercado, voltada para os leitores, profissionais, estudantes e desenvolvedores que estão iniciando na plataforma .net da Microsoft.

Lista completa dos artigos da edição:

Introdução ao WCF
Vladimir Rech

Entendendo a Orientação a Objetos
Alexandre Tadashi Sato

VÍDEO
Veja nesta vídeo aula um comparativo entre polimorfismo e delegates na POO com C#
Guinther

Crie uma aplicação completa passo a passo com C#, Visual Studio e ASP.NET – Parte 6
Guinther Pauli

VÍDEO
Veja nesta vídeo aula como usar recursos de Web Site Map, Roles, Access Rules e Security Trimming em aplicações ASP.NET
Guinther
  
Introdução à LINQ
Usando LINQ com Objetos
Renato José Groffe



Revista Easy .net Magazine 14


A Easy .net Magazine é uma revista especializada, única no mercado, voltada para os leitores, profissionais, estudantes e desenvolvedores que estão iniciando na plataforma .net da Microsoft.

Lista completa dos artigos da edição:

Web Services com .NET Framework
Vladimir Rech

Introdução ao Silverlight
Alexandre Tadashi Sato

VÍDEO
Veja nesta vídeo aula como utilizar Behaviors, Timelines e Animações em Silverlight
Guinther

Crie uma aplicação completa passo a passo com C#, Visual Studio e ASP.NET– Parte 5
Guinther Pauli

VÍDEO
Veja nesta vídeo aula como utilizar filtros em memória com DataSets
Guinther

Aplicações Web Modernas
Javascript, jQuery e AJAX
Felipe Pedroti Raymundo


Revista Easy .NET Magazine 13


A Easy .net Magazine é uma revista especializada, única no mercado, voltada para os leitores, profissionais, estudantes e desenvolvedores que estão iniciando na plataforma .net da Microsoft.

Lista completa dos artigos da edição:

Strings
Manipulação de Strings com C#
Alexandre Tadashi Sato

VÍDEO
Veja nesta vídeo aula importantes fundamentos sobre os tipos de dados na plataforma .NET
Guinther

ASP.NET
Como criar aplicações com suporte a vários idiomas
Vladimir Rech

C#, Visual Studio e ASP.NET
Crie uma aplicação completa passo a passo – Parte 4
Guinther Pauli

VÍDEO
Veja nesta vídeo aula como utilizar parâmetros com DataSources no ASP.NET, incluindo Control, Cookie, Profile, Session, QueryString e Route
Guinther

ASP.NET MVC
Primeiros Passos
Felipe Pedroti Raymundo

VÍDEO
Veja nesta vídeo aula os fundamentos do desenvolvimento Web com ASP.NET MVC 3 e Visual Studio 2010
Guinther

C#
Programação Orientada a Objetos
Adail Muniz Retamal e Guinther Pauli

VÍDEO
Veja nesta vídeo-aula como trabalhar com classes abstratas, concretas e interfaces com C#
Guinther



Revista Easy .NET Magazine 12


A .net Easy Magazine é uma revista especializada, única no mercado, voltada para os leitores, profissionais, estudantes e desenvolvedores que estão iniciando na plataforma .net da Microsoft.

Lista completa dos artigos da edição:

WP7
Ciclo de vida da aplicação
Alexandre Tadashi Sato

C#
Extension Methods
Vladimir Rech

C#, Visual Studio e ASP.NET
Crie uma aplicação completa passo a passo – Parte 3
Guinther Pauli

VÍDEO
Veja nesta vídeo-aula como trabalhar com recursos básicos e avançados do DataList do ASP.NET
Guinther

Mapeamento O/R com ADO.NET Entity Framework
Uma forma simples de acesso a banco de dados, usando princípios de orientação a objetos
Felipe Pedroti Raymundo

VÍDEO
Veja nesta vídeo aula o que são delegates, métodos anônimos e lambda expressions
Guinther

C#
Programação Orientada a Objetos
Adail Muniz Retamal e Guinther Pauli

VÍDEO
Veja nesta vídeo-aula como trabalhar com classes abstratas, concretas e interfaces com C#
Guinther


Revista Easy .NET Magazine 11

A .net Easy Magazine é uma revista especializada, única no mercado, voltada para os leitores, profissionais, estudantes e desenvolvedores que estão iniciando na plataforma .net da Microsoft.


Lista completa de artigos e vídeos da edição:


C# - Generics
Manipulação de coleções
Alexandre Tadashi Sato

VÍDEO
Veja nesta vídeo-aula como trabalhar com coleções genéricas no .NET através de List e qual a diferença e vantagens para coleções simples como ArrayList
Guinther Pauli

Entre Bits e Bytes
A importância dos bits e bytes para a computação
Elemar Júnior

C#, Visual Studio e ASP.NET
Crie uma aplicação completa passo a passo – Parte 2
Guinther Pauli

VÍDEO
Veja nesta vídeo-aula como trabalhar com reaproveitamento de código no ASP.NET, através de User Controls, MasterPages e Web Custom Controls
Guinther Pauli

VÍDEO
Veja nesta vídeo-aula um dos principais fundamentos das aplicações ASP.NET, que diz respeito ao gerenciamento de estado na Web, estudando ainda como funcionam aplicações state-less
Guinther Pauli

ADO.NET
Como obter melhores resultados no acesso a banco de dados
Vladimir Rech

VÍDEO
Veja nesta vídeo-aula como usar várias formas de acesso a dados no .NET Framework, como SqlDataSource, ADO.NET Entity Framework, ADO.NET clássico, TableAdapters e Datasets, DAL - Data Access Layer, ObjectDataSource, LINQ to Entities
Guinther Pauli




Revista ClubeDelphi 133


Conceber aplicações de software bem estruturadas e flexíveis a mudanças tem sido um dos grandes desafios impostos à área de desenvolvimento de sistemas no decorrer dos anos. As organizações estão cada vez mais sujeitas a transformações repentinas e de profundo impacto. Isto acaba por exigir dos profissionais de Tecnologia da Informação uma resposta rápida ao atendimento de novas demandas ou, ainda, à adaptação de soluções pré-existentes.
Prazos exíguos, equipes reduzidas, falta de planejamento, inexistência de uma modelagem para a solução a ser entregue, dentre outros aspectos, quase sempre resultarão em codificação de baixa qualidade para a solução que será obtida. Isto pode se constituir, futuramente, num verdadeiro pesadelo em situações que exijam adaptações de funcionalidades já criadas anteriormente.
A utilização da técnica de desenvolvimento em camadas, prática amplamente difundida no mercado, procura fornecer meios para a criação de aplicações mais flexíveis. Entretanto, a simples utilização deste tipo de abordagem não garante por si só resultados positivos. Ainda existirá a possibilidade de se chegar a um produto que faz uso de classes de objetos com um alto grau de acoplamento; com isto, ajustes que na teoria seriam simples levam a mudanças drásticas em todo um software, aumentando ainda a chance de se introduzirem erros inesperados na solução. A Injeção de Dependência auxilia a resolver esse dilema, desacoplando as camadas criadas.
Primeiramente, deve-se levar em conta que a Injeção de Dependência (DI, do inglês Dependency Injection) é na verdade, uma aplicação específica de um conceito mais abrangente conhecido como Inversão de Controle (IoC, do inglês Inversion of Control).
A Inversão de Controle é uma técnica na qual um objeto delega a execução de uma atividade a outra classe, ao invés de tentar controlar diversos aspectos que fugiriam do objetivo inicial para o qual havia sido definido. Esta característica é particularmente importante, já que permite o desenvolvimento de classes com um maior grau de coesão, visto que não acumulam um grande número de responsabilidades, o que do contrário dificultaria a manutenção futura das mesmas e resultaria em um software mais propenso a falhas.
O uso de injeção de dependência também é uma forma de se aplicar o conceito de inversão de controle. Neste caso ao invés de um objeto instanciar todas as classes das quais depende, o mesmo delega a outro mecanismo esta tarefa (container). Ao se optar pela utilização de um container o mesmo será responsável pelas seguintes atividades: Analisar de quais tipos de objetos uma classe depende; Criar os objetos a serem consumidos; Associar as instâncias de objetos criadas à classe consumidora, sendo que a isto se chama “resolver” as dependências.
Dentre as vantagens da adoção de um framework de injeção de dependência, merece ser destacado: Foco no desenvolvimento voltado ao uso de interfaces, com a obtenção de aplicações em que os componentes tendem a ser mais coesos, além de estarem fracamente acoplados entre si, já que o conceito de Injeção de Dependência privilegia o desenvolvimento de software em camadas; Flexibilidade diante da necessidade de mudanças, devido à redução na dependência entre as partes que constituem uma aplicação; O desenvolvimento de software seguindo boas práticas, uma vez que os conceitos de Inversão de Controle e Injeção de Dependência promovem o uso de patterns amplamente difundidos e utilizados com sucesso pela comunidade de desenvolvedores; Evita-se a duplicação de código instanciando classes e que estaria espalhado por toda uma solução.
          Inversão de Controle e Injeção de Dependência são os temas de destaque desta edição da ClubeDelphi, que você vai poder conferir no artigo do Rafael Stavarengo.

Lista completa de artigos da edição:

Data Binding no WPF com Delphi Prism
Fabrício Hissao Kawata

Bancos de Dados Gratuitos – Parte 3
Vitor Luiz Rubio

Utilizando diagramas UML no Delphi XE
Fabrício Hissao Kawata

Criando controles visuais no Lazarus e no Delphi
Felipe Monteiro de Carvalho

VÍDEO
Veja nesta vídeo aula como criar Web Controls em Delphi Prism
Guinther Pauli

Inversão de Controle e Injeção de Dependência
Rafael Stavarengo

VÍDEO
Veja nesta vídeo aula como trabalhar com Injeção de Dependência em Delphi Prism
Guinther Pauli

Usando o Padrão Singleton
Vitor Luiz Rubio

Delphi Prism vs. Delphi Win32
Conhecendo as diferenças e incompatibilidades entre as linguagens
Rodrigo Araujo

VÍDEO
Veja nesta vídeo aula como trabalhar com métodos de extensão no Delphi
Guinther Pauli



Revista ClubeDelphi 132


Nesta edição trazemos uma matéria especial para os desenvolvedores Delphi, sobre o que há de novo da Nota Fiscal Eletrônica 2.0, bem como o suporte do mais popular conjunto de componentes para Delphi, o AcbrNfe. A  NFE é um projeto que foi instituído pelo governo federal há um bom tempo, facilitando a vida das empresas na redução de papéis armazenados e também uma maior interação entre sistemas. A nota fiscal eletrônica vem evoluindo gradativamente para tentar cobrir o maior número possível de operações, e também embutir as regras de negócios na própria validação da nota. No artigo do Jederson Zuchi, o leitor verá o que há de diferente em relação à sua versão anterior e como os desenvolvedores Delphi podem utilizar mecanismos já prontos – componentes – para agilizar uma solução para seus clientes.
O Fabrício Hissao Kawata traz duas matérias nesta edição. Conheça o FlameRobin, ferramenta  open source voltada exclusivamente para a administração e manipulação de bancos de dados Firebird. Saiba como fazer procedimentos cotidianos como manipulação de tabelas, stored procedures, views, backup, restore, geração de script DDL e dados para testes. Em sua outra matéria, o autor aprofunda um importante tema sobre uma tecnologia que agora está presente na vida dos desenvolvedores Delphi, através do Prism. Estamos falando do WPF, Windows Presentation Foundation, tema que temos trazido com frequência aqui na revista. Nesta edição, o leitor verá como trabalhar com a personalização de aplicações, usando estilos e templates.
          Ainda nesta edição, temos um artigo sobre uma interessante ferramenta que pode facilitar muito a vida dos desenvolvedores Delphi que necessitam criar soluções para Web. O Morfik, que usa uma linguagem baseada no Object Pascal, permite criar soluções Web de última geração, com interfaces ricas, exigindo o mínimo de esforço e codificação por parte do
s
desenvolvedores, mesmo aqueles menos experientes no desenvolvimento para a plataforma Web.
          O Vitor Rubio continua a série de artigos que trata do uso de Bancos de Dados Gratuitos, mostrando aos programadores Delphi que existem outras excelentes soluções free além do já consagrado e consolidado Firebird. Mesmo os bancos mais robustos, como o Oracle e SQL Server, possuem versões Express que podem ser usadas livremente em aplicativos Delphi. Inclusive, para soluções Web, onde por exemplo o SQL Server é uma ferramenta mais indicada. Além destes bancos, temos ainda uma outra grande opção, o DB2 Express, da IBM, que assim como  o Oracle, roda em várias plataformas.
          Certamente o leitor já deve ter se deparado, seja no C# ou mesmo o Delphi Prism, com uma Expressão Lambda. Nós como desenvolvedores Delphi, em um primeiro contato, não temos como negar que a expressão é bastante estranha, principalmente para quem não está acostumado com o uso de delegates e métodos anônimos. E como o uso desse tipo de construção está se tornando um padrão na plataforma, nada melhor do que compreender como surgiram e quando utilizar.

Lista completa dos artigos da edição:

Conheça as novidades da Nota Fiscal Eletrônica 2.0
Jederson Zuchi

Conheça o FlameRobin, ferramenta gratuita para administração de bancos de dados Firebird
Fabrício Hissao Kawata

Personalizando aplicações WPF no Delphi Prism
Fabrício Hissao Kawata

Conheça o Morfik, IDE para desenvolvimento Web usando Object Pascal
Carlos Eduardo Paulino

Bancos de Dados Gratuitos – Parte 2
Vitor Luiz Rubio

Expressões Lambda
Paulo Quicoli

VÍDEO
Veja nesta vídeo aula como trabalhar com métodos de extensão no Delphi
Guinther Pauli

Conheça a FPSpreadsheet, biblioteca para manipular planilhas
Felipe Monteiro de Carvalho

VÍDEO
Veja nesta vídeo aula como manipular planilhas e documentos no Delphi XE (Win32) e Delphi Prism XE (.net)
Guinther Pauli




Revista ClubeDelphi 131


O Delphi 3 trouxe uma tecnologia muito interessante chamada ActiveX Forms. A ideia era criar formulários Delphi que eram compilados em forma de DLL / OCX no padrão ActiveX / COM, que podiam ser então embutidos em páginas HTML com WebBroker. O resultado eram forms ricos embutidos (embedded) dentro de páginas, com interatividade muito maior que as páginas pobres e estáticas da época. Não era necessário conhecer detalhes sobre desenvolvimento Web, desenvolvíamos como na VCL, e num passe de mágica lá estava nossa aplicação dentro de um browser. Mais de 10 anos depois eis que surge uma ideia bastante semelhante.
  Um dos pilares do .NET Framework 3.0 foi o WPF, uma tecnologia que unifica a forma como desenhamos interfaces de usuário, com uso de recursos avançados de processamento gráfico. O WPF utiliza como base uma linguagem chamada XAML - eXtensible Application Markup Language, uma linguagem declarativa baseada em XML. Apesar de ser mais indicado para construção de aplicações que exigem interfaces mais rebuscadas e arrojadas, como as que rodam em dispositivos com reconhecimento a toque, muitos desenvolvedores começaram a utilizar a tecnologia para o desenvolvimento de aplicações Desktop, inclusive comerciais. Isso porque o framework possui bem mais recursos visuais que o seu ancestral Windows Forms. Nesse sentido, o WPF é concorrente direto da VCL Win32 do Delphi.
Silverlight é um framework para desenvolvimento RIA – Rich Internet Application, baseado no WPF / XAML. É também um plugin cross-browser, cross-platform, que permite executar “mini aplicativos” dentro de um browser. Veja que, apesar de rodar dentro de um browser, o conceito é bem diferente de uma aplicação Web. Aplicações Web, como as feitas com ASP.NET e AJAX, geram código HTML puro, com JavaScript e CSS. Nada de plug-ins ou instalações adicionais. Isso roda em praticamente qualquer dispositivo que tenha um browser (PC, Mac, SmartPhones, Consoles). Já o Silverlight roda em vários browsers, mas depende do plug-in, incluindo obviamente o IE, Google Chrome, Firefox, além de rodar em outros sistemas como Mac (Safari) e Linux, graças à implementação do Silverlight para a plataforma Mono. Além disso, o Silverlight é a tecnologia padrão para desenvolvimento para o Windows Phone 7, plataforma que entra no mercado para concorrer diretamente com o iOS da Apple (que roda no iPod, iPhone e iPad) e Android da Google.
  É claro que desenvolver com Silverlight é bem mais simples do que desenvolver aplicações Web “nativas”, principalmente para desenvolvedores Desktop, como programadores Delphi, o que tem despertado a atenção de muitos. Ganha-se de um lado, perde-se de outro, a questão de escolha depende muito das circunstâncias e objetivos. O fato é que hoje é possível desenvolver aplicações WPF e Silverlight usando Delphi Prism, e isso nos abre um leque muito grande de opções. Silverlight com Prism é o tema da matéria do Fabrício Kawata, que você irá conferir nesta edição.

Lista completa dos artigos da edição:

Introdução ao Silverlight
Aplicações RIA no Delphi Prism XE
Fabrício Hissao Kawata

VÍDEO
Veja nesta vídeo aula como utilizar os recursos de Data Binding e execução Out Of Browser com Silverlight 4 e Delphi Prism
Guinther Pauli

Introdução ao WPF
Aplicações Windows Presentation Foundation no Delphi Prism XE
Fabrício Hissao Kawata

Bancos de Dados Gratuitos
Componentes de conexão
Vitor Luiz Rubio

Lookup Personalizado
Construindo um componente para substituir os tradicionais lookups
Vitor Luiz Rubio

Delphi Prism
XML, Web Services, LINQ, Lambda e ADO.NET
Rodrigo Araujo

VÍDEO
Veja nesta vídeo aula como utilizar AJAX com Delphi Prism usando ASP.NET AJAX com ScriptManager e UpdatePanel, ASP.NET AJAX Control Tool Kit e Web Services com JavaScript
Guinther Pauli

FPVectorial
Uma biblioteca de gráficos vetoriais
Felipe Monteiro de Carvalho



Revista .net Magazine 89


Esta edição destaca importantes recursos da linguagem C#. No artigo do Fernando Ferreira, conheça um novo padrão de desenvolvimento assíncrono, presente na próxima versão do C# (5.0) e também do .NET framework. Esse padrão é bastante interessante de ser aplicado em operações que demandam longos períodos de execução. Em outra matéria, o Fernando também apresenta uma técnica que resolve problemas com Generics, que é a covariância e contravariância. O Vladimir Rech apresenta um importante conceito do desenvolvimento com C# que é a utilização de atributos. Eles servem para fornecer metadados sobre os elementos do código e, dependendo da maneira como são definidos, alteram o comportamento da aplicação e podem diminuir a complexidade do código gerado, dando mais flexibilidade ao mesmo.
Outro destaque desta edição é a criação de serviços WCF. A técnica envolve, em inúmeras ocasiões, a manipulação de dados restritos e dos quais se espera que a confidencialidade seja preservada. É bastante comum que durante a construção de aplicações deste tipo desenvolva-se toda uma lógica para controle de usuários e, consequentemente, quais funcionalidades podem ser consumidas. Isto tende a ser um processo dispendioso e, ainda, suscetível a vulnerabilidades de segurança. Em muitas companhias as questões relativas à segurança no acesso a serviços são, via de regra, relegadas a um segundo plano durante a fase de construção da solução. Pouco se acaba fazendo e qualquer forma de controle de acesso a informações em um serviço acaba por ser implementada negligenciando uma série de fatores. Existem cenários nos quais é possível, ainda, que tais aspectos sejam sequer levados em conta. Considerando um ambiente de TI em que o vazamento, geração ou mesmo a modificação não autorizada de informações podem não apenas gerar transtornos, como comprometer a credibilidade da organização perante o público, a questão da segurança no tráfego dos dados acaba por ser de extrema relevância.
É inegável que o advento de tecnologias como Web Services e XML em muito contribuiu para uma maior integração entre sistemas informatizados. Tal fato pode ser constatado não apenas na possibilidade de troca de informações entre soluções completamente distintas dentro de uma mesma empresa, como também no intercâmbio de dados entre diferentes companhias. Numerosas organizações como bancos e empresas de comércio eletrônico, por exemplo, têm na utilização de Web Services, seguindo uma Arquitetura Orientada a Serviços (SOA), um fator crítico para o sucesso nos negócios em que estão inseridas. Estes processos de transferência de informações envolvem ainda, dados dos mais variados tipos e origens: movimentações financeiras, estatísticas de um processo produtivo, operações envolvendo logística de materiais, etc.
Visando atender a este tipo de demanda a Microsoft concebeu como parte integrante da plataforma .NET a tecnologia WCF (Windows Communication Foundation). Esta última permite, por sua vez, o desenvolvimento de aplicações que fazem pleno uso das capacidades do framework .NET, contando com recursos para a troca de informações nos mais variados tipos de contextos, além de possibilitar uma fácil aderência das soluções criadas aos princípios da Orientação a Serviços. Alguns exemplos de protocolos de transmissão suportados em WCF são: HTTP / HTTPS, TCP, P2P e MSMQ. Já no que se refere a padrões para intercâmbio de dados, a tecnologia WCF é capaz de manipular informações em formatos como: SOAP, RSS e JSON.
A solução apresentada no artigo do Renato Groffe, procura demonstrar uma alternativa na utilização de recursos de segurança dentro de uma solução desenvolvida em WCF. Para isto serão utilizados recursos de configuração desta própria tecnologia, em conjunto com as técnicas para controle de acesso disponibilizadas pelo ASP.NET Membership.

Lista completa de artigos da edição: 

Segurança em WCF utilizando ASP.NET Membership
Renato José Groffe

Programação assíncrona no C# 5.0
Fernando Ferreira

Covariância e Contravariância no C#
Fernando Ferreira       

Utilizando atributos com C#
Vladimir Rech

Estenda comportamentos sem alterar o código-fonte existente usando o Open/Closed Principle
Robson Ramos

VÍDEO
Veja nesta vídeo aula como aplicar princípios SOLID em C# - SRP e OCP
Guinther Pauli

VÍDEO
Veja nesta vídeo aula como aplicar princípios SOLID em C# - LSP, ISP e DIP
Guinther Pauli

Mapeamento por Convenção no NHibernate com o ConfORM
Rodrigo Sendin

Crie aplicações ricas utilizando arquitetura de composição com Silverlight e Prism 4.0
Cadu Souza

Análise de Requisitos
Responsabilidades, dicas e boas práticas para elaborar um bom escopo e se tornar um analista diferenciado
Bruno Bucci Cecchetti




Revista .net Magazine 88


Esta edição trata de um importante tema relacionado à segurança de aplicações .NET, que é o uso de Criptografia. O objetivo da criptografia é garantir confidencialidade, integridade e autenticidade de uma informação. A proteção é realizada através de complexos algoritmos matemáticos que geram uma saída ininteligível. A criptografia é muito aplicada em dados como senha e número de cartão de crédito. Entretanto existem muitas outras situações onde a técnica pode ser bem empregada, por exemplo, para ocultar dados da string de conexão com banco de dados dentro do arquivo de configuração. O .NET Framework possui várias classes e algoritmos específicos para criptografia de dados, como por exemplo MD5, SHA-1, SHA-256, SHA-384 e SHA-512. Nesta edição, o leitor aprenderá como aplicar na prática técnicas avançadas de criptografia usando C#, na matéria no Anderson Gusmão.
Nesta edição também damos destaque ao WP7. O desenvolvimento para a plataforma mobile da Microsoft foi modificado totalmente com a chegada do seu mais recente sistema operacional mobile chamado Windows Phone 7. Com suporte ao Silverlight e ao Microsoft XNA, o desenvolvedor tem a possibilidade de criar aplicativos visualmente ricos e interativos, além de aproveitar o seu conhecimento da plataforma .NET tendo uma curva de aprendizado menor. Se você ainda não iniciou com o desenvolvimento para o Windows Phone 7, esse é um momento interessante, os Smartphones com Windows Phone 7 estarão em breve disponíveis para venda no Brasil, a parceria com a Nokia e outros fabricantes de celulares está agitando o mercado e uma série de recursos está sendo disponibilizada a cada nova versão do sistema operacional. O Windows Phone Marketplace é o local onde você poderá comprar e vender aplicativos para o Windows Phone 7, sendo mais uma oportunidade para o desenvolvedor .NET criar seus aplicativos e enviá-los para venda ou de disponibilizá-los de forma gratuita. No evento Mix 11 realizado pela Microsoft, foram divulgadas diversas novidades, uma nova atualização chamada Mango para o Windows Phone 7 foi anunciada e com centenas de novos recursos e melhorias. Dentre as melhorias previstas podemos destacar o suporte à versão 4 do Silverlight, trazendo com essa atualização diversos recursos que essa versão do Silverlight já disponibiliza aos desenvolvedores web. O Alexandre Tadashi apresenta na prática alguns dos recursos disponíveis para o desenvolvedor utilizar em uma aplicação Windows Phone 7. Veja como usar o acelerômetro, GPS, persistir dados, usar Notifications, usar os controles Panorama e o Pivot, criar animações em Silverlight, consumir um serviço WCF e muito mais.
  Ainda nesta edição, o Vladimir Rech apresenta um poderoso recurso introduzido no C# 4.0, a programação dinâmica. O Renato Groffe usa boas práticas para mostrar como gerar arquivos pré-formatados utilizando Attributes e Reflection. Mais boas práticas no artigo do Fabio Rosa, que mostra como mapear modelos dinâmicos do NHibernate usando XML.

Lista completa dos artigos da edição:

Conheça na prática os recursos do Windows Phone 7
Alexandre Tadashi Sato

Criptografia em .NET
Segurança no transporte de informações
Anderson Santos Gusmão

VÍDEO
Veja nesta vídeo aula como criptografar arquivos Web.Config
Rodrigo Araujo

Programação Dinâmica com C# 4.0
Vladimir Rech

Geração de arquivos pré-formatados utilizando Attributes e Reflection
Renato José Groffe

VÍDEO
Veja nesta vídeo aula como utilizar atributos customizados em C#
Rodrigo Araujo

Mapeando modelos dinâmicos do NHibernate usando XML
Fabio Rosa

Controles Pivot e Panorama no Windows Phone 7
Alexandre Tadashi Sato



Revista .net Magazine 87

Quando uma nova tecnologia é apresentada, surgem dúvidas sobre sua utilização, seus limites, sua aplicação. Para responder essas questões existem vários livros técnicos, material até mesmo originado pela empresa que lançou a tecnologia. Contudo existem alguns assuntos que nem sempre são tratados. Por exemplo, as boas práticas que envolvem a tecnologia. Existe uma boa prática que é comum a grande maioria de tipo de software: separar a interface de usuário da lógica de negócio. Os usuários de um sistema interagem com o mesmo pela camada de apresentação (Presentation Layer, UI), nela estão os controles e componentes visuais necessários para apresentação das informações e solicitação de informações. Essa camada por sua vez se comunica com uma camada de serviço, que simplifica para a UI as rotinas através da criação de um API que abstraia um processo maior que envolva outras ações. Assim, a interface acessando apenas os serviços, a implementação desses serviços pode mudar sem necessariamente exigir mudança na UI. É muito importante que o código dessas camadas não se misture. Como a lógica da interface não está codificada e amarrada nos controles visuais utilizados, pode-se facilmente trocar esses controles sem influenciar o funcionamento de uma tela ou página por exemplo. Outro ponto favorável é a possibilidade de se testar a aplicação de forma automatizada. Ao fazer a separação é possível testar o comportamento da UI sem ter a necessidade de executar o software propriamente dito. Mas, existe um porém. Ao separar de forma correta não só a camada de interface, mas todas as camadas lógicas necessárias, há um aumento na complexidade do código, o que pode ser um problema para o entendimento do todo por parte de desenvolvedores menos experientes. Para alcançar essa separação vários estudos ao longo dos anos foram feitos. Esses estudos e implementações levaram à criação dos chamados Padrões de Projeto. Um padrão de projeto é uma solução para um problema recorrente. A separação da camada de interface é um problema recorrente em todo software. Assim, foram desenvolvidos alguns padrões que cuidam disso, os mais conhecidos são: Model-View-Controller (MVC) e Model-View-Presenter (MVP). Esses são padrões bem genéricos, que podem ser implementados em qualquer tecnologia, já que um padrão não define código e sim, a forma como solucionar o problema. O WPF surgiu como base para desenvolvimento de aplicativos Windows e que gradativamente vem substituindo a plataforma anterior, o Windows Forms. Com o WPF novos recursos foram criados, de tal forma que eles poderiam ser utilizados para facilitar a separação de código. Assim surgiu o padrão Model-View-ViewModel ou simplesmente MVVM, que nada mais é do que um padrão de separação de interface que faz uso dos recursos do WPF e mais recentemente do Silverlight. Ele foi desenvolvido por John Gossman, que em 2005 era o arquiteto do WPF na Microsoft. O padrão define três partes bem distintas, que compõem o seu próprio nome. A View representa a janela onde será exibida informação. Mas não apenas uma janela, o conceito aqui é mais abrangente. Uma view pode ser constituída de um conjunto de controles visuais ou, ser apenas um controle. O ViewModel nada mais é que uma classe que contém as ações e dados que uma View pode tomar e exibir, encapsulando sua lógica. Ele é responsável em preparar o Model para ser exibido pela View. Model por sua vez são as classes de negócio envolvidas mais o que for necessário para a lógica do negócio. O MVVM tem conquistado muita popularidade, principalmente pela grande aceitação dos desenvolvedores WPF e Silverlight. Essa popularidade é tanta que o padrão está começando a ganhar adaptações para o próprio ASP.NET, onde já existem algumas iniciativas de implementação do padrão MVVM. Nesse contexto, destacamos nessa edição o Caliburn.Micro, um framework de MVVM, Open Source, leve e compacto que pode ser utilizado para a construção de aplicações WPF, Silverlight ou Windows Phone 7. 

Lista completa de artigos da edição:

WPF
Validação de dados com Validation Block
Luiz Gonzaga Mendonça 

Desenvolvimento com Azure Storage Emulator
Visão de um desenvolvedor
Max Mosimann Netto

Serviços Windows
Desvendando sua arquitetura e estrutura interna
Anderson Santos Gusmão 

XML
Personalizando a criação de arquivos XML com C#
Vladimir Rech

VÍDEO
Veja nesta vídeo aula como o SQL Server oferece suporte a XML diretamente no servidor de banco de dados
Guinther Pauli

VÍDEO
Veja nesta vídeo aula como gerar documentos XML em um WebService, usando XmlDocument, serializar o documento e consumir o mesmo a partir de outras plataformas, como Win32
Guinther Pauli

MVVM
Conheça o framework Caliburn.Micro
Rodrigo Sendin

NInject
Injeção de Dependência
Renato José Groffe

VÍDEO
Veja nesta vídeo aula como usar os framework Unit para Injeção de Dependência
Guinther Pauli

Microsoft Moles
Conhecendo e utilizando este framework de testes
Fabio Gouw

Reflection
Consultando informações sobre tipos de dados e objetos dinamicamente
Anderson Santos Gusmão

VÍDEO
Veja nesta vídeo aula como usar Reflection para obter informações de métodos dinamicamente, usando MethodInfo, e como chamar estes métodos em tempo de execução a partir do seu nome em string
Guinther Pauli