Prostředí .NET

Platforma .NET framework je, jak jistě víte, nadstavba operačního systému Windows, která se má v budoucnu stát jeho nedílnou součástí. Programování pro toto prostředí má řadu zajímavých rysů, s nimiž jsme se při programování pro Win32 nesetkali. V tomto článku se na ně podíváme blíže.

Zejména se podrobně zastavíme u pojmu sestavení (assembly) a ukážeme si, jaké máme při jeho vytváření a používání možnost.

Příklady budou vycházet z jazyka C#, který se pro účely progrmování pro .NET hodí asi nejlépe – koneckonců byl navržen a implementován stejným týmem jako prostředí .NET. Budeme používat prakticky výhradně překladač csc.exe spouštěný z příkazové řádky, neboť ten poskytuje zdaleka nejvíce možností.

První přiblížení

Na začátek si zopakujeme základní fakta o platformě.NET Framework. Její oficiální schéma, jak ho publikovala firma Microsoft, ukazuje následující obrázek 1.


Struktura platformy .NET Framework

Programy, napsané. pro platformu NET Framework v jakémkoli programovacím jazyce, se překládají do mezijazyka IL (Intermediate Language) a před spuštěním se z IL překládají do strojového kódu překladačem JIT (Just In Time). Na IL se můžeme dívat jako na typický bajtový kód, tedy jazyk jakéhosi virtuálního procesoru. V tomto případě se ovšem neinterpretuje, jak tomu je např. u Javy, ale překládá před spuštěním do nativního kódu. (Ostatně tento postup, označovaný jako technologie HotSpot, se dnes používá i v Javě.)

Jádrem platformy .NET Framework je společné běhové prostředí, anglicky označované Common Language Runtime (CLR). CLR zajišťuje běh programů přeložených z různých programovacích jazyků do mezijazyka IL. CLR umožňuje jejich vzájemnou spolupráci, takže různé součásti programu mohou být napsány v různých programovacích jazycích. Stará se mj. o automatickou správu paměti, o řízení doby života objektů a o další věci nezbytné pro správný běh programů v tomto prostředí.

Podrobněji ukazuje strukturu CLR obrázek 2, který opět pochází z oficiální dokumenatce.

 


Struktura společného běhového systému (CLR)

Součástí CLR je i společný typový systém (Common Type System, CTS). To je v podstatě specifikace požadavků, kterým musí vyhovovat datové typy, aby je mohl systém CLR zpřístupnit programům napsaným v jiných programovacích jazycích.

Překladač jazyka C# (nebo jiného jazyka pro .NET Framework) vytváří tzv. řízený kód (managed code; někdy se také hovoří o zabezpečeném kódu , safe code). To je kód, který běží pod dozorem CLR a využívá jeho služeb – automatické správy paměti, nástrojů pro práci s výjimkami atd., metadat a nástrojů pro přístup k nim atd.

Důležitou součástí prostředí .NET Framework je knihovna, nazývaná souhrnně Základní knihovna tříd (Base Class Library, BCL). Pokrývá téměř vše, nač si lze vzpomenout – od vstupních a výstupních operací po kontejnery (třídy sloužící pro ukládání různých druhů dat), nástroje pro práci se sítí, nástroje pro zabezpečení atd. To znamená, že programovací jazyky pro prostředí .NET nepotřebuje své vlastní knihovny.

Nad knihovnou BCL jsou ještě knihovny pro programování grafického uživatelského rozhraní programů a knihovny pro webové služby.

Nejvyšší vrstvu prostředí .NET Framework tvoří překladače z různých programovacích jazyků.

Metadata

Prostředí .NET Framework podporuje práci s tzv. metadaty . To jsou dodatečné informace, které se ukládají do IL v době překladu a které umožňují získávat z přeloženého programu velmi podrobné informace o třídách, které tento program obsahuje, o jejich metodách atd. Tomuto mechanizmu se říká reflexe. (Na metadata se můžeme dívat jako na alternativy k tzv. typovým knihovnám ( type library ), s nimiž jsme se setkávali při programování komponent COM.)

Prostředí .NET Framework ovšem umožňuje spolupracovat i s tzv. neřízeným kódem (unmanaged code). To je kód, který neběží v rámci CLR; jde o klasický kód pro Win32. Neřízený kód lze psát i v C#, i když to není standardní postup. (Neřízené ovšem mohou být v C# pouze jednotlivé metody, nikoli celý program.)

Součástí prostředí .NET Framework jsou také mechanizmy, které se starají o zabezpečení distribuovaných aplikací.

Překladač jazyka C# a všechny základní nástroje potřebné pro vývoj aplikací pro .NET Framework, tj. . NET Framework SDK Version 1.1 , lze získat zdarma, a to na webových stránkách firmy Microsoft na http://www.microsoft.com/downloads . Před instalací je ovšem třeba stáhnout a instalovat tzv. . NET Framework Redistributable Package version 1.1 . Tento balík musí být instalován na každém počítači, na němž mají běžet aplikace pro .NET Framework.

Tento překladač využívají i vývojové nástroje třetích firem (např. Borland C#Builder).

Prostory jmen

Knihovny platformy.NET jsou hierarchicky uspořádány do tzv. prostorů jmen. Jméno třídy z knihovny je při použití třeba kvalifikovat jménem prostoru jmen. K tomu se v C# používá operátor „ . “ (tečka). Základní prostor jmen se jmenuje System , všechny ostatní standardní prostory jmen jsou do něj vnořeny.

Prostory jmen lze samozřejmě definovat i v našich vlastních programech.  

Datové typy v prostředí .NET

Jazyk IL, do něhož se všechny programy pro .NET překládají, je čistě objektový. Tomu odpovídá i typový systém tohoto jazyka (a odráží se to i ve vyšších programovacích jazykích, které se pro vytváření programů pro .NET používají).

V prostředí .NET – tedy v IL – se rozlišují dvě základní skupiny datových typů: Do první patří tzv. hodnotové typy, což jsou např. čísla, znaky, logické hodnoty, výčtové typy nebo struktury, a do druhé patří tzv. referenční typy – to jsou třídy, rozhraní, pole a delegáty.

Mezi hodnotovými typy se ještě vyčleňuje skupina tzv. atomických (primitivních) typů. To jsou celá čísla (v C# jde o typy typy sbyte , short , int , long , byte , ushort , uint , ulong ), znaky (typ char ), reálná čísla (typy float a double ) a logické hodnoty (typ bool ).

Datové typy, které se v C#, J# a dalších jazycích jeví jako atomické (čísla, znaky atd.), jsou ve skutečnosti v IL definovány jako struktury (tj. třídy, od nichž nelze odvozovat potomky a které se chovají jako hodnotové typy). V důsledku toho můžeme i pro instance hodnotových typů volat odpovídající metody. Je-li např. v C# proměnná i typu int , můžeme bez problémů napsat

string s = i.ToString();

a překladač zavolá odpovídající metodu třídy string .

Poznamenejme, že ve většině programovacích jazyků v prostředí .NET můžeme používat buď obvyklé označení atomických typů, např. int , nebo alternativní označení, jež se odvolává na odpovídající třídu – např. System.Int32 .

Společným předkem všech datových typů v IL je třída System.Object , v C# dostupná také pomocí klíčového slova object .  

Třída object

Už jsme si řekli, že všechny třídy v IL tvoří jednu hierarchii, tj. jsou odvozeny od společného předka – třídy System.Object . V této hierarchii leží nejen předdefinované třídy, ale i třídy, které ve svém programu definujeme my. Jestliže v deklaraci nové třídy neuvedeme předka, doplní si překladač jako předka třídu System.Object . To znamená, že všechny třídy obsahují určité základní metody, a tedy u všech instancí všech tříd lze očekávat jisté základní společné chování. Tyto metody lze v odvozených třídách samozřejmě předefinovat.

Také hodnotové typy jsou odvozeny od třídy System.Object , takže pro jejich proměnné můžeme volat metody zděděné od třídy System.Object . Hodnotové typy ovšem nepodporují dědění (řečeno terminologií platformy .NRT jsou zapečetěné ).

Poznamenejme, že prostředí .NET Framework podporuje pouze jednoduchou dědičnost. Třída může mít jen jednoho předka, může ale implementovat libovolný počet rozhraní.

Společný typový systém (CTS)

Součástí platformy .NET je specifikace společného typového systému (Common Type Specification – CTS). Je to specifikace požadavků, které musí splňovat datové typy, pokud mají být použitelné v prostředí platformy .NET Framework. Např.:

Specifikace společného jazyka (CLS)

Vedle společného typového systému, který určuje vlastnosti všech datových typů, které lze používat v prostředí .NET, je třeba vědět i o tzv. specifikaci společného jazyka (Common Language Specification – CLS). Ta vyjadřuje něco jako průnik – společné minimum –, které obsahují všechny programovací jazyky pro .NET, i když je mohou vyjadřovat různými způsoby.

Smyslem této specifikace je definovat pravidla, která zajistí, že třídu napsanou v jednom programovacím jazyce pro .NET budeme moci použít v kterémkoli jiném jazyce pro tuto platformu. Přitom použitím zde rozumíme nejen vytváření instancí a volání metod, ale i odvozování potomků atd.

Pravidla CLS se vztahují pouze na součásti typů, které lze používat mimo seskupení, v němž je tento typ definován. To znamená, že se nevztahují na soukromé (private) součásti. (Lze jízlivě poznamenat, že hlavním smyslem CLS je udržet ve hře Visual Basic.)  

Přehled základních datových typů v .NET

Následující tabulka obsahuje přehled základních datových typů používaných v prostředí .NET a jejich reprezentací v nejpoužívanějších jazycích pro platformu .NET.

.NET

C#

C++

VB .NET

Je v CLS?

System.Byte

byte

char

Byte

Ano

System.SByte

sbyte

signed char

Ne

System.Int16

short

short

Short

Ano

System.Int32

int

int

Integer

Ano

System.Int64

long

__int64

Long

Ano

System.UInt16

ushort

unsigned short

Ne

System.UInt32

uint

unsigned int

Ne

System.UInt64

ulong

unsigned __int64

Ne

System.Single

float

float

Single

Ano

System.Double

double

double

Double

Ano

System.Object

object

Object*

Object

Ano

System.Char

char

__wchar_t

Char

Ano

System.String

String

String*

String

Ano

System.Decimal

decimal

Decimal

Decimal

Ano

System.Boolean

bool

bool

Boolean

Ano

K tomu je třeba doplnit, že ve sloupci C++ je uvedena reprezentace odpovídajícího datového typu ve Visual C++ .NET se řízenými rozšířeními (managed extensions). To znamená, že nemusí odpovídat standardním typům v C++ podle ISO 14882.

Všimněte si, že některé typy nelze používat ve Visual Basicu.

Assembly neboli seskupení

Překlad zdrojového kódu vytvoří tzv. assembly (seskupení, sestavení, komplet – se všemi těmito termíny se lze v české literatuře o prostředí .NET setkat). To je spustitelný soubor, dynamická knihovna apod. pro platformu .NET. Obsahuje IL ve formátu PE (Portable Executable). Tento soubor PE obsahuje kromě zavaděče (nativního kódu, který obstará spuštění), kódu v IL a prostředků (resource) také tzv. manifest, soubor s dodatečnými informacemi o datových typech v tomto seskupení.

Seskupení jsou základem programů pro platformu .NET. Jejich nejdůležitější funkce lze shrnout do následujícího přehledu:

Seskupení mohou být statická nebo dynamická.

Pro vytvoření seskupení lze použít vývojové nástroje (překladač), lze ale také využít nástroje z CLR API, které jsou např. v prostoru jmen Reflection.Emit .

Vedle toho se rozlišují soukromá a sdílená seskupení.

Logickou strukturu seskupení ukazuje obrázek 3.


Logická struktura seskupení (assembly)

Řízení přístupu ke složkám v .NET (přístupová práva)

Platforma .NET podporuje 6 úrovní přístupu ke složkám datových typů; programovací jazyky je ale nemusí využít všechny. V následujícím přehledu si uvedeme jejich názvy v prostředí .NET (tj. v CLR), v C# a ve VB.

Private (private, Private)
Přístup je dovolen pouze metodám typu, jehož je daná složka součástí.

Family (protected, Protected)
Přístup je dovolen pouze metodám definujícího typu nebo typů od něj odvozených (potomků), a to bez ohledu na seskupení, v němž se nacházejí.

Family & assembly (C# ani VB nepodporuje)
Přístup je dovolen pouze metodám definujícího typu nebo typů od něj odvozených (potomků), avšak pouze v seskupení, v němž se definující typ nachází.

Assembly (internal, Friend)
Přístup je dovolen pouze metodám typů definovaných v seskupení, v němž se definující typ nachází.

Assenbly or family (protected internal, Protected Friend)
Přístup je dovolen metodám definujícího typu nebo typů od něj odvozených (potomků), a to bez ohledu na seskupení, v němž se nacházejí, a také metodám typů definovaných v témže seskupení bez ohledu na dědickou hierarchii.

Public (public, Public)
Přístup ke dovolen všem metodám všech typů ve všech seskupeních.

Nástroje v .NET

Nyní se krátce zastavíme u nástrojů pro vývoj programů, které platforma .NET dává vývojářům k dispozici a které budeme v dalším povídání potřebovat. Bezpochyby nejdůležitějším z nich je překladač csc.exe , který najdeme v adresáři s instalací prostředí .NET Framework; na mém počítači to je C:\Winnt\Microsoft.NET\Framework\v1.1.4322 . Jeho základní použití je

csc jméno_souboru

Tímto příkazem přeložíme zdrojový soubor jméno_souboru . Pokud nepřikážeme něco jiného, zavolá překladač i sestavovací program a vytvoří spustitelný soubor s příponou .exe . Poznamenejme, že jméno souboru musí obsahovat příponu .cs . Před jméno souboru (resp. jména souborů) lze uvést řadu přepínačů, které shrnuje následující tabulka. S použitím některých z nich se seznámíme v příštím dílu tohoto článku.

Výstupní soubory

/out : jméno_souboru

Určuje jméno výstupního souboru.

/target:exe
/t:exe

Tato volba je implicitní. Vytvoří spustitelný
soubor pro konzolovou aplikaci.

/target:winexe
/t:winexe

Vytvoří spustitelný soubor pro okenní aplikaci.

/target:library
/t:library

Vytvoří dynamickou knihovnu pro prostředí .NET Framework.

/target:module
/t:module

Vytvoří modul, který lze připojit k jinému
seskupení.

/define: seznam_symbolů
/d: seznam_symbolů

Definuje v překládaných zdrojových souborech podmíněné symboly. V seznamu se oddělují
středníkem, bez mezer.

/doc: soubor

Jméno XML souboru, do kterého se uloží
dokumentace generovaná na základě
dokumentačních komentářů.

Vstupní soubory

/recurse: žolík

Použije všechny soubory v aktuálním adresáři a všechny podadresáře specifikované žolíkem.

/reference: sezn _ souborů
/r: s eznam_souborů

Odkaz na metadata specifikovaných seskupení.

/addmodule: sezn _ souborů

Připoj k tomuto seskupení specifikované soubory.

Prostředky (resources)

/win32res: soubor

Specifikuje soubor .res s prostředky pro Win32.

/win32icon: soubor

Použije pro výstup uvedenou ikonu.

/resource: resinfo
/ res : resinfo

Vloží specifikované prostředky.

/linkresource: resinfo
/linkres: resinfo

Připojí specifikované prostředky do tohoto
seskupení.

Generovaný kód

/debug[+|-]

Přeložený program bude obsahovat ladicí
informace.

/debug:{full|pdbonly}

Specifikuje způsob ladění. Volba full je implicitní a dává možnost připojení ladicího nástroje k běžícímu programu.

/optimize[+|-]
/o[+|-]

Povoluje nebo zakazuje optimalizace.

/incremental[+|-]
/incr [+|-]

Povoluje přírůstkovou kompilaci.

Chyby a varování

/warnaserror[+|-]

Varování se pokládají za chyby.

/warn: číslo
/w: číslo

Nastavuje úroveň varování ( číslo je v rozmezí
0–4).

/nowarn: sez_varování

Zakáže uvedená varování.

Jazyk

/checked[+|-]

Nastaví nebo zakáže kontrolu celočíselného
přetečení.

/unsafe[+|-]

Nastaví nebo zakáže nezabezpečený kód.

Další možnosti

@ soubor

Odkaz na soubor s dalšími volbami (response file).

/help

/?

Vypíše nápovědu.

/nologo

Potlačí hlášení překladače o autorských právech.

/noconfig

Zakazuje automatické použití souboru CSC.RSP

/baseaddress: adresa

Bázová adresa vytvářené knihovny.

/bugreport: soubor

Vytvoří soubor s chybovými hlášeními.

/codepage: n

Specifikuje kódovou stránku, která se použije při čtení zdrojových souborů.

/utf8output

Výstup překladače v kódování UTF-8.

/main: typ

Specifikuje třídu, která obsahuje metodu Main() , od níž má program začít. (Přikazuje ignorovat jiné možné vstupní body programu.)

/fullpaths

Překladač generuje plně kvalifikované cesty.

/filealign: n

Určuje zarovnání použité ve výstupním souboru.

/nostdlib[+|-]

Zakazuje automaticky použít odkaz na standardní knihovnu mscorlib.dll

/lib: seznam_souborů

Zadává dodatečné adresáře, v nichž se budou
hledat typy, na něž program odkazuje.

Poznamenejme, že tento překladač existuje v řadě lokalizovaných verzí, mezi jiným i v české verzi. (To znamená, že vypisyje české chybové zprávy).

Další nástroje

Pokud neuvedeme nic jiného, instalují se tyto nástroje do stejného adresáře jako překladač csc.exe .

Al.exe
Linker, který vytvoří seskupení ze zadaných modulů a souborů s prostředky (resources).

CorDbg.exe
Nástroj pro ladění programů v MSIL z příkazové řádky. Najdeme ho v adresáři s instalací SDK pro .NET Framework; na mém počítači to je C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\bin .

Gacutil.exe
Slouží k instalaci a odinstalování sdílených seskupení. Najdeme ho v adresáři s instalací SDK pro .NET Framework.

Ilasm.exe
Překladač jazyka IL. (Vytvoří seskupení ze zdrojového textu napsaného v IL.)

Ildasm.exe
Disasembler jazyka IL. Je vybaven grafickým uživatelským rozhraním, umožňuje i výpis do souboru. Najdeme ho v adresáři s instalací SDK pro .NET Framework (tedy v jiném adresáři než ilasm.exe .)

Nmake.exe
Microsoftská analogie známé utility Make pro řízení překladu a sestavení programu pomocí textových souborů. Najdeme ho v adresáři s instalací SDK pro .NET Framework.

Sn.exe
Slouží ke generování „sdílených jmen“ (shared name, také strong name) pro sdílená seskupení. Najdeme ho v adresáři s instalací SDK pro .NET Framework.

Tlbexp.exe
Na základě veřejně přístupných typů v seskupení vytvoří a exportuje typovou knihovnu pro COM. Najdeme ho v adresáři s instalací SDK pro .NET Framework.

Tlbimp.exe
Na základě dodané typové knihovny pro COM vytvoří řízené seskupení (managed assembly); přitom zobrazí („mapuje“) typy z typové knihovny na typy v prostředí .NET. Vytvořené seskupení je třeba importovat do programu v C#. Najdeme ho v adresáři s instalací SDK pro .NET Framework.

Xsd.exe
Nástroj pro definici schémat XML. Jako vstup použije soubory XML nebo XDR. Najdeme ho v adresáři s instalací SDK pro .NET Framework.

Aspnet_regiis.exe
Tento program slouží k registraci serveru IIS. Budeme jej potřebovat, jestliže si IIS instalujeme později než prostředí .NET.

Prostory jmen

V úvodním povídání nelze pochopitelně projít celou rozmanitost prostředí .NRT. Pro základní orientaci může posloužit přehled prostorů jmen a nástrojů, které jsou v nich k dispozici.

Práce s textem

System.Text
System.Text.RegularExpressions

Základem práce s textem je třída string . Potřebujeme-li třídu, která umožňuje měnit znakový řetězec uložený v instanci, použijeme System.Text.String­Builder . Další nástroje najdeme v uvedených prostorech jmen.

Regulární výrazy

System.Text.RegularExpressions

Jako regulární výrazy se označují výrazy pro vyhledávání a nahrazování v textových souborech. Knihovna BCL podporuje práci s regulárními výrazy na úrovni jazyka Perl 5, včetně žolíků ( ?? , *? , +? a dalších). Prostředky pro práci s regulárními výrazy najdeme v už zmíněném prostoru jmen System.Text.RegularExpressions . Jejich základem je třída Regex ; výsledky vyhledávání reprezentuje třída Match , případně MatchCollection . Jednotlivé nalezené shody představují instance třídy Capture , jejich soubor je uložen v instanci třídy CaptureCollection .

Kontejnery (kolekce)

System.Collections

V prostoru jmen System.Collections najdeme beztypové kontejnery pro všeobecné použití, jako je ArrayList (indexovaný seznam), Dictionary (slovník, asociativní pole), Hashtable (hešová tabulka), Queue (fronta), Stack (zásobník), Bit­Array (bitové pole). V uvedeném prostoru jmen najdeme také řadu rozhraní a některé pomocné třídy.

Vstupy a výstupy, datové proudy

System.IO
System.IO.IsolatedStorage
System.Net.Sockets

Základní nástroje jsou v prostoru jmen System.IO , další v prostoru jmen System.IO.IsolatedStorage . Proudy pro práci se sítí najdeme v prostoru jmen System.Net.Sockets . Pro operace s konzolou slouží třída System.Console .

Práce se sítí

System.Net

Základem práce se sítí je generická architektura požadavku a odezvy (generic request/response architecture). Pro vytvoření požadavku včetně vytvoření záhlaví odpovídajícího použitému protokolu na základě analýzy URI slouží třída WebRequestFactory .

Abstraktní třídy WebRequest a WebResponse představují obecný požadavek, resp. odezvu. Třída WebRequest poskytuje proud typu NetworkStream , umožňující číst data z odezvy. Tyto třídy najdeme v prostoru jmen System.Net . Zde najdeme i specifické nástroje pro použití protokolu HTTP – HttpWebRequest a Http­WebResponse . (Třída WebRequestFactory ve skutečnosti vytvoří instanci odvozené třídy v závislosti na použitém protokolu.)

Vícevláknové aplikace

System.Threading
System.Timers

Nástroje pro tvorbu vícevláknových aplikací zahrnují mechanizmy pro synchronizaci, jako jsou monitory, mutexy, události, zámky pro čtení a zápis atd. Vedle toho se při tvorbě vícevláknových aplikací uplatní také atribut System.Thread­StaticAttribute .

Bezpečnost

System.Security
System.Security.Cryptography
System.Security.Cryptography.X509Certificates
System.Security.Permissions
System.Security.Policy
System.Security.Principal

Knihovna BCL poskytuje nástroje pro manipulaci se všemi součástmi modelu běhového zabezpečení (Code Access Security Model), včetně nástrojů pro šifrování.

Reflexe

System.Reflection
System.Reflection.Emit

Reflexe je nástroj pro pokročilé manipulace s datovými typy, pro vytváření nových datových typů za běhu programu atd

Serializace

System.Runtime.Serialization
System.Runtime.Serialization.Formatters
System.Runtime.Serialization.Formatters.Soap
System.Runtime.Serialization.Formatters.Binary

Serializace představuje nástroj pro ukládání objektů do datových proudů a pro čtení objektů z datových proudů.

Distribuované aplikace

System.Runtime.Remoting
System.Runtime.Remoting.Channels
System.Runtime.Remoting.Channels.Http
System.Runtime.Remoting.Channels.Tcp
System.Runtime.Remoting.Services

Nástroje pro tvorbu distribuovaných aplikací zahrnují podporu síťových protokolů, pro volání vzdálených procedur a další.

Webové služby

System.Web.Services
System.Web.Services.Discovery
System.Web.Services.Protocols

Webové služby jsou svérázným druhem distribuovaných aplikací, které využívají zpráv posílaných v jazyce XML. Nástroje, které prostředí .NET Framework poskytuje, zahrnují podporu tvorby, vyhledávání a využívání webových služeb.

Databáze

System.Data
System.Data.OleDb
System.Data.SqlClient
System.Data.SqlTypes

Podpora databázových aplikací v knihovně BCL vychází z ADO .NET.

XML

System.Xml
System.Xml.Serialization
System.Xml.Serialization.Schema
System.Xml.XPath
System.Xml.Xsl

Knihovna BCL podporuje XML 1.0, schémata XML, prostory jmen XML, implementace XSL/T, XPath a SOAP 1.1. Nabízí také dva modely analýzy (DOM-2 a jednu z variant SAX2).

Grafika

System.Drawing
System.Drawing.Design
System.Drawing.Drawing2D
System.Drawing.Imaging
System.Drawing.Printing
System.Drawing.Text

Tyto nástroje v knihovně BCL představují GDI+, tedy zabezpečený ekvivalent GDI z Win32.

GUI

System.Windows.Forms
System.ComponentModel
System.Windows.Forms.ComponentModel
System.Windows.Forms.Design
System.Windows.Forms.PropertyGridInternal

Spolupráce s neřízeným kódem

System.Runtime.InteropServices
System.Runtime.InteropServices.CustomMarshaller
System.Runtime.InteropServices.Expando

Běhový systém prostředí .NET podporuje obousměrnou spolupráci s neřízeným kódem prostřednictvím COM, COM+ a volání knihoven DLL. BCL k tomu účelu poskytuje řadu tříd a atributů, včetně řízení doby života objektů nebo vytváření uživatelských marshallerů.

 

Literatura

•  Jeffrey Richter: Applied Microsoft .NET Framework Programmig . Microsoft Press 2002.
ISBN 0-7356-1422-9. (Česky: .NET Framework – programování aplikací , Grada Publishing 2002, ISBN 80-247-0450-1.)

  1. Andrew Troelsen: C# and the .NET Framework Platform . Apress, 2002. ISBN 1-893115-59-3.

•  International standard ISO/IEC 23270:2003 . Programming languages – C#.

  1. J. Gough: Compiling for the . NET Common Language Runtime . Prentice Hall, 2002,
    ISBN 0-13-062296-6.

  2. D. Kačmář: Programujeme .NET aplikace . Computer Press, Praha 2001. ISBN 80-7226-569-5

Příště

Po tomto obecném úvodu se začneme zabývat problematikou práce se seskupením: Jak vytvořit a jak instalovat soukromé seskupení, jak vytvořit a jak instalovat sdílené seskupení, kde ho běhový systém prostředí .NET hledá, jak je to se zabezpečením, jak vytvořit konfigurační soubor atd.

Miroslav Virius