Programowanie zaawansowane

Slides:



Advertisements
Podobne prezentacje
Wprowadzenie do informatyki Wykład 6
Advertisements

Programowanie obiektowe
POWIAT MYŚLENICKI Tytuł Projektu: Poprawa płynności ruchu w centrum Myślenic poprzez przebudowę skrzyżowań dróg powiatowych K 1935 i K 1967na rondo.
Wprowadzenie do C++ Zajęcia 2.
Domy Na Wodzie - metoda na wlasne M
CLR na platformie .NET Tomasz Kostarski.
Platforma .Net i Vs.Net.
Prezentacja poziomu rozwoju gmin, które nie korzystały z FS w 2006 roku. Eugeniusz Sobczak Politechnika Warszawska KNS i A Wykorzystanie Funduszy.
Systemy operacyjne Wykład nr 5: Wątki Piotr Bilski.
Zasady zaliczenia Warunki uzyskania zaliczenia:
ASP.NET i platforma.NET Technologie internetowe ( ) Tomasz Popów
Wzorce projektowe w J2EE
Wstęp do programowania obiektowego
Praca Inżynierska „Analiza i projekt aplikacji informatycznej do wspomagania wybranych zadań ośrodków sportowych” Dyplomant: Marcin Iwanicki Promotor:
E-learning czy kontakt bezpośredni w szkoleniu nowych użytkowników bibliotek uczelni niepaństwowych? EFEKTYWNOŚĆ OBU FORM SZKOLENIA BIBLIOTECZNEGO W ŚWIETLE.
SZPIF – Harmonogram, Opis narzędzi, Schemat bazy danych
C# Windows Forms Zastosowania Informatyki Wykład 2
Wykonawcy:Magdalena Bęczkowska Łukasz Maliszewski Piotr Kwiatek Piotr Litwiniuk Paweł Głębocki.
.NET gdzie szukać? .NET co warto wiedzieć?
Ogólnopolski Konkurs Wiedzy Biblijnej Analiza wyników IV i V edycji Michał M. Stępień
Rozwój aplikacji przy wykorzystaniu ASP.NET
Witold Bołt Wprowadzenie do .NET Witold Bołt
Opracował : Przemysław Drzymała
Podstawy działania wybranych usług sieciowych
ŻYWE JĘZYKI PROGRAMOWANIA LIVING IT UP WITH A LIVE PROGRAMMING LANGUAGE Sean McDirmid Ecole Polytechnique Fédérale de Lausanne (EPFL)
EGZAMIN GIMNAZJALNY W SUWAŁKACH 2009 Liczba uczniów przystępująca do egzaminu gimnazjalnego w 2009r. Lp.GimnazjumLiczba uczniów 1Gimnazjum Nr 1 w Zespole.
1. Pomyśl sobie liczbę dwucyfrową (Na przykład: 62)
Analiza matury 2013 Opracowała Bernardeta Wójtowicz.
Badanie kwartalne BO 2.3 SPO RZL Wybrane wyniki porównawcze edycji I- VII Badanie kwartalne Beneficjentów Ostatecznych Działania 2.3 SPO RZL – schemat.
Technologie Programowania seminarium
SPECJALNOŚĆ: Oprogramowanie Systemowe
Wstępna analiza egzaminu gimnazjalnego.
EGZAMINU GIMNAZJALNEGO 2013
EcoCondens Kompakt BBK 7-22 E.
EcoCondens BBS 2,9-28 E.
Programowanie w języku C++
Programowanie w języku C++
Projekt Badawczo- Rozwojowy realizowany na rzecz bezpieczeństwa i obronności Państwa współfinansowany ze środków Narodowego Centrum Badań i Rozwoju „MODEL.
User experience studio Użyteczna biblioteka Teraźniejszość i przyszłość informacji naukowej.
WYNIKI EGZAMINU MATURALNEGO W ZESPOLE SZKÓŁ TECHNICZNYCH
UML W V ISUAL S TUDIO Mateusz Lamparski. UML D EFINICJA Unified Modeling Language (UML) to graficzny język do obrazowania, specyfikowania, tworzenia i.
Testogranie TESTOGRANIE Bogdana Berezy.
Jak Jaś parował skarpetki Andrzej Majkowski 1 informatyka +
Programowanie strukturalne i obiektowe C++
Model obiektowy bazy danych
Dr hab. Renata Babińska- Górecka
1 Używanie alkoholu i narkotyków przez młodzież szkolną w województwie opolskim w 2007 r. Na podstawie badań przeprowadzonych przez PBS DGA (w pełni porównywalnych.
Projektowanie Aplikacji Internetowych Artur Niewiarowski Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska.
Współrzędnościowe maszyny pomiarowe
Elementy geometryczne i relacje
Technologie internetowe i mobilne
Strategia pomiaru.
LO ŁobżenicaWojewództwoPowiat pilski 2011r.75,81%75,29%65,1% 2012r.92,98%80,19%72,26% 2013r.89,29%80,49%74,37% 2014r.76,47%69,89%63,58% ZDAWALNOŚĆ.
Programowanie zaawansowane Zaawansowane konstrukcje języka C#
Podstawy języka skryptów
Waldemar Bartyna Pytania egzaminacyjne 1.
Projektowanie obiektowe. Przykład: Punktem wyjścia w obiektowym tworzeniu systemu informacyjnego jest zawsze pewien model biznesowy. Przykład: Diagram.
Programowanie w środowisku sieciowym W. Bartkiewicz 1. Wprowadzenie do platformy.NET.
Waldemar Bartyna 1 Programowanie zaawansowane LINQ to XML.
Obiekty COM Przemysław Buczkowski. Plan prezentacji 1.Wprowadzenie do COM 2.Historia standardu 3.Jak działa COM 4.Interface IUknown 5.Paradygmaty COM.
Platforma .Net.
Łukasz Bieszczad Mateusz Gałązka Karol Włodarek
Programowanie Zaawansowane
Struktura systemu operacyjnego
Waldemar Bartyna Pytania egzaminacyjne 1.
Podstawy programowania
NEMERLE Michał Maliszewski.
JavaBeans by Paweł Wąsala
Zapis prezentacji:

Programowanie zaawansowane Wprowadzenie

Plan wykładu Zagadnienia Literatura Filozofia platformy .NET Elementy składowe platformy .NET

Pytania egzaminacyjne Wprowadzenie Pytania egzaminacyjne

Platforma .NET Zestaw_01 Co to jest takiego ta cała platforma .NET? Jakie są jej najważniejsze cechy? Jakie elementy składają się na platformę .NET? Co to jest CLR? Co to jest CTS? Co to jest CLS? Co to jest CIL? Co to jest CLI?

Platforma .NET Zestaw_01 c. d. Co to są pakiety? Co to są typy i co do nich zaliczamy? Jaka jest zależność między pakietami, przestrzeniami nazw i typami? W jaki sposób wykonywane są programy na platformie .NET?

Zestaw_02 Filary OOP Na czym polega OOP i jakie są jego trzy podstawowe filary? Na czym polega dziedziczenie? Do czego wykorzystujemy słowa kluczowe protected, base, sealed? Na czym polega agregacja? Na czym polega zagnieżdżanie? Na czym polega delegacja?

Plimorfizm Zestaw_03 Na czym polega polimorfizm? Co to są abstrakcyjne klasy bazowe? Co to jest interfejs polimorficzny? Na czym polega nadpisywanie i zasłanianie składowych?

Obsługa wyjątków Zestaw_04 Czym charakteryzuje się klasa System.Object? Na czym polega obsługa wyjątków? Jakie są bloki i słowa kluczowe związane z obsługą wyjątków? Jak realizujemy przechwytywanie wielu wyjątków?

Interfejsy Zestaw_05 Co to jest interfejs? Czym interfejs różni się od interfejsu polimorficznego? W jaki sposób implementujemy interfejsy? Do czego służą słowa kluczowe as i is? Czym się różni jawna i niejawna implementacja interfejsów? Co trzeba zrobić, aby po zawartości naszej klasy można było iterować za pomocą pętli foreach Czym się różnie płytkie i głębokie klonowanie? Co trzeba zrobić, aby kolekcję naszych obiektów można było posortować?

Typy generyczne Zestaw_06 Co to są typy generyczne? Na czym polega o/wypakowywanie i gdzie jest wykorzystywane? Wymień znane Ci kolekcje generyczne. Co to są indeksery? Na jakiej zasadzie działają metody generyczne?

Delegaty Zestaw_07 Co to są delegaty? Co to są zdarzenia? Co to są metody anonimowe? Co to są wyrażenia lambda? Na czym polega multicasting? Na czym polega kowariancja i kontrkowariancja? Co to są predykaty?

Zaawans. konstrukcje w C# Zestaw_08 Zaawans. konstrukcje w C# Na czym polega niejawne typowanie zmiennych? Co to są właściwości automatyczne? Co to są metody rozszerzeniowe? Co to są klasy i metody częściowe? W jaki sposób wykorzystujemy inicjalizator obiektów? Co to są typy anonimowe?

LINQ Zestaw_09 Co to jest LINQ? Co mają wspólnego z LINQ metody rozszerzeniowe? Na czym polega natychmiastowe i odroczone wykonanie zapytań? Na jakich obiektach może działać LINQ? Jak dostosować kolekcje niegeneryczne do LINQ? Na jakie trzy sposoby możemy definiować zapytania?

ADO.NET Zestaw_10 Co to jest ADO.NET? Co to są dostawcy danych? Wymień i opisz obiekty wspólne dla dostawców danych. Opisz znaczenie dwóch warst technologii ADO.NET. Wymień i omów typy związane z warstwą bezpołączeniową. W jaki sposób kontrolowana jest wersja rekordów?

Zestaw_11 LINQ to ADO.NET Jaka jest rola metody AsEnumerable() i Field<>()? Co to są klasy encji? Jaka jest rola typu DataContext? Co otrzymujemy po automatycznym wygenerowaniu DataSet? Co jest rezulattem wykorzystania narzędzia LINQ to SQL?

Refleksja Zestaw_12 Co to są metadane? Jakie informacje zawierają? Co to jest refleksja? W jaki sposób można pobrać obiekt klasy Type? Na czym polega dynamiczne ładowanie pakietów? Na czym polega późne wiązanie? Co to są atrybuty? W jaki sposób można utworzyć rozszerzalną apikację?

Serializacja Zestaw_13 Na czym polega serializacja? Co to są grafy obiektów? Jakie znasz formaty serializacji? Czym się różnią? Czym różni się API DOM od API LINQ to XML? Na czym polega funkcyjne konstruowanie drzewa XML? Jak wygląda hierarchia zależności klas w LINQ to XML i co z niej wynika? W jaki sposób pozyskujemy wartości węzłów w dokumencie?

Wprowadzenie Literatura

Literatura Pro C# 5.0 and the .NET 4.5 Framework, 6th Editio Andrew Troelsen Apress 2012 Professional ASP.NET MVC 5 Jon Galloway, Brad Wilson, K. Scott Allen, David Matson Wiley Publishing, Inc. 2014

Filozofia platformy .NET Wprowadzenie Filozofia platformy .NET

Programowanie w C/Win32 API Programowanie w surowym API Win32 Ręczne zarządzanie pamięcią Brzydka arytmetyka składników i konstrukcje składniowe, Brak zalet związanych z projektowaniem obiektowym Tysiące funkcji globalnych i typów danych zdefiniowanych w API Win32

Programowanie w C++/MFC MFC (Microsoft Fundation Classes) stanowi zbiór klas w języku C++, będących pośrednikiem do surowego API Win32 C++ można, pod wieloma względami, uznać za obiektową górną warstwę języka C Można w nim wykorzystywać filary programowania obiektowego Programiści nadal muszą się zmagać z takimi aspektami języka C, jak ręczne zarządzanie pamięcią, itd.

Programowanie w Visual Basic 6.0 VB6 pozwala na budowanie skomplikowanego interfejsu użytkownika, bibliotek kodu i logikę dostępu do danych przy minimalnym nakładzie pracy. Jeszcze bardziej niż MFC ukrywa surowe API WIN32 VB6 nie jest jednak językiem w pełni obiektowym, Brakuje klasycznego dziedziczenia, Nie daje możliwości budowy aplikacji wielowątkowych

Programowanie w Java/J2EE Java to obiektowy język programowania, którego składnia sięga korzeniami do języka C++ Niezależność od platformy Duża liczba predefiniowanych pakietów Cel Javy: jeden język programowania spełniający wszystkie wymagania Java pozwala na ograniczony dostęp do API innych języków Obsługa prawdziwej integracji międzyjęzykowej jest niewielka

Wykorzystywanie COM COM (Component Object Model) - poprzednia rama projektowa aplikacji Microsoft Jeżeli budujemy klasy zgodnie z zasadami COM, uzyskamy blok kodu binarnego wielokrotnego użytku Dostęp do binarnego serwera COM można uzyskać niezależnie od języka i lokalizacji Nie obsługuje klasycznego dziedziczenia Zmaganie się z bardzo podatnymi na błędy wpisami do rejestru i licznymi problemami związanymi z wdrożeniem (zbiorczo zwanymi piekłem DLLi)

Programowanie w Windows DNA DNA (Distributed interNet Applications Architecture) – oparta na COM architektura do tworzenia aplikacji sieciowych Architektura jeszcze bardziej złożona niż COM Wymaga używania licznych technologii i języków, które, ze składniowego punktu widzenia, mogą się od siebie bardzo różnić Każdy język i/lub technologia ma własny system typów, który może kompletnie się różnić od pozostałych

Rozwiązanie .NET .NET Framework to kompletnie nowy model budowania systemów w rodzinie systemów operacyjnych Windows, Mac Os X i dystrybucjach Uniksa/Linuksa Platforma ta nie ma już nic wspólnego z architekturą COM Jedyną możliwością interakcji między typami .NET i COM jest użycie warstwy współpracy

Najważniejsze funkcje .NET (1/3) Pełna współpraca z istniejącym kodem. Istniejące binarki COM można mieszać z nowszymi binarkami .NET; binarki w języku C (w tym bazowe API systemu operacyjnego) można wywoływać z kodu .NET za pomocą Pinvoke (Platform Invocation Service) Kompletna integracja języka. .NET obsługuje międzyjęzykowe dziedziczenie, międzyjęzykową obsługę wyjątków i międzyjęzykowe debugowanie kodu

Najważniejsze funkcje .NET (2/3) Wspólny silnik uruchomieniowy, współużytkowany przez wszystkie języki przeznaczone dla .NET. Jednym z aspektów tego silnika jest dobrze zdefiniowany zbiór typów, „rozumianych” przez każdy język działający na platformie .NET. Pełna biblioteka klas bazowych. Stanowi ochronę przed złożonością wywołań API i oferuje spójny model obiektowy, używany przez wszystkie języki działające na platformie .NET.

Najważniejsze funkcje .NET (3/3) Koniec problemów z wewnętrzną strukturą COM. Uproszczony model wdrażania. W .NET nie trzeba rejestrować jednostki binarnej w rejestrze systemowym. Co więcej, .NET pozwala na istnienie w harmonii na jednym komputerze wielu wersji tej samej biblioteki.

Elementy składowe platformę .NET Wprowadzenie Elementy składowe platformę .NET

Bloki tworzące platformę .NET Wspólne środowisko uruchomieniowe Wspólny system typów Specyfikacja wspólnego języka Biblioteka klas bazowych

Wspólne środowisko uruchomieniowe (CLR) Wspólne środowisko uruchomieniowe (ang. Common Language Runtime, CLR) ma przede wszystkim znajdować i ładować typy .NET i zarządzać nimi w imieniu programisty. Zajmuje się ono również wieloma szczegółami niskiego poziomu: zarządzanie pamięcią tworzenie domen aplikacji wątkami granicami kontekstów obiektów kwestiami związanymi z bezpieczeństwem.

Wspólny system typów (CTS) Wspólny system typów (ang. Common Type System, CTS) w pełni opisuje wszystkie możliwe typy danych i konstrukcje programistyczne obsługiwane przez środowisko .NET Określa, w jaki sposób typy te mogą się ze sobą komunikować (na jakich zasadach) Szczegółowo omawia, jak typy są reprezentowane w formacie metadanych

Specyfikacja wspólnego języka (CLS) Specyfikacja wspólnego języka (ang. Common Language Specification, CLS) definiuje podzbiór wspólnych typów i konstrukcji programistycznych, co do których zgodne są wszystkie języki programowania .NET Budując typy, które udostępniają wyłącznie funkcje zgodne z CLS, możemy mieć pewność, że wszystkie języki działające na platformie .NET będą mogły je wykorzystywać

Biblioteka klas bazowych Biblioteka klas bazowych jest dostępna dla wszystkich języków programowania .NET Hermetyzuje funkcje pierwotne, takie jak wątki, plikowe operacje wejścia/wyjścia, renderowanie grafiki, komunikację z różnymi zewnętrznymi urządzeniami Zapewnia obsługę wielu usług wymaganych przez większość aplikacji: Dostęp do bazy danych Manipulowanie dokumentami XML Kwestie bezpieczeństwa Tworzenie interfejsów graficznych

CLR, CTS, CLS i biblioteka klas bazowych Biblioteki klas bazowych Dostęp do baz danych API pulpitowych interfejsów graficznych Bezpieczeństwo API zdalnego dostępu Tworzenie wątków Operacje wejścia/wyjścia plików Internetowe API (i inne) Wspólne środowisko uruchomieniowe (CLR) Wspólny system typów (CTS) Specyfikacja wspólnego języka (CLS)

Język C# Nowy język programowania stworzony specjalnie z myślą o platformie .NET Wiele konstrukcji składniowych jest modelowanych na podstawie VB6: Obsługa formalnych właściwości typu (w przeciwieństwie do tradycyjnych metod odczytywania i ustaiania) Deklarowanie metod przyjmujących zmienną liczbę argumentów na podstawie C++: Przeciążanie operatorów Tworzenie struktur i typów wyliczeniowych Funkcje wywołań zwrotnych (za pomocą delegatów).

Dodatkowe języki programowania .NET Platforma .NET została po raz pierwszy przedstawiona w trakcie PDC 2000 (Microsoft Professional Developers Conference) Od tamtej pory wielu producentów stworzyło wersje swoich kompilatorów obsługujące tą platformę. Pięć jeżyków obecnych w Microsoft .NET Framework 3.5 SDK to C#, Visual Basic .NET, J#, C++/CLI i JScript .NET Kolejno dodawane języki to Smalltalk, COBOL, Pascal i wiele innych http://www.dotnetlanguages.net

Wspólny język pośredni (CIL) Kod źródłowy C# Kompilator C# Kod źródłowy Perl .NET Kompilator Perl .NET Język pośredni i metadane (.dll lub .exe) Kod źródłowy COBOL .NET Kompilator COBOL .NET Kod źródłowy C++/CLI Kompilator C++/CLI

Pakiety (Assemblies) Po utworzeniu za pomocą kompilatora .NET pliku .dll lub .exe, wynikowy moduł otrzymuje postać pakietu. Zawiera on: Kod CIL (ang. Common Intermediate Language); pod względem założeń jest on podobny do kodu bajtowego Javy Metadane precyzyjnie opisujące cechy charakterystyczne każdego typu Manifest – metadane opisujące sam pakiet, w tym informacje o wersji, lokalizacji, listę zewnętrznych pakietów niezbędnych do prawidłowego działania pakietu

Typy Klasa; może się składać z dowolnej liczby składowych (takich jak właściwości, metody i zdarzenia) oraz punktów danych (pól) Interfejsy; nazwany zbiór deklaracji abstrakcyjnych składowych, które mogą być implementowane przez klasę lub strukturę Struktura; klasa wagi lekkiej z semantyką opartą na wartościach Wyliczenie; pozwala na grupowanie par nazwa/wartość Delegat; odpowiednik wskaźników funkcji w C

Silnik uruchomieniowy .NET Kod źródłowy .NET Kompilator .NET Pakiet .dll lub .exe (CIL, metadane, manifest) Silnik uruchomieniowy .NET (mscoree.dll) Biblioteka klas bazowych (mscorlib.dll Itd.) Moduł ładujący klasę Kompilator JIT Instrukcje dla konkretnej platformy Wykonanie

Wprowadzenie Dziękuję za uwagę