Daniel Tell Nilton Ramos Tales Fontoura da Rocha Microsoft .NET Microsoft .NET ( .NET Framework ou dotNet) é uma iniciativa da empresa Microsoft, que visa uma plataforma única para desenvolvimento e execução de sistemas e aplicações. Todo e qualquer código gerado para .NET, pode ser executado em qualquer dispositivo que possua um framework de tal plataforma (como o JAVA VM). Com idéia semelhante à plataforma Java, o programador deixa de escrever código para um sistema ou dispositivo específico, e passa a escrever para a plataforma .NET O .NET Framework é um componente essencial do Windows que oferece suporte à criação e execução da próxima geração de aplicativos e serviços XML da Web. Microsoft .NET A plataforma .NET baseia-se em um dos princípios utilizados na tecnologia Java (Just In Time Compiler - JIT), os programas desenvolvidos para ela são duplamente compilados, uma na distribuição (gerando "bytecodes") e outra na execução. Desenvolve-se um aplicativo em qualquer das mais de vinte linguagens de programação disponíveis para a plataforma, o código fonte gerado pelo programador é então compilado pela linguagem escolhida gerando um código intermediário em uma linguagem chamada MSIL (Microsoft Intermediate Language). APL, Boo, Clarion, COBOL, Component Pascal, C♯, C++, F♯, Eiffel, Forth, Fortran, Haskell, Java, JScript, J#, Lua, Mercury, Mondrian, Oberon, Object Pascal / Delphi Language, Oz, Pascal, Perl, PowerBuilder, PowerShell, Python, RPG, Ruby, Scheme, SmallTalk, Standard ML, Visual Basic. Microsoft .NET O .NET Framework foi criado para atender os seguintes objetivos Fornecer um ambiente de programação orientada a objetos consistente, tendo o código objeto armazenado e executado localmente, e a execução sendo localmente mas distribuído pela Internet ou executado remotamente. Fornecer um ambiente da execução de código para minimizar conflitos de implantação e versão de software. Fornecer um ambiente da execução que promova a execução segura do código, incluindo o código criado por terceiros. Fornecer um ambiente de execução que elimina problemas de desempenho de outros ambientes interpretados ou com scripts. Para tornar a experiência do desenvolvedor consistente, através dos diversos tipos de aplicativos, como aplicativos baseados no Windows e aplicativos baseados na Web. Para executar toda comunicação usando padrões da indústria, assim garantindo que códigos baseados no .NET Framework possam se integrar a qualquer outro código. Microsoft .NET O .NET possui dois componentes principais Common language runtime (CLR) Biblioteca de classes do .NET Framework. Microsoft .NET Common Language Runtime (CLR) A Common Language Runtime (CLR) é a base do .NET Framework. Pode-se pensar no Runtime como um agente que dirige o código no tempo de execução, fornecendo serviços principais como gerenciamento de memória, gerenciamento de segmento e arquitetura de comunicação remota, enquanto forçam, também, a segurança de tipos estritos e outras formas de precisão de código que promovem segurança e robustez. Na verdade, o conceito de gerenciamento de código é um princípio fundamental do Runtime. O código que visa o Runtime é conhecido como código gerenciado, enquanto o código que não visa o Runtime é conhecido como código não gerenciado. Microsoft .NET Common Language Runtime (CLR) Recursos do Common Language Runtime O Common Language Runtime gerencia Memória execução de segmento execução do código verificação de segurança do código compilação e outros serviços do sistema. Esses recursos são intrínsecos para o código gerenciado, que executa no Common Language Runtime Microsoft .NET Common Language Runtime (CLR) Segurança: os componentes gerenciados são concedidos variando os graus da confiança, dependendo do número de fatores que incluem sua origem (como a Internet, rede corporativa ou computador local). Isso significa que um componente gerenciado pode ou não ser capaz de executar operações de acesso de arquivo, operações de registro de acesso ou outras funções confidenciais, mesmo se ele estiver sendo usado no mesmo aplicativo ativo. O Runtime impõe segurança de acesso a código. Por exemplo, os usuários podem confiar que um executável, incorporado em uma página da Web, pode reproduzir uma animação na tela ou tocar uma música, mas não pode acessar seus dados pessoais, arquivos de sistema ou rede. Microsoft .NET Common Language Runtime (CLR) O Runtime também impõe robustez ao código ao implementar uma estrita infraestrutura Type-and-Code-Verification chamada Common Type System (CTS). O CTS assegura que todo código gerenciado é autodescritivo. Os diversos compiladores de linguagem da Microsoft e de terceiros geram códigos gerenciados que estão em conformidade com o CTS. Isso significa que códigos gerenciados podem consumir outros tipos gerenciados e instâncias, enquanto forçam estritamente a fidelidade tipo e segurança. Além disso, o ambiente gerenciado do Runtime elimina muitos problemas comuns de software. Por exemplo, o Runtime automaticamente manipula o layout de objetos e gerencia referências a eles, liberando-os quando não estão sendo usados. Este gerenciamento automático de memória resolve os dois erros mais comuns de aplicativos: Vazamentos Referências inválidas de memória. Microsoft .NET Common Language Runtime (CLR) “O Runtime foi criado para o ser um software do futuro, mas também suporta software atuais.” “O Runtime é projetado para melhorar o desempenho.” O Runtime pode ser hospedado por aplicativos de alto desempenho, do lado do servidor, como o Microsoft ® SQL Server ™ e Serviços de Informações da Internet (IIS). Esta infra-estrutura permite que você use código gerenciado para escrever sua lógica corporativa, enquanto aproveita o desempenho superior dos melhores servidores de empresa que suportam runtime hosting. Microsoft .NET Biblioteca de classes A Biblioteca de classes do .NET Framework é uma coleção de tipos reutilizáveis que se integram rigidamente com o Common Language Runtime. A biblioteca de classes é orientada a objetos, fornecendo tipos que seu próprio código gerenciado pode derivar. Isso não só torna os tipos do .NET Framework fáceis de usar, como também reduz o tempo associado ao aprendizado de novos recursos do .NET Framework. Além disso, componentes de terceiros podem se integrar totalmente com classes do .NET Framework. Pode-se usar para desenvolver aplicativos, desde os tradicionais por linha de comando (CLI) ou aplicativos por interface gráfica (GUI), até aplicativos com base nas inovações mais recentes fornecidas pelo ASP.NET, como Web Forms e Serviços XML da Web. Microsoft .NET Biblioteca de classes “As classes da coleção .NET Framework implementam um conjunto de interfaces que você pode usar para desenvolver suas próprias coleções de classes. Sua coleção de classes será perfeitamente combinada com as classes do .NET Framework.” Microsoft .NET Biblioteca de classes Os tipos do .NET permitem que você realize uma gama de tarefas comuns de programação, incluindo tarefas como gerenciamento de seqüência de caracteres, coleta de dados, conectividade do banco de dados e acesso a arquivos. Além dessas tarefas comuns, a biblioteca de classes inclui tipos que oferecem suporte a uma variedade de cenários especializados de desenvolvimento. Por exemplor, pode-se usar o .NET Framework para desenvolver os seguintes tipos de aplicativos e serviços: Aplicativos de console. Aplicativos Windows GUI (Windows Forms). Aplicativos Windows Presentation Foundation (WPF) Aplicativos ASP.NET. Serviços da Web. Serviços do Windows. Aplicativos orientados para serviços usando Windows Communication Foundation (WCF). Aplicativos habilitados para fluxo de trabalho usando Windows Workflow Foundation (WF). Microsoft .NET Relacionamento do CLR e da biblioteca de classes para seus aplicativos e para o sistema geral. Projeto Mono O projeto Mono tem como objetivo desenvolver uma versão código livre da plataforma .Net para o sistema operacional Linux. O projeto consiste de três elementos críticos: um compilador para a linguagem de programação C#, a máquina virtual (CLI) e uma biblioteca de classes (class library). Máquina Virtual: CLI A CLI é uma máquina virtual que contém um carregador (loader) de classes (carrega as classes que um programa usa para executar sua funcionalidade), um compilador JIT (just-in-time), que compila o programa na sua primeira utilização gerando um código para a CPU nativa) e um ambiente de coleta de lixo (garbage collection), que gerencia o uso da memória do computador. A CLI tem a mesma função que a Java Virtual Machine (JVM) tem na linguagem Java. A CLI é o componente que irá permitir que programas escritos em C# sejam executados em sistemas operacionais não-Windows, como o Linux. Versões .Net Visual Studio 2002 / .NET Framework 1.0 Visual Studio 2003 / .NET Framework 1.1 Visual Studio 2005 / .NET Framework 2.0 .NET Framework 3.0 (2006) Visual Studio 2008 / .NET Framework 3.5 Visual Studio 2010 / .NET Framework 4.0 Exemplo de código C# .Net // Um programa "Olá, Mundo!" em C# class Ola { static void Main() { System.Console.WriteLine("Olá, Mundo!"); } } Microsoft .NET Bibliografia http://msdn.microsoft.com/pt-br http://pt.wikipedia.org/wiki/Microsoft_.NET http://www.timaster.com.br http://www.mono-project.com