Platforma .NET

78
Platforma .NET Platforma .NET Maria DEMS Maria DEMS

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 Presentation

Transcript of Platforma .NET

Platforma .NETPlatforma .NET

Maria DEMSMaria DEMS

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:

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 .NETStudio .NET

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

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

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