Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A legtöbb alkalmazás adatokat használ fel vagy állít elő. A ClickOnce számos lehetőséget kínál az adatok helyi és távoli olvasására és írására.
Helyi adat
A ClickOnce használatával az alábbi módszerek bármelyikével töltheti be és tárolhatja az adatokat helyileg:
ClickOnce adatkönyvtár
Izolált tárolás
Egyéb helyi fájlok
ClickOnce adatkönyvtár
Minden helyi számítógépen telepített ClickOnce-alkalmazás rendelkezik egy adatkönyvtárral, amelyet a felhasználó Dokumentumok és beállítások mappájában tárol. A ClickOnce-alkalmazásokban található és "adatfájlként" megjelölt fájlok az alkalmazás telepítésekor ebbe a könyvtárba lesznek másolva. Az adatfájlok bármilyen típusúak lehetnek, a leggyakrabban szöveg-, XML- és adatbázisfájlok, például Microsoft Access .mdb fájlok lehetnek.
Az adatkönyvtár alkalmazás által felügyelt adatokhoz készült, amelyek az alkalmazás által kifejezetten tárolt és karbantartott adatok. Az alkalmazásjegyzékben nem "adatként" megjelölt statikus, nem jellemző fájlok ehelyett az Alkalmazáskönyvtárban fognak elhelyezkedni. Ebben a könyvtárban találhatók az alkalmazás végrehajtható fájljai (.exe) és szerelvényei.
Megjegyzés:
Egy ClickOnce-alkalmazás eltávolításakor a Data Directory is törlődik. Soha ne használja a Data Directoryt végfelhasználó által felügyelt adatok, például dokumentumok tárolására.
Adatfájlok megjelölése ClickOnce-disztribúcióban
Ha meglévő fájlt szeretne elhelyezni a Data Directoryban, a meglévő fájlt adatfájlként kell megjelölnie a ClickOnce-alkalmazás alkalmazásjegyzékfájljában. További információért lásd: Adatfájl hozzáadása egy ClickOnce alkalmazáshoz.
Olvasás az adatkönyvtárból és írás az adatkönyvtárba
A Data Directoryból való olvasáshoz a ClickOnce-alkalmazás olvasási engedélyt kell kérnie; Hasonlóképpen, a címtárba való íráshoz írási engedély szükséges. Az alkalmazás automatikusan rendelkezik ezzel az engedéllyel, ha úgy van konfigurálva, hogy teljes megbízhatósággal fusson. Az engedélyszint-emeléssel vagy a megbízható alkalmazástelepítéssel történő engedélyemelésről további információt a Biztonságos ClickOnce-alkalmazások című témakörben talál.
Megjegyzés:
Ha a szervezet nem használja a megbízható alkalmazástelepítést, és kikapcsolta az engedélyszint-emelést, az engedélyek érvényesítése sikertelen lesz.
Miután az alkalmazás rendelkezik ezekkel az engedélyekkel, a metódushívások használatával elérheti a Data Directoryt a System.IO. A Data Directory elérési útját egy Windows Forms ClickOnce alkalmazáson belül azzal a DataDirectory tulajdonsággal szerezheti meg, amely a CurrentDeploymentApplicationDeployment tulajdonságán van definiálva. Ez a legkényelmesebb és ajánlott módja az adatok elérésének. Az alábbi példakód bemutatja, hogyan teheti ezt meg egy CSV.txt nevű szövegfájl esetében, amelyet adatfájlként vett fel az üzembe helyezésbe.
Megjegyzés:
A ApplicationDeployment névtérben lévő System.Deployment.Application osztály és API-k nem támogatottak a .NET Core és a .NET 5 és újabb verziókban. A .NET 7-ben az alkalmazástelepítési tulajdonságok elérésének új módszere támogatott. További információ: A ClickOnce telepítési tulajdonságok elérése a .NET-ben. A .NET 7 nem támogatja az ApplicationDeployment metódusok megfelelőségét.
if (ApplicationDeployment.IsNetworkDeployed)
{
try
{
using (StreamReader sr = new StreamReader(ApplicationDeployment.CurrentDeployment.DataDirectory + @"\CSV.txt"))
{
MessageBox.Show(sr.ReadToEnd());
}
}
catch (Exception ex)
{
MessageBox.Show("Could not read file. Error message: " + ex.Message);
}
}
Az üzembe helyezésben lévő fájlok adatfájlként való megjelöléséről további információt a How to: Include a Data File in a ClickOnce Application (Adatfájl belefoglalása ClickOnce-alkalmazásba) című témakörben talál.
Az adatkönyvtár elérési útját az osztály megfelelő változóival is megkaphatja, mint például a Application osztály LocalUserAppDataPath változóival.
Más típusú fájlok módosítása további engedélyeket igényelhet. Ha például Access-adatbázist (.mdb) szeretne használni, az alkalmazásnak teljes megbízhatóságot kell érvényesítenie a megfelelő <xref:System.Data> osztályok használatához.
Adatkönyvtár és alkalmazásverziók
Az alkalmazások minden verziója saját Data Directoryval rendelkezik, amely elkülönítve van a többi verziótól. A ClickOnce létrehozza ezt a könyvtárat, függetlenül attól, hogy az üzemelő példány tartalmazza-e az adatfájlokat, így az alkalmazásnak van helye az új adatfájlok futásidőben történő létrehozásához. Az alkalmazás új verziójának telepítésekor a ClickOnce az előző verzió Adatkönyvtárából származó összes meglévő adatfájlt az új verzió Data Directoryjába másolja – függetlenül attól, hogy az eredeti üzembe helyezés része volt-e, vagy az alkalmazás hozta létre őket.
A ClickOnce lecseréli a fájl régebbi verzióját a kiszolgáló újabb verziójára, ha egy adatfájl más kivonatértéket ad meg az alkalmazás régi verziójában, mint az új verzióban. Ha az alkalmazás korábbi verziója olyan új fájlt hozott létre, amelynek neve megegyezik az új verzió központi telepítésében szereplő fájl nevével, a ClickOnce felülírja a régi verzió fájlját az új fájllal. Mindkét esetben a régi fájlok egy alkönyvtárba kerülnek a névvel ellátott .preadatkönyvtárban, hogy az alkalmazás továbbra is hozzáférhessen a régi adatokhoz migrálási célokból.
Ha részletesebb adatmigrálásra van szüksége, a ClickOnce Deployment API-val egyéni migrálást végezhet a régi adatkönyvtárból az új Adatkönyvtárba. Tesztelnie kell az elérhető letöltéseket a IsFirstRun segítségével, le kell töltenie a frissítést a Update vagy UpdateAsync segítségével, és saját maga kell elvégeznie az egyéni adatmigrálást, miután a frissítés befejeződött.
Izolált tárolás
Az Izolált tár egy API-t biztosít a fájlok egyszerű API-val történő létrehozásához és eléréséhez. A tárolt fájlok tényleges helye a fejlesztő és a felhasználó elől is rejtve van.
Az izolált tároló a .NET-keretrendszer minden verziójában működik. Az izolált tárolás részben megbízható alkalmazásokban is működik anélkül, hogy további engedélytámogatásra van szükség. Izolált tárolást kell használnia, ha az alkalmazásnak részleges megbízhatósági kapcsolaton kell futnia, de az alkalmazásspecifikus adatokat kell fenntartania.
Megjegyzés:
A .NET Core-hoz és a .NET 5-ös vagy újabb verziójához készült ClickOnce-ben a részleges megbízhatóság, amelyhez a Code Access Security szükséges, nem támogatott. A .NET-keretrendszerben nem ajánlott a Code Access Security használata.
További információ: Izolált tároló.
Egyéb helyi fájlok
Ha az alkalmazásnak olyan végfelhasználói adatokkal kell dolgoznia vagy mentenie, mint a jelentések, képek, zene stb., az alkalmazásnak adatokat kell FileIOPermission olvasnia és írnia a helyi fájlrendszerbe.
Távoli adatok
Egy bizonyos ponton az alkalmazásnak valószínűleg le kell kérnie az adatokat egy távoli webhelyről, például ügyféladatokat vagy piaci adatokat. Ez a szakasz a távoli adatok lekérésének leggyakoribb módszereit ismerteti.
Fájlok elérése HTTP-vel
A webkiszolgálók adatai a WebClient névtérben található HttpWebRequest vagy System.Net osztály használatával érhetők el. Az adatok lehetnek statikus fájlok vagy ASP.NET alkalmazások, amelyek nyers szöveget vagy XML-adatokat adnak vissza. Ha az adatok XML formátumúak, az adatok lekérésének leggyorsabb módja az XmlDocument osztály használata, amelynek Load metódusa egy URL-címet vesz fel argumentumként. Példa: XML-dokumentum beolvasása a DOM-ba.
Figyelembe kell vennie a biztonságot, ha az alkalmazás HTTP-en keresztül fér hozzá a távoli adatokhoz. Alapértelmezés szerint a ClickOnce-alkalmazás hálózati erőforrásokhoz való hozzáférése az alkalmazás üzembe helyezésének módjától függően korlátozott lehet. Ezek a korlátozások arra vonatkoznak, hogy megakadályozzák, hogy a rosszindulatú programok hozzáférjenek a kiemelt távoli adatokhoz, vagy hogy a felhasználó számítógépét használva támadjanak meg más számítógépeket a hálózaton.
Az alábbi táblázat az esetlegesen használt üzembehelyezési stratégiákat és azok alapértelmezett webes engedélyeit sorolja fel.
| Üzembe helyezés típusa | Alapértelmezett hálózati engedélyek |
|---|---|
| Webes telepítés | Csak azt a webkiszolgálót érheti el, amelyről az alkalmazást telepítették |
| Fájlmegosztás telepítése | Nem lehet elérni egyetlen webszervert sem. |
| CD-ROM telepítés | Bármely webkiszolgálóhoz hozzáférhet |
Ha a ClickOnce-alkalmazás biztonsági korlátozások miatt nem tud hozzáférni egy webkiszolgálóhoz, az alkalmazásnak érvényesítenie WebPermission kell az adott webhelyet. További információ a ClickOnce-alkalmazások biztonsági engedélyeinek növeléséről: Secure ClickOnce applications.
Adatok elérése XML-webszolgáltatáson keresztül
Ha XML-webszolgáltatásként teszi elérhetővé az adatokat, xml webszolgáltatás-proxy használatával érheti el az adatokat. A proxy egy .NET-keretrendszerosztály, amelyet a Visual Studio használatával hoz létre. Az XML-webszolgáltatás műveletei – például az ügyfelek lekérése, a rendelések leadása stb. – metódusként jelennek meg a proxyn. Ez sokkal egyszerűbbé teszi a webes szolgáltatásokat, mint a nyers szöveg- vagy XML-fájlok.
Ha az XML-webszolgáltatás HTTP-en keresztül működik, a szolgáltatásra ugyanazok a biztonsági korlátozások vonatkoznak, mint a WebClient és HttpWebRequest osztályokra.
Adatbázis közvetlen elérése
A névtérben lévő System.Data osztályok használatával közvetlen kapcsolatokat létesíthet egy adatbázis-kiszolgálóval, például a hálózaton lévő SQL Serverrel, de a biztonsági problémákat figyelembe kell vennie. A HTTP-kérésekkel ellentétben az adatbázis-kapcsolatkérések alapértelmezés szerint tilosak részleges megbízhatóság esetén; Alapértelmezés szerint csak akkor rendelkezik ilyen engedéllyel, ha a ClickOnce-alkalmazást CD-ROM-ról telepíti. Ez teljes megbízhatóságot biztosít az alkalmazásnak. Egy adott SQL Server-adatbázishoz való hozzáférés engedélyezéséhez az alkalmazásnak hozzá kell kérnie SqlClientPermission ; az SQL Serveren kívüli adatbázishoz való hozzáférés engedélyezéséhez kérnie OleDbPermissionkell.
Legtöbbször nem kell közvetlenül hozzáférnie az adatbázishoz, hanem egy ASP.NET vagy EGY XML-webszolgáltatásban írt webkiszolgáló-alkalmazáson keresztül. Az adatbázis ilyen módon való elérése gyakran a legjobb módszer, ha a ClickOnce-alkalmazás webkiszolgálóról van üzembe helyezve. A kiszolgálót részleges megbízhatósággal érheti el az alkalmazás engedélyeinek emelése nélkül.