Wprowadzenie. Wprowadzenie

Wielkość: px
Rozpocząć pokaz od strony:

Download "Wprowadzenie. Wprowadzenie"

Transkrypt

1 Wprowadzenie Platforma.NET (.NET Framework) stanowi zintegrowane, niezależne od języka programowania środowisko programistyczne służące do wytwarzania i uruchamiania aplikacji lokalnych, internetowych oraz przeznaczonych na urządzenia mobilne Jej podstawowymi elementami składowymi jest środowisko uruchomieniowe CLR () oraz rozbudowana biblioteka klas BCL (Base Class Library) dostarczająca podstawowej funkcjonalności (m.in. operacje na plikach, wyświetlanie grafiki, interakcje z bazami danych, manipulacje dokumentami XML, komunikacja sieciowa, algorytmy kryptograficzne) Wprowadzenie Jednym z priorytetowych założeń w tworzeniu platformy.net było oparcie się na najnowszych standardach internetowych (m.in. XML, HTTP, SOAP, UDDI) oraz nacisk na rozwój usług sieciowych (głównie Web Services) Od swojej premiery w 2000 roku platforma.net jest uznawana za strategiczny kierunek rozwoju nowego oprogramowania w firmie Microsoft "Delivering an Internet-based platform of Next Generation Windows Services is the top priority of our company. The breakthroughs we re talking about here include changes to the programming model, to the user interface, to the application integration model, the file system, new XML schema..." Steve Ballmer Platforma.NET 2 Platforma.NET 3 Wprowadzenie Idea.NET sięga 1997 roku kiedy rozpoczęto prace nad unowocześnieniem technologii COM (Component Object Model) obejmującym przede wszystkim stworzenie lepszego systemu typów oraz usług dla przetwarzania rozproszonego Strategicznym celem prowadzonych prac rozwojowych było zaoferowanie logicznie spójnego i obiektowego środowiska dla różnorodnych aplikacji i usług W celu uniezależnienia się od języka programowania dążono do unifikacji różnych schematów zarządzania kodem, którego efektem końcowym było opracowanie infrastruktury wspólnego języka CLI Ewolucja nazwy projektu: COM3 COR COM+ 2.0 NGWS (Next Generation Windows/Web Services).NET Wprowadzenie Założenia i cele platformy.net: pełna interoperacyjność z istniejącym kodem (m.in. COM, kod natywny, Win32 API) pełna integracja językowa (obsługa wielu języków plus skrośne, międzyjęzykowe dziedziczenie, obsługa wyjątków i debugowanie) mechanizm wykonawczy wspólny dla wszystkich języków obsługiwanych przez platformę.net (język pośredni, dobrze zdefiniowany i zrozumiały dla wszystkich języków zbiór typów) bogata biblioteka klas podstawowych (duża funkcjonalność, uniezależnienie się od wywołań API, zgodny model obiektowy) minimalizacja konfliktów wersji heterogenicznych składników aplikacji (uproszczenie procesu dystrybucji i instalacji kodu) zarządzane środowisko wykonawcze (dowolny system operacyjny, uproszczona weryfikacja kodu pod względem bezpieczeństwa) uniezależnienie się od licencjonowania (i poprawienie) Javy Platforma.NET 4 Platforma.NET 5

2 Common Language Infrastructure Common Language Infrastructure U podstaw tworzonej platformy legła specyfikacja infrastruktury wspólnego języka CLI (Common Language Infrastructure) standardy ECMA-335, ISO/IEC Specyfikacja CLI definiuje: wspólny system typów CTS () zbiór zasad i wymagań definiujących podstawowe reguły współpracy języków programowania CLS (Common Language Specification) metadane (niezależne od języka programowania informacje pomocnicze dotyczące m.in. struktury programu) niezależne od platformy systemowej środowisko wykonywania kodu wirtualnego VES (Virtual Execution System) wspólny język pośredni CIL (Common Intermediate Language) generowany przez wszystkie kompilatory zgodne z CLI standardową bibliotekę klas BCL (Base Class Library) Obecnie ze specyfikacją CLI jest zgodne ponad 50 języków programowania, w tym m.in.: C# Managed C++ VB.NET J# Delphi.NET Fortran.NET JScript.NET Windows PowerShell IronPython IronRuby A#, L#, F#, P#,... Platforma.NET 6 Platforma.NET 7 Common Language Infrastructure Common Language Infrastructure Uproszczony model wykonawczy.net zdefiniowany w specyfikacji CLI źródło: Wikipedia Specyfikacja CLI definiuje dwa typy implementacji: Profil jądra (Kernel Profile) Profil kompaktowy (Compact Profile) Profil jądra zawiera typy i klasy niezbędne do pracy kompilatorów zgodnych ze standardem CLI (biblioteka klas bazowych BCL zawiera tylko podstawowe typy danych, klasy obsługujące operacje plikowe, implementujące jednowymiarowe tablice oraz atrybuty zabezpieczeń) Profil kompaktowy rozszerza funkcjonalność biblioteki BCL m. in. przez wprowadzenie dodatkowych bibliotek: XML zawierającą proste mechanizmy analizy składniowej XML Network obsługującą protokół HTTP i dostęp do portów Reflection obsługującą mechanizm refleksji Platforma.NET 8 Platforma.NET 9

3 Common Language Infrastructure.NET Framework Pojęcie platforma.net odnosi się do każdej implementacji specyfikacji CLI Przegląd platform.net:.net Framework Mono Portable.NET (DotGNU project).net Compact Framework.NET Micro Framework Microsoft XNA Microsoft Rotor SSCLI (Shared Source Common Language Infrastructure) Microsoft Silverlight Najbardziej znaną implementacją specyfikacji CLI jest Microsoft.NET Framework, na który składa się: środowisko uruchomieniowe CLR () biblioteka klas platformy FCL (Framework Class Library) CLR jest wirtualnym systemem wykonawczym odpowiedzialnym za zarządzanie typami danych.net, kompilowanie i uruchamianie kodu pośredniego MSIL (CIL), zarządzanie pamięcią, zapewnianie bezpieczeństwa typów FCL jest współdzieloną pomiędzy aplikacjami wykonywanymi w środowisku CLR biblioteką typów, na którą składają się klasy bazowe, klasy dostępu do danych, klasy obsługujące interfejs użytkownika oraz interakcje z kodem niezarządzalnym Platforma.NET 10 Platforma.NET 11.NET Framework.NET Framework Historia rozwoju.net Framework: 2002:.NET Framework :.NET Framework 1.1 kontrolki mobilne ASP.NET, wsparcie dla ODBC i Oracle, obsługa IPv6 2005:.NET Framework 2.0 klasy częściowe, typy parametryzowane (generics), metody anonimowe, architektura 64-bitowa, hosting CLR przez SQL Server 2006:.NET Framework 3.0 Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF), Windows Workflow Foundation (WF), Windows CardSpace 2007:.NET Framework 3.5 Language Integrated Query (LINQ), typy anonimowe, wyrażenia lambda, ASP.NET AJAX, wsparcie dla WMI i ActiveDirectory >2008:.NET Framework 4.0 Parallel LINQ (PLINQ), Task Parallel Library (TPL), Code Contract Struktura.NET Framework źródło: Wikipedia Platforma.NET 12 Platforma.NET 13

4 Wspólny system typów (CTS) definiuje bazowy zbiór typów dostępnych dla każdego języka zgodnego ze specyfikacją platformy.net oraz definiuje zbiór reguł i aksjomatów umożliwiających weryfikowalne bezpieczeństwo typologiczne Zunifikowany system typów: pozwala na kontrolowanie dostępu danych do pamięci, ich przetwarzanie i łączenie oferuje statyczne wykrywanie i eliminowanie niektórych klas błędów programistycznych wprowadza usystematyzowany sposób budowania i wielokrotnego użytkowania aplikacji ułatwia tworzenie kompilatorów poprzez zaoferowanie bezpiecznego, wirtualnego systemu wykonawczego (VES) umożliwia samoopisywanie się programów w postaci metadanych Hierarchia typów zdefiniowanych przez CTS obejmuje dwie podstawowe kategorie: typy wartościowe (value types) typy referencyjne (reference types) Podział na typy referencyjne oraz wartościowe jest związany zasadniczo ze sposobem składowania i porównywania instancji typów oraz uzyskiwania przez nie dostępu do pamięci, w której są przechowywane Pierwszą kategorię tworzą złożone typy wbudowane (m.in. tablice, łańcuchy znaków), interfejsy oraz typy definiowane przez użytkownika (klasy), drugą natomiast wbudowane typy proste, typy wyliczeniowe oraz typy definiowane przez użytkownika (struktury) Platforma.NET 14 Platforma.NET 15 Klasyfikacja typów: Object Class Interface Array String Delegate... typy referencyjne ValueType Struct Enum Byte Char Int16 Boolean Single Int32 Decimal Double Int64... typy wartościowe typy proste UInt16 UInt32 UInt64 Typy wartościowe wywodzą się ze specjalnej klasy ValueType (pośrednio z klasy Object) i służą do reprezentowania prostych wartości skalarnych (sekwencji bitów) Instancje typów wartościowych są alokowane na stosie wykonawczym (z wyjątkiem pól statycznych oraz pól klas), porównywane bit po bicie, a podczas odwołań są one bezpośrednio kopiowane Typy wartościowe narzucają mniejsze koszty pamięciowe i czasowe podczas pracy, o ile ich rozmiar nie jest zbyt duży Oznacza to, że struktury definiowane przez użytkownika powinny być relatywnie niewielkie (zwykle maksymalnie do 16 lub 64 bajtów) Platforma.NET 16 Platforma.NET 17

5 Podczas tworzenia instancje typów wartościowych są automatycznie zerowane, co skutkuje ustawieniem każdego pola na wartość domyślną (0 dla liczb całkowitych, 0.0 dla liczb zmiennoprzecinkowych, false dla wartości logicznych i null dla referencji) Typy wartościowe zdefiniowane przez użytkownika: są automatycznie pieczętowane (sealed) mogą mieć konstruktory z argumentami mogą dziedziczyć po wielu interfejsach mogą zawierać pola, metody, właściwości i zdarzenia Każdy typ wartościowy ma zdefiniowany i powiązany z nim typ referencyjny, nazywany tzw. opakowanym typem wartościowym CTS udostępnia mechanizm, który pozwala na zmianę domyślnego układu pól tworzonych struktur Atrybut StructLayoutAttribute pozwala na wskazanie jednego z trzech możliwych trybów działania: LayoutKind.Automatic tryb domyślny, w którym CLR samodzielnie uporządkowuje pola, co pozwala na optymalizację wyrównania pól LayoutKind.Sequential CLR uporządkowuje pola dokładnie tak, jak zostało to określone w kodzie IL LayoutKind.Explicit za pomocą atrybutu pola FieldOffsetAttribute programista może określać kolejność i rozmiar pól struktury Możliwość zmiany kolejności i przesunięcia pól w typach wartościowych ułatwia współpracę z kodem niezarządzanym, a także umożliwia precyzyjne określanie rozmiarów i położenia pól bitowych Platforma.NET 18 Platforma.NET 19 Przykład samodzielnego definiowania układu pól struktury: [StructLayout(LayoutKind.Explicit)] struct SampleUnion [FieldOffset(0)] string text; [FieldOffset(6)] short tag; [FieldOffset(4)] short data1; [FieldOffset(4)] byte data2; [FieldOffset(5)] byte data3; układ struktury w pamięci Typy referencyjne (typy odwołań) wywodzą się bezpośrednio z klasy Object i są specyficznym połączeniem informacji o położeniu oraz wartości (zawartości) typu Instancje typów referencyjnych (obiekty) są alokowane i zarządzane na odśmiecanej stercie, odwołania do nich sprowadzają się do przekazania informacji o ich położeniu na stercie (wskaźnika), a porównanie obiektów ogranicza się do porównania ich położenia Utworzony na stercie obiekt żyje tak długo, dopóki istnieje osiągalna do niego referencja, po czym zajmowana przez niego pamięć jest zwalniana automatycznie w wyniku działania mechanizmu oczyszczania pamięci (Garbage Collection) Platforma.NET 20 Platforma.NET 21

6 Typy referencyjne zasadniczo można podzielić na: typy obiektowe typy interfejsowe typy wskaźnikowe Typy obiektowe (głównie klasy i tablice) opisują same siebie, implementując następujące metody: Equals() porównującą dwa obiekty GetHashCode() zwracającą wartość skrótu dla obiektu GetType() zwracającą typ obiektu ToString() zwracającą opis obiektu w postaci łańcucha znaków MemberwiseClone() zwracającą płytką kopię obiektu Finalize() wywoływaną przez GC przed odzyskaniem pamięci zajmowanej przez obiekt Typ interfejsowy stanowi zbiór publicznych, metod, właściwości oraz zdarzeń, które muszą zostać zaimplementowane przez typ wywodzący się z interfejsu Typ wskaźnikowy jest specyficznym, niezarządzalnym typem umożliwiającym swobodny dostęp do pamięci (do funkcji oraz danych), wykorzystywanym przede wszystkim do współpracy z kodem niezarządzanym Wartości typu wskaźnikowego nie są obiektami, nie można więc na ich podstawie określić typu wskazywanych wartości, ale można na nich wykonywać operacje arytmetyczne W środowisku zarządzanym ekwiwalentem wskaźnika do funkcji jest delegat, będący rygorystycznie kontrolowanym przez CLR typem obiektowym Platforma.NET 22 Platforma.NET 23 Porównanie rozmieszczenia oraz rozmiaru struktury i obiektu w pamięci: struct Point public int X; public int Y; int X (4B) int Y (4B) stos class Point public int X; public int Y; Syncblk (4B) TypeHandle (4B) int X (4B) int Y (4B) sterta Synblk Entry Table Method Table SyncBlock Zawsze wtedy, gdy środowisko uruchomieniowe oczekuje typu referencyjnego, a przekazywany jest typ wartościowy, wykonywana jest operacja pakowania (boxing), polegająca na przekształceniu typu wartościowego w typ referencyjny Środowisko uruchomieniowe udostępnia ponadto mechanizm odpakowywania (unboxing) tj. przekształcania typów referencyjnych w typy wartościowe Pakowanie i odpakowywanie wiążą się z alokowaniem pamięci oraz kopiowaniem danych pomiędzy stosem a stertą, i stąd są one operacjami kosztownymi czasowo Pakowanie i odpakowywanie są realizowane za pomocą odpowiednich poleceń języka IL, większość kompilatorów języków.net generuje odpowiedni kod automatycznie Platforma.NET 24 Platforma.NET 25

7 Przykłady pakowania/odpakowywania: int i = 1; object o = i; // boxing int j = (int) o; // unboxing // 3 x boxing Console.WriteLine(i +, + i +, + i); // no boxing (manual optimization) Console.WriteLine(o +, + o +, + o); ldc.i4.s 1 stloc.0 ldloc.0 box [mscorlib]system.int32 stloc.1 ldloc.1 unbox.any [mscorlib]system.int32 stloc.2 ArrayList list = new ArrayList(); int j; for (int i = 0; i < 10000; i++) list.add(i); // boxing for (int i =0; i < list.count; i++) j = list[i]; // unboxing Identyczność dwóch obiektów testowana przez statyczną metodę ReferenceEquals() jest określana za pomocą następujących reguł tożsamości: jeżeli typy obiektów są różne, to obiekty nie są identyczne jeżeli typy wartości są takie same i wartości są takie same, to obiekty są identyczne jeżeli obiekty są wskazaniami, a ich położenie i wartości są takie same, to obiekty są identyczne Równość dwóch obiektów testowana metodą Equals() jest określana za pomocą następujących reguł: jeżeli dwa obiekty są identyczne, to obiekty są sobie równe jeżeli przynajmniej jeden z obiektów jest spakowany, to przed wykonaniem operacji porównania opartego na regułach tożsamości musi zostać odpakowany Platforma.NET 26 Platforma.NET 27 Typ referencyjny może cechować się semantyką wartości tzn. może zachowywać się tak jak typ wartościowy (kopiowana i porównywana jest cała zawartość obiektu) Class c1 = new Class(); Class c2 = new Class(); object o1 = c1; Console.WriteLine(Object.ReferenceEquals(c1, c2); // false Console.WriteLine(c1.Equals(c2)); // true Console.WriteLine(Object.ReferenceEquals(c1, o1); // true Console.WriteLine(c1.Equals(o1)); // true String s1 = Ala ma kota ; String s2 = Ala ma kota ; Console.WriteLine(Object.ReferenceEquals(s1, s2); // true Console.WriteLine(s1.Equals(s2)); // true Referencja do obiektu może przyjmować specjalną wartość null oznaczającą, że taka referencja jest pusta BCL od wersji 2.0 udostępnia typ Nullable<T> zapewniający semantykę null dla typów wartościowych (T? w C#) struct Nullable<T> where T : struct public Nullable(T value); public bool HasValue get; public T Value get; Jeżeli właściwość HasValue zwraca false to instancja takiego typu reprezentuje semantyczną wartość null, w przeciwnym wypadku wartość instancji jest udostępniana przez pole Value Platforma.NET 28 Platforma.NET 29

8 Elementy składowe typu: pola (fields) metody (methods) właściwości (properties) typy zagnieżdżone (nested types) zdarzenia (events) atrybuty (attributes) CTS umożliwia ponadto definiowanie własnych atrybutów, których instancje mogą być dołączane do podzespołów, typów danych oraz ich składowych Atrybuty te stanowią część metadanych podzespołu i mogą być sprawdzane w trakcie wykonywania kodu poprzez mechanizm refleksji Przykład użycia własnych atrybutów: public class MyAttribute : Attribute public MyAttribute(string name) [MyAttribute( MyClass )] public class MyClass... [MyAttribute( MyClass::Test )] public void Test()... MyClass myclass = new MyClass(); Type type = myclass.gettype(); if (type.getcustomattributes( typeof(myattribute), false).length > 0) // do something MethodInfo minfo = type.getmethod( Test ); foreach (Attribute attr in minfo. GetCustomAttributes(false)) if (attr.gettype() == typeof(myattribute)) // do something Platforma.NET 30 Platforma.NET 31 Dostęp do elementów składowych typu jest uzależniony od trzech kryteriów: widoczności typu dostępności elementu składowego ograniczenia zabezpieczeń Pod względem widoczności (zakresu widoczności dla innych podzespołów) typy można przydzielić do trzech kategorii: typów eksportowanych możliwość eksportowania takich typów jest określana przez zasady dostępności zdefiniowane w konfiguracji podzespołu typów nieeksportowanych eksport takich typów jest zabroniony typów zagnieżdżonych (nested) typów będących elementem składowym innego typu (tzw. typu otaczającego), który to decyduje o zakresie widoczności Poziom dostępności składowych typu jest definiowany przez leksykalne reguły zasięgu danego języka programowania: dostęp publiczny public w C# dostęp prywatny private w C# dostęp rodzinny (chroniony) protected w C# dostęp podzespołowy internal w C# dostęp rodzinny lub podzespołowy protected internal w C# dostęp rodzinny i podzespołowy nieobsługiwany przez C# Dostęp do elementów składowych typu może być także kontrolowany za pomocą atrybutów zabezpieczeń, które pozwalają na definiowanie ograniczeń w postaci: żądań dziedziczenia żądań odwołania Platforma.NET 32 Platforma.NET 33

9 CLR jest wirtualnym systemem wykonawczym platformy.net odpowiedzialnym za całokształt wykonywania kodu zarządzanego (managed code) Do jego podstawowych zadań należy: ładowanie, kompilowanie i uruchamianie kodu pośredniego MSIL (Microsoft Intermediate Language), będącego implementacją języka CIL (Common Intermediate Language) zagwarantowanie bezpieczeństwa typów zapewnienie współpracy z kodem niezarządzanym zarządzanie pamięcią (zasobami) obsługa wyjątków obsługa mechanizmów kontroli bezpieczeństwa wykonywania aplikacji w oparciu o uprawnienia kodu CAS (Code Access Security) oraz role RBS (Role-Based Security) Kompilatory platformy.net przekształcają kod źródłowy z języków wysokiego poziomu do postaci wspólnego (niezależnego od CPU i systemu operacyjnego) kodu pośredniego MSIL, który w trakcie wykonywania aplikacji jest przekształcany dalej do postaci kodu macierzystego Ta dodatkowa warstwa abstrakcji pozwala na uzyskanie przenoszalności kodu, zwiększenie jego efektywności (optymalizacja na konkretną platformę) oraz umożliwia sprawdzenie bezpieczeństwa typów przed uruchomieniem MSIL jest językiem stosowym większość operandów, na których działają jego instrukcje znajduje się na tzw. logicznym stosie wykonawczym, który jest niezależny od zarządzanego przez system operacyjny stosu fizycznego Platforma.NET 34 Platforma.NET 35 Przykład operacji dodawania: Przykład programu Hello World : ldc.i4 5 ldc.i4 3 add Evaluation Stack Evaluation Stack Evaluation Stack Evaluation Stack public static void main() Console.WriteLine( Hello World ); ldc.i4 5 ldc.i4 3 add 1B method static void main().entrypoint.maxstack 1 ldc.i4 5 ldc.i4 3 add ldc.i4.5 ldc.i4.3 add ldstr "Hello world" call void [mscorlib] System.Console::WriteLine(string) optymalizacja kodu ret Platforma.NET 36 Platforma.NET 37

10 Każdy zarządzany moduł (managed module) będący produktem kompilatora platformy.net jest złożony z: nagłówka PE (PE header) nagłówka CLR (CLR header) metadanych (metadata) kodu pośredniego (IL code) Nagłówek PE (Portable Executable) jest strukturą opisującą format obiektowych plików binarnych w systemie Windows (opartą o UNIX-owy format COFF) Nagłówek CLR zawiera podstawowe informacje związane z zarządzanym modułem, m.in.: żądaną wersję CLR, silną nazwę (strong name), lokalizację i rozmiary metadanych oraz bloku kodu pośredniego modułu Metadane zawierają szczegółowy opis wszystkich danych związanych z wygenerowanym kodem zarządzanym, m.in. definicje typów, ich zasięgi, informacje o dziedziczeniu, interfejsach, polach, metodach, własnościach, obsługiwanych zdarzeniach i atrybutach Podstawowym zadaniem metadanych jest umożliwienie środowisku wykonawczemu prawidłowego i efektywnego zarządzanie kodem, w tym: weryfikowanie bezpieczeństwa typów, śledzenia wykorzystania obiektów przez Garbage Collector, serializacji/deserializacji obiektów do/z postaci binarnej na maszynie zdalnej (remote machine) Innym przykładem wykorzystania metadanych jest funkcja IntelliSense dostępna w Visual Studio.NET Platforma.NET 38 Platforma.NET 39 Z logicznego punktu widzenia podstawową, wersjonowaną jednostką wdrożenia, wykonywania i wielokrotnego użytku w strukturze.net jest tzw. podzespół (assembly) Pojedynczy podzespół składa się z jednego lub więcej modułów zarządzanych oraz opcjonalnie z jednego lub więcej plików zasobowych Jeden z modułów wchodzących w skład podzespołu (tzw. moduł podstawowy) zawiera manifest, będący opisem zawartości (metadanymi) podzespołu Manifest specyfikuje nazwę podzespołu, numer wersji, referencje do podzespołów zewnętrznych, informacje na temat kultury, listę tabel metadanych z nazwami wszystkich plików w podzespole oraz token klucza publicznego Podzespół wyznacza tzw. granicę wersji (version boundary), umożliwiającą współdzielenie logicznych atrybutów podzespołu przez wiele plików fizycznych (rozdzielenie warstwy fizycznej i logicznej podzespołu) Wszystkie pliki składające się na podzespół są traktowane jako taka sama jednostka logiczna, której numer wersji jest zdefiniowany w manifeście podzespołu Podzespół wyznacza także granicę bezpieczeństwa (security boundary), od której zależą wszelkie uprawnienia dostępu Dostęp do typów i składowych typów w ramach podzespołu jest kontrolowany przez tzw. modyfikatory dostępu (access modifiers), np. public (dostęp nieograniczony), czy internal (dostęp ograniczony do tego samego podzespołu) Platforma.NET 40 Platforma.NET 41

11 W trakcie uruchamiania aplikacji wczytywane są tylko te podzespoły, bez których nie można przeprowadzić fazy inicjalizacji, pozostałe natomiast są wczytywane na żądanie wtedy, kiedy zajdzie taka konieczność Grupowanie często wykorzystywanego i wzajemnie powiązanego kodu daje programiście możliwość zoptymalizowania procesu wczytywania kodu W przypadku tworzenia aplikacji wielojęzycznych, zalecanym rozwiązaniem jest umieszczanie zasobów specyficznych dla danego języka, w dedykowanych do tego celu, specjalnych podzespołach tzw. satellite assemblies, definiując jednocześnie pozostałe podzespoły aplikacji jako kulturowo neutralne (culture-neutral) Podstawowym wymogiem dotyczącym równoczesnego współużytkowania wielu wersji tych samych podzespołów jest ich jednoznaczne identyfikowanie Atrybuty identyfikujące podzespół: nazwa podzespołu tzw. nazwa przyjazna (friendly name), będąca nazwą pliku podzespołu bez rozszerzenia wersja podzespołu numer wersji w formacie: <major version>.<minor version>.<build number>.<revision> kultura informacje o ustawieniach regionalnych (języku, kraju) token klucza publicznego symboliczna, 8-bajtowa reprezentacja klucza publicznego wykorzystanego w procesie podpisywania (signing) podzespołu W środowisku uruchomieniowym nazwa typu jest złożeniem nazwy nadanej przez programistę plus nazwy podzespołu Platforma.NET 42 Platforma.NET 43 Podzespoły mogą być wdrażane jako: prywatnie (privately deployed assemblies) instalowane najczęściej w katalogu bazowym aplikacji (AppBase) współdzielone (shared deployed assemblies) instalowane w globalnej pamięci podręcznej podzespołów GAC (Global Assembly Cache) i identyfikowane za pomocą silnej nazwy (strong name) Silna nazwa podzespołu tworzona w trakcie podpisywania podzespołu składa się ze wszystkich wcześniej wymienionych atrybutów identyfikujących podzespół oraz dodatkowo z podpisu cyfrowego Silna nazwa gwarantuje unikalność podzespołu w całym systemie oraz pozwala na weryfikację integralności podzespołu w trakcie jego ładowania Sposoby tworzenia kodu natywnego: Kompilacja JIT (Just-In-Time) stopniowo (tylko wywoływane fragmenty kodu) optymalizacja w kontekście aktualnego środowiska bezpieczeństwo typów weryfikacja bezpieczeństwa i uprawnień uruchamianego kodu Prekompilacja narzędziem NGEN (Native Image Generator) tworzy kod natywny przed pierwszym uruchomieniem nie są możliwe pewne optymalizacje, ale uruchomienie aplikacji jest szybsze (szczególnie jeśli przy starcie korzysta z wielu różnych klas) tak skompilowany kod może być tylko uruchomiony na docelowej platformie (dla której obraz został wygenerowany) Platforma.NET 44 Platforma.NET 45

Metodyka programowania. Podstawy C#

Metodyka programowania. Podstawy C# Metodyka programowania Podstawy C# Platforma.NET Platforma.NET (.NET Framework) Platforma programistyczna Microsoft, Obejmuje - środowisko uruchomieniowe CLR (Common Language Runtime) - biblioteki klas

Bardziej szczegółowo

Microsoft IT Academy kurs programowania

Microsoft IT Academy kurs programowania Microsoft IT Academy kurs programowania Podstawy języka C# Maciej Hawryluk Język C# Język zarządzany (managed language) Kompilacja do języka pośredniego (Intermediate Language) Kompilacja do kodu maszynowego

Bardziej szczegółowo

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa 1 Java Wprowadzenie 2 Czym jest Java? Język programowania prosty zorientowany obiektowo rozproszony interpretowany wydajny Platforma bezpieczny wielowątkowy przenaszalny dynamiczny Rozumiana jako środowisko

Bardziej szczegółowo

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski e-mail: t.jeleniewski@neostrada.pl tadeusz.jeleniewski@pwr.wroc.pl http://www.tjeleniewski.wstt.edu.pl Treści kształcenia: Paradygmaty

Bardziej szczegółowo

Środowiska i platformy programistyczne

Środowiska i platformy programistyczne Środowiska i platformy programistyczne 1 Rys historyczny lata 80-90: efektywność! Cel: zwiększyć efektywność programisty jedno narzędzie: integracja edytor kodu, funkcje programistyczne (kompilacja, łączenie,

Bardziej szczegółowo

Wykłady 1, 2. Wstęp do programowania w środowisku Visual C++ Autor: Zofia Kruczkiewicz

Wykłady 1, 2. Wstęp do programowania w środowisku Visual C++ Autor: Zofia Kruczkiewicz Wykłady 1, 2 Wstęp do programowania w środowisku Visual C++ Autor: Zofia Kruczkiewicz 1 Zagadnienia 1. Podstawowe pojęcia 2. Tworzenie aplikacji w Windows Forms 3. Zawartość projektu 4. Podstawowe cechy

Bardziej szczegółowo

Języki i paradygmaty programowania - 1

Języki i paradygmaty programowania - 1 doc. dr inż. Tadeusz Jeleniewski e-mail: t.jeleniewski@neostrada.pl tadeusz.jeleniewski@pwr.edu.pl http://www.tjeleniewski.wstt.edu.pl Cele przedmiotu Umiejętność zastosowania i oceny przydatności paradygmatów

Bardziej szczegółowo

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania

Bardziej szczegółowo

Java Język programowania

Java Język programowania Java Język programowania Język Java Bazuje i jest zbliżony do C/C++ Porosty zbiór typów danych (podział na typy prymitywne i obiektowe) Zarządzanie pamięcią i Garbage Collection Zintegrowana synchronizacja

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;

Bardziej szczegółowo

Programowanie obiektowe zastosowanie języka Java SE

Programowanie obiektowe zastosowanie języka Java SE Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z

Bardziej szczegółowo

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji. JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod

Bardziej szczegółowo

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Java - tablice, konstruktory, dziedziczenie i hermetyzacja Java - tablice, konstruktory, dziedziczenie i hermetyzacja Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU zmienne tablicowe konstruktory klas dziedziczenie hermetyzacja

Bardziej szczegółowo

Programowanie obiektowe. Wprowadzenie

Programowanie obiektowe. Wprowadzenie 1 Programowanie obiektowe Wprowadzenie 2 Programowanie obiektowe Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego

Bardziej szczegółowo

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016 Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

Bardziej szczegółowo

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami. UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami

Bardziej szczegółowo

Instrukcja laboratoryjna cz.3

Instrukcja laboratoryjna cz.3 Języki programowania na platformie.net cz.2 2015/16 Instrukcja laboratoryjna cz.3 Język C++/CLI Prowadzący: Tomasz Goluch Wersja: 2.0 I. Utworzenie projektu C++/CLI z interfejsem graficznym WPF 1 Cel:

Bardziej szczegółowo

Wykład 6 Dziedziczenie cd., pliki

Wykład 6 Dziedziczenie cd., pliki Wykład 6 Dziedziczenie cd., pliki Autor: Zofia Kruczkiewicz 1. Dziedziczenie cd. 2. Pliki - serializacja Zagadnienia 1. Dziedziczenie aplikacja Kalkultory_2 typu Windows Forms prezentująca dziedziczenie

Bardziej szczegółowo

Platformy programistyczne:.net i Java WYKŁ AD 3: WPROWADZENIE DO PL ATFORMY.NET / JĘZYK C#

Platformy programistyczne:.net i Java WYKŁ AD 3: WPROWADZENIE DO PL ATFORMY.NET / JĘZYK C# Platformy programistyczne:.net i Java WYKŁ AD 3: WPROWADZENIE DO PL ATFORMY.NET / JĘZYK C# W poprzednim odcinku Git ciągle jest git.net Framework wprowadzenie.net is all around Ala ma kota na Ubuntu Pierwszy

Bardziej szczegółowo

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

Dotacje na innowacje. Inwestujemy w waszą przyszłość. PROJEKT TECHNICZNY Implementacja Systemu B2B w firmie Lancelot i w przedsiębiorstwach partnerskich Przygotowane dla: Przygotowane przez: Lancelot Marek Cieśla Grzegorz Witkowski Constant Improvement Szkolenia

Bardziej szczegółowo

LABARATORIUM 9 TESTY JEDNOSTKOWE JUNIT 3.8

LABARATORIUM 9 TESTY JEDNOSTKOWE JUNIT 3.8 Inżynieria Oprogramowania 2013/14 LABARATORIUM 9 TESTY JEDNOSTKOWE JUNIT 3.8 Hierarchia klas: TestCase klasa testująca, będąca klasą bazową dla wszystkich przypadków testowych. Zawiera przypadki testowe

Bardziej szczegółowo

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych Szkolenie przeznaczone jest dla osób chcących poszerzyć swoje umiejętności o tworzenie rozwiązań internetowych w PHP. Zajęcia zostały przygotowane w taki sposób, aby po ich ukończeniu można było rozpocząć

Bardziej szczegółowo

UML w Visual Studio. Michał Ciećwierz

UML w Visual Studio. Michał Ciećwierz UML w Visual Studio Michał Ciećwierz UNIFIED MODELING LANGUAGE (Zunifikowany język modelowania) Pozwala tworzyć wiele systemów (np. informatycznych) Pozwala obrazować, specyfikować, tworzyć i dokumentować

Bardziej szczegółowo

Bezpieczenstwo aplikacji

Bezpieczenstwo aplikacji Języki Programowania na Platformie.NET (część 2) http://www.kaims.pl/ goluch/ goluch@eti.pg.gda.pl Bezpieczeństwo ogólne koncepcje sandboxing zbiór praw jest określany poprzez evidence prawa (permissions)

Bardziej szczegółowo

Multimedia JAVA. Historia

Multimedia JAVA. Historia Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

Tworzenie i wykorzystanie usług sieciowych

Tworzenie i wykorzystanie usług sieciowych Ćwiczenie 14 Temat: Tworzenie i wykorzystanie usług sieciowych Cel ćwiczenia: W trakcie ćwiczenia student zapozna się z procedurą tworzenia usługi sieciowej w technologii ASP.NET oraz nauczy się tworzyć

Bardziej szczegółowo

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 2, część 1 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa w klasie! 2 Język

Bardziej szczegółowo

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016 Wykład 2 17 marca 2016 Dziedziczenie Klasy bazowe i potomne Dziedziczenie jest łatwym sposobem rozwijania oprogramowania. Majac klasę bazowa możemy ja uszczegółowić (dodać nowe pola i metody) nie przepisujac

Bardziej szczegółowo

Hurtownie danych - przegląd technologii

Hurtownie danych - przegląd technologii Hurtownie danych - przegląd technologii Problematyka zasilania hurtowni danych - Oracle Data Integrator Politechnika Poznańska Instytut Informatyki Robert.Wrembel@cs.put.poznan.pl www.cs.put.poznan.pl/rwrembel

Bardziej szczegółowo

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Spis treści Wprowadzenie Automatyczne ładowanie klas Składowe klasy, widoczność składowych Konstruktory i tworzenie obiektów Destruktory i

Bardziej szczegółowo

1 Wprowadzenie do J2EE

1 Wprowadzenie do J2EE Wprowadzenie do J2EE 1 Plan prezentacji 2 Wprowadzenie do Java 2 Enterprise Edition Aplikacje J2EE Serwer aplikacji J2EE Główne cele V Szkoły PLOUG - nowe podejścia do konstrukcji aplikacji J2EE Java 2

Bardziej szczegółowo

Wykład 4: Klasy i Metody

Wykład 4: Klasy i Metody Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to

Bardziej szczegółowo

Część I Dostęp do danych oraz moŝliwości programowe (silnik bazy danych)

Część I Dostęp do danych oraz moŝliwości programowe (silnik bazy danych) Spis treści Wstęp... xi Część I Dostęp do danych oraz moŝliwości programowe (silnik bazy danych) 1 Program SQL Server Management Studio oraz język Transact SQL... 3 Omówienie programu SQL Server Management

Bardziej szczegółowo

Programowanie MorphX Ax

Programowanie MorphX Ax Administrowanie Czym jest system ERP? do systemu Dynamics Ax Obsługa systemu Dynamics Ax Wyszukiwanie informacji, filtrowanie, sortowanie rekordów IntelliMorph : ukrywanie i pokazywanie ukrytych kolumn

Bardziej szczegółowo

Szablony funkcji i szablony klas

Szablony funkcji i szablony klas Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2011 Bogdan Kreczmer Niniejszy dokument

Bardziej szczegółowo

Definiowanie własnych klas

Definiowanie własnych klas Programowanie obiektowe Definiowanie własnych klas Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Definiowanie własnych klas Autor:

Bardziej szczegółowo

Delphi podstawy programowania. Środowisko Delphi

Delphi podstawy programowania. Środowisko Delphi Delphi podstawy programowania Środowisko Delphi Olsztyn 2004 Delphi Programowanie obiektowe - (object-oriented programming) jest to metodologia tworzeniu programów komputerowych definiująca je jako zbiór

Bardziej szczegółowo

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,

Bardziej szczegółowo

Programowanie C# mgr in. Dariusz Ku. p. 119A dkus@dune.pol.lublin.pl http://antenor.pol.lublin.pl/~dkus

Programowanie C# mgr in. Dariusz Ku. p. 119A dkus@dune.pol.lublin.pl http://antenor.pol.lublin.pl/~dkus Programowanie C# mgr in. Dariusz Ku p. 119A dkus@dune.pol.lublin.pl http://antenor.pol.lublin.pl/~dkus Translacja kodu Kod ródłowy Java, C# Kompilator Kompilator Kod poredni Interpreter Maszyna wirtualna

Bardziej szczegółowo

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Narzędzia i aplikacje Java EE Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Niniejsze opracowanie wprowadza w technologię usług sieciowych i implementację usługi na platformie Java EE (JAX-WS) z

Bardziej szczegółowo

Język programowania. Andrzej Bobyk http://www.alfabeta.lublin.pl. www.alfabeta.lublin.pl/jp/

Język programowania. Andrzej Bobyk http://www.alfabeta.lublin.pl. www.alfabeta.lublin.pl/jp/ Język programowania Andrzej Bobyk http://www.alfabeta.lublin.pl www.alfabeta.lublin.pl/jp/ Literatura K. Reisdorph: Delphi 6 dla każdego. Helion, Gliwice 2001 A. Grażyński, Z. Zarzycki: Delphi 7 dla każdego.

Bardziej szczegółowo

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Konstruktory Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasę Prostokat: class

Bardziej szczegółowo

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float

Bardziej szczegółowo

Król Łukasz Nr albumu: 254102

Król Łukasz Nr albumu: 254102 Król Łukasz Nr albumu: 254102 Podstawy o Delphi Język programowania, którego można używać w środowiskach firmy Borland, Embarcadero, Microsoft (Delphi Prism), oraz w środowisku Lazarus. Narzędzia te są

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 13 Marcin Młotkowski 27 maja 2015 Plan wykładu Trwałość obiektów 1 Trwałość obiektów 2 Marcin Młotkowski Programowanie obiektowe 2 / 29 Trwałość (persistence) Definicja Cecha

Bardziej szczegółowo

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym 1 Wprowadzenie do środowiska Oracle APEX, obszary robocze, użytkownicy Wprowadzenie Plan Administracja obszarem roboczym 2 Wprowadzenie Co to jest APEX? Co to jest APEX? Architektura Środowisko Oracle

Bardziej szczegółowo

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Dr inż. Zofia Kruczkiewicz Dwa sposoby tworzenia apletów Dwa sposoby

Bardziej szczegółowo

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First) Microsoft.NET: ASP.NET MVC + Entity Framework (Code First) Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2012. W ramach projektu budowana jest prosta

Bardziej szczegółowo

Część I Rozpoczęcie pracy z usługami Reporting Services

Część I Rozpoczęcie pracy z usługami Reporting Services Spis treści Podziękowania... xi Wprowadzenie... xiii Część I Rozpoczęcie pracy z usługami Reporting Services 1 Wprowadzenie do usług Reporting Services... 3 Platforma raportowania... 3 Cykl życia raportu...

Bardziej szczegółowo

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Studia podyplomowe dla nauczycieli INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Przedmiot JĘZYKI PROGRAMOWANIA DEFINICJE I PODSTAWOWE POJĘCIA Autor mgr Sławomir Ciernicki 1/7 Aby

Bardziej szczegółowo

Komunikacja i wymiana danych

Komunikacja i wymiana danych Budowa i oprogramowanie komputerowych systemów sterowania Wykład 10 Komunikacja i wymiana danych Metody wymiany danych Lokalne Pliki txt, csv, xls, xml Biblioteki LIB / DLL DDE, FastDDE OLE, COM, ActiveX

Bardziej szczegółowo

Visual C++/CLI. Języki Programowania na Platformie.NET (część 2) Tomasz Goluch. http://www.kaims.pl/ goluch/ goluch@eti.pg.gda.pl

Visual C++/CLI. Języki Programowania na Platformie.NET (część 2) Tomasz Goluch. http://www.kaims.pl/ goluch/ goluch@eti.pg.gda.pl Języki Programowania na Platformie.NET (część 2) http://www.kaims.pl/ goluch/ goluch@eti.pg.gda.pl Zalety i wady pozwala na uaktualnianie aplikacji i komponentów o właściwości platformy.net bez konieczności

Bardziej szczegółowo

Python wstęp do programowania dla użytkowników WCSS

Python wstęp do programowania dla użytkowników WCSS Python wstęp do programowania dla użytkowników WCSS Dr inż. Krzysztof Berezowski Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej Wprowadzenie CHARAKTERYSTYKA JĘZYKA Filozofia języka

Bardziej szczegółowo

Język JAVA podstawy. wykład 1, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. wykład 1, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 1, część 3 1 Język JAVA podstawy Plan wykładu: 1. Krótka historia Javy 2. Jak przygotować sobie środowisko programistyczne 3. Opis środowiska JDK 4. Tworzenie programu krok po

Bardziej szczegółowo

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu. Architektura Systemu Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu. Architektura jest zbiorem decyzji dotyczących: organizacji systemu komputerowego,

Bardziej szczegółowo

Programowanie w Internecie. Java

Programowanie w Internecie. Java Programowanie w Internecie Java Autor: dr inż. Zofia Kruczkiewicz Literatura: L. Lemay, R. Cadenhead P. Naughton Krzysztof Barteczko Boone Barry Java 2 dla każdego Podręcznik Języka Programowania Java

Bardziej szczegółowo

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone Typy przetwarzania Przetwarzanie zcentralizowane Systemy typu mainfame Przetwarzanie rozproszone Architektura klient serwer Architektura jednowarstwowa Architektura dwuwarstwowa Architektura trójwarstwowa

Bardziej szczegółowo

Smarty PHP. Leksykon kieszonkowy

Smarty PHP. Leksykon kieszonkowy IDZ DO PRZYK ADOWY ROZDZIA SPIS TREœCI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG Smarty PHP. Leksykon kieszonkowy Autor: Daniel Bargie³ ISBN: 83-246-0676-9 Format: B6, stron: 112 TWÓJ KOSZYK

Bardziej szczegółowo

Podstawy programowania obiektowego

Podstawy programowania obiektowego Podstawy programowania obiektowego Technologie internetowe Wykład 5 Program wykładu Podejście obiektowe kontra strukturalne do tworzenie programu Pojęcie klasy i obiektu Składowe klasy: pola i metody Tworzenie

Bardziej szczegółowo

Rok akademicki: 2012/2013 Kod: ZIE-1-306-s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Rok akademicki: 2012/2013 Kod: ZIE-1-306-s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: - Nazwa modułu: Programowanie obiektowe Rok akademicki: 2012/2013 Kod: ZIE-1-306-s Punkty ECTS: 3 Wydział: Zarządzania Kierunek: Informatyka i Ekonometria Specjalność: - Poziom studiów: Studia I stopnia

Bardziej szczegółowo

Java jako język programowania

Java jako język programowania Java jako język programowania Interpretowany programy wykonują się na wirtualnej maszynie (JVM Java Virtual Machine) Składnia oparta o język C++ W pełni zorientowany obiektowo (wszystko jest obiektem)

Bardziej szczegółowo

WPROWADZENIE DO JĘZYKA JAVA

WPROWADZENIE DO JĘZYKA JAVA WPROWADZENIE DO JĘZYKA JAVA programowanie obiektowe KRÓTKA HISTORIA JĘZYKA JAVA KRÓTKA HISTORIA JĘZYKA JAVA 1991 - narodziny języka java. Pierwsza nazwa Oak (dąb). KRÓTKA HISTORIA JĘZYKA JAVA 1991 - narodziny

Bardziej szczegółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

Bardziej szczegółowo

Wprowadzenie do projektu QualitySpy

Wprowadzenie do projektu QualitySpy Wprowadzenie do projektu QualitySpy Na podstawie instrukcji implementacji prostej funkcjonalności. 1. Wstęp Celem tego poradnika jest wprowadzić programistę do projektu QualitySpy. Będziemy implementować

Bardziej szczegółowo

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java Aplikacje Internetowe Podstawy języka Java Najprostsza aplikacja class Hello { public static void main(string[] args) { System.out.println("Hello World!"); Komponenty Javy JRE Java Runtime Environment

Bardziej szczegółowo

Rozdział 4 KLASY, OBIEKTY, METODY

Rozdział 4 KLASY, OBIEKTY, METODY Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej

Bardziej szczegółowo

4 Web Forms i ASP.NET...149 Web Forms...150 Programowanie Web Forms...150 Możliwości Web Forms...151 Przetwarzanie Web Forms...152

4 Web Forms i ASP.NET...149 Web Forms...150 Programowanie Web Forms...150 Możliwości Web Forms...151 Przetwarzanie Web Forms...152 Wstęp...xv 1 Rozpoczynamy...1 Co to jest ASP.NET?...3 W jaki sposób ASP.NET pasuje do.net Framework...4 Co to jest.net Framework?...4 Czym są Active Server Pages (ASP)?...5 Ustawienia dla ASP.NET...7 Systemy

Bardziej szczegółowo

2. Składnia, środowisko i konwencje w Javie

2. Składnia, środowisko i konwencje w Javie Gdańsk, 2014 Ogólnie o Javie Środowisko Java jest językiem programowania, którego podstawowym celem jest realizacja zasady write once, run anywhere. Oznacza to możliwość wykonania tego samego programu,

Bardziej szczegółowo

Leonard G. Lobel Eric D. Boyd. Azure SQL Database Krok po kroku. Microsoft. Przekład: Marek Włodarz. APN Promise, Warszawa 2014

Leonard G. Lobel Eric D. Boyd. Azure SQL Database Krok po kroku. Microsoft. Przekład: Marek Włodarz. APN Promise, Warszawa 2014 Leonard G. Lobel Eric D. Boyd Microsoft TM Azure SQL Database Krok po kroku Przekład: Marek Włodarz APN Promise, Warszawa 2014 Spis treści Wprowadzenie........................................................

Bardziej szczegółowo

RPC Remote Procedural Call. Materiały do prezentacji można znaleźć na stronie: http://www.houp.info/rpc

RPC Remote Procedural Call. Materiały do prezentacji można znaleźć na stronie: http://www.houp.info/rpc RPC Remote Procedural Call Materiały do prezentacji można znaleźć na stronie: http://www.houp.info/rpc 1 Wprowadzenie Podstawowe założenia RPC: Program uruchamiany na maszynie A może wywołać procedurę

Bardziej szczegółowo

Wywoływanie metod zdalnych

Wywoływanie metod zdalnych Wywoływanie metod zdalnych model systemu Wywoływanie metod zdalnych aplikacja kliencka interfejs obiekt serwer Podejście obiektowe do budowy systemów rozproszonych proxy szkielet sieć Istota podejścia

Bardziej szczegółowo

Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca 2009. Norbert Potocki db4o

Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca 2009. Norbert Potocki db4o Wprowadzenie - podstawy - technikalia Przydatne wiadomości Wprowadzenie 1 czerwca 2009 Wprowadzenie - podstawy - technikalia Przydatne wiadomości Wprowadzenie = bjects = database for objects w pełni obiektowa

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Rys. 1. Struktura środowiska.net 3.5. S. Fraser, Pro Visual C++/CLI and the.net 3.5 Platform, Apress, 2009.

Rys. 1. Struktura środowiska.net 3.5. S. Fraser, Pro Visual C++/CLI and the.net 3.5 Platform, Apress, 2009. 5.1 Środowisko.Net... 1 5.2 Biblioteki.Net... 2 5.3 Rozszerzenie języka C++, standard C++/CLI... 3 5.4 Delegacje... 5 5.5 Zdarzenia... 6 5.6 Szablon aplikacji CLR Windows Forms... 8 5.7 Formatka z przyciskiem...

Bardziej szczegółowo

System zarządzający grami programistycznymi Meridius

System zarządzający grami programistycznymi Meridius System zarządzający grami programistycznymi Meridius Instytut Informatyki, Uniwersytet Wrocławski 20 września 2011 Promotor: prof. Krzysztof Loryś Gry komputerowe a programistyczne Gry komputerowe Z punktu

Bardziej szczegółowo

Programowanie RAD Delphi

Programowanie RAD Delphi Programowanie RAD Delphi Dr Sławomir Orłowski Zespół Fizyki Medycznej, Instytut Fizyki, Uniwersytet Mikołaja Kopernika w Toruniu Pokój: 202, tel. 611-32-46, e-mial: bigman@fizyka.umk.pl Delphi zasoby Aplikacje

Bardziej szczegółowo

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe Architektury Usług Internetowych Laboratorium 2. Usługi sieciowe Wstęp Celem laboratorium jest zapoznanie się z modelem usług sieciowych na przykładzie prostego serwera Apache Axis2. Apache Axis2 Apache

Bardziej szczegółowo

Ekspert radzi. mechanizm w enova, umożliwiający wskazanie domyślnej drukarki dla danego stanowiska i wydruku. Strona 1 z 8. Ekspert radzi.

Ekspert radzi. mechanizm w enova, umożliwiający wskazanie domyślnej drukarki dla danego stanowiska i wydruku. Strona 1 z 8. Ekspert radzi. Ekspert radzi mechanizm w enova, umożliwiający wskazanie domyślnej drukarki dla danego stanowiska i wydruku. Strona 1 z 8 Spis treści 1. Zarys rozwiązania...3 1.2 Case study...3 1.3 Wymagania...3 2. Projekt...3

Bardziej szczegółowo

Klasy i obiekty cz II

Klasy i obiekty cz II Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Klasy i obiekty cz II Hermetyzacja, mutatory, akcesory, ArrayList Rozwijamy aplikację Chcemy, aby obiekty klasy

Bardziej szczegółowo

VISUAL STUDIO 2008 I.NET 3.5 NOWOŚCI. Bartłomiej Filipek www.ii.uj.edu.pl/~filipek

VISUAL STUDIO 2008 I.NET 3.5 NOWOŚCI. Bartłomiej Filipek www.ii.uj.edu.pl/~filipek VISUAL STUDIO 2008 I.NET 3.5 NOWOŚCI Bartłomiej Filipek www.ii.uj.edu.pl/~filipek plan Szybki start!.net 3.5 Visual Studio 2008 ogólnie Nowe narzędzia Czy zapomniano o C++? Podsumowanie Materiały źródłowe

Bardziej szczegółowo

Wykład I. Wprowadzenie do baz danych

Wykład I. Wprowadzenie do baz danych Wykład I Wprowadzenie do baz danych Trochę historii Pierwsze znane użycie terminu baza danych miało miejsce w listopadzie w 1963 roku. W latach sześcdziesątych XX wieku został opracowany przez Charles

Bardziej szczegółowo

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java: otwórz okienko Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU klasy wewnętrzne, lokalne i anonimowe biblioteka AWT zestaw Swing JFrame JPanel komponenty obsługa zdarzeń

Bardziej szczegółowo

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV Piotr Jarosik, Kamil Jaworski, Dominik Olędzki, Anna Stępień Dokumentacja wstępna TIN Rozproszone repozytorium oparte o WebDAV 1. Wstęp Celem projektu jest zaimplementowanie rozproszonego repozytorium

Bardziej szczegółowo

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7 I Wprowadzenie (wersja 0906) Kurs OPC S7 Spis treści Dzień 1 I-3 O czym będziemy mówić? I-4 Typowe sytuacje I-5 Klasyczne podejście do komunikacji z urządzeniami automatyki I-6 Cechy podejścia dedykowanego

Bardziej szczegółowo

Wdrażanie aplikacji Delphi 2005

Wdrażanie aplikacji Delphi 2005 Wdrażanie aplikacji Delphi 2005 Prosimy przeczytać cały poniższy plik przed przystąpieniem do wdrażania aplikacji, komponentów lub bibliotek Delphi 2005. Plik ten jest udostępniany na warunkach licencji

Bardziej szczegółowo

Pakiety i interfejsy. Tomasz Borzyszkowski

Pakiety i interfejsy. Tomasz Borzyszkowski Pakiety i interfejsy Tomasz Borzyszkowski Pakiety podstawy W dotychczasowych przykładach nazwy klas musiały pochodzić z jednej przestrzeni nazw, tj. być niepowtarzalne tak, by nie doprowadzić do kolizji

Bardziej szczegółowo

Autor: Bączkowski Karol Promotor: dr inż. Paweł FIGAT

Autor: Bączkowski Karol Promotor: dr inż. Paweł FIGAT Autor: Bączkowski Karol Promotor: dr inż. Paweł FIGAT Integracja jest to całokształt działao zmierzających do scalenia różnych rozwiązao informatycznych. W miarę rozwoju nowych technologii informatycznych

Bardziej szczegółowo

Zaawansowane aplikacje internetowe - laboratorium

Zaawansowane aplikacje internetowe - laboratorium Zaawansowane aplikacje internetowe - laboratorium Web Services (część 3). Do wykonania ćwiczeń potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2005. Ponadto wymagany jest

Bardziej szczegółowo

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak JAVA Wstęp do programowania w języku obiektowym Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Platforma JSE: Opracował: Andrzej Nowak JSE (Java Standard

Bardziej szczegółowo

JavaScript - korzenie

JavaScript - korzenie JavaScript - korzenie Dowiesz się o historii JavaScript, jego dialektach i wersjach. Poznasz złe i dobre strony języka, a gdy zaskoczy Cię działanie któregoś z jego elementów, będziesz wiedział, gdzie

Bardziej szczegółowo

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Wprowadzenie WCF Data Services Obsługa żądania OData Podstawy języka OData Narzędzia i biblioteki Gdzie można skorzystać z OData OData w Web API

Bardziej szczegółowo

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne Jarosław Kuchta Internetowe Usługi Informacyjne Komponenty IIS HTTP.SYS serwer HTTP zarządzanie połączeniami TCP/IP buforowanie odpowiedzi obsługa QoS (Quality of Service) obsługa plików dziennika IIS

Bardziej szczegółowo

Tutorial prowadzi przez kolejne etapy tworzenia projektu począwszy od zdefiniowania przypadków użycia, a skończywszy na konfiguracji i uruchomieniu.

Tutorial prowadzi przez kolejne etapy tworzenia projektu począwszy od zdefiniowania przypadków użycia, a skończywszy na konfiguracji i uruchomieniu. AGH, EAIE, Informatyka Winda - tutorial Systemy czasu rzeczywistego Mirosław Jedynak, Adam Łączyński Spis treści 1 Wstęp... 2 2 Przypadki użycia (Use Case)... 2 3 Diagramy modelu (Object Model Diagram)...

Bardziej szczegółowo