serwery aplikacji

16
Serwery Aplikacji Serwery Aplikacji ASP .NET Web Objects Arkadiusz Popa

Upload: deon

Post on 15-Jan-2016

53 views

Category:

Documents


0 download

DESCRIPTION

Serwery Aplikacji. ASP .NET Web Objects. NameSpace. using System; using System.Collections ; using System.Configuration ; using System.Data ; using System.Web ; …. Dzięki temu mamy dostęp do metod z wymienionych przestrzeni nazw. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Serwery Aplikacji

Serwery AplikacjiSerwery Aplikacji

ASP .NETWeb Objects

Arkadiusz Popa

Page 2: Serwery Aplikacji

NameSpaceNameSpace

Arkadiusz Popa

Wraz ze stworzeniem nowego Web projektu otrzymujemy wygenerowany kod:

using System;using System.Collections;using System.Configuration;using System.Data;using System.Web;….

Dzięki temu mamy dostęp do metod z wymienionych przestrzeni nazw.

Page 3: Serwery Aplikacji

Namespace ..Namespace ..

Arkadiusz Popa

Bez podania przestrzeni nazw musielibyśmy pisać np.: wywołanie metod wraz z podaniem ich przestrzeni

System.Array.Sort(strArray);System.Web.HttpCookie;

Poprzez załączenie do projektu przestrzeni nazw np.: System możemy wywoływać metody/zmienne bezpośrednio:

Array.Sort(strArray);HttpCookie;

Page 4: Serwery Aplikacji

Namespace…Namespace…

Arkadiusz Popa

Przestrzenie nazw pozwalają nam na:• ochronę kodu przed konfliktem nazw (namespace collisions)

Takie konflikty zdarzają się w dużych projektach, gdzie występuje duża ilość obiektów, gdzie dwa obiekty mogą miec nadane identyczne nazwy.

Do stworzenia własnej przestrzeni nazw wystarczy „otoczyć” wybrane klasy blokiem namespace;namespace NazwaPrzestrzeniNazw {

class Nazwa Klasy {public static string NazwaMetody() {

…}

}}

NazwaProjektu.NazwaPrzestrzeniNazw..NazwaKlasy.NazwaMetody

Page 5: Serwery Aplikacji

Namespace … przykładNamespace … przykład

Arkadiusz Popa

// Nazwa Projektu: WebProjectOnenamespace Utils {

namespace Types {class Digits {

public enum numeric {…

}}

}}

// Nazwa Projektu: WebProjectOnenamespace Utils.Types {

class Digits {public enum numeric {

…}

}}

Powyższa deklaracja jest jednoznaczna z :

Użycie: WebProjectOne.Utils.Types.Digits.numeric

Page 6: Serwery Aplikacji

Metody dostępu do Metody dostępu do klas i metodklas i metod

Arkadiusz Popa

Metoda Opis

public Dostęp do wszystkich wartości w klasach i projektach

protected Dostęp do wartości w klasie bieżącej i w klasach jej pochodnych

private Dostęp do wartości tylko w klasie bieżącej

Page 7: Serwery Aplikacji

DziedziczenieDziedziczenie

Arkadiusz Popa

C# Opis

KlasaPochodna :KlasaBazowa

Dziedziczy wartości z klasy Bazowej do pochodnej

virtual Deklaruje że wartość w klasie bazowej może zostać nadpisana w klasie pochodnej

ovveride Deklaracja że nazwa w klasie pochodnej nadpisuje taka samą nazwę w klasie bazowej

abstract Deklaruje że wartość musi zostać nadpisana w klasie pochodnej

this Wywołanie wartości z obecnej klasy

Page 8: Serwery Aplikacji

PropertiesProperties

Arkadiusz Popa

Standardowe podejście do set’erów i get’erów:

class A {public int x;public int GetX(){

return this.x;}public void SetX(int value){

this.x = value;}

}

Użycie:

A a = new A();int xpos = GetX();a.SetX(xpos + 10);

Page 9: Serwery Aplikacji

PropertiesProperties

Arkadiusz Popa

Properies (Właściwościomierz ) jest wartością pomiędzy polem a metodą. Wygląda jak pole, ale strukture ma podobną do metody.

ModyfikatorDostępu Typ NazwaWłaściwości {get {

//akcesor do czytania wartości}set {

//akcesor do pisania wartości}

}

Page 10: Serwery Aplikacji

PropertiesProperties

Arkadiusz Popa

Podejście do set’erów i get’erów w C#:class A {

public int x;public int X{

get {return this.x;

}set {

this.x = value;}

}}

Użycie:

A a = new A();int xpos = a.X; // wywołanie a.X.geta.X=xpos + 10; // wywołanie a.X.set

Page 11: Serwery Aplikacji

Propertie – read/write onlyPropertie – read/write only

Arkadiusz Popa

Property może występować jako tylko do czytaniaclass A {

public int x;public int X{

get {return this.x;

}}

}

Lub tylko do zapisywanieclass A {

public int x;public int X{

set {this.x = value;

}}

}

Page 12: Serwery Aplikacji

Proprties – gdzie jest Proprties – gdzie jest błąd?błąd?

Arkadiusz Popa

class A {public int x;public int X{

get {return this.X;

}set {

this.X = value;}

}}

Najczęstszą przyczyną błędów jest StackOverflowException wynikający ze złego użycia akcesorów dostępu.

Błąd ten powstaje w wyniku wywołania rekurencyjnego pętli. Jest to jeden z najtrudniejszych do zidentyfikowania błędów.

Page 13: Serwery Aplikacji

Klasa AbstrakcyjnaKlasa Abstrakcyjna

Arkadiusz Popa

Jest to typ klasy z której nie można tworzyć obiektów. Nie zawiera również ciała poszczególnych metod. Wszystkie klasy z niej dziedziczące będą posiadały zaimplementowane wyszczególnione w niej metody i akcesory.

public abstract class Shape {public Shape(){}public abstract float Top {

get;set;

}public abstract float Area();public abstract int Dimension();

}

Page 14: Serwery Aplikacji

Klasa AbstrakcyjnaKlasa Abstrakcyjna

Arkadiusz Popa

Implementując klasę abstrakcyjną musimy dopisać zmienne, przeciążyć jej metody i ewentualnie napisać nowepublic class Circle : Shape {

float fxCenter, fyCenter, fRadius;public Circle(){

…}public override float Top {

get {return fxCenter – fRadius;

}set {

fxCenter = value + fRadius;}

}…

}

Page 15: Serwery Aplikacji

InterfejsInterfejs

Arkadiusz Popa

Interfejs to sposób na abstrakcyjną reprezentację klasy.

public interface Ifigure {float Top {

get;set;

}float Area();

}

Page 16: Serwery Aplikacji

Namespace – Web Namespace – Web ApplicationApplication

Arkadiusz Popa

Namespace Zawartość

System.Web Application, Browser, Cache, Cookies, Request, Response. Np.:Application definiuje nam Global.asax

System.Web.SessionState

Obiekt Session. Używane do przechowywanie stanu sesji.

System.Web.Services Obiekt WebService. Używane do tworzenia i używania serwisów Web

System.Web.UI Obiekty Page i Control. Używane do tworzenia kontroli interfejsu użytkownika

System.Web.Security Autentyfikacja obiektów i modułów. Definiuje rolę, przywileje itp..