platforma .net
DESCRIPTION
Platforma .NET. Maria DEMS. Instalacja pakietów platformy .NET. Kolejność instalacji: 1. Microsoft .NET Framework 1.1, plik dotnetfx.exe Pakiet redystrybucyjny systemu Microsoft .NET Framework w wersji 1.1 - PowerPoint PPT PresentationTRANSCRIPT
2
Kolejność instalacji:
1. Microsoft .NET Framework 1.1, Microsoft .NET Framework 1.1, plikplik 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.1Microsoft .NET Framework 1.1 — plik langpack.exelangpack.exe Pakiet języka polskiego, http://download.microsoft.com/download/4/9/c/49c17289-dfd6-4eca-87a1-a2fe5e580774/langpack.exe
3. Pakiet programowania Microsoft Asp.NET Web Matrix Pakiet programowania Microsoft Asp.NET Web Matrix ProjectProject, plik WebMatrix.msiWebMatrix.msi
http://www.asp.net/webmatrix/default.aspx
Instalacja pakietów Instalacja pakietów platformy .NETplatformy .NET
3
Ogólna charakterystyka Ogólna charakterystyka platformy .NETplatformy .NET
Platforma .NETPlatforma .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 .NETProdukty .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 .NETplatformy .NET
Integracja produktów .NET oparta jest na:XML- języku opisu danych,SOAP - protokole transmisji danych między
produktami. Usługi .NETUsł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 .NETplatformy .NET
Programy napisane w Visual Studio .NET uruchamiane są w wirtualnej maszynie .NET Framework, .NET 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/downloadsPlatforma .NET Framework .NET Framework dla Windows 2003 jest
instalowana automatycznie podczas instalacji systemu.
6
C# VB C++ JavaScript
J# Itd.
Vi-sual Stu-dio.NET lub inne
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
Schemat platformy .NET
7
Ogólna charakterystyka Ogólna charakterystyka platformy .NETplatformy .NET
Rdzeń platformy stanowi .NET Framework .NET Framework zawierający:właściwą platformę językową i wykonawczą CLRobszerne 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 Web Services, ASP.NET, ADO.NET. Services, ASP.NET, ADO.NET.
8
Główne komponenty Główne komponenty platformy .NETplatformy .NET
Architektura .NET składa się z trzech warstw:
Środowisko uruchomieniowe CLR
zarządzanie pamięcią wspólny system typów monitorowanie
Standardowy system usług nowej generacji
XMLADO.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 CLRCLR
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ństwoKompilacja kodu IL
Obsługa wykonywania (tradycyjne funkcje środowiska
uruchomieniowego)
Wspólny system typów
Główne elementy środowiska CLR
10
Główne cele środowiska CLRGłówne cele środowiska CLR
Łatwiejsze i szybsze tworzenie oprogramowaniaŁatwiejsze i szybsze tworzenie oprogramowania. Automatyczna obsługa procesów „udrażnianiaAutomatyczna 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żeniazł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 CLRGłówne cele środowiska CLR
klasy bazoweklasy bazowe oraz interfejsyinterfejsy 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 CLRGłówne cele środowiska CLR
Proste i bezpieczne wdrażanie aplikacjiProste 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 CLRGłó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 CLRGłówne cele środowiska CLR
Integracja i obsługa różnorodnych językówIntegracja 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
CLRCLRAplikacja 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 BCLBCL
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ń SystemSystem, 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.DiagnosticsSystem.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 email 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 SystemSystem.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.MathSystem.Math - biblioteka funkcji matematycznych (np..Sqrt, Cos, Log, Min)
System.ReflectionSystem.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.FormsSystem.Windows.Forms.
WinForms oparty jest na mechanizmie tworzenia formularzy Visual Basica.
W VisualStudio.NET do tworzenia formularzy służy wizualny kreator EWinFormsEWinForms.
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 serwer pośredniczący proxy.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 konsolowychaplikacji 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 programowymInterfejsem programowym są usługi Webusł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 XMLXML.
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 Visual Studio .NET 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 .NETInstalacja Visual Studio .NET
• Przy instalacji Visual Studio .NET zostaną zainstalowane komponenty:
40
Start Page in Visual Studio .NET.Start Page in Visual Studio .NET.
Navigation Buttons Location bar
Recent projects
ASimpleProgram Project
Hidden windows (Server Explorer and Toolbox)
41
Szablony projektówSzablony projektów
• Po wybraniu opcji New Project, otworzy się okno New Project, zawierające szablony projektów.
Windows Application
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ówSzablony projektów
• WebApplication ASP .NET programowana z wykorzystaniem Visual Basic .NET
44
Szablony projektówConsole 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
Properties window
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
TabsScroll 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 FormForm’s properties.’s properties.
Component object box
ToolbarAlphabetic icon
Categorized icon
Selected property
Design icon
Description of selected property
Properties (left column)
Property values (right column)
Scrollbox
Scrollbar
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 mouse Hiding the Toolbox by moving the mouse pointer outside of Toolbox’s area.pointer outside of Toolbox’s 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 .NETJęzyki używane na platformie .NET muszą być zgodne ze
specyfikacją języków CLS (Commin Language CLS (Commin Language Specyfication).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 .NETStruktura aplikacji .NET
Aplikacja .NET składa się z trzech podstawowych elementów:
Metadata
Manifest
TYPTYP
metody, właściwości, pola
TYPTYP
metody, właściwości, pola
ZłożenieZł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łyModuł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.
TypyTypy - 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
CTSTyp ma właściwości, metody oraz pola, stanowiące
dane elementów w obrębie typu.
65
Struktura aplikacji .NET
MetadaneMetadane - 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 .NETDostęp do wszystkich metadanych powiązanych z kodem
zarządzalnym jest możliwy dzięki interfejsowi Reflection interfejsowi Reflection API.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 CTSWspó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 SystemSystem. 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 znakiemDouble - 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. System. ValueTypeValueType, która przesłania metody Object.EqualsObject.Equals oraz Object.GetHashCode.Object.GetHashCode.
Modyfikowanie i dostęp do danych hermetyzowanych hermetyzowanych przez instancję typu wartości jest możliwe tylko przez przez instancję typu wartości jest możliwe tylko przez odpowiadająca im zmienną.odpowiadająca im 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 AtrybutyAtrybuty 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 automatycznyautomatyczny odśmiecaczodś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.FinalizeObject.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ądzalneNiezbędne porządkowanie pamięci należy przeprowadzać
w metodzie FinalizeFinalize, 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ę DisposeDispose lub CloseClose, 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