User Tools

Site Tools


inf:net

Wyklad I

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

  • technologia ASP.NET,
  • komponenty ASP.NET,
  • pojemniki (providery) i inne obiekty używane w komunikacji ze źródłami danych.

Wersje: 2.0, 3.0, 3.5.

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

Literatura:

  • Programowanie Web Forms w ASP.NET 2.0,
  • ASP.NET. Programowanie,
  • MSDN.

Narzędzia:

  • Visual Studio 2005 (dla 2.0) - ten jest na uczelni,
  • Visual Studio 2008 (2.0, 3.0, 3.5) - zalecany.

Plan:

  • Aplikacja internetowa,
  • Platforma .NET,
  • Pierwsza strona,
  • Model rozwijania aplikacji,
  • Strony ASP.NET,
  • Język C#.

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:

  • jednolity model oprogramowania - wspólna specyfikacja języków - współpraca kodu niezależnie od języka,
  • wspólna specyfikacja typów - ogólnodostępne typy podstawowe - jednolity system definiowania własnych typów (klas i struktur),
  • Tekst źródłowy → Kompilacja → Kod pośredni (MSIL) - kod zarządzany (kontrolowany przez .NET - większe bezpieczeństwo) - podstawowy element .NET → Kompilacja w locie (JIT) → Kod macierzysty,
  • automatyczne zarządzanie pamięcią,
  • samoopisujące się podzespoły (informacja o zależnościach, dokładny opis typów),

ASP.NET:

  • część platformy .NET,
  • klasy, narzędzia do tworzenia aplikacji www,
  • jednolity model rozwijania aplikacji www.

Podstawowe elementy ASP.NET:

  • platforma renderowania stron, kontrolek,
  • kompilator,
  • mechanizmy zarządzania stanem aplikacji,
  • infrastruktura autoryzacji i autentyfikacji użytkownika,
  • mechanizm “debuggowania” aplikacji,
  • możliwość budowania Web Services.

Wady klasycznych aplikacji:

  • mieszanina kodu aplikacji i znaczników HTML - spaghetti code,
  • brak automatycznego mechanizmu zachowywania wartości pól formularzy,
  • ręczne tworzenie odmiennych odmiennych wersji stron dla różnych przeglądarek.

Model rozwijania aplikacji:

  • model formularzy asp.net z wykorzystaniem kontrolek,
  • programowanie oparte na zdarzeniach,
  • automatyczne zachowywanie wartości elementów formularzy,
  • automatyczne renderowanie treści strony zależnie od rodzaju przeglądarki.
(...)
<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:

  • pliki z rozszerzeniem .aspx,
  • opcjonalna dyrektywa @Page: <%@ Page %>,
  • atrybut Language: <%@ Page Language=“C#” %>,
  • formularz WebForms: <form id=“form1” runat=“server”></form>.

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:

  • public - widoczna w innych podzespołach: public class Hello { (…) },
  • internal - dostępna tylko wewnątrz podzespołu: internal class Hello { (…) }.

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:

  • int[] v1 = {1, 4, 5};
  • etc.

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:

  • public - dostepne z kazdego miejsca,
  • protected
  • private
  • internal
  • internal protected.

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

inf/net.txt · Last modified: 2021/02/16 09:56 (external edit)