„Szoftverfejlesztés .NET platformon - Jegyzet 9. fejezet” változatai közötti eltérés
a David14 átnevezte a(z) Installing and Configuring Applications lapot a következő névre: Szoftverfejlesztés .NET plattformon - Jegyzet 9. fejezet |
a Hryghr átnevezte a(z) Szoftverfejlesztés .NET plattformon - Jegyzet 9. fejezet lapot a következő névre: Szoftverfejlesztés .NET platformon - Jegyzet 9. fejezet: pontos név |
(Nincs különbség)
|
A lap 2013. május 19., 22:28-kori változata
Ez az oldal a korábbi SCH wikiről lett áthozva.
Ha úgy érzed, hogy bármilyen formázási vagy tartalmi probléma van vele, akkor, kérlek, javíts rajta egy rövid szerkesztéssel!
Ha nem tudod, hogyan indulj el, olvasd el a migrálási útmutatót.
70-536 .NET framework 2.0 Application Development Foundation
%TOC{depth="3"}%
Konfiguráció
=System.Configuration= névtér, referencia kell a
System.Configuration.dll
-re
Configuration
- =AppSettings=: visszaad egy referenciát a konfiguráció
AppSettingsSection
-ére - =ConnectionStrings=: visszaad egy referenciát a konfiguráció
ConnectionStringsSection
-ére
- =GetSection(group)=: visszaad egy referenciát a kért
ConfigurationSection
-re - =FilePath=: a konfigurációs file elérési útvonala
- =HasFile=: létezik-e a konfigurációs file
- =Save[As]()=: elmenti a konfigurációs XML file-ba
ConfigurationManager
- =AppSettings=, =ConnectionStrings=, =GetSection(group)=:
visszatér az alkalmazás default konfigurációjának egy szakaszával
- =Open[Exe|Machine]Configuration=: betölti a default konfigurációs file-t az alkalmazáshoz vagy a számítógéphez
- =OpenMapped[Exe|Machine]Configuration=: betölti a megadott konfigurációs file-t az alkalmazáshoz vagy a számítógéphez. Példa:
ExeConfigurationFileMap map = new ExeConfigurationFileMap(); map.ExeConfigFilename = "ConfigurationDemo.exe.config"; Configuration cs = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
ConfigurationUserLevel
- =None=: mindenki számára közös konfiguráció
- =PerUserRoaming=: aktuális felhasználó részére
- =PerUserRoamingAndLocal=: aktuális felhasználó részére (mi a különbség?)
Konfigurációs file felépítése
A konfigurációs file
Section
-ökből és
SectionGroup
-okból áll.
Egyedi =Section= beolvasáskor
- régen az
IConfigurationSectionHandler
-t kellett implementálni,- a =Create()= metódust kell implementálni, ami visszaad egy
HashTable
-t
- a =Create()= metódust kell implementálni, ami visszaad egy
- most a =ConfigurationSection= osztályt érdemes leszármaztatni.
- =ConfigurationProperty= attribútummal kell ellátni a propertyket,
amiket ezek után típusosan lehet elérni
A konfigurációs file részei
- =configuration/startup/supportedRuntime=: milyen verziójú Framework-öt igényel a program.
Ha nincs telepítve a kért verzió, a legújabbat fogja használni.
- =configuration/runtime/developmentMode=: úgy futtatja a kódot, mintha telepítve lenne a GAC-be.
Ehhez a DEVPATH környezeti változót be kell állítani, hogy az assemblyre mutasson.
- =configuration/runtime/.../codeBase=: megadja, hogy a hivatkozott assembly melyik verzióját
kell betölteni
- =configuration/appSettings=: felhasználó által definiált kulcs-érték párokat tárol.
Beolvasás kódból: =ConfigurationSettings.AppSettings["kulcs"]= (elavult) vagy =ConfigurationManager.AppSettings["kulcs"]=. Egy kulcshoz több érték is tartozhat (ld. =NameValueCollection=).
- =configuration/connectionStrings=: kulcs-connection string párok listája.
Beolvasáskor nem csak az egyes connection stringek kérdezhetők le, hanem azok részei is. Biztonsági okokból minden connection stringet titkosítani kell.
Webes alkalmazások esetén =ConfigurationManager= helyett
WebConfigurationManager
-t kell használni. A kettő működése ekvivalens, csak pár metódust neveztek át.
Application Settings
Alkalmazáshoz, nem userhez tartozó beállítások tárolása objektum-orientált módon. Megírható kézzel, de sokkal egyszerűbb designerrel csináltatni. Ehhez hozzá kell adni a projecthez egy Settings File-t, és beállítani a konfigurációs értékek nevét és típusát.
Az Application Settings szakasz típusosan is beolvasható, ehhez le kell származtatni az =ApplicationSettingsBase= osztályt, és kiegészíteni propertykkel. A propertyket el kell látni =[UserScopedSetting()]= vagy =[ApplicationScopedSetting()]= attribútummal.
class MyAppSettings : ApplicationSettingsBase { [UserScopedSetting()] public String Key { get { return (this["Key"] as String); } set { this["Key"] = value;} } }
Telepítő
Az egyedi telepítő készítésének lépései
- Le kell származtatni az Installer ősosztályból, el kell látni =[RunInstaller(true)]= attribútummal.
A leszármaztatott osztály legyen egy assemblyben az alkalmazással.
- Felül kell definiálni az =Install=, =Commit=, =Rollback= és =Uninstall= metódusokat.
- Be kell regisztrálni a =Committing= és a =Committed= eseménykezelőket.
- Meg kell hívni a telepítőt
- parancssorból: =InstallUtil.exe [/u] MyInstaller.dll=
- kódból: =AssemblyInstaller= és =ComponentInstaller= osztályok
.NET Framework 2.0 Configuration Tool
Administrative Tools / Microsoft .NET Framework 2.0 Configuration
- Global Assembly Cache-ben lévő objektumokat lehet menedzselni és konfigurálni
- Code Group-okat és Permission Set-eket lehet állítani Enterprise, Machine és User szinten.
Az alsóbb szinteken csak tiltani lehet, engedélyezni nem. A Code Group-okat az =Evidence= azonosítja (az után kapja a nevét). A Code Group-ok neve egyedi kell, hogy legyen.
- Remotingot lehet konfigurálni
.NET biztonsági szótár (részletesen lásd az Application Security fejezetben)
- *Code Access Security*: .NET-es megoldás annak szabályozására, hogy a nem megbízható kód mihez férhessen hozzá.
- *Evidence*: assemblyhez kapcsolódó információ, pl.
- alkalmazás melyik könyvtárban található
- kiadó digitális aláírása
- assembly digitális aláírása
- biztonsági zóna
- egyedi információ
- *Code Group*: a CLR betöltéskor az Evidence alapján besorolja egy Code Group-ba az assemblyt
- *Permission Set*: a Code Group Permission-öket tartalmaz, együtt Permission Set-nek hívnak
- *Security Policy*: az adminisztrátor által megadott konfiguráció, ami az Evidence alapján besorolja
az assemblyt valamelyik Code Group-ba. Négyféle van belőle:
- Enterprise: az Active Directory-n belül egy csoportba tartozó gépekre érvényes
- Machine: az aktuális gépre érvényes
- User: a bejelentkezett felhasználóra érvényes
- AppDomain: a futó AppDomain-re érvényes. Csak kódból állítható.
Az Enterprise, User és AppDomain alapból full trust környezetek (mindent megengednek). A Machine korlátozott jogokat ad. Az eredő jogokat a négy Permission Set metszete adja.
-- Peti - 2007.06.27.