Você está na página 1de 37
P O W E R E D B Y O . N Codificando Net C O
P O W E R E D
B Y
O . N
Codificando Net
C O D
I
F
I C
A N D
E T
e-magazine
O
U
T
/
N
O
V
2
0
0
7
E
D
I
Ç
Ã
O
5
N
Ú
M
E
R
O
4
A
N
O
I
Editorial
Após 2 meses finalizamos a quinta edição da Codificando.Net Magazine. Realmente não é fácil manter
uma revista mensal com um nível como gostaríamos, por isso tomamos uma decisão
de agora a revista a cada dois meses, ou bimestral para quem preferir :)
...
Teremos a partir
Em 2 meses muitas coisas acontecem, por exemplo o São Paulo sagrou-se Penta Campeão Brasileiro.
Nesta edição temos uma entrevista internacinal (mais uma), Alfred nos EUA entrevista 2 mulheres do
time do VB na Microsoft!
Temos nossos colunistas mantendo suas colunas sempre atualizadas e artigos técnicos de muita qualida-
de .
Espero que tenham uma excelente leitura.
Alexandre Tarifa
editor@codificandomagazine.net
Equipe
Editor:
Alexandre Tarifa
Emerson Facunte
Reporter
Alfred Myers
Colaboradores:
Feio Tomaz
Maurício Wieler
Diego Nogare
Alexandre Lopes

3

Entrevista - Amanda e Lisa

Alfred Myers, MVP de C#, esteve em Redmond em setembro e aproveitou a estada pra entrevistar Lisa Feigen- baum e Amanda Silver sobre o Visual Basic e suas carreiras na Microsoft.

ALFRED: Quem são vocês?

LISA: Eu sou Lisa Feigenbaum. Sou uma Program Manager no time do VB. Eu trabalho na IDE, em coisas do editor como Code Snippets, Intellisense, comentários XML, code definition coisas que você provavelmente usa diariamente no produto.

AMANDA: Eu sou Amanda Silver. Eu trabalho na linguagem e no compilador. Trabalho com a Lisa no editor e no debugger. Praticamente tudo no Visual Studio que for específico ao Visual Basic está no meu time.

ALFRED: Como você entrou na Microsoft?

AMANDA: Foi um acidente interessante. Quando eu me formei, estava tentando determinar para onde eu iria. Durante o curso, eu passei a maior parte das férias de verão fazendo pesquisa científica em ciências da computa- ção em assuntos como Complexidade Computacional. Eu pensei que iria para o mercado trabalhar por uns dois anos, juntar uma grana e voltar para fazer o meu PHD, então eu fui para uma feira de carreiras tecnológicas, passei o meu currículo para algumas empresas que achava que pagariam bem. Uma destas empresas era a Micro- soft e eu vim fazer a entrevista. O cara que estava me entrevistando me perguntou por que eu era uma profes- sora o que aqui chamamos de Assistente de Ensino. Eu respondi que era muito importante para mim eu garan- tir que o campo estava aberto para o maior número de pessoas possível. Então ele disse “Você se encaixa como uma luva no Visual Basic” e me contratou. Eu vim trabalhar no time, não consigo me ver trabalhando em outro

produto e ainda não voltei à universidade para fazer o meu PHD.

LISA: Eu também ouvi falar da Microsoft através do recrutamento que eles fazem na universidade. Eu estava fazendo o programa de bacharelado e mestrado e fiz vários trabalhos durante a graduação. Eu dei uma olhada nas vagas e as achei bastante interessantes. Sempre gostei de arte e usabilidade, então o trabalho de edição era interessante. Eu também sempre estive envolvida com ciências, então estar na divisão de desenvolvimento tem este lado técnico de estar trabalhando com um pessoal técnico inteligente, liderando um time e usando um pro- duto que está ajudando milhões de pessoas todo dia.

ALFRED: Você chegou a trabalhar em outros grupos?

LISA: Não, também sempre estive no time de Visual Basic. Eu trabalhei no debugger do VS 2005, Edit & conti- nue e coisas assim. Agora estou trabalhando um pouco com desempenho. Trabalhei em algumas áreas diferen- tes, mas sempre no Visual Basic.

ALFRED: Na tua opinião, quais são os recursos mais interessantes da IDE no novo Visual Basic?

LISA: O Intelisense está muito legal e é muito importante porque trás altos ganhos de produtividade. Eu posso afirmar com certeza que assim que você começar a usar o VB 2008, você vai economizar tempo com menos digitação, menos erros, gastando menos tempo tentando lembrar o nome das variáveis. Essencialmente, estamos mostrando Intelisense em muito mais lugares que antes.

ALFRED: Eu soube que o VB está se tornando multi-plataforma. Como é isso?

AMANDA: Uma das novas plataformas sobre as quais temos conversado desde o Mix em abril do ano passado é o Silverlight que é basicamente uma versão multi-plataforma do .NET Framework que vai permitir experiências interativas ricas na web. Tem que ser multi-plataforma porque tudo isto é sobre abrangência e experiência rica na web. Com o Silverlight, qualquer coisa que for compilada para IL (intermediate language) poderá ser multi- plataforma. Então, o Visual Basic que é compilado para IL também passa a ser multi-plataforma.

3 Entrevista - Amanda e Lisa Alfred Myers, MVP de C#, esteve em Redmond em setembro

4

Entrevista - Amanda e Lisa

ALFRED: E sobre o run-time do Visual Basic?

AMANDA: Esta é uma pergunta interessante. O run-time do Visual Basic, o Microsoft.VisualBasic.dll contém funções de usuário, contém rotinas auxiliares do compilador que permitem o late-binding e as conversões no VB. Isto está escrito em Visual Basic, que por sua vez é compilado para IL. Logo, ele também passa a ser multi- plataforma.

ALFRED: Então podemos esperar que o Visual Basic funcione no Moonlight que é a versão Linux do SilverLi- ght?

AMANDA: Não sei dizer.

ALFRED: Vocês ainda usam personas para representar os tipos de usuários de cada linguagem? Havia muita conversa sobre Mort, Einstein e Elvis nos primeiros dias do .NET Framework.

AMANDA: Nós temos uma relação de amor e ódio com os personas. No início era muito difícil falar sobre o usuário típico das linguagens aqui dentro da Microsoft. Os personas nos ajudaram a falar sobre estes usuários típicos, mas isto é uma faca de dois gumes. Tem muita gente que acha que todos os programadores VB são

“Mort” e isto não é verdade. Nós temos todo tipo de usuário VB desde Arquitetos Seniores até gente que aca-

bou de baixar o VB Express e estão aprendendo a programar. Agora não falamos tanto de personas, e sim do

tipo de programador. Agora temos o termo “desenvolvedor oportunista” que é aquele cara orientado a tarefas,

que quer terminar o serviço.

ALFRED: Então vocês mataram o Mort ?.

AMANDA: Eu não diria que nós matamos o Mort. Tem gente aqui que ainda usa o termo internamente, mas não é como falamos do produto hoje em dia.

ALFRED: Voltando ao Visual Studio 2008, alguma coisa mudou nos bindings de teclado no VB 2008?

LISA: Migrando do 2005 para o 2008, só há uma nova combinação de teclas. Nada foi removido. Nós adiciona- mos um para quando o Intellisense está visível ficar transparente. Nós queremos manter aqueles atalhos de te- clado antigos, então estamos mantendo aqueles atalhos do VB 6.

ALFRED: Há alguma novidade nos code snippets?

LISA: Nós temos algumas novidades na forma como eles funcionam. Tivemos bastante feedback falando que aqueles campos verdes ficam na tela por muito tempo. Agora se você modificar texto fora do code snippet, isto indica que você terminou de mexer nele e os campos podem sumir. Se mais adiante você quiser voltar ao code

snippet e ver os campos novamente, você pode clicar nele com o botão direito e selecionar “Show Snippet Hig- hlighting”

ALFRED: Ao contrário do C#, o Visual Basic 2005 não veio com refactoring. Este era fornecido por terceiros. Alguma coisa mudou no VB 2008?

LISA: Não foi incorporado ao produto ―principal‖, mas estamos bastante contentes com a solução atual de se baixar separadamente o add-in do MSDN Dev Center gratuitamente. Como a gente não colocou isto dentro do produto, tivemos tempo para trabalhar com outras coisas e colocá-las no produto. A Developer Express, desen- volvedora do add-in, fez um excelente trabalho e agora temos o dobro de “refactorings” que tínhamos na ver- são 2005.

4 Entrevista - Amanda e Lisa ALFRED : E sobre o run-time do Visual Basic? AMANDA

5

Entrevista - Amanda e Lisa

ALFRED: Muito se tem falado de LINQ. Por onde você navegue você vê material sobre LINQ. Você acha que tem alguma coisa que não esteja sendo divulgado o bastante? Recursos interessantes sobre os quais as pessoas não estejam falando?

AMANDA: Eu acho que uma das coisas que é particular ao VB 9 é a integração com XML que é parte do LINQ e que basicamente te permite copiar um documento XML e colá-lo dentro do editor de Visual Basic e você terá uma experiência semelhante ao que você tem com o editor XML hoje. Não é somente sobre copiar e

colar blocos estáticos de XML. Você também pode usar aquelas expressões conhecidas do ASP clássico “<%=” e “%>” e inserir no meio qualquer expressão válida do Visual Basic. Ex.:

Dim d As Date = Today Dim x As XElement = <ProcessLog> <Process><%= d %></Process> </ProcessLog> Console.WriteLine(x.ToString())

Isto faz com que o recurso seja bastante poderoso e faz com que seja bastante fácil escrever o seu documento XML dinâmico, mas combinado com LINQ, você pode incluir uma query expression dentro do documento X- ML. Isto significa que o VB agora pode substituir o XSLT em alguns cenários. É bastante poderoso.

ALFRED: Era o que eu ia dizer: É realmente bastante poderoso. E nós não temos este recurso no C#.

AMANDA: Este recurso é específico ao VB. Em C# você usaria uma construção funcional usando a API Linq to XML. Para criar o mesmo XML você faria algo como:

DateTime d = DateTime.Today; XElement x = new XElement("ProcessLog",

new XElement("Process", d));

Você pode usar o C# como uma espécie de XSLT, mas é o recurso de XML literal do VB que elimina a barreira da API. Você não precisa pensar na API. Você pensa somente no documento.

ALFRED: É bem legal não ter que pensar na API. Eu vi o mesmo tipo de coisa sendo feita em outras linguagens com relação ao processamento de textos. Realmente facilita a nossa vida.

Que tipo de coisa podemos esperar do VB na versão que virá depois do Orcas? Eu soube que existe um protó- tipo chamado VBx que será hosteado.

AMANDA: O que estamos tentando fazer é pegar a experiência de usar o VB a linguagem, o compilador a ex- periência de edição e hospedá-lo num contexto fora do Visual Studio. Uma das coisas interessantes a se pensar é como usar esta tecnologia na console de linha de comando para que você possa usar a API do PowerShell para escrever scripts usando VB. Ainda estamos bem no comecinho do estágio de planejamento e brincando com protótipos. Parece que vai ficar bom.

5 Entrevista - Amanda e Lisa ALFRED : Muito se tem falado de LINQ. Por onde

6

Entrevista - Amanda e Lisa ALFRED: Vai ser um ciclo de produto mais longo do que
Entrevista - Amanda e Lisa
ALFRED: Vai ser um ciclo de produto mais longo do que foi o Orcas?
AMANDA: Está muito cedo para saber, mas o Orcas teve um ciclo bem curto quando comparado com a ver-
são anterior. Acho que vamos tentar seguir esta tendência.
ALFRED: O que podemos esperar de novo na IDE depois do Orcas?
LISA: Estamos trabalhando em algumas coisas que vão viabilizar os cenários do VBx.
ALFRED: Qual foi o recurso mais solicitado que não deu para encaixar no Orcas?
LISA: Estamos dando uma olhada em algumas coisas sobre as quais tivemos bastante feedback como por exem-
plo, remover line continuations, ou seja, tirar a necessidade de usar o “_” para continuar um comando na linha
de baixo. Propriedades automáticas – a idéia de não precisar mostrar o getter e o setter para as propriedades
mais simples. Estes são recursos da linguagem e da IDE que foram bastante solicitados.
AMANDA: Também estamos dando uma olhada em como melhorar a experiência de navegação no Visual Stu-
dio, como passar do código para um modo de visualização da classe, este tipo de coisa.
ALFRED: Foi muito bom conversar com vocês.
AMANDA, LISA: Obrigada!
Assista o vídeo em Inglês da entrevista completa:
http://video.msn.com/video.aspx/?mkt=pt-br&vid=d349d31c-fb38-406b-aaa8-5b51e8197e19&wa=wsignin1.0
Alfred é MVP em C#, MCPD, MCITP, MCTS, MCSD, MCAD, MCP.
Mantém um blog em português em http://thespoke.net/blogs/alfred_myers e outro em
inglês em http://alfredmyers.spaces.live.com.
7
7
Artigo: Novidades do Biztalk Server 2006 R2
Artigo: Novidades do Biztalk Server 2006 R2

Recentemente lançado, o Microsoft BizTalk Server 2006 R2 é a quinta versão do produto. Por ser, fundamentalmente, um release de atualização, a mudança não foi tão radical comparada às anteriores, mas as novidades são muito interessantes e algumas eram bastante aguardadas, como o alinhamento do produto as novas tecnologias Microsoft.

A nova versão inclui algumas coisas realmente novas, além da atualização de algumas características importantes, que aumentam bastante as capacidades do Servidor BizTalk, como veremos a seguir.

EDI

O EDi (Electronic Data Interchange Troca Eletrônica de Dados) é um dos meios predominantes de troca de dados eletronicamente. Pouco utilizado no Brasil (eu mesmo nunca tive oportunidade de trabalhar com esse formato em anos de experiência com BizTalk Server) represen- ta aproximadamente 75 por cento de todas as transações eletrônicas e cresce em média de 5 a 7 por cento por ano, segundo dados da Mi- crosoft.

O uso de EDI implica sintaxe de mensagem e padrões (incluindo ANSI X12 e UN/EDIFACT), protocolos de mensageria e transportes.

O BizTalk Servidor 2006 R2 processa mensagens de EDI usando Receive e Send pipelines específicos que podem fazer o parse e a serialização de mensagens EDI. As funcionalidades referentes ao EDI foram atualizadas sensivelmente melhorando em muito a sua performance.

AS/2

As transações de EDI transmitidas pela Internet (EDI over the Internet - EDIINT) são uma alternativa crescentemente popular a enviar e rece- ber EDI usando value-added networks (VANs). Usar a Internet para troca de dados reduz custos, aumenta eficiência, e tem vantagens em ter- mos de redundância e escalabilidade.

Para dar suporte a esta tendência de crescimento, o BizTalk Servidor 2006 R2 suporta EDIINT AS/2 (Applicability Statement 2). AS/2 é uma especificação que permite o transporte de dados de negócio usando a Internet de maneira segura. O BizTalk Servidor 2006 utiliza AS/2- defined methods” para enviar, receber, encriptar, decriptar, comprimir, descomprimir, assinar e verificar assinaturas entre parceiros usando HTTP sobre a Internet. O BizTalk Server ajuda a assegurar a segurança das mensagens pelo uso de chaves de encriptação, assinaturas digitais e certificados.

O EDI e AS/2 do Microsoft BizTalk Server 2006 R2 executa os seguintes processamentos AS/2:

Recebimento de mensagens codificadas EDIINT AS/2 sobre transporte HTTP/HTTPS. Envio de mensagens codificadas EDIINT AS/2 sobre transporte HTTP/HTTPS usando operações de HTTP POST.

São Implementados como “solução de múltiplas cargas de suporte”, permitindo ao usuário enviar EDI, XML, ou outros dados de negócio seguramente pela Internet.

Retornar uma notificação de disposição de mensagem (Message Disposition Notification - MDN), tanto no corpo da mensagem em um HTTP response (conhecido como um MDN síncrono), quanto através do novo operador HTTP POST para uma URL para o sender origi- nal (conhecido como um MDN assíncrono).

Fornece a capacidade de aplicação de propriedades de processamento em transporte de documentos AS/2. Fornece o status das transmissões AS/2 a partir da lista de mensagens AS/2 e suas respectivas correlações (MDNs). Permite acesso as mensagens EDI quando enviadas via AS/2.

Microsoft BizTalk RFID

Radio Frequency Identification (RFID) é uma tecnologia originada nas forças armadas americanas que usam tags que emitem sinais de rádio, e dispositivos chamados “readers” que captam esses sinais. Os leitores (readers) então se comunicam com softwares para transmitir as informa- ções da tag. RFID pode ser amplamente utilizado vários cenários, tais como: supply chain, ativos de alto valor, documentos, farmacêutico, e muitos outros.

8
8
Artigo: Novidades do Biztalk Server 2006 R2
Artigo: Novidades do Biztalk Server 2006 R2

Por questões referentes a custos, o RFID ainda é uma tecnologia não muito implementada. Mas é uma das novidades mais interessantes pre- sente no BizTalk Server 2006 R2 porque, ao serem superadas as questões de custo dos chips, o mercado espera por larga utilização da tecno- logia RFID.

O Microsoft BizTalk RFID é projetado para fornecer uma plataforma escálavel e expansível para desenvolver, instalar, e administrar RFIDs. Incluído nos componentes chave podemos encontrar uma framework de abstração dos dispositivos e um conjunto robusto de ferramentas que capacitam a construção de RFID baseados em tecnologia .NET e aplicações de sensores com:

Serviços plug and play para suporte a diversos dispositivos RFID usando o Device Service Provider Interface (DSPI). Serviços de aplicação para interação com dispositivos e leitores de tags para filtragem, transformação e agregação de eventos. Ferramentas para gerenciamento de dispositivos e desenvolvimento de processo de negócio baseados em RFID (RFID Manager). Pontos de extensibilidade (event handlers) para implementar soluções baseadas em padrões.

Principais Benefícios Gerenciamento e configuração uniforme para dispositivos RFID heterogêneos. Simplicidade Operacional. Inovadora arquitetura de processos que separa as atividades de design das atividades de deployment. Comunicação síncrona e assíncrona com dispositivos RFID. Plataforma de desenvolvimento extensível para criação de event handlers customizados. Parte integrante do Windows Server System.

O RFID também permite a clientes e parceiros de negócio a criação de soluções fim a fim e real-time que:

Conectem a aplicações line-of-business (LOB) usando adaptadores que podem executar workflow de negócios de longa duração (controle de inventários, por exemplo) fazendo uso de todo potencial de business-to-business (B2B) e business process management (BPM) do BizTalk Server.

Uso de aggregations e views do Business Activity Monitoring (BAM) no BizTalk Server para a visualização fim a fim do processo e a visão analítica do fluxo de eventos RFID durante a execução do processo de negócio.

Utilização do SQL Server para o gerenciamento de dados e Business Intelligence.

Criação e deploy de regras de negócio utilizando o Business Rules Engine (BRE) para executar as decisões de negócio baseado nos even- tos de entrada.

Utilização do Microsoft Operations Manager (MOM) para monitoração e troubleshoot que adicionarão escalabilidade e tolerância a falhas a soluções RFID já implementadas em ambiente produtivo.

Adaptador WCF

Penso que é essa a novidade mais interessante presente na nova versão do BizTalk Server. O BizTalk WCF (Windows Communication Foun- dation) adapters possibilita ao Microsoft BizTalk Server 2006 R2 comunicação com aplicações WCF.

Se você ainda não sabe o que é o WCF recomendo que procure mais informações, pois aplicações WCF são a nova estratégia da Microsoft para aplicações distribuídas, com especial atenção a SOA (Service Oriented Architecture Arquitetura Orientada a Serviços) e deve ser am- pla e rapidamente adotada.

9
9
Artigo: Novidades do Biztalk Server 2006 R2
Artigo: Novidades do Biztalk Server 2006 R2

O Microsoft BizTalk Server 2006 R2 contém os seguintes adaptadores WCF e wizards:

WCF-WSHttp adapter: Oferece suporte aos padrões WS-* sobre o transporte HTTP. Este adaptador implementa as seguintes especifica- ções: WS-Transaction para as interações transacionais entre aplicações externas e o MessageBox, WS- Security para segurança de mensagem e autenticação. O transporte é HTTP ou HTTPS, e o encoding da mensagem pode ser Texto ou MTOM (Message Transmission Optimization Mechanism).

WCF-BasicHttp adapter: Possibilita a comunicação com Web Services baseados em ASMX, clients ou outros serviços em conformidade com o WS-I Basic Profile 1.1. O transporte é HTTP ou HTTPS, e o encoding da mensagem pode ser Texto ou MTOM (Message Transmission Optimization Mechanism).

WCF-NetTcp adapter: Fornece suporte aos padrões WS-* sobre transporte TCP. Oferece comunicação eficiente em ambiente WCF- WCF. Este adaptador implementa as seguintes especificações: WS-Transaction para as interações transacionais entre aplicações externas e o MessageBox, WS- Security para segurança de mensagem e autenticação. O transporte é TCP, e o encoding da mensagem é a codificação biná- ria.

WCF-NetMsmq adapter: Oferece suporte para messaging assíncrono usando Microsoft Message Queuing (MSMQ) como um transporte, e capacitando o suporte para aplicações fracamente acopladas, isolamento de falhas e operações desconectadas.

WCF-NetNamedPipe adapter: Oferece comunicação segura e está otimizado para comunicação ―on-computer cross-process‖, Utiliza transporte seguro para transferência segura, named pipes para entrega de mensagens e codificação binária.

WCF-Custom adapter: Possibilita o uso das características de extensibilidade do WCF. O adaptador permite que operadores selecionem e configurarem o binding WCF, o comportamento, e as extensões de comportamento para o Receive Location e Send Port.

WCF-CustomIsolated adapter: Possibilita o uso das características de extensibilidade do WCF sobre o transporte HTTP. O adaptador permite que operadores selecionem e configurarem o binding WCF, o comportamento, e as extensões de comportamento para um Receive Location rodando em um Isolated Host.

BizTalk WCF Service Publishing Wizard: Usado para criar e publicar orquestrações e schemas do BizTalk como um serviço WCF. Esse wizard é bem parecido com o já bem conhecido BizTalk Web Services Publishing Wizard.

BizTalk WCF Service Consuming Wizard: Usado para gerar artefatos BizTalk, como orquestrações e tipos, assim como arquivos de binding para criação de Send Port, para consumir um serviço WCF baseado no documento de metadado do serviço WCF.

BAM interceptor

No BizTalk Servidor 2006, o BAM é uma coleção de ferramentas, APIs, e serviços que permitem administrar aggregations, alertas, e profiles. Com o BAM você pode também instrumentalizar processos automatizados para que enviem eventos a serem monitorados por métricas rele- vantes no processo. Juntos, fornecem visibilidade end-to-end a um processo de negócio.

Os interceptores de BAM (BAM interceptors) estendem esta mesma funcionalidade ao Windows Workflow Foundation (WF), Windows Communication Framework (WCF), e outros runtimes. Usando os interceptores de BAM, você pode rastrear seus processos de negócio sem a necessidade de recompilar sua solução WF ou WCF. A integração é feita por um arquivo de configuração.

Usando o interceptador BAM WF ou WCF em seu projeto, você pode:

Usar o BAM portal para visualizar informações sobre o processo de negócio rodando em sua aplicação WF ou WCF. Usar as funcionalidades do BAM sem acrescentar código adicional a sua aplicação. Fazer o deploy de sua aplicação usando as já familiares ferramentas e utilitários do BizTalk Server. Obter vantagens de seu ambiente BizTalk já existente para as aplicações WF e WCF já existentes ou mesmo novas aplicações.

Além de continuar suportando Excel 2003, o BAM XLA foi atualizado para suportar o Microsoft Office Excel 2007.

1 0
1 0
Artigo: Novidades do Biztalk Server 2006 R2
Artigo: Novidades do Biztalk Server 2006 R2

Line-of-business (LOB) adapters

Um dos principais objetivos do BizTalk Server 2006 é facilitar a troca de documentos de negócio entre parceiros. Para auxiliar a atingir esse objetivo o BizTalk Server 2006 R2 inclui diversos adaptadores LOB que possibilitam a conectividade entre o BizTalk Server e aplicações LOB usando dados de protocolos e formatos de documentos comumente reconhecidos.

Windows SharePoint Services adapter - O suporte para esse adaptador agora inclui Windows SharePoint Services 3.0, enquanto conti- nua mantendo para o Windows SharePoint Services 2.0.

Enterprise Single Sign-On 4.0

A nova versão do SSO contém as seguintes funcionalidades:

Management agent for MIIS: Objetiva simplificar o gerenciamento de credenciais mapeadas no SSO database. Mapeamentos podem ser criados e deletados no SSO usando o Microsoft Identity Integration Server (MIIS). SSO também pode receber mudanças de senha do através de seu agente de gerenciamento.

Microsoft Management Console (MMC) snap-in: No Enterprise SSO Administration console, administradores SSO podem visuali- zar status e gerenciar servidores SSO remotamente usando o novo snap-in MMC.

Mapping Wizard for Affiliate Applications: Permite que administradores de SSO criem mapeamentos usando um wizard quando o nome externo de conta é baseado numa conta de domínio Windows. Adicionalmente, a senha inicial também pode ser especificada quan- do se criar o mapeamento para um usuário.

Direct Password Sync from Windows: Habilitando esta opção em um Affiliate Application permitirá que serviços de EntSSO sincro- nizem a senha na base de dados do SSO diretamente. A mudança de senha de Windows é recebida de qualquer Microsoft Password Change Notification Service (PCNS) ou MIIS. Isto é útil, por exemplo, onde uma conta de domínio Windows mapeada é criada na base de dados de SSO.

Password filtering: Para cenários ―single sign-on and password sync‖, se um filtro é definido, então a senha filtrada é retornada ao cha- mador ou ao adaptador de sincronização de senha. Filtros básicos incluem as opções para upper case and lower case, truncagem, e remo- ção de caracteres especiais. Filtros avançados incluem opções para substituição de caracteres e a capacidade de acomodar um caracter na frente ou fim.

Backward compatibility and upgrade: SSO 4.0 pode atualizar versões anteriores de SSO. Isto é feito para atualizar o master secret server, que também atualizará o SSO database. O upgrade do master secret server e do SSO pode trabalhar com todas versões prévias de servidores de SSO.

Conclusão

Sempre alinhado as novas tendências e tecnologias (tanto as do universo Microsoft, quanto dos padrões de mercado que se consolidam), o Microsoft BizTalk Server 2006 R2 mais uma vez prepara um grande salto para o futuro das aplicações distribuídas com os novos adaptadores WCF.

A constante evolução e atualização do produto se mostra presente nas importantes atualizações implementadas na versão R2 e nos dão uma boa idéia do que está por vir para a próxima versão, que deve ser lançada no final de 2008 ou começo de 2009.

Espera-se que no futuro o BizTalk Server esteja ainda mais profundamente alinhado aos investimentos recentes da Microsoft na frame- work .NET, especialmente ao Windows Communication Foundation e Windows Workflow Foundation.

É esperar para ver.

Feio Tomaz (feiotomaz@codificandomagazine.net) é tecnólogo em Processamento de Dados, formado pela Fatec-Americana. MCTS em BizTalk Server 2006, trabalha desde 2004 como consultor es- pecialista em Desenvolvimento de Processos de Negócio e Soluções de Integração. Atualmente é consul- tor da ITGROUP. Mantêm uma longa relação de amor (e algumas vezes ódio) com novidades e mudanças.

1 1
1
1
Artigo: Introdução às “Fábricas de Software”
Artigo: Introdução às “Fábricas de Software”

Esclarecendo as coisas ...

Antes de mais nada, vamos começar esclarecendo algumas coisas para evitar confusão. Na área de desenvolvimento, o ter-

mo “factory” (fábrica) é utilizado em pelo menos três diferentes situações (até onde eu conheço!), embora elas possam es- tar relacionadas. Primeiro, traduzindo para o português, chamamos de “Fábrica de Software”, a empresa que executa servi-

ços de tercerização para a construção de softwares. Esse uso é bastante conhecido no Brasil, e diversas empresas oferecem

esse serviço. Uma determinada empresa interessada na produção de um “sistema” transfere parte ou todo o trabalho de

construção do mesmo para uma fábrica de software. Nesta fábrica existe toda a estrutura (ou deveria existir!) para que este

sistema seja produzido da forma mais rápida e barata possível, seguindo um modelo de fábrica realmente, com processos e funções bem definidos.

Um outro uso do termo “factory”, embora menos conhecido, mas que pode causar alguma confusão aos desavisados, são os padrões “factories” de projeto, que estão relacionados à orientação a objeto (“Factory Method” e “Abstract Factory”). Já no terceiro uso do termo, “Software Factory” diz respeito a um conjunto de ferramentas, modelos, wizards, arquivos de

configuração, application blocks, geradores de código, padrões, documentos e outros, que podem ser utilizados pelos arqui- tetos e desenvolvedores com a finalidade de agilizar a entrega de um produto de software. E é exatamente deste tipo de

“factory” que iremos falar neste artigo.

Como chegamos até aqui ?

A busca por produtividade no desenvolvimento de software não é algo novo. Reusabilidade de requisitos, modelos, código e outros artefatos é um dos objetivos desta busca. Iniciativas para tentar estabelecer padrões industriais na produção de soft- ware são do tempo das ferramentas CASE (Computer-Aided Software Engineering). Hoje temos termos como Model- driven development (MDD), Component-Based Development (CBD), MOF (MetaObject Facility), BPMN (Business Process Modeling Notation), SysML (Systems Modeling Language), DSL (Domain Specific Language), só para citar alguns. Por outro lado, a padronização talvez seja uma das maneiras mais simples de caminhar na direção da produtividade. Padrões

de nomenclatura de código, padrões para o uso de determinadas bibliotecas, melhores práticas (ou para se evitar as “piores

práticas” !), padrões de projeto (os chamados “design patterns”), etc.

Conforme a complexidade do software aumenta, os prazos de entrega diminuem, a velocidade de mudança dos requisitos de

negócio aumenta ou amadurecem durante a construção. Hoje uma aplicação “normal” tem que consumir diversos serviços,

enviar email, atualizar bases de dados diferentes, gerar alertas para dispositivos móveis, acessar sistemas legados, gerar dife- rentes formatos de interface com o usuário, aplicar recursos de autenticação, controle de acesso, auditoria, etc. Ou seja, existe toda uma infra-estrutura que poderia (e deveria) ser reaproveitada de aplicação para aplicação. Enfim, o cenário é caótico, o desafio é enorme. Mas calma, vamos procurar não perder a cabeça.

Inicialmente tínhamos as diretrizes para desenvolvimento publicadas na forma de documentos de padrões. A própria Micro- soft sempre disponibilizou material de referência ou melhores práticas. Além disso, tínhamos aplicações de referência, para

que o desenvolvedor pudesse se basear em “alguma coisa” na hora de aplicar uma determinada tecnologia que ainda estava

de certa forma obscura.

Depois disso, já na era .NET, vieram os “Application Blocks”, que eram, como o próprio nome diz, “blocos” de software

que poderiam ser utilizados (ou alterados), para se ganhar tempo e qualidade na construção de aplicações .NET. Blocos de acesso à dados, logging, tratamentos de erro, segurança, etc. Esse blocos foram sendo reagrupados para se tornarem mais

tarde as conhecidas “Enterprise Libraries”. Aliás, o desenvolvedor .NET que não usa que me desculpe, mas provavelmente

ele deve gostar de escrever bastante código e a essa altura já deve estar com algum tipo de “tendinite”. Brincadeira, o obje-

tivo dessas bibliotecas é exatamente prover a infra-estrutura necessária de desenvolvimento para a aplicação, permitindo focar na lógica de negócio, para tornar o ciclo de desenvolvimento menos penoso para o desenvolvedor.

Seguindo essa mesma linha, percebemos que já existe uma série de recursos para dar suporte e agilizar o desenvolvimento,

porém eles estão “dispersos” na forma de documentação, guias, bibliotecas, aplicações de exemplos, etc. Isso exige um es- forço razoável para que possamos reunir, compilar e absorver essas “toneladas” de informações.

1 2
1 2
Artigo: Introdução às “Fábricas de Software”
Artigo: Introdução às “Fábricas de Software”

A idéia das “software factories” é exatamente essa, proporcionar um ponto de apoio para o desenvolvimento de um deter-

minado tipo de aplicativo, reunindo não só a documentação, mas também templates, wizards e aplicativos de referência em um único lugar, com o suporte de uma ferramenta de desenvolvimento, como o VS.NET 2005.

Basicamente, uma software factory apóia-se em três idéias-chaves :

1 2 Artigo: Introdução às “Fábricas de Software” A idéia das “software factories” é exatamente

Schemas : você pode pensar em um schema como uma ―receita‖. Aliás, é exatamente esse o termo usado (recipe). Sche- mas descrevem a arquitetura e o relacionamento entre seus componentes.

Templates : eles contém os componentes listados na receita e fornece os padrões, guias, frameworks, ferramentas de edição de DSL e outros ingredientes.

Um ambiente de desenvolvimento extensível : como por exemplo o VS.NET 2005.

Por onde eu começo ?

A melhor maneira para começar a entender e utilizar os recursos das fábricas de software é instalando as já disponíveis, que são:

Mobile Client Software Factory : fábrica para aplicações Windows para dispositivos móveis.

Smart Client Software Factory : fábrica para aplicações smart-clients, ou seja, aplicações com recursos Windows que podem ser disponibilizadas através de um browser.

Web Client Software Factory : fábrica para aplicações ASP.NET 2.0 e Windows Workflow Foundation.

1 3
1 3
Artigo: Introdução às “Fábricas de Software”
Artigo: Introdução às “Fábricas de Software”

Fique atento aos pré-requisitos para a instalação, que dependem da fábrica que será instalada. Eles podem variar desde o GAX (Guidance Automation Extensions), que é o ―run-time‖ necessário para que o Visual Studo 2005 seja capaz de execu- tar os pacotes, até o .NET Framework 3.0, Microsoft SQL Server 2005 Compact Edition Runtime, e outros componentes opcionais como o GAT (Guidance Automation Toolkit) e Visual Studio 2005 extensions para .NET framework 3.0 (WCF & WPF).

Um componente interessante citado é o GAT, que é exatamente a ferramenta que possibilita a criação de pacotes novos

de guias. Ou seja, É através do GAT que o arquiteto da sua empresa poderá criar um determinado guia de desenvolvimento

(que inclui código, documentação, templates, wizards, etc) e distribuir para os demais desenvolvedores da equipe.

1 3 Artigo: Introdução às “Fábricas de Software” Fique atento aos pré-requisitos para a instalação,cembranelli@excite.com ) é graduado em Ciências da Computação pela Unesp e pós -graduado em Telecomunicações. Atua a 11 anos na área de desenvolvimento e é certificado na plataforma Microsoft desde 2001. Atual- mente trabalha na equipe .NET da Sanmina-SCI em Campinas. Não sente saudade da época do Visual Basic 3.0. " id="pdf-obj-12-25" src="pdf-obj-12-25.jpg">

Onde eu consigo mais informação ?

http://msdn2.microsoft.com/en-us/practices/default.aspx

Conclusão

Espero que este artigo tenha dado uma idéia do que se tratam as software factories. Para aqueles que estão chegando agora,

realmente, existe um “mundo novo” a ser explorado. Termos novos, ferramentas novas e conceitos novos. A medida que caminhos da produção artesanal de software para a produção “automatizada”, ferramentas que viabilizem essa transição

tornam-se fundamentais. A idéia de “operários de software” nunca me agradou muito, mas podemos encarar as coisas por um outro ângulo : todo o esforço de codificação realizado até agora em processos repetitivos e entediantes poderá ser

“deslocado” para áreas mais “nobres” durante a construção de uma aplicação. Essas áreas seriam exatamente onde o desen-

volvedor é insubstitível, ou seja, nas coisas que não podem ser automatizadas.

Felipe Cembranelli (cembranelli@excite.com) é graduado em Ciências da Computação pela Unesp e pós-graduado em Telecomunicações. Atua a 11 anos na área de desenvolvimento e é certificado na plataforma Microsoft desde 2001. Atual- mente trabalha na equipe .NET da Sanmina-SCI em Campinas. Não sente saudade da época do Visual Basic 3.0.

1 4
1 4
Artigo: Integrando aplicações .Net com SAP R3
Artigo: Integrando aplicações .Net com SAP R3

Olá pessoal, nesse artigo estarei demonstrando algo que não é muito comum entre os desenvolvedores .Net, e por esse motivo, existe uma carência muito grande desses profissionais nas grandes empresas.

O que é uma RFC? RFC é uma função desenvolvida em ABAP, essa funciona como qualquer
O que é uma RFC?
RFC é uma função desenvolvida em ABAP, essa funciona como qualquer tipo de função, recebendo
parâmetros e retornando parâmetros. No R3 quando se cria uma RFC, é possível habilitar uma flag de
acesso remoto, para que assim seja visualizado por outros aplicativos.

Para quem não conhece, o R3 é um ERP da empresa alemã SAP, atualmente na versão 6 o R3 (da versão 6 em diante é co- nhecido como ECC), está presente em 53% das grandes empresas do planeta, e no Brasil ele é usado por empresas como Petrobras, Vivo, Claro, TIM, Embratel, Eletropaulo entre outras. O R3 possui uma linguagem própria, o ABAP, também pos- sui uma camada de gerenciamento de acesso a tabelas, ou seja, um programador ABAP não acessa diretamente o banco de dados, tudo é feito no R3 e o próprio internamente persiste as informações no banco de dados.

Devido a facilidade de criação de telas de gerenciamento e relatórios, tornou-se interessante para as empresas terem aplica- ções externas que conversam diretamente com o R3, até pelo fato da aplicação poder acessar informações do negócio em tempo real, por exemplo um software de ponto de venda, sites con informações detalhadas até mesmo aplicações para efei- tos gerênciais.

Em uma parceria feita entre SAP e Microsoft foi desenvolvido um componente para o Visual Studio 2003 chamado de SAP- DotNetConnector, este consegue acessar RFCs que estão flegadas com acesso remoto no R3.

Esse projeto será demonstrado no Visual Studio 2003, porém, para as pessoas que já usam o Visual Studio 2005, como eu, podem apenas criar uma DLL no VS2003 e usa-la no VS2005 acessando todos os seus recursos.

Primeiro é necessário instalar o SAPDotNetConnector 2.0, essa instalação já aplica algumas coisas no VS2003 para facilitar o acesso à RFCs.

Na figura abaixo, estou mostrando uma RFC que criei como exemplo, esta estará recebendo um parametro que será o ID de um cliente (parâmetro opcional) e estará retornando uma tabela de Clientes com todos ou apenas um referente ao ID passado.

1 4 Artigo: Integrando aplicações .Net com SAP R3 Olá pessoal, nesse artigo estarei demonstrando

Parâmetro de entrada

1 5
1 5
Artigo: Integrando aplicações .Net com SAP R3
Artigo: Integrando aplicações .Net com SAP R3

Parâmetro de Saída:

1 5 Artigo: Integrando aplicações .Net com SAP R3 Parâmetro de Saída: Código da função:

Código da função:

1 5 Artigo: Integrando aplicações .Net com SAP R3 Parâmetro de Saída: Código da função:
1 6
1 6
Artigo: Integrando aplicações .Net com SAP R3
Artigo: Integrando aplicações .Net com SAP R3
1 6 Artigo: Integrando aplicações .Net com SAP R3 Execução da função: Resultado: Nesse momento,
1 6 Artigo: Integrando aplicações .Net com SAP R3 Execução da função: Resultado: Nesse momento,

Execução da função:

Resultado:

Nesse momento, a parte que será feita no R3 está pronta, observem na ultima figura que quando não passamos nenhum parametro a função returna todos os usuários.

1 7
1 7
Artigo: Integrando aplicações .Net com SAP R3
Artigo: Integrando aplicações .Net com SAP R3

P R O J E T O

Já com o SAPDotNetConnector instalado, vou criar um projeto Windows Application. Indo ao “Server Explorer”, ao pres- sionar o botão Refresh vai aparecer um icone do SAP, Vou expandindo em “Application Servers” e adiciono uma conexão

va figura abaixo.
va figura abaixo.

com o servidor do ambiente no qual desenvolvi a RFC, expando para Functions e efetuo um “filtro” para ver as RFCs, veja

Feito isso, adiciono uma classe no projeto, selecionando “New Item”, mais aparecerá outro tipo de classe, veja na imagem

abaixo.

1 7 Artigo: Integrando aplicações .Net com SAP R3 P R O J E T
1 8
1 8
Artigo: Integrando aplicações .Net com SAP R3
Artigo: Integrando aplicações .Net com SAP R3

P R O J E T O

Para poder usar a RFC, apenas arrasto do Server Explorer para o container criado pelo VS, observem na imagem abaixo.

1 8 Artigo: Integrando aplicações .Net com SAP R3 P R O J E T

Aqui é importante dizer que, por traz, o SAPDotNetConnector, lê as informações da RFC cria um método, que é a chama- da da RFC e quando a mesma recebe ou retorna tabelas, ele cria o mapeamento dessas tabelas, observe que ele criou o metodo com o mesmo nome da RFC, criou uma estrutura com os campos da tabela KNA1 (Clientes) e uma coleção que seria a tabela, esse conceito é bem parecido com o que temos no DataSet Tipado.

Feito isso, voltarei ao Formulário e vou adicionar uma Grid (dgClientes) e no Load do formulário, vou adicionar o seguinte código:

private void Form1_Load(object sender, System.EventArgs e) { clsSAP S = new clsSAP(); S.ConnectionString = "StringConexaoSAP"; KNA1Table t_kna1 = new KNA1Table();

S.Z_Exemplo_Weliton("", ref t_kna1);

dgClientes.DataSource = t_kna1;

}

1 9
1 9
Artigo: Integrando aplicações .Net com SAP R3
Artigo: Integrando aplicações .Net com SAP R3

Após exetutar o projeto aparecerá todos os clientes na grid conforme mostra a imagem abaixo.

1 9 Artigo: Integrando aplicações .Net com SAP R3 Após exetutar o projeto aparecerá todos

A versão do R3 usada na demonstração é a versão 4.6C, a partir da versão 6 a SAP implantou o conceito de SOA no ECC, dessa forma é possível acessar qualquer informação de RFC por meio de Web Services.

Conclusão: Com esse artigo, eu quis demonstrar como é possível fazer acessos remotos à RFCs no R3. Atualmente as gran- des empresas estão querendo cada vez mais aplicações que conectem em tempo real com informações do negócio, o SAPDot- NetConector ajuda e muito à acessar essas informações. Até o próximo artigo.

1 9 Artigo: Integrando aplicações .Net com SAP R3 Após exetutar o projeto aparecerá todos

Weliton Carlos Flor é MCTS Web Applications e analista de sistemas na Stefanini, trabalha com .Net a 4 anos sendo 2 focado em SAP

2 0
2 0
Artigo: Mundo Acadêmico
Artigo: Mundo Acadêmico

Queria contar-lhes uma experiência que creio que é comum a todos no ambiente universitário, principalmente. Ouvimos que o Java é a linguagem ideal para o ambiente universitário, que ela tem isso, tem aquilo, é orientada a objetos, que é a úni- ca capaz de ensinar aos alunos o verdadeiro conceito de programação orientada a objetos. Dentre outros mitos, ouvimos

que as linguagens C#, Visual Basic.NET e outras não “servem” para que aprendamos o básico de algoritmos e fluxogramas,

isto é, que não são próprias para dar os primeiros passos no estudos das linguagens de programação.

Vamos desmistificar essa série de besteiras e “mitos” bobos e ver quão práticas são essas linguagens para a aprendizagem

nas disciplinas de Algoritmos e Linguagens de Programação.

Vamos abordar aqui um problema bem simples, que é a resolução de uma equação de segundo grau, da forma:

ax²+bx+c = 0

A resolução dessa equação usa a fórmula de resolução de Báskara, que nos diz:

em que x é a raiz da equação de segundo grau,
em que
x
é
a
raiz
da equação de segundo grau,

além disso, dá-se o nome de delta () é chamado de discriminante da equação e quem nos permite dar casos condicionais para a resolução da equação de segundo grau, como segue:

Se

>0

= > Existem duas raízes reais

diferentes.

Se

=0

= > Existem duas raízes reais e

iguais.

Se ∆ <0

= > Não existem raízes reais.

Em que = b 2 4ac.

O fluxograma desta aplicação (que pode ser melhorado, este é apenas um exemplo prático feito rapidamente para que mos- tremos a simplicidade de trabalhar com o .NET) é dado abaixo:

2 0 Artigo: Mundo Acadêmico Queria contar-lhes uma experiência que creio que é comum a
2 1
2 1
Artigo: Mundo Acadêmico
Artigo: Mundo Acadêmico

A seguir, temos a implementação do código em C#, no modo Console:

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

namespace ConsoleEquacao2Grau { class Program {

static void Main(string[] args) {

double A, B, C, DELTA, RAIZ, X1, X2; string nomeUsuario;

Console.WriteLine("Digite o seu nome: "); nomeUsuario = Console.ReadLine();

Console.WriteLine("Bem-vindo {0}!", nomeUsuario);

Console.WriteLine("Digite o valor de A: \n"); A = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("{0}, digite agora o valor de B: \n", nomeUsuario); B = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("E por último, digite o valor de C: \n"); C = Convert.ToDouble(Console.ReadLine());

DELTA = (B * B) - (4 * A * C);

// Se DELTA for maior ou igual a zero

if (DELTA >= 0) { RAIZ = System.Math.Sqrt(DELTA);

X1 = (-B + RAIZ) / (2 * A); X2 = (-B - RAIZ) / (2 * A);

Console.WriteLine("Caro {0}, o valor da RAIZ é {1}! E o valor de DELTA é {2}", nomeUsuario, RAIZ, DELTA); Console.WriteLine("E os valores de X1 e X2 são {0} e {1} respectiva- mente.\n", X1, X2);

Console.WriteLine("DELTA é maior ou igual a zero.\n"); Console.WriteLine("Pressione ENTER ou qualquer tecla para finali-

zar!");

Console.ReadLine();

}

else

{

Console.WriteLine("Caro {0}, o valor de DELTA é {1}\n", nomeUsuario,

DELTA);

2 2
2 2
Artigo: Mundo Acadêmico
Artigo: Mundo Acadêmico

Console.WriteLine("Portanto, o valor de DELTA é negativo!\n"); Console.WriteLine("Pressione ENTER ou qualquer tecla para finali-

zar!");

}

}

}

Console.ReadLine();

}

Cujo resultado será:

2 2 Artigo: Mundo Acadêmico Console .WriteLine( "Portanto, o valor de DELTA é negativo!\n" );

O projeto, em Windows Forms, usando a linguagem C#, criaria um layout como segue:

2 2 Artigo: Mundo Acadêmico Console .WriteLine( "Portanto, o valor de DELTA é negativo!\n" );
2 3
2 3
Artigo: Mundo Acadêmico
Artigo: Mundo Acadêmico

Seu código fonte de implementação fica desta forma:

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms;

namespace Equacao2Grau {

public partial class Form1 : Form { public Form1() {

InitializeComponent();

}

private void btnSair_Click(object sender, EventArgs e) {

// Encerrar a aplicação Application.Exit();

}

private void btnLimpar_Click(object sender, EventArgs e) {

//Limpar caixa de textos e // E focalizar no txtA txtA.Text = ""; txtB.Text = ""; txtC.Text = ""; txtX1.Text = ""; txtX2.Text = ""; txtMensagem.Text = ""; txtA.Focus();

}

private void btnCalcular_Click(object sender, EventArgs e) {

// Criar variáveis double A, B, C, D, RAIZ, X1, X2;

// Declarando variáveis // Nesse caso é convertido tudo que o usuário digitar // que é considerado string (texto) e o .Net Framework 2.0 // através da classe "Convert" converte para o tipo "Double" para que a

lógica

// do sistema funcione. A = Convert.ToDouble(txtA.Text); B = Convert.ToDouble(txtB.Text); C = Convert.ToDouble(txtC.Text);

2 4
2 4
Artigo: Mundo Acadêmico
Artigo: Mundo Acadêmico

// Fórmula do Báskara

D

= (B * B)

- (4 * A * C);

// Ponto de decisão do sistema

// Se DELTA for maior ou igual a ZERO

// o sistema continua. if (D >= 0) {

/* No .NET Framework 2.0 para se calcular uma raiz é preciso

* adicionar a classe "System.Math.Sqrt"

* Assim será possível executar a RAIZ do problema

*/

RAIZ = System.Math.Sqrt(D); // Calculando o X1 e X2

X1 = (-B + RAIZ) / (2 * A); X2 = (-B - RAIZ) / (2 * A);

// Convertendo os valores de X1 e X2 para exibição em formato texto // através da classe "Convert" e passando para "String" (texto). txtX1.Text = Convert.ToString(X1); txtX2.Text = Convert.ToString(X2);

}

else

{

 

// Se delta for menor que zero

{

// Exibindo a mensagem caso o DELTA for menor que ZERO! txtMensagem.Text = "Delta é menor que zero";

}

}

}

}

}

2 5
2 5
Artigo: Mundo Acadêmico
Artigo: Mundo Acadêmico

E, funcionando, teremos:

2 5 Artigo: Mundo Acadêmico E, funcionando, teremos: Viram a facilidade e a produtividade emauricioow@gmail.com Até a próxima e poderiam, para o próximo número da revista, pensar em como resolveriam um sistema de duas equações linares a duas incógnitas em C#, em modo console e em modo Windows Forms . Desde já, obrigado e não se esqueçam, senhores: “No stress, think .NET !” Abraços a todos MAURICIO WIELER Mauricio Wieler Orellana - Bacharel em Ciências da Computação, Mestrando em Ciências da Com- putação na USP, MCSD em Visual Studio 6, MCP em C#, atua no mercado Informática há 14 anos e é professor da Universidade Paulista (UNIP), Universidade Salesiana de São Paulo (UNISAL) e Faculdade Montessori, desde 2000. Foí Coordenador Acadêmico da INETA Brasil. " id="pdf-obj-24-9" src="pdf-obj-24-9.jpg">

Viram a facilidade e a produtividade e os conceitos que foram vistos nos códigos?

Quaisquer dúvidas e/ou esclarecimentos, por favor, não hesitem em escrever para meu email:

Até a próxima e poderiam, para o próximo número da revista, pensar em como resolveriam um sistema de duas equações linares a duas incógnitas em C#, em modo console e em modo Windows Forms.

Desde já, obrigado e não se esqueçam, senhores:

“No stress, think .NET !”

Abraços a todos

MAURICIO WIELER

2 5 Artigo: Mundo Acadêmico E, funcionando, teremos: Viram a facilidade e a produtividade emauricioow@gmail.com Até a próxima e poderiam, para o próximo número da revista, pensar em como resolveriam um sistema de duas equações linares a duas incógnitas em C#, em modo console e em modo Windows Forms . Desde já, obrigado e não se esqueçam, senhores: “No stress, think .NET !” Abraços a todos MAURICIO WIELER Mauricio Wieler Orellana - Bacharel em Ciências da Computação, Mestrando em Ciências da Com- putação na USP, MCSD em Visual Studio 6, MCP em C#, atua no mercado Informática há 14 anos e é professor da Universidade Paulista (UNIP), Universidade Salesiana de São Paulo (UNISAL) e Faculdade Montessori, desde 2000. Foí Coordenador Acadêmico da INETA Brasil. " id="pdf-obj-24-33" src="pdf-obj-24-33.jpg">

Mauricio Wieler Orellana - Bacharel em Ciências da Computação, Mestrando em Ciências da Com- putação na USP, MCSD em Visual Studio 6, MCP em C#, atua no mercado Informática há 14 anos e é professor da Universidade Paulista (UNIP), Universidade Salesiana de São Paulo (UNISAL) e Faculdade Montessori, desde 2000. Foí Coordenador Acadêmico da INETA Brasil.

RECORDAR É VIVER!

P Á G I N A

2 7

XNA - A comunidade mostra sua força

O dia 15 de setembro de 2007 vai ficar para a história do desenvolvimento de games. Neste dia a grande comunidade de desenvol- vedores e entusiastas de games mostraram sua força no 1º XNA Game Fest Brasil (www.gamefestbrasil.net ).

O evento aconteceu

na

UNIP,

campus

Tatuapé

e

foi

organizado

por

dois

grandes

grupos: Codificando.Net

(www.codificandomagazine.net) e SharpGames.Net (www.sharpgames.net) .

Os participantes foram contemplados com cerca de 10 horas de atividades divididas em três níveis: Estudantes/Games 2D, Profissi- onais/Games 3D e Game Design.

Logo na abertura, contabilizamos cerca de 750 pessoas disputando cada centímetro (corredores laterais, central e demais área de circulação) do auditório para assistir ao descontraído KeyNote de Amintas Neto, Diretor Acadêmico da Microsoft Brasil, apoiado

por sua “tropa de elite” (peço licença pelo uso do

P Á G I N A 2 7 XNA - A comunidade mostra sua força O

trocadilho), Galileu Vieira, Gerente de Inovações da Microsoft Brasil e André Furtado, um vitorioso dou- torando ((http://afurtado1980.spaces.live.com), campe- ão de diversos campeonatos de desenvolvimento, a- presentaram qualidades e a evolução da tecnologia XNA.

As palestras foram ministradas por grandes profissio- nais da área e também por entusiastas que mergulham fundo na tecnologia, como é caso de José Antonio Leal Farias, popularmente conhecido como JALF.

JALF arrancou gargalhadas da galera com seu bom hu- mor, mas provou com seriedade que desenvolver ga- me exige uma boa dose de paciência.

Também fomos contemplados com o talento do MSP Roger Tang, um dos responsáveis por criar o tutorial em CD distribuído aos participantes do evento. Tang apresentou os desafios da criação de jogos em 3D.

Outro entusiasta e expert em GOW (Gears of War), Murilo Maciel Curti, aka SHINJi ou seria ao contrário? apresentou um game semelhante ao Guitar Hero, demonstrando que os desafios podem estimular a criatividade.

Esse nobre Jedi que vos fala (como é difícil falar na terceira pessoa) apresentou um tutorial passo-a-passo sobre o desenvolvimento de um pequeno game 2D, com scrolling de cenário, teste de colisão, controles do teclado e joystick e também técnicas simples para criação de personagens.

P Á G I N A 2 7 XNA - A comunidade mostra sua força O

P Á G I N A

2 8

XNA - A comunidade mostra sua força

Básico/Acadêmico

XNA e XNA Framework: desenvolvendo jogos de maneira fácil e divertida para Windows e Xbox 360

XNA Game Components e Game Services: criando jogos do jeito do XNA

Profissional

Programação Multi-Core para código nativo e gerenciado Perspectivas no mercado nacional e na Live Arcade Criando efeitos especiais usando Shaders em XNA Tutorial: criando jogos em 3D com XNA

Design

Elementos de game design para um jogo de sucesso Criando cenários 3D para seus jogos Criando roteiros para jogos Tutorial: introdução a modelagem 3D

Bruno Evangelista minis-

trou duas palestras muito

empolgantes,

“Criando

efeitos

especiais

usando

Shaders em XNA” e

“Criando games 3d com

XNA” em

formato de

tutorial. Nesta última, os

participantes

(cerca

de

130 na sala) maravilhados

com os recursos e exce-

lência

da

apresentação,

conseguiram

extrair o

máximo

de

informações

possíveis, extrapolando

em pelo menos em 1 ho-

ra

o

tutorial

de

nosso

heróico Bruno.

 

Na elite dos profissionais, Roger Tavares do Game

Cultura e Fabio Razzo Galuppo da ZINIA, quebraram alguns paradigmas da concepção de um game, apresentando aspectos do de-

sign de games e programação multi-core, respectivamente. Suas palestras foram rapidamente interrompidas pela performance de um animado grupo de Cosplayers.

Como ninguém é de ferro (exceto alguns personagens dos games), tive- mos dois intervalos para repor as energias, com lanches, pipoca, algodão- doce e muito refrigerante. Além de repor as energias, o intervalo serviu como um momento para o networking , onde a galera trocou experiên- cias, contatos e também muitas dicas de games para XBOX 360.

P Á G I N A 2 8 XNA - A comunidade mostra sua força Básico/Acadêmico
P Á G I N A 2 8 XNA - A comunidade mostra sua força Básico/Acadêmico

P Á G I N A

2 9

XNA - A comunidade mostra sua força

P Á G I N A 2 9 XNA - A comunidade mostra sua força Bruno

Bruno Evangelista ministrou duas palestras muito empolgantes, “Criando efeitos especiais usando Shaders em XNA” e “Criando games 3d com XNA” em formato de tutorial. Nesta última, os participantes (cerca de 130

na sala) maravilhados com os recursos e excelência da apresentação, conse- guiram extrair o máximo de informações possíveis, extrapolando em pelo menos em 1 hora o tutorial de nosso heróico Bruno.

Reforçando ainda mais o sucesso do evento, tivemos forte cobertura jorna- lística, com a presença da Play TV, Revista Oficial XBOX (ROX), Revista Game Master, Revista Independente XBOX 360 (Digeratti), Game Cultura, Portal XBOX, Game Reporter e Estadinho.

Configura o que foi publicado na imprensa:

Trecho do

programa PlayZone, que vai

clipping.aspx?video=gamefest

ao

ar de segunda a sábado na PlayTV: www.bizmedia.com.br/microsoft/

• Matéria da Revista Oficial XBOX 360 http://www.revistax360.com.br/modules/noticias/ver.php?id=275 Revista Game Master número 33 Excelente matéria de destaque Já nas bancas (outubro/novembro)

Além das matérias publicadas pela imprensa, observamos muitos posts em blogs de qualidade:

André Furtado—André traça um perfil bem humorado do evento http://afurtado1980.spaces.live.com/blog/cns!63514833CE40C143!219.entry

Panacea Design—Gostamos muito do ponto de vista crítico, além dos destaques positivos do evento. http://panaceadesign.com.br/?p=24

Aventura da galera de Vila Velha-ESO pessoal mais animado e dedicado do evento, com uma caravana de cerca de 20 pessoas, arrasaram! http://s10.invisionfree.com/enrevil/index.php?showtopic=6007

Os videos também estão presentes na comunidade do YouTube:

Auditório lotado—http://uk.youtube.com/watch?v=JvOrat4QsZg

Game desenvolvido por André Furtado - http://uk.youtube.com/watch?v=9I4HCCUlc3w

Apresentação de Bruno Evangelista http://uk.youtube.com/watch?v=mNFIFR_gbv4

André Furtado arrancando gargalhadas da platéia http://uk.youtube.com/watch?v=NbxU2bpcRws

P Á G I N A 2 9 XNA - A comunidade mostra sua força Bruno

P Á G I N A

3 0

XNA - A comunidade mostra sua força

Inscritos

1.250

Participantes

Quase mil pessoas

Palestras

15

Apoiadores

Microsoft Acadêmico Microsoft Games MSDN UNIP EA Games Sharp Games Codificando.Net Game Cultura Livraria Saraiva Comunidade Amiga.Net Ineta

Imprensa

Play TV Revista Oficial XBOX Revista Game Master Estadinho (Jornal O Estado de São Paulo) Revista XBOX 360 Digeratti Game Cultura Game Reporter

Arrecadação alimentos

Mais de 750 kg

Concluindo a matéria, é importante destacar que o evento contou com patrocina- dores de peso, como: Microsoft, EA Games, Livraria Saraiva e UNIP-Tatuapé, além fortes apoiadores, MSDN, Game Cultura, Comunidade Amiga.Net, Ineta, Microsoft cadêmico e Microsoft Games.

É isso aí nobre Jedis! Até o próximo Game Fest.

P Á G I N A 3 0 XNA - A comunidade mostra sua força Inscritos

d e

A -

P Á G I N A 3 0 XNA - A comunidade mostra sua força Inscritos

Feio Tomaz (feiotomaz@codificandomagazine.net) é tecnólogo em Processamento de Dados, formado pela Fatec- Americana. MCTS em BizTalk Server 2006, trabalha desde 2004 como consultor especialista em Desenvolvimento de Proces- sos de Negócio e Soluções de Integração. Atualmente é consultor da ITGROUP. Tem saudades dos bons tempos quando as coisas pareciam ser mais simples e os vídeo games tinham apenas um botão .....

3 1

Coluna: Desvendando o SQL Server

Pessoal,

Nesta série de artigos para a revista Codificando.net, estou demonstrando o uso de XML com SQL Server 2005. Os seguintes tópicos estão sendo abordados:

Introdução: XML e SQL Server 2005 Gerenciando dados XML Trabalhando com XML Dados XML e tecnologia SQL Server Modificando dados XML Criando Indices XML

Os 3 primeiros tópicos foram abordados anteriormente, restando os demais para serem desvendados posteriormente. Antes

disso, será preciso explicar o que venha a ser “XML Schema”.

“XML Schema” descreve a estrutura e o conteudo de um documento XML. Abaixo encontra-se um exemplo que será utilizado, pode-se notar que é bastante parecido com a definição de uma tabela e seu conteúdo (dados). Sendo assim, salve o conteudo abaixo em um arquivo (pode ser logRecordSchema.xsd) e vamos para a próxima etapa.

<?xml version="1.0" encoding="utf-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="logRecord" type="logRecordType" />

<xsd:simpleType name="flagEnum"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="warning" /> <xsd:enumeration value="information" /> <xsd:enumeration value="failure" /> <xsd:enumeration value="custom" /> </xsd:restriction> </xsd:simpleType>

<xsd:simpleType name="eventEnum"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="appStart"/> <xsd:enumeration value="appClose"/> <xsd:enumeration value="logIn"/> <xsd:enumeration value="logOut"/> </xsd:restriction> </xsd:simpleType>

<xsd:complexType name="logRecordType"> <xsd:choice maxOccurs="unbounded"> <xsd:element name="information" type="informationType"/> <xsd:element name="error" type="errorType"/> <xsd:element name="post" type="postType"/> </xsd:choice> <xsd:attribute name="machine" type="xsd:string" /> <xsd:attribute name="timestamp" type="xsd:dateTime" /> </xsd:complexType>

<xsd:complexType name="postType">

3 1 Coluna: Desvendando o SQL Server Pessoal, Nesta série de artigos para a revista Codificando.net,

3 2

Coluna: Desvendando o SQL Server

<xsd:sequence> <xsd:element name="moreInformation" type="xsd:string" maxOccurs="1" minOc-

curs="0"/>

</xsd:sequence> <xsd:attribute name="eventType" type="eventEnum"/> </xsd:complexType>

<xsd:complexType name="informationType"> <xsd:sequence> <xsd:element name="message" type="xsd:string" /> </xsd:sequence> <xsd:attribute name="flag" type="flagEnum" /> </xsd:complexType>

<xsd:complexType name="errorType"> <xsd:sequence> <xsd:element name="message" type="xsd:string" />

<xsd:element name="module" type="xsd:string" /> </xsd:sequence> <xsd:attribute name="number" type="xsd:int" />

</xsd:complexType>

</xsd:schema>

Na edição anterior, criamos o banco de dados “codificandoxml” e a tabela “tabelaexemploxml” (a ser utilizada futuramente em

outros artigos). Para isso, estando no SQL Server Management Studio, digitamos o seguinte comando que irá, ao mesmo tempo,

carregar o arquivo codificando.xsd e criar a tabela a ser utilizada nos próximos exemplos:

USE codificandoxml

Go

declare @schema XML select @schema = c from openrowset ( bulk 'c:\codificando\logRecordSchema.xsd', single_blob) as temp(c) create xml schema collection LogRecordSchema as @schema go

Criar a tabela de exemplos da apresentação:

CREATE TABLE UniversalLog ( ID INT IDENTITY(1,1) NOT NULL, LogDateTime DATETIME NOT NULL CONSTRAINT [DF_UniversalLog_LogDateTime] DEFAULT (GetDate()), ApplicationName NVARCHAR(50) NOT NULL, LogRecord XML(LogRecordSchema) NULL )

3 2 Coluna: Desvendando o SQL Server <xsd:sequence> <xsd:element name="moreInformation" type="xsd:string" maxOccurs="1" minOc- curs="0"/> </xsd:sequence> <xsd:attribute

3 3

Coluna: Desvendando o SQL Server

Neste ponto, chegou o momento de inserir dados na tabela:

USE CodificandoXML

GO

INSERT UniversalLog(ApplicationName, LogRecord) VALUES ('SalesApp', '<logRecord machine="server1" timestamp="2000-01-12T12:13:14Z"> <post eventType="appStart"> <moreInformation>All Services starting</moreInformation>

</post>

</logRecord>')

INSERT UniversalLog(ApplicationName, LogRecord) VALUES ('Inventory', '<logRecord machine="server2" timestamp="2000-01-13T12:13:14Z"> <post eventType="appStart"/> <information flag="warning"> <message>Duplicate IP address</message> </information> </logRecord>')

INSERT UniversalLog(ApplicationName, LogRecord) VALUES ('HR', '<logRecord machine="server1" timestamp="2000-01-14T12:13:14Z"> <error number="1001"> <message>The user does not have enough permissions to execute query</message> <module>DataAccessLayer</module>

</error>

</logRecord>')

INSERT UniversalLog(ApplicationName, LogRecord) VALUES ('CustomerService', '<logRecord machine="server2" timestamp="2000-01-15T12:13:14Z"> <post eventType="logOut"/> <information flag="custom"> <message>User must change password on next login</message> </information> </logRecord>')

3 3 Coluna: Desvendando o SQL Server Neste ponto, chegou o momento de inserir dados na

3 4

Coluna: Desvendando o SQL Server

INSERT UniversalLog(ApplicationName, LogRecord) VALUES ('HoursReport', '<logRecord machine="server2" timestamp="2000-01-11T12:13:14Z"> <information flag="failure"> <message>Hard Disk with ID #87230283 is not responding</message> </information> <error number="18763"> <message>Application can not start</message> <module>AppLoader</module>

</error> <post eventType="appStart"/> </logRecord>')

SELECT * FROM UniversalLog GO

O resultado encontra-se abaixo:

3 4 Coluna: Desvendando o SQL Server INSERT UniversalLog(ApplicationName, LogRecord) VALUES ('HoursReport', '<logRecord machine="server2" timestamp="2000-01-11T12:13:14Z"> <informationhttp://www.y2k-ti.com.br ) . Possui mais de 10 anos de experiência na área de TI, sendo certificado Microsoft com os títulos MCT, MCSE e MCDBA. Como instrutor MCT (Microsoft Certified Trainer) possui cerca de 4.200 horas ministrando treinamento oficial Microsoft. " id="pdf-obj-33-14" src="pdf-obj-33-14.jpg">

Até o momento preparamos todo o nosso ambiente de estudos criando o database, as tabelas, XML schema e inserimos os dados que serão utilizados na próxima etapa.

Por enquanto ficaremos por aqui, no próximo artigo continuaremos a desvendar o uso de XML com SQL Server explicando como os dados XML se comportam com a tecnologia SQL Server, modificaremos os dados XML inseridos neste segundo artigo e também será explicado a criação de indices XML. Preparem-se, a viagem promete!

Abraços,

Alexandre Lopes

Alexandre Lopes atua como consultor especialista em SQL Server em projetos da Y2K-TI (http://www.y2k-ti.com.br). Possui mais de 10 anos de experiência na área de TI, sendo certificado Microsoft com os títulos MCT, MCSE e MCDBA. Como instrutor MCT (Microsoft Certified Trainer) possui cerca de 4.200 horas ministrando treinamento oficial Microsoft.

3 6 Cinema T R O PA D E E L I T E O Cinema

3 6

Cinema

T R O PA D E E L I T E

3 6 Cinema T R O PA D E E L I T E O Cinema

O Cinema Nacional em patamar de cinema de primeiro mundo.

Nobres Jedis, é dificil analisar e fazer uma crítica transparente quando nossa moção supera a razão.

Assisti ao filme logo na estréia e confesso que tentei “trabalhar como crítico”

ra escrever à vocês, mas a emoção falou mais alto. Bem, aí vai minha análise crítica:

Aqui a arte imita a vida, a realidade de um mundo cinzento, uma fronteira in- transponível repleta de armadilhas.

Tropa de Elite não pode ser rotulado apenas como “mais um filme que trata de problemas sociais”. Trata-se de uma obra-prima de produção invejável, com ances do cinema americano e diálogos comparados ao cinearte europeu. Exage- Tudo bem, não dá pra comparar os diálogos com as sacadas genias de Almodó- ou ironias de Woody Allen, mas Capitão Nacimento, brilhantemente interpreta- por Wagner Moura, dispara palavras conexas num perfeito timing.

e - p a - nu- r o ? v a r d o
e
-
p a -
nu-
r o ?
v a r
d
o

O diretor, José Padilha, teve sensibilidade e forte sintonia com sua equipe, atingindo a excelência em fotografia e som este um show a parte, com sin- cronismo e perfeição em todas as cenas.

Respire fundo e prepare-se para intermináveis cenas de ação, com muito sangue, humilhação, piadas sarcásticas e um heroísmo duvidoso; claro, depen- dendo do seu ponto de vista. Nobres Jedis, esse é um filme imperdível, onde você fará uma forte crítica sobre a sociedade, e não somente sobre o filme. Os brincalhões de plantão não perdem tempo e já me enviaram algumas frases sobre o Capitão Nascimento. Aí vai:

Quando Bruce Banner fica p#@! ele vira o Hulk, quando o Hulk fica p#t! ele vira o capitão Nascimento. Capitão Nascimento não lê livros, ele bota eles no saco até conseguir toda a informação que precisa. Capitão Nascimento apostou queda de braço com o Superhomem e quem perdesse teria que usar a cueca por cima da calça. O capitão Nascimento só dorme de luz acesa, porque o escuro tem medo dele. • No Aurélio a palavra "vítima" está definida como "aquele que encontra o capitão Nascimento". • Capitão Nascimento dorme com um travesseiro debaixo da arma.

Amigos, sem dúvida nenhuma, esse filme vai dar no que falar.

Divirtam-se. - Emerson Facunte

3 6 Cinema T R O PA D E E L I T E O Cinema

T R A S H

R I D Í C U L O

D Á

PR O

V Á

T Á

E SP ER A N D O

 

G A S T O

A S S I S T IR

O

Q U E ?

3 7

.Close()

Visual Studio 2008! O melhor debug de todos os tempos

Debugar, debugar e debugar

....

Uma tarefa muito comum em nossas vidas e que graças as evoluções das ferramentas conseguimos

fazer cada vez melhor. Principalmente em momentos de bugs absurdos, o Debug é parceiro fiel para qualquer desenvolvedor

O Visual Studio já nos ofere-

... ce um debug muuuuito bom, com recursos sensacionais ainda mais para fãs de trabalhar com coleções, o Debug é sensacional.

O time de produto do Visual Studio 2008 surpreendeu ao anunciar um novo recurso de Debug

A partir da próxima versão, sim-

Isso mesmo, na implementa-

... plesmente poderemos navegar pelo debug na implementação na Biblioteca de Classes do Framework

...

ção de código feita pela Microsoft.

O que ganho com isso?

Um nível a mais de debug muito mais claro :)

...

Poderemos por exemplo em debug entrar na implementação do método Replace da classe String

....

E

Dá para imaginar no trabalho que devem ter tido para fazer isso? Imaginem a limpeza no código, tirar as soluções técnicas alternati-

vas (gambiarras), tirar os comentários do tipo: “Não sei o que faz, mas não apaguem”, etc etc etc

...

Mas até ai, o trabalho que isso

deu para fazer não é muito problema nosso :) , mas o recurso sim e nosso e os debugs de quem utilizar Visual Studio 2008 vão ser

muito mais profundos ...

Veja mais: http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code-for-the-net-framework-libraries.aspx

3 7 .Close() Visual Studio 2008! O melhor debug de todos os tempos Debugar, debugar e
3 7 .Close() Visual Studio 2008! O melhor debug de todos os tempos Debugar, debugar e

Alexandre Tarifa é MVP Visual Developer Visual Basic .Net, bacharel/pós graduado em Ciência da Computação, trabalha em diversos projetos. Tem participado de diversos projetos que começam como Web e terminam com Smart Client.

Especialista .Net e Líder de Projetos na ITGROUP (www.itgroup.com.br), editor da revista Codificando e-Magazine e fanático torcedor do São Paulo Futebol Clube. Blog: www.vstsrocks.com.br/alexandretarifa.