Você está na página 1de 43

Sumrio

04 :. Gerando Boletos Bancrios


Edio 10 Nmero 10 Ano 03 2009 EDITORES Alexandre Tarifa Diego Nogare Emerson Facunte Sergio Gonalves REVISO Fernanda Sallai Giaccomo Sabino MONTAGEM / FORMATAO Milton Carvalhaes EDITORAO E DIAGRAMAO Adriano Almeida COLABORADORES Adriano Luciano Candido Alan Santos Diego Nogare Felipe Aron Felipe Augusto da Costa Marques Fernanda Sallai Gustavo Henrique Dornelas Seiti Yamashiro Wagner Roberto Gavglio
Veja nesta primeira parte, como gerar boletos bancrios utilizando ASP.NET.
Por: Seiti Yamashiro

09 :. .NET SAP connector 2.0


Lendo as tabelas do SAP com o .NET SAP connector 2.0 atravs de RFC.
Por: Diego Nogare

15:. SQL Server 2.005 com CLR


Saiba como integrar o CLR ( Common Language Runtime) do .NET com o SQL Server.
Por: Wagner Roberto Gavglio Candido / Adriano Luciano

22:. Envio de e-mail utilizando o C#


Exemplo de como enviar e-mail utilizando ASP.NET de forma simples
Por: Fernanda Sallai

Fale com Editor


muito importante para a equipe saber a sua opinio sobre a revista, caso tenha alguma critica, sugesto, ou elogio entre em contato. Caso tenha interesse em publicar um artigo na revista envie o ttulo e um resumo do tema em formato Word.
site@codificandomagazine.net

28 :. Silver Sprite
Jogos desenvolvidos em XNA para a Internet.
Por: Felipe Aron

33:. Visual Studio Team Sytem e Projeto Rosrio


Introduo a conceitos relativos ao .NET Framework, e ao Visual Studio, destacando o projeto Rosrio.
Por: Alan Santos / Gustavo Henrique Dornelas / Felipe Augusto da Costa Marques

Produzido por:

www.codificando.net

03:. Editorial

42:. .Close ( )

Edio 10 Nmero 10 Ano 03 2009

Editorial
Depois do sucesso da edio anterior da revista Codificando .Net e-Magazine, que j estava diagramada pelo novo time de editores, conseguimos cumprir a promessa de publicar uma revista a cada dois meses. Nesta edio, trazemos artigos bem interessantes sobre ASP .NET, SQL Server, C#, XNA e at SAP. Os autores de algumas das matrias desta edio so membros do Codificando .Net, e que mostraram interesses em publicar conosco os artigos. Acredito que aos poucos, vamos criando este costume de mais membros participarem com a gerao de contedo. A revista est aberta a receber (e publicar, claro!) quaisquer artigos dos membros da comunidade, esta uma iniciativa que acreditamos ser fundamental para o bom andamento da comunidade.

Diego Nogare site@codificandomagazine.net

e-magazine

Gerando Boletos Bancrios Parte I


Veja nesse artigo como gerar boletos bancrios usando o ASP.NET
Por: Seiti Yamashiro

Vamos primeiro entender do que composto basicamente um boleto: Banco: quem gerencia a transao; Cedente: quem vai receber a grana; Sacado: quem paga; Valor do documento: quanto ser pago Data de vencimento: at quando pode ser pago; Modalidade: com ou sem registro. O comum para vendas online sem registro. Se o sacado no pagar, a responsabilidade de correr atrs do cedente.

Fig. 1 - Boleto padro Ita

1. 2. 3. 4. 5. 6. 7. 8.

A entidade que padroniza os boletos no Brasil a Federao Brasileira de Bancos FEBRABAN. claro que o desenvolvedor deve conhecer mais que o bsico, caso queira gerar um boleto. Na figura 1 est o modelo do boleto do Ita. Mas note que ainda assim a descrio est resumida.

9. 10.

Nome do banco, que pode conter tambm seu logotipo; Cdigo do banco, com seu respectivo DV; Local de pagamento; Data do documento, que quando ele foi gerado; Nmero do documento, obrigatrio para carteiras sem registro; Carteira, no utilizado pelo Ita; Espcie, use R$ para usar nossa moeda; Agncia/Cdigo Cedente, no formato 1234/56789-7 e Nosso Nmero, no formato 123/45678901-5; Uso exclusivo do funcionrio caixa ; Instrues, condies para recebimento, dados sobre multas por atraso, bancos autorizados etc.
Junho / Julho 2009|

Codificando.net e-magazine

www.codificando.net

Gerando Boletos Bancrios

e-magazine

A duas listagens acima j ajudam o programador a saber quais dados ele precisa ter mo para gerar um boleto bancrio. Alguns itens do boleto devero ser criados automaticamente pelo sistema a partir destes dados, tais como a linha digitvel e o cdigo de barras. Uma excelente fonte de documentao se encontra em http:// www.phpboleto.com.br/. L existem outros modelos disponveis para download. E, se seu projeto em PHP, recomendo utiliz-lo! Outro lugar legal para se informar o site macoratti.com. Criando um template Por meio do Crystal Reports, que j vem no Visual Studio 2008, criei o template da figura 2.

para popul-lo. Criei uma classe cujas propriedades so os dados a serem inseridos no boleto (cdigo 1) namespace Portal.Controles.Boleto { public class Dados { public DateTime DataDocumento { get; set; } public DateTime DataVencimento { get; set; } public DateTime DataProcessamento { get; set; } public string Cedente { get; set; } public string SacadoResumido { get; set; } public string SacadoCompleto { get; set; } public string Agencia { get; set; } public string CodigoCedente { get; set; } public int NumeroDocumento { get; set; } public string EspecieDocumento { get; set; } public string Aceite { get; set; } public string NossoNumero { get; set; } public string Carteira { get; set; } public string Instrucoes { get; set; } public int Quantidade { get; set; } public decimal Valor { get; set; } public decimal ValorDocumento { get; set; } public string CodigoBaixa { get; set; } public bytes[] CodigoBarra { get; set; } public string LinhaDigitavel { get; set; }

Codificando.net e-magazine

Fig. 2 - Elaborando no Crystal Reports

Note que ele contm s o esqueleto. Nenhum campo dinmico foi adicionado (bom, talvez a espcie, que considerei ser sempre R$) ainda. Template pronto, precisamos dos dados

www.codificando.net

Junho / Julho 2009|

Gerando Boletos Bancrios


}
} Cd. 1 - Classe DAO para os dados do boleto

e-magazine

Agora preciso terminar o template do boleto. Ao compilar o projeto podemos inserir as propriedades da classe acima em nosso template. Para adicionar a classe recm criada como fonte de dados (Data Source) s ir para DataBase Fields DataBase Expert (figura. 3)

Fig. 4 - Dados dinmicos prontos para insero

Por meio do famigerado arrastar e soltar, s terminar de criar o template, colocando os campos nos lugares corretos. Um trabalho simples, mas meio chato.
Fig. 3 - Acessando o DataBase Expert

Testando a gerao do boleto Template pronto. Posso ento criar uma classe encarregada de buscar os dados, a template, junt-los e serv-los. A classe no tem nada de mais, e est preparada para funcionar em ambiente ASP.NET (cdigo 2). namespace Portal.Controles.Boleto { public enum Banco { ITAU } public class Boleto { CrystalDecisions.CrystalReports. Engine.ReportDocument rel; public Boleto(Banco banco, HttpServerUtility server)

Na caixa de dilogo que se abre, s escolher a classe recm criada. Ficam disposio todas as propriedades necessrias para popular o boleto (figura 4).

Codificando.net e-magazine

www.codificando.net

Junho / Julho 2009|

Gerando Boletos Bancrios


{ rel = new CrystalDecisions.CrystalRepor ts.Engine.ReportDocument(); rel.Load (GetTemplateFilePath(banco, server)); } public void Baixa (HttpResponse response, IEnumerable dataSource) { rel.SetDataSource (dataSource); rel.ExportToHttpResponse( CrystalDecisions.Shared.Expor tFormatType.PortableDocFormat , response, true, string.Format ("Boleto_{0}.pdf", DateTime.Now.Date.ToShortDate String())); } protected string GetTemplateFilePath(Banco banco, HttpServerUtility server) { switch (banco) { case Banco.ITAU: return server.MapPath("~/Controles/ Boleto/TemplateItau.rpt"); default: throw new Exception("Este tipo de boleto no foi implementado ainda"); } } }
} Cd. 2 - Classe responsvel pela gerao do boleto.

e-magazine

ser melhorada, como o caminho at o arquivo do template, que est hardcoded. Mas j funciona e est preparado para funcionar com mais de um tipo de template. Como testar ento? Criei uma pgina ASPX contendo um boto. Vinculei um mtodo ao evento OnClick. O corpo do mtodo se encontra no cdigo 3. protected void botao_OnClick (object sender, EventArgs e) { Portal.Controles.Boleto.Boleto boleto = new Portal.Controles.Boleto.Boleto (Portal.Controles.Boleto.Banco. ITAU, Server); List dados = new List (); dados.Add( new Portal.Controles.Boleto.Dados() { Aceite = "N", Agencia = "1234", Carteira = "123", Cedente = "Indstria ACME", CodigoBaixa = "123/12345678-9", CodigoBarra = File.ReadAllBytes (Server.MapPath("~/Caminhp/ para/uma/imagem.jpg")), CodigoCedente = "123456", DataDocumento = DateTime.Now, DataProcessamento = DateTime.Now, DataVencimento = DateTime.Now.AddDays(5), EspecieDocumento = "AB", Instrucoes =@"Sujeito a protesto se ao for pago no vencimento no vencimento

Codificando.net e-magazine

claro que muita coisa na classe pode

www.codificando.net

Junho / Julho 2009|

Gerando Boletos Bancrios


pagavel em qualquer agenia bancaria apos vencimento cobrar R$ 0,42 por dia de atraso apos vencimento cobrar multa de R$ 6,66", LinhaDigitavel = "12345.12345 12345.123456 12345.123456 1 1230000066600", NossoNumero = "123/12345678-9", NumeroDocumento = 123456890, Quantidade = 0, SacadoCompleto =@"Dino da Silva Sauro CNPJ 12.345.678/123-11 Rua das Casas, S/N 01111-111 Vl Das Ruas Sao Paulo SP", SacadoResumido = "Dino da Silva Sauro", Valor = 0, ValorDocumento = 666 }); boleto.Baixa(Response, dados); }
Cd. 3 - Teste de gerao de boleto

e-magazine

Seiti Yamashiro
Graduando em Cincia da Computao, desenvolvedor web em C#/Asp.NET com banco de dados MS SQL Server. Nas hora vagas costuma programar em PHP e implantar sistemas livres em Linux, alm de alimentar um blog: http://seiti.eti.br

Ou seja, crie uma lista, lhe adicione um objeto passe tudo e mais um pouco para a classe Boleto e chame o mtodo Baixa. Um boleto em pdf ser gerado e entregue ao usurio pelo navegador. E agora? Agora que j temos a gerao de um boleto dummy funcionando, precisamos acertar os dados que o compem. Existem regras para a linha digitvel, precisamos calcular alguns dgitos verificadores e ainda gerar a imagem correspondente ao cdigo de barras. Isto fica para a Parte II! Aguardem!

Codificando.net e-magazine
Junho / Julho 2009|

www.codificando.net

e-magazine

Lendo as tabelas do SAP com o .NET SAP Connector 2.0 atravs de RFC
Aprenda como ler tabelas do SAP com o .Net SAP Connector 2.0.
Por: Diego Nogare

Introduo Muitas empresas atualmente controlam todas suas atividades utilizando um dos ERPs mais famosos do mundo, o SAP. Este ERP alemo possui muitos recursos j prontos para controlar as atividades da empresa, estes recursos so chamados Standard, e so separados em mdulos de atividades (SD [Sales and Distribution], FI [Financial], HR [Human Resources], etc) e possvel integrar todos dados destes mdulos para uma comunicao ou tomada de deciso mais precisa. As reas de atuao do SAP so muito bem desenhadas e definidas, onde o pessoal da rea funcional (cujo trabalho configurar o standard do SAP) no tem acesso s configuraes dos servidores, usurios, acessos, permisses, e etc cuja a rea responsvel BASIS (que so os caras de infra) e no desenvolvem nada na soluo. Por sua vez existem customizaes realizadas em transaes Z ou Y (que no so as standards) so criadas para um processo bem especfico de uma determinada regra de negcios do cliente,

cujo processo no pode ser implementado por uma configurao do standard. Elas podem estar dentro de uma exit do standard (a grosso modo, no meio do cdigo do standard), ou ser 100% Z ou Y, ou seja, um programa inteiro criado sem nenhuma referncia ao cdigo standard, podendo ou no utilizar tabelas standard no desenvolvimento. Estas transaes (Z ou Y) so criadas pelos desenvolvedores, que so conhecidos como ABAP. Nosso trabalho, enquanto desenvolvedor .Net, ser em parceria com os ABAPs e os BASIS. Os ABAPs que faro as RFCs (Remote Function Call Chamada de funo externa) que sero acessadas atravs do SAP .Net Connector 2.0 (que homologado pela SAP para trabalhar com o .Net 1.1 No existem atualizaes do SAP .Net Connector para outras verses do .Net framework), e a equipe de BASIS que nos passaro os dados para a montagem da string de conexo com o SAP. Resumindo... Funcional: Entende o processo,

Codificando.net e-magazine

www.codificando.net

Junho / Julho 2009|

Lendo as tabelas do SAP com o .NET SAP Connector 2.0

e-magazine

ABAP: Desenvolvimento. Basis: Infra-estrutura / Segurana

para Add New Item. Esta tela (Figura 1) ser aberta e ento procure o cone do SAP Connector Proxy.

Agora que j temos uma noo bsica (muito, mas muito bsica mesmo) de como a estrutura do SAP, vamos criar uma aplicao Windows Forms em C# que far a leitura de uma RFC do SAP e colocar o retorno em um DataTable, a parti da, o cu o limite. A parte de abrir o Visual Studio e iniciar uma aplicao Windows Forms no ser abordada neste momento, pois existe muito material sobre isso na internet. Vou focar na criao da aplicao pra integrar com o SAP. Ento vamos comear a aplicao j nos pontos que so novidades... Para acessar o SAP atravs do .Net, necessrio ter o SAP .Net Connector 2.0 que um conector do SAP j instalado, e s pode ser baixado atravs de usurio e senha vlidos no site da SAP. Geralmente as empresas que compram licenas de SAP recebem este usurio Aps a instalao do conector, um novo cone ser adicionado nos templates que podem fazer parte do projeto (Figura 1), este novo item o SAP Connector Proxy. Este Proxy receber todos os itens das RFCs que sero conectadas atravs do .Net e montar automaticamente as classes de acessos com suas respectivas properties (mtodos Get e Set), entre outras coisas. Para utilizar este proxy, ser necessrio adicionar um novo item ao projeto, ento v at a Solution Explorer, clique com o boto direito do mouse e aponte

Figura 1. Adicionando o proxy ao Projeto.

Aps a adio, o item aparecer no Solution Explorer (neste exemplo, foi adicionado na prpria raiz do projeto, mas ele pode ser adicionado dentro de alguma outra pasta para melhorar a organizao), como mostra a Figura 2.

Codificando.net e-magazine

Figura 2. Proxy na Solution Explorer.

D dois cliques no Proxy adicionado, e uma tela sem nenhum controle ser aberta no painel principal do Visual Studio 2003. Esta tela que se abriu, servir de container para as RFCs gerarem automaticamente os cdigos das classes de acesso. Este processo ser explicado com mais detalhes adiante. Agora, para conseguir utilizar as RFCs

www.codificando.net

Junho / Julho 2009|

10

Lendo as tabelas do SAP com o .NET SAP Connector 2.0


que foram criadas pelos ABAPs, lembra?!), necessrio adicionar os dados do servidor do SAP (que sero fornecidos pelo pessoal de BASIS, isso voc tambm lembra, n?!) no Server Explorer, para se poder visualizar as RFCs que esto liberadas pra acesso. V at o Server Explorer, procure o item do SAP (que foi inserido aps a instalao do SAP .Net Connector 2.0), expanda a rvore do SAP e clique com o boto direito no item Application Servers, ento adicione os dados AppServerHost / Client / Password / SystemNumber e UserName. Acompanhe este passo na Figura 3.

e-magazine

Figura 4: RFCs que podero ser utilizadas.

Agora que as RFCs j esto listadas, s arrastar a RFC que ser acessada para dentro do Proxy, na tela que j deve estar aberta no painel principal do Visual Studio. Caso isso ainda no esteja feito, d dois cliques no item do proxy na Solution Explorer. Quando arrastar a RFC para cima do proxy, os dados da classe desta RFC sero criados automaticamente, permitindo o acesso seus campos atravs de suas properties. Acompanhe na Figura 5, o proxy com uma RFC j arrastada.

Codificando.net e-magazine

Figura 3: Inserindo os dados no Server Explorer. Figura 5: RFC arrastada para o proxy.

Aps este passo, ser possvel expandir o Application Servers e visualizar o servidor que voc adicionou (ter o nome fornecido ao campo AppServerHost). Ao expandir este item, ser necessrio configurar o filtro das Functions para aparecer as RFCs (crie um novo filtro e coloque os dados para filtrar (* retorna todas)) que podero ser utilizadas na aplicao. Acompanhe as RFCs fornecidas na Figura 4.

Agora que a RFC foi arrastada para o proxy, as classes para acessar os dados do SAP foram criados automaticamente dentro do proxy, se for at a Solution Explorer e exibir os itens ocultos (Show All Files), expandindo o proxy possvel ver as classes criadas (classes exibidas na Figura 6).

www.codificando.net

Junho / Julho 2009|

11

Lendo as tabelas do SAP com o .NET SAP Connector 2.0

e-magazine

dr["codigo"] = linha.Codca; dr["nome"] = linha.Descc; dt.Rows.Add(dr); } gridSAP.DataSource = dt; } catch (Exception ex) { MessageBox.Show (ex.Message); } } Listagem 1: Cdigo para utilizar o proxy e as classes criadas.

Figura 6: As classes criadas automaticamente pelo proxy.

Est faltando pouco agora, o mais complicado j passou. Vamos ao cdigo do mtodo acessarSAP( ) criado, e chamado pelo mtodo LOAD do formulrio. Acompanhe a Listagem 1, onde os cdigos deste mtodo foram inseridos.
private void acessarSAP() { try { lendoSAP proxy = new lendoSAP("_STRING DE CONEXO_); BAY2_N2RV_RPCAMTable tabelaSAP = new BAY2_N2RV_RPCAMTable();

A aplicao utilizar o proxy criado, que foi chamado de lendoSAP para criar uma conexo com outro servidor SAP (no precisa ser necessariamente o mesmo utilizado no Server Explorer). Os itens que precisam ser inseridos na String de Conexo, podem ser encontrados abaixo, na Listagem 2. Substitua estes itens em vermelho pelos dados fornecidos pelo pessoal de BASIS, como foi feito no Server Explorer. "ASHOST=AppServerHost SYSNR=SystemNumber CLIENT=Client USER=UserName PASSWD=Password" Listagem 2: Dados da String de Conexo. Aps a informao de conexo do proxy, ser criada uma varivel do tipo Tabela da RFC (BAY2_N2RV_RPCAMTable tabelaSAP = new BAY2_N2RV_RPCAMTable();). Esta varivel criada ser passada por parmetro de referncia, para o mtodo com o nome da RFC (proxy.Bay2_N2rv_Rfc_Pxp_Camph (ref tabelaSAP);) que est dentro do proxy. Como o parmetro foi por referncia, a varivel criada passar a ter

Codificando.net e-magazine

proxy.Bay2_N2rv_Rfc_Pxp_Camph (ref tabelaSAP); DataTable dt = new DataTable(); dt.Columns.Add ("codigo"); dt.Columns.Add("nome"); foreach (BAY2_N2RV_RPCAM linha in tabelaSAP) { DataRow dr = dt.NewRow();

www.codificando.net

Junho / Julho 2009|

12

Lendo as tabelas do SAP com o .NET SAP Connector 2.0


os dados lidos no SAP atravs da RFC. Aps estes pequenos passos, vamos percorrer todos os itens da tabela que foi populada por referncia, utilizando um foreach. Para ver os dados que foram lidos do SAP, criamos um DataGrid no formulrio, e preenchemos a propriedade DataSource deste DataGrid com o DataTable que recebeu os dados do SAP. Vejam na Figura 7, o Diego Nogare

e-magazine

Graduado em Cincia da Computao, Ps-Graduado em Engenharia de Computao com nfase em Desenvolvimento Web com .NET. Colaborador do Portal Linha de Cdigo e da revista SQL Magazine, Lder do grupo de usurios Codificando .NET, Lder dos Microsoft Student Partners [MSP] de So Paulo e Microsoft Most Valuable Professional [MVP] em SQL Server, possui certificaes MCP e MCTS em SQL Server 2005, palestrante em eventos da Microsoft, Codificando .NET e INETA BR, mantm o site: www.diegonogare.net

Figura 7: Resultado do DataGrid preenchido.

DataGrid preenchido. Com isso, conclumos com uma anlise simples e prtica de uma das solues para ler as tabelas do SAP atravs de RFC. Outros dois artigos sero publicados em breve, o primeiro explicando como escrever nas tabelas do SAP atravs de RFCs e o segundo como montar um workaround para utilizar o Visual Studio 2005/2008 para ler as RFCs.

Codificando.net e-magazine
Junho / Julho 2009|

www.codificando.net

13

e-magazine

Microsoft SQL Server 2005 com CLR (.NET Framework)


Veja como implementar a integrao do Microsoft SQL Server 2005 com CLR (.NET Framework).
Por: Wagner Roberto Gavglio / Adriano Luciano Candido

Definio Frequentemente os desenvolvedores de sistemas precisam estender as funcionalidades de suas aplicaes para que haja maior interao entre a aplicao que est sendo desenvolvida, o ambiente do sistema operacional e o banco de dados. Tratando-se de manipulaes em banco de dados, utilizamos o T-SQL (Transact Structure Query Language) para acessar e manipular dados em um Banco de Dados SQL Server. Nas verses mais atuais do SQL Server e do Visual Studio (Ambos a partir das verses 2005), a Microsoft integrou o CLR (Common Language Runtime) do .NET com o SQL Server, podendo assim desenvolver stored procedures, functions, triggers e data-types utilizando uma linguagem .NET (Visual Basic .NET ou Visual C# .NET). Com a integrao do SQL Server com componentes CLR do Microsoft .Net Framework, os desenvolvedores agora possuem um modelo rico de programao: o poder das bibliotecas do .Net Framework, melhorando a segurana e o desempenho em algumas situaes quando comparado com o uso do TSQL e racionalizando o desenvolvimento atravs de um ambiente padronizado do Microsoft Visual Studio .Net.

O CLR - Common Language Runtime - o ambiente de execuo do .NET Framework. Ele responsvel pelo gerenciamento da execuo das aplicaes, assim todo o cdigo que ele gerencia chamado de cdigo gerenciado e todo o cdigo que executado diretamente sobre o sistema operacional chamado cdigo no gerenciado. No processo de compilao de cdigo escrito em qualquer linguagem .NET, so gerados artefatos denominados assemblies (DLLs ou EXEs), expressos em uma linguagem intermediria independente de hardware, a Microsoft Intermediate Language (MSIL). Para permitir a execuo de cdigo .NET no SQL Server foi realizada uma integrao dos recursos do SQL e do CLR, e ento o SQL Server passou a oferecer, como alternativa ao Transact-SQL e as extended stored procedures, o SQLCLR. Atravs da integrao do CLR com o SQL Server podemos escrever cdigo C# ou VB .NET que pode ser

Codificando.net e-magazine

www.codificando.net

Junho / Julho 2009|

15

Microsoft SQL Server 2005 com CLR (.NET Framework)

e-magazine

usado no interior dos processos do SQL Server. Segue a seguir, um exemplo prtico passo a passo do uso do CLR em SQL Server 2005. Criando uma Stored Procedure com Cdigo Gerenciado em .NET (SQL-CLR) Neste exemplo, estaremos utilizando o SQL Server 2005 Express Edition e o Visual Studio .NET 2005. Passos a serem seguidos na integrao do CLR no SQL Server 2005: 1. 2. 3. 4. Habilitar a integrao do CLR; Escrever o cdigo e compil-lo em um assembly (DLL); Adicionar o Assembly no SQL Server 2005; Efetuar os testes.

Clique em Iniciar Programas Microsoft SQL Server 2005 Configuration Tools SQL Server Surface Area Configuration.

Figura 1

Clique em Surface Area Configuration for Features. No item CLR Integration, habilitar o CLR (Enable CLR Integration).

Obs.: A integrao com o CLR est desabilitada por default no SQL Server 2005. Habilitando o CLR em Modo Texto Abrir o SQL Server Management Studio New Query e execute os comandos abaixo: sp_configure go RECONFIGURE; clr enabled, 1;

Figura 2

Escrever o cdigo e compil-lo em um assembly (DLL) Abra o Visual Studio 2005 e selecione New Project. Na janela New Project, em Project Types, marque DataBase e, em Templates, selecione SQL Server Project, informando o nome sqlCLR.

Codificando.net e-magazine

Habilitando o CLR em Modo Grfico

www.codificando.net

Junho / Julho 2009|

16

Microsoft SQL Server 2005 com CLR (.NET Framework)

e-magazine

SQL Server devemos clicar com o boto direito em cima do Projeto no Solution Explorer Add Stored Procedure. Um arquivo criado com a extenso *.vb (ou *.cs se o projeto for em Visual C# .NET).

Figura 3

Na prxima tela, informe os detalhes para a Conexo com o Banco de Dados.

Figura 5

Depois de adicionado, podemos ver que a IDE criou uma Partial Class, chamada StoredProcedures. Na medida em que voc for criando objetos deste tipo, outras Partial Class tambm sero criadas e, quando compilado o projeto, estas, por sua vez so mescladas (merge) em uma nica classe chamada StoredProcedures. Ao adicionar um novo objeto do tipo Stored Procedure, ser gerado o seguinte cdigo abaixo:

Codificando.net e-magazine

Figura 4

Obs.: Se a janela, solicitando habilitar o debug na conexo, surgir clique no boto Sim. Para criar um novo objeto do tipo Stored Procedure, dentro do projeto

www.codificando.net

Junho / Julho 2009|

17

Microsoft SQL Server 2005 com CLR (.NET Framework)

e-magazine

na linguagem .NET (C#): [Microsoft.SqlServer.Server.S qlProcedure] public void pr_list_person() { using (SqlConnection oCnx = new SqlConnection("context connection=true")) { oCnx.Open(); using (SqlCommand oCmd = new SqlCommand("select FirstName,Phone from Person.Contact", oCnx)) { SqlDataReader oReader = oCmd.ExecuteReader (); SqlContext.Pipe.Send(oReader); } oCnx.Close(); } } Context Connection=True: Efetua a interao com o Banco de Dados ativo no momento do ambiente em que est sendo executado, resgatando as informaes e objetos necessrios para a execuo de um determinado comando no Banco de Dados. SqlContext.Pipe.Send: Resgata o canal de comunicao entre o objeto e a aplicao cliente que o chama, ou seja, a comunicao entre o cliente e o servidor. Atravs do mtodo Send deste objeto, voc envia as informaes para o cliente. J a classe SqlContext representa o contexto corrente e, com isso, elimina a necessidade de abrir outra conexo com a Base de Dados. O nosso prximo passo a gerao do arquivo Assembly (DLL) que ser adicionado no SQL 2005. Para gerar o
Junho / Julho 2009|

Figura 6

Obs.: O Atributo [Microsoft.SqlServer.Server.SqlProcedur e] determina que o procedimento uma Stored Procedure. O Visual Studio .NET usa esta determinao para criar a Stored Procedure dentro do SQL Server quando o Deployment feito. Como j vimos acima, uma Partial Class chamada StoredProcedures criada e dentro dela colocamos uma ou mais Stored Procedures. O interessante colocar uma Stored Procedure por arquivo para facilitar a manuteno. Aps a gerao da estrutura, vamos ento ao cdigo que mostrar realmente a construo da Stored Procedure. O nosso cenrio consiste em uma nica tabela de exemplo, denominada Sales.Person. Efetuando um "select" na mesma nos retornar aos seguintes dados: use AdventureWorks go select FirstName,Phone Person.Contact go

Codificando.net e-magazine

from

Iremos encapsular a consulta utilizada acima, em uma Stored Procedure gerada em .NET. Chamaremos de pr_list_person. Segue o cdigo abaixo

www.codificando.net

18

Microsoft SQL Server 2005 com CLR (.NET Framework)

e-magazine

mesmo, devemos previamente informar o nome do arquivo DLL a ser gerado e respectivamente o local o ser gerado. No Visual Studio, clicar no Menu Project sqlCLR Properties ...

O arquivo sqlCLR.dll ser gerado no local especificado:

Figura 10

Adicionando o Assembly no SQL Server 2005


Figura 7

Na aba Application, definir o nome em Assembly name (sqlCLR). Aps a definio do nome, informar o local onde ser gerado o arquivo. (Aba Build) Nesta rea, defina o local para onde o arquivo.DLL ser gerado (C:\).

Depois de gerado o Assembly (sqlCLR.dll), o prximo passo ser catalogar o Assembly, ou seja, "inclulo" dentro do SQL Server. Em seguida mapearemos a Stored Procedure para os mtodos que esto dentro do Assembly que, nesta altura, j estar catalogado. Veremos como funciona o processo de catlogo de Assemblies atravs da DDL no Sql Server (Mtodo 1) e atravs do Visual Studio (Mtodo 2).

Codificando.net e-magazine

Figura 8

Mtodo 1 use AdventureWorks go CREATE ASSEMBLY sqlCLR FROM 'c:\sqlCLR.dll' WITH PERMISSION_SET = SAFE GO No SQL Server 2005 temos agora uma nova instruo dentro da linguagem DDL que chamamos de "CREATE ASSEMBLY". Esta instruo utilizada para adicionarmos o Assembly dentro da Base de Dados. Informamos um

Aps informar o nome e o local, basta gerar o assembly. Clique no menu Build Build sqlCLR.

Figura 9

www.codificando.net

Junho / Julho 2009|

19

Microsoft SQL Server 2005 com CLR (.NET Framework)

e-magazine

nome qualquer que identificar o Assembly e, na clusula FROM, informarmos o path completo at o arquivo DLL gerado pelo Visual Studio .NET. J a clusula PERMISSION_SET permite especificar o nvel de segurana em que seu cdigo ser executado/acessado. Existem trs opes de nvel de segurana, como veremos abaixo: SAFE: o default. Neste modo o Assembly somente poder rodar no contexto local, mas no atravs do SqlClient. Previne tambm o acesso atravs de recursos externos e de cdigo no gerenciado. EXTERNAL_ACCESS: o mesmo que SAFE, somente habilitando o acesso aos recursos externos. UNSAFE: Acesso irrestrito, desde que o Assembly seja assinado e catalogado por um usurio que seja membro do grupo sql_admins.

Se analisarmos agora o Object Browser que se encontra dentro do SQL Server Management Studio, veremos l a Stored Procedure criada e o Assembly tambm j catalogado. Atravs da tabela sys.assembly_files voc pode recuperar os Assemblies que esto catalogados dentro de um determinado Banco de Dados. A Figura abaixo exibe o Object Browser do SQL Server, com a Stored Procedure e o Assembly j registrados.

Figura 11

Codificando.net e-magazine

Depois de catalogado o Assembly dentro do nosso Banco de Dados, o que temos que realizar agora a definio da Stored Procedure, mapeando o mtodo pr_list_person() que est dentro do Assembly: use AdventureWorks go CREATE PROCEDURE pr_list_person AS EXTERNAL NAME sqlCLR. [StoredProcedures].pr_list_pe rson GO

Mtodo 2 Alm da forma apresentada acima para catalogar o Assembly no SQL Server, encontramos tambm no Visual Studio, uma forma automtica de catalogar o Assembly e gerar a Stored Procedure. No painel Solution Explorer do Visual Studio, Clique com o boto direito sobre o nome do Projeto sqlCLR, e execute a opo Deploy.

www.codificando.net

Junho / Julho 2009|

20

Microsoft SQL Server 2005 com CLR (.NET Framework)


Aps o registro do Assembly e a gerao da Stored Procedure, efetuaremos o teste de execuo da Stored Procedure. USE AdventureWorks go EXECUTE pr_list_person go Perceba que a execuo da Stored Procedure corresponde ao mesmo resultado obtido pelo comando Select, executado no incio deste artigo. Concluso Neste artigo foram apresentadas algumas caractersticas da integrao do SQL Server 2005 e CLR. Vale lembrar que o cenrio do teste apresentado foi baseado na criao de uma Stored Procedure em .NET. Porm outros objetos (Funes, Triggers, etc.) tambm podem ser gerados utilizando esta

e-magazine

tecnologia. Outro fato importante saber quando utilizar CLR e quando utilizar o TSQL. O T-SQL interessante utilizar em acesso a dados, sem nenhuma lgica complexa. J a utilizao do CLR, proporciona a utilizao das tecnologias das linguagens de programao (Visual Basic .NET /Visual C# .NET) proporcionando uma melhor interao e operacionalidade entre as ferramentas. Wagner Roberto Gavglio
Bacharel em Sistemas de Informao, ps-graduao no concluda em Banco de Dados e Business Intelligence. Analista e Desenvolvedor de Sistemas, em tecnologia .NET e Genexus. Atua a mais de 10 anos no mercado.

Adriano Luciano Candido


adriano.luciano@gmail.com) Ps-graduado no MBA em Gesto Projetos da FGV, certificado nos ttulos da Microsoft: MCPD, MCDBA, MCSD.NET, MCSD, MCAD, MCSA. Instrutor oficial Microsoft e consultor especializado em tecnologia Microsoft e em Gesto de Projeto, atuando a mais de 10 anos no mercado de tecnologia. Palestrante e professor de ps-graduao em diversas universidades de So Paulo. Mantm o site www.adrianoluciano.net

Codificando.net e-magazine
Junho / Julho 2009|

www.codificando.net

21

e-magazine

Envio de email utilizando o C#


Exemplo de como enviar e-mail utilizando ASP.NET de forma simples.
Por: Fernanda Sallai

Criando um projeto Criaremos um projeto usando o Visual Studio clicando no menu File (arquivo) New (novo) Project (projeto), em Project Types (Tipos de projeto) escolha Visual C# e em Templates escolha ASP.NET Web Application, digite o nome e o local que salvar sua aplicao e clique em OK. Para ver detalhes observe a Figura 1.

servidor de envio), o nome e a senha do usurio do email remetente dentro das tags <system.net><mailSettings>. O contedo includo no Web.Config segue na Listagem1. <?xml version="1.0"?> <configuration> <appSettings> <add key="emailRemetente" value="emaildoremetente"/ > </appSettings> <system.net> <mailSettings> <network host="smtpdoemaildor emetente" port="25" userName="emaildoremeten te" password="senhadoemaildo remetente"/> </mailSettings> </system.net> </configuration>
Listagem 1. Contedo do web.config

Codificando.net e-magazine

Figura 1. Criando um projeto web

Incluindo no Web.Config Criaremos uma chave que ir conter o email do remetente. Essa chave ter um nome e um valor e ser inserida dentro da tag <appSettings>. Incluiremos tambm o smtp (que o

Criando a classe de email Para isso clique no cone do projeto em Solution Explorer com o boto direito do

www.codificando.net

Junho / Julho 2009|

22

Envio de email utilizando o C#

e-magazine

mouse, escolha Add Class. Nomeie seu novo arquivo e clique em add. Os detalhes dessa operao podem ser vistos nas Figuras 2 e 3 e seu contedo na Listagem 2.

email /// </summary> /// <param name="emailDestinatario">Email do destinatrio</param> /// <param name="assunto">Assunto do email</param> /// <param name="mensagem">mensagem do email</param> public static void EnviarEmail(string emailDestinatario, string assunto, string mensagem) { //Cria o objeto que envia o e-mail SmtpClient client = new SmtpClient(); //Cria o endereo de email do remetente MailAddress de = new MailAddress (ConfigurationSettings.AppSettings ["emailRemetente"]); //Cria o endereo de email do destinatrio > MailAddress para = new MailAddress (emailDestinatario);

Figura 2. Adicionando uma classe ao projeto

Codificando.net e-magazine

Figura 3. Criando uma classe

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Configuration; using System.Net.Mail; namespace Email { public class email { /// <summary> /// Mtodo para enviar

MailMessage mensagem = new MailMessage(de, para); mensagem.IsBodyHtml = true; //Assunto do email mensagem.Subject = assunto; //Contedo do email mensagem.Body = mensagem; try {
Junho / Julho 2009|

www.codificando.net

23

Envio de email utilizando o C#

e-magazine

//Envia o email client.Send (mensagem); } catch { } } } }


Listagem 2. Contedo da classe email Figura 5. Criando um Web Form

Criando pgina para o envio do email Para isso clique no cone do projeto em Solution Explorer com o boto direito do mouse, escolha Add New Item. Na janela que se abre selecione o cone Web Form. Nomeie seu novo arquivo e clique em add. Os detalhes dessa operao podem ser vistos nas Figuras 4 e 5.

A pgina ter o modelo conforme a Figura 6 e seu contedo segue nas listagens 3 e 4.

Figura 6. Criando uma pgina

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Email.aspx.cs" Inherits="Email.Email" %> <!DOCTYPE html PUBLIC "-// W3C//DTD XHTML 1.0 Transitional//EN" "http:// www.w3.org/TR/xhtml1/DTD/ xhtml1-transitional.dtd"> <html xmlns="http:// www.w3.org/1999/xhtml" > <head id="Head1" runat="server"> <title>Enviando email</ title> </head> <body> <form id="frmAspNet" runat="server"> www.codificando.net
Junho / Julho 2009|

Codificando.net e-magazine

Figura 4. Adicionando um novo tem ao projeto

24

Envio de email utilizando o C#

e-magazine

<div> <table style="width: 33%;"> <tr> <td>Email do Destinatrio:</td> <td> <asp:TextBox ID="txtEmail" runat="server" Width="200px"></asp:TextBox> </td> </tr> <tr> <td>Assunto:</td> <td> <asp:TextBox ID="txtAssunto" runat="server" Width="200px"></asp:TextBox> </td> </tr> <tr> <td>Mensagem:</td> <td> <asp:TextBox ID="txtMensagem" TextMode="MultiLine" runat="server" Width="200px"></asp:TextBox> </td> </tr> <tr> <td colspan="2" align="right"> <asp:Button ID="Button1" runat="server" Text="Enviar" /> </td> </tr> </table> <asp:Label ID="lblErro" runat="server"></asp:Label> </div> </form> </body> </html>
Listagem 3. Contedo da pgina aspx

tem.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace Email { public partial class Email : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { if (CamposPreenchidos()) { //Chama o mtodo de envio de email. //Passando o endereo do email destinatrio, assunto e mensagem. email.EnviarEmail (txtEmail.Text, txtAssunto.Text, txtMensagem.Text); //Exibindo mensagem de confirmao de envio do email. Page.RegisterStartupScript ("envio", "<script type=\"text/javascript\">alert ('Email enviado com sucesso.');</script>"); } }
Junho / Julho 2009|

Codificando.net e-magazine

using System; using Sys-

www.codificando.net

25

Envio de email utilizando o C#

e-magazine

obrigatrio."; /// <summary> /// Mtodo para verificar se todos os campos esto preenchidos /// </summary> /// <param name="emailDestinatario">Email do destinatrio</param> /// <param name="assunto">Assunto do email</param> /// <param name="mensagem">mensagem do email</param> private bool CamposPreenchidos() { bool preenchidos = true; if (txtEmail.Text == string.Empty) { lblErro.Text = "O email do destinatrio obrigatrio."; preenchidos = false; return (preenchidos); } else { if (! IsValidEmail(txtEmail.Text)) { lblErro.Text = "O formato do e -mail invlido."; preenchidos = false; return (preenchidos); } } if (txtAssunto.Text == string.Empty) { lblErro.Text = "O assunto do email preenchidos = false; return (preenchidos); } if (txtMensagem.Text == string.Empty) { lblErro.Text = "A mensagem do email obrigatria."; preenchidos = false; return (preenchidos); } return (preenchidos); } /// <summary> /// Mtodo para verificar se o formato do email est correto /// </summary> /// <param name="enderecoEmail">Endereco do email</param> /// <returns>Verdadeiro ou Falso</ returns> private bool IsValidEmail(string enderecoEmail) { return System.Text.RegularExpressions.Re gex.IsMatch(enderecoEmail, ("(?<user>[^@]+)@(? <host>.+)")); } } }
Listagem 4. Contedo da pgina aspx.cs

Codificando.net e-magazine

Um ponto interessante que foi colocado, a Expresso Regular validando o formato do e-mail. Esta expresso est

www.codificando.net

Junho / Julho 2009|

26

Envio de email utilizando o C#

e-magazine

definida no mtodo IsValidEmail que recebe por parmetro o enderecoEmail e retorna um TRUE ou FALSE de acordo com a validao da regra. Este tipo de recurso bastante interessante para validar informaes que podem ser variadas, mas que seguem uma estrutura bem definida de como as informaes se apresentam para formar um todo. A confirmao do envio de email pode ser visto na Figura 7.

Fernanda Sallai
(fernanda.sallai@codificando.net) cursa o 4 ano de Sistemas de Informao na FICS Faculdades Integradas Campos Salles, reside em So Paulo SP, atualmente realiza estgio na empresa Pakua IT Systems no desenvolvimento de aplicaes web e escreve periodicamente em seu blog www.fernandasallai.com.

Figura 7. Enviando o email

Concluso Esse artigo abordou de forma prtica e simples o envio de email atravs da linguagem C#. Espero que tenham gostado do artigo e fiquem a vontade para fazer suas implementaes como, por exemplo, incluir um anexo. Obrigada e at a prxima.

Codificando.net e-magazine
Junho / Julho 2009|

www.codificando.net

27

e-magazine

SILVER SPRITE Jogos desenvolvidos em XNA para a Internet


Demonstrao de como se faz para se animar uma sprite no XNA.
Por: Felipe Aron

Introduo Para aqueles que ainda no conhecem, XNA um Framework gratuito da Microsoft para o desenvolvimento de jogos, que utiliza o Visual Studio (Professional/Express) como IDE de desenvolvimento. Por meio do XNA, possvel desenvolver jogos 2D/3D para PC, X-Box 360 e Zune (Ipod da Microsoft com sistema operacional Windows). Para maiores informaes acesse o site http:// oficial do XNA: msdn.microsoft.com/pt-br/xna/default (en-us).aspx. Num desenvolvimento de um jogo de duas dimenses (2D), o uso de Sprites so de suma importncia. Um Sprite uma imagem de algo que ser usado no cenrio do jogo, seja uma imagem de um personagem, de uma pedra, de uma rvore, uma imagem de fundo (background), etc. Por meio de tcnicas, possvel utilizar vrios Sprites para criar uma animao, por exemplo, a de um personagem andando pelo cenrio, trocando o movimento das pernas conforme ele se move. Hoje em dia, quando falamos sobre desenvolvimento de jogos para Internet, logo pensamos em Flash, que uma

ferramenta fantstica para criao de web-sites e tambm para desenvolvimento de jogos. Porm, ela tem limitaes e, em razo disso, nem sempre possibilita que o usurio atinja facilmente um resultado esperado. Com a utilizao do Framework XNA, o trabalho de desenvolvimento de um jogo se torna simples pelo fato do XNA j possuir muitos mtodos e recursos prontos, cabendo somente ao usurio valer-se da criatividade e de linhas de cdigo para criar jogos interessantes. A Microsoft criou o SilverLight (http:// silverlight.net/), uma ferramenta que lembra o famoso Flash, cujos recursos vo muito alm deste, podendo criar pginas ricas, mais interativas, mais leves, pois inmeros recursos so processados pelo cliente e no diretamente no servidor. Uma das grandes vantagens dessa ferramenta a utilizao do Stream sem haver comprometimento do servidor, por exemplo, a visualizao de vdeos sendo transmitidos ao vivo para milhares de pessoas. Aps o surgimento do SilverLight, apesar de muitos questionaram a possibilidade de criar jogos valendo-se dessa tecnologia, cabe ressaltar que e
Junho / Julho 2009|

Codificando.net e-magazine

www.codificando.net

28

SILVER SPRITE Jogos desenvolvidos em XNA

e-magazine

possvel sim, porm necessrio um conhecimento da ferramenta (SilverLight, XAML, etc.). Pelo fato de cada vez mais pessoas usarem o Framework XNA para o desenvolvimento de jogos para plataforma Windows, Zune e X-Box, pensando em unir SilverLight com XNA, surgiu, ento, uma nova API, o SilverSprite... O que SilverSprite? SilverSprite uma API capaz de integrar seus jogos criados com o Framework XNA e aplicaes Web ricas por meio do SilverLight, os quais podem ser jogados em qualquer programa de navegao na Internet (Browser). Esse projeto foi criado por Bill Reiss e est sendo mantido por Jos Antonio Farias (http:// www.sharpgames.net) e Kevin Wolf. Para usar essa API, voc no ir precisar ter plenos conhecimentos em SilverLight e o melhor: voc praticamente no ir precisar de quase nenhum cdigo do seu jogo. Por enquanto, o SilverSprite est disponvel apenas para jogos de duas dimenses (2D), o que j uma evoluo em termos de tecnologia e mercado. Para mais detalhes sobre o projeto SilverSprite acesse: http:// www.codeplex.com/silversprite. Para exemplificar o uso dessa API (SilverSprite), iremos criar um simples projeto em XNA, e depois, utilizando-se um projeto em SilverLight, iremos executar nosso game por meio de uma pgina web.

Criando um exemplo simples em XNA Vamos criar um projeto simples em XNA para plataforma Windows, na qual iremos colocar um Sprite (figura) e fazer com que ele se movimente pela tela. No entraremos em detalhes sobre os conceitos de desenvolvimento, pois o enfoque fazer o projeto XNA ser executado com o SilverSprite. Exemplificando inicie um novo projeto,

Figura 1

Codificando.net e-magazine

carregue um sprite com uma Textura 2D qualquer e faa o Sprite se movimentar na tela. Veja o resultado do jogo em execuo: Salve o projeto feito em XNA. Agora vamos criar a aplicao SilverLight. Adicionando nosso exemplo numa aplicao SilverLight Antes de criarmos o aplicativo usando o SilverLight, primeiro baixe as DLLs da API SilverSprite no link: http:// www.codeplex.com/silversprite. Aps baixar o arquivo, extraia numa pasta qualquer de sua escolha. Entretanto,
Junho / Julho 2009|

www.codificando.net

29

SILVER SPRITE Jogos desenvolvidos em XNA

e-magazine

caso no tenha instalado, ainda, o SilverLight 2, voc poder baix-lo em: http://silverlight.net. Em seguida, inicie um novo projeto SilverLight Application no Visual Studio e escolha um Web Application para rodar o site. Uma vez feito isso, ser carregado a tela principal do projeto SilverLight.

game. Criada a pasta, clique com o boto direito sobre ela, selecione a opo Add Existing Item... Encontre os fontes do seu game, selecione tudo (Ctrl+A) e clique em Add. Voc ir perceber que foram adicionados ao projeto todos os fontes do jogo, como mostra a imagem abaixo:

Figura 2

Aps esse procedimento, a primeira coisa que precisamos fazer adicionar a referncia DLL do SilverSprite. Para isso, clique com o boto direito sobre a aplicao SilverLight no Solution Explorer, e escolha a opo Add Reference.... Ao abrir a tela, escolha a aba Browse e encontre a pasta que descompactamos as DLLs do SilverSprite. Selecione a DLL SilverArcade.SilverSprite.dll. Agora que fizemos a referncia ao SilverSprite, vamos adicionar nosso game na aplicao. Primeiro adicione uma nova pasta chamada Game na aplicao. Clique com o boto direito, selecione Add New Folder. Nesta pasta iremos adicionar os fontes do nosso

Figura 3

Codificando.net e-magazine

Aqui existe um DETALHE IMPORTANTE. Quando criamos um projeto XNA, o mtodo principal que executa o jogo est no arquivo Program.cs. Porm, nesse caso quem ir chamar o jogo ser o Page.xaml, portando no iremos precisar do Program.cs. Assim sendo, exclua esse arquivo do projeto. J falando sobre a Page.xaml, vamos, ento, adicionar o cdigo que far a chamada no nosso game. Precisamos adicionar duas informaes: uma o
Junho / Julho 2009|

www.codificando.net

30

SILVER SPRITE Jogos desenvolvidos em XNA


NameSpace, utilizado no projeto XNA, e outra, a chamada da classe principal do game, que est no arquivo Game1.cs. Altere o cdigo XMAL do Pagem.xaml, de modo que ele fique igual ao descrito abaixo:
<UserControl x:Class="SilverlightGameApplication .Page" xmlns="http:// schemas.microsoft.com/winfx/2006/ xaml/presentation" xmlns:x="http:// schemas.microsoft.com/winfx/2006/ xaml" Width="400" Height="300" xmlns:game="clrnamespace:GameSilverSprite"> <Grid x:Name="LayoutRoot" Background="White"> <game:Game1 x:Name="game"/> </Grid> </UserControl>

e-magazine

do XNA, porm ir ocorrer erro ao tentar carregar a Textura. Aqui existe outro pequeno Detalhe pelo fato de o SilverSprite utilizar o arquivo .xnb correspondendo a compilado no projeto XNA. Ento precisamos adicionar esse arquivo e carreg-lo. Clique com o boto direito sobre a aplicao SilverLight e, da mesma forma que criamos a pasta Game, crie a pasta Content. Nesta pasta iremos adicionar o arquivo .xnb compilado para carregar nossa textura. Criada a pasta, adicione o arquivo .xnb da textura localizado na pasta do projeto XNA por meio do caminho: ./ bin/x86/Debug/Content/ <Nome_Do_Arquivo>.xnb. No meu exemplo o arquivo se chama MainStone.xnb. Feito isso, o resultado dever ficar igual imagem abaixo:

A primeira informao xmlns:game="clrnamespace:GameSilverSprite" diz respeito ao Namespace utilizado pelo jogo XNA, e a segunda, <game:Game1 x:Name="game"/> ao arquivo que se refere classe principal do jogo. Se voc der um Build na aplicao, ver que aparecer uma mensagem de erro dizendo que no foi encontrado o Namespace XNA. a que entra o SilverSprite. Assim, vamos trocar toda referncia Microsoft.Xna.Framework por SilverArcade.SilverSprite. Para tanto, abra o Game1.cs e faa essa alterao. Feita as alteraes, execute a aplicao utilizando a tecla F5. Em seguida, ir abrir o Brownser carregando o graphics

Codificando.net e-magazine

Figura 4

Agora falta pouco pra fazer nosso game rodar. Como disse, esse um Detalhe
Junho / Julho 2009|

www.codificando.net

31

SILVER SPRITE Jogos desenvolvidos em XNA

e-magazine

do SilverSprite, pois ele se utiliza do arquivo compilado .xnb. Alm disso, precisamos alterar a propriedade Build Action desse arquivo para CONTENT para que ele seja compilado junto com o projeto SilverLight. Assim, selecione o arquivo, j em Properties, e altere sua propriedade como dito acima. Para finalizar, abra o Game1.cs no mtodo LoadContent(), que o qual carrega a textura [No inicia com maiscula? Acima voc iniciou], mude o mtodo Content.Load<> para Content.LoadXnb<>, como mostra o cdigo abaixo:
protected override void LoadContent() { spriteBatch = new SpriteBatch(GraphicsDevice); // TODO: use this.Content to load your game content here ball = Content.LoadXnb<Texture2D> ("MainStone"); position = new Vector2 (0, 0); }

Figura 5

Essa foi apenas uma introduo da utilizao do SilverSprite. Ele um projeto recm-chegado no mercado, porm podemos perceber que essa API, sem dvida, promete. Espero que tenham gostado. Entre no site oficial do projeto e obtenha mais detalhes sobre essa API. Estou sua disposio, caso queira entrar em contato: falecom@felipearon.com.br. O cdigo fonte desse tutorial pode ser encontrado em meu web-site: http:// www.felipearon.com.br/downloads/zip/ silversprite.zip. Felipe Aron
Bacharelado em Sistemas de Informao. Colaborador do portal ActiveDelphi, DevMedia e Codificando.NET. Lider do grupo XNA-Br, ministrando aulas gratuitas sobre desenvolvimento de jogos utilizando tecnologia .NET. Experincia em anlise e programao de sistemas em diversas linguagens e banco de dados. Site pessoal: www.felipearon.com.br .

Codificando.net e-magazine

Feito isso, s compilar o projeto e executar. O Brownser ir abrir e carregar o nosso game. Veja a imagem abaixo:

www.codificando.net

Junho / Julho 2009|

32

e-magazine

Visual Studio Team System e Projeto Rosrio


Introduo a conceitos relativos ao .NET Framework, e ao Visual Studio, destacando o projeto Rosrio.
Por: Alan Santos / Gustavo Henrique Dornelas / Felipe Augusto da Costa Marques

Introduo Este artigo introduz conceitos relativos ao .NET Framework, ao ambiente de desenvolvimento de software Visual Studio, enfatizando de maneira genrica, suas principais caractersticas, pontos fortes e fracos, e destacando, o projeto Rosrio, cujo objetivo integrar a plataforma, toda a base para planejamento, desenho, arquitetura, gerenciamento do clico de vida de um sistema, tecnologias e conceito em torno do .NET Framework. Para implementao de uma metodologia de ciclo de vida personalizada no Visual Studio, necessrio somente definir um modelo de processo para a mesma e us-la para criar um projeto de equipe. A configurao, a execuo, o monitoramento e o relatrio so manipulados automaticamente pelas ferramentas do VSTS, conforme elas entendem os esquemas do modelo de processo. Ambientes de Desenvolvimento Um ambiente de desenvolvimento ou IDE (Integrated Development Environment Ambiente de

Desenvolvimento Integrado) um software que rene caractersticas e ferramentas de apoio ao desenvolvimento de software com o objetivo de agilizar este processo. Geralmente os IDE facilitam a tcnica de RAD (Rapid Application Development Desenvolvimento Rpido de Aplicaes), que visa maior produtividade dos desenvolvedores. Dentre os IDE existentes, foi analisado o Microsoft Visual Studio. 1.1 Introduo ao .NET Framework

Codificando.net e-magazine

O .Net Framework um componente integrado Windows que suporta a execuo e desenvolvimento de uma nova gerao de aplicaes e XML webservices, possibilitando uma interao pessoal e integrada com a Internet atravs de dispositivos inteligentes. Segundo a documentao, o .NET Framework foi projetado com o seguintes objetivos: Prover um ambiente consistente de programao orientado a objetos de modo que o cdigo do objeto seja armazenado e executado localmente, mas pode ser armazenado na internet e executado remotamente.
Junho / Julho 2009|

www.codificando.net

33

Visual Studio Team System e Projeto Rosrio

e-magazine

Prover um ambiente de execuo de cdigo que minimiza o desenvolvimento de software e conflitos de verso. Prover um ambiente de execuo de cdigo que promove execuo segura de cdigo inclusive cdigo criado por fontes desconhecidas. Prover um ambiente de execuo de cdigo que elimine os problemas de desempenho gerados por linguagens de script ou ambientes interpretados. Aproveitar o conhecimento do programador em diferentes tipos e aplicaes, como aplicaes Windows ou Web. Construir toda a comunicao em padres reconhecidos pela indstria para que o .NET Framework possa se integrar com qualquer tipo de cdigo. [LOTAR, 2007].

rapidamente software utilizando as mais recentes tecnologias Microsoft. Alm de ser uma excelente ferramenta para os desenvolvedores, o Visual Studio traz um conjunto de produtos voltados para testes, banco de dados, arquitetura e design de software. O Visual Studio aumenta a produtividade do desenvolvedor, mas, alm disso, traz grandes melhorias para apoiar na qualidade, previsibilidade e controle do processo de desenvolvimento de software por meio de metodologia e ferramentas especficas para todos os envolvidos no processo. O Visual Studio torna realidade viso da Microsoft de permitir que os desenvolvedores e equipes de desenvolvimento criem aplicaes conectadas com experincias atrativas de usurios do Windows, Microsoft Office, dispositivos mveis e a Web. [TURTSCHI, 2002] 1.2.1 Casos de sucesso no Mundo A Xerox (http://www.xerox.com) conseguiu diminuir o tempo de desenvolvimento de suas aplicaes e os custos em at 50%, aumentando a escalabilidade em at 500%. Os analistas da Xerox desenvolvem aplicaes para fornecer aos seus clientes o melhor servio possvel. Quando precisaram de uma ferramenta mais escalvel, a Xerox passou a desenvolver aplicaes utilizando o Microsoft Visual Studio 2008. As criaes dos relatrios na Xerox, levaram metade do tempo e dinheiro
Junho / Julho 2009|

Codificando.net e-magazine

1.2 Visual Studio .NET

O Visual Studio .NET um ambiente de desenvolvimento completo. Os componentes permanecem iguais independentemente da linguagem, o que facilita bastante mudar de projeto e linguagem e ter os mesmos recursos no mesmo lugar. O Visual Studio oferece inovadoras ferramentas que possibilitam aos desenvolvedores e demais participantes do processo de desenvolvimento criar

www.codificando.net

34

Visual Studio Team System e Projeto Rosrio

e-magazine

quando se comparado com uma soluo baseada em Flash. Agora a Xerox conseguiu criar grficos excelentes e desta forma conseguiu aumentar drasticamente a produtividade interna e a eficincia de seus servios. O San Diego Zo (http:// www.sandiegozoo.org) aumenta e melhora as operaes de visitas anualmente, cerca de seis milhes de pessoas visitam o San Diego Zoo. Com mais de 200 exposies ativas no zoolgico, os visitantes passaram a ficar confusos e sem saber como planejar o seu passeio no Zoolgico. Os lderes do zoolgico queriam dar aos visitantes uma viso melhor e recolher dados preciosos sobre os padres e preferncias dos visitantes. Para suprir essas necessidades o jardim zoolgico desenvolveu o iZoofari, usando o Microsoft Visual Studio 2008 Professional Edition. O iZoofari uma ferramenta online que possibilita um planejamento completo e fornece uma anlise de dados e relatrios. 1.2.2 Casos de sucesso no Brasil

acima da mdia a partir do uso da ferramenta. O resultado positivo fruto de um trabalho srio, de condies e pessoas preparadas. Mas essas marcas no seriam atingidas sem o uso das solues da Microsoft", explica Pablo Coelho, diretor da Braslia Solues Inteligentes. J a Ampsoft, que desenvolve solues de negcios para seguradoras, automatizou sua fbrica de software com o Visual Studio 2008. Todos os profissionais envolvidos nos processos de desenvolvimento e homologao de novas verses dos projetos ganharam produtividade e qualidade", diz Letcia Banffy, gerente da Ampsoft. A Diebold Procomp, fornecedora de solues de automao bancria, melhorou a gesto dos ciclos de desenvolvimento e reduziu em 50% os gastos com licenciamento com a utilizao do Visual Studio 2008. Alm de contar com uma plataforma de desenvolvimento muito mais poderosa e completa, obtivemos uma economia no licenciamento considervel", destaca Sidney Rodrigues, gerente de infraestrutura de T.I. da Diebold Procomp. Mais detalhes dos trs cases podem ser obtidos por meio do acesso aos links abaixo: Braslia Solues Inteligentes http://www.microsoft.com/brasil/ Casos/interna.aspx?id=500 Ampsoft http://www.microsoft.com/brasil/ Casos/interna.aspx?id=503 Procomp http://www.microsoft.com/brasil/

Codificando.net e-magazine

A verso 2008 do Visual Studio, lanada no ms de dezembro, j amplamente utilizada por empresas nacionais. A Braslia Solues Inteligentes, a Ampsoft e a Diebold Procomp so alguns dos exemplos de companhias que utilizam essa soluo. A Braslia, empresa fabricante de software atingiu produtividade 32%

www.codificando.net

Junho / Julho 2009|

35

Visual Studio Team System e Projeto Rosrio

e-magazine

Casos/interna.aspx?id=496 1.2.3 Benefcio para os clientes Em outra iniciativa voltada a beneficiar os clientes que j utilizam o Visual Studio Team System 2008, a Microsoft tambm divulgou que o Visual Studio Team System 2010 ir unificar a verso para administradores de database e desenvolvedores. At o lanamento da nova verso, os clientes atuais que possuem as edies com Software Assurance (SA) do Visual Studio 2008 Development ou Visual Studio 2008 Database recebero gratuitamente os seguintes produtos a partir de 1 de outubro de 2008: - Visual Studio 2008 Development Edition; - Visual Studio 2008 Database Edition; Visual Studio 2005 para desenvolvedores de software; - Visual Studio 2005 para profissionais de Database. 1.2.4 Sobre a Microsoft Brasil Fundada em 1989, a Microsoft Brasil gera localmente oportunidades diretas na rea de tecnologia para mais de 18 mil empresas e 495 mil profissionais. Nos ltimos cinco anos, a empresa investiu mais de R$ 85 milhes em projetos sociais, levando tecnologia a escolas, universidades, ONGs e comunidades carentes. uma das 103 subsidirias da Microsoft Corporation, fundada em 1975, empresa lder mundial no fornecimento de software, servios e solues em tecnologia da informao. Com um modelo baseado

em inovao, a Microsoft investe no desenvolvimento e integrao de tecnologias que capacitam pessoas e empresas a atingirem seu potencial pleno.

Saiba mais no: http://www.microsoft.com/ latam/presspass/brasil/default.mspx. 2.5 A implementao do Visual Studio O Visual Studio Team System - VSTS permite gerar diariamente builds. Estes fazem parte de um processo conhecido como Integrao Contnua. Integrar continuamente significa garantir que todo o cdigo hospedado no controle de verso estar funcionando quando for requisitado. Essa necessidade surgiu a partir do momento que diversos desenvolvedores comearam a trabalhar paralelamente no mesmo projeto. possvel definir que uma build ser executada a cada check-in, semanalmente, a cada intervalo de tempo ou ainda diariamente. Toda esta configurao visual no VSTS e pode ser feita rapidamente nas opes da build. Alm do mais, no existe problema ao agendar duas ou mais builds para um mesmo horrio, pois o servidor do VSTS consegue gerenciar todas as requisies. O VSTS possui funcionalidades que permitem o rastreamento de bugs. A nica certeza que temos sobre bugs no desenvolvimento de um software que eles iro existir. Cabe a ns gerenci-los de maneira eficiente e corrigi-los o quanto antes. Para resolver este problema, o VSTS possui um recurso chamado Work Item, ou em portugus, Item de Trabalho. Cada item de trabalho possui um tipo, sendo que um dos tipos disponveis o Bug.

Codificando.net e-magazine

www.codificando.net

Junho / Julho 2009|

36

Visual Studio Team System e Projeto Rosrio

e-magazine

Portanto para registrar e gerenciar bugs, voc pode e deve usar os itens de trabalho. A figura 01 apresenta o potencial oferecido pelo Visual Studio Team System.

2.6 A importncia para o clico de desenvolvimento O mercado hoje j est consolidado com os padres disponveis que j oferecem ampla segurana do ponto de vista de tecnologia chegando ao momento de usar a tecnologia para facilitar no somente a codificao, mas incorporar todo o ciclo de desenvolvimento, pois s assim ser possvel alcanar um produto com qualidade no prazo e no tempo exigido pelo mercado desviando dos j conhecidos problemas ligados aos casos de insucesso na entrega de projetos de software to relatados em diversas pesquisas realizadas pelo Standish Group (www.standishgroup.com) sobre o histrico dos projetos ao longo dos ltimos 10 anos. Com foco nessa grande demanda do mercado pela profissionalizao do ciclo de desenvolvimento que desde 2005 a Microsoft passou a investir no mercado de Application Lifecycle Management (ALM), com o lanamento da plataforma de Visual Studio Team System (VSTS). Com o modelo de gesto para o ciclo de desenvolvimento oferecido pelo Visual Studio Team System que trabalha em conjunto com a sua metodologia de desenvolvimento, possvel obter de forma integrada, grandes resultados que so muito difceis de alcanar de forma manual devido aos diversos desafios no dia a dia desenvolvendo software. Para ter resultados numa plataforma de ALM necessrio projetar a implantao pensando em todo o ciclo de desenvolvimento do seu projeto para que
Junho / Julho 2009|

Figura 01 Visualizao do Visual Studio Team System

A figura apresenta uma estrutura dividida em algumas camadas que poderamos separar conforme as seguintes vises: Ferramentas que atuam no cliente (Gerente de projeto, Arquiteto, Desenvolvedor, DBA Administrador de Banco de Dados, Testador). Ferramentas que atual no servidor (Portal, Comunicao, Relatrios, Controle de verso). Metodologia. Ferramentas de terceiros complementam a soluo que

Codificando.net e-magazine

www.codificando.net

37

Visual Studio Team System e Projeto Rosrio

e-magazine

possa usar a plataforma de forma estratgica e tenha total aderncia com as caractersticas do seu projeto. O VSTS oferece um modelo slido para os mais variados tamanhos de projetos permitindo criar uma personalizao para atender clientes pequenos, mdios e grandes, respeitando as diferenas de cada cliente. Hoje em dia, independente do tamanho da empresa, sendo ela pequena ou mdia ou grande em algum momento j deve ter sido levantada a bandeira da terceirizao dos projetos de desenvolvimento ou parte deles. Existem cenrios em clientes que possuem 09 fornecedores para desenvolvimento e o que poderia ser de imediato uma grande facilidade acaba necessitando de uma srie de critrios para o devido acompanhamento. Com a plataforma de Visual Studio Team System voc tem mecanismos eficientes para gerenciar os fornecedores externos fazendo com eles sigam os padres de desenvolvimento do seu projeto permitindo acompanhar sua qualidade e todas as entregas. 2.7 Principais vantagens e desvantagens do Visual Studio

1.

2.

3. 4.

5.

6.

7.

Aumento da produtividade e melhores resultados em menos tempo; Criao de solues dinmicas baseadas no Windows, na Web, Dispositivos Mveis e no Office; Comunicao mais efetiva entre a equipe de software; Garantia de qualidade antes e durante todo o processo de desenvolvimento; O nmero de solues menor, se comparado a Java, mas so garantidos por um nico fabricante e se integram de maneira transparente; Vrias linguagens de programao podem ser usadas no desenvolvimento; O .Net Framework distribudo em conjunto com o Sistema Operacional Windows; Integrao com COM, COM+, DCOM, alm da recente tecnologia Silverlight;

Desvantagens do Visual Studio:

Codificando.net e-magazine

1. 2.

3.

Nmero menor de solues pblicas e gratuitas, se comparado a Java; Mudana de verso na plataforma tem causado dores de cabea por falta de compatibilidade; Pouco cdigo aberto;

A identificao de vantagens e desvantagens se torna um assunto abrangente em abordar uma tecnologia especfica sem a comparao da mesma com outra, em contrapartida, alguns aspectos so enfatizados: Vantagens do Visual Studio:

3. Projeto Rosrio 3.1 Microsoft Visual Studio Team System codinome "Rosario"

Alguns dos principais cenrios e recursos dessa verso incluiro:

www.codificando.net

Junho / Julho 2009|

38

Visual Studio Team System e Projeto Rosrio

e-magazine

Gerenciamento e priorizao combinados de projetos de TI por meio da integrao com o Microsoft Project Server; Gerenciamento de vrios projetos para um balanceamento de carga de recursos proativo de acordo com as prioridades do negcio; Rastreamento completo (incluindo itens de trabalho hierrquicos) para controlar os produtos de um projeto em relao aos requisitos dos negcios e capacidade de conduzir uma anlise de rpido impacto das alteraes propostas; Mtricas e painis abrangentes para uma visibilidade compartilhada no status do projeto e progresso em relao aos produtos; Novos recursos eficientes para permitir que desenvolvedores e testadores rapidamente identifiquem, comuniquem, priorizem, diagnostiquem e resolvam bugs; Gerenciamento de caso de teste integrado para criar, organizar e gerenciar casos de teste nas equipes de desenvolvimento e teste; Automao de teste e orientao para ajudar os desenvolvedores e testadores a se concentrarem em testes no nvel comercial, em vez de tarefas repetitivas, manuais; Mtrica de qualidade para uma deciso de aprovar ou no a verso com relao a se um aplicativo est pronto para produo e foi totalmente testado segundo os requisitos comerciais; Rpida integrao de equipes

remotas, distribudas, desconectadas e terceirizadas no processo de desenvolvimento; Fcil personalizao de processo e orientao da Microsoft e de parceiros para corresponder maneira como a qual sua equipe trabalha Suporte integrado para criar pacotes de instalao usando a tecnologia XML do Windows Installer; Aprimoramentos na administrao de vrios servidores, na criao e no controle da origem.

3.2 Projeto Microsoft revela nova verso do Visual Studio e da ferramenta .Net Framework Companhia anuncia novidades para simplificar o gerenciamento do ciclo de desenvolvimento de software, revela detalhes das novas verses do Visual Studio 2010 e do .Net Framework 4.0. A Microsoft apresenta algumas das novidades que faro parte da prxima gerao do Visual Studio 2010 e .Net Framework 4.0. Dessa forma, a companhia segue com o compromisso de oferecer a melhor experincia para os desenvolvedores acompanharem as tendncias de mercado, como computao na nuvem (cloud computing), e disponibilizar uma soluo segura e confivel para o desenvolvimento de aplicativos para as plataformas mais atuais. Alm do foco no desenvolvedor, a Microsoft consolida seu comprometimento em entregar para as empresas uma plataforma completa para todo o ciclo de vida de desenvolvimento de aplicativos por meio do ALM (Application Lifecycle Management). O Visual Studio 2010, cujo
Junho / Julho 2009|

Codificando.net e-magazine

www.codificando.net

39

Visual Studio Team System e Projeto Rosrio


codinome Rosrio, oferecer uma soluo nica que atende todas as pessoas envolvidas no processo de desenvolvimento de uma aplicao, retirando muitas das barreiras que evitam a integrao entre equipes e diferentes tecnologias. O objetivo entregar para nossos clientes uma soluo capaz de apoiar todos os envolvidos no processo de desenvolvimento de uma aplicao desde a anlise de requisitos e arquitetura at a homologao, instalao e manuteno. Isso considerando que essa plataforma interopervel com outras tecnologias usadas para desenvolvimento de software do mercado., destacou Carlos Zimmermann, gerente de produtos para desenvolvimento da Microsoft Brasil. 3.2.1 Democratizando o Gerenciamento de Ciclo de Vida de Aplicativos Atualmente, grande parte do desenvolvimento de aplicativos est disperso ou dependente de diversas reas nas empresas. Isso gera diversos desafios que podem impactar em perda de produtividade, controle e previsibilidade nos ciclos de desenvolvimento de um software. Com o Visual Studio 2010, a Microsoft dar um passo frente na oferta de uma soluo avanada que apoiar a equipe envolvida no processo de desenvolvimento para colaborar de forma efetiva e com alta qualidade. Essa oferta inclui novos recursos que possibilitam que todos os colaboradores da equipe de software participem do ciclo de vida do produto.

e-magazine

Arquitetos, analistas de sistemas, desenvolvedores, testadores e administradores de database (DBAs) entre outros, tero ferramentas especficas para trabalharem de forma integrada e produtiva. Entre os destaques da nova verso esto: Ferramentas de modelagem - O Visual Studio Team System Architecture Edition fornecer um novo conjunto de ferramentas UML (Unified Modeling Language) na nova verso. Estas ferramentas, que permitem aos desenvolvedores visualizarem os produtos de seu trabalho em diagramas padronizados, ajudaro a preencher a lacuna entre modelos de alto nvel e o cdigo da aplicao, enfatizando os benefcios do uso de UML e solues DSL (Digital Subscriber Line), voltadas transmisso digital de dados. Adicionalmente, a edio architecture fornecer ricas ferramentas que permitiro aos clientes entender melhor seus sistemas atuais, fornecendo capacidade de visualizar e integrar a infra-estrutura atual facilmente com novos sistemas na camada de modelagem. Maior eficincia por todo o ciclo de testes - A Microsoft investiu significativamente nos recursos de testes do Visual Studio 2010 e simplificou as ferramentas necessrias para a integrao de testes por todo seu ciclo de vida de desenvolvimento. Ferramentas de testes generalistas poderosas e fceis de usar que suportam planejamento de testes e gerenciamento de casos de

Codificando.net e-magazine

www.codificando.net

Junho / Julho 2009|

40

Visual Studio Team System e Projeto Rosrio

e-magazine

teste, assim como ferramentas avanadas para testes manuais faro parte do Visual Studio Team System 2010. Melhorias significativas nos recursos de colaborao - A Microsoft tambm investiu nos recursos e na escalabilidade do Team Foundation Server (TFS), incluindo aprimoramentos que permitem s equipes configurarem e adotarem qualquer forma de processo de desenvolvimento. As equipes podero rastrear o trabalho com mais facilidade. No sistema de gerenciamento de cdigo fonte, o TFS oferece ferramentas de visualizao para o rastreamento de alteraes em desvios e no conjunto de produo. O Visual Studio 2010 tambm passar a incluir conjuntos baseados no fluxo de trabalho que detectam erros antes desses afetarem o restante da equipe ou, pior ainda, ingressar na produo. Por fim, os administradores contaro com uma implantao e gerenciamento de TFS significativamente mais simples.

um desses sistemas e fornece uma soluo atraente para automao e gerenciamento de metodologia. O VSTS implementa uma metodologia usando modelos de processos. Voc pode "personalizar" modelos de processo prontos para atender a seus requisitos de metodologia. Contudo, existem algumas funcionalidades, como agregao de relatrio, que voc no obtm apenas com a "personalizao". Para obter isso, voc pode "estender" o VSTS usando pontos extensveis. O VSTS uma soluo completa para qualificar qualquer time de desenvolvimento de software. Os recursos que ele oferece para desenvolvedores, testadores, gerentes, etc, so excelentes para a criao de qualquer projeto. E o mais importante: tudo em um nico conjunto de ferramentas trabalhando de maneira integrada e inteligente para facilitar as tarefas do dia-a-dia.

Alan Santos
Bacharel em Comunicao Social pela UNI-BH. Formao Superior em Gerncia de Redes pela UNA, Especialista em Gesto Estratgica da Informao pela UFMG, Especializando em Engenharia de Software e Governana de T.I pela Universidade FUMEC. Trabalhando atualmente como Superintendente de Gesto em Informtica na Defensoria Pblica do Estado de Minas Gerais.

Codificando.net e-magazine

Concluso Existem diversos conjuntos de metodologias para diferentes tipos de ciclos de vida de desenvolvimento de software. Para implementar essas metodologias com eficincia e consistncia, importante ter as ferramentas do ciclo de vida que automatizam os processos e artefatos das metodologias. O Microsoft VSTS

Gustavo Henrique Dornelas de Deus


Bacharel em Sistemas de Informao, Especializando em Engenharia de Software e Governana de T.I. pela Universidade FUMEC, exerce o cargo de Analista Desenvolvedor .NET.

Felipe Augusto da Costa Marques


Bacharel em Cincia da Computao, Especializando em Engenharia de Software e Governana de T.I. pela Universidade FUMEC, exerce o cargo de Analista de Sistemas

www.codificando.net

Junho / Julho 2009|

41

e-magazine

Pequenas dicas que podem fazer a diferena


Por: Alexandre Tarifa
Trabalhei durante alguns anos desenvolvendo sistemas Windows forms ou asp/asp.net mas sempre com um foco de sistema ou seja, algo que roda dentro de uma rede sobre domnio, com requisitos mnimos (principalmente navegador), etc etc etc. A dois anos me aventuro trabalhando com internet, ou seja, o mesmo ASP.NET! certo? Totalmente errado . O ASP.NET sim o mesmo, porm o estilo de desenvolvimento muda completamente, onde existe um cenrio muito mais amplo e crtico. Seguem algumas dicas: Pginas com variaes ou no, porm que no tenha variaes personalizadas por usurio, use e abuse do OUTPUT CACHE o resultado sensacional, a performance aumenta muito e muito simples de se trabalhar. Ferramentas de anlise utilize ferramentas que exibam passo a passo o carregamento das pginas e entenda as dependncias e quem pode estar prejudicando o Site Web Optimization Tool (http:// www.websiteoptimization.com/services/ analyze/) Exibe a lista de objetos carregados e sugere muitas coisas que podem ser melhoradas simplesmente sensacional alm de oferecer um contedo fortssimo de boas prticas de web em geral. carregamento. Firebug Complemento do Firefox que exibe cada objeto carregado.

Figura 1

www.codificando.net

Junho / Julho 2009 Abril / Maio 2009 | |

42

e-magazine
Compactao de arquivos utilize bibliotecas de compactao de arquivos ou o prprio IIS. Recomendo a MbCompression (www.codeplex.com/MbCompression) que atravs de um httpHandle compacta arquivos com muita eficincia (indico mais para css e js). HTML e CSS- olho muito aberto para a qualidade do HTML e do CSS, valide no site do W3C (validator.w3.org).

www.codificando.net

Junho / Julho 2009 Abril / Maio 2009 | |

43