Platforma.NET Wykªad 1 Informacje o wykªadzie i platformie.net Marek Sawerwain e-mail: M.Sawerwain@issi.uz.zgora.pl Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski Ostatnia kompilacja pliku: 9 marca 2017, t: 18:59 V1.3b 1/ 58
Spis tre±ci 1 Wprowadzenie Warunki zaliczenia Zakres tematyczny Plan wykªadu Literatura 2 Poj cie platformy Historia i przyszªo± Aspekty tworzenia platformy oraz jej u»ywania Wyzwania projektowe Projektowanie oprogramowania Architektura wielowarstwowa/architektura klient-serwer Przykªady platform 3 Platforma.NET ródªa oraz cele platformy.net Gªówne elementy platformy.net Proces kompilacji w.net Gªówne usªugi dost pne w.net Zalety platformy.net 4 Ju» za tydzie«na wykªadzie Czas na troch kodu Zapowied¹ materiaªu, który pojawi si na nast pnym wykªadzie V1.3b 2/ 58
Warunki zaliczenia Warunki zaliczenia Dwa sprawdziany pisemne, na siódmym i czternastym spotkaniu (studia niestacjonarne (SN), sprawdzian na ostatnim spotkaniu): 70% ocena dostateczna (dst), 75% ocena dostateczna plus (dst+), 80% ocena dobra (db), 85% ocena dobra plus (db+), 90% ocena bardzo dobra (bdb), >100% ocena celuj ca (bdb+). osoby które nie uzyskaªy 70% uzyskuj prawo do dodatkowego terminu poprawkowego, w trakcie sesji wªa±ciwej. Dodatkowo, dwie prace pisemne (artykuªy do dziesi ciu stron, tematy prezentowane b d na wykªadach, jeden temat z wykªadów 1-7, drugi 8-14) niezb dne na ocen bdb i celuj c : pierwsza praca powinna zosta oddana na siódmym lub ósmym wykªadzie (SN - pi te spotkanie), druga praca powinna zosta oddana na przedostatnim lub ostatnim roboczym wykªadzie, prace po wyznaczonym terminie nie b d przyjmowane! V1.3b 3/ 58
Zakres tematyczny Zakres tematyczny Wprowadzenie do platformy.net Przedstawienie struktury platformy.net Rodzaje i typy platformy.net Zarys ±rodowiska.net Framework Przegl d j zyków programowania dla platformy.net Charakterystyka pakietu Microsoft Visual Studio Prezentacja ±rodowiska programistycznego Edycja formularzy Uruchamianie aplikacji Tworzenie przykªadowej aplikacji dla systemu Windows rodowisko CLR (ang. Common Language Runtime) Podstawowe funkcje i usªugi CLR Zarz dzanie pami ci i zasobami Zarz dzanie w tkami Struktura i ukªad metadanych Obsªuga bª dów przy u»yciu wyj tków Integracja z bibliotekami Win32 DLL Metody interakcji mi dzy aplikacjami Porównanie ±rodowiska CLR z JVM (ang. Java Virtual Machine) Podstawy programowania w j zyku C# Omówienie skªadni j zyka: instrukcje, zmienne, operatory i typy danych. Zasady tworzenie klas, metod, konstruktorów oraz obiektów tych klas V1.3b 4/ 58
Zakres tematyczny Zakres tematyczny U»ycie tablic Przegl d podstawowych narz dzi zawartych w SDK (ang. Software Development Kit) Zaawansowane elementy j zyka C# Dyrektywy preprocesora Obsªuga zdarze«obsªuga bª dów za pomoc wyj tków Operacje na ªa«cuchach znaków Korzystanie z komponentów interfejsu Windows Wykorzystanie wyra»e«regularnych Zdalne wywoªywanie obiektów Dost p i operacje na plikach W tki i ich synchronizacja Omówienie BCL (ang. Base Class Library) Budowanie komponentów.net Zasady tworzenia, projektowanie, implementacja i testowanie komponentów Wspóªpraca z komponentami COM i COM+ Wykorzystanie j zyka XML na potrzeby platformy.net Sposoby wymiany informacji z wykorzystanie dokumentów XML, przegl d API do przetwarzania dokumentów XML Metody dost pu do baz danych Dost p do danych przy u»yciu ADO.NET (ang. ActiveX Data Objects.NET) Przegl d obiektów ADO.NET V1.3b 5/ 58
Zakres tematyczny Zakres tematyczny Prezentacja danych z baz danych na witrynach internetowych Technologia ASP.NET (ang. Active Server Pages.NET) Klasy bazowe i podstawowe obiekty ASP.NET U»ycie j zyka XML w poª czeniu z ASP.NET Tworzenie stron WWW zawieraj cych komponenty ASP.NET Tworzenie usªug sieciowych przy u»yciu web services Wykorzystanie protokoªów SOAP (ang. Simple Object Access Protocol) i UDDI (ang. Universal Description, Discovery and Integration) Bezpiecze«stwo aplikacji ASP.NET: kontrola dost pu, autoryzacja, szyfrowanie danych Programowanie mikrokontrolerów w.net V1.3b 6/ 58
Plan wykªadu Plan wykªadu tydzie«po tygodniu (1) Informacje o wykªadzie, poj cie platformy, podstawowe informacje o platformie.net, (2) Skªadowe platformy.net: CLR, CTS, j zyki programowania, biblioteki klas, poj cie podzespoªu (ang. assembly), (3) Programowanie w C# ±rodowisko VS, MonoDevelop, syntaktyka C#, wyj tki, wspóªpraca z DLL, (4) Programowanie w C# model obiektowy, typy uogólnione, lambda wyra»enia, (5) Programowanie w C# aplikacje okienkowe, programowanie wielow tkowe (6) Programowanie w F# podstawy, przetwarzanie danych tekstowych, (7) "Klasówka I", czyli egzamin cze± pierwsza (8) Dost p do baz danych V1.3b 7/ 58
Plan wykªadu Plan wykªadu tydzie«po tygodniu (9) J zyk zapyta«linq (10) Obsªuga standardu XML (11) Technologia ASP.NET (12) ASP.NET Model View Controller (13) Tworzenie usªug sieciowych SOA i WCF (14) Bezpiecze«stwo aplikacji.net (15) Programowanie mikrokontrolerów w.net (microframework.net, TinyCLR) (16) "Klasówka II", czyli egzamin cze± druga V1.3b 8/ 58
Literatura Pozycje polskoj zyczne Literatura podstawowa: 1 Chappell D.: Zrozumie platform.net, Helion, 2007 2 Duy J.:.NET Framework 2.0, Zaawansowane programowanie, Helion, 2007 3 Michelsen K.: J zyk C#. Szkoªa programowania, Helion, 2007, 4 Esposito D.: Tworzenie aplikacji za pomoc ASP.NET oraz ADO.NET, Wydawnictwo RM, 2002 5 Evjen B., Hanselman S., Rader D.: ASP.NET 4 z wykorzystaniem C# i VB. Zaawansowane programowanie, Helion, 2011 6 Lee W.M.: C# 2008. Warsztat programisty, Helion, 2010. 7 Troelsen A.: J zyk C# 2010 i platforma.net 4.0, s.1400, Wydawnictwo Naukowe PWN, 2011. Literatura uzupeªniaj ca: 1 Halvorson M.: Microsoft Visual Basic.NET, Wydawnictwo RM, Warszawa, 2002 2 Burton K.:.NET CLR. Ksi ga eksperta, Helion, 2002 3 Liberty J.: C# 2005. Wprowadzenie, O'Reilly, 2007 4 Cabrera L. F., Kurt C.: Architektura usªug Web i jej specykacje. Klucz do zrozumienia WS, Microsoft Press, 5 Hewardt M.: Debugowanie.NET. Zaawansowane techniki diagnostyczne, Helion, 2010 V1.3b 9/ 58
Literatura Pozycje angloj zyczne Wydawnictwa, gdzie mo»na odszuka wiele cennych i interesuj cych pozycji ksi»kowych: Wydawnictwo A-PRESS (e-book) dziaª.net http://apress.com/ Wydawnictwo WROX dziaªy.net/c#/asp.net http://www.wrox.com Literatura: 1 Novák. I, Velvárt A., Granicz A., Balássy G., Hajdrik A., Sellers M., Hillar G.C., Molnár A., Kanjilal J.: Visual Studio R 2010 and.net 4 Six-in-One, Wiley Publishing, Inc., 2010, 2 Nash T.: Accelerated C# 2010, A-Press, 2010, 3 Solis D.M.: Illustrated C# 2010, A-Press, 2010, 4 Troelsen A.: Pro C# 2010 and the.net 4 Platform, 5th Ed., A-Press, 2010, 5 Troelsen A., Japikse P.: C# 6.0 and the.net 4.6 Framework, 7th Ed., A-Press, 2015, 6 Freeman A. and Rattz J.C. Jr.: Pro LINQ: Language Integrated Query in C# 2010, A-Press, 2010, 7 Pickering R., Eason K.: Beginning F# 4.0, A-Press, 2016, 8 Syme D., Granicz A., Cisternino A.: Expert F# 4.0, 4th Ed., A-Press 2015. V1.3b 10/ 58
Literatura Informacje w sieci Internet Standard ECMA 334 (C#): http://www.ecma-international.org/publications/standards/ecma-334.htm Standard ECMA 335 (CLI): http://www.ecma-international.org/publications/standards/ecma-335.htm Konsorcjum WWW http://www.w3.org Microsoft.NET http://www.microsoft.com/net/ Strona po±wi cona technologii.net http://www.codeguru.pl Projekt MONO http://www.mono-project.com/ Projekt DotGNU http://dotgnu.org/ rodowisko MonoDevelop http://monodevelop.com/ rodowisko SharpDevelop http://sharpdevelop.net/ J zyki programowania w.net http://dotnetlanguages.net J zyk programowania Nemerle http://nemerle.org/ J zyk F# http://msdn.microsoft.com/pl-pl/fsharp J zyk IronPython http://www.ironpython.info/.net Blog https://blogs.msdn.microsoft.com/dotnet/ Reimplementacja C# oraz Silver http://www.elementscompiler.com/elements/ V1.3b 11/ 58
Literatura Inne wykªady i materiaªy 1 Wykªad Macieja Piechówki Politechnika Gda«ska, 2 Materiaªy rmy Microsoft, Piotr Bubacz, ITA-103, Aplikacje Internetowe, zasoby Internetu, 3 Materiaªy do laboratorium do przedmiotu Platforma.NET. V1.3b 12/ 58
Literatura Plan wykªadu 1 Poj cie platformy (platforma technologiczna) 1 historia i przyszªo±, 2 aspekty tworzenia/projektowania platformy i oprogramowania, 3 architektura wielowarstwowa, 4 przykªady platform. 2 Platforma.NET Podstawowe informacje 1 ¹ródªa oraz cele platformy.net, 2 gªówne elementy platformy.net, 3 zalety platformy.net. V1.3b 13/ 58
Historia i przyszªo± Czym byªa, jest i b dzie platforma informatyczna Technologie wytwarzania oprogramowania: 1980 1995 2000 2010 Structures Object Component Model and procedures technology technology technology Classes, Objects Packages, Frameworks, Patterns UML, Ontology, Meta-Models, Models Web2.0, Clouds Pascal, C Smalltalk, C++,... Web Services,..., SOA SGML, XML, XMI, XSLT,... Ogólnie technologia to: Obiekty i złożenia usług Transformacje modeli Kolektywna inteligencja (Borg?) metoda przeprowadzania procesu produkcyjnego lub przetwórczego, ale te» caªoksztaªt wiedzy potrzebnej do wytworzenia okre±lonego dobra, charakteryzowana przez wiele czynników jak koszt, czas wytworzenia, wygoda, bezpiecze«stwo,..., Natomiast platforma, czyli dziedzina wspólnego dziaªania, charakteryzuje si min.: faktem i» szczegóªy implementacji danej platformy nie s wa»ne, najwa»niejsze s funkcjonalno±ci udost pniane przez dan platform, oferuje kompletn infrastruktur do tworzenia aplikacji. V1.3b 14/ 58
Aspekty tworzenia platformy oraz jej u»ywania Na co trzeba zwróci uwag Najwa»niejsze elementy to min.: funkcjonalno±, wiarygodno±, efektywno±, ªatwo± piel gnacji, elastyczno±, i inne jak czas, koszt, jako±,.... Nie istniej uniwersalne rozwi zania! technologia, in»ynieria dziedziny, wzorce projektowe, aplikacji, architektury, tworzenie systemu w oparciu o systemy komponentów oraz usªug, Bezwzgl dnie, najwa»niejsze aspekty to: 1 Ludzie, 2 Technologia, 3 Organizacja. V1.3b 15/ 58
Wyzwania projektowe Wyzwania projektowe dotycz du»ych i maªych projektów Współdziałanie Dostępność Skalowalność Niezawodność Elastyczność Zewnętrzne i wewnętrzne Ponowne użycie bezpieczeństwo Pielęgnowalność Odtwarzalność oraz Wydajność Umęczony "developer" V1.3b 16/ 58
Projektowanie oprogramowania Zasady projektowania oprogramowania 1/2 Obiektowe i nie tylko zasady projektowania oprogramowania: (1) hermetyzacja albo ukrywanie danych ukrycie wewn trznych szczegóªów realizacji od aspektów u»ywania danej klasy b d¹ moduªu, inaczej mówi c o stosowaniu klasy czy te» zestawu funkcji trzeba wiedzie tylko tyle ile trzeba (znajomo± szczegóªów implementacji nie jest potrzebna), (2) minimalne powi zania poszczególne moduªy projektu powinny posiada minimalne zale»no±ci, komunikacja pomi dzy moduªami równie» powinna by minimalna (3) spójno± i zwarto± dany moduª/klasa powinna dotyczy jednego poj cia lub zespoªu wspólnych poj, (4) metaprogramowanie zwi kszenie abstrakcji, poprzez pisanie/tworzenie programów za pomoc komponowania moduªów celem otrzymania zakªadanej funkcjonalno±ci, równie» pisanie programu którego zadaniem jest utworzenie innego programu. V1.3b 17/ 58
Projektowanie oprogramowania Zasady projektowania oprogramowania 2/2 Obiektowe i nie tylko zasady projektowania oprogramowania: (5) otwarto± i zamkni to± klasa (moduª) powinna by ªatwo rozszerzalna, jednak z drugiej strony musi by zamkni ta/zabezpieczona przed modykacjami, (6) programowanie w oparciu o kontrakty operacja albo zestaw operacji okre±la si przez kontrakt, który wprowadza ograniczenia do implementacji: warunek wst pny, warunek ko«cowy, niezmiennik (inwariant) prawdziwy w trakcie realizacji operacji/zestawu operacji, (7) rozdzielanie zagadnie«w podej±ciu aspektowym, rozdziaª zagadnie«np.: funkcjonalnych je±li s niezale»ne, rozdziaª zagadnie«technicznych (np.: trwaªo± danych, komunikacji, bezpiecze«stwa, etc.). V1.3b 18/ 58
Architektura wielowarstwowa/architektura klient-serwer Bezpiecze«stwo, zarz dzanie, komunikacja Warstwa klienta Warstwa integracji Klienci aplikacji min. aplety, aplikacje z graficznym interfejsem użytkownika Połączenia z systemami zewnętrznymi Adaptery zasobów, przepływ sterowania Warstwa prezentacji Strony/formatki (technologie JSP, ASP.NET) interfejsu użytkownika Warstwa zasobów Bazy danych, systemy zewnętrzne Dane, zasoby oraz usługi i źrodła danych Warstwa biznesowa Komponenty biznesowe logika biznesowa, dane, usługi oraz transakcje Architektura wielowarstwowa (ang. multi-tier architecture lub n-tier architecture) to architektura komputerowa typu klient-serwer. Interfejs u»ytkownika, przetwarzanie i skªadowanie danych jest rozdzielone na kilka osobnych warstw. Mog by one rozwijane i aktualizowane niezale»nie. Uªatwia to ich utrzymanie i nie wpªywa negatywnie na funkcjonowanie pozostaªych warstw. V1.3b 19/ 58
Architektura wielowarstwowa/architektura klient-serwer Architektura trójwarstwowa Najpowszechniej u»ywanym przykªadem architektury wielowarstwowej jest architektura trójwarstwowa: Warstwa prezentacji Interfejs użytkownika, aplikacja tłumacząca żadania użytkownika na zapytania/polecenia dla niższych warstw. Warstwa logiki biznesowej Koordynacja pracy aplikacji, realizacja żądań użytkowników, zadawanie zapytań, przekazywanie danych pomiędzy warstwami. Warstwa danych Przechowuje dane, bezpośrednio realizuje zapytanie i przekazuje dane do warstwy logiki biznesowej. Baza Danych Urządzenie pamięci masowej Zmiana szczegóªów implementacji w jednej warstwie nie mo»e wpªywa na pozostaªe warstwy. V1.3b 20/ 58
Przykªady platform Ogólny schemat systemów WEB Przeglądarka WWW strony HTML HTTP skrypty Serwer WWW CGI NSAPI ISAPI aplety Javy RMI/CORBA IIOP/DCOM BROKER usługi, obiekty i etc. DBMS obiekty Active X CGI Common Gateway Interface ISAPI/NSAPI Internet/Netscape Server API RMI Remote Method Invocation CORBA Common Object Request Broker Architecture CORBA/IIOP Internet Inter ORB Protocol V1.3b 21/ 58
Przykªady platform CORBA/OMA zarz dzanie obiektami Aplikacje i obiekty po stronie użytkownika Rozproszone dokumenty albo raporty użytkownika Object Request Broker (ORB) Names Transactions Events Life cycle Properties Associations Time Licences Factories Concurrence Queries Protection Collections Components Permanence V1.3b 22/ 58
Przykªady platform Platformy WEB trzy gªówne przykªady rozwiązania problemów i zadań rozwiązania problemów i zadań rozwiązania problemów i zadań... VB C++ C# Python F# Visual Studio.NET rozwiązania własne ASP.NET ADO.NET Base Class Library CLR WIN32, WIN64 MSMQ, COM+, IIS, WMI, AD, ADAM, Indexing Services, UDDI, etc. Netbeans Eclipse Websphare Studio... JAVA rozwiązania własne Rozszerzenia: JFX, IceFaces,... JSP, JSF Servlets JEE Class Library JAVA Runtime JEE App Servers JMS JDBC, JPA GlassFish, Websphere, JBoss,... Apache WIN32, Unix, Linux Język skryptowy np.: PHP rozwiązania własne Pakiety, "rusztowania" Open Source Funkcje dostępu do danych Interpreter J.S. Serwer WWW System Operacyjny Biblioteki, szablony V1.3b 23/ 58
Przykªady platform Platforma ª czy w sobie j zyki, biblioteki i architektury Infrastruktura Infrastruktura ª czy zbiór usªug dost pnych dla komponentów, co pozwala na ich koordynacj i w efekcie budowa aplikacje które rozwi zuj zaªo»one zadania i problemy. Podstawowe typy/kategorie usªug to usªugi w rodzaju: 1 pakowania zapis stanu/wªa±ciwo±ci obiektów czy komponentów w aktywnej aplikacji, 2 cykl»ycia i rozproszenia tworzenie/aktywacja/dezaktywacja obiektów, zarz dzenie zasobami 3 bezpiecze«stwo uwierzytelnianie/autoryzacja dost pu, szyfrowanie informacji, 4 zarz dzanie transakcjami dbanie o spójno± danych, 5 komunikacja synchroniczna oraz asynchroniczna wymiana informacji, dost p do usªug w trybie peªnej synchronizacji je±li proces tego wymaga, lub komunikacja asynchroniczna bez konieczno±ci synchronizacji klienta i serwera. Obecne infrastruktury obiektowo/komponentowe: CORBA, CORBA/IIOP, COM+,.NET, Java BEANS (Java EE). V1.3b 24/ 58
Zagadnienia omawiane w tej cz ±ci Platforma.NET Podstawowe informacje: 1 ¹ródªa oraz cele platformy.net, 2 gªówne elementy platformy.net, 3 kompilacja programów, 4 zalety platformy.net. 5 suma dwóch liczb oraz zliczanie linii. V1.3b 25/ 58
Platforma.NET to obecnie zalecana technologia do tworzenia programów dla systemów z rodziny Windows, jednak»e nie jest to jedyne rozwi zanie: 1 WIN32, WIN64 C API, tworzenie oprogramowania bezpo±rednio na poziomie systemu operacyjnego, droga trudniejsza i bardziej»mudna ale oferuje bardzo du» wydajno±, 2 korzystanie z bibliotek MFC, ATL, VCL obiektowe (ªatwiejsze) programowanie nadal blisko poziomu OS, 3 Visual Basic popularny j zyk oraz ±rodowisko, który ukrywa szczegóªy API WIN32, upraszcza tak»e tworzenie interfejsu u»ytkownika, tworzenie obiektów/komponentów COM, 4 Delphi popularny j zyk i ±rodowisko, ogólne zasady podobne do Visual Basica, istnieje równie» darmowa/opensource odmiana ±rodowiska Lazarus, zgodna cho nie w 100% ze ±rodowiskiem Delphi, umo»liwia tak»e bezpo±redni dost p do API WIN32, 5 programowanie COM model obiektów i komponentów który w zaªo»eniach jest niezale»ny od j zyka programowania, jego poªo»enie równie» jest przezroczyste, dany obiekt nie musi znajdowa si na tym samym komputerze, co oprogramowanie klienta. Korzystanie z API WIN32/COM wymaga troszczenia si o szczegóªy implementacyjne, zastosowanie VB b d¹ Delphi eliminuje w pewnym sensie ten wymóg, oraz co wa»ne w przypadku Delphi tworzony jest kod maszynowy. V1.3b 26/ 58
ródªa oraz cele platformy.net Gªówne zaªo»enia oraz cele Gªówne wªa±ciwo±ci platformy.net: 1 wspóªpraca z istniej cym kodem (obiekty COM, biblioteki DLL, sªowo kluczowe dynamic w.net 4.0), 2 wsparcie dla ró»nych j zyków programowani (C#, VB, F#, IronPython, i etc.), 3 wspólne ±rodowisko uruchomieniowe dla j zyków.net, 4 caªkowita integracja ró»nych j zyków programowania na poziomie dziedziczenia klas, przechwytywanie wyj tków, odpluskwianie (ang. debugging) kodu, 5 ukrywanie szczegóªów implementacji modelu COM, min. interfejsy typu: IClassFactory, IUnknown, IDispatch, IDL, typ wariantowy, 6 uproszczenie modelu rozwoju aplikacji, nie trzeba rejestrowa obiektów poprzez rejestr, okre±lona aplikacja mo»e wspóªpracowa z wieloma wersjami obiektów w postaci plików DLL. V1.3b 27/ 58
ródªa oraz cele platformy.net Ewolucja pakietu.net Kalendarium wyda«platformy.net: Wersja Data wydania Nowe funkcje.net Framework 1.0.NET Framework 1.0 SP1 19 marca 2002.NET Framework 1.0 SP2 7 sierpnia 2002.NET Framework 1.0 SP3 9 wrze±nia 2004.NET Framework 1.1 10 lipca 2003 mobile ASP.NET, ODBC,.NET Compact Framework, protokóª IPv6.NET Framework 1.1 SP1 9 wrze±nia 2004 V1.3b 28/ 58
ródªa oraz cele platformy.net Ewolucja pakietu.net Kalendarium wyda«platformy.net: Wersja Data wydania Nowe funkcje.net Framework 2.0 17 luty 2006.NET Framework 2.0 SP1 19 listopada 2007.NET Framework 2.0 SP2 16 stycznia 2009.NET Framework 3.0 21 listopada 2006 wsparcie p. 64-bitowej,.NET Micro Framework, typy uogólnione, klasy cz - ±ciowe, metody anonimowe Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF), Windows Workow Foundation (WWF), CardSpace V1.3b 29/ 58
ródªa oraz cele platformy.net Ewolucja pakietu.net Kalendarium wyda«platformy.net: Wersja Data wydania Nowe funkcje.net Framework 3.5 9 listopada 2007 platforma bytów, LINQ, metody rozszerze«, drzewa wyra»e«.net Framework 3.5 SP1 11 sierpnia 2008.NET Framework 4.0 12 kwietnia 2010 rozszerzenia do programowania równolegªego, bezpo±rednie wsparcie dla j zyków IronRuby, IronPython, F#, platforma modelowania OSLO wsparcie dla aplikacji Metro, biblioteka.net Framework 4.5 15 sierpnia 2012 klas przeno±nych pomi dzy platformami.net, wiele innych pomniejszych zmian np.: tablice o wielko±ci wi kszej ni» 2GB, kompilacja JIT w tle w ±rodowisku wieloprocesorowym wsparcie dla Windows 10, nowe.net Framework 4.6/4.6.2 20 lipca 2015 funkcje krypptogra, ADO.NET, 2 sierpnia 2016 WPF, unowocze±nienia w prolowanie, obsªuga HTTP/2 V1.3b 30/ 58
ródªa oraz cele platformy.net Ewolucja pakietu.net schemat Task Parallel Parallel LINQ Library.NET 4.0 LINQ WPF WCF WWF Card spaces Windows forms ASP.NET ADO.NET entity framework Base class library ADO.NET Common language run-time.net 3.5.NET 3.0.NET Framework 2.0 Wersja 1.X wprowadziªa podstawowe elementy platformy.net, nast pne wersje dodaj sukcesywnie nowe skªadowe, przy czym jako peªnoprawn platform nale»y traktowa wersje od wersji 2.0. V1.3b 31/ 58
ródªa oraz cele platformy.net.net Core 1.0 Najnowsza odsªona platformy.net wspierana przez spoªeczno± oraz rm Microsoft. Ta odmiana jest multiplatformowa (Windows, MacOS, Linux, Docker) oraz o otwartym kodzie kodzie ¹ródªowym. Najwa»niejsze elementy to: CoreCLR, wieloplatformowe ±rodowisko uruchomieniowe dla CLR, tj. maszyna wirtualna do uruchamiania programów.net, kompilator JIT oraz nazwie RyuJIT, CoreFX, biblioteka klas bazowych oparta o podstawow bibliotek FCL. Dodatkowo.NET Core wspiera technologi ASP.NET Core oraz aplikacje uniwersalne (Universal Windows Platform), obecnie nie ma wsparcia dla Windows Forms oraz WPF. Pierwsza wersja.net Core 1.0 zostaªa wydana 27 czerwca 2016. V1.3b 32/ 58
Gªówne elementy platformy.net Trzy gªówne odmiany platformy.net na rok 2013.NET Framework 4.5.NET Compact Framework.NET Micro Framework.NET Framework 4.5 Gªówna platforma do rozwoju aplikacji dla systemów z rodziny Windows. Pozwala na budow bezpiecznych programów z bogatym interfejsem u»ytkownika, wspiera tak»e szeroki obszar technologii biznesowych. V1.3b 33/ 58
Gªówne elementy platformy.net Trzy gªówne odmiany platformy.net na rok 2013.NET Framework 4.5.NET Compact Framework.NET Micro Framework.NET Compact Framework W przypadku urz dze«takich jak nowoczesne telefony komórkowe, urz dzenia PDA, zasadniczym ograniczeniem s niewielkie zasoby. rodowisko.net dla tego typu urz dze«jest niezale»ne od u»ytej platformy sprz towej, ogólnie architektura jest identyczna z peªn wersj.net. Ograniczenia to mniejsza ilo± klas oraz obecno± klas wyspecjalizowanych charakterystycznych dla urz dze«z ograniczonymi zasobami. V1.3b 34/ 58
Gªówne elementy platformy.net Trzy gªówne odmiany platformy.net na rok 2013.NET Framework 4.5.NET Compact Framework.NET Micro Framework.NET Micro Framework Platforma MF zostaªa zaprojektowana specjalnie do urz dze«z ograniczonymi zasobami. Mo»na j uruchamia na sprz cie bez systemu operacyjnego, bowiem posiada dwa nast puj ce poziomy: Hardware Abstraction Layer (HAL) ukrywa wªasno±ci sprz tu, Platform Abstraction Layer (PAL) wprowadza brakuj c funkcjonalno± w zale»no±ci od zastosowanego sprz tu, Inne elementy to: CLR, biblioteki, aplikacje u»ytkownika. Typowe wymagania dla MF to 200 500 KB (dla porównania CF wymaga 12MB), tego typu platforma znajduje zastosowanie w ró»nego rodzaju kontrolerach i innych maªych urz dzeniach. V1.3b 35/ 58
Gªówne elementy platformy.net Gªówne skªadowe platformy.net Trzy gªówne elementy platformy.net: narz dzia dla programistów (Visual Studio, MonoDevelop, SharpDevelop), biblioteka klas bazowych (ang. Base Class Library BCL), wspólne ±rodowisko uruchomieniowe (ang. Common Language Runtime CLR). Narzędzia dla programistów wytwarza wykonywany Plik "binarny" wykorzystuje Biblioteka klas bazowych (BCL) wykonywany Wspólne środowisko uruchomieniowe Common Language Runtime (CLR) V1.3b 36/ 58
Gªówne elementy platformy.net Microsoft Visual Studio w roku 2012 Trzy podstawowe odmiany ±rodowiska Visual Studio to: 1 Microsoft Visual Studio 2012 Professional with MSDN, 2 Microsoft Visual Studio 2012 Premium with MSDN, 3 Microsoft Visual Studio 2012 Ultimate with MSDN. a tak»e Test Professional oraz Team Foundation Server. Gªówna zaleta to peªna i naturalna integracja z Platform.NET. V1.3b 37/ 58
Gªówne elementy platformy.net Microsoft Visual Studio w roku 2015/2016 Trzy podstawowe odmiany ±rodowiska Visual Studio to: 1 Microsoft Visual Studio 2015 Community, 2 Microsoft Visual Studio 2015 Professional, 3 Microsoft Visual Studio 2015 Enterprise. a tak»e Test Professional oraz Team Foundation Server. Gªówna zaleta to peªna i naturalna integracja z Platform.NET, ale nie tylko np. wsparcie dla Androida. V1.3b 38/ 58
Gªówne elementy platformy.net MonoDevelop Narz dzie OpenSource, wspóªpracuj ce z platform MONO, zalet jest wieloplatformowo±, projekt mo»na tworzy i przenosi pomi dzy systemami Windows, Linux, MacOS. V1.3b 39/ 58
Gªówne elementy platformy.net SharpDevelop Darmowa (OpenSource) alternatywa dla Visual Studio, w przypadku nieco mniejszych projektów mo»e konkurowa z Visual Studio. V1.3b 40/ 58
Gªówne elementy platformy.net SharpDevelop Darmowa (OpenSource) alternatywa dla Visual Studio, w przypadku nieco mniejszych projektów mo»e konkurowa z Visual Studio. V1.3b 41/ 58
Gªówne elementy platformy.net Biblioteka klas bazowych Biblioteka klas bazowych: BCL Base Class Library albo FCL Framework Class Library: 1 klasy ogólnego zastosowania obsªuga plików, manipulacja ci gami znaków, szyfrowanie i bezpiecze«stwo, 2 kolekcje implementacja list, sªowników, tablic otwartych i tablice bitów, 3 obsªuga XML tworzenie plików w standardzie XML, odczyt oraz zapis dokumentów XML, manipulacje zawarto±ci dokumentów XML. Poszczególne elementy biblioteki klas bazowych zostaªy pogrupowanie w trzech gªównych przestrzeniach nazw: 1 Accessibility uªatwia dost p do COM, 2 System zawiera podstawowe/fundamentalne klasy reprezentuj ce typy i dane, zdarzenia, wyj tki i inne konstrukcje charakterystyczne dla platformy.net, 3 Microsoft obsªuga elementów charakterystycznych dla systemu Microsoft. V1.3b 42/ 58
Gªówne elementy platformy.net Graczna ilustracja biblioteki klas bazowych System.Web Services Decription Discovery Protocols Caching Configuration UI HtmlControls MobileControls WebControls Security SessionState System.Windows.Forms Design Component Model System.Drawing Drawing2D Imaging Printing Text System.Data DataSet Lineq.SqlClient DataTable Objects System.Xml XmlReader XmlDictionary XmlWriter XmlException Collections Configuration Diagnostics Globalization IO Net Reflection Resources Security Runtime ServicesProcess InteropServices Text Remoting Threading Serialization V1.3b 43/ 58
Proces kompilacji w.net Kompilacja do kodu po±redniego Kompilacja do kodu po±redniego: 1 podzespóª (assembly) to pliki typu exe oraz dll, 2 kod zapisany w podzespole nie jest kodem natywnym ale kodem po±rednim (CIL), 3 podzespóª zawiera trzy gªówne elementy: Źródła programu w języku.net kompilator języka zgodnego z.net 1 kod CIL, 2 metadane o typach, 3 metadane o u»ytych innych podzespoªach: Assembly (podzespół) - Common Intermediate Language (CIL) - informacje o typie - informacje związane z bezpieczeństwem V1.3b 44/ 58
Proces kompilacji w.net Kompilacja do kodu maszynowego Kompilacja do kodu maszynowego nie odbywa si podczas procesu kompilacji ale podczas uruchamiania podzespoªu: 1 sprawdzane s warunki bezpiecze«stwa wykonania podzespoªu, 2 alokacja pami ci, 3 kod CIL jest przekazywany do kompilatora JIT Assembly (podzespół) - Common Intermediate Language (CIL) - informacje o typie - informacje związane z bezpieczeństwem JIT Compiler Native Code Common Laguage Runtime (CLR) Poziom systemu operacyjnego Obecno± kodu JIT oraz CIL oznacza istnienie dwóch poj : kod zarz dzany (managed code) wykonywany przez wspólne ±rodowisko uruchomieniowe, oraz niezarz dzany (unmanaged code) odnosz cy si do bezpo±rednio do systemu operacyjnego. Istnieje tak»e narz dzie Native Image Generator (ngen), tworz cy kod natywny, wtedy kompilator JIT nie jest stosowany (w nowszych odsªonach.net ngen to usªuga kompilacji kodu CIL). V1.3b 45/ 58
Proces kompilacji w.net Wspólne ±rodowisko wykonawcze other.net C# Source File VB Source File Source File Kompilacja C# Compiler VB.NET Compiler other.net Compiler Assembly - CIL - Type Info Assembly - CIL - Type Info Assembly - CIL - Type Info JIT Compiler Common Language Runtime (CLR) Run time Native Code Native Code Native Code Operating System V1.3b 46/ 58
Proces kompilacji w.net rodowisko uruchomieniowe dla ró»nych j zyków.net Wspólne ±rodowisko uruchomieniowe.net, to gªówny komponent platformy.net oferuje trzy gªówne usªugi: 1 automatyczne zarz dzanie pami ci, 2 bezpiecze«stwo, 3 wsparcie dla biblioteki klas bazowych, usªug sieciowych, usªug bazodanowych. non.net Assembly Assembly Assembly Assembly Memory Management Exception Handling Garbage Collection Reflection Services JIT Compiler Class Loader Security Services Common Language Runtime (CLR) Operating System V1.3b 47/ 58
Proces kompilacji w.net Wspólna infrastruktura j zykowa Common Language Infrastructure (CLI), czyli wspólna infrastruktura j zykowa, to zbiór standardów pozwalaj cych na poª czenie komponentów.net we wspóln i spójn caªo±, bez wzgl du na stosowany j zyk programowania: Common Language Runtime (CLR) Common Language Specification (CLS) Base Class Library (BCL) Metadata Definition and Semantics Common Type System (CTS) Common Intermediate Language (CIL) Instruction Set V1.3b 48/ 58
Gªówne usªugi dost pne w.net Gªówne usªugi dost pne w.net (1) ASP.NET obsªuga aplikacji WEB, od strony interfejsu u»ytkownika po logik biznesow, (2) ADO.NET dost p do danych oraz usªug bazodanowych, (3) CardSpace zabezpiecza oraz skªaduje cyfrowe identykatory, (4) Entity Framework zarz dzanie bytami, czyli bardziej abstrakcyjne podej±cie do zarz dzania danymi, (5) WEB Services tworzenie usªug których funkcjonalno± mo»e by ªatwo udost pniona poprzez sie, (6) Windows Forms formularze, okna dialogowe, elementy gracznego interfejsu u»ytkownika, (7) Windows Communication Framework (WCF) wprowadza mo»liwo± komunikacji za pomoc komunikatów przekazywanych pomi dzy komponentami, (8) Windows Presentation Framework (WPF) obsªuga interfejsu u»ytkownika, wprowadzono now metodologi rozwoju, rozdzielaj c zadania programistów od zada«projektantów interfejsu u»ytkownika, (9) Workow Foundation (WF) ogólna obsªuga procesów sterowania, a w szczególno±ci procesów sekwencyjnych oraz procesów wyra»onych w postaci maszyny stanów. V1.3b 49/ 58
Zalety platformy.net Wydaje si,»e gªówne zalety platformy.net to min.: 1 bezpieczna wieloj zykowa platforma rozwoju aplikacji, 2 wsparcie dla nowoczesnych technologii budowy interfejsu u»ytkownika (WPF, Silverlight, ), 3 bogate wsparcie dla aplikacji WEB (ASP.NET), 4 wspieranie tworzenia usªug WEB, AppFabric, 5 obsªuga procesów biznesowych (WF), 6 elastyczny dost p do danych ADO.NET. V1.3b 50/ 58
Czas na troch kodu Dwa przykªady Dwa przykªady prostych programów dla konsoli opracowane w j zykach: C# oraz Nemerle: 1 suma dwóch liczb caªkowitych, 2 zliczanie linii w plikach tekstowych, 3 funkcja silnia. V1.3b 51/ 58
Czas na troch kodu Suma liczb caªkowitych C# using System; class Adder { public static void Main(string[] args) { Console.WriteLine("The sum is {0}.", Int32.Parse(Console.ReadLine()) + Int32.Parse(Console.ReadLine())); Console.ReadLine(); } } V1.3b 52/ 58
Czas na troch kodu Suma liczb caªkowitych Nemerle using System; public class Adder { public static Main () : void { Console.WriteLine ("The sum is {0}.", Int32.Parse (Console.ReadLine ()) + Int32.Parse (Console.ReadLine ())); _ = Console.ReadLine(); } } V1.3b 53/ 58
Czas na troch kodu Zliczanie linii C# class RecurenceLineCounter { static int line_no; static System.IO.StreamReader sr; static void Main(string[] args) { line_no = 0; sr = new System.IO.StreamReader("plik.txt"); } read_lines(); System.Console.WriteLine("Line count: {0}", line_no); } static void read_lines() { String line = sr.readline(); if(line!= null) { System.Console.WriteLine( line ); line_no = line_no + 1; read_lines(); } } V1.3b 54/ 58
Czas na troch kodu Zliczanie linii Nemerle class LineCounterWithoutLoop { public static Main () : void { def sr = System.IO.StreamReader ("file-name.txt"); mutable line_no = 0; def read_lines () : void { def line = sr.readline (); when (line!= null) { System.Console.WriteLine (line); line_no = line_no + 1; read_lines () } }; read_lines (); System.Console.WriteLine ("Line count: {0}", line_no); } V1.3b 55/ 58
Czas na troch kodu Znana i lubiana funkcja silnia using Nemerle.Collections; using Nemerle.Text; using Nemerle.Utility; using System; using System.Collections.Generic; using System.Console; using System.Linq; module Program { Main() : void { def FactorialWithAcc(n, acc) { (0, _) (1, _) => acc _ => FactorialWithAcc(n - 1, n * acc) } def Factorial = FactorialWithAcc(_, 1); } } WriteLine("5! = {0}", Factorial(5) ); _ = ReadLine(); V1.3b 56/ 58
Zapowied¹ materiaªu, który pojawi si na nast pnym wykªadzie W nast pnym tygodniu mi dzy innymi Wykªad Skªadowe platformy.net: CLR, CTS, j zyki programowania, biblioteki klas, poj cie podzespoªu (ang. assembly), 1 analiza skªadowych platformy.net, 2 przegl d j zyków programowania.net, 3 przedstawienie CLR, CTS, 4 analiza biblioteki klas, 5 budowa podzespoªu, 6 j zyk po±redni (ang. Intermediate Language IL). V1.3b 57/ 58
Zapowied¹ materiaªu, który pojawi si na nast pnym wykªadzie Proponowane tematy prac pisemnych: 1 platforma informatyczna wczoraj, dzi± i jutro (i pojutrze), 2 porównanie platformy.net oraz JAVA, 3 porównanie maszyny wirtualnej platformy.net oraz platformy JAVA. Dzi kuje za uwag!!! V1.3b 58/ 58