Programowanie w srodowisku sieciowym - PowerPoint PPT Presentation

1 / 21
About This Presentation
Title:

Programowanie w srodowisku sieciowym

Description:

Title: Sieci neuronowe w prognozowaniu podejmowanie decyzji i analiza niepewno ci Author: Witold Bartkiewicz Last modified by: usr Created Date – PowerPoint PPT presentation

Number of Views:41
Avg rating:3.0/5.0
Slides: 22
Provided by: WitoldBar5
Category:

less

Transcript and Presenter's Notes

Title: Programowanie w srodowisku sieciowym


1
Programowanie w srodowisku sieciowym
Uniwersytet Lódzki Katedra Informatyki
W. Bartkiewicz
1. Wprowadzenie do platformy .NET
2
Literatura podstawowa
  • Orlowski S., C Tworzenie aplikacji sieciowych,
    Helion, 2007.

3
Literatura dodatkowa
  • Perry S.C., Core C i .NET, Helion, 2006.

4
Literatura dodatkowa
  • Perry S.C., Core C i .NET, Helion, 2006.
  • Troelsen A., Jezyk C i platforma .NET, Mikom,
    2006.

5
Cele platformy .NET
  • Platforme .NET zaprojektowano jako zintegrowane
    srodowisko, które w zalozeniu ma umozliwiac
    wytwarzanie i uruchamianie aplikacji
    internetowych, bazujacych na Windows Forms, a
    nawet aplikacji dla urzadzen mobilnych.
  • Cele platformy
  • Zapewnienie logicznie spójnego obiektowego
    srodowiska dla rozmaitych aplikacji.
  • Zapewnienie srodowiska, które pozwoli
    zminimalizowac konflikty wersji heterogenicznych
    skladników aplikacji, i tym samym uproscic proces
    dystrybucji i instalacji kodu.
  • Zapewnienie srodowiska, które bedzie bazowalo na
    certyfikowanych standardach i które bedzie dawalo
    mozliwosc zarzadzania przez dowolny system
    operacyjny.
  • Zapewnienie srodowiska zarzadzanego, w którym
    weryfikacja kodu pod wzgledem bezpieczenstwa
    wykonywania bedzie mozliwie prosta.

6
Infrastruktura wspólnego jezyka (CLI)
  • U podstaw tworzonej platformy legla specyfikacja
    standardu infrastruktury wspólnego jezyka (Common
    Language Infrastructure CLI).
  • Prezentowane wyzej postulaty dla platformy
    aplikacyjnej sa w zasadzie niemozliwe do
    realizacji w przypadku srodowiska dzialajacego na
    poziomie natywnego kodu wynikowego. Dlatego CLI
    definiuje niezalezne od platformy systemowej
    srodowisko wykonywania kodu wirtualnego.
  • Specyfikacja obejmuje przede wszystkim
  • Definicja wspólnego jezyka posredniego (Common
    Intermediate Language CIL), który musi byc
    generowany przez kompilatory zgodne ze standardem
    CLI.
  • System typów, który definiuje typy danych
    obslugiwane przez wszystkie zgodne jezyki
    programowania (Common Type System CTS).

7
Platforma .NET
  • Platforma .NET jest implementacja standardów CLI.
    Dzieli sie ona na dwie podstawowe czesci
  • Wspólne srodowisko uruchomieniowe (Com-mon
    Language Runtime CLR).
  • Biblioteka klas platformy (Framework Class
    Lib-rary FCL).

8
Wspólne srodowisko uruchomieniowe (CLR)
  • Wspólne srodowisko uruchomieniowe (CLR) zarzadza
    calym cyklem zycia aplikacji, a takze zapewnia
    automatyczne zarzadzanie pamiecia.
  • Srodowisko CLR obsluguje takze cala integracje
    jezyków programowania, odpowiadajac za
    bezproblemowa wspólprace kodu napisanego w
    róznych jezykach i skompilowanego za pomoca
    róznych kompilatorów.
  • Kompilatory spelniajace wymagania CLI generuja
    kod posredni interpretowany przez srodowisko CLR,
    a nie kod dla konkretnego procesora. Kod ten
    nazywany jest wspólnym jezykiem posrednim (CIL),
    jezykiem posrednim (IL), lub jezykiem posrednim
    Microsoft (MSIL).
  • W praktyce kod posredni jest umieszczany w
    plikach EXE lub DLL, ale nie sa to standardowe
    pliki wykonalne.
  • Wymagaja one uzycia kompilatora na biezaco
    (Just-In-Time JIT), który w czasie wykonywania
    aplikacji dokona interpretacji jezyka posredniego
    na odpowiedni kod maszynowy.

9
Wspólne srodowisko uruchomieniowe (CLR)
  • Za zarzadzanie jezykiem posrednim odpowiada
    srodowisko CLR. Dlatego kod ten nazywamy kodem
    zarzadzanym (managed code).
  • Kod posredni jest kluczem do spelnienia wymogów
    formalnych stawianych platformie .NET
  • Poniewaz elementy aplikacji integrowane sa za
    pomoca niezaleznego od jezyka zródlowego, ale
    jednolitego dla wszystkich jezyków zródlowych,
    kodu posredniego, integrowane moga byc elementy
    wygenerowane za posrednictwem róznych
    kompilatorów.
  • Poniewaz proces tworzenia kodu maszynowego
    przeniesiony zostal na poziom kompilatora JIT
    wbudowanego w srodowisko, wiec ten sam kod
    posredni wykonywany moze byc na róznych
    platformach systemowych, zawierajacych wlasne
    srodowiska CLR.

10
Platforma .NET
11
Metadane
  • Poza generowaniem kodu posredniego, kompilatory
    CLI generuja w kazdym module kodu odpowiednie
    metadane, zbiór tabel zapewniajacy modulom
    wlasnosc samoopisywania.
  • Metadane obejmuja informacje o pakiecie
    (zestawie) kodu (assembly), do którego dany kod
    nalezy oraz kompletny opis samego kodu, a przede
    wszystkim opisy typów i ich skladowych.
  • Metadane wykorzystywane sa przede wszystkim przez
    kompilator JIT, pobierajacy informacje niezbedne
    do weryfikacji kodu oraz badania zgodnosci typów.
  • Metadane wykorzystywane sa równiez przez
    podstawowy skladnik CLR w dziedzinie zarzadzania
    pamiecia, odsmiecacz pamieci (garbage collector).
    Uzywa on metadanych do okreslenia, kiedy pola w
    ramach danego obiektu odwoluja sie do innych
    obiektów.
  • Platforma .NET zawiera zbiór klas,
    wykorzystujacych metadane do odpytywania obiektów
    o ich strukture. Tego rodzaju funkcjonalnosc
    nazywamy refleksja (reflection).

12
Wspólny system typów (CTS)
  • Dla integracji na plaszczyznie jezyka
    posredniego, elementów aplikacji stworzonych z
    wykorzystaniem róznych jezyków zródlowych,
    niezbedne jest, aby jezyki te obslugiwaly wspólny
    zestaw typów danych i specyfikacje jezyków.
  • Wspólny system typów (Common Type System CTS)
    definiuje bazowy zbiór typów danych dla kazdego
    jezyka zgodnego ze specyfikacja CLI.
  • System CTS definiuje nie tylko same typy, ale
    takze ich zachowania gwarantujace pelna zgodnosc
    ze srodowiskiem CLR.
  • Okresla on równiez sposób deklarowania i
    tworzenia typów niestandardowych oraz mechanizm
    zarzadzania cyklem zycia instancji tych typów.

13
Wspólny system typów (CTS)
Object
Typy referencyjne (sterta)
Typy wartosciowe (stos)
Typy proste
Klasa
Struktury
Interfejs
Typy wyliczeniowe
Tablica
14
Specyfikacja wspólnego jezyka (CLS)
  • Kompilator zgodny ze specyfikacja wspólnego
    systemu typów (CTS) gwarantuje jedynie, ze jego
    typy beda prawidlowo obslugiwane przez srodowisko
    uruchomieniowe CLR. Sama zgodnosc typów nie
    oznacza jeszcze, ze dany jezyk moze byc
    integrowany z innymi jezykami.
  • Taka mozliwosc wymaga zgodnosci z bardziej
    restrykcyjnym zbiorem specyfikacji wspólnego
    jezyka (Common Language Specification CLS),
    które definiuja podstawowe reguly wspólpracy
    jezyków programowania.
  • Wspomniane specyfikacje stanowia minimalny zestaw
    wymagan, które musza byc spelnione przez kazdy
    kompilator zapewniajacy pelna zgodnosc ze
    srodowiskiem CLR.

15
Moduly kodu .NET
  • Kompilatory umieszczaja caly kod wykonywany na
    platformie .NET w specjalnych modulach kodu,
    nazywanych pakietami lub zestawami (assemblies).
  • Kazdy taki zestaw logicznie postrzegany jest jako
    pojedynczy plik EXE lub DLL. Fizycznie moduly te
    moga skladac sie z kolekcji plików, zawierajacych
    sam kod oraz niezbedne zasoby.

16
Elementy modulu kodu .NET
  • Manifest. Kazdy modul kodu .NET musi zawierac
    jeden plik, zawierajacy tzw. manifest.
  • Manifest jest zbiorem tabel metadanych,
    zawierajacym listy nazw wszystkich plików w danym
    zestawie (pakiecie), odniesienia do modulów
    zewnetrznych, oraz informacje identyfikacyjne dla
    danego modulu (np. nazwa, numer wersji, w
    niektórych przypadkach równiez niezbedne
    sygnatury cyfrowe).
  • Ladujac modul, srodowisko CLR otwiera manifest w
    pierwszej kolejnosci, aby miec mozliwosc
    identyfikacji pozostalych elementów zestawu.
  • Metadane. Oprócz tabel manifestu, kompilator .NET
    generuje jeszcze tabele definicji oraz
    referencji.
  • Tabele definicji zawieraja kompletny opis typów
    stosowanych w kodzie posrednim modulu.
    Przykladowo kompilator C generuje tabele
    definiujace typy, metody, pola, parametry i
    wlasciwosci.
  • Tabele referencji zawieraja informacje o
    wszystkich odniesieniach do typów i pozostalych
    modulów.

17
Wlasciwosci modulów
  • Do uruchomienia aplikacji wymagane sa tylko te
    moduly (zestawy, pakiety), bez których nie mozna
    przeprowadzic inicjalizacji. Pozostale sa
    ladowane na zadanie (wedlug potrzeb).
  • Modul kodu .NET wyznacza tzw. granice wersji.
    Pole wersji w manifescie stosowane jest do
    wszystkich elementów zestawu, wlacznie z typami i
    zasobami.
  • Zestaw .NET wyznacza równiez granice
    bezpieczenstwa, od której zaleza wszystkie
    uprawnienia dostepu. Niektóre elementy modulu
    dostepne sa jedynie wewnatrz niego.
  • Modul .NET moze miec charakter prywatny w obrebie
    aplikacji. Zestawy (pakiety) prywatne moga byc
    umieszczane bez zadnej rejestracji w katalogach
    bazowych aplikacji. Moga byc równiez zarzadzane z
    wykorzystaniem specjalnych plików
    konfiguracyjnych aplikacji.
  • Modul .NET moze miec równiez charakter
    wspóldzielony. Zestawy (pakiety) wspóldzielone
    rejestrowane sa w srodowisku .NET, w tzw.
    globalnej pamieci podrecznej zestawów (Global
    Assembly Cache GAC).

18
Biblioteka FCL
  • Biblioteka klas platformy (Framework Class
    Library FCL) jest zbiorem klas i innych typów
    (interfejsów, typów wyliczeniowych i struktur),
    które sa dostepne dla zarzadzanego kodu
    napisanego w dowolnym jezyku zgodnym ze
    specyfikacja srodowiska uruchomieniowego CLR.
  • Biblioteki te zwiazane sa wiec ze srodowiskiem
    .NET i sa jednakowe dla wszystkich kompilatorów.
  • Zasoby w ramach biblioteki FCL podzielone sa na
    logiczne grupy nazywane przestrzeniami nazw
    (namespaces).
  • Do najwazniejszych przestrzeni nazw w bibliotece
    FCL naleza
  • System Elementarne typy danych, dzialania
    matematyczne, czyszczenie pamieci, wiele
    powszechnie stosowanych wyjatków oraz atrybutów
    predefiniowanych.
  • System.Collections Klasy kontenerowe (np.
    ArrayList, Queue, SortedList), jak równiez typy
    podstawowe oraz interfejsy umozliwiajace
    tworzenie kontenerów niestandardowych.

19
Biblioteka FCL
  • System.Data, System.Data.Common,
    System.Data.OleDb, System.Data.SqlClient
    Operacje na bazach danych.
  • System.Diagnostics Debugowanie i sledzenie
    wykonania kodu zródlowego.
  • System.Drawing, System.Drawing.Drawing2D,
    System.Drawing.Printing Typy opakowujace GDI,
    obsluga drukarki, zaawansowane klasy obslugi
    grafiki.
  • System.IO Obsluga operacji wejscia/wyjscia.
  • System.NET Programowanie sieciowe.
  • System.Reflection, System.Reflection.Emit
    Odpytywanie informacji o typach podczas dzialania
    programu, dynamiczne tworzenie i wywolywanie
    wlasnych typów uzytkownika.
  • System.Runtime.InteropServices Wspólpraca z
    kodem niezarzadzanym (np. biblioteki DLL w C,
    komponenty COM).
  • System.Runtime.Remoting Komponenty .NET
    Remoting.

20
Biblioteka FCL
  • System.Security System bezpieczenstwa wbudowany
    w srodowisko .NET (zarzadzanie prawami dostepu,
    szyfrowanie, itp.).
  • System.Threading Watki, wspólbieznosc.
  • System.Web Aplikacje internetowe, m.in.
    ASP.NET, uslugi sieciowe XML.
  • System.Windows.Forms Komponenty wspomagajace
    tworzenie GUI.
  • System.XML Obsluga danych w formacie XML.

21
Biblioteka FCL
  • Korzystanie z przestrzeni nazw w C
  • Nazwy elementów innych przestrzeni nazw
    kwalifikowane sa nazwa przestrzeni nazw i kropka.
  • Np. odwolanie do klasy Bitmap z System.Drawing
  • new System.Drawing.Bitmap(20, 20)
  • Wlaczenie przestrzeni nazw umozliwia dalsze
    odwolania do jej elementów bez kwalifikacji nazwa
    namespacea
  • using System
  • ...
  • new Bitmap(20, 20)
  • Wlaczenie przestrzeni nazw nie dotyczy jej
    podprzestrzeni.
  • using System
  • using System.Drawing
Write a Comment
User Comments (0)
About PowerShow.com