Programování v jazyku C# II. 9.kapitola



Podobné dokumenty
VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

OSGi. Aplikační programování v Javě (BI-APJ) - 6 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

Aplikace a sestavení Sestavení (assembly)

Komponenty v.net. Obsah přednášky

SOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ

Architektura aplikace

Helios RED a Internetový obchod

20. Projekt Domácí mediotéka

KAPITOLA 10. Implementace mezinárodní podpory a lokalizace. V této kapitole:

Manuál aplikace Inkaso pohledávek

UJO Framework. revoluční architektura beans. verze

MASARYKOVA UNIVERZITA V BRNĚ FAKULTA INFORMATIKY

Programátorské večery. Tomáš Herceg Microsoft Student Partner

Spinelterminal. Terminálový program pro ladění aplikací s protokolem Spinel. 20. září 2005 w w w. p a p o u c h. c o m v

Programování v jazyku C# II. 4.kapitola

Validační pravidla NRKN

Úvod Třídy Rozhraní Pole Konec. Programování v C# Hodnotové datové typy, řídící struktury. Petr Vaněček 1 / 39

KMI / TMA Tvorba mobilních aplikací

PREPROCESOR POKRAČOVÁNÍ

Programování v jazyku C# II. 5.kapitola

GUI. Systémová integrace pro desktopové aplikace

public static void main(string[] args) { System.out.println(new Main().getClass().getAnnotation(Greet.class).text());

KAPITOLA 3. Architektura aplikací na frameworku Rails. V této kapitole: modely, pohledy, řadiče.

Veřejné. Aplikace EP2W. Uživatelská příručka pro externího uživatele

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

- 1 - Smlouva o dílo. uzavřená podle 536 a násl. obchodního zákoníku v účinném znění

XAMARIN 10 PRAKTICKÝCH ZKUŠENOSTÍ. Roman Fischer

Michal Podzimek

Projekt. Jan Outrata. listopad Jan Outrata (KI UP) Projekt - analýza a návrh listopad / 13

Úvod Vývojová prostředí Štábní kultura Dokumentace Konec. Programování v C# Prostředí a doporučení 1 / 39

Programátorská příručka

Bridge. Známý jako. Účel. Použitelnost. Handle/Body

Jděte na stránku a klikněte na odkaz Windows download.

Programování v Javě I. Únor 2009

Obrázek 6.14: Prohlížec nápovedy

Koordinační středisko pro resortní zdravotnické informační systémy

Programování ve Windows Dynamické knihovny. Andrea Číková Martin Osovský

Programování v Javě I. Leden 2008

ISZR Referenční agent.net

1 - Úvod do platformy.net. IW5 - Programování v.net a C#

Teoretické minimum z PJV

Stručný úvod pro programátory. Michal Kuchta

MapleCloud a jeho použ ití. Vladimír Žák

Návod - fotogalerie. ANTEE s.r.o. - tel.: , fax: , helpdesk: , ipo@antee.cz

7.3 Diagramy tříd - základy

Universal Serial Bus. Téma 12: USB. Komunikační principy Enumerace Standardní třídy zařízení

Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz

Windows a real-time. Windows Embedded

MANUÁL K OBSLUZE REDAKČNÍHO SYSTÉMU / wordpress

Generické programování

<surface name="pozadi" file="obrazky/pozadi/pozadi.png"/> ****************************************************************************

ISZR Referenční agent.net

Téma 5. Ovladače přístrojů Instrument Drivers (ID)

Lambda funkce Novinky v interfaces Streamy Optional - aneb zbavujeme se null. Java 8. Ondřej Hrstka

Programování v C++ 1, 5. cvičení

OMO. 4 - Creational design patterns A. Singleton Simple Factory Factory Method Abstract Factory Prototype Builder IoC

7.3 Diagramy tříd - základy

Změny v DUNA/MZDY, verze PERZONALISTIKA Komplet Pracovníci Evidence pracovníků Suma Evidence pracovníků Počet aktivních pracovníků,

Tabulková data. budeme pracovat s CSV soubory položky oddělené středníkem, např.

Maven. Aplikační programování v Javě (BI-APJ) - 2 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

Databázový systém Matylda

Code Contracts. Robert Haken [MVP ASP.NET, MCT] Software architect, Owner at HAVIT, s.r.o. knowledge-base.havit.cz

NetBeans platforma. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Parsování v Haskellu, knihovna Parsec

Začínáme s vývojem pro Android

Iterator & for cyklus

JAVA. Reflection API

Struktura třídy, operátory, jednoduché algoritmy, junit. Programování II 2. cvičení Alena Buchalcevová

APS Web Panel. Rozšiřující webový modul pro APS Administrator. Webové rozhraní pro vybrané funkce programového balíku APS Administrator

KMI / TMA. Tvorba mobilních aplikací. 8. seminář ZS 2017/2018 ČTVRTEK 13:15-15:45

Android OpenGL. Pokročilé shadery

RMI Remote Method Invocation

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

Použití inteligentních značek s informačními službami

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky

Programování v C++ 3, 3. cvičení

Integrace OpenOffice.org a Javy. CZJUG, , Robert Vojta

PROGRAMOVÁNÍ PRO MS WINDOWS 2

KS-26T Kamerový systém

Databázový systém ACCESS

Pokud neuvedeme override, vznikne v synu nová (nevirtuální) metoda (a pochopitelně se nezavolá, jak bychom

Úvod do programovacích jazyků (Java)

Programování v C++ 2, 4. cvičení

typová konverze typová inference

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

IRAE 07/08 Přednáška č. 1

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

DLNA- Průvodce instalací

Infrastruktura UML. Modelování struktury v UML. Superstruktura UML. Notace objektů. Diagramy objektů

KIV/PIA 2013 Jan Tichava

Úvod do programování - Java. Cvičení č.4

PB přednáška (26. října 2015)

Změna sazeb z 19% na 20%

APS Administrator.OP

Aktualizační systém Progres

Parametrizace, harmonogram

Transkript:

Programování v jazyku C# II. 9.kapitola

Reflexe Způsob získání informací o software za běhu Umožňuje získat z.net assembly info o jmenných prostorech třídách, strukturách a rozhraních metodách a datech atributech Umožňuje volat metody typů, používat data,... 2/20

Třída System.Reflection.Assembly Reprezentuje assembly Získání instance ke známému typu Type.Assembly ze souboru Assembly.LoadFrom(soubor) k vykonávanému kódu Assembly.GetExecutingAssembly Poskytuje přístup k typům GetTypes() k atributům GetCustomAttributes() 3/20

Třída System.Activator Obsahuje metody pro vytvorření instance z typu CreateInstance(type) ze jména typu CreateInstanceFrom(string, string) jméno assembly, jméno typu 4/20

Pluginy zásuvné moduly Umožňují rozšiřovat funkčnost programu bez zásahu do programu přidáním.dll knihoven V.NET snadná implementace reflexe rozhraní atributy 5/20

Příklad rozhraní public class interface IPlugin { string Spust(); } 6/20

Příklad pluginu Při psaní knihovny s pluginy nutno přidat referenci na aplikaci (na knihovnu s definicí rozhraní) public class Plugin1 : IPlugin { public string Spust() { return "Spusteny Plugin1"; } } 7/20

Příklad aplikace... string[] soubory = Directory.GetFiles(adresarPlugin,"*.dll"); foreach(string soubor in soubory) { Assembly assembly = Assembly.LoadFrom(soubor); Type[] typy = assembly.gettypes(); foreach(type typ in typy) { if(typ.getinterface("iplugin")!= null) { Console.WriteLine(typ.Name); IPlugin plugin = (IPlugin) Activator.CreateInstance(typ); Console.WriteLine(plugin.Spust()); } } }... 8/20

Nastavení a konfigurace Nastavení ukládá nastavení aplikace či uživatelské nastavení dědí se od ApplicationSettingBase automaticky generovaná třída položky jsou typované aplikační nastavení nelze měnit za běhu uživatelské nastavení lze měnit za běhu Konfigurace ovlivňuje běh aplikace obdoba web.config Soubor <jméno aplikace>.config 9/20

Třída ApplicationSettingBase Metody Reload nahraje nastavení ze souboru Reset načte defaultní hodnoty Save uloží aktuální verzi Události PropertyChanged při změně hodnoty SettingsLoaded/Saving nastavení bylo načteno/je ukládáno 10/20

Jmenný prostor System.Configuration Třída Configuration přístup k jednotlivým sekcím konfigurace Třída ConfigurationSection reprezentuje sekci v konfigu Třída ConfigurationManager třída pro manipulaci s konfigurací umožňuje získat instanci Configuration 11/20

Zdroje Možnost zahrnout do aplikace externí data Jazykově nezávislé zdroje aplikační zdroje (ikony, bitmapy, zvuky,... ) součástí hlavní assembly Jazykově závislé zdroje popisky UI, hlášky,... výchozí verze součástí hlavní assembly další jazyky v externích satelitních assembly 12/20

Přímo podporované zdroje Řetězce Obrázky Ikony Zvuky Soubory 13/20

Generování a linkování zdroju Program resgen.exe kompiluje zdroje do souboru *.resources vstupy textový soubor formát jméno=hodnota *.resx soubor xml soubor (podpora v MSVS) Program al.exe linkování assembly možnost vložit *.resources Přímá podpora v MSVS vlastnost Build Action: Embedded Resource 14/20

Zdroje v MSVS Formuláře si přímo generují.resx soubory automaticky se přidávají do assembly Automaticky generovaná třída Resources soubory Resources.resx a Resources.Designer.cs položky jsou typované snadné vytváření/používání 15/20

Třída ResourceManager Hlavní třída pro práci se zdroji Metody GetString načte řetězec ze zdroje GetObject načte objekt ze zdroje GetStream vrátí stream GetResourceSet vrátí požadovanou jazykovou mutaci zdrojů 16/20

Lokalizace zdrojů Více souborů, každý v jiné jazykové mutaci soubor.resources soubor.en.resources soubor.cs-cz.resources Mohou být součástí hlavní assembly přidání nové jazykové mutace = nutno přeložit a vydat novou distribuci Mohou být umístěny v satelitních assembly v hlavní assembly pouze výchozí jazyk pro přidání verze stačí přidat odpovídající assembly 17/20

Satelitní assembly Vytvoří se z resources souboru Satelitní assembly musí mít shodnou verzi s hlavní assembly Možnost umístit do GAC Příklad vytvoření al.exe /t:lib /embed:aplikace.form1.cs.resources /culture:cs /out:aplikace.resources.dll /template:aplikace.exe 18/20

Lokalizace formulářů Podpora v MSVS V properties vybrat jazyk Přepsat názvy kontrolek Automaticky se vygeneruje.resx Automaticky se vytvoří satelitní assembly Možnost kombinovat s externími soubory 19/20

Konec 20/20