Fundamentos da plataforma .NET André Menegassi O que é o .NET Framework? • .NET é uma plataforma de software para desenvolvimento de aplicações que conecta informações, sistemas, pessoas e dispositivos através de tecnologias de uso pessoal, de negócios, de telefonia celular a servidores corporativos, permitindo assim, o acesso rápido a informações importantes onde elas forem necessárias. • Permite desenvolver soluções/aplicativos como: – – – – – – – – Aplicativos Web Aplicativos Windows Aplicativos para Servidores Aplicativos Smart Client Aplicativos de Console Aplicativos de Banco de Dados Serviços Windows (aplicativos que rodam como serviços) Web Services e muito mais O que é o .NET Framework? • Toda e qualquer aplicação gerada em .NET, pode ser executada em qualquer dispositivo ou plataforma que possua o .NET Framework. • O .NET Framework implementa uma máquina virtual. • Máquina virtual: Abstrair a necessidade do desenvolvedor de interagir com o sistema operacional oferecendo um rico conjunto de ferramentas e bibliotecas de objetos que permitem alta produtividade no desenvolvimento de sistemas. • O instalador da plataforma para o sistema operacional Windows pode ser baixado no site da Microsoft, e é gratuito. – http://msdn.microsoft.com/en-us/netframework/default.aspx • Mono-Project (www.mono-project.com): versão do .NET Framework 4.0 para ambientes: • .NET Compact Framework para dispositivos que utilizam Windows Mobile. Evolução do .NET Framework 2002 2003 2005 2006 2008 2010 Lançamento do Framework 1.0 Lançamento do Framework 1.1 Lançamento do Framework 2.0 Lançamento do Framework 3.0 Lançamento do Framework 3.5 Lançamento do Framework 4.0 Visual Studio .NET 2002 Visual Studio .NET 2003 Visual Studio .NET 2005 Visual Studio .NET 2005 Visual Studio .NET 2008 Visual Studio .NET 2010 WebMatrix WebMatrix Opções gratuitas de ferramenta de desenvolvimento da própria Microsoft (http://www.microsoft.com/express/default.aspx). Novos recursos para interface Windows (WPF) Linq Project A IDE (mapeamento reconstruída objeto-relacional) WPF. Novo sistema de comunicação (WCF) para aplicações distribuídas Incorporação MSASP.NET AJAX ao Framework Grande Evolução Pequenas no desenvolvimento melhorias de tradicional de software. Consideráveis melhorias de acesso a dados (ADO.NET 2.0) Esse primeiro release foi pouco conhecido e utilizado. Team Foundation Server (TFS: aplicação de metodologias de gerência de projeto ao desenvolvimento MS-ASP.NET apoiado pelo Visual AJAX (biblioteca separada do Studio.NET.) Framework) XNA Game Studio SP1: Integração total com AJAX Control ToolKit foi em Arquitetura do .NET Framework Arquitetura do .NET Framework Arquitetura do .NET Framework • O CLR é um ambiente de tempo de execução (runtime) que realiza tarefas, tais como: execução do programa, gerenciamento de memória (coleta de lixo), segurança, tratamento de erro, controle de versão e suporte de instalação. Realiza a interface entre a aplicação e o sistema operacional. O código que é executado nesse ambiente de runtime é chamado de Código Gerenciado (“Managed Code”), enquanto aquele que é executado fora é chamado de Código Não Gerenciado (“Unmanaged Code”). • A Base Classe Library (BCL) é um conjunto de classes que o .NET disponibiliza para todas as linguagens que rodam sob o .NET Framework. Essa base encapsula várias funcionalidades que tornam o trabalho do desenvolvedor muito mais fácil e qualquer linguagem do Framework pode utilizar. – A BCL é organizada em namespaces. – Namespaces são grupos de classes relacionadas Arquitetura do .NET Framework • O .NET Framework foi desenvolvido para ser compatível com diversas linguagens de programação. • LPs suportadas: C#, VB.NET, C++, J#, JScript, Perl, Python, Fortran, Cobol, • e outras. Uma LP para ser compatível com o .NET Framework precisa atender a CLS e CTS. • Common Language Specification (CLS): Define os padrões e regras mínimas que o compilador precisa estar em conformidade. • Common Type Specification (CTS): Garante compatibilidade entre os componentes .NET. – Um integer do Visual Basic .NET e um int do C# são iguais, pois ambos são representados da mesma forma, como System.Int32 • IMPORTANTE: Somente a sintaxe (forma de representar expressões, instruções e unidades de programa) das linguagens é suportada pelo CLR, pois os tipos, as classes, métodos, propriedades e eventos são os recursos da plataforma e não da linguagem escolhida. Arquitetura do .NET Framework • Exemplo de código em C#: HelloWorld em C# using System; public class HelloWorld { public static void Main() { Console.WriteLine(“HelloWorld C#!”); } } • Exemplo de código em VB.NET: HelloWorld em VB.NET Imports System Module HelloWorld Sub Main() Console.WriteLine(“Hello World VB.NET!”) End Sub End Module Processo de execução Processo de compilação Processo de compilação e execução de uma aplicação .NET Microsoft Intermediate Language (MSIL) ou simplesmente IL. Esta é a forma que a aplicação é publicada/disponibilizada, em um ou mais assemblies, em MSIL compostos por DLLs (bibliotecas) e executáveis. Um desses assemblies deve conter um executável designado como ponto de entrada da aplicação. A MSIL é uma linguagem de baixonível que a CLR pode ler e entender. O JIT converte instruções MSIL para instruções específicas (código de máquina) da arquitetura do processador onde a aplicação .NET é executada. Processo de compilação e execução de uma aplicação .NET Código MSIL da aplicação HelloWorld gerado pelo compilador C#. Código MSIL da aplicação HelloWorld gerado pelo compilador VB.NET. Processo de compilação e execução de uma aplicação .NET default.aspx Qual Linguagem? Visual Basic .NET code C# code Compilador C# JIT compiler Código Nativo Common Language Runtime Compilador Visual Basic .NET MSIL Leitura complementar • http://msdn.microsoft.com/library/zw4w595w.aspx