O documento fornece uma introdução aos principais conceitos da linguagem C# e do framework .NET. Aborda tópicos como: introdução à .NET Framework e programação orientada a objetos em C#; arquitetura CLR e biblioteca de classes .NET; tipos de dados em C# e controlo de fluxo; arrays, herança e encapsulamento; e conceitos como construtores, métodos e sobrecarga.
Este documento especifica um exercício de programação que requer a implementação de um codificador e decodificador hexadecimal. O programa deve ler uma string do usuário, codificar ou decodificar baseado na entrada do usuário, e imprimir o resultado. O documento detalha como caracteres são representados numericamente e como números podem ser representados por pares de caracteres hexadecimais.
Este manual fornece informações sobre a linguagem C/C++. Ele contém três capítulos principais: Introdução, Elementos do Programa e Tipos de Dados e Declarações. O manual é de domínio público e pode ser copiado e distribuído livremente, incentivando contribuições para seu aprimoramento.
O documento discute as novidades da linguagem C#, incluindo: 1) Covariância e contravariância em genéricos, 2) Argumentos com nome e opcionais, 3) Programação dinâmica com objetos dinâmicos. O documento também aborda melhorias na interoperabilidade com COM.
O documento discute comunicação síncrona em sistemas distribuídos através de passagem de mensagens. A comunicação síncrona garante que o processo transmissor só continuará após o receptor receber a mensagem, evitando problemas como buffers infinitos. O documento descreve a notação formal para comunicação síncrona entre processos e discute provas de correção como satisfação, não-interferência e segurança.
C#4 - Parte 1 - Dinamismo E Argumentos opcionais e nomeadosGiovanni Bassi
1) O documento apresenta as principais novidades da linguagem C# 4, incluindo argumentos opcionais e nomeados, construções dinâmicas e dispatch dinâmico.
2) Argumentos opcionais e nomeados permitem omitir argumentos e especificar seus nomes ao chamar métodos, respectivamente.
3) Construções dinâmicas usam tipos dynamic que são resolvidos em tempo de execução, permitindo maior flexibilidade.
O documento discute boas práticas e refatoração de código, incluindo o uso de interfaces, herança, strings, nomes significativos, métodos pequenos e comentários.
O documento lista exercícios de programação em C# divididos em várias seções, incluindo exercícios de 1 a 27, exercícios numéricos de 1 a 47, exercícios de while e for de 1 a 10 e exercícios com vetores.
O documento resume uma palestra sobre C# para a comunidade. Ele introduz o palestrante Paulo Ortins e descreve como surgiu a ideia da palestra para engajar a comunidade C# em Salvador. Ele também destaca recursos populares da linguagem C# como LINQ e propriedades, além de frameworks como Mono que permitem rodar C# em outros sistemas operacionais.
Este documento especifica um exercício de programação que requer a implementação de um codificador e decodificador hexadecimal. O programa deve ler uma string do usuário, codificar ou decodificar baseado na entrada do usuário, e imprimir o resultado. O documento detalha como caracteres são representados numericamente e como números podem ser representados por pares de caracteres hexadecimais.
Este manual fornece informações sobre a linguagem C/C++. Ele contém três capítulos principais: Introdução, Elementos do Programa e Tipos de Dados e Declarações. O manual é de domínio público e pode ser copiado e distribuído livremente, incentivando contribuições para seu aprimoramento.
O documento discute as novidades da linguagem C#, incluindo: 1) Covariância e contravariância em genéricos, 2) Argumentos com nome e opcionais, 3) Programação dinâmica com objetos dinâmicos. O documento também aborda melhorias na interoperabilidade com COM.
O documento discute comunicação síncrona em sistemas distribuídos através de passagem de mensagens. A comunicação síncrona garante que o processo transmissor só continuará após o receptor receber a mensagem, evitando problemas como buffers infinitos. O documento descreve a notação formal para comunicação síncrona entre processos e discute provas de correção como satisfação, não-interferência e segurança.
C#4 - Parte 1 - Dinamismo E Argumentos opcionais e nomeadosGiovanni Bassi
1) O documento apresenta as principais novidades da linguagem C# 4, incluindo argumentos opcionais e nomeados, construções dinâmicas e dispatch dinâmico.
2) Argumentos opcionais e nomeados permitem omitir argumentos e especificar seus nomes ao chamar métodos, respectivamente.
3) Construções dinâmicas usam tipos dynamic que são resolvidos em tempo de execução, permitindo maior flexibilidade.
O documento discute boas práticas e refatoração de código, incluindo o uso de interfaces, herança, strings, nomes significativos, métodos pequenos e comentários.
O documento lista exercícios de programação em C# divididos em várias seções, incluindo exercícios de 1 a 27, exercícios numéricos de 1 a 47, exercícios de while e for de 1 a 10 e exercícios com vetores.
O documento resume uma palestra sobre C# para a comunidade. Ele introduz o palestrante Paulo Ortins e descreve como surgiu a ideia da palestra para engajar a comunidade C# em Salvador. Ele também destaca recursos populares da linguagem C# como LINQ e propriedades, além de frameworks como Mono que permitem rodar C# em outros sistemas operacionais.
Renato Groffe tem mais de 15 anos de experiência em tecnologia e possui pós-graduação em Engenharia de Software e MBA em Business Intelligence. Ele fornece links para suas páginas no Facebook e LinkedIn e discute recursos novos no Visual Studio 2015 e na linguagem C#, como string interpolation e o operador null-conditional.
A guerra cibernética deixou de ser ficção e se tornou realidade, com conflitos travados parcialmente na internet por apenas um homem diante de um computador. Especialistas dizem que alvos de ataques cibernéticos incluem infraestrutura como redes elétricas. Países desenvolvidos como os EUA usam guerra cibernética para policiar nações, enquanto o Brasil tem preparo mínimo para ataques e busca desenvolver capacidades de defesa cibernética.
O documento discute programação orientada a objetos no .NET Framework, incluindo conceitos como classes, objetos, encapsulamento, herança, polimorfismo, propriedades, métodos, construtores e destruidores. Também aborda tópicos como modificadores de acesso, instanciação de classes, membros estáticos, tipos anônimos, substituição de membros, interfaces, genéricos e delegados.
O documento apresenta uma introdução sobre o professor Jesiel Viana e seu curso sobre paradigmas de desenvolvimento. Em seguida, discute os paradigmas estruturado e orientado a objetos, comparando suas arquiteturas e conceitos-chave como classes, objetos, herança e polimorfismo. Por fim, propõe uma atividade sobre modelagem de uma biblioteca usando os dois paradigmas.
O documento descreve os principais elementos de um diagrama de classes no contexto de análise orientada a objetos, incluindo classes, atributos, métodos, relacionamentos entre classes e tipos de relacionamentos como associação, agregação e generalização.
O documento descreve métricas e contadores de desempenho do .NET para avaliação de sistemas de informação, incluindo contadores do CLR para memória, carregamento, trancas e exceções. Também explica termos relacionados a profiling como alocações exclusivas, tempo decorrido exclusivo e inclusivo.
Este documento descreve um curso de três dias sobre a técnica Thetahealing, ensinando como mudar crenças limitantes instantaneamente através da meditação e da conexão com a energia divina para criar uma vida melhor. O curso ensina a identificar e remover crenças que bloqueiam o sucesso, a atrair uma alma gêmea e a curar problemas físicos e emocionais.
O documento discute interfaces e classes abstratas em C#, métodos abstratos e herança múltipla. Também explica a arquitetura em camadas, dividindo o código em camadas de interface com o usuário, comunicação, negócio e dados. A arquitetura em camadas traz benefícios como modularidade, reusabilidade, extensibilidade e independência entre camadas.
O documento apresenta o sistema operacional Microsoft Windows, descrevendo suas principais versões desde a primeira até a Windows 10. Também explica a função "executar", que permite acessar programas e configurações do sistema operacional.
O documento apresenta uma palestra sobre o framework .NET, linguagem C# e padrão MVC. Inclui detalhes sobre o palestrante Luis Fernando Marques e sua experiência, além de explicar conceitos como o que é .NET, características da plataforma, história e funcionalidades do C# e arquitetura MVC. Apresenta demonstrações práticas utilizando C#, Windows Forms e ASP.NET com banco de dados SQL Server.
O documento resume os principais tópicos sobre a linguagem C#. Ele discute 1) a história e características de C#, 2) os tipos de dados suportados como inteiros, strings e arrays, e 3) conceitos de programação orientada a objetos como classes, herança e polimorfismo.
O documento fornece uma introdução ao .NET Framework, abordando tópicos como CLR, Metadata, Assemblies, CTS, CLS, MSIL e outras tecnologias fundamentais da plataforma .NET.
O documento discute os principais conceitos de programação orientada a objetos em C#, incluindo classes, objetos, construtores, interfaces, campos, métodos, visibilidade e exemplos de implementação destes conceitos.
Ao final da aula, os alunos saberão identificar as principais diferenças entre a programação estruturada e a programação orientada a objetos.
Apresentar aos alunos uma pequena revisão de C# e a IDE Visual Studio.
Este documento fornece instruções passo-a-passo para implementar um menu Ribbon em C# usando Windows Forms. Ele descreve como adicionar um TabControl, TabPages, painéis, rótulos e botões, e como criar janelas filhas e conectá-las aos botões do menu.
O documento apresenta os fundamentos da programação orientada a objetos. Resume os principais conceitos como objetos, classes, encapsulamento, herança e polimorfismo. Explica a diferença entre a programação estruturada e orientada a objetos.
O documento resume as principais informações profissionais e experiência de Renato Groffe na área de tecnologia, incluindo mais de 15 anos de experiência, pós-graduação em engenharia de software, MBA em business intelligence, além de cursos e certificações técnicas. O documento também fornece instruções e links para instalação do Visual Studio 2015 CTP 5 em uma máquina virtual e resume os principais recursos novos do C# 6.0 e do Visual Studio 2015.
Demonstrar a importância do planejamento da interface do usuário (UI) e escolha dos elementos visuais que melhor se adaptem ao público-alvo.
Apresentar ferramentas que auxiliem na criação e testes de layouts e estruturas visuais de um website.
O documento apresenta os conceitos fundamentais de programação orientada a objetos, incluindo classes, objetos, encapsulamento, herança e polimorfismo. Também mostra como criar uma classe em C# para representar objetos do mundo real, como pessoas.
Este documento fornece uma introdução sobre diagramas de classes e análise orientada a objetos. Resume três pontos principais:
1) Diagramas de classes descrevem classes de objetos e relacionamentos entre elas.
2) Análise orientada a objetos envolve identificar objetos e suas interações em um domínio.
3) Modelos conceituais de classes de domínio representam conceitos independentemente de implementação.
This document discusses experiences with Test Driven Development (TDD) in a corporate environment. It describes challenges with current development practices that lead to bugs and difficulties, benefits of TDD like secure development and reduced bugs, and a case study of successful TDD adoption on a large project. Common myths about TDD are also addressed.
Este documento fornece informações sobre um curso de desenvolvimento em C#, incluindo contatos, avaliação, introdução à linguagem C# e ao framework .NET, e depuração.
Renato Groffe tem mais de 15 anos de experiência em tecnologia e possui pós-graduação em Engenharia de Software e MBA em Business Intelligence. Ele fornece links para suas páginas no Facebook e LinkedIn e discute recursos novos no Visual Studio 2015 e na linguagem C#, como string interpolation e o operador null-conditional.
A guerra cibernética deixou de ser ficção e se tornou realidade, com conflitos travados parcialmente na internet por apenas um homem diante de um computador. Especialistas dizem que alvos de ataques cibernéticos incluem infraestrutura como redes elétricas. Países desenvolvidos como os EUA usam guerra cibernética para policiar nações, enquanto o Brasil tem preparo mínimo para ataques e busca desenvolver capacidades de defesa cibernética.
O documento discute programação orientada a objetos no .NET Framework, incluindo conceitos como classes, objetos, encapsulamento, herança, polimorfismo, propriedades, métodos, construtores e destruidores. Também aborda tópicos como modificadores de acesso, instanciação de classes, membros estáticos, tipos anônimos, substituição de membros, interfaces, genéricos e delegados.
O documento apresenta uma introdução sobre o professor Jesiel Viana e seu curso sobre paradigmas de desenvolvimento. Em seguida, discute os paradigmas estruturado e orientado a objetos, comparando suas arquiteturas e conceitos-chave como classes, objetos, herança e polimorfismo. Por fim, propõe uma atividade sobre modelagem de uma biblioteca usando os dois paradigmas.
O documento descreve os principais elementos de um diagrama de classes no contexto de análise orientada a objetos, incluindo classes, atributos, métodos, relacionamentos entre classes e tipos de relacionamentos como associação, agregação e generalização.
O documento descreve métricas e contadores de desempenho do .NET para avaliação de sistemas de informação, incluindo contadores do CLR para memória, carregamento, trancas e exceções. Também explica termos relacionados a profiling como alocações exclusivas, tempo decorrido exclusivo e inclusivo.
Este documento descreve um curso de três dias sobre a técnica Thetahealing, ensinando como mudar crenças limitantes instantaneamente através da meditação e da conexão com a energia divina para criar uma vida melhor. O curso ensina a identificar e remover crenças que bloqueiam o sucesso, a atrair uma alma gêmea e a curar problemas físicos e emocionais.
O documento discute interfaces e classes abstratas em C#, métodos abstratos e herança múltipla. Também explica a arquitetura em camadas, dividindo o código em camadas de interface com o usuário, comunicação, negócio e dados. A arquitetura em camadas traz benefícios como modularidade, reusabilidade, extensibilidade e independência entre camadas.
O documento apresenta o sistema operacional Microsoft Windows, descrevendo suas principais versões desde a primeira até a Windows 10. Também explica a função "executar", que permite acessar programas e configurações do sistema operacional.
O documento apresenta uma palestra sobre o framework .NET, linguagem C# e padrão MVC. Inclui detalhes sobre o palestrante Luis Fernando Marques e sua experiência, além de explicar conceitos como o que é .NET, características da plataforma, história e funcionalidades do C# e arquitetura MVC. Apresenta demonstrações práticas utilizando C#, Windows Forms e ASP.NET com banco de dados SQL Server.
O documento resume os principais tópicos sobre a linguagem C#. Ele discute 1) a história e características de C#, 2) os tipos de dados suportados como inteiros, strings e arrays, e 3) conceitos de programação orientada a objetos como classes, herança e polimorfismo.
O documento fornece uma introdução ao .NET Framework, abordando tópicos como CLR, Metadata, Assemblies, CTS, CLS, MSIL e outras tecnologias fundamentais da plataforma .NET.
O documento discute os principais conceitos de programação orientada a objetos em C#, incluindo classes, objetos, construtores, interfaces, campos, métodos, visibilidade e exemplos de implementação destes conceitos.
Ao final da aula, os alunos saberão identificar as principais diferenças entre a programação estruturada e a programação orientada a objetos.
Apresentar aos alunos uma pequena revisão de C# e a IDE Visual Studio.
Este documento fornece instruções passo-a-passo para implementar um menu Ribbon em C# usando Windows Forms. Ele descreve como adicionar um TabControl, TabPages, painéis, rótulos e botões, e como criar janelas filhas e conectá-las aos botões do menu.
O documento apresenta os fundamentos da programação orientada a objetos. Resume os principais conceitos como objetos, classes, encapsulamento, herança e polimorfismo. Explica a diferença entre a programação estruturada e orientada a objetos.
O documento resume as principais informações profissionais e experiência de Renato Groffe na área de tecnologia, incluindo mais de 15 anos de experiência, pós-graduação em engenharia de software, MBA em business intelligence, além de cursos e certificações técnicas. O documento também fornece instruções e links para instalação do Visual Studio 2015 CTP 5 em uma máquina virtual e resume os principais recursos novos do C# 6.0 e do Visual Studio 2015.
Demonstrar a importância do planejamento da interface do usuário (UI) e escolha dos elementos visuais que melhor se adaptem ao público-alvo.
Apresentar ferramentas que auxiliem na criação e testes de layouts e estruturas visuais de um website.
O documento apresenta os conceitos fundamentais de programação orientada a objetos, incluindo classes, objetos, encapsulamento, herança e polimorfismo. Também mostra como criar uma classe em C# para representar objetos do mundo real, como pessoas.
Este documento fornece uma introdução sobre diagramas de classes e análise orientada a objetos. Resume três pontos principais:
1) Diagramas de classes descrevem classes de objetos e relacionamentos entre elas.
2) Análise orientada a objetos envolve identificar objetos e suas interações em um domínio.
3) Modelos conceituais de classes de domínio representam conceitos independentemente de implementação.
This document discusses experiences with Test Driven Development (TDD) in a corporate environment. It describes challenges with current development practices that lead to bugs and difficulties, benefits of TDD like secure development and reduced bugs, and a case study of successful TDD adoption on a large project. Common myths about TDD are also addressed.
Este documento fornece informações sobre um curso de desenvolvimento em C#, incluindo contatos, avaliação, introdução à linguagem C# e ao framework .NET, e depuração.
Este documento apresenta uma agenda para um mini-curso gratuito sobre a linguagem de programação Go. A agenda inclui tópicos como motivação, configuração de ambiente, estrutura da linguagem, funções, valores compostos, tipos personalizados, módulos, execução concorrente e utilitários. O objetivo é fornecer uma introdução abrangente aos principais recursos e conceitos da linguagem Go.
Baixe mais arquivos em http://pastadomau.wikidot.com.
Este trabalho mostra de forma superficial (que modéstia!) os conceitos básicos de duas linguagens de programação: Pascal e C++. Os tópicos abordados são os básicos necessários para que um programador que desconheça a linguagem consiga elaborar um pequeno programa e compreender as principais características de cada linguagem. Entre os itens apresentados estão os tipos de dados oferecidos por cada uma das linguagens bem como o modo que cada uma trabalha com eles.
O documento apresenta o professor Claudio Cesar de Oliveira Cordeiro e seu currículo acadêmico e profissional. Ele também fornece um índice do capítulo 1 sobre conceitos básicos de informática, incluindo hardware, software, sistemas de numeração e linguagens de programação.
O documento descreve a estrutura básica de um programa em C, incluindo a função main(), declaração de variáveis, tipos de dados, bibliotecas, comentários e pré-processador.
Este documento apresenta notas de aula sobre a disciplina Linguagens e Técnicas de Programação ministrada na FATEC de Santo André. O conteúdo programático aborda noções básicas de algoritmos, lógica de programação e introdução à linguagem C.
Este documento fornece uma introdução à linguagem C#, abordando sua estrutura, tipos, variáveis, operadores, tratamento de erros e outros conceitos fundamentais. O foco está na entrada e saída de dados usando a classe Console, bem como na conversão entre tipos primitivos. Enumerações são introduzidas como uma alternativa às constantes tradicionais.
Typescript no fronte no back com DockerMVP Microsoft
O documento apresenta Thiago da Silva Adriano, um especialista em TypeScript e Docker. Ele irá falar sobre introdução ao TypeScript, introdução ao Docker e exemplos práticos utilizando ambas as tecnologias. O documento também lista algumas aplicações em que TypeScript e Docker podem ser usados, como aplicativos mobile, chatbots e Internet das Coisas.
Codificação segura em C para sistemas embarcadoshenriqueprossi
O documento discute codificação segura em C para sistemas embarcados. Apresenta as credenciais do autor e explica porque C é uma linguagem popular para sistemas embarcados, apesar de oferecer pouca verificação de tempo de execução. O autor discute como padrões de codificação e ferramentas de análise de código podem ajudar a evitar erros comuns em C, como manipulação incorreta de strings e overflow de buffer.
O documento discute os tópicos abordados na segunda fase do treinamento de desenvolvimento de sistemas, incluindo lógica de programação e orientação a objetos. Os principais conceitos apresentados são arrays, enumerações, namespaces, comentários, estruturas, tratamento de exceções, classes, atributos e métodos.
O documento resume as principais novidades do Visual Studio 2010 e do .NET Framework 4.0, incluindo objetos tipados dinamicamente, parâmetros opcionais e nomeados, programação paralela com o TPL e PLINQ, melhorias no Entity Framework 4 e WPF/Silverlight.
O documento apresenta uma introdução à linguagem de programação C, abordando seus principais conceitos como variáveis, tipos de dados, operadores, funções printf() e scanf(), entre outros. Em 3 frases: O documento fornece uma visão geral da sintaxe da linguagem C, apresentando seus elementos básicos como declaração de variáveis, tipos de dados, funções de entrada e saída e operadores aritméticos.
O documento apresenta Anders Hejlsberg, criador do TypeScript, e fornece uma introdução ao TypeScript, incluindo seus recursos principais como tipagem estática, classes, interfaces, enums e generics. O TypeScript pode ser usado no front-end, back-end, mobile, chatbots, Internet das Coisas (IoT) e games.
O documento apresenta uma introdução ao TypeScript, incluindo exemplos práticos de como usá-lo para desenvolver aplicativos frontend, backend, IoT e chatbots com JavaScript. A palestra discute conceitos como transpilação, tipos, orientação a objetos, classes, interfaces, enums e generics em TypeScript.
O documento apresenta uma introdução à linguagem de programação C# utilizando o Visual Studio. Aborda noções básicas como variáveis, tipos de dados, operadores, estruturas de controle e repetição. Também introduz conceitos de orientação a objetos como classe, métodos e atributos.
O documento fornece uma introdução ao .NET Framework, discutindo o que é o .NET Framework, suas principais características e o que pode ser desenvolvido com ele. Também apresenta conceitos-chave como o Common Language Runtime (CLR) e o papel do compilador JIT.
O documento apresenta uma introdução à linguagem C# e à IDE Visual Studio. Apresenta os objetivos do curso, os tipos de dados em C#, operadores matemáticos e lógicos, e exercícios práticos no Visual Studio para aplicar lógica de programação.
Apresentação Introdução Typescript - .Net Caxias do SulGlaucia Lemos
1) O documento introduz o TypeScript e suas principais características como tipagem estática, classes, interfaces e suporte a programação orientada a objetos.
2) TypeScript foi criado para lidar com a complexidade de códigos JavaScript modernos e torna o código mais previsível e fácil de depurar.
3) Apesar de TypeScript adicionar tipagem estática, JavaScript continua sendo o futuro e pode ser usado em diversos ambientes como front-end, back-end, mobile e IoT.
Este documento discute conceitos básicos de web services usando .NET. Web services permitem a execução remota de procedimentos através de HTTP e XML. O documento descreve como criar um web service simples para ler e escrever registros de vendas de um banco de dados remoto.
O documento descreve os conceitos básicos de expressões regulares, incluindo seus metacaracteres e como eles são usados para procurar ou substituir strings. Os metacaracteres podem representar qualquer caractere, grupos de caracteres, repetições e âncoras de início e fim de string. Exemplos ilustram como cada metacaractere funciona.
Este documento descreve um projeto para criar uma Academia de Jogos Matemáticos com um portal web. O projeto inclui uma sala para ensinar estratégias de jogos matemáticos a alunos e prepará-los para campeonatos, além de oficinas para pais e módulos de jogos no portal para registrar resultados.
O documento descreve conceitos básicos do ASP.NET, incluindo que ele é uma remodelação completa da tecnologia web da Microsoft, usa controles do lado servidor e programação orientada a eventos para criar páginas dinâmicas, e mantém o estado entre requisições para fornecer uma experiência mais semelhante a aplicativos desktop.
O documento discute conceitos básicos de ASP.NET, incluindo ligação a bases de dados, data binding, e controles como Repeater, DataList, GridView, e DetailsView. Explica como configurar strings de ligação, acessar configurações, e usar esses controles para exibir dados de forma tabular ou lista.
O documento discute técnicas para posicionar elementos em uma página web, incluindo posicionamento estático, uso de tabelas e definição de estilo com CSS. Apresenta exemplos de como posicionar uma bola em uma quadra de basquete usando cada técnica e explica propriedades CSS chave como top, left e z-index para posicionamento.
O documento introduz as CSS (Cascading Style Sheets) e explica como definir estilos externamente, internamente e localmente. As CSS permitem separar o conteúdo do HTML da formatação e estilo através de seletores, propriedades e valores. São explicados os tipos de seletores como tag, ID e classe para aplicar estilos específicos.
O documento introduz o conceito de tabelas em HTML, descrevendo sua estrutura básica com as tags <table>, <tr> e <td>, e seus atributos principais como align, valign e bgcolor para organizar e estilizar o conteúdo.
O documento explica o que é mapeamento de imagens, os tipos de zonas que podem ser criadas (circunferência, retângulo, polígono) e como criar um mapa em HTML especificando as zonas e vinculando o mapa a uma imagem.
O documento introduz os conceitos básicos de HTML, incluindo (1) sua definição como linguagem de marcação para formatar informações na web, (2) sua estrutura básica de tags como <tag>conteúdo</tag>, e (3) exemplos comuns de tags como <b> negrito </b> e <img> para imagens.
O documento discute os métodos GET e POST no protocolo HTTP, explicando que GET é usado para recuperar dados via URL enquanto POST envia dados através de um canal STDIN de forma mais segura, tipicamente usado em formulários.
O sistema LiveQuiz permite que os alunos respondam perguntas em tempo real para aumentar a motivação e incentivar o estudo de maneira descontraída, enquanto o administrador gerencia as perguntas e visualiza as respostas através de um projetor e servidor central. Futuras versões do LiveQuiz trarão novas funcionalidades como categorias de dificuldade, suporte a dispositivos móveis e edição offline de questionários.
O documento discute os conceitos básicos do ADO.NET, incluindo sua introdução como sucessor da tecnologia ADO da Microsoft, com foco em permitir acesso flexível e estável às bases de dados através de classes especializadas na .NET Framework. Também resume os tipos de acesso ligado e desligado, e discute classes e namespaces chave do ADO.NET como SqlConnection e SqlCommand.
O documento discute várias situações práticas para acesso a dados usando ADO.NET, incluindo conexão a bancos de dados, execução de comandos, acesso a dados "connected" e "disconnected", atualização de dados "disconnected" e uso de DataSets.
2. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• Introdução à .net Framework
• Bases de Programação em C#
• Programação Orientada a Objectos em C#
• O essencial da plataforma .net
• Formularios Windows
4. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
C# VB .net J# ...
Windows
ASP .net
Web Controls
Web Services
Windows Forms
Common Language Runtime (CLR)
.NET Framework Class Library (FCL)
5. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• Máquina Virtual
– Implementação da Microsoft da
especificação Common Language
Infrastructure (CLI)
• Compilador JIT (Just in time)
– Traduz código intermédio MSIL
em código nativo
– Possui mecanismos de
optimização da compilação
• Garbage Collection
• Gestão de Thread’s
• Exception Handling
C# Compiler
VB Compiler
J# Compiler
...
(outros)
MSIL JIT
Native
Code
6. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• Especificação desenvolvida
pela Microsoft
• Define todo o ambiente se
suporte a linguagens de alto
nível
• Especifica essencilamente
quatro aspectos:
– Common Type System (CTS)
– Metadata
– Common Language
Specification (CLS)
– Virtual Execution System
(VES)
Uniformização e Licenciamento:
Standard ECMA-335, Common
Language Infrastructure (CLI)
ISO/IEC 23271, Common Language
Infrastructure
7. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• Inclui a Base Class Library
• Incluí classes próprias da
Microsoft
• Inclui uma um vasto
número de funcionalidades
comuns
• Facilita o trabalho ao
programador
Base Classes Library (BCL)
Exemplos de aplicação
• Manipulação de Ficheiros
• Imagem e Desenho
• Interacção com Bases de Dados
• Manipulação de documentos XML
• Comunicações
• Web
8. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• Introdução
• Tipos de dados
• Variáveis
• Constantes
• Controlo de fluxo
• Arrays Unidimensionais
• Arrays Multidimensionais
• Jagged Arrays
9. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• O Primeiro programa
using System;
namespace PrimeiroPrograma
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("O meu 1o programa em c#");
}
}
}
10. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Tipos Numéricos
Nome Tamanho
(em bytes)
Gama Sinal
byte 1 0 a 255 Não
sbyte 1 -128 a 127 Sim
short 2 -32 768 a 32 767 Sim
ushort 2 0 a 65 535 Não
int 4 -2 147 483 648 a 2 147 483 648 Sim
11. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Tipos Numéricos (continuação)
Nome Tamanho
(em bytes)
Gama Sinal
uint 4 0 a 4 294 967 295 Não
long 8
-9 223 372 036 854 775 808 a
9 223 372 036 854 775 808
Sim
ulong 8 0 a 18 446 744 073 709 551 616 Não
float 4 ±1.5 × 10−45 a ±3.4 × 1038 Sim
double 8 ±5.0 × 10−324 a ±1.7 × 10308 Sim
decimal 16 ±1.0 × 10−28 a ±7.9 × 1028
Sim
12. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Tipo Lógico
Nome Tamanho
(em bytes)
Gama
bool 1 true ou false
Caracteres
Nome Tamanho
(em bytes)
Descrição
char 2 Representa um caracter (letra)
13. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
char char1 = 'X'; // Caracter literal
char char2 = 'x0058'; // Hexadecimal
char char3 = (char)88; // Cast de valor do tipo inteiro
char char4 = 'u0058'; // Unicode
char char5 = '''; // Sequência de escape
Caracteres – Exemplos de Utilização
14. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Caracteres – Sequências de Escape
Seq. Descrição
’ Plica
” Aspa
Barra para trás
0 Valor nulo
a Som (beep)
v Tabulação Vertical
Seq. Descrição
b Backspace
f Form Feed
n Nova linha
r Ir para o inicio da linha
t Tabulação horizontal
15. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Cadeias de Caracteres (Strings)
• São objectos
• Ocupam sempre um mínimo de 20 bytes
• Uma string é representada, em código, através de aspas
altas (“”)
string str = "Representação de uma string.";
16. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• Podem ser declaradas em
qualquer parte do código
• É boa prática respeitar as
convenções de nomes para
variáveis.
• Uma variável deve ser sempre
inicializada antes de uzada
Convenções de Nomes:
www.irritatedvowel.com/Programming/Standards.aspx
17. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• Úteis para representar
valores que não mudam ao
longo do código
• São declaradas através do
uso do termo const
• Devem ser sempre
inicializadas ao mesmo
tempo quesão declaradas
• Podem ser declaradas em
qualquer ponto do código
18. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Precedência Operador Descrição
Primária
(expressão) Agrupamento de expressões
++ ou -- Pós-incrementação ou pós-decrementação
Unária
+ ou - Sinal numérico
! Negação
~ Complemento
++ ou -- Pré-incrementação ou pré-decrementação
(tipo) Cast
Multiplicativa
* Multiplicação
/ Divisão
% Resto
Aditiva
+ Adição
- Subtracção
19. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Precedência Operador Descrição
Deslocamento
<< Deslocamento à esquerda
>> Deslocamento à direita
Relacional
< Comparação “menor que”
> Comparação “maior que”
<= Comparação “menor ou igual que”
=> Comparação “maior ou igual que”
is Comparação de tipos de dados
Igualdade
== Teste de igualdade
!= Teste de diferença
Operações
lógicas
binárias
& And binário
^ Xor binário
| Or binário
20. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Precedência Operador Descrição
Operações
lógicas sobre
expressões
&& And
|| Or
? : Condição
Atribuição
= Atribuição simples
*=
/=
%=
+=
-=
<<=
>>=
&=
^=
|=
Atribuição pós operação da expressão com a
varíavel de atribuição.
Exemplo:
x +=3 ;
é equivalente a:
x=x+3;
21. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
if if-else
int x = 1;
if (x > 0)
{
Console.WriteLine("É maior
que 0");
}
int x = -4;
if (x > 0)
{
Console.WriteLine("É maior
que 0");
}else{
Console.WriteLine("É menor
ou igual a 0");
}
22. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
if-else if [-else] switch-case
int x = -4;
if (x > 0)
{
Console.WriteLine(
"É maior que 0");
}else if(x < 0){
Console.WriteLine(
"É menor que 0");
}else{
Console.WriteLine(
"É 0!");
}
string mes;
switch (x)
{
case 1:
mes = "Janeiro";
break;
case 2:
mes = "Fevereiro";
break;
(...)
default:
mes = "Mes Invalido";
}
23. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
for while
int t = 2;
for (int i = 1; i <= 10; i++)
{
Console.WriteLine(
t+" x " + i + " = " + i*t);
}
int t=2;
int i=1;
while (i<=10)
{
Console.WriteLine(
t+" x " + i + "
= " + i*t);
i++;
}
24. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
do-while
int t=2;
int i=1;
do{
Console.WriteLine(
t+" x " + i + “
= " + i*t);
i++;
}while (i<=10);
Break e Continue
• Break: termina o ciclo no
ponto é em que é executado;
• Continue: termina uma
interação no ponto é que é
executado e inicia
imediatamente a nova
interação
25. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
int pares[5];
ou
int []pares = new
int[5];
0 2 4 6 (N-1) x 2
0 1 2 3 N-1
• Sintaxe:
Declaração estática
(para tipos elementares)
Tipo nome[N];
Ou
Declaração dinâmica
tipo [] nome=new tipo[N];
Exemplo:
int N = 5;
int []pares = new int[N];
for (int i = 0; i < N; i++)
pares[i] = 2 * i;
int[] pares = { 0, 2, 4,6 };
int[] pares = new int[]
{0, 2, 4, 6 };
Inicialização Imediata
Inicialização Dinâmica
26. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• Dimensão 2 (Exemplo):
int [,]matriz = new int[3,4];
//inicialização dinâmica
for (int i = 0; i < matriz.GetLength(0); i++)
for (int j = 0; j < matriz.GetLength(1); j++)
matriz[i, j] = i + j;
0 1 2 3
0 1 2 3
1 2 3 4
2 3 4 5
0
1
2
27. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• Dimensão 2
(Exemplo da matriz identidade):
//inicialização estática
int [,]matriz = new
int[3,3]{
{1,0,0},
{0,1,0},
{0,0,1}};
• Dimensão 3
int [,,]matriz = new int[2,4,2];
1 0 0
0 1 2
0 1 0
0 0 1
0
1
2
28. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
int [][]jagged = new int[4][];
jagged[0] = new int[]{0,1,2};
jagged[1] = new int[]{1,2};
jagged[2] = new int[]{2,3,4,5};
jagged[3] = new int[]{3};
0 1 2
0 1 2
1 2
2 3 4 5
0
1
2
33
29. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• Conceitos Básicos
• Sistema de Tipos do CLR
• Estrutura e Mecanismos das
Classes
• Construtores
• Procedimentos e Funções
• Conversão entre tipos
• Enumerações
• Namespaces
• Tratamento de Excepções
30. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Programação Oriendata a Objectos
• Cada entidade de um problema
passa a ser representada por um
objecto
• Aproximação à realidade
• Cada objecto é representado por
uma “classe” (class)
• As características e
comportamentos dos objectos
são traduzidas por atributos e
métodos
31. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Encapsolamento
• Protecção de estruturas
• Criação de interfaces
(através de funções, por
exemplo)
class Encapsolamento
{
private int a;
public int GetA()
{
return a;
}
}
32. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Herança
• Representação de entidades
que herdam características e
comportamentos de outras
Veiculo
Carro Bicicleta Moto
Polimorfismo
• Objectos diferentes, mas com os mesmos métodos que,
ainda assim, traduzem comportamentos diferentes.
33. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Referências
• Ao manipular um objecto, este
não é manipulado directamente,
mas sim a sua referência.
• Uma referência vazia contem o
valor null.
MyObject a
MyObject b
MyObject c
Instância A
Instância B
34. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Boxing/Unboxing
• Capacidade de adaptar tipos
elementares a objectos;
int i = 5;
object o= i; //boxing
i.ToString(); //boxing
i=(int)o;//unboxing
Referência this
• Representa uma
referência para o objecto
corrente
35. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Níveis de acesso para membros de uma classe
Modificador Descrição
public Visível para fora da classe onde está definido.
protected Visível dentro da classe onde foi declarado e em classes
derivadas desta.
private Visível apenas nas classes onde está definido.
internal Visível apenas na própria unidade de compilação (assembly).
protected internal Visível apenas na própria assembly e em classes derivadas da
classe onde está declarado.
Níveis de acesso de topo (entre classes)
Modificador Descrição
public Permite que uma classe seja visível a partir de outro assembly.
internal A classe é apenas visível dentro do próprio assembly. Obtém-se
o mesmo efeito se nenhum modificador for incluído na
declaração da classe
36. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Membros estáticos
• Variáveis estáticas são
partilhadas por todas as
instâncias da classe a que
pertencem;
• Métodos estáticos são
executados fora da
instanciação de objectos
37. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• São executados sempre que
um objecto é criado
• São usados tipicamente
para inicialização de
atributos
• Permitem a passagem de
parâmetros
• Na prática, consiste num
método com o mesmo
nome da respectiva classe e
sem especificação de tipo
de restorno
class ObjectA
{
private int a;
public ObjectA(int a){
this.a = a;
}
public ObjectA(){
a = 0;
}
}
38. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Função
public int Le(){
return a;
}
Procedimento
public void Escreve(int a){
this.a = a;
}
Overloading
public int Soma(int a,int b,
int c){
return a+b+c;
}
public int Soma(int a,int b){
return a+b;
}
• As funções tomam o mesmo nome e o
mesmo tipo de retorno, mas possuem
diferentes alinhamentos de parâmetros
de entrada
39. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Passagem de Parâmetros
• As variáveis são passadas
por cópia
• Mesmo sendo o parâmetro
uma referência, é passada
uma referência desse
parâmetro
Passagem por referência (ref)
• Util para tipos elementares
public void PSomar(int a,
int b, ref int res){
res = a + b;
}
public int FSomar(int a,
int b){
return a + b;
}
40. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Variáveis de Saída (out)
• Util quando se tem uma
função com várias saídas
• Difere da passagem por
referência porque não exige
que as variáveis estejam
declaradas
Exemplo (mínimo e máximo)
public void Metodo(){
int []a=new int[]{2,5,8};
int min, max;
MaxMin(a, out min, out
max){
}
public int MaxMin(int []a,
out int min, out int max){
(...)
}
41. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
public class Veiculo{
public bool motorizado;
public int nrodas;
}
public class Carro : Veiculo{
public int nportas;
}
public class Bicicleta: Veiculo{
public int tipo;
}
Classe Mãe
Veículo
motorizado
nrodas
Carro
motorizado
nrodas
nportas
Bicileta
motorizado
nrodas
tipo
• Caso se pretenda que uma
classe não permita que outras
herdem as suas
características, usa-se o
modificador sealed.
Exemplo:
sealed class Veiculo{
(...)
}
42. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Polimorfismo
• É a forma mais coerente de
redefinir métodos em objectos
que derivam de outros
• Implica alguma perda de
performance
• Usa-se a palavra-chave
virtual para indicar que
um método pode ser
redefinido
• Usa-se o termo override
para indicar a redefinição de
um método
Veiculo
Carro
Andar
Redefinição Simples
Andar
Polimorfismo
class Veiculo{
public virtual void Andar(){
Console.WriteLine("[VEICULO]Andar...");
}
public void Parar(){
Console.WriteLine("[VEICULO]Parar...");
}
}
class Carro : Veiculo{
public override void Andar(){
Console.WriteLine("[CARRO]Andar...");
}
public new void Parar(){
Console.WriteLine("[CARRO]Parar...");
}
}
43. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Conversão por Casting
• Também designada por
conversão explícita
• Util para conversão entre
estruturas de memória
compatíveis
Exemplo:
Carro c = new Carro();
Veiculo v = (Veiculo)c;
Operador is
• Testa o tipo de dados do
objecto referenciado
Exemplo:
Carro c = new Carro();
Veiculo v = c;
if (v is Carro)
Console.WriteLine("Este
veiculo é na verdade um
carro!");
44. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
Operador typeof
• Identifica o tipo de um
objecto
Exemplo:
Type t = typeof(Carro);
Console.WriteLine("Desc do
tipo Carro:" + t);
Operador as
• Converte variaveis de tipos
diferentes, mas compatíveis
• Semelhante ao cast, mas não
gera excepções
Exemplo:
Carro c2 = v as Carro;
É equivalente a:
if (v is Carro)
c2 = (Carro)v;
else
c2 = null;
45. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• Representam constantes
simbólicas de um certo
tipo concreto
• São representadas
internamente por um
inteiro
• Podem ser convertidas
para inteiros através de
um cast
Exemplo:
public enum
TIPOS_VEICULOS{Carro,Bicileta,
Moto}
(...)
private TIPOS_VEICULOS tipo;
public Veiculo(TIPOS_VEICULOS t)
{
tipo = t;
}
(...)
Veiculo v = new
Veiculo(TIPOS_VEICULOS.Carro);
46. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• Util para organizar classes
• Evitar colisões por
definições de classes com
mesmo nome
• Permite uma organização
hierarquica
• O uso de um Namespace
deve ser declarado através
do termo using, no inicio
do ficheiro
MySoft
Tools
Util String
Forms Web
MySoft
MySoft.Tools
MySoft.Tools.Util
MySoft.Tools.String
MySoft.Forms
MySoft.Web
47. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• Usa-se sempre que há
porções de código com
significativa probabilidade
de gerar excepções
• O código a tratar deve ser
colocado num bloco try-
catch
• O bloco catch deve conter
codigo a executar caso a
excepção ocorra
try{
res = a / b;
}
catch(Exception ex){
Console.WriteLine("[ERRO]"
+ ex.Message);
}
48. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• A classe System.Object
• Cadeias de caracteres
(Strings)
• Colecções
• Manipulação de Ficheiros
49. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• Object é a classe da qual
todos os objectos
descendem
• Garante funcionalidades
básicas de todos os objectos
• ToString é um dos métodos
comuns a todos os objectos
• A maioria dos metodos
comuns exigem redefinição
de acordo com o abjecto
em causa
50. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• O objecto System.String
permite representar uma
cadeia de caracteres
• Contém métodos para
manipulação de strings
• O índice mínimo dos
caracteres de uma string é 0
Membro Descrição
Lenght Tamanho da string
Operador + Concatenação de strings
IndexOf Encontra uma string dentro
de outra string e devolve o
índice de posicionamento
Replace Substitui por uma nova
string todas as ocorrências
de uma string noutra string
Split Separação de strings
segundo caracteres de
separação
SubString Devolve parte de uma
string
Alguns membros úteis da classe String
51. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• Permitem agrupar e ordenar
conjuntos de objectos
• Oferecem um elevado nível de
flexibilidade na gestão dos
objectos
• Todas as classes que
representão colecções
derivam da interface
ICollection
• ArrayList e HashTable
são duas das classes mais
comuns neste tipo de
operações
• ArrayList: representa uma lista
de referencias para objectos.
Contem metodos para adição,
deslocamento ou eliminação
de elementos de forma flexível
• HashTable: Difere da classe
ArrayList essencialmente por
permitir associar uma chave a
cada elemento da lista.
52. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• Namespace System.IO
• Os objectos System.IO.StringReader e
System.IO.String.Writer permitem facilmente a leitura e
escrita de ficheiros, respectivamente
Exemplo de leitura:
System.IO.StringReader sr;
sr=new StringReader("c:teste.txt");
string s = sr.ReadToEnd();
Exemplo de escrita:
System.IO.StringWriter sw;
sw=new StringWriter();
string s = "Conteudo de Ficheiro";
sw.Write(s);
53. Hélder Oliveira helderjmo@gmail.com Introdução ao C#
• No Visual Studio, podem ser
criados a partir de um
Projecto do tipo “Windows
Application”
• Usam assemblies da .NET
Framework que contém uma
variedade de ferramentas
para formulários Windows
Quem conhecer bem as regras estabelecidas pelo CLI, está apto a criar novas linguagens de alto nível para correr sobre a plataforma;Boa estratégia por parte da MS para “angariar” programadores para a sua plataforma (ex: J#)
Inclui um vasto número de funcionalidades comuns
Introdução-> programa simples
Os programas são organizados em classes encapsulam dados e métodos
O byte é unidade minima em termos de endereçável pela maioria dos processadores
O byte é unidade minima em termos de endereçável pela maioria dos processadores\\f -> util para impressoras de papel continuo para avançar para a proxima página
O byte é unidade minima em termos de endereçável pela maioria dos processadores\\f -> util para impressoras de papel continuo para avançar para a proxima página
São objectos com um tratamento especial
Faz sempre a primeira iteração
Muitas vezes designados tabelas dentro de tabelasFalar num array unidimensional de strings ... Na pratica é um jagged array...
Polimorfismo:Comportamento andar: no carro e moto atraves de um motor... Na bicicleta atraves do pedal
Este processo n é bom em termos de performance
Mostrar exemplos com o visual studio
Mostrar exemplos com o visual studio
Polimorfismo é tipicamente util em arrays de obejctos