PARTE I A Linguagem C#



Documentos relacionados
DESENVOLVIMENTO DE SOFTWARE AULA 1

Fundament n os s da platafo f rm r a. NE N T André Menegassi

Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C#

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Treinar - Cursos e Treinamentos C# Módulo I. Carga horária: 32 Horas

Seminário - C# DSO II. Desenvolvimento de Sistemas Orientados a Objetos 2. Equipe: Diorges, Leonardo, Luís Fernando, Ronaldo

Aspectos técnicos do desenvolvimento baseado em componentes

Desenvolvimento de Aplicações Locais na Plataforma Microsoft

FERRAMENTAS NECESSÁRIAS PARA O DESENVOLVIMENTO EM C#

Introdução ao C# . Visão geral do.net Framework

OOP - Java. Artur Duque Rossi Mestrado em Modelagem Computacional Universidade Federal de Juiz de Fora

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Planejando o aplicativo

Parte I Princípios básicos do Microsoft.NET Framework

INTRODUÇÃO À LINGUAGEM C/C++

Ambiente de Programação Visual. Framework.NET. Prof. Mauro Lopes. Ambiente de Programação Visual Prof. Mauro Lopes

Introdução ao Delphi. Introdução. Edições do Software. Capítulo 1. InforBRás - Informática Brasileira Ltda. O Que é o Delphi.

EMENTA DO CURSO. Tópicos:

Desenvolvimento de Aplicação Windows Mobile Acessando um WebService

A interface do Microsoft Visual Studio 2005

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

Orientação a Objetos

PADI 2015/16. Aula 1 Introdução à Plataforma.NET

DWEB. Design para Web. CSS3 - Fundamentos. Curso Superior de Tecnologia em Design Gráfico

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

Professor: Douglas Sousa Cursos de Computação

1. Apresentação Objetivos

CURSO DE PROGRAMAÇÃO EM JAVA

Orientação a Objetos com Java

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

Introdução a listas - Windows SharePoint Services - Microsoft Office Online

Introdução a lógica de programação. Aula 02: Linguagens de Programação e Introdução ao Visual C# Express

Introdução à Programação

Introdução à Linguagem

Curso de PHP. FATEC - Jundiaí. A programação orientada a objetos (object-oriented oriented programming

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Aplicação Prática de Lua para Web

Aula 1 Tipo Abstrato de Dados

Implementação de Web Services em Projetos de LabVIEW

2 Ferramentas Utilizadas

Banco de Dados de Músicas. Andre Lima Rocha Campos Osório Pereira Carvalho

Novas Tecnologias Microsoft.

Implementando uma Classe e Criando Objetos a partir dela

1. NÍVEL CONVENCIONAL DE MÁQUINA

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Gerenciador de Log. Documento Visão. Projeto Integrador 2015/2. Engenharia de Software. Versão 2.0. Engenharia de Software

Programando em C# Orientado a Objetos. By: Maromo

Sistemas Operacionais

formação em programação em c/c++

Plugins TerraView. Última revisão: 12/12/32006 Versão TerraLib: 3.1.4

Orientação a Objetos

enbsp - NBioBSP NITGEN Biometric Service Provider SDK Manual do Desenvolvedor SDK version 4.xx

BANCO DE DADOS II. AULA MySQL.

Estrutura da linguagem de programação C Prof. Tiago Eugenio de Melo tiago@comunidadesol.org

Aula 01: Linguagens de Programação e Introdução ao Visual C# Express

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

A Linguagem Algorítmica Estrutura de Repetição. Ex. 2

ECD1200 Equipamento de Consulta de Dados KIT DE DESENVOLVIMENTO

Introdução à Linguagem C/C++ Parte I

Linguagem de Programação Procedural (VB) Prof. MSc Eng Marcelo Bianchi AULA 01 - INTRODUÇÃO AO VB

Protótipo de um sistema para licenciamento de aplicativos Microsoft.NET baseado em assinatura digital XML

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Noções de. Microsoft SQL Server. Microsoft SQL Server

Computação II Orientação a Objetos

Programação Orientada a Objetos

Dadas a base e a altura de um triangulo, determinar sua área.

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

2 echo "PHP e outros.";

UNIVERSIDADE FEDERAL DA BAHIA INSTITUTO DE MATEMATICA DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO LINGUAGENS DE APLICAÇÃO COMERCIAL SILAS QUEIROZ SILVA

Linguagem de Programação III

Elementos da Linguagem C#

Curso de Eng. Informática Linguagens de Programação. C Sharp University Data Processing. (C Sharp Universidade de Processamento de Dados) Docente:

Wilson Moraes Góes. Novatec

ASP.NET 2.0 e PHP. Autor: Glauber de Almeida e Juarez Fernandes

Programação Orientada a Objetos OOP. IFES Campus Vitória Engenharia Elétrica Professor: Danilo A. Silva

Principais características

Especificação do 3º Trabalho

ESTUDO SOBRE AS LINGUAGENS DE PROGRAMAÇÃO HOSPEDEIRAS SUPORTADAS PELA FERRAMENTA HTML. Aluno: Rodrigo Ristow Orientador: Wilson Pedro Carli

Escola Adalgisa de Barros

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto

QCON RIO 2015 Desenvolvimento para Windos 10. Alexandre

Engenharia de Software III

Sumário. Introdução Introdução ao IDE Conceitos sobre a Linguagem C++ Builder Projetos e Configurações de Ambiente...

Ambientes Visuais. Ambientes Visuais

Introdução ao Veridis Biometrics SDK VERIDIS

Programação Orientada a Objetos Classes Abstratas Técnico em Informática. Prof. Marcos André Pisching, M.Sc.

Linguagens de. Aula 02. Profa Cristiane Koehler

Copyright OSIsoft, LLC.

Como acompanhar a evolução dos aplicativos? Console >> Desktop >> Web >> Mobile >> Cloud. Como aproveitar o melhor de cada programador?

Transcrição:

PARTE I A Linguagem C# Capítulo 1, C# 3.0 e o.net 3.5 Capítulo 2, Iniciando: Hello World Capítulo 3, Fundamentos da Linguagem C# Capítulo 4, Classes e Objetos Capítulo 5, Herança e Polimorfismo Capítulo 6, Sobrecarga de Operador Capítulo 7, Estruturas Capítulo 8, Interfaces Capítulo 9, Arrays, Indexadores e Coleções Capítulo 10, Strings e Expressões Regulares Capítulo 11, Exceções Capítulo 12, Delegados e Eventos

CAPÍTULO 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 lições aprendidas através de três décadas. Muito da mesma forma que você observa numa criança as características e personalidade de seus pais e avós, você facilmente observa no C# a influência do Java, C++, Visual Basic (VB), e outras linguagens, mas também pode observar as lições aprendidas desde a primeira apresentação do C#. O foco deste livro é o C# 3.0 e sua utilização como ferramenta para programação em plataforma.net, especificamente e especialmente com Visual Studio.NET 2008. Muitos dos programas neste livro são escritos como aplicativos de console (ao invés de aplicativos Windows ou web) para facilitar a concentração nas características da linguagem ao invés de estar distraído com a interface com o usuário. Este capítulo apresenta tanto a linguagem C# como a plataforma.net, incluindo o.net Framework 3.5. A Evolução do C# Cada geração do C# tem trazido adicionais relevantes à linguagem, com poucas excelentes funções. Talvez a mais significativa função adicionada para o C# 2.0 foi Generics (permitindo um aperfeiçoamento de segurança de tipo quando lidando com collections - coleções). Desta forma, a adição mais significativa ao C# 3.0 deve ser a extensão de Consulta de Linguagem Integrada (LINQ, Language-Integated Query), que adicionam ao C# extensões de consulta de dados de finalidade geral; embora não seja a única melhoria do C#. Outras novas características incluídas: Expressões Lambda (delegates anonimos nos steroids) Métodosde Extensão Inicializadores de Objeto Tipos anônimos Variáveis locais de tipo implícito Vetores de tipo implícito Árvores de Expressão Propriedades Automáticas (uma pequena jóia) A Linguagem C# A essência da linguagem C# é tranquilizadoramente simples, com pouco mais de 100 palavras chave e uma dúzia de tipos internos de variáveis, mas é altamente expressiva quando vem a implementar conceitos modernos de programação. C# inclui 3

todo o suporte para programação estruturada, com componentes funcionais e de orientação a objetos que você espera de uma linguagem moderna construída a partir do C++ e Java. Versão 3.0 tem sido estendida de três formas muito importantes: Total suporte para LINQ consultas em relação a dados, agora fazem parte da linguagem. Total suporte para sintaxes declarativas do Windows Presentation Foundation (WPF; para criação de aplicações ricas do Windows), Work Flow (WF), e Silverlight (para criação multi-plataforma e multi-navegadores de aplicações ricas de Internet) Muitas funções convenientes adicionadas para auxiliar a produtividade do programador e para funcionar e rodar corretamente no Visual Studio 2008 Um Pouquinho de História A linguagem C# foi originalmente desenvolvida por um pequeno time conduzido por dois engenheiros da Microsoft, Anders Hejlsberg e Scott Wiltamuth. Hejlsberg é também conhecido pela criação do Turbo Pascal, uma linguagem popular para programação PC, e por liderar o time que arquitetou o Borland Delphi, um dos primeiros vitoriosos Ambientes de Desenvolvimento Integrados (Integrated Development Environments, IDEs) para programação cliente/servidor. Características do C# No coração 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# contém palavras-chave para declaração de novas classes e de seus métodos e propriedades e para implementação de encapsulamento, polimorfismo, os três pilares da programação orientada a objetos. No C#, tudo relacionado a uma declaração de classe localiza-se na própria declaração. Definições de classe C# não necessitam de arquivos de cabeçalho ou arquivos serparados (IDL, Interface Definition Language). Além disso, o C# permite documentação direta (inline) que simplifica a criação online e impresa de documentação para um aplicativo. C# também 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 múltiplas interfaces. Quando uma classe implementa uma interface, na prática promete proporcionar funcionalidade que as interfaces especificam. C# proporciona também 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 supérfluo que quando instanciado, faz menos pedidos ao sistema operacional e à memória, 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 não considerar structs tão importantes no mundo dos Generics (Genéricos). A verdade é que não coloquei uma struct em programas por cinco anos, exceto para demonstrar como é feita sua utilização. C# proporciona suporte total de delegates (delegados): para invocação de métodos indiretamente. Em outras palavras, como no C++ você pode achar funcionalidade similar (como em ponteiros para funções de membros), mas delegates são referência de tipos seguros que encapsulam métodos com assinaturas e tipos de retorno específicos. Delegates têm sido extendidas significativamente, primeiro no C# 2.0 e novamente no C# 3.0, primeiramente com anonymous delegates e agora com as Expressões Lambda (Lambda expressions), colocando a base para o LINQ. Nós explicaremos à fundo nos Capítulos 13 e 15. C# proporciona características orientadas a componentes, como propriedades, eventos e construtores declarativos (como atributos). Programação orientada a componente é sustentado pelo armazenamento de metadado com o código para a classe. O metadado descreve a classe, incluindo seus métodos e propriedades, bem como sua necessidade de segurança e outros atributos, assim como será que pode ser serializado; o código contém a lógica suficiente para executar suas funções. 4 l Capítulo 1: C# 3.0 e o.net 3.5

Dessa forma, uma classe compilada é uma unidade independente. Então um ambiente de armazenamento de dados que sabe como ler um metadado e um código de uma classe, não precisa de nenhuma outra informação para fazer utilização disso. Isso é possível, usando o C# e o Commom Language Runtime (CLR, Tempo de Execução de Linguagem Comum) para adicionar um metadado personalizado a uma classe pela criação de atributos personalizados. Dessa mesma forma, é possível ler um metadado de classe utilizando os tipos do CLR que suportam reflexão. Quando você compila seu código, cria um assembly. Um assembly é uma coleção de arquivos que aparecem ao programador como uma única DLL, biblioteca de link dinâmico (Dynamic Link Library) ou executável (EXE). Em.NET, um assembly é a unidade básica de reutilização, versionamento, segurança e implantação. O CLR proporciona um número de classes para manipulação de assemblies. Uma nota final sobre o C# é que ele também proporciona suporte para: Acesso direto à Memória utilizando ponteiros do estilo C ++, Palavras-chave para incluir operações como inseguras Avisa o coletor de lixo CLR para não coletar objetos referenciados por ponteiros até que eles sejam liberados Aqui é o mundo em ponteiros: você pode usá-los, mas não pode. Eles são como granadas manuais. Você saberá quando precisará deles, até que você precise, mantenha o pino neles, mas coloque os em sua maleta pessoal, tentando não pensar neles. Se você se deparar consigo mesmo tirando um, chame um amigo antes de puxar pino; então corra para cobrir. A Plataforma.NET Quando a Microsoft anunciou o C# em Julho de 2000, seu lançamento 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 disfarçado, colocado no topo do sistema operacional existente..net 3.5 representa um amadurecimento mais além 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 codificação e decodificação JSON automática). Você pode ainda criar aplicativos de Forms do Windows para aplicativos Windows, mas você também pode criar aplicações Windows mais ricas utilizando WPF, que utiliza uma sintaxe declarativa chamada XAML (explicado com mais detalhe no Capítulo 18). Aquele mesmo XAML é utilizado na criação de aplicativos WF, o qual pode ser utilizado, entre outras coisas, como uma camada de negócios para seus aplicativos. Para uma total exploração do novo.net Framework, por favor ver Programando.NET 3.5 por Jesse Liberty and Alex Horowitz (O Reilly). Numa das mais interessantes adições 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 exploração 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 lógica de programação; C# pode ser o centro para toda programação que você faz através 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# l 5