A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Desenvolvimento ASP.net

Apresentações semelhantes


Apresentação em tema: "Desenvolvimento ASP.net"— Transcrição da apresentação:

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

1 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

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

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

4 .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

5 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

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

7 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

8 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

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

10 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

11 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

12 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

13 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

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

15 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

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

17 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

18 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

19 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

20 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

21 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

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

23 .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

24 .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

25 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

26 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

27 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

28 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

29 .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 //Using String Literals string escapedPath (C) Laboratório .NET do Departamento de Engenharia Informática do ISEP/IPP

30 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

31 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

32 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

33 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

34 .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

35 .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

36 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

37 .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

38 .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

39 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

40 .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

41 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

42 .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

43 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

44 .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

45 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

46 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


Carregar ppt "Desenvolvimento ASP.net"

Apresentações semelhantes


Anúncios Google