Platformy technologiczne Platforma .net

Slides:



Advertisements
Podobne prezentacje
C++ wykład 2 ( ) Klasy i obiekty.
Advertisements

Programowanie obiektowe
Podstawowe pojęcia związane z Active Directory
Wprowadzenie do C++ Zajęcia 2.
CORBA Łukasz Wnęk.
Wydajne aplikacje na platformie .NET
ADAM Active Directory w trybie aplikacyjnym
CLR na platformie .NET Tomasz Kostarski.
VisualStudio.Net Janusz Górczyński.
Platforma .Net i Vs.Net.
PROGRAMOWANIE WIZUALNE
Systemy operacyjne Wykład nr 5: Wątki Piotr Bilski.
Wykład 2. Wprowadzenie do architektur systemów rozproszonych
Biblioteki i przestrzenie nazw
Systemy operacyjne.
Pakiety i ATD 1 Definicja. Pakietem albo jednostką programową nazywamy grupę logicznie powiązanych elementów, które mogą być typami, podtypami, obiektami.
ASP.NET i platforma.NET Technologie internetowe ( ) Tomasz Popów
P I OTR SKOŁYSZ. POCHODZENIE I CELE CZYM JEST.NET ? CO IMPLEMENTUJE MONO ? ŚRODOWISKO PRACY [MONODEVELOP] SYTEMY OPERACYJNE CO PROGRAMOWAĆ ? JĘZYKI PRZYKŁADOWY.
Information Bridge Framework platforma integracji Microsoft Office 2003 z aplikacjami Line of Business Krzysztof Michalski10/01/2005.
Enteprise Java Beans Emil Wcisło.
Wzorce projektowe w J2EE
Język Java Wielowątkowość.
Modele baz danych - spojrzenie na poziom fizyczny
SZPIF – Harmonogram, Opis narzędzi, Schemat bazy danych
C# Windows Forms Zastosowania Informatyki Wykład 2
Podstawy C# Grupa .NET PO.
.NET gdzie szukać? .NET co warto wiedzieć?
Pakiety w Javie Łukasz Smyczyński (132834). Czym są pakiety? Klasy w Javie są grupowane w pewne zbiory zwane pakietami. Pakiety są więc pewnym podzbiorem.
Rozwój aplikacji przy wykorzystaniu ASP.NET
Witold Bołt Wprowadzenie do .NET Witold Bołt
Instytut Tele- i Radiotechniczny WARSZAWA
Wirtualna baza SQL zgodna z SQL Server SQL as a Service
Opracował : Przemysław Drzymała
Platformy technologiczne Platforma .net
Programowanie Windows na przykładzie C# część 1
Programowanie obiektowe – zastosowanie języka Java SE
Wykonał: Michał Nikołajuk
Narzędzia administracyjne
POŚREDNIK Jak reprezentowana jest informacja w komputerze? liczby – komputer został wymyślony jako zaawansowane urządzenie służące do wykonywania.
Systemy zarządzania treścią Wykład 5
Technologie Programowania seminarium
Zajęcia I Organizacja zajęć Rejestracja i uruchamianie makr
Wstęp do ASP.NET Arkadiusz Popa Serwery Aplikacji
Programowanie sieciowe w Javie
Toruń 28/ Metadane SAML opisują, w jaki sposób ma być realizowana komunikacja pomiędzy IdP i SP Metadane są typowo prezentowane w postaci XML.
Programowanie zaawansowane
Procesor, pamięć, przerwania, WE/WY, …
Projektowanie Aplikacji Internetowych Artur Niewiarowski Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska.
Technologie internetowe Wykład 5 Wprowadzenie do skrytpów serwerowych.
Technologie internetowe i mobilne
Platforma .NET VB.NET Maria DEMS.
Uprawnienia w Windows Server
Waldemar Bartyna Pytania egzaminacyjne 1.
Programowanie w środowisku sieciowym W. Bartkiewicz 1. Wprowadzenie do platformy.NET.
XML w serwisach webowych. Zapotrzebowanie na serwisy XML.
Waldemar Bartyna 1 Programowanie zaawansowane LINQ to XML.
Platforma .Net.
Podstawy programowania
Waldemar Bartyna Pytania egzaminacyjne 1.
Temat: Porównanie technologii php,c# oraz javascript na przykładzie webaplikacji typu społecznościowy agregator treści Autor: Wojciech Ślawski.
Programowanie Obiektowe – Wykład 2
Programowanie obiektowe – zastosowanie języka Java SE
Aplikacje i usługi internetowe
Podstawy programowania
Założenia projektowe Javy
NEMERLE Michał Maliszewski.
Programowanie w Javie 1 Dr Robert Kowalczyk
Zapis prezentacji:

Platformy technologiczne Platforma .net mgr inż. Tomasz Gawron

Czym jest .NET Platforma nie związana z językiem programowania Środowisko uruchomieniowe (CLR) Biblioteka klas (BCL) Jezyk pośredni (MSIL) Automatyczne zarządzanie: Kodem Pamięcią Wyjątkami Implementacje OpenSource (Mono, Rotor) Platformy Technologiczne 2012

Cele i charakterystyka Trzy główne elementy: Framewerk Produkty (MS Windows, MS Office, Visual Studio, …) Usługi Unifikacja API Zabezpieczenia unikalną częścią platformy Uproszczone wytwarzanie i instalowanie aplikacji XML jako metajęzyk Platformy Technologiczne 2012

Zadada działania Platformy Technologiczne 2012 http://upload.wikimedia.org/wikipedia/commons/8/85/Overview_of_the_Common_Language_Infrastructure.svg Platformy Technologiczne 2012

Stos platformy Platformy Technologiczne 2012

Elementy platformy .NET Common Language Runtime środowisko wykonawcze odpowiedzialne za lokalizowanie, wczytywanie oraz zarządzanie typami .NET. Common Language Infrastructure Common Type System (CTS) - standard obejmujący sposób reprezentacji typów danych w pamięci komputera Common Language Specification (CLS) - zbiór zasad i reguł, które musi spełnić język programowania aby współpracować z CLI Common Intermediate Language język pośredni (MSIL) składający się z niezależnego od procesora zestawu rozkazów, do którego kompilowane są wszystkie programy korzystające ze środowiska .NET Metadane Platformy Technologiczne 2012

Common Language Runtime Zarządzanie kodem (uruchamianie i nadzór nad jego wykonywaniem) Izolowanie obszarów pamięci przydzielonych poszczególnym aplikacjom Konwersja języka pośredniego IL do kodu maszynowego Zarządzanie pamięcią (w przypadku obiektów zarządzanych) Dostęp do metadanych (rozszerzonej informacji o typach) Stosowanie zabezpieczeń dostępu kodu do zasobów, Weryfikacja zgodności typów, Obsługa wyjątków i przekazywanie ich pomiędzy różnymi językami programowania, Obsługa współpracy pomiędzy kodem zarządzanym, obiektami COM i starszymi bibliotekami DLL, Automatyzacja tworzenia obiektów, Usługi związane z tworzeniem oprogramowania (debugowanie, profilowanie itp.) Platformy Technologiczne 2012

CLI – standard ECMA Zgłoszony wspólnie przez Micosoft, Intel i HP w 2000 roku Platformy Technologiczne 2012

CLI – Common Type System Zarządzanie typami danych Podział na dwie grupy: Typy wartościowe (value type): Prymitywy (bool, char, int, float…), struktury (struct), emumeratory (enum) umieszczane na stosie bezpośrednio zawierają dane każda zmienna ma swoją kopię nie mogą zawierać null-i Typy referencyjne (reference type) klasy, tablice, delegaty, interfejsy umieszczane na stercie zmienna zawiera referencję do danych wiele zmiennych może odnosić się do jednego obiektu – operacje na jednej zmiennej mogą mieć wpływ na drugą cykl życia zarządzany przez Garbage Collector Platformy Technologiczne 2012

CLI – Common Language Specification Zestaw zasad umożliwiających współpracę pomiędzy językami Trzy główne elementy: Framework Biblioteka zawierająca kod zgodny z specyfikacją CLS Consumer Język programowania lub narzędzie zaprojektowane aby dać dostęp do cech dostarczonych przez Framework zgodny z CLS Extender Język programowania lub narzędzie zaprojektowane, aby umożliwić wykorzystanie i rozszerzanie Frameworku zgodnego z specyfikacją CLS Platformy Technologiczne 2012

Common Intermediate Language Język pośredni (CIL) jest niezależnym od procesora zestawem rozkazów, do którego kompilowane są wszystkie programy korzystające ze środowiska .NET. Zawiera instrukcje niezbędne do ładowania, przechowywania i inicjalizowania obiektów oraz do wywoływania ich metod. Wraz z metadanymi i wspólnym systemem typów, MSIL pozwala na pełną integrację pomiędzy różnymi językami programowania. Kod skompilowany do języka IL jest wejściem do kompilatora JIT (Just-In-Time Compilation) przekształcającego go w kod maszynowy. Kod jest kodem zarządzanym Platformy Technologiczne 2012

CIL – kompilacja JIT CIL jest kompilowany do kodu procesora podczas wykonywania programu IL // Point pt = new Point(); .locals init ([0] class Point pt) newobj instance void Point::.ctor() stloc.0 // pt.x = 200; ldloc.0 ldc.i4 0xc8 stfld int32 Point::x // pt.y = 300; ldc.i4 0x12c stfld int32 Point::y C# Point pt; pt = new Point(); pt.x = 200; pt.y = 300; dev-time compile CIL Intel x86 run-time compile call FD5B0AD8 ; allocate mov ecx, eax ; ecx == pt call dword ptr ds:[003E5144h] ; pt.ctor mov dword ptr [ecx+4], 0C8h ; pt.x = 200 mov dword ptr [ecx+8], 12Ch ; pt.y = 300 Platformy Technologiczne 2012

CIL - przykład Platformy Technologiczne 2012 IL_006e: ldloc.s V_4 IL_0070: ldloc.1 IL_0071: ldelema [System.Drawing]System.Drawing.Color IL_0076: ldloc.0 IL_0077: ldloc.1 IL_0078: ldarg.1 IL_0079: sub IL_007a: ldloc.2 IL_007b: callvirt instance valuetype [System.Drawing]System.Drawing.Color [System.Drawing]System.Drawing.Bitmap::GetPixel(int32, int32) IL_0080: stobj [System.Drawing]System.Drawing.Color IL_0085: ldloc.1 IL_0086: ldc.i4.1 IL_0087: sub IL_0088: stloc.1 IL_0089: ldloc.1 IL_008a: ldarg.1 IL_008b: bge.s IL_006e Platformy Technologiczne 2012

Podzespoły - Assemblies Logiczne bloki, skompilowane do kodu pośredniego IL, z których buduje się aplikacje .NET Zawierają kod w języku IL oraz metadane Wersjonowane Opisywane przez 2 rodzaje metadanych: manifest Nazwa podzespołu Numer wersji Podpis cyfrowy Lista uprawnień metadane indywidualne Platformy Technologiczne 2012

Assemblies - metadane Metadane typów - szczegółowy opis typów zdefiniowanych w kodzie zarządzanym, z którym są związane. Opis ten przechowywany jest w tym samym pliku, w którym znajduje się kod CIL. Informacje zawierają: Opis typów nazwę typu zasięg typu (publiczny lub w granicach podzespołu) nazwę typu, po którym dziedziczy opisywany typ implementowane interfejsy implementowane metody udostępniane właściwości obsługiwane zdarzenia Atrybuty – dodatkowe informacje o elementach kodu atrybuty mają określone nazwy i funkcje, definiowane przez różne części środowiska .NET Framework mogą one służyć do sterowania sposobem wykonywania kodu, opisać wymagania bezpieczeństwa class A { ... } class B { ... } Prog.cs class C { ... } Lib.cs csc Prog.cs,Lib.cs metadata CIL code of A CIL code of B CIL code of C Prog.exe loader manifest Platformy Technologiczne 2012

Assemblies Po skompilowaniu do kodu IL, zarządzany kod jest częścią podzespołu podzespół zawiera jedną lub wiele DLLs or EXEs Podzespoły mogą być używane jako prywatne albo współdzielone Podzespół prywatny jest instalowany poprzez kopiowanie do folderu nie wymagane jest umieszczenie w rejestrze Są podstawą bezpieczeństwa kodu Pobierany kod może mieć przydzielone uprawnienia Platformy Technologiczne 2012

Bezpieczeństwo w .NET Role Based Security Code Access Security Identity (tożsamość użytkownika) Principal (role użytkownika) Code Access Security Ograniczanie funkcjonalności kodu Ograniczanie wywołania kodu Identyfikacja kodu Platformy Technologiczne 2012

Role Based Security Identity Principals WindowsIdentity, GenericIdentity, IIdentity Principals WindowsPrincipal, GenericPrincipal, IPrincipal Możemy uzależnić wykonanie kodu od posiadanych przez użytkownika uprawnień Platformy Technologiczne 2012

Code Access Security Operuje na uprawnieniach do kodu (FileIOPermission, UIPermission...) Można tworzyć własne zestawy uprawnień Na poziomie CLR tworzone są grupy kodu o identycznych uprawnieniach 4 poziomy uprawnień: Enterprise (cały kod zarządzany) Machine (cały kod zarządzany na komputerze) User (cały kod zarządzany powiązany z użytkownikiem) Application Domain (kod zarządzany w aplikacji hosta) Platformy Technologiczne 2012

Historia platformy Wersja Data wydania 1.0 2002-02-13 1.1 2003-04-24 2.0 2005-11-07 3.0 2006-11-06 3.5 2007-11-19 4.0 2010-04-12 http://www.rajneeshnoonia.com/blog/uploads/images/DotNetStack.png Platformy Technologiczne 2012

Biblioteki klas Elementy biblioteki klas .NET Framework, pogrupowane są za pomocą hierarchicznej struktury przestrzeni nazw (namespace) ok. 100 namespaces z około 2000 typów Umożliwiają dostęp do usług systemowych i zostały zaprojektowane tak, aby stanowiły podstawę do tworzenia aplikacji, komponentów i kontrolek .NET Platformy Technologiczne 2012

Użyteczne namespaces Platformy Technologiczne 2012 Namespace Opis System Podstawowe klasy, które definiują najczęściej używane typy danych, zdarzenia, procedury obsługi zdarzeń, interfejsy, atrybuty i wyjątki. Inne klasy w tej przestrzeni nazw 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, oraz nadzorowaniem zarządzanego i niezarządzanego kodu. System.Collections System Collection.Generic Definiują różne kolekcje obiektów - listy, kolejki, stos, słowniki, tablice skrótów System.IO Podstawowy dostęp i zarządzanie strumieniami danych. Zawiera typy umożliwiające synchroniczny i asynchroniczny odczyt i zapis do strumieni danych i plików. System.Text Kodowanie znaków, konwersje znaków i manipulacje łańcuchami znaków System.Data Dostęp i zarządzanie danymi i źródłami danych. Architektura dostępu do danych ADO.NET, umożliwia tworzenie komponentów, które pozwalają na wydajne zarządzanie danymi pochodzącymi z różnych źródeł. System.XML Zgodna ze standardami obsługa przetwarzania XML’a System.XML.Serialization Serializacja obiektów do postaci XML Platformy Technologiczne 2012

Użyteczne namespaces Platformy Technologiczne 2012 Namespace Opis System.Net Udostępnia proste interfejsy programistyczne dla wielu protokołów używanych we współczesnych sieciach. System.Runtime.Serialization Klasy używane do serializowania i deserializowania obiektów. System.Threading Klasy i interfejsy umożliwiające programowanie wielowątkowe. System.Web Wsparcie dla zarządzania, komunikacji i projektowania serwerów i klientów oraz usług internetowych XML Web Services; m.i.: manipulacje plikami cookie, transfer plików, obsługę wyjątków, zarządzanie buforem wyjściowym, stanem sesji. System.ServiceModel Budowanie aplikacji rozproszonych za pomocą API WCF System.Windows.Forms Funkcje interfejsu użytkownika dla aplikacji działających pod kontrolą systemu Windows. Platformy Technologiczne 2012

Dostępność narzędzi MSDNAA Bezpłatne wersje Express MS BizSpark (http://www.microsoft.com/bizspark/) Implementacje OpenSource (http://www.mono-project.com) Platformy Technologiczne 2012

.NET vs Java .NET: Java: Wiele języków, jedna platforma Jeden język, wiele platform Platformy Technologiczne 2012