Orientação a Objetos em C# Conceitos e implementações em .NET
Everton Coimbra de AraújoSobre o livro
Este livro traz conceitos e implementações relacionadas à orientação e Programação Orientada a Objetos fazendo uso da linguagem C#, disponibilizada pela plataforma .NET. A ferramenta utilizada para a implementação dos exemplos trabalhados no livro é o Visual Studio 2019. Você verá que a OO e a POO são simples de se compreender e aplicar. O livro é rápido e direto, o que pode propiciar uma eficiente leitura.
O livro é desenvolvido em nove capítulos, sendo o primeiro apenas teórico, mas não menos importante, pois nele trago termos, conceitos e características sobre a orientação e Programação Orientada a Objetos e apresentação da plataforma adotada para o livro. O segundo capítulo traz a primeira classe, a primeira implementação e alguns conceitos relacionados à análise de sistemas e ao modelo orientado a objetos. Traz também uma introdução ao Visual Studio, ferramenta usada para implementação dos códigos.
O terceiro capítulo traz a contextualização, exemplificação e implementação de associações em Orientação a Objetos e como elas são refletidas no C#, que inicialmente faz uso de matrizes (arrays). Instruções condicionais e de repetição, na linguagem C#, são apresentadas nos exemplos aplicados nesse capítulo. O capítulo quatro traz o uso de coleções como repositório de objetos, no lugar de arrays. Para o uso efetivo do comportamento de objetos em uma coleção, apresenta também o conceito de identidade de um objeto e como recuperá-lo em uma coleção.
O quinto capítulo traz pilares importantes da Orientação a Objetos: a herança e o polimorfismo. A herança é apresentada na sua forma de extensão ou implementação, com interfaces. Também é trabalhado o uso de exceções para tratamento de erros. O sexto capítulo traz uma introdução a Design Patterns (padrões de projetos), tema sempre recorrente em estudos e implementações com OO.
O sétimo capítulo traz a técnica de desenvolvimento em camadas, fazendo uso de diferentes projetos para cada uma delas. Também veremos o uso de formulários (janelas) para a camada de apresentação.
O oitavo capítulo traz a persistência em base de dados, fazendo uso do ADO.NET e SQL Server. As classes responsáveis por se conectar a um banco de dados e executar instruções SQL são apresentadas e utilizadas em um cadastro da aplicação de exemplo.
Na sequência, em relação à persistência, o nono e último capítulo apresenta o Entity Framework Core, um ORM (Object Relational Mapping), uma ferramenta poderosa e necessária para persistência de objetos em uma base de dados relacional, sem a necessidade de nos preocuparmos com instruções SQL.
Alguns exercícios complementares são disponibilizados ao final de alguns capítulos, propondo novas experiências com os conceitos trabalhados no transcorrer destes capítulos.
Certamente, este livro pode ser usado como ferramenta em disciplinas que trabalham a introdução em Orientação a Objetos com C#, quer seja por acadêmicos ou professores. Isso porque ele é o resultado da experiência que tenho em ministrar aulas dessa disciplina, então trago para cá anseios e dúvidas dos alunos que estudam comigo. É importante que o leitor tenha conhecimento de lógica de programação (algoritmos), mas não é um fator impeditivo.
Prefácio
Um grande atrativo do paradigma de desenvolvimento de software orientado a objetos é a disponibilização de recursos que permitem modelar situações do mundo real de forma mais simples e mais clara do que em outros paradigmas. Na Orientação a Objetos, as situações são efetivamente representadas, em qualquer nível de abstração, por meio da utilização de alguns elementos básicos, como classes, objetos, mensagens, interfaces, associações, polimorfismo e herança. Isso proporciona alguns benefícios relevantes, como: modularização do código-fonte, que facilita a manutenção; reutilização de código, por meio do uso de herança; flexibilidade dos métodos implementados, graças ao polimorfismo; e criação de aplicações de alta qualidade em menor tempo. Esses benefícios e características certamente influenciaram para que essa abordagem se tornasse predominante na indústria de software – fato que continua válido até o presente momento. E foi neste contexto de grande interesse por tecnologias que facilitassem e melhorassem o desenvolvimento que foram criadas a linguagem C# e a plataforma Microsoft .NET.
C#, que foi construída para ser usada na plataforma .NET, fornece todos os recursos necessários para os programadores atingirem altos níveis de produtividade, simplificando o uso de componentes de interface gráfica do usuário, tratamento de exceções, processamento de banco de dados, estruturas de dados predefinidas, gerenciamento de dados multimídia, processamento de arquivos e computação distribuída. E talvez o principal para os dias atuais: é adequada para implementar aplicações baseadas na internet, que podem ser integradas perfeitamente a aplicações instaladas em computadores pessoais. A plataforma .NET oferece recursos avançados para desenvolvimento e implantação de software. Ela amplia a portabilidade dos programas, permitindo que as aplicações .NET sejam alocadas e se comuniquem em várias plataformas, o que facilita a disponibilização de serviços Web na internet. Assim, aplicativos baseados na Web podem ser distribuídos para diferentes equipamentos eletrônicos, como telefones celulares e outros dispositivos móveis, bem como para computadores pessoais.
Mas falta “falar” um pouco sobre o autor e sobre sua experiência em relação aos assuntos abordados neste livro. Conheci o Everton em um dos momentos mais marcantes de minha vida profissional. Foi no ano de 2008, no câmpus Medianeira da Universidade Tecnológica Federal do Paraná (UTFPR). Eu estava participando da prova didática do concurso público para docente do Departamento Acadêmico de Computação e o tema sorteado para a aula que cada candidato deveria ministrar para a banca avaliadora foi linguagens de programação orientadas a objetos. E quem foi o membro da banca que não cansou de me fazer perguntas sobre esse tema durante a minha aula? Pois é, foi justamente o Everton, que nesse primeiro contato já me mostrou o quanto gostava e o quão avançado era seu nível de conhecimento sobre esse paradigma de programação.
Desde então, nosso convívio diário na UTFPR e, mais recentemente, as viagens que fazemos para trabalhar, têm nos proporcionado incontáveis diálogos sobre os mais diversos tópicos da Ciência da Computação. Certamente, um dos temas predominantes nessas conversas é a Orientação a Objetos, quando eu abordo situações de aplicação de análise e projeto de software, e aproveito para aprender com a longa experiência dele no que se refere a linguagens, plataformas, padrões e ferramentas para programação. Mais especificamente, tenho acompanhado há alguns anos seus relatos sobre situações de aulas, em acompanhamento de alunos e na execução de projetos acadêmicos que envolvem a aplicação da linguagem C# e da plataforma .NET.
Portanto, a experiência dele em relação aos assuntos abordados garantiu a este livro um alto nível de qualidade técnica. Além disso, a linguagem clara e objetiva que foi empregada, a organização adequada dos tópicos e a ilustração da aplicação dos conceitos relevantes por meio de bons exemplos de implementação, também me fazem recomendar a leitura completa desta obra. Se você não conhece o autor, saiba que escrever livros é uma de suas maiores paixões, e isso faz toda a diferença na qualidade de suas produções.
Para finalizar, expresso profundo agradecimento ao meu grande amigo Everton, por ter me dado a oportunidade de redigir este prefácio. Foi uma honra receber tal convite, porque me senti incluído em um restrito grupo de amigos, com os quais se pode contar a qualquer momento, em qualquer situação.
Alan Gavioli, professor.
Sumário
- 1 Introdução à Orientação a Objetos
- 1.1 Alguns componentes da Orientação a Objetos
- 1.2 Características da Orientação a Objetos
- 1.3 A escolha da plataforma e da linguagem
- 1.4 Conclusão sobre as atividades realizadas no capítulo
- 2 Iniciando a implementação em Orientação a Objetos
- 2.1 A primeira classe
- 2.2 Tipos de dados
- 2.3 Uma aplicação de teste e início com o Visual Studio
- 2.4 Execução da classe de teste
- 2.5 Outros exemplos de classes
- 2.6 Conclusão sobre as atividades realizadas no capítulo
- 3 Associações e inicialização de objetos
- 3.1 Identificação e implementação de associações
- 3.2 Teste das associações
- 3.3 A inicialização de objetos
- 3.4 Composição como associação
- 3.5 Outros exemplos de associações
- 3.6 Conclusão sobre as atividades realizadas no capítulo
- 4 Coleções, agregação, identidade e recuperação de objetos
- 4.1 O uso de coleções
- 4.2 A identidade de um objeto
- 4.3 Agregação como associação
- 4.4 Recuperação de objetos de uma coleção por meio do LINQ
- 4.5 Outros exemplos com coleções
- 4.6 Conclusão sobre as atividades realizadas no capítulo
- 5 Herança, polimorfismo e exceção
- 5.1 Herança por extensão
- 5.2 Herança por implementação, com interfaces e polimorfismo
- 5.3 Exceções
- 5.4 Sobrecarga e sobreposição de métodos
- 5.5 Outro exemplo com herança por extensão
- 5.6 Outro exemplo com herança por implementação
- 5.7 Comentários adicionais para polimorfismo, sobrecarga, sobreposição e exceções
- 5.8 Mas então? Herança ou composição?
- 5.9 Conclusão sobre as atividades realizadas no capítulo
- 6 Orientação a Objetos e Padrões de Projeto
- 6.1 O padrão comportamental Strategy
- 6.2 O padrão comportamental Chain of Responsibility
- 6.3 Conclusão sobre as atividades realizadas no capítulo
- 7 Solução dividida em camadas
- 7.1 Contextualização sobre as camadas
- 7.2 Os projetos que representarão as camadas
- 7.3 Implementação da interação com o usuário
- 7.4 Modificadores de acesso/escopo e encapsulamento
- 7.5 Conclusão sobre as atividades realizadas no capítulo
- 8 Acesso a banco de dados
- 8.1 Introdução ao ADO.NET e criação da base utilizando o Visual Studio
- 8.2 Realizando operações relacionadas ao CRUD em uma tabela de dados
- 8.3 Conclusão sobre as atividades realizadas no capítulo
- 9 O Entity Framework Core como ferramenta para mapeamento objeto-relacional na persistência
- 9.1 Criação do projeto para a aplicação do EF Core
- 9.2 Recuperando dados com o EF Core
- 9.3 Gravação na base de dados
- 9.4 Associações com o EF Core
- 9.5 Dados de teste para nossa base de dados
- 9.6 A interface com o usuário para a associação
- 9.7 Fechando as funcionalidades para um CRUD com associação
- 9.8 Conclusão sobre as atividades realizadas no capítulo
- 10 Conclusão e caminhos futuros
Dados do produto
- Número de páginas:
- 236
- ISBN:
- 978-65-86110-00-5
- Data publicação:
- 11/2017. Atualizado em 03/2020.