Codificando Magazine 10a edicao [view full mode]

p.  1

Embed or link this publication

Description

Popular Pages


p. 1



[close]

p. 2

sumário 04 gerando boletos bancários edição 10 número 10 ano 03 2009 editores alexandre tarifa diego nogare emerson facunte sergio gonçalves revisÃo fernanda sallai giaccomo sabino montagem formataÇÃo milton carvalhaes editoraÇÃo e diagramaÇÃo 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 gavóglio veja nesta primeira parte como gerar boletos bancários utilizando asp.net por seiti yamashiro 09 .net sap connector 2.0 lendo as tabelas do sap com o .net sap connector 2.0 através 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 gavóglio 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 opinião sobre a revista caso tenha alguma critica sugestão ou elogio entre em contato caso tenha interesse em publicar um artigo na revista envie o título 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 rosário introdução a conceitos relativos ao .net framework e ao visual studio destacando o projeto rosário por alan santos gustavo henrique dornelas felipe augusto da costa marques produzido por www.codificando.net 03 editorial 42 .close

[close]

p. 3

edição 10 número 10 ano 03 2009 editorial depois do sucesso da edição 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 edição trazemos artigos bem interessantes sobre asp .net sql server c xna e até sap os autores de algumas das matérias desta edição são 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 geração de conteúdo 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

[close]

p. 4

e-magazine gerando boletos bancários parte i veja nesse artigo como gerar boletos bancários usando o asp.net por seiti yamashiro vamos primeiro entender do que é composto basicamente um boleto · · · · · · banco quem gerencia a transação 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 não pagar a responsabilidade de correr atrás é do cedente fig 1 boleto padrão itaú 1 2 3 4 5 6 7 8 a entidade que padroniza os boletos no brasil é a federação brasileira de bancos febraban É claro que o desenvolvedor deve conhecer mais que o básico caso queira gerar um boleto na figura 1 está o modelo do boleto do itaú mas note que ainda assim a descrição está resumida 9 10 nome do banco que pode conter também seu logotipo código do banco com seu respectivo dv local de pagamento data do documento que é quando ele foi gerado número do documento obrigatório para carteiras sem registro carteira não utilizado pelo itaú espécie use r para usar nossa moeda agência/código cedente no formato 1234/56789-7 e nosso número no formato 123/45678901-5 uso exclusivo do funcionário caixa instruções condições para recebimento dados sobre multas por atraso bancos autorizados etc junho julho 2009 codificando.net e-magazine www.codificando.net 4

[close]

p. 5

gerando boletos bancários e-magazine a duas listagens acima já ajudam o programador a saber quais dados ele precisa ter à mão para gerar um boleto bancário alguns itens do boleto deverão ser criados automaticamente pelo sistema a partir destes dados tais como a linha digitável e o código de barras uma excelente fonte de documentação se encontra em http www.phpboleto.com.br lá existem outros modelos disponíveis 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 são os dados a serem inseridos no boleto código 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 contém só o esqueleto nenhum campo dinâmico foi adicionado bom talvez a espécie que considerei ser sempre r ainda template pronto precisamos dos dados www.codificando.net junho julho 2009 5

[close]

p. 6

gerando boletos bancários cód 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 recém criada como fonte de dados data source é só ir para database fields database expert figura 3 fig 4 dados dinâmicos prontos para inserção 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 geração do boleto template pronto posso então criar uma classe encarregada de buscar os dados a template juntá-los e serví-los a classe não tem nada de mais e está preparada para funcionar em ambiente asp.net código 2 namespace portal.controles.boleto public enum banco itau public class boleto crystaldecisions.crystalreports engine.reportdocument rel public boletobanco banco httpserverutility server na caixa de diálogo que se abre é só escolher a classe recém criada ficam à disposição todas as propriedades necessárias para popular o boleto figura 4 codificando.net e-magazine www.codificando.net junho julho 2009 6

[close]

p. 7

gerando boletos bancários rel new crystaldecisions.crystalrepor ts.engine.reportdocument rel.load gettemplatefilepathbanco 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 gettemplatefilepathbanco banco httpserverutility server switch banco case banco.itau return server.mappath controles boleto/templateitau.rpt default throw new exception este tipo de boleto não foi implementado ainda cód 2 classe responsável pela geração 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 então criei uma página aspx contendo um botão vinculei um método ao evento onclick o corpo do método se encontra no código 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 indústria 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.adddays5 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 7

[close]

p. 8

gerando boletos bancários 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.baixaresponse dados cód 3 teste de geração de boleto e-magazine seiti yamashiro graduando em ciência da computação 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 além 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 método baixa um boleto em pdf será gerado e entregue ao usuário pelo navegador e agora agora que já temos a geração de um boleto dummy funcionando precisamos acertar os dados que o compõem existem regras para a linha digitável precisamos calcular alguns dígitos verificadores e ainda gerar a imagem correspondente ao código de barras isto fica para a parte ii aguardem codificando.net e-magazine junho julho 2009 www.codificando.net 8

[close]

p. 9

e-magazine lendo as tabelas do sap com o .net sap connector 2.0 através de rfc aprenda como ler tabelas do sap com o .net sap connector 2.0 por diego nogare introdução muitas empresas atualmente controlam todas suas atividades utilizando um dos erps mais famosos do mundo o sap este erp alemão possui muitos recursos já prontos para controlar as atividades da empresa estes recursos são chamados standard e são separados em módulos de atividades sd [sales and distribution fi [financial hr [human resources etc e é possível integrar todos dados destes módulos para uma comunicação ou tomada de decisão mais precisa as áreas de atuação do sap são muito bem desenhadas e definidas onde o pessoal da área funcional cujo trabalho é configurar o standard do sap não tem acesso às configurações dos servidores usuários acessos permissões e etc cuja a área responsável é basis que são os caras de infra e não desenvolvem nada na solução por sua vez existem customizações realizadas em transações z ou y que não são as standards são criadas para um processo bem específico de uma determinada regra de negócios do cliente cujo processo não pode ser implementado por uma configuração do standard elas podem estar dentro de uma exit do standard a grosso modo no meio do código do standard ou ser 100 z ou y ou seja um programa inteiro criado sem nenhuma referência ao código standard podendo ou não utilizar tabelas standard no desenvolvimento estas transações z ou y são criadas pelos desenvolvedores que são conhecidos como abap nosso trabalho enquanto desenvolvedor .net será em parceria com os abaps e os basis os abaps é que farão as rfcs remote function call ­ chamada de função externa que serão acessadas através do sap .net connector 2.0 que é homologado pela sap para trabalhar com o .net 1.1 ­ não existem atualizações do sap .net connector para outras versões do .net framework e a equipe de basis que nos passarão os dados para a montagem da string de conexão com o sap resumindo · funcional entende o processo codificando.net e-magazine www.codificando.net junho julho 2009 9

[close]

p. 10

lendo as tabelas do sap com o .net sap connector 2.0 e-magazine · · abap desenvolvimento basis infra-estrutura segurança para add new item esta tela figura 1 será aberta e então procure o ícone do sap connector proxy agora que já temos uma noção básica muito mas muito básica mesmo de como é a estrutura do sap vamos criar uma aplicação windows forms em c que fará a leitura de uma rfc do sap e colocará o retorno em um datatable a parti daí o céu é o limite a parte de abrir o visual studio e iniciar uma aplicação windows forms não será abordada neste momento pois existe muito material sobre isso na internet vou focar na criação da aplicação pra integrar com o sap então vamos começar a aplicação já nos pontos que são novidades para acessar o sap através do .net é necessário ter o sap .net connector 2.0 que é um conector do sap já instalado e só pode ser baixado através de usuário e senha válidos no site da sap geralmente as empresas que compram licenças de sap recebem este usuário após a instalação 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 serão conectadas através do .net e montará automaticamente as classes de acessos com suas respectivas properties métodos get e set entre outras coisas para utilizar este proxy será necessário adicionar um novo item ao projeto então vá até a solution explorer clique com o botão direito do mouse e aponte figura 1 adicionando o proxy ao projeto após a adição o item aparecerá no solution explorer neste exemplo foi adicionado na própria raiz do projeto mas ele pode ser adicionado dentro de alguma outra pasta para melhorar a organização 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 códigos 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

[close]

p. 11

lendo as tabelas do sap com o .net sap connector 2.0 que foram criadas pelos abaps lembra é necessário adicionar os dados do servidor do sap que serão fornecidos pelo pessoal de basis isso você também lembra né no server explorer para se poder visualizar as rfcs que estão liberadas pra acesso vá até o server explorer procure o item do sap que foi inserido após a instalação do sap .net connector 2.0 expanda a árvore do sap e clique com o botão direito no item application servers então adicione os dados appserverhost client password systemnumber e username acompanhe este passo na figura 3 e-magazine figura 4 rfcs que poderão ser utilizadas agora que as rfcs já estão 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 não 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 serão criados automaticamente permitindo o acesso à seus campos através 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 após este passo será possível expandir o application servers e visualizar o servidor que você adicionou terá o nome fornecido ao campo appserverhost ao expandir este item será necessário configurar o filtro das functions para aparecer as rfcs crie um novo filtro e coloque os dados para filtrar retorna todas que poderão ser utilizadas na aplicação 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 é possível ver as classes criadas classes exibidas na figura 6 www.codificando.net junho julho 2009 11

[close]

p. 12

lendo as tabelas do sap com o .net sap connector 2.0 e-magazine dr codigo linha.codca dr nome linha.descc dt.rows.adddr gridsap.datasource dt catch exception ex messagebox.show ex.message listagem 1 código 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 código do método acessarsap criado e chamado pelo método load do formulário acompanhe a listagem 1 onde os códigos deste método foram inseridos private void acessarsap try lendosap proxy new lendosap string de conexÃo bay2_n2rv_rpcamtable tabelasap new bay2_n2rv_rpcamtable a aplicação utilizará o proxy criado que foi chamado de lendosap para criar uma conexão com outro servidor sap não precisa ser necessariamente o mesmo utilizado no server explorer os itens que precisam ser inseridos na string de conexão 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 conexão após a informação de conexão do proxy será criada uma variável do tipo tabela da rfc bay2_n2rv_rpcamtable tabelasap new bay2_n2rv_rpcamtable esta variável criada será passada por parâmetro de referência para o método com o nome da rfc proxy.bay2_n2rv_rfc_pxp_camph ref tabelasap que está dentro do proxy como o parâmetro foi por referência a variável 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

[close]

p. 13

lendo as tabelas do sap com o .net sap connector 2.0 os dados lidos no sap através da rfc após estes pequenos passos vamos percorrer todos os itens da tabela que foi populada por referência utilizando um foreach para ver os dados que foram lidos do sap criamos um datagrid no formulário 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 ciência da computação pós-graduado em engenharia de computação com ênfase em desenvolvimento web com .net colaborador do portal linha de código e da revista sql magazine líder do grupo de usuários codificando .net líder dos microsoft student partners [msp de são paulo e microsoft most valuable professional [mvp em sql server possui certificações mcp e mcts em sql server 2005 é palestrante em eventos da microsoft codificando .net e ineta br mantém o site www.diegonogare.net figura 7 resultado do datagrid preenchido datagrid preenchido com isso concluímos com uma análise simples e prática de uma das soluções para ler as tabelas do sap através de rfc outros dois artigos serão publicados em breve o primeiro explicando como escrever nas tabelas do sap através 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

[close]

p. 14



[close]

p. 15

e-magazine microsoft sql server 2005 com clr net framework veja como implementar a integração do microsoft sql server 2005 com clr net framework por wagner roberto gavóglio adriano luciano candido definição frequentemente os desenvolvedores de sistemas precisam estender as funcionalidades de suas aplicações para que haja maior interação entre a aplicação que está sendo desenvolvida o ambiente do sistema operacional e o banco de dados tratando-se de manipulações 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 versões mais atuais do sql server e do visual studio ambos a partir das versões 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 integração do sql server com componentes clr do microsoft .net framework os desenvolvedores agora possuem um modelo rico de programação o poder das bibliotecas do .net framework melhorando a segurança e o desempenho em algumas situações quando comparado com o uso do tsql e racionalizando o desenvolvimento através de um ambiente padronizado do microsoft visual studio .net o clr common language runtime é o ambiente de execução do .net framework ele é responsável pelo gerenciamento da execução das aplicações assim todo o código que ele gerencia é chamado de código gerenciado e todo o código que é executado diretamente sobre o sistema operacional é chamado código não gerenciado no processo de compilação de código escrito em qualquer linguagem .net são gerados artefatos denominados assemblies dlls ou exes expressos em uma linguagem intermediária independente de hardware a microsoft intermediate language msil para permitir a execução de código .net no sql server foi realizada uma integração dos recursos do sql e do clr e então o sql server passou a oferecer como alternativa ao transact-sql e as extended stored procedures o sqlclr através da integração do clr com o sql server podemos escrever código c ou vb .net que pode ser codificando.net e-magazine www.codificando.net junho julho 2009 15

[close]

p. 16

microsoft sql server 2005 com clr net framework e-magazine usado no interior dos processos do sql server segue a seguir um exemplo prático passo a passo do uso do clr em sql server 2005 criando uma stored procedure com código 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 integração do clr no sql server 2005 1 2 3 4 habilitar a integração do clr escrever o código 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 integração 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 código 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 gráfico www.codificando.net junho julho 2009 16

[close]

p. 17

microsoft sql server 2005 com clr net framework e-magazine sql server devemos clicar com o botão direito em cima do projeto no solution explorer add stored procedure um arquivo é criado com a extensão vb ou cs se o projeto for em visual c .net figura 3 na próxima tela informe os detalhes para a conexão 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 também serão criadas e quando compilado o projeto estas por sua vez são mescladas merge em uma única classe chamada storedprocedures ao adicionar um novo objeto do tipo stored procedure será gerado o seguinte código abaixo codificando.net e-magazine figura 4 obs se a janela solicitando habilitar o debug na conexão surgir clique no botão sim para criar um novo objeto do tipo stored procedure dentro do projeto www.codificando.net junho julho 2009 17

[close]

p. 18

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.sendoreader ocnx.close context connection=true efetua a interação com o banco de dados ativo no momento do ambiente em que está sendo executado resgatando as informações e objetos necessários para a execução de um determinado comando no banco de dados sqlcontext.pipe.send resgata o canal de comunicação entre o objeto e a aplicação cliente que o chama ou seja é a comunicação entre o cliente e o servidor através do método send deste objeto você envia as informações para o cliente já a classe sqlcontext representa o contexto corrente e com isso elimina a necessidade de abrir outra conexão com a base de dados o nosso próximo passo é a geração 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 determinação 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 manutenção após a geração da estrutura vamos então ao código que mostrará realmente a construção da stored procedure o nosso cenário 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 código abaixo www.codificando.net 18

[close]

p. 19

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 após a definição 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 próximo passo será catalogar o assembly ou seja incluílo dentro do sql server em seguida mapearemos a stored procedure para os métodos que estão dentro do assembly que nesta altura já estará catalogado veremos como funciona o processo de catálogo de assemblies através da ddl no sql server método 1 e através do visual studio método 2 codificando.net e-magazine figura 8 método 1 use adventureworks go create assembly sqlclr from c sqlclr.dll with permission_set safe go no sql server 2005 temos agora uma nova instrução dentro da linguagem ddl que chamamos de create assembly esta instrução é utilizada para adicionarmos o assembly dentro da base de dados informamos um após 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

[close]

p. 20

microsoft sql server 2005 com clr net framework e-magazine nome qualquer que identificará o assembly e na cláusula from informarmos o path completo até o arquivo dll gerado pelo visual studio .net já a cláusula permission_set permite especificar o nível de segurança em que seu código será executado/acessado existem três opções de nível de segurança como veremos abaixo safe É o default neste modo o assembly somente poderá rodar no contexto local mas não através do sqlclient previne também o acesso através de recursos externos e de código não 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 usuário 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 também já catalogado através da tabela sys.assembly_files você pode recuperar os assemblies que estão 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 definição da stored procedure mapeando o método 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 método 2 além da forma apresentada acima para catalogar o assembly no sql server encontramos também no visual studio uma forma automática de catalogar o assembly e gerar a stored procedure no painel solution explorer do visual studio clique com o botão direito sobre o nome do projeto sqlclr e execute a opção deploy www.codificando.net junho julho 2009 20

[close]

p. 21

microsoft sql server 2005 com clr net framework após o registro do assembly e a geração da stored procedure efetuaremos o teste de execução da stored procedure use adventureworks go execute pr_list_person go perceba que a execução da stored procedure corresponde ao mesmo resultado obtido pelo comando select executado no início deste artigo conclusão neste artigo foram apresentadas algumas características da integração do sql server 2005 e clr vale lembrar que o cenário do teste apresentado foi baseado na criação de uma stored procedure em .net porém outros objetos funções triggers etc também 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 lógica complexa já a utilização do clr proporciona a utilização das tecnologias das linguagens de programação visual basic .net /visual c .net proporcionando uma melhor interação e operacionalidade entre as ferramentas wagner roberto gavóglio bacharel em sistemas de informação pós-graduação não concluída 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 é pós-graduado no mba em gestão projetos da fgv certificado nos títulos da microsoft mcpd mcdba mcsd.net mcsd mcad mcsa instrutor oficial microsoft e consultor especializado em tecnologia microsoft e em gestão de projeto atuando a mais de 10 anos no mercado de tecnologia palestrante e professor de pós-graduação em diversas universidades de são paulo mantém o site www.adrianoluciano.net codificando.net e-magazine junho julho 2009 www.codificando.net 21

[close]

p. 22

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 aplicação e clique em ok para ver detalhes observe a figura 1 servidor de envio o nome e a senha do usuário do email remetente dentro das tags

[close]

p. 23

envio de email utilizando o c e-magazine mouse escolha add class nomeie seu novo arquivo e clique em add os detalhes dessa operação podem ser vistos nas figuras 2 e 3 e seu conteúdo na listagem 2 email summary

[close]

p. 24

envio de email utilizando o c e-magazine envia o email client.send mensagem catch listagem 2 conteúdo da classe email figura 5 criando um web form criando página para o envio do email para isso clique no ícone do projeto em solution explorer com o botão 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 operação podem ser vistos nas figuras 4 e 5 a página terá o modelo conforme a figura 6 e seu conteúdo segue nas listagens 3 e 4 figura 6 criando uma página 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 enviando email title head

[close]

p. 25

envio de email utilizando o c e-magazine
email do destinatário td assunto td mensagem td

[close]

Comments

no comments yet