Sie sind auf Seite 1von 5

PARTE I

A Linguagem C#

Captulo 1, C# 3.0 e o .NET 3.5 Captulo 2, Iniciando: Hello World Captulo 3, Fundamentos da Linguagem C# Captulo 4, Classes e Objetos Captulo 5, Herana e Polimorfismo Captulo 6, Sobrecarga de Operador Captulo 7, Estruturas Captulo 8, Interfaces Captulo 9, Arrays, Indexadores e Colees Captulo 10, Strings e Expresses Regulares Captulo 11, Excees Captulo 12, Delegados e Eventos

CAPTULO 1

C# 3.0 e .NET 3.5


O Objetivo do C# 3.0 fornecer uma linguagem simples, segura, moderna, orientada a objetos, focada em internet e de alta performance para desenvolvimento .NET. C# agora uma linguagem totalmente madura, e isso demonstrado nas lies aprendidas atravs de trs dcadas. Muito da mesma forma que voc observa numa criana as caractersticas e personalidade de seus pais e avs, voc facilmente observa no C# a influncia do Java, C++, Visual Basic (VB), e outras linguagens, mas tambm pode observar as lies aprendidas desde a primeira apresentao do C#. O foco deste livro o C# 3.0 e sua utilizao como ferramenta para programao em plataforma .NET, especificamente e especialmente com Visual Studio .NET 2008.
Muitos dos programas neste livro so escritos como aplicativos de console (ao invs de aplicativos Windows ou web) para facilitar a concentrao nas caractersticas da linguagem ao invs de estar distrado com a interface com o usurio.

Este captulo apresenta tanto a linguagem C# como a plataforma .NET, incluindo o .NET Framework 3.5.

A Evoluo do C#
Cada gerao do C# tem trazido adicionais relevantes linguagem, com poucas excelentes funes. Talvez a mais significativa funo adicionada para o C# 2.0 foi Generics (permitindo um aperfeioamento de segurana de tipo quando lidando com collections - colees). Desta forma, a adio mais significativa ao C# 3.0 deve ser a extenso de Consulta de Linguagem Integrada (LINQ, Language-Integated Query), que adicionam ao C# extenses de consulta de dados de finalidade geral; embora no seja a nica melhoria do C#. Outras novas caractersticas includas: Expresses Lambda (delegates anonimos nos steroids) Mtodosde Extenso Inicializadores de Objeto Tipos annimos Variveis locais de tipo implcito Vetores de tipo implcito rvores de Expresso Propriedades Automticas (uma pequena jia)

A Linguagem C#
A essncia da linguagem C# tranquilizadoramente simples, com pouco mais de 100 palavras chave e uma dzia de tipos internos de variveis, mas altamente expressiva quando vem a implementar conceitos modernos de programao. C# inclui

todo o suporte para programao estruturada, com componentes funcionais e de orientao a objetos que voc espera de uma linguagem moderna construda a partir do C++ e Java. Verso 3.0 tem sido estendida de trs formas muito importantes: Total suporte para LINQ consultas em relao a dados, agora fazem parte da linguagem. Total suporte para sintaxes declarativas do Windows Presentation Foundation (WPF; para criao de aplicaes ricas do Windows), Work Flow (WF), e Silverlight (para criao multi-plataforma e multi-navegadores de aplicaes ricas de Internet) Muitas funes convenientes adicionadas para auxiliar a produtividade do programador e para funcionar e rodar corretamente no Visual Studio 2008

Um Pouquinho de Histria
A linguagem C# foi originalmente desenvolvida por um pequeno time conduzido por dois engenheiros da Microsoft, Anders Hejlsberg e Scott Wiltamuth. Hejlsberg tambm conhecido pela criao do Turbo Pascal, uma linguagem popular para programao PC, e por liderar o time que arquitetou o Borland Delphi, um dos primeiros vitoriosos Ambientes de Desenvolvimento Integrados (Integrated Development Environments, IDEs) para programao cliente/servidor.

Caractersticas do C#
No corao de qualquer linguagem orientada a objetos, est seu suporte para definir e trabalhar com classes. Classes determinam novos tipos, permitindo que voc estenda a linguagem e consiga manipular melhor o problema que voc est tentando solucionar. C# contm palavras-chave para declarao de novas classes e de seus mtodos e propriedades e para implementao de encapsulamento , polimorfismo, os trs pilares da programao orientada a objetos. No C#, tudo relacionado a uma declarao de classe localiza-se na prpria declarao. Definies de classe C# no necessitam de arquivos de cabealho ou arquivos serparados (IDL, Interface Definition Language). Alm disso, o C# permite documentao direta (inline) que simplifica a criao online e impresa de documentao para um aplicativo. C# tambm permite interfaces, um meio de fazer um contrato com uma classe para processos que a interface determina. No C#, uma classe pode herdar de apenas um objeto pai (parent), mas uma classe pode implementar mltiplas interfaces. Quando uma classe implementa uma interface, na prtica promete proporcionar funcionalidade que as interfaces especificam. C# proporciona tambm um suporte a structs (estruturas), um conceito que tem mudado seu significado de forma relevante a partir do C++. No C#, uma estrutura um limitado tipo suprfluo que quando instanciado, faz menos pedidos ao sistema operacional e memria, do que uma classe convencional faz. Um struct pode herdar de uma classe ou ser herdada por uma classe, mas um struct pode implementar uma interface. Este livro demonstrar o porqu de eu no considerar structs to importantes no mundo dos Generics (Genricos). A verdade que no coloquei uma struct em programas por cinco anos, exceto para demonstrar como feita sua utilizao. C# proporciona suporte total de delegates (delegados): para invocao de mtodos indiretamente. Em outras palavras, como no C++ voc pode achar funcionalidade similar (como em ponteiros para funes de membros), mas delegates so referncia de tipos seguros que encapsulam mtodos com assinaturas e tipos de retorno especficos. Delegates tm sido extendidas significativamente, primeiro no C# 2.0 e novamente no C# 3.0, primeiramente com anonymous delegates e agora com as Expresses Lambda (Lambda expressions), colocando a base para o LINQ. Ns explicaremos fundo nos Captulos 13 e 15. C# proporciona caractersticas orientadas a componentes, como propriedades, eventos e construtores declarativos (como atributos). Programao orientada a componente sustentado pelo armazenamento de metadado com o cdigo para a classe. O metadado descreve a classe, incluindo seus mtodos e propriedades, bem como sua necessidade de segurana e outros atributos, assim como ser que pode ser serializado; o cdigo contm a lgica suficiente para executar suas funes.

Captulo 1: C# 3.0 e o .NET 3.5

Dessa forma, uma classe compilada uma unidade independente. Ento um ambiente de armazenamento de dados que sabe como ler um metadado e um cdigo de uma classe, no precisa de nenhuma outra informao para fazer utilizao disso. Isso possvel, usando o C# e o Commom Language Runtime (CLR, Tempo de Execuo de Linguagem Comum) para adicionar um metadado personalizado a uma classe pela criao de atributos personalizados. Dessa mesma forma, possvel ler um metadado de classe utilizando os tipos do CLR que suportam reflexo. Quando voc compila seu cdigo, cria um assembly. Um assembly uma coleo de arquivos que aparecem ao programador como uma nica DLL, biblioteca de link dinmico (Dynamic Link Library) ou executvel (EXE). Em .NET, um assembly a unidade bsica de reutilizao, versionamento, segurana e implantao. O CLR proporciona um nmero de classes para manipulao de assemblies. Uma nota final sobre o C# que ele tambm proporciona suporte para: Acesso direto Memria utilizando ponteiros do estilo C ++, Palavras-chave para incluir operaes como inseguras Avisa o coletor de lixo CLR para no coletar objetos referenciados por ponteiros at que eles sejam liberados Aqui o mundo em ponteiros: voc pode us-los, mas no pode. Eles so como granadas manuais. Voc saber quando precisar deles, at que voc precise, mantenha o pino neles, mas coloque os em sua maleta pessoal, tentando no pensar neles. Se voc se deparar consigo mesmo tirando um, chame um amigo antes de puxar pino; ento corra para cobrir.

A Plataforma .NET
Quando a Microsoft anunciou o C# em Julho de 2000, seu lanamento foi parte de um evento muito maior: o pronunciamento da plataforma .NET. A plataforma .NET foi, em meu ponto de vista, um sistema operacional orientado a objeto disfarado, colocado no topo do sistema operacional existente. .NET 3.5 representa um amadurecimento mais alm daquele framework e traz consigo uma nova forma de criar, bem, apenas sobre tudo, enquanto faz com que nada que tenha aprendido seja obsoleto. Voc ainda pode criar aplicativos web de server-only, mas com AJAX, voc pode adicionar controles para a interface cliente (e AJAX proporciona suporte para muito mais, incluindo codificao e decodificao JSON automtica). Voc pode ainda criar aplicativos de Forms do Windows para aplicativos Windows, mas voc tambm pode criar aplicaes Windows mais ricas utilizando WPF, que utiliza uma sintaxe declarativa chamada XAML (explicado com mais detalhe no Captulo 18). Aquele mesmo XAML utilizado na criao de aplicativos WF, o qual pode ser utilizado, entre outras coisas, como uma camada de negcios para seus aplicativos.
Para uma total explorao do novo .NET Framework, por favor ver Programando .NET 3.5 por Jesse Liberty and Alex Horowitz (O Reilly).

Numa das mais interessantes adies ao Framework, voc pode agora utilizar aquele mesmo XAML para produzir Aplicativos Ricos de Internet multi-plataforma (Windows, Mac e Unix) e multi-navegador (Firefox e Safari) utilizando o Silverlight da Microsoft.
Para uma total explorao do Silverlight, por favor ver meu blog em http://silverlight.net/blogs/JesseLiberty, fique a espera pelo meu Livro Programando em Silverlight (O Reilly), durante 2008.

Todas essas tecnologias de desenvolvimento podem utilizar o C# para lgica de programao; C# pode ser o centro para toda programao que voc faz atravs do quadro no desenvolvimento de aplicativos .NET da web para rea de trabalho, de clientes pequenos a grandes, de Aplicativos Ricos de Internet a web service.

A Linguagem C#

Das könnte Ihnen auch gefallen