Platforma .NET
Platforma .NET
Maria DEMS
Maria DEMS
2
Kolejność instalacji:
1.
Microsoft .NET Framework 1.1,
Microsoft .NET Framework 1.1,
plik
plik
dotnetfx.exe
dotnetfx.exe
Pakiet redystrybucyjny systemu Microsoft .NET
Framework w wersji 1.1
http://download.microsoft.com/download
/c/9/f/c9f672f3-c14b-4cff-9671-d419842d792d/
dotnetfx.exe
2.
Microsoft .NET Framework 1.1
Microsoft .NET Framework 1.1
— plik
langpack.exe
langpack.exe
Pakiet języka polskiego,
download.microsoft.com/download
/4/9/c/49c17289-dfd6-4eca-87a1-a2fe5e580774/
langpack.exe
3.
Pakiet programowania Microsoft Asp.NET Web
Pakiet programowania Microsoft Asp.NET Web
Matrix Project
Matrix Project
, plik
WebMatrix.msi
WebMatrix.msi
http://www.asp.net/webmatrix/default.aspx
Instalacja pakietów
Instalacja pakietów
platformy .NET
platformy .NET
3
Ogólna charakterystyka
Ogólna charakterystyka
platformy .NET
platformy .NET
Platforma .NET
Platforma .NET
jest to nowej generacji środowisko
przeznaczone
do
tworzenia
oraz
instalacji
oprogramowania internetowego oraz aplikacji
Windows. Platformę tworzą trzy podstawowe
elementy:
wspólne środowisko uruchomieniowe CLR,
umożliwiające
wykonywanie
aplikacji
napisanych w dowolnym języku programowania,
zbiór klas tego środowiska,
nowa wersja ASP.NET - dynamiczna technologia
internetowa działająca po stronie serwera.
Produkty .NET
Produkty .NET
obejmujące zintegrowane w ramach
tego środowiska główne produkty Microsoftu,
takie jak Windows, Visual Studio oraz pakiet
Office.
4
Ogólna charakterystyka
Ogólna charakterystyka
platformy .NET
platformy .NET
Integracja produktów .NET oparta jest na:
XML- języku opisu danych,
SOAP - protokole transmisji danych między
produktami.
Usługi
.NET
Usługi
.NET
,
umożliwiające
współpracę
niezależnych zespołów programistów tworzących
aplikacje oparte na platformie .NET.
Jako kolejne produkty przewidywane są
usługi
składowe
, zapewniające: obsługę tożsamości,
powiadamianie oraz komunikację (zintegrowana
obsługa poczty elektronicznej, poczty głosowej i
faksu),
personalizację,
przechowywanie
w
formacie XML, opcje kalendarza, klasyfikację
katalogową i wyszukiwanie informacji oraz
dynamiczną dostawę produktów platformy.
5
Ogólna charakterystyka
Ogólna charakterystyka
platformy .NET
platformy .NET
Programy
napisane
w
Visual
Studio
.NET
uruchamiane są w wirtualnej maszynie
.NET
.NET
Framework,
Framework,
a więc są niezależne od systemu
operacyjnego.
Platformę
.NET Framework
.NET Framework
dla Windows 2000,
Windows 98, Windows Me, można pobrać ze strony:
http://msdn.microsoft.com/netframework/download
s
Platforma
.NET Framework
.NET Framework
dla Windows 2003 jest
instalowana
automatycznie
podczas
instalacji
systemu.
6
C#
VB
C++
Java
Scrip
t
J#
Itd.
Vi-
sua
l
Stu
-
dio.
NE
T
lub
inn
e
Wspólna specyfikacja języków (CLS)
Język pośredni (IL)
Serwisy
Web
Strony
ASP.NET
Formularze
Windows
Aplikacje
ASP.NET
ADO.NET i XML
Biblioteka podstawowa (BCL)
Środowisko uruchomieniowe (CLR)
System operacyjny Windows
Schema
t
platfor
my
.NET
7
Ogólna charakterystyka
Ogólna charakterystyka
platformy .NET
platformy .NET
Rdzeń
platformy
stanowi
.NET
Framework
.NET
Framework
zawierający:
właściwą platformę językową i wykonawczą CLR
obszerne biblioteki klas bazowych, zapewniające
wysoki poziom wbudowanej funkcjonalności.
.NET Framework
.NET Framework
korzysta ze standardu XML oraz
protokołu SOAP.
.NET Enterprise
.NET Enterprise
Server to rodzina produktów
serwerowych, zastępujących serwery MS.
Standardowym
mechanizmem
komunikacji
komponentów platformy jest
COM+.
Platforma .NET oferuje rozbudowane narzędzia do
generowania aplikacji internetowych korzystających
z baz danych (np.. sklep internetowy), takie jak np.
Web Services, ASP.NET, ADO.NET.
Web Services, ASP.NET, ADO.NET.
8
Główne komponenty
Główne komponenty
platformy .NET
platformy .NET
Architektura .NET składa się z trzech warstw:
Środowisko uruchomieniowe CLR
zarządzanie
pamięcią
wspólny system
typów
monitorowa
nie
Standardowy system usług nowej generacji
XML
ADO.NET
Klasy bazowe
platformy .NET
Interfejsy użytkownika i programowe
ASP.NET
WinForms, Web Forms, Web
Service
Taka Architektura zapewnia integrację technologii prezentacji,
komponentów oraz danych.
9
Środowisko uruchomieniowe
Środowisko uruchomieniowe
CLR
CLR
Jest to środowisko uruchamiania aplikacji, skompilowa-
nych na wspólny język pośredni MSIL lub IL
Ładowanie klas i układ pamięci
Zarządzanie stosem i pamięcią, opóźnianie pamieci
Bezpieczeń
stwo
Kompilacj
a kodu IL
Obsługa wykonywania
(tradycyjne funkcje
środowiska
uruchomieniowego)
Wspólny system typów
Główne elementy środowiska CLR
10
Główne cele środowiska CLR
Główne cele środowiska CLR
Łatwiejsze i szybsze tworzenie oprogramowania
Łatwiejsze i szybsze tworzenie oprogramowania.
Automatyczna obsługa procesów „udrażniania
Automatyczna obsługa procesów „udrażniania”,
takich jak zarządzanie pamięcią i komunikacja
procesów.
Proces
udrażniania
ułatwiło
wprowadzenie
metadanych
metadanych
generowanych przez
kompilator i automatycznie przechowywane w
plikach EXE lub DLL.
Do metadanych na platformie .NET zaliczamy:
złożenia
złożenia
, takie jak:
publiczny klucz uwierzytelnienia,
typy eksportowane przez złożenie,
inne złożenia, na których oparte jest złożenie,
zezwolenie bezpieczeństwa potrzebne do
uruchomienia.
11
Główne cele środowiska CLR
Główne cele środowiska CLR
klasy bazowe
klasy bazowe
oraz
interfejsy
interfejsy
używane przez
złożenia,
atrybuty
atrybuty
definiowane przez użytkownika i
przez kompilator
Metadane są wykorzystywane
do obsługi
przez
CLR szerokiej grupy
narzędzi
, takich jak:
narzędzia projektowania,
narzędzia testowania,
narzędzia profilowania,
generatory proxy,
inne kompilatory - narzędzia najczęściej
używane,
przeglądarki obiektów i typów,
generatory schematów.
12
Główne cele środowiska CLR
Główne cele środowiska CLR
Proste i bezpieczne wdrażanie aplikacji
Proste i bezpieczne wdrażanie aplikacji:
aplikacje tworzone w środowisku .NET
można
instalować przez skopiowanie plików na dysk
lub
z płyty CD i uruchomienie aplikacji, gdyż
kompilatory .NET wstawiają identyfikatory w
kompilowane moduły, a CLR automatycznie
zarządza tymi identyfikatorami.
istnieje możliwość
wykonywania jednocześnie
kilku wersji
tego samego komponentu, którymi
CRL zarządza i wybiera zdefiniowaną wersję.
Aplikacje tworzone w .NET
instalują jedynie
własna logikę bez środowiska uruchomieniowego
lub np. modułów obsługi ADO lub XML).
13
Główne cele środowiska CLR
Główne cele środowiska CLR
Skalowalność
Skalowalność, która głównie dotyczy:
funkcji
wykonawczych
działających
na
poziomie systemu, wykorzystywanych do
tworzenia aplikacji w środowisku .NET,
zarządzania
pamięcią
i
przetwarzania
;
pamięć w środowisku CLR jest automatycznie
konfigurowana i optymalizowana,
języków
programowania;
wszystkie
języki
kompilowane są na standardowy kod bajtowy
języka pośredniego IL, więc praktycznie w
środowisku CLR nie różnią się wydajnością,
platformy sprzętowej
(od palmtopów do
rozbudowanych systemów sieciowych)
14
Główne cele środowiska CLR
Główne cele środowiska CLR
Integracja i obsługa różnorodnych języków
Integracja i obsługa różnorodnych języków:
W środowisku .NET Framework
przy
pomocy
jednego języka można tworzyć podklasy klasy
zaimplemento-wanej w innym języku,
np.
klasy napisane w VB mogą dziedziczyć z klas
bazowych napisanych w C++ lub COBOL-u.
Integracje języków umożliwia
wspólny system
typów
, w którym wszystkie wspólnie używane
typy
danych,
nawet
bazowe,
są
implementowane jako obiekty, oraz
wspólna
biblioteka typów
.
Wykorzystanie
przestrzeni
nazw
do
organizowania bibliotek i hierarchii obiektów,
uproszczenia używania referencji do obiektów
i określania zakresu identyfikatorów obiektów.
15
Wdrażanie i uruchamianie
Wdrażanie i uruchamianie
programów w środowisku
programów w środowisku
CLR
CLR
Aplikacja zbudowana jest z jednego lub kilku złożeń
,
a także może zawierać właściwe dla niej dane lub
pliki. Złożenie jest jednostką wdrażania aplikacji.
Może się ono składać z jednego lub kilku plików.
Moduły kodu źródłowego złożenia są
kompilowane
na IL - język pośredni środowiska CLR, a następnie
na kod wykonywalny, z wykorzystaniem mechanizmu
kompilacji na żądanie JIT (Just-In-Time).
W środowisku .NET
kompilowane są również skrypty
ASP czy VBScript, które podczas pierwszego użycia
przetwarzane są na kod IL. Kompilacja skryptów jest
przeprowadzana automatycznie i na bieżąco.
16
Biblioteka klas bazowych
Biblioteka klas bazowych
BCL
BCL
Wszystkie języki programowania platformy .NET
korzystają z tej samej biblioteki klas bazowych
BCL (Base Code Library)
Biblioteka BCL jest biblioteką klas języka MSIL.
Klasy bazowe zostały podzielone między logiczne,
hierarchicznie uporządkowane przestrzenie nazw
(Namespaces)
Podstawową przestrzenią nazw jest przestrzeń
System
System
, zawierające wszystkie definicje i klasy
bazowe
Warstwa środkowa platformy .NET obejmuje:
usługi, modele obiektów danych zawierające
obiekty ADO oraz ADO.NET , XML oraz klasy
bazowe platformy .NET.
17
Przestrzeń nazw System
• Przestrzeń nazw
System
- zawiera podstawowe
klasy oraz klasy bazowe, które definiują:
– najczęściej używane typy danych,
– zdarzenia i procedury obsługi zdarzeń,
– interfejsy, atrybuty i wyjątki.
• Inne
klasy
w przestrzeni
nazw
System
udostępniają usługi związane z:
– konwersją typów danych,
– manipulowaniem parametrami metod,
– obliczeniami matematycznymi,
– zdalnym
i lokalnym
wywoływanie
programów
– zarządzaniem środowiskiem aplikacji,
– nadzorowaniem kodu.
18
Przestrzenie nazw
Kolejne w hierarchii są
przestrzenie
niskiego poziomu
, takie jak:
System Collection
System Collection
- zawiera klasy
zawierające
definicje
sposobu
porządkowania danych
System.Configuration
- zawiera klasy
i interfejsy
które
pozwalają
na
programowy
dostęp
do
ustawień
konfiguracyjnych
.NET
Framework
i obsługę
błędów
w plikach
konfiguracyjnych (pliki .config).
19
Przestrzeń nazw System
System.Data
- zawiera głównie klasy składające
się na architekturę dostępu do danych ADO
.NET. Architektura ta umożliwia tworzenie
komponentów, które pozwalają na wydajne
zarządzanie danymi pochodzącymi z różnych
źródeł.
System.Data.Common
-
zawiera
klasy
współdzielone przez dostawców danych .NET
Framework.
System.Data.ODBC
- zawiera klasy składające
się na .NET Framework Data Provider for ODBC,
czyli dostawcę danych dla interfejsu ODBC
System.Data.OleDB
- zawiera klasy składające
się na .NET Framework Data Provider for OleDB
20
Przestrzeń nazw System
System.Data.SqlClient
- zawiera klasy składające
się na .NET Framework Data Provider for SQL
Server, czyli dostawcę danych dla serwera MS
SQL Server.
System.Data.SqlTypes
-
udostępnia
klasy
reprezentujące rodzime typy danych serwera
Microsoft SQL Server.
System.Diagnostics
System.Diagnostics
– udostępnia klasy służące
do śledzenia wykonania kodu i usuwania błędów
(np..Debug)
System.DirectoryServices
– umożliwia wygodny
dostęp do Active Directory z poziomu kodu
zarządzanego
21
Przestrzeń nazw System
System.Drawing
- umożliwia dostęp do
podstawowej
funkcjonalności
graficznej
biblioteki systemowej GDI+.
System.Drawing.Drawing2D
-
udostępnia
zaawansowaną
funkcjonalność
związaną
z grafiką 2D i grafiką wektorową.
System.Drawing.Text
-
udostępnia
zaawansowaną
funkcjonalność
związaną
z typografią
i wykorzystaniem
kolekcji
czcionek
System.IO
- zawiera typy umożliwiające
synchroniczny i asynchroniczny odczyt i zapis
strumieni danych i plików.
22
Przestrzeń nazw System
System.Net
- udostępnia proste interfejsy
programistyczne
dla
wielu
protokołów
używanych we współczesnych sieciach.
System.Runtime.InteropServices
- Udostępnia
różnorodne klasy obsługujące współpracę
z modelem
COM
i wywoływanie
usług
systemowych.
System.Runtime.Serialization
- Zawiera klasy
które mogą być używane do serializowania
i deserializowania obiektów. Proces serializacji
polega na konwersji obiektu lub całego grafu
obiektów do postaci liniowej sekwencji bajtów,
którą można następnie zachować lub przesłać
do
innej
lokalizacji.
Deserializacja
jest
procesem odwrotnym.
23
Przestrzeń nazw System
System.Net.Sockets
- Udostępnia zarządzaną
implementację interfejsu Windows Sockets
System.Security
- Umożliwia dostęp do
podsystemu zabezpieczeń .NET Framework.
System.Security.Cryptography
- Udostępnia
usługi kryptograficzne, w tym bezpieczne
kodowanie i dekodowanie danych, tworzenie
skrótów jednokierunkowych, generowanie
liczb
losowych
i uwierzytelnianie
komunikatów.
System.Text.RegularExpressions
- Zawiera
klasy
umożliwiające
manipulacje
na
wyrażeniach regularnych.
24
Przestrzeń nazw System
System.Threading
- Zawiera klasy i interfejsy
umożliwiające programowanie wielowątkowe.
System.Timers
- Zawiera komponent Timer
umożliwiający
wywoływanie
zdarzenia
w określonych odstępach czasu.
System.Web
-
Zawiera
klasy
i interfejsy
umożliwiające
komunikację
przeglądarki
internetowej
z
serwerem,
a
ponadto:
manipulacje plikami cookie, transfer plików,
obsługę
wyjątków
i zarządzanie
buforem
wyjściowym.
System.Web.Caching
-
Zawiera
klasy
pozwalające na buforowanie często używanych
danych po stronie serwera.
25
Przestrzeń nazw System
System.Web.Configuration
- Zawiera klasy
pozwalające
na
odczyt
i modyfikację
konfiguracji ASP .NET
System.Web.Mail
-
Zawiera
klasy
umożliwiające
tworzenie
i wysyłanie
wiadomości
za
pośrednictwem
komponentu CDOSYS Messaging.
System.Web.Security
-
Zawiera
klasy
używane do implementowania zabezpieczeń
ASP .NET w aplikacjach sieci Web.
System.Web.Services
-
Zawiera
klasy
umożliwiające tworzenie usług webowych
XML Web Serwices oraz klientów tych usług.
26
Przestrzeń nazw System
System.Web.SessionState
-
Zawiera
klasy
i interfejsy
umożliwiające
przechowywanie
danych
specyficznych
dla
poszczególnych
klientów
aplikacji
ASP
.NET.
Informacje
o stanie sesji dają użytkownikowi wrażenie
stałego połączenia z aplikacją. Informacje
o stanie
sesji
mogą
być
przechowywane
w lokalnej pamięci procesu na serwerze Web
lub np. w zewnętrznej bazie danych SQL Server.
System.Web.UI
- Zawiera klasy umożliwiające
tworzenie kontrolek HTML działających po
stronie serwera. Kontrolki HTML są mapowane
bezpośrednio na tagi HTML interpretowane
przez przeglądarki internetowe i pozwalają na
programowe manipulowanie elementami HTML
na stronie internetowej.
27
Przestrzeń nazw System
System.Web.UI.WebControls
- Zawiera klasy
umożliwiające
umieszczanie
na
stronie
internetowej kontrolek webowych działających
po stronie serwera, takich jak elementy
formularzy (np. przyciski i pola tekstowe), oraz
takich jak kalendarz czy DataGrid. Mogą być
one manipulowane za pośrednictwem kodu
działającego po stronie serwera, a ich model
obiektowy niekoniecznie musi przekładać się na
kod HTML.
System.Windows.Forms
-
Zawiera
klasy
umożliwiające
tworzenie
funkcjonalnych
aplikacji działających pod kontrolą systemu
Microsoft Windows.
28
System.Math
System.Math
- biblioteka funkcji
matematycznych (np..Sqrt, Cos, Log, Min)
System.Reflection
System.Reflection
- funkcje analizy
metadanych (np..Assembly, Module)
System.Xml
- Zawiera klasy umożliwiające
przetwarzanie dokumentów XML.
Przestrzenie nazw
29
Przestrzenie nazw
• Microsoft.Csharp
-
zawiera
klasy
obsługujące kompilację i generowanie kodu
przy użyciu języka programowania C#.
• Microsoft.Jscript
-
zawiera
klasy
obsługujące kompilację i generowanie kodu
przy użyciu języka programowania JScript.
• Microsoft.VisualBasic
-
zawiera
klasy
obsługujące kompilację i generowanie kodu
przy użyciu języka programowania Visual
Basic .NET.
30
Interfejsy użytkownika
Formularze Widows (WinForms)
Formularze Widows (WinForms)
oparte są na
klasach
Windows Foundation Classes (WFC),
Windows Foundation Classes (WFC),
utworzonych dla J++, będące częścią klas
środowiskowych
przestrzeni
nazw
System.Windows.Forms
System.Windows.Forms
.
WinForms oparty jest na mechanizmie
tworzenia formularzy Visual Basica.
W VisualStudio.NET do tworzenia formularzy
służy wizualny kreator
EWinForms
EWinForms
.
Warstwa górna platformy .NET umożliwia
trzy sposoby wyświetlania i zarządzania
interfejsem. Są to: formularze Windows,
formularze Web oraz aplikacje konsolowe.
31
Interfejsy użytkownika
Formularze Web (WebForms)
Formularze Web (WebForms)
stanowią nową
generacje narzędzi tworzenia interfejsów WWW.
Podstawowe
narzędzia WebForms
to:
szablon
zawierający
kod
HTML,
z
informacjami na temat sposobu wyświetlania
wszystkich elementów interfejsu,
komponent
zawierający
informacje
o
strukturze logicznej interfejsu.
Formularze Web składają się z dwóch części:
pierwsza zawiera informacje o kontrolkach i
ich rozmieszeniu,
druga zawiera kod, przy czym zdarzenia w
kontrolkach uruchamiają schematy zdarzeń w
kodzie.
32
Interfejsy użytkownika
Kontrolki w Formularzach Web obsługiwane są
na serwerze, ale wynik ich działania dostępny
jest na komputerze klienta.
Dla
elementów
interfejsu
użytkownika,
formularza Web lub strony ASP na serwerze
tworzony jest
serwer pośredniczący proxy.
serwer pośredniczący proxy.
Kontrolka działająca po stronie serwera
sprawdza lokalną strukturę logiczną i tworzy
własny interfejs użytkownika w postaci kodu
HTML, rozsyłany we wszystkich stronach
zawierających kontrolki.
Kontrolki działające na serwerze mogą
zarządzać własnym stanem.
33
Interfejsy użytkownika
Formularze
Web
wysyłają
wraz
ze
stroną
skompresowaną
informację
o
stanie
do
przeglądarki klienta, a kontrolki po stronie serwera
ją przechwytują i wykorzystują przy generowaniu
strony.
W środowisku .NET Framework dostępny jest
interfejs do tworzenia
aplikacji konsolowych
aplikacji konsolowych
.
Do interfejsu konsolowego mogą być zapisywane
zintegrowane komponenty zawarte w procesach
przetwarzających w trybie wsadowym.
Interfejs konsolowy, podobnie jak formularze
Windows i formularze Web dostępny jest dla
aplikacji napisanej w dowolnym języku platformy
.NET.
34
Interfejsy programowe
Interfejsem programowym
Interfejsem programowym
są
usługi Web
usługi Web
, umożliwiające
tworzenie
aplikacji
wykorzystujących
rozproszone
lokalne i zdalne zasoby, integrowane w spójne
rozwiązanie.
Na platformie .NET usługi Web są implementowane jako
cześć
technologii ASP .NET
, która obsługuje wszystkie
interfejsy WWW. Technologia ta pozwala integrować w
jednolite aplikacje rozproszone usługi internetowe.
Integrację na platformie .NET zapewnia w znacznym
stopniu język
XML
XML
.
W postaci XML są najczęściej przechowywane
metadane.
Technologia XML jest wykorzystywana w
ADO.NET
,
umożliwiając zdalne zarządzanie i reprezentacje danych.
35
Interfejsy programowe
Platforma .NET umożliwia sprawne posługiwanie
się komponentami
dotychczasowej technologii
oprogramowania COM/COM+,
tak jakby były one
komponentami
.NET.
Translacja
interfejsu
przebiega automatycznie.
Pierwszym komponentem platformy .NET jest
Visual Studio .NET
Visual Studio .NET
- kolejna wersja
Visual Studio
.
Visual Studio .NET
Visual Studio .NET
zawiera języki: Visual Basic,
Visual C++, C# (który zastąpił J++).
Wszystkie języki Visual Studio.NET używają
identycznego
zintegrowanego
środowiska
programistycznego
IDE
(Integrated Development
Environment).
36
Instalacja Visual Studio .NET
Instalacja Visual Studio .NET
• Przy instalacji
Visual Studio
.NET zostaną
zainstalowane
komponenty:
37
Następny krok to opcje instalacji.
Do tworzenia ASP.NET potrzebne będzie
>>>>
38
Visual Basic .NET lub C# .NET
(oba języki maja ta możliwość)
.NET Framework SDK ( niezbędne)
39
Strona startowa Visual
Strona startowa Visual
Studio .NET
Studio .NET
40
Start Page in Visual
Start Page in Visual
Studio .NET.
Studio .NET.
Navigation
Button
s
Location
bar
Recent
projects
ASimpleProgram
Project
Hidden
windows
(
Server
Explorer
and
Toolbox
)
41
Szablony projektów
Szablony projektów
• Po wybraniu opcji
New Project
, otworzy się okno
New Project, zawierające szablony projektów.
Windows
Applicatio
n
42
Szablony projektów
Najważnieksze szablony projektów dostępne w
Visual Studio.NET są następujące:
Windows
Application
-
szablon
standardowego
programu
typu
EXE,
komunikującego się z uzytkownikiem za
pomocą interfejsu graficznego,
Class Library - biblioteka klas zawierająca
pliki DLL,
Windows Control Library - szablon programu
typu OCX, pozwalający tworzyć kontrolkiX,
ASP .NET Web Application - szablon
programu typu DLL, pozwalający tworzyć
programy uruchamiane w przeglądarkach
internetowych zdalnych użytkowników.
43
Szablony projektów
Szablony projektów
• WebApplication ASP .NET programowana
z wykorzystaniem Visual Basic .NET
44
Szablony projektów
Console Application - szablon programu typu
EXE, działającego w wierszu polecenia systemu
Windows,
Windows Service - szablon programu typu EXE,
uruchamianego jako usługa systemu Windows.
W celu utworzenia nowego projektu należy
wybrać jego typ, a następnie szablon oraz podać
nazwę i określić (lub zaakceptować domyślną)
lokalizację projektu.
Okno nowo utworzonego projektu ma podobną
postać zarówno dla Windows Application jak i dla
Web Application i zawiera okienka:
Solution Explorer umożliwiające zarządzanie
plikami,
Properties umożliwiające ustawienie własności.
45
Design view of Visual Studio .NET.
Design view of Visual Studio .NET.
Tabs
Active
tab
Form
(Windows
application)
titled
Form1
Menu
bar
Solution
Explorer
Propertie
s
window
46
Projekt, pliki i dokument
47
Menu
Description
File
Contains commands for opening and closing projects, printing project
data, etc.
Edit
Contains commands such as Cut, Paste, Undo, etc.
View
Contains commands for displaying IDE windows and toolbars.
Project
Contains commands for managing a solution’s projects and their files.
Build
Contains commands for compiling a Visual Basic .NET application.
Debug
Contains commands for identifying and correcting problems in
applications. Also contains commands for running applications.
Data
Contains commands for interacting with databases, which store the data
that an application processes. [Note: You will learn database concepts in
Tutorial 25, ATM Application.]
Format
Contains commands for aligning and spacing a Form’s controls.
Tools
Contains commands for accessing additional IDE tools and options that
enable customization of the IDE.
Window
Contains commands for hiding, opening, closing and displaying IDE
windows.
Help
Contains commands for accessing the IDE’s help features.
Figure 2.15 Visual Studio .NET IDE menu summary.
48
IDE toolbar.
IDE toolbar.
• Toolbar
– Contains icons that represent commonly used
commands
– Down arrow indicates additional commands
Toolbar
Toolbar icon
indicates a
command to open
a project or
solution
Down arrow
indicates
additional
commands are
available
49
• Tool tip
– Appears when mouse pointer held over icon
– Displays description of icon
Tool-tip demonstration.
Tool-tip demonstration.
Tool tip displayed when
the mouse pointer has
rested on the icon for a
few seconds
50
Toolbar icons for three Visual Studio .NET
Toolbar icons for three Visual Studio .NET
IDE windows.
IDE windows.
• Toolbar icons
– Contains commands for opening:
– Solution Explorer
window
– Properties
window
– Toolbox
Solution Explorer
icon
Toolbox
icon
Properties
icon
51
Scroll
arrow
(disabled)
Tabs
Controls
Tabs
Scroll
arrow
(enabled)
Additional
Windows
Forms
tab controls
(displayed after
the down-scroll
key has been
clicked several
times
Toolbox displaying the contents
Toolbox displaying the contents
of the Windows Forms tab.
of the Windows Forms tab.
52
Properties window displaying a
Properties window displaying a
Form
Form
’s properties.
’s properties.
Component object
box
Toolba
r
Alphabetic
icon
Categorized
icon
Selected
property
Design
icon
Description of
selected
property
Properties (left
column)
Property
values (right
column)
Scrollbo
x
Scrollb
ar
Object’s name
(
Form1
)
Down arrow for
selecting Form or
control objects
Object’s class
(System.Windows.Forms.
Form)
53
Solution Explorer
• Kliknięcie na którymś elemencie w Solution
Explorer
powoduje
pojawienie
się
okna
Properties pokazujące szczegółowe informacje o
elemencie.
54
Title
bar
Displaying a hidden window
Displaying a hidden window
with Auto Hide enabled.
with Auto Hide enabled.
Horizontal pin
icon (Auto Hide
enabled)
Mouse pointer
over the tab for
the
Toolbox
Toolbox
is
displayed when
the mouse pointer
is placed on the
tab for the
Toolbox
55
Mouse pointer
outside the tab
for the
Toolbox
(
Toolbox
windows
is hidden)
Hiding the Toolbox by moving the
Hiding the Toolbox by moving the
mouse pointer outside of Toolbox’s
mouse pointer outside of Toolbox’s
area.
area.
56
Solution Explorer
Po rozwinięciu w oknie Solution Explorer
folderu References, można zobaczyć listę
automatycznie ustawionych przestrzeni nazw.
Projekt typu Windows Application zawiera
domyślny formularz Form1.vb, natomiast
projekt typu Web Application zawiera
domyślny formularz WebForm.aspx
Po kliknięciu w oknie Solution Explorer
prawym klawiszem formularza można z menu
kontekstowego wybrać View Code (okienko
edytora kodu) lub View Designer (projekt
formularza).
57
Atrybuty projektu
Lista atrybutów projektu jest podzielona na
dwie grupy:
Common Properties
Configuration Properties
W sekcji General obu typów atrybutów można
określić nazwę programu i obiekt startowy.
Typ
programu
można
zmieniać
w
ograniczonym zakresie; nie można zmienić
programu tworzonego przy pomocy szablonu
Windows Application na program typu Web
Application.
Otwierając projekt należy wskazać plik z
rozszerzeniem .sln
58
• Okno Toolbox zawiera wiele
zakładek (np.. Web Forms, Data,
HTML)
• Każda zakładka rozwija się po
kliknięciu,
• Zakładki
zawierają
kontrolki
takie jak Label (etykieta), Text
Box (pole tekstowe), itp.
• Kontrolki „przeciągamy” na
dokument, a następnie będziemy
mogli zmieniać ich właściwości.
Dodawanie
kontrolek
59
• Obsługują
wyświetlanie
i
wysyłanie danych z i
do bazy.
• Po
przeciągnięciu
usta-wiamy
ich
właściwości w oknie
Properties
• Solution
Explorer
zawiera kontekstową
pomoc
w
oknie
Dynamic Help
Kontrolki Data
60
Języki plarformy .NET
Języki używane na platformie .NET muszą być
zgodne ze specyfikacją języków
CLS (Commin
CLS (Commin
Language Specyfication).
Language Specyfication).
Rozróżnia się
trzy kategorie zgodności języków
platformy .NET:
zgodność produkcji - wymienne komponenty
języka,
zgodność użytkowania - wymienne klasy,
rozszerzalność, w wyniku dziedziczenia.
Wszystkie języki Visual Studio musza podlegać
konwersji przy przenoszeniu na platformę
.NET ze względu na pewne różnice składniowe.
61
Środowisko CLR
Środowisko uruchomieniowe CLR
Środowisko uruchomieniowe CLR
(
Common Language
Runtime
) odpowiada za zarządzanie i wykonanie kodu
skompilowanego do platformy .NET. Umożliwia ono:
płynną integrację kodów napisanych w różnych
językach,
zadeklarowanie
odpowiedniego
poziomu
bezpieczeństwa
dla
kodu
zarządzalnego,
sterującego zezwoleniami,
obsługę kilku wersji równocześnie oraz wdrażania,
profilowanie i testowanie kodu zarządzalnego,
automatyczne zarządzanie pamięcią,
kompilację kodu zarządzalnego na kod pośredni IL,
a następnie na kod wykonywalny.
CRL
może być przeniesione na inne platformy
sprzętowe i do innych systemów operacyjnych.
62
Moduł
Moduł
Język pośredni IL
Struktura aplikacji .NET
Struktura aplikacji .NET
Aplikacja .NET składa się z trzech podstawowych elementów:
Metadata
Manifest
TYP
TYP
metody,
właściwości, pola
TYP
TYP
metody, właściwości,
pola
Złożenie
Złożenie
63
Struktura aplikacji .NET
Złożenie (assembly)
Złożenie (assembly)
- jest to podstawowa
jednostka wdrożeniowa kodu zarządzalnego.
Składa się ono z:
manifestu
- zawierającego:
informacje o tożsamości złożenia (nazwa, nr.
wersji, klucz publiczny),
deklaratywne
żądania
potwierdzenia
bezpieczeństwa (wymagane, opcjonalne i
odrzucone),
listę powiązanych złożeń,
listę innych używanych typów i zasobów.
Manifest przechowywany jest w oddzielnym
pliku lub w jednym z modułów
jednego lub kilku
modułów
.
64
Struktura aplikacji .NET
Moduły
Moduły
- są to pliki DLL lub EXE Windows PE
(Portable Executable). Moduł zawiera:
kod języka pośredniego IL,
metadane powiązane z kodem IL, dostarczające
informacji na temat typów deklarowanych w IL,
manifest złożenia.
Typy
Typy
- są to szablony używane do opisu
hermetyzacji danych oraz powiązanego zbioru
zachowań. Zakres typów jest ustawiany na
poziomie złożeń.
Platforma .NET wprowadza wspólny system
typów CTS
Typ ma właściwości, metody oraz pola,
stanowiące dane elementów w obrębie typu.
65
Struktura aplikacji .NET
Metadane
Metadane
-
są
to
informacje
pozwalające
komponentom na samoopisanie się.
Określają one takie aspekty komponentu jak klasy,
metody, pola oraz samo złożenie.
W środowisku CRL metadane pozwalają na analizę i
weryfikację złożenia przed jego uruchomieniem
oraz
na
porządkowanie
pamięci
podczas
wykonywania
kodu
zarządzalnego
i
innych
procesów.
W modelach COM/COM+ metadane przechowywane
są oddzielnie od części wykonywanej aplikacji,
natomiast metadane opisujące komponent .NET są
przechowywane w zawierającym go pliku, co
umożliwia
wykorzystanie
komponentów
bezpośrednio po skopiowaniu do systemu, bez
dodatkowej rejestracji.
66
Struktura aplikacji .NET
Dostęp do wszystkich metadanych powiązanych z
kodem
zarządzalnym
jest
możliwy
dzięki
interfejsowi Reflection API.
interfejsowi Reflection API.
Interfejs
Reflection API
pozwala analizować
metadane powiązane z bieżąco wykonywanym
złożeniem.
Dostęp do metadanych powiazanych z typem
uzyskujemy za pomocą obiektu
Type
, zwracanege
przez
metodę
GetType
znajdujaca
się
w
System.Object
.
Metoda
Type.Method
umozliwia nawigację w górę
hierarchii obiektów.
Dostęp
do
metadanych
powiazanych
z
poszczególnymi polami, własciwościami oraz
metodami umozliwiają metody
Type.GetFields
,
Type.GetMethods
oraz
Type.GetProperties
.
67
Wspólny system typów
CTS
Wspólny system typów CTS
Wspólny system typów CTS
umożliwia każdemu
językowi
programowania
korzystanie
z
podstawowego
systemu
typów
oraz
mechanizmów rozszerzania tych typów.
Rozróżniamy
dwa rodzaje typów CTS
:
typy refernecyjne
, będące odpowiednikami
klas,
typy wartości
odpowiadające strukturom.
Każdy typ obsługiwany przez CTS jest
wyprowadzany
z
przestrzeni
nazw
System.Object
i obsługuje następujące metody:
Boolean
Equals
(Object)
-
sprawdza
równoważność z innym obiektem
68
Wspólny system typów
CTS
Int32 GetHashCode ( )
- generuje liczbę
odpowiadającą wartości obiektu,
Type GetType
- pozwala użyć obiektu Type w
celu uzyskania dostępu do metadanych
powiązanych z typem,
StringToString
- domyślnie, zwraca pełna
nazwę klasy obiektu.
Podstawowe typy wartości (tzw. typy proste -
primitive types) obsługiwane na platformie
.NET dostępne są w głównej przestrzeni nazw
System
System
. Są to:
Boolean - typ logiczny,
Byte - jeden bajt bez znaku (0 - 255),
Sbyte - 8-mio bitowa wartość liczby
całkowitej ze znakiem (-128 do +127),
69
Wspólny system typów
CTS
GUID - unifikatowy identyfikator (128
bitowa liczba całkowita),
Int16, Int32, Int64 - odpowiednio 16-, 32,
64-bitowa wartość liczby całkowitej ze
znakiem,
Decimal - 28 cyfr znaczących ze znakiem
Double
-
64-bitowa
liczba
zmiennoprzecinkowa ze znakiem,
Single
-
4-bajtowa
liczba
zmiennoprzecinkowa ze znakiem,
DateTime - wartość daty i czasu,
TimeSpan - czas ze znakiem,
Char - wartość znaku Unicode.
70
Wspólny system typów
CTS
Przestrzeń nazw
System.XML
System.XML
zawiera typy
potrzebne do tworzenia dokumentów XML.
Przynależność typu do kategorii typów wartości
lub typów referencyjnych
zależy od sposobu
traktowania jego instancji przez środowisko
CRL:
instancje typów wartości
są tworzone
na
stosie
; dwie zmienne typu wartości są sobie
równe, jeśli ich stany są równe
instancje typów referencyjnych
są tworzone
na
stercie
zarządzalnej
-
są
one
inicjalizowane wartością NULL. Dwie zmienne
typu referencyjnego są sobie równe, jeśli obie
stanowią odwołanie do tego samego obiektu.
71
Tworzenie własnych
typów
Definiowanie
typów
referencyjnych
na
platformie .NET polega na deklarowaniu
klas
.
Instancje
obiektów
typów
referencyjnych
tworzymy przy pomocy operatora
new
i
inicjalizujemy za pomocą
konstruktora
lub w
instrukcji przypisania
.
Definiowanie
typów wartości
na platformie .NET
polega na deklarowaniu
struktur
.
Wszystkie
typy wartości
są pochodną metody
System. ValueType
System. ValueType
, która przesłania metody
Object.Equals
Object.Equals
oraz
Object.GetHashCode.
Object.GetHashCode.
Modyfikowanie
i
dostęp
do
danych
hermetyzowanych przez instancję typu wartości
hermetyzowanych przez instancję typu wartości
jest możliwe tylko przez odpowiadająca im
jest możliwe tylko przez odpowiadająca im
zmienną.
zmienną.
72
Pakowanie typów
wartości
Pakowanie typów wartości (boxing)
ma miejsce
gdy
instancja
typu
wartości
jest
to
konwertowana
na
instancje
typu
referencyjnego, natomiast
odpakowanie typów
wartości ( unboxing)
jest procesem odwrotnym.
Pakowanie typów wartości może być formalne i
nieformalne.
Formalne pakowanie instancji typów wartości
stosujemy,
gdy
zachodzi
konieczność
przekazania jej do metod wymagających typu
referencyjnego.
73
Atrybuty
Atrybuty
Atrybuty
służą
do
określania
dodatkowych
informacji o takich elementach jak złożenia, klasy,
metody oraz właściwości. Mogą one:
mieć znaczenie czysto informacyjne,
być wykorzystane do zażądania określonego
zachowania podczas wykonywania programu,
do wywołania określonego zachowania innej
aplikacji.
Na platformie .NET można tworzyć własne atrybuty
metadanych opisujących komponenty.
Atrybuty mogą być stosowane do metod i do klas.
Przy tworzeniu atrybutu
należy zdefiniować klasę
atrybutu, będącą pochodną klasy
System.Attribute
,
która nie powinna być rozszerzalna i musi mieć
przynajmniej jeden konstruktor.
74
Dane zarządzalne
Jedną z najważniejszych możliwości środowiska
CLR
jest
zarządzanie
danymi
aplikacji,
alokowanymi na stercie zarządzalnej.
Sterta zarządzalna
jest to obszar pamięci
alokowany i zarządzany przez środowisko CLR,
w której umieszczane są wszystkie obiekty
zarządzalne, a zwłaszcza typy referencyjne.
CRL nadzoruje dostęp do tych obiektów,
zachowując bezpieczeństwo typów.
Sterta zarządzalna cechuje się
wydajną alokacją
pamięci
, lokując pamięć dla kolejnych obiektów
dokładnie
nad
ostatnio
przydzielonym
fragmentem
pamięci,
do
którego
sterta
zarządzalna utrzymuje odwołania.
75
Dane zarządzalne
Obiekty, do których nie ma już odwołań są usuwane
przez
automatyczny
automatyczny
odśmiecacz
odśmiecacz
, który jednocześnie
przesuwa
pozostawione
obiekty
w
dół
sterty
zarządzalnej,
wypełniając
luki
po
obiektach
usuwanych.
Pozwala to na
eliminację fragmentacji pamięci
oraz
aktualizację odwołań do ostatniej alokacji na stercie.
Odśmiecacz może być uruchamiany automatycznie
przez środowisko CLR lub z aplikacji poleceniem
GC.Collect
,
Odśmiecacz umożliwia likwidację
przecieków pamięci
.
Przeciek pamięci następuje wtedy, gdy pamięć
alokowana przez aplikację jest zablokowana mimo, że
aplikacja przestaje ją używać.
76
Dane zarządzalne
Przecieki
w kodzie niezarządzalnym występują gdy:
aplikacja napisana w C++ lokuje na stercie
zarządzalnej pamięć związaną z obiektem,
natomiast odśmiecacz zbiera tylko obiekty do
których nie ma już odwołań w aplikacji,
dwa obiekty COM zawierają odwołania cykliczne
(A do B, a B do A).
Automatyczny odśmiecacz bezpośrednio przed
usunięciem
obiektu
wywołuje
metodę
Object.Finalize
Object.Finalize
, która powinna zawierać wszystkie
czynności związane z porządkowaniem pamięci.
Uruchomienie
automatycznego
odśmiecacza
następuje dopiero wtedy,
gdy brakuje wolnej
pamięci
.
77
Dane zarządzalne
Niezbędne
porządkowanie
pamięci
należy
przeprowadzać w metodzie
Finalize
Finalize
, której ścieżka
kodu powinna być możliwie jak najkrótsza.
Metoda
Finalize
nie powinna być traktowana przez
programistę jako destruktor obiektów, a jedynie
używana wtedy gdy brakuje pamięci.
Implementując
metodę
Finalize
należy
zaimplementować metodę
Dispose
Dispose
lub
Close
Close
, która
może być wywołana przez klienta, gdy obiekt
przestaje być używany.
Metoda
Finalize
nie powinna wywoływać metod dla
innych obiektów, do których odwołuje się zbierany
obiekt.
Kolejność zbierania obiektów na stercie zarządzalnej
przez automatyczny odśmiecacz jest nieokreślona.
78
• Dino Esposito : Tworzenie aplikacji za pomocą ASP.NET oraz
ADO.NET (Microsoft Press, Wydawnictwo RM Warszawa 2002)
• Julian Templeman, David Vitter : Visual Studio .NET: .NET
Framework. Czarna Księga (Helion 2003)
• Microsoft Press : Microsoft Visual C#.NET Encyklopedia
(Helion 2003)
• Rusty Harold : XML. Księga Eksperta (Helion 2001)
• Scott Worley : ASP.NET. Vademecum Profesjonalisty (Helion,
2003)
• Steaven Holzner : XML. Vademecum Profesjonalisty
(Helion2001)
• http://www.ASP.com
• http://www.ietf.org/RFC% 2069/
• http://www.learnASP.com
• http://www.msdn.microsoft.com/vcsharp/
• http://www.windows2003.pl
• http://www.xml.com
Literatura