Desenvolvimento ASP.net

Slides:



Advertisements
Apresentações semelhantes
Programação em Java Prof. Maurício Braga
Advertisements

Paulo Marques Hernâni Pedroso
Vitor Santos Microsoft Corporation
Segurança na .NET Framework
Criar uma Aplicação Web em ASP.NET v Tipos de Sites Web gerados pelo VS2005 File-system Web sites Ficheiros armazenados num directório local É utilizado.
.Net Para Web Plataforma.Net 2º Semestre 2009 > PUCPR > Tecnologia de Programação II Bruno C. de Paula.
BD em.NET: Passo a passo conexão com SQL Server 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.
Windows Forms 2º Semestre 2010 > PUCPR > TPU Bruno C. de Paula.
Interação entre objetos
PRDS - Programa de Residência em Desenvolvimento de Software Laboratório de Engenharia de Software (LES) da PUC-Rio Carlos Lucena
Orientação a Objetos: Encapsulamento e Classificação
Java: Pacotes e Modificadores de Visibilidade
Java: Pacotes e Modificadores de Visibilidade
Programação Básica em Java
1 MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE) BREVE HISTÓRICO CARACTERÍSTICAS CONCEITOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS MODELAGEM DE ANÁLISE E DE.
Linguagens de programação
Arrays Profa. Isabel Harb Manssour (Material adaptado das aulas dos Profs.: Luciana Nedel, Júlio Machado e Bernardo Copstein) Arrays Exercícios.
Alexandre Parra Site: Linguagem Java Alexandre Parra Site:
1 Professor Rogério B. de Andrade - Aula 001- Dez/2008 Técnicas e Linguagem de Programação.
9 Controle de fluxo Seqüenciadores. Jumps. Escapes. Exceções.
7 Abstração Genérica Unidades genéricas e instanciação.
PROGRAMAÇÃO DISTRIBUÍDA EM JAVA Verão/2001
Aula 4 Nomes, Vinculações, Tipos e Escopos
Tiago Tagliari Martinez Sistemas de Objetos Distribuídos 25/06/2002
JAVA ENUMS © 2009 by Jorge L. de Souza Leão março de 2009 PEE - COPPE/UFRJ.
Capítulo 9 Herança 1.
Fases do desenvolvimento de software UML
A linguagem C#.
Métodos Programação II 1 Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre Elementos de Classe, class wrappers.
Classes e objetos Arrays e Sobrecarga
Classes e objetos P. O. O. Prof. Grace.
Introdução a Programação Orientada a Objetos
Introdução a Programação JAVA
Estrutura de Dados em Java
Paradigmas de Linguagens de Programação Paradima da Programação Orientada à Objetos Professor: Armando Hage Belém-2008.
Tópicos Tipos de Dados Variáveis por Valor Variáveis por Referência
Conhecendo o Visual Studio.NET
Introdução ao C# e ao visual studio
Linguagem Técnica de Programação VI Prof.: Luiz Gustavo Jordão Soares
Concorrência em Java Threads em Java.
PROGRAMAÇÃO I UNIDADE 1.
Programação Orientada a Objetos com Java
Flávia Andrade de Souza Rodrigo Mibielli Peixoto
METODOLOGIA PARA DESENVOLVIMENTO DE SISTEMAS Prof. Dr. rer. nat. Daniel D. Abdala 1.
Linguagem Técnica de Programação VI
Linguagem Técnica de Programação VI Prof.: Luiz Gustavo Jordão Soares.
Paradigmas da Programação – Semestre 2 – Aula 2 Introdução ao VS.Net Professores: Fábio de Paula Santos Eduardo Mantovani.
Atributos, Encapsulamento e Interface em Java
Chamada Remota de Procedimentos
7 Arrays.
Classes, Objetos, Atributos e Métodos JAVA
Erick Luis Moraes de Sousa
Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento
Capítulo 5 Garbage Collector.
XIV Jornada de Cursos .NET com C# Antônio Júnior Bruno Inojosa.
T. D. S. I. PARA WEB Prof. Emmanuel Nolêto. Java RMI.
Banco de Dados Parte 04 Ceça. Ceça Moraes 2 Conteúdo  Os três níveis da arquitetura  Mapeamentos  Arquitetura cliente-servidor.
Excepções Conceito de Excepção A classe Exception
Listas Simplesmente Encadeadas
Wagner Santos C. de Jesus
Bruno Inojosa MCP .NET Framework
Linguagem de Programação C#
Java Kickstart, day 2 Semelhanças com linguagem C.
A linguagem C# Paulo Marques Departamento de Eng. Informática
Coleções, Genéricos, Threads Marco Antonio. Collection Principais métodos da interface Collection.
Bruno Inojosa MCP .NET Framework
Copyright 2000, Departamento de Informática, UFPE. Todos os direitos reservados sob a legislação em vigor. Orientação a Objetos e Java.
 é uma iniciativa da Microsoft, que visa uma plataforma única para desenvolvimento e execução de sistemas e aplicações.  Todo e qualquer código gerado.
Grupo de Estudos.Net Generics. Grupo de Estudos.Net OverView New Feature do.Net Framework 2.0 Conceito de tipo parametro Definir classe e métodos Generalização.
Programador/a de Informática
Transcrição da apresentação:

Desenvolvimento ASP.net .Net Apprentice Desenvolvimento ASP.net (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

Desenvolvimento ASP.net .Net Apprentice Desenvolvimento ASP.net Framework .net Common Language Runtime Assembly Garbage Collection Conceitos de C# Características da Linguagem Operadores e estruturas (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

Framework .net .Net Apprentice (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

Visão .net .Net Apprentice (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

.Net Apprentice Framework .net Conjunto de tecnologias para o desenvolvimento e utilização de componentes para a criação de: Web Forms Web Services Aplicações Windows Suporta todos as fases da produção de Software Desenvolvimento Debugging Distribuição Manutenção (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

Objectivos da Microsoft: .Net Apprentice Objectivos da Microsoft: To provide a consistent object-oriented programming environment whether object code is stored and executed locally, executed locally but Internet-distributed, or executed remotely. To provide a code-execution environment that minimizes software deployment and versioning conflicts. To provide a code-execution environment that promotes safe execution of code, including code created by an unknown or semi-trusted third party. To provide a code-execution environment that eliminates the performance problems of scripted or interpreted environments. To make the developer experience consistent across widely varying types of applications, such as Windows-based applications and Web-based applications. To build all communication on industry standards to ensure that code based on the .NET Framework can integrate with any other code. .NET Framework Conceptual Overview (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

Framework .net .Net Apprentice (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

Dois componentes principais: .Net Apprentice Dois componentes principais: Common Language Runtime .Net Framework class Library (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

Common Language Runtime - CLR .Net Apprentice Common Language Runtime - CLR Ambiente de execução das aplicações desenvolvidas em .Net Fornece um conjunto de serviços, ao nível das fases de desenvolvimento, de distribuição e de execução, que melhoram o desempenho da aplicação. Gere o código em tempo de execução, fornecendo serviços como: Gestão de memória Gestão de threads Execução remota Segurança de tipos de dados e código Conceito de Managed Code Máquina Virtual (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

.Net Framework .Net Apprentice (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

Base Class Library (.NET Framework) Support .Net Apprentice CLR - Arquitectura Faz a integração com a .NET Framework class library. Base Class Library (.NET Framework) Support Sequencia a distribuição dos componentes Tratamento de erros Procedimentos de segurança baseados na identificação do utilizador e na localização do código Thread Support COM Marshaler Fornece classes e interfaces para utilização de threads Type Checker Exception Manager Converte código MSIL para código nativo optimizado Security Engine Debug Engine Impede conversões inadequadas e gere o acesso às variáveis MSIL to Native Compilers (JIT) Code Manager Garbage Collector (GC) Permite fazer debug da aplicação Gestão de memória Class Loader Controla a execução do código Gere a metadata e o carregamento das classes necessárias. (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

CLR - Características Common Type System Compilador Just-in-time (JIT) .Net Apprentice CLR - Características Common Type System Especifica um conjunto de tipos de dados Compilador Just-in-time (JIT) O JIT converte o código intermédio (MSIL) em código máquina nativo optimizado Gestão de memória – Garbage Collector Evita problemas de “falta de memória disponível” Tratamento de Excepções Permite um tratamento de erros mais elegante Gestão de Threads (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

Compilação e Execução Runtime Engine Compiler Class Loader .Net Apprentice Compilação e Execução EXE/DLL (MSIL and metadata) Source Code Compiler Class Libraries (MSIL and metadata) Class Loader JIT Compiler with optional verification Trusted, pre-JITed code only Call to an uncompiled method Managed Native Code Execution Security Checks Runtime Engine (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

Common Language Runtime .Net Apprentice Common Language Runtime managed code = MSIL + Metadata Microsoft intermediate language linguagem assembly abstracta, independente do CPU. Metadata descrição dos tipo de dados Just in time Compilation – JIT JIT usa as instruções da MSIL e Metadata para criar código máquina nativo em tempo de execução Verificação do código Managed code não é interpretado, é executado na linguagem máquina do computador (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

Just in time Compilation .Net Apprentice Just in time Compilation (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

Common Type System Common Type System .Net Apprentice Common Type System  Common Type System  Define como os tipos são declarados, usados e geridos no runtime. Fornece um modelo orientado aos objectos para suportar a implementação de várias linguagens. Define regras que as linguagens devem seguir de modo a permitir que objectos em diferentes linguagens possam interagir Value / Reference Types Todos os objectos derivam de System.Object (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

Common Type System Classificação dos tipos .Net Apprentice (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

Framework Class Library .Net Apprentice Framework Class Library .NET Framework Class Library O namespace System é o namespace raiz dos tipos principais Organização numa hierarquia de nomes System.Collections.ArrayList representa o tipo ArrayList que pertence ao namespace System.Collections (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

Class Library- Exemplos .Net Apprentice Class Library- Exemplos System.Collections Contains interfaces and classes that define various collections of objects, such as lists, queues, bit arrays, hashtables and dictionaries. System.Data Contains classes that constitute most of the ADO.NET architecture. System.IO Contains types that allow synchronous and asynchronous reading and writing on data streams and files. System.Net.Mail Contains classes used to send electronic mail to a Simple Mail Transfer Protocol (SMTP) server for delivery. System.Web.UI Provides classes and interfaces that allow you to create controls and pages that will appear in your Web applications as user interface on a Web page. (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

Assembly Contêm código e metadata para o CLR .Net Apprentice Assembly Contêm código e metadata para o CLR Constitui-se como unidade básica de distribuição Podem ser do tipo EXE e DLL Simplifica a instalação de aplicações e gestão de versões. (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

Algoritmo “Garbage Collection” .Net Apprentice Algoritmo “Garbage Collection” Espera que todas as threads terminem Verifica quais os objectos que estão referenciados. A memória ocupada pelos objectos não referenciados é libertada. Desloca os objectos válidos para a “compact heap” Actualiza as suas referências (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

Garbage Collection .Net Apprentice [http://w2ks.dei.isep.ipp.pt/labdotnet//files/dotnetapprentice-aspx/GarbageCollection.swf] (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

.Net Apprentice C# (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

.Net Apprentice C# vs Java Both Java and C# have their roots in C++ and share features with that language. Both languages compile to an intermediate code rather than pure machine code. Java compiles to what is known as Java Virtual Machine (JVM) bytecode, while C# compiles to Common Intermediate Language, CIL. Java bytecode is executed by an application called the Java virtual machine (JVM). Similarly, compiled C# programs are executed by the Common Language Runtime, or CLR. [The C# Programming Language for Java Developers] (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

.Net Apprentice C# vs Java Exception handling in C# is very similar to Java, with some minor differences. C# handles run-time errors (also called exceptions) with the try...catch construct, just as in Java. The System.Exception class is the base class for all C# exception classes. Like Java, C# is strongly type checked. The compiler detects where types are used in a way that may cause errors at run time. Like Java, C# provides automatic garbage collection, freeing the programmer from keeping track of allocated resources. Both Java and C# support single inheritance and multiple interface implementations. [The C# Programming Language for Java Developers] (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

C# using System; public class HelloWorld { public static void Main() { .Net Apprentice C# using System; public class HelloWorld {    public static void Main()     {      Console.WriteLine("Hello World! ");     } (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

C# Namespace (package) Classes organizadas em namespace .Net Apprentice C# Namespace (package) Classes organizadas em namespace Agrupamento lógico de classes relacionadas using keyword para aceder a classes noutro namespace using <namespace hierarchy>.<class name>; namespace <namespacename> { class Customer { ... } } using System.Web.UI.WebControls; (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

C# public enum Color {Green, Orange, Red, Blue} .Net Apprentice C# Data Types C# tem todos os tipos de dados primitivos do Java Todos os tipos de dados primitivos em C# são objectos no System namespace System.Double (ou double) System.Int32 (ou int) int.Parse(...) Enums public enum Color {Green, Orange, Red, Blue} (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

Tipos de dados object string sbyte, short, int, long .Net Apprentice Tipos de dados object string sbyte, short, int, long byte, ushort, uint, ulong char float, double, decimal bool Estes tipos são alias para os tipos definidos na framework Por exemplo, int == System.Int32 (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

.Net Apprentice C# vs Java String Em C# podem comparar-se strings com os operadores == e != Para a concatenação de strings deve ser usada a classe StringBuilder do System.Text Character escape com @ //Using String Literals string escapedPath = @"\\FileShare\Directory\file.txt"; (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

Métodos Sintaxe semelhante ao C/C++ Podem ser públicos ou privados .Net Apprentice Métodos Sintaxe semelhante ao C/C++ Podem ser públicos ou privados Suporta overloading public class MyHelloWorld { ... public void SayHello() { ... } private void SetTitle(String Title) } (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

C# value types – para os tipos primitivos como char, int, float .Net Apprentice C# Value and Reference Types value types – para os tipos primitivos como char, int, float int x=5; reference types – para classes e tipos de dados complexos. Variáveis deste tipo não contêm uma instância do tipo mas apenas uma referência para uma instância. myClass a = new myClass(); (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

C# vs Java reference types myClass a = new myClass(); myClass b = a; .Net Apprentice C# vs Java reference types myClass a = new myClass(); myClass b = a; (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

C# Passagem de parâmetros Por valor Por referência .Net Apprentice C# Passagem de parâmetros Por valor Por referência Com Ref e Out os argumento são passados por referência, possibilitando que a variável passada possa ser alterada no método. Ref obriga a inicializar a variável. Out não obriga a inicializar a variável class RefExample { static void Method(ref int i) { i = 44; } static void Main() { int val = 0; Method(ref val); // val is now 44 } (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

.Net Apprentice C# foreach O ciclo foreach que permite iterar nos itens de uma classe “container” (ex. Arrays) que implemente a interface IEnumerable public static void Main() { int[] arr1= new int[] {1,2,3,4,5,6}; foreach ( int i in arr1) { Console.WriteLine("Value is {0}", i); } } (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

.Net Apprentice C# Classes Modificadores de acesso public – visível para todos protected – visível apenas para as classes derivadas private – visível apenas dentro da classe internal – visível dentro do mesmo Assembly sealed Uma classe com o modificador sealed não pode ser herdada, a sua funcionalidade não pode ser alterada por outras classes derivadas. Final em Java (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

Herança Apenas existe herança simples public class MyClassBase { ... .Net Apprentice Herança Apenas existe herança simples public class MyClassBase { ... public void Func() { ... } } public class MyClassDeriv : MyClassBase { public new void Func() { base.Func(); ... } (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

.Net Apprentice C# Array int[] MyArray; // declares the array reference MyArray = new int[5]; //creates a 5 element integer array MyArray = new int[5] {1, 2, 3, 4, 5}; int[] TaxRates = {0, 20, 23, 40, 50}; int[][] multiArray = new int[2][]; Arrays são implementados como instâncias da classe System.Array System.Array.sort(MyArray); (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

.Net Apprentice C# Herança e classes derivadas Herança e implementação de Interface são definidas pelo mesmo operador : (extends e implements em Java) public class CountClass {... public virtual int StepUp() { return ++count; } } class Count100Class : CountClass { // Constructor public Count100Class(int x) : base(x) { } public override int StepUp() { return ((base.count) + 100); } (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

Criação de objectos // definição da classe .Net Apprentice Criação de objectos // definição da classe public class MyClass { ... } // definição da variável MyClass obj; // criação do objecto obj = new MyClass(); (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

.Net Apprentice C# vs Java Interfaces São um contracto definindo um conjunto de funcionalidades que devem ser implementadas Não têm implementação dos métodos, apenas definem assinaturas public interface IAritmetica { float add(float op1, float op2); float sub(float op1, float op2); } public class Aritmetica: IAritmetica {...} (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

C# vs Java Overriding de métodos .Net Apprentice C# vs Java Overriding de métodos Um método para poder ser overriding na classe derivada tem de ser declarado com o modificador virtual Na classe derivada o método é declarado com o modificador override public class CountClass {... public virtual int StepUp() { return ++count; } } class Count100Class : CountClass { Count100Class(int x) : base(x) { } public override int StepUp() { return ((base.count) + 100); } (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

.Net Apprentice C# Propriedades Também chamadas de “smart fields” Uma nova sintaxe abreviada para os métodos públicos Get e Set (accessors) de acesso a atributos privados da classe class MyClass { private int x; public void SetX(int i) { x = i; } public int GetX() { return x; } } (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

C# Definição de uma Propriedade Utilizaçao: class MyClass .Net Apprentice C# Definição de uma Propriedade class MyClass { private int _x; public int X { get { return _x; } set { _x = value; } }}  Utilizaçao: MyClass objvar=new MyClass(); objvar.X=10; // chamada do set e passa 10 para value int y=objvar.X; // chamada do get, devolve _x (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

.Net Apprentice C# Boxing and Unboxing O processo de conversão de um tipo valor para um tipo referência é chamado boxing. O processo inverso é dito unboxing. Permite que tipos valores sejam tratados como objectos int i = 123; object o = i; Console.WriteLine(o.ToString()); (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

C# Unboxing int i = 123; // A value type object box = i; // Boxing .Net Apprentice C# Unboxing int i = 123; // A value type object box = i; // Boxing int j = (int)box; // Unboxing (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

C# Partial Class public partial class Employee .Net Apprentice C# Partial Class  Uma classe ou interface pode ser definida em dois ou mais ficheiros de código . Todas as partes são combinadas quando a aplicação é compilada. Útil em grandes projectos. ASP.NET 2.0 usa classes parciais para separar código de desnvolvimento do código gerado automáticamente pela Framework public partial class Employee (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP