1 / 16

Serwery Aplikacji

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.

deon
Download Presentation

Serwery Aplikacji

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Serwery Aplikacji ASP .NET Web Objects Arkadiusz Popa

  2. NameSpace using System; usingSystem.Collections; usingSystem.Configuration; usingSystem.Data; usingSystem.Web; …. Dzięki temu mamy dostęp do metod z wymienionych przestrzeni nazw. Wraz ze stworzeniem nowego Web projektu otrzymujemy wygenerowany kod: Arkadiusz Popa

  3. Namespace .. 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; Arkadiusz Popa

  4. Namespace… • 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; namespaceNazwaPrzestrzeniNazw { class Nazwa Klasy { public staticstringNazwaMetody() { … } } } Arkadiusz Popa NazwaProjektu.NazwaPrzestrzeniNazw..NazwaKlasy.NazwaMetody

  5. Namespace … przykład // Nazwa Projektu: WebProjectOne namespaceUtils { namespaceTypes { classDigits { public enumnumeric{ … } } } } Powyższa deklaracja jest jednoznaczna z : // Nazwa Projektu: WebProjectOne namespaceUtils.Types { classDigits { public enumnumeric{ … } } } ArkadiuszPopa Użycie: WebProjectOne.Utils.Types.Digits.numeric

  6. Metody dostępu do klas i metod Arkadiusz Popa

  7. Dziedziczenie Arkadiusz Popa

  8. Properties Standardowe podejście do set’erów i get’erów: class A { public int x; public intGetX(){ return this.x; } public voidSetX(intvalue){ this.x = value; } } Użycie: A a = new A(); intxpos = GetX(); a.SetX(xpos + 10); Arkadiusz Popa

  9. Properties 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 } } Arkadiusz Popa

  10. Properties 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(); intxpos = a.X; // wywołanie a.X.get a.X=xpos + 10; // wywołanie a.X.set Arkadiusz Popa

  11. Propertie – read/writeonly Property może występować jako tylko do czytania class A { public int x; public int X{ get { return this.x; } } } Lub tylko do zapisywanie class A { public int x; public int X{ set { this.x = value; } } } ArkadiuszPopa

  12. Proprties – gdzie jest błąd? Najczęstszą przyczyną błędów jest StackOverflowException wynikający ze złego użycia akcesorów dostępu. class A { public int x; public int X{ get { return this.X; } set { this.X = value; } } } Błąd ten powstaje w wyniku wywołania rekurencyjnego pętli. Jest to jeden z najtrudniejszych do zidentyfikowania błędów. Arkadiusz Popa

  13. Klasa Abstrakcyjna 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 abstractclassShape { public Shape(){ } public abstractfloat Top { get; set; } public abstractfloatArea(); public abstractintDimension(); } Arkadiusz Popa

  14. Klasa Abstrakcyjna Implementując klasę abstrakcyjną musimy dopisać zmienne, przeciążyć jej metody i ewentualnie napisać nowe public classCircle : Shape { floatfxCenter, fyCenter, fRadius; public Circle(){ … } public overridefloat Top { get { return fxCenter – fRadius; } set { fxCenter = value + fRadius; } } … } Arkadiusz Popa

  15. Interfejs Interfejs to sposób na abstrakcyjną reprezentację klasy. public interfaceIfigure { float Top { get; set; } floatArea(); } Arkadiusz Popa

  16. Namespace – Web Application Arkadiusz Popa

More Related