Plataforma .

Net
Amauri Soares, Claudio Roberto Silva, Diego Castro Neves Unimontes ± Universidade Estadual de Montes Claros DCC ± Departamento de Ciência da Computação Cx. Postal 126 ± CEP 39.401-089 Montes Claros (MG) CCET ± Centro de Ciências Exatas e Tecnológicas Cx. Postal 126 ± CEP 39.401-089 Montes Claros (MG)

Amauras2@yahoo.com.br , claudioemais@gamil.com ,

Abstract. This article describes the .NET platform, an initiative of the company to Microsoft Java Virtual Machine. He stands as a new paradigm in software development that this perspective can be made in any language that .NET be able to interpret it. With the use of this component becomes more evident as a way to facilitate processes as a component can be easily used in any programming language because the CLR that it isthe execution environment for all components. Resumo. Este artigo descreve a plataforma .NET, uma iniciativa da empresa Microsoft a máquina virtual Java. Ele se coloca como um novo paradigma no desenvolvimento de softwares que nesta ótica podem ser feitos em qualquer linguagem que o .NET será capaz de interpretá-lo. Com isto o uso de componentes torna-se mais evidente como uma maneira de facilitar processos visto que um componente pode ser facilmente usado em qualquer linguagem de programação graças a CLR que ela é o ambiente de execução para todos os componentes.

1. Introdução - O que é .NET?
.NET (.NET Framework) é uma criação da Microsoft que visa criar uma plataforma única para desenvolvimento e execução de sistemas e aplicações diversas de forma que qualquer código gerado em .NET possa ser executado em qualquer sistema operacional. Neste caso ele se assemelha muito a idéia da maquina virtual Java que é um ambiente multi-plataforma de forma que os códigos saiam em .NET e possam ³rodar´ em qualquer outro ambiente. Atualmente a plataforma .NET é capaz de interagir com mais de 20 linguagens diferentes comportando-se como uma única linguagem. Isto é possível porque está sobre uma CLR (Common Languagem Runtime) ou ainda ambiente de execução independente de limguagem. Ela interagir com um conjunto de bibliotecas unificadas (Framework). O .NET é uma plataforma de software que conecta informações, sistemas, pessoas e dispositivos, ela une uma grande variedade de tecnologias de uso pessoal e de negócios variados, de celulares a servidores corporativos, permitindo acesso a informações importantes, onde e sempre que forem necessárias.

de forma que seja relativamente fácil criar aplicativos de negócios que funcionem bem a partir do Microsoft Transaction Server (MTS). dispositivos. COM+ (Component Object Model) ± Breve Historico COM+ é um complemento para Component Object Model (COM).NET possui um namespace chamado EnterpriseServices que permite que os serviços do COM+ sejam utilizados pelos componentes CLS. tipo do computador ou dispositivo móvel que esteja sendo usado independentemente da sua linguagem de criação. os componentes CLS não estão diretamente em código de máquina mas sim em um código intermediário. Assim sendo. IL.NET. Esta plataforma é vista como uma resposta da empresa Microsoft como o Enterprise JavaBeans (EJB). não existe um servidor de aplicações exclusivo para componentes CLS. Assim sendo todos os componentes CLS rodam dentro de um ambiente controlado. no Windows NT ou sistema superior. De fato.De forma que o software ou aplicativo desenvolvido sobre esta plataforma independa de sistema operacional. No . o CLR. o CLS. Depois de algumas versões e várias correções de problemas identificados a Microsoft lançou o Microsoft Transaction Server ou COM+ 1. não se encarrega de questões de escalabilidade importantes para um servidor de aplicações. 2. computadores.NET é software e aplicativos estejam livres de vinculo com linguagem ou tecnologias de desenvolvimento.NET o formato de componentes passou a se chamar CLS e traz diversas vantagens sobre o formato dos componentes COM. transações e serviços conectam-se diretamente e trabalham em conjunto para fornecerem soluções mais amplas e ricas em detalhes. Ela dá suporte a alguns serviços como:  Registro de eventos . Esta plataforma propõe ser um modelo baseado em componentes que a partir de um conjunto de serviços do sistema este possa ser um modelo a ser utilizado pelos desenvolvedores. e inseri-los dentro do velho COM+ exatamente como temos feito com nossos componentes COM.0 e este seria integrado ao Windows 2000. Desta maneira. Posteriormente veio a ser chamado de Microsoft . o CLR. podemos construir nossos componentes no novo formato. Na sua criação ele propunha um ambiente em tempo de execução que forneceria todos os tipos de serviços uteis tais como herança entre linguagens e um controle de acesso em tempo de execução para que lidassem com a orientação a objetos. fazendo com que códigos gerados sobre uma linguagem sejam facilmente assimilidado e compreendido dentro da plataforma. Ao contrário dos componentes COM. A idéia fundamental por trás da plataforma . Mas o CLR apenas controla a execução do código IL. Mas o . que precisa ser executado por outro software.

recuperar o código original) idéia não muito quisto entre as empresas de desenvolvimento de software que tem como negócio a venda de softwares produzidos sob esta plataforma. 3.NET Framework rodar. ASMX (web service). o componente que o processou. Arquitetura . princípio também adotado em Java onde os programas desenvolvidos são compilados duas vezes. neste caso ele usa a primeira compilação como modelo para as demais. Uma na distribuição gerando os códigos ³bytecodes´ e a outra compilação ocorre na execução do programa.NET Framework. assim você sempre terá código nativo em qualquer plataforma que rode a . capaz de interpretar várias linguagens. Outro recurso é pré-compilar o código através de ferramentas especificas de maneira a não haver custo de compilação JIT durante a execução.NET A plataforma .  Interceptação de pedidos do sistema designado para efeito de garantia de segurança. DLL (bibliotecas de funções). ASPX (pagina web). E para diminuir os prejuízos gerados por este recurso (engenharia reversa) algumas empresas utilizam . Como exemplo podemos citar o caso de um web site desenvolvido em ASP. isto de acordo com o tipo de código gerado anteriormente. Enterprise Management Infrastructure (Infra-estrutura de gerenciamento empresarial). notifique outro para a continuidade de outro evento dependente deste resultado. Por esta arquitetura utilizar a MSIL que possibilita o uso de engenharia reversa (possibilidade de através de um código compilado.  Filas de solicitações recebidas de forma assíncrona para um determinado serviço. Sejam eles: y y y y EXE (arquivos executáveis. Desta forma um programa é escrito em qualquer uma das linguagens de programação suportadas e disponíveis para a plataforma e o código fonte gerado pelo programador é então compilado pela linguagem escolhida gerando outro código intermediário chamado de MSIL (Microsoft Intermediate Language). Quando o programa é chamado para execução este é novamente compilado pelo compilador JIT (Just in time).  Possibilidade da ocorrência de um evento.Net.NET é baseada em JIT (Just in time compiler) ³apenas um compilador´. quando este entra pela primeira vez em uma página JIT esta irá compilá-la nas outras vezes em que o programa for chamado novamente. Este código novo é gerado em um arquivo na linguagem Assembly (linguagem ao nível de máquina ± baixo nível) de acordo com o tipo do projeto em execução. Programas). Um compilador JIT será disponibilizado para cada plataforma na qual a .

um componente é composto de uma ou mais classes que descrevem objetos e métodos que podem ser executados. Além de sua auto-descrição.NET usem herança.NET.ferramentas que escondem.Arquitetura Framework . além disto. Com a adoção de uma linguagem de programação intermediária (IL) padronizada do CRL permite aos aplicativos .NET Framework. ou seja. No momento em que uma classe é instanciada.NET se pauta nos seus dois principais pilares: No seu conjunto de bibliotecas presentes no Framework e principalmente na C R (linguagem comum em tempo de execução). métodos e interfaces que usam a linguagem M Tudo para dificultar o uso da engenharia reversa. permite que uma classe escrita em uma linguagem derive de outra classe -base de outra linguagem de programação. Também torna se bastante fácil de distribuir os diferentes componentes de uma aplicação entre diferentes computadores em uma rede. . a forma de interpretação de várias linguagens sob um única plataforma. propicia herança de classes entre linguagens. há uma representação de como é a arquitetura do Framework. trocam nomes de vari veis.NET (COM+) funciona? A idéia da plataforma é o conceito de reusabilidade do código e isto se faz c om a adoção de componentes. A classe tem propriedades descritas em umainterface. Para tudo isto ocorra o . Coisa que a COM nã conseguia fazer por causa o das grandes diferenças de implementações e linguagens. Figura 1. que é um programa de bloco de construção que se auto descreve. O . outra aplicação pode ser desenvolvida através da reutilização de componentes já existentes sem a necessidade de compilar o aplicativo.NET 4. Na figura 1. esta cria um objeto que pode ser executado pelo computador. ou seja. Desta forma ele pode ser executado juntamente com outros componentes e cada um irá guardar as suas características e compreenderá as características dos outros componentes. Como o .

 Econo-JIT: Utilizado em Hand-Helds onde a memória é um recurso precioso. mas a capacidade da CLR se estende além de uma simples máquina virtual. de forma que esse código não precise ser recompilado quando houver uma nova invocação do mesmo método. A CLR é baseada em um padrão conhecido como Common Language Infrastructure (CLI).NET que esta sendo executada e o armazena no cache para uso posterior. Sendo assim. A CLR fornece também o just-in-time (JIT) compiler. a fim de prover o melhor aproveitamento destes ambientes. pelo simples fato que o código fonte que o programador digita é compilado gerando um código intermediário em uma linguagem chamada MSIL (Microsoft Intermediate Language). Esta ferramenta converte a Intermediate Language (IL) em código nativo. A CLR também tem a capacidade de se adaptar a ambientes multi-processados. Isso porque existem diferenças fundamentais entre estas 2 famílias. Por exemplo: A CLR se comporta de forma diferente no Windows 98 e Windows ME em relação ao Windows XP e Windows 2003. objetos. O CLR fornece diversas funções e serviços necessários para a execução de programas. a CLR é uma máquina virtual. A CLR é capaz de executar diferentes linguagens de programação. o que na verdade são arquivos vinculados dinamicamente a uma DLL. incluindo a compilação JIT (Just-In-Time).  Normal-JIT: Compila o código sob demanda e joga o código resultante em cache. capaz de ser executado pela CPU. tratamento de exceções.NET. ou seja.NET Framework gera IL. todo compilador que faz parte do .NET Framework é ele que fornece o ambiente de execução para todo o código do . O compilador JIT. imposição de segurança de tipos. Temos então um texto fonte de alto nível como entrada para um compilador que gera como saída uma linguagem intermediária também em alto nível. O código executado no CLR é chamado de código gerenciado.Quando se usa o . O CLR (Common Languagem Runtime) é centro do Microsoft . classes e seus métodos e dados são compilados em módulos binários executáveis.NET. gerenciamento de threads e segurança. Algumas vezes. Este novo código fonte gera um arquivo chamado "Assembly" e a depender do tipo de projeto ele pode gerar as . o compilador do C# gera IL. também conhecido como JITTER tem três tipos:  Pré-JIT: Compila de uma só vez todo o código da aplicação .NET Framework.NET Framework que fornece o contexto para que sejam executadas aplicações escritas em código gerenciado. alocação e gerenciamento de memória. o código é compilado sob demanda e a memória alocada que não esta em uso é liberada quando o dispositivo assim o requer. Ela é a língua franca do . A Common Language Runtime (CLR) é um componente do . que define um ambiente de execução independente do sistema operacional. A CLR entende internamente o seu próprio contexto e responde apropriadamente dependendo do sistema operacional em que se encontra. A IL é uma nova linguagem projetada para ser eficientemente convertida em código nativo em diferentes tipos de dispositivos. O compilador do Visual Basic gera IL.

como código COM. O código gerenciado usa a CAS (segurança de acesso do código) para impedir que os assemblies executem determinadas operações.NET pode reutilizar a IL compilada criada em qualquer linguagem . A CLR também define um sistema de tipos padrão para ser usado por todas as linguagens que a suportam. suporte a versões e coleta de objetos que não estão em uso (Garbage Collection). A IL é uma linguagem de nível mais baixo que o VB ou o C#.NET tem acesso ao . Isto significa que as linguagens do tipo CLR terão os integers e longs de mesmo tamanho. Gerenciado porque ele é controlado pelo CLR (Common Language Runtime) que fornece os seguintes serviços: integração entre linguagens.NET . ou qualquer outra combinação de linguagens criadas para a CLR. ela pode ser considerada uma remanescente da linguagem assembly.NET. Com o CLR instalado no Microsoft SQL Server (a chamada integração CLR). fazer engenharia reversa devido a ao fato da arquitetura . com o framework é possível também pré-compilar o código.DLL . é possível criar procedimentos armazenados. então podemos considerar de que todo código gerenciado é o mesmo para a CLR independente da linguagem de alto nível que é utilizada. Com o padrão . Toda linguagem . mas são padrões binários.seguintes extensões de arquivos: . Não esqueça que COM também tem um conjunto de tipos padrão. Você também pode derivar uma classe no C# de uma classe base escrita em VB . O código que não opera com o CLR é chamado de código não-gerenciado. Isto significa que com COM. Todas as linguagens são linguagens de primeiro nível. Todo código que é gerado na plataforma . desta vez pelo JIT (Just In Time Compiler).sem mais preocupações com BStrs e CStrs! Este sistema padrão de tipos abre as portas para uma poderosa interoperabilidade entre linguagens. tipos e agregações definidas pelo usuário no código gerenciado.ASPX ± página web . Por exemplo. No momento da execução do programa o código é novamente compilado. os programas são compilados 2 vezes.NET. todas. segurança. . mas em um nível um pouco mais alto de abstração.NET são idênticas.NET é chamado de código gerenciado. O SQL Server utiliza a CAS para ajudar a proteger o código gerenciado e evitar o comprometimento do sistema operacional ou do servidor de banco de dados.ASMX ± que é o Web Service . . Isto . De forma que todo o código anterior.NET utilizar a MSIL. Para os programadores mais antigos. Algumas linguagens são mais apropriadas para resolver determinados tipos de problemas.NET Framework Class Library. Isso não significa que as linguagens . gatilhos. é possível obter aumentos significativos de desempenho em alguns cenários. mesmo se estes componentes sejam escritos em linguagens diferentes. você pode passar uma referência de uma classe de um componente para outro. você tem interoperabilidade de linguagens em tempo de execução.EXE . ou seja. é código não-gerenciado. Além disso.NET são compiladas em IL e a CLR executa a IL. o mesmo tipo de string . Como o código gerenciado é compilado em código nativo antes da execução. . Qualquer desenvolvedor . você tem interoperabilidade entre linguagens em tempo de design. Se considerarmos que todas as linguagens encontradas no . e elas terão. funções.

de maneira que não pode utilizar os serviços do CLR.dll e servidor. passar uma referência para outro domínio de apli ativo. qualquer número de clientes gerenciados podem conter uma referência para os objetos COM que expõe interfaces INew e INewer. Que é parte de uma aplicação que aceita comandos de outros componentes. Temos um aplicação . . Por esta razão não podemos misturar código gerenciado e não -gerenciado numa mesma aplicação pois um . um proxy para o primeiro objeto será c usado. não reconhece o outro.NET (CLR). Na necessidade de chamar um código não gerenciado a um código gerenciado (integração) podemos citar um como exemplo. o Runtime-Callable Wrapper (RCW).dll. NET e não dá suporte ao framework . Figura 2 ± Funcionamento do proxy RCW Embora o RCW pareça ser um objeto comum para . A figura 2 mostra o esquema de como o RCW ultrapassa a fronteira existente entre o código gerenciado e o não -gerenciado. a sua principal função é empacotar as chamadas entre um cliente .porque o COM foi lançado antes de existir o .NET. modificaos e reenvia-os para outro componente.O tempo de execução mantém um único RCW por processo para cada objeto . O tempo de execução cria exatamente um RCW para cada objeto COM.NET e um objeto COM. independentemente do número de referências que existem sobre esse objeto. A solução para este problema de interação de códigos é usar um Proxy. Se você criar um RCW em um domínio de aplicativo e em seguida. Como mostra a ilustração da Figura 3. O código gerenciado não depende só do CLR. mas espera pelos outros componentes com os quais ele irá interagir.NET acessando dois componentes COM: cliente.

Especificamente. o wrapper converte a string para um tipo BSTR.2002). interfaces e funções são organizadas de maneira hierárquica. Todos os objetos. Um programa não precisa mais liberar explicitamente a memória que ele tenha reservado. o RCW fornece o empacotamento de argumentos de métodos e valores de retorno do método. O .NET Framework organiza a funcionalidade do sistema operacional por meio do espaço de nomes System. Outro ponto importante é que esta hierarquia evita que nomes de objetos e funções sejam iguais aos nomes usados pelo sistema operacional e com os nomes usados por outros .Cada RCW mantém um cache de ponteiros de interface sobre o objeto COM empacotado e libera sua referência sobre o objeto COM quando o RCW não é mais necessária. quando um cliente . usando um mecanismo chamado garbage collection (coleta de lixo).NET passa um tipo String.O tempo de execução executa a coleta de lixo no RCW. Tanto o cliente e o servidor de enviar e receber dados que lhes é familiar. O CLR detecta quando um programa não está mais usando ess memória e a recicla a automaticamente.NET propicia gerenciamento de memória automático. o tempo de execução cria tanto o objeto COM que está sendo chamado e um invólucro para esse objeto.Se o objeto COM retornar um BSTR para o chamador gerenciado. desta forma é mais fácil encontrar o que se deseja. como parte de um argumento para um objeto não gerenciado. O . O invólucro norma impõe regras internas de empacotamento. o chamador recebe uma String. (PLATT . sempre que o cliente e o servidor têm diferentes representações dos dados transmitidos entre eles.Figura 3 .Acessando objetos COM através do Runtime Callable Usando derivadas de metadados de uma biblioteca de tipo. Outros tipos exigem não nenhuma conversão.Por exemplo.

NET e o Microsoft Visual C#. da Microsoft. loops foreach. ela não dá suporte a matrizes. apresentando suporte abrangente para diversas tarefas complexas. o CLR verifica se o código é seguro. mas o código gerenciado tem suporte integrado para elas. Como por exemplo: o System. De foram que nenhuma memória que não tenha sido gravada previamente seja lida. ele não é uma linguagem de programação totalmente desenvolvida. Uma outra vantagem do uso do código gerenciado é a segurança de tipos ou a garantia de que o código acesse apenas os tipos de modos permitidos e bem definidos. Agora. Porém. Algumas dessas construções podem ser simuladas no Transact-SQL. de modo que é preciso fazer com que as ferramentas de desenvolvimento saibam como incluir todas as DLLs necessárias. como encapsulamento.NET Framework. O CLR também pode ajudar garantir que o código não manipule espaços de memória não gerenciada. O Microsoft Visual Basic . além de oferecerem recursos orientados a objeto. herança e polimorfismo. Com a funcionalidade que se encontra na Biblioteca do . A linguagem Transact-SQL é uma extensão da Microsoft ao padrão SQL-92 e adiciona melhorias e recursos que fazem dela uma linguagem de acesso e manipulação de dados eficiente. C# e outras. O código gerenciado é mais adequado que o Transact-SQL para cálculos e lógica de execução complicada.NET estão no espaço de nomes. Vantagens da integração CLR O Transact-SQL. Embora o Transact-SQL seja excelente no gerenciamento e no acesso a dados.NET.Console que contém todas as funções de entradas e saída de uma janela de console. Todas a funções e objetos do . Antes da execução do código gerenciado.NET Framework. incluindo o tratamento de cadeias de caracteres e expressões regulares.desenvolvedores. Por esta razão ele (system) é muito grande sendo necessário subdividi-lo em espaços menores e subordinados ao system. A integração CLR oferece a possibilidade de melhorar o desempenho. deslocamento de bit ou classes. esses recursos podem representar um motivo convincente para implementar determinada funcionalidade de banco de dados no código gerenciado. Ao trabalhar com grandes quantidades de código do servidor. 5. o código relacionado pode ser facilmente organizado em classes e namespaces (espaços de nomes). robusta. Dependendo do cenário. segura e exclusiva do SQL Server. você tem acesso a . permite aos desenvolvedores criar objetos de banco de dados utilizando linguagens como VB. principalmente para a manipulação e o acesso direto ao banco de dados.2002). A integração do SQL Server 2005 e o . isso permite organizar e manter seu código de forma mais fácil. coleções. O espaço de nomes System é implementado em várias DLLs separadas. (PLATT . foi projetado.

Algumas desvantagens do .Net. da mesma forma que se utiliza hoje o VBA (Visual Basic for Applications) para criar soluções para aplicativos Office e VBA.  WebServices: apesar dos WebServices se comportarem como objetos . ou quando desejar usar a BCL do . dispositivos. possibilita o desenvolvimento independente onde um mesmo componente pode ser usado em varias linguagens que são reconhecidas pela plataforma . Os WebServices fazem parte de uma ambiciosa estratégia da Microsoft. operações matemáticas avançadas. Nesta ótica de desenvolvimento proposto.INT.COM. 6. e os aplicativos do futuro deverão apenas "juntar" os vários WebServices.NET é fazer uma mudança de paradigma. Conclusão O principal foco do Microsoft .EXE  Compilação reversa: a IL é susceptível à compilação reversa. eles não são tecnicamente a mesma coisa e trabalham com o ASP. Além disto.NET. use o Transact±SQL quando o código executar o acesso a dados principalmente com pouca ou nenhuma lógica de procedimento eescolha o código gerenciado para funções que utilizam intensamente a CPU onde os procedimentos apresentam lógica complexa. baseada no uso cada vez maior de componentes multi-linguagens. Fica a dúvida então em relação à compatibilidade com os componentes ActiveX já existentes.NET. gatilho ou função definida pelo usuário. criptografia e outros. A BCL (Base Class Library) inclui classes que fornecem funcionalidade para manipulação de cadeias de caracteres. transações e serviços que se conectam diretamente e trabalham em conjunto na busca de soluções mais amplas e ricas. A Microsoft gostaria de ver todos os tipos de empresa hospedando WebServices. E com esta portabilidade traz se o beneficio da redução de tempo e custo do desenvolvimento. o conceito é promissor. sendo carregado pelo runtime.milhares de classes e rotinas pré-criadas. acesso a arquivos.  Aplicativos Legados: a arquitetura subjacente do Visual Studio. 7. pois um . Essa possibilidade tem gerado muitas dúvidas em relação à segurança geral da Framework .net não é COM.NET  Performance: o conceito da compilação gerando linguagem IL com o JIT carregando a aplicação é muito semelhante à compilação Cobol gerando código intermediário . passando de um ambiente de aplicativos e dispositivos isolados para uma gama muito maior de computadores.NET Framework. E neste caso é mais lento que um. Contudo.NET Framework. tem-se a tendência de diminuir problemas de implementação. Elas podem ser acessadas facilmente de qualquer procedimento armazenado. onde a linguagem já não é tão determinante. Isto em um cenário de uso cada vez maior de componentes sempre focando na possibilidade de reuso destes. Em resumo. mas só o tempo dirá se a empresa alcançou seu intuito de ver os WebServices utilizados em larga escala. não .

tudo isto associado a idéia de reusabilidade de todos os seus componentes. Afinal de contas ³ninguém deseja reinventar a roda´.NET Framework é um forte concorrente a máquina virtual Java propondo a adoção de uma plataforma multi-linguagens com gerenciamento de memória. mas conta com o aval de uma empresa reconhecidamente mestre em fazer apostas bem sucedidas. ou tem algum de nos que não tenha usado o ambiente gráfico da família Windows?.componente deve ser amplamente testado antes de disponibilizá-lo. com o passar do tempo e com o uso massificado desta plataforma.NET é capaz. O . Esperemos para ver do que o . . segurança do código e facilidade de implementação.NET embora em desenvolvimento tem um amplo caminho a percorrer. O . descobriremos se ele cumpri ao que tem prometido aos desenvolvedores de softwares.

aspx> .devmedia.html> .php> 20/03/2011.acesso em 23/03/2011. Nascimento.br/dotnet/introddotnet.NET Framework disponível em: <http://www. .acesso em: 25/03/2011.aspx> acesso em: 20/03/2011.NET ± Iniciando ± editora: Makron Books ± São Paulo ± SP. Platt.scribd.NET Framework Conceptual Overview ± disponível em: <http://msdn.eti.sirmacstronger.aspx > .microsoft.com/net/> .acesso em 27/03/2011. Rafael O que é .Net FrameWork SDK ± disponível em :< http://pt. Guimarães.acesso em 27/03/2011.com. David.disponível em: < http://www. .devaspnet.br/articles/viewcomp.com.br/artigo/309/Voc%C3%AA-temcomponentes-COM-e-quer-aproveit%C3%A1los-em-NET.Referências: S.com.microsoft. Breno & Júnior. . acesso em Gontijo.br/artigos/notframenet.com/en-us/library/zw4w595w. Renato ± Você Tem componentes COM e quer aproveita-los em .Curso de Introdução a Plataforma .com/enus/library/8bwh56xe.microsoft.(2002) ± Microsoft .NET? ± disponivel em: < http://www.com. Framework DotNet ± disponível em: <http://www.br/colunas2/coluna2602. Cláudio .NET? disponível em: < http://www. Novidades do Transact-SQL ± disponível em:< http://www.acesso em: 29/03/2011 Introdução ao Framework DotNet e à Linguagem C# .aspx > .disponivel em: < http://msdn.asp?comp=7000&hl=> .com/doc/49344276/ApostiladotNET> .acesso em: 25/03/2011 Runtime Callable .linhadecodigo.acesso em: 20/03/2011.fromsoft.

Sign up to vote on this title
UsefulNot useful