Wyklad I

Zapoznanie się z platformą .NET i środowiskiem Visual Studio.

Wersje: 2.0, 3.0, 3.5.

3.0 to dodane 4 komponenty do 2.0. W 3.5 dodano wsparcie AJAXa.

Literatura:

Narzędzia:


Plan:

Aplikacja internetowa - rozproszona aplikacja skłądająca się z serwera www, przetwarzającego żądania i przeglądarki internetowej udostępniającej interfejs użytkownika.

Platforma .NET:

ASP.NET:

Podstawowe elementy ASP.NET:

Wady klasycznych aplikacji:

Model rozwijania aplikacji:

(...)
<form id="form1" runat="server">
</form
(...)

“runat='server'” - określa jak interpretowany będzie dany atrybut (form id=“form1”)

<script runat="server">
protected void Button1_Click(
object...

… umieszczane przed lub za lub w kodzie HTML.

Strony ASP.NET:


Język C#:

Definicja klasy (w jednym pliku):

class Hello
{
  static void Main(string[] args)
    {
       Console.WriteLine("Hello world!");
    }
}

Definicja klasy w wielu plikach

partial class MyClass
{
   (...)
}

Modyfikatory dostępności klas:

Przestrzeń nazw:

namespace MyNamespace
{
  namespace Inner
  {
    class MyClass
    { 
      public static void F() {}
    }
  }
}

Typ referencyjny (class): alokowany na stosie, na stosie przechowywana jest referencja do obiektu znajdującego się w stercie. Tryb wartości (struct): przechowywany na stosie (Wartość bezpośrednio umieszczona na stosie w całości - nic na stercie).

Konkatencja - doczytać.

Tablice:

Każdy case w switchu musi kończyć się break;iem (goto case 3).

W foreach() nie można modyfikować obiektu iterowanego.

Przekazywanie parametrów:

public void SetXY(int x, inty)
{ (...) }
 
public void ReplaceXY(ref int x, ref int y)
{ (...) }
 
public void GetXY(out int x, out int y)
{ (...) }
 
// przekazywanie argumentów
 
p.SetXY(x0, 4); //przez wartość
 
p.ReplaceXY(ref x1, ref y1); //przez zmienna
 
(...)

Zgłaszanie wyjątku (throw, try, catch, finally):

throw new Exception("Dzielenie przez zero");
finally
{ if (r1 != null)
  r1.Dispose();
}

Finally sluzy do tego by jakiś fragment zawsze został wykonany (np. zamkniecie pliku).

Using służy do obsługi zasobów - automatycznego, jawnego zwalniania zasobów niezarządzalnych (slajd 75)

Właściwości - kontrolowanie określonych pól (np. tylko do odczytu).

Tylko jedna klasa bazowa!

Dostępność składowych:

Klasa abstrakcyjna (abstract) - public abstract void Show();

Interfejsy - coś jak klasa abstrakcyjna.

Delegat (delegate) - klasa, ktora opakowuje f-cję.

Na podstawie delegatow utworzono zdarzenia.

Zdarzenie to rozszerzenie delegatow.

Wyklad II z 7 listopada