Wyk ad 1
Download
1 / 28

wykład 1 - PowerPoint PPT Presentation


  • 128 Views
  • Uploaded on

wykład 1. PSZ Programowanie w Środowiskach Zintegrowanych > Systemy i środowiska zintegrowane > Środowisko zintegrowane Visual Studio .NET. w wykładzie wykorzystano dostępne publicznie materiały firmy Microsoft, pochodzące z prezentacji „ .NET Framework & C#”. Konspekt bieżącego wykładu.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' wykład 1' - roana


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Wyk ad 1

wykład 1

PSZ

Programowanie w Środowiskach Zintegrowanych

> Systemy i środowiska zintegrowane

> Środowisko zintegrowane Visual Studio .NET



Konspekt bie cego wyk adu
Konspekt bieżącego wykładu firmy Microsoft, pochodzące z prezentacji „

  • Kompilacja z linii poleceń a VS.NET

  • Model obiektowy wg. CLR

    • hermetyzacja, enkapsulacja, polimorfizm, dziedziczenie


Visual studio net

VB firmy Microsoft, pochodzące z prezentacji „

C++

C#

JScript

J#

Visual Studio.NET

Common Language Specification

ASP.NET

Web Forms Web Services

Mobile Internet Toolkit

Windows

Forms

ADO.NET and XML

Base Class Library

Common Language Runtime

Operating System

Visual Studio .NET


Czy vs net jest wymagane do tworzenia oprogramowania
Czy VS.NET jest wymagane do tworzenia oprogramowania? firmy Microsoft, pochodzące z prezentacji „

  • Odpowiedź brzmi: nie !!!

    • Jesteśmy w stanie tworzyć programy korzystając z linii poleceń

    • Kompilator języka c# dostarczany jest wraz z platformą .NET, którą można ściągnąć z Internetu albo przez Windows Update

    • Kolejne wersje platformy .NET znajdują się w katalogu

      • C:\[Windows]\Microsoft.NET\Framework\v[xxxxxxxxx]

    • Należy pamiętać o dodaniu odpowiednich ścieżek do zmiennej path

    • Kompilator nosi nazwę csc i można go uruchamiać z linii poleceń

    • Disasembler nosi nazwę ildasm, i można go znaleźć w menu .NET SDK/tools

    • Spróbujmy uruchomić następujący przykład


Vs net przyk ad helloworld w c
VS.NET przykład HelloWorld w C# firmy Microsoft, pochodzące z prezentacji „

class MyClass

{

static void Main(string[] args)

{ System.Console.WriteLine("Hello world");

}

}


Rezultaty kompilacji
Rezultaty kompilacji firmy Microsoft, pochodzące z prezentacji „

  • W wyniku kompilacji powstaje plik .exe lub .dll

  • Pliki te nie są prawdziwymi plikami .exe i .dll znanymi z systemu windows lecz tzw. lokalny podzespół (ang. assembly). Podzespoły te noszą nazwę logicznych.exe i .dll, i mogą zawierać nie tylko programy, ale również wszelkie inne typy zasobów (obrazy, pliki, html itp.)

  • Każdy podzespół zawiera tzw. manifest, określający jego nazwę, numer wersji, spis składowych wewnętrznych i wykaz innych podzespołów od jakich podzespół zależy

  • Informacje o manifeście można przejrzeć dokonująć disasemblacji podzespołu. Disasembler dostępny jest z menu tools pakietu .NET Framework


Rodowisko vs net
Środowisko VS.NET firmy Microsoft, pochodzące z prezentacji „

  • W takim razie po co nam VS.NET

    • Intelisense (podpowiedzi w czasie pisania)

    • Dynamiczna weryfikacja składni

    • Wygodne paski narzędziowe

    • Inspektor obiektów

    • Okno drzewa obiektów, przeglądarka klas

    • Edytor kodu i diagramów

    • Generator podpowiedzi i skrótów

    • Menedżer projektów

    • Zintegrowany lokalny i zdalny debugger

    • Ułatwienia w wykorzystaniu bibliotek komponentów

    • Komponenty dostępne na „rynku komponentów”


W takim razie po co nam vs net
W takim razie po co nam VS.NET firmy Microsoft, pochodzące z prezentacji „

  • Spróbujmy ten sam przykład wygenerować przy pomocy VS.NET


Vs net typy projekt w
VS.NET typy projektów firmy Microsoft, pochodzące z prezentacji „

Szablony projektów

Języki programowania

Aplikacje typu SETUP

Bazy danych i rozszerzenia IDE

Inne rozwiązania

wybór projektu i szablonu

determinuje jakie pliki zostaną

automatycznie dopięte do projektu

i jakimi komponentami będziemy dysponować


Elementy rodowiska vs net
Elementy środowiska VS.NET firmy Microsoft, pochodzące z prezentacji „

Pasek Menu

Projekt

Komponenty

Właściwości

Klasy

Pomoc

Serwery

Zakładki z plikami źródłowymi

Komunikaty, błędy, ostrzeżenia


Vs net przyk ad helloworld w c1
VS.NET przykład HelloWorld w C# firmy Microsoft, pochodzące z prezentacji „

W oknie projektu (Solution Explorer) widzimy nazwy plików składających się na pakiet, informacje o metadanych, definicję ikony oraz drzewo zależności które potrzebne są do prawidłowego działania modułu

W widoku klas (Class View) widzimy informacje o przestrzeni nazw, klasach, polach metodach i klasach bazowych klas; ikony oznaczają typ dostępu

Po kliknięciu prawym klawiszem myszy i wybraniu „Properties” widzimy cechy obiektu bądź – jak w tym przypadku – klasy; można je dynamicznie zmieniać


Vs net debugowanie i uruchamienie
VS.NET debugowanie i uruchamienie firmy Microsoft, pochodzące z prezentacji „


Model obiektowy wg clr
Model obiektowy wg. CLR firmy Microsoft, pochodzące z prezentacji „

  • Obiekt:

    • definicje są bardzo różne: np.

      • coś, czemu można nadać nazwę, np. samochód, tablica, przycisk na formularzu

      • reprezentacja rzeczy istniejącej w rzeczywistości

    • wg. CLR obiekt pewna całość, której można przypisać dwie cechy:

      • dynamiczne - określające zachowanie

      • statyczne – określające stan

    • wg. CLR obiekty można podzielić na trzy kategorie, w zależności od tego co jest cechą dominującą:

      • jeśli najważniejszy jest stan, obiekt nosi nazwę obiektu wartościowego (value object); przykłady: data, łańcuch, napis, wartośc w walucie

      • jeśli najważniejsze są usługi, a stan jest nieistotny obiekt ma charakter usługowy (service object), przykłady: kontroler, weryfikator numeru karty, manager komunikacji itp.

      • jeśli obydwie cechy są ważne, tzn. ważna jest tożsamość obiektu, obiekt nosi nazwę obiektu rzeczywistego (entity object); obiekty tej klasy często zapisywane są w bazie danych, przykłady: konto bankowe, osoba itp


Model obiektowy wg clr1
Model obiektowy wg. CLR firmy Microsoft, pochodzące z prezentacji „

  • Zróżnicowanie typów obiektów jest dobrze widoczne np. operacjach kopiowania (klonowania) :

    • obiekty wartościowe mogą być kopiowane przez kopiowanie wszystkich pól (shallow copy), ponieważ tożsamość nie ma tutaj znaczenia; jeśli obiekt wchodzi w związki z innymi obiektami wystarczy skopiować referencje do tych obiektów i będzie OK. (shallow copy)

    • obiekty usługowe raczej nie powinny być kopiowane

    • obiekty rzeczywiste posiadają tożsamość i powinny być kopiowane rozważnie, poprzez rozważne utworzenie całej wewnętrznej infrastruktury obiektu, tj. wszystkich pól będących obiektami wartościowymi (tu proste kopiowanie), i ewentualne odtworzenie obiektów z którymi dany obiekt wchodzi w związki; (deep copy)


Model obiektowy wg clr2
Model obiektowy wg. CLR firmy Microsoft, pochodzące z prezentacji „

  • Klasa składa się z:

    • metod – realizujących aktywność klasy; metoda ma nazwę, może mieć argumenty i typ wyniku

    • pól – przechowujących informacje o stanie obiektu, które mogą być referencjami do innych obiektów lub zmiennymi typów bezpośrednich

    • właściwości – które są specyficznymi polami, do których zaimplementowano metody akcesyjne (akcesory)

    • zdarzeń – subskrypcja zdarzeń, na które obiekt ma reagować, zgodnie ze wzorcem observer


Model obiektowy wg clr3
Model obiektowy wg. CLR firmy Microsoft, pochodzące z prezentacji „

  • Typy pól (argumentów)

  • typy bezpośrednie (value types)

    • pochodne od System.ValueType, przekazywane przez wartość, przechowywane na stosie, dobrze znane int, string, float itp.

    • podlegają w razie potrzeby podlegają opakowywaniu / rozpakowaniu

      • int n=3;

      • object k = test(n); gdzie test jest typu void test(object o) // opakowanie

      • int z = (int) k; // rozpakowanie

  • typy referencyjne (reference type)

    • obiekty zdefiniowanych klas, przekazywane wyłącznie przez referencję, przechowywane na stercie, domyślnie dziedziczą z klasy object


Model obiektowy wg clr4
Model obiektowy wg. CLR firmy Microsoft, pochodzące z prezentacji „

  • Enkapsulacja

    • ograniczenie dostępu do pewnych fragmentów klasy

    • modyfikatory private, protected, public, internal

      class Figura {

      protected int x, y, bok;

      protected Pen skyBluePen = new Pen(Brushes.DeepSkyBlue);

      public void Rysuj(Graphics g){}

      public void Przesun(int Adx, int Ady) {

      x+=Adx;

      y+=Ady;

      }

      }


Model obiektowy wg clr5
Model obiektowy wg. CLR firmy Microsoft, pochodzące z prezentacji „

  • Dziedziczenie

    • wyłącznie jednobazowe

    • dziedziczenie wielobazowe (z C++) realizowane przy pomocy interfejsów

      class Kwadrat : Figura {

      public Kwadrat(int Ax, int Ay, int Abok) {

      x = Ax;

      y = Ay;

      bok = Abok;

      }

      new public void Rysuj(Graphics g) {

      g.DrawRectangle(skyBluePen, x, y, bok, bok);

      }

      }


Model obiektowy wg clr6
Model obiektowy wg. CLR firmy Microsoft, pochodzące z prezentacji „

  • Polimorfizm

    • w programowaniu obiektowym to wykazywanie przez metodę różnych form działania w zależności od tego jaki typ obiektu jest wskazywany przez wskaźnik lub referencję (pomijając typ wskaźnika lub referencji

    • w programowaniu funkcyjnym to możliwość stosowania tej samej funkcji dla różnych typów parametrów. Najprostsza funkcja polimorficzna

      abstract class Figura {

      public virtual void Rysuj(Graphics g){}

      }

      class Kwadrat : Figura {

      override public void Rysuj(Graphics g) {

      g.DrawRectangle(skyBluePen, x, y, bok, bok);

      }

      }


Model obiektowy wg clr7
Model obiektowy wg. CLR firmy Microsoft, pochodzące z prezentacji „

  • Interfejs reprezentuje zachowanie, najczęściej wspólne dla wielu obiektów, któremu można nadać nazwę, np. „drukowalny”, „zapisywalny do strumienia”, „transportowy”

  • Interfejsy zapewniają możliwość zaimplementowania pewnych zachowań, które niejako stoją obok głównej, „organicznej”, ścieżki dziedziczenia

    • Przykład: „TIR” jest pojazdem, „Samochód” też jest pojazdem, posiadają wspólne cechy (dziedziczenie). „TIR” jednakże posiada zdolność do przewożenia ładunków, których „Samochód” przewieźć nie może. Aby pokreślić zdolność do przewożenia ładunków, możemy zaimplementować w klasie TIR interfejs ITransport, który dodaje obiektom klasy zdolność przewożenia ładunku. Interfejs ITransport powinien także zostać zaimplementowany w klasach „Pociąg”, „Samolot” itp. W przyszłości, jeśli pojawi się transportowy wodolot, również powinien otrzymać interfejs „ITransport”

    • Przykład: większość klas z kolekcjami ma zaimplementowany interfejs ILIST, które dają tę możliwość, iż obiekty tego typu można po prostu traktować jako listy


Model obiektowy wg clr8
Model obiektowy wg. CLR firmy Microsoft, pochodzące z prezentacji „

  • Interfejsy – przykład

    interface IDrawable {

    void Rysuj(Graphics g);

    }

    abstract class Figura: IDrawable {

    protected int x, y, bok;

    protected Pen skyBluePen = new Pen(Brushes.DeepSkyBlue);

    public virtualvoid Rysuj(Graphics g){}

    public void Przesun(int Adx, int Ady) {

    x+=Adx;

    y+=Ady;

    }

    }

  • sprawdzenie implementacji interfejsu: if (kwadrat is IDrawable)


Model obiektowy wg clr9
Model obiektowy wg. CLR firmy Microsoft, pochodzące z prezentacji „

  • Przeciążanie – wiele metod o tych samych nazwach, lecz różnych typach argumentów

  • Przesłanianie:

    • modyfikatory dla metod

      • Overridable (virtual) - może, lecz nie musi być przesłonięta w klasie pochodnej

      • MustOverride (new) – wymaga przesłonięcia w klasie pochodnej

      • NotOverridable (override) – nie może być przesłaniania w klasach pochodnych


Model obiektowy wg clr10
Model obiektowy wg. CLR firmy Microsoft, pochodzące z prezentacji „

  • Właściwość to pole prywatne, do którego zaimplementowano akcesory

    • niech k będzie obiektem klasy „Słupek”. Zamiast wywoływać g=k.GetBar() lub k.SetBar(15) możemy po prostu wywołać odpowiednio g=k.Bar i k.Bar = 15;

    • właściwości dają tę zaletę nad publicznymi polami, że ich modyfikacja zawsze wymaga przejścia przez metody get / set, co ułatwia nam kontrolę nad przypisywaniem wartości polom

przykład: c++

class Słupek {      int bar;      public int GetBar() {        return bar;      }      public void SetBar(int newbar) {        // check newbar for validity        bar = newbar;      }    }

przykład: c#

class Słupek {      int bar;      public int Bar {        get { return bar; }        set {          // check the new value          bar = value;        }      }    }


Model obiektowy wg clr11
Model obiektowy wg. CLR firmy Microsoft, pochodzące z prezentacji „

  • Model zdarzeniowy/callback

    • this.button1.Click += new System.EventHandler(this.button1_Click);

    • obsługa przez tzw. delegację

Elementy interfejsu

… informują obiekt klasy EdytorForm o wystąpieniu zdarzenia


Model obiektowy wg clr12
Model obiektowy wg. CLR firmy Microsoft, pochodzące z prezentacji „

  • Delegacja – odpowiada niejako liście wskaźników do statycznych funkcji

    delegate void D(int x); // odpowiada typedef

    class C {

    public static void M1(int i) {...}

    public static void M2(int i) {...}

    }

    class Test {

    static void Main() {

    D cd1 = new D(C.M1); // M1

    D cd2 = new D(C.M2); // M2

    D cd3 = cd1 + cd2; // M1 + M2

    D cd4 = cd3 + cd1; // M1 + M2 + M1

    D cd5 = cd4 + cd3; // M1 + M2 + M1 + M1 + M2

    }

    }


Model obiektowy wg clr13
Model obiektowy wg. CLR firmy Microsoft, pochodzące z prezentacji „

public delegate void ButtonEventHandler();

class TestButton {

// OnClick is an event, implemented by a delegate ButtonEventHandler.

public event ButtonEventHandler OnClick;

// A method that triggers the event:

public void Click() {

OnClick();

}

}

//Create an instance of the TestButton class.

TestButton mb = new TestButton();

// Specify the method that will be triggered by the OnClick event.

mb.OnClick += new ButtonEventHandler(TestHandler);

// Specify an additional anonymous method.

mb.OnClick += delegate { System.Console.WriteLine("Hello, World!"); };

// Trigger the event

mb.Click();


Na wyk adzie
Na wykładzie firmy Microsoft, pochodzące z prezentacji „

  • Wprowadzenie do programowania obiektowego w C#

    • Założenie i motywacja

    • Składowe klas

    • Dziedziczenie, interfejsy

  • Środowisko Visual Studio IDE

    • Proste projekty w linii poleceń

    • Wykorzystanie VS.NET

  • Na następnym wykładzie: Biblioteka system (kolekcje)


ad