serwery aplikacji
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 PresentationTRANSCRIPT
Serwery AplikacjiSerwery Aplikacji
ASP .NETWeb Objects
Arkadiusz Popa
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.
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;
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
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
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
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
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);
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}
}
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
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;
}}
}
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.
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();
}
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;}
}…
}
InterfejsInterfejs
Arkadiusz Popa
Interfejs to sposób na abstrakcyjną reprezentację klasy.
public interface Ifigure {float Top {
get;set;
}float Area();
}
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..