Asp.net e C#

download Asp.net e C#

of 55

  • date post

    14-Oct-2015
  • Category

    Documents

  • view

    85
  • download

    1

Embed Size (px)

Transcript of Asp.net e C#

  • Como Programar com

    ASP.NET e C#Segunda edio

    Revisado e atualizado para a verso 4.0

    Alfredo Lotar

    Novatec

  • Copyright 2007, 2010 da Novatec Editora Ltda.

    Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. proibida a reproduo desta obra, mesmo parcial, por qualquer processo, sem prvia autorizao, por escrito, do autor e da Editora.

    Editor: Rubens PratesEditorao eletrnica: Camila Kuwabata e Carolina KuwabataReviso gramatical: Gabriela de Andrade FazioniCapa: Rodolpho Lopes

    ISBN: 978-85-7522-249-4

    Histrico de impresses:

    Outubro/2010 Segunda edioAgosto/2008 Primeira reimpressoJulho/2007 Primeira edio (ISBN: 978-85-7522-121-1)

    Novatec Editora Ltda.Rua Lus Antnio dos Santos 11002460-000 So Paulo, SP BrasilTel.: +55 11 2959-6529Fax: +55 11 2950-8869Email: novatec@novatec.com.brSite: www.novatec.com.brTwitter: twitter.com/novateceditoraFacebook: facebook.com/novatecLinkedIn: linkedin.com/in/novatec

    Dados Internacionais de Catalogao na Publicao (CIP)(Cmara Brasileira do Livro, SP, Brasil)

    Lotar, Alfredo Como programar com ASP.Net e C# / Alfredo Lotar. -- 2. ed. -- So Paulo : Novatec Editora, 2010.

    Bibliografia. ISBN 978-85-7522-249-4

    1. ASP.NET 2. Active Server Pages 3. C# (Linguagem de programao para computadores) I. Ttulo.

    07-5124 CDD-005.133

    ndices para catlogo sistemtico:

    1. ASP.NET : Linguagem de programao : Computadores : Processamento de dados 005.133 2. C# : Linguagem de programao : Computadores : Processamento de dados 005.133ORG20101013

  • 27

    captulo 1

    Introduo ao C# e .NET Framework

    O .NET Framework um componente integrado ao Windows que d suporte exe-cuo e ao desenvolvimento de uma nova gerao de aplicaes e XML web services. Segundo a documentao, o .NET Framework foi projetado com os seguintes objetivos:

    Oferecer um ambiente consistente de programao orientado a objetos, de modo que o cdigo do objeto seja armazenado e executado localmente, mas com a possibilidade de ser armazenado na internet e executado de forma remota.

    Oferecer um ambiente de execuo de cdigo que minimiza o desenvolvimento de software e conflitos de verses.

    Oferecer um ambiente que promove execuo segura de cdigos, inclusive os criados por fontes desconhecidas.

    Fornecer 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 de 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.

    O .NET Framework tem dois componentes principais: o Common Language Runtime (CLR) e o .NET Framework class library, que inclui o ADO.NET, o ASP.NET e o Windows Forms.

    Dica: se voc no se interessa muito por teoria sobre .NET, C# etc., ento pule para o tpico 1.10.

    1.1 Common Language Runtime (CLR) o mecanismo responsvel pela execuo das aplicaes .NET Framework. O C# suporta CLR, assim como outras linguagens de programao da Microsoft. O cdigo gerado pelo compilador para o suporte CLR denominado cdigo gerenciado. O Common Language Runtime (CLR) (linguagem comum em tempo de execuo) o crebro do .NET Framework. Pense nele como o agente que gerencia o cdigo em tempo de execuo, oferecendo servios, como o gerenciamento de memria. Veja os benefcios que o CLR proporciona:

  • 28 Como Programar com ASP.NET e C#

    Gerenciamento automtico de memria.

    Verificao de segurana de tipos.

    Gerenciamento de excees.

    Segurana aprimorada.

    Acesso a metadados.

    1.2 Class library biblioteca de classes uma biblioteca de classes, interfaces e tipos includos no .NET Framework, que permite acesso s funcionalidades do sistema, sendo a base a partir da qual so cons-trudas aplicaes .NET, componentes e controles. Com essa biblioteca de classes, podemos criar aplicaes que executam as mais variadas tarefas, como um software de gesto empresarial, um editor de imagens semelhante ao Photoshop ou ainda um website de comrcio eletrnico. As principais funcionalidades oferecidas pela biblioteca de classes so:

    Representa tipos de dados bsicos e excees.

    Permite o encapsulamento das estruturas de dados.

    Executa operaes de entrada e sada.

    Acessa informaes sobre tipo de dados carregados.

    Realiza verificaes de segurana.

    Fornece acesso aos dados e internet.

    Permite desenvolver a interface de uma aplicao.

    Permite o desenvolvimento de aplicaes Windows e ASP.NET.

    1.3 Linguagens suportadasAs linguagens da Microsoft suportadas pelo CLR so: Visual Basic e C#, Visual C++, Jscript, F#, alm de linguagens desenvolvidas por outras empresas, como Perl e COBOL.

    Uma caracterstica interessante do CLR a interao entre as linguagens. Por exemplo, podemos desenvolver um componente no Visual Basic e utiliz-lo com C#. Isso se torna muito importante quando trabalhamos com equipes que dominam vrias linguagens de programao. Cada programador pode trabalhar usando sua linguagem preferida e, no final, o projeto integrado como se tivesse sido criado em uma nica linguagem.

    A integrao entre as linguagens facilita a vida de empresas e programadores que ad-quirem ou vendem componentes. A linguagem em que o componente foi desenvolvido irrelevante. A nica preocupao consiste em averiguar se foi desenvolvido em uma

  • 29Captulo 1 Introduo ao C# e .NET Framework

    linguagem que suporte CLR. Pelo que tenho observado em websites de empresas desenvolvedoras de componentes, C# a linguagem preferida para desenvolvimento de componentes. Em alguns websites, encontramos a seguinte frase: Desenvolvido 100% em cdigo gerenciado C#.

    1.4 Linguagem intermediria MSILQuando compilamos o cdigo gerenciado, geramos Microsoft Intermediate Language MSIL, ou simplesmente IL, o qual independente de CPU e pode ser convertido para cdigo nativo. O MSIL inclui instrues para carregar, armazenar, inicializar e executar mtodos, assim como instrues para operaes aritmticas e lgicas, controle de fluxo etc.

    O cdigo contido no MSIL no pode ser executado diretamente; antes, preciso convert-lo para instrues que possam ser interpretadas pela CPU. A converso realizada por um compilador just-in-time (JIT ou JITter).

    O MSIL no necessita de plataforma, logo s precisamos de um compilador para con-verter o cdigo MSIL em cdigo nativo na mquina-alvo. Alm disso, os metadados, que representam informaes utilizadas pelo CLR, so colocados em um arquivo chamado Portable Executable (PE), que pode ter a extenso DLL ou EXE.

    1.5 Compilando MSIL para cdigo nativoAntes de executar o MSIL, preciso utilizar o .NET Framework just-in-time (JIT) para convert-lo para o cdigo nativo. Assim, geramos cdigo especfico para a arquitetura na qual roda o compilador JIT. Seguindo esse raciocnio, podemos desenvolver uma aplicao e convert-la para vrias plataformas. Precisamos apenas converter o MSIL para o cdigo nativo com um compilador JIT, especfico para a plataforma desejada.

    Cada sistema operacional pode ter seu compilador JIT. Claro que chamadas espe-cficas a API do Windows no funcionaro em aplicaes que estejam rodando em outro sistema operacional. Isso significa que devemos conhecer e testar muito bem uma aplicao, antes de disponibiliz-la para mltiplas plataformas.

    Em uma aplicao comercial grande, geralmente usamos um nmero limitado de funes. Assim, algumas partes do cdigo dessa aplicao podem no ser executadas. Visto que acarreta consumo de tempo e memria, a converso do MSIL para o cdigo nativo realizada somente na primeira vez em que o cdigo executado. Por exemplo, se o nosso programa compila um determinado mtodo, haver compilao somente na primeira vez em que o mtodo for executado. As chamadas seguintes utilizaro o cdigo nativo. O MSIL convertido usado durante a execuo e armazenado para que esteja acessvel para chamadas subsequentes.

  • 30 Como Programar com ASP.NET e C#

    Imagine, por exemplo, que voc tenha uma classe com cinco mtodos; quando chamar o primeiro mtodo, somente este ser compilado; quando precisar de outro mtodo, este tambm ser compilado. Chegar um momento em que todo o MSIL estar em cdigo nativo.

    1.6 AssembliesOs Assemblies so a parte fundamental da programao com .NET Framework, pois contm o cdigo que o CLR executa. O cdigo MSIL dentro de um arquivo portable executable (PE) no ser executado se no tiver um assembly manifest associado, e cada assembly deve ter somente um ponto de entrada, exemplo: DllMain, WinMain ou Main.

    Um assembly pode ser esttico ou dinmico. Os assemblies estticos podem incluir vrios tipos (interfaces e classes) do .NET Framework, como tambm recursos para assemblies (bitmaps, arquivos .jpeg etc.). Os assemblies estticos so armazenados no disco rgido com um arquivo portable executable. O .NET Framework cria assemblies dinmicos que so executados diretamente da memria e no precisam ser armaze-nados em disco. Podemos salvar em disco assemblies dinmicos aps sua execuo.

    Um assembly pode ser criado usando o Visual Studio 2010 ou outras ferramentas disponibilizadas pelo .NET Framework SDK. Esses assemblies dinmicos podem ser criados com as classes da namespace System.Reflection.Emit.

    1.6.1 Assemblies benefciosAssemblies foram projetados para simplificar o desenvolvimento de aplicaes e re-solver problemas ocorridos pelo conflito de verses causado pela instalao de uma mesma DLL de verso diferente da usada pela aplicao atual. O conflito entre as DLLs um problema antigo do Windows e