Visual Studio 2005 přináší nové rozhraní pro tvůrce databázových (ne nutně) providerů, takže je možné ve VS pracovat s oblíbenou databází stejně ladně a lehce jako s např. MS SQL Serverem. Toto rozhraní je pojmenováno DDEX – Data Designer Extesibility. DDEX rozšiřuje možnosti design-time vlastností a podobných dialogů a průvodců o možnosti využívat datové zdroje třetích stran a dokonce si podporu pro tyto libovolně a snadno přidávat.
Kde je tedy možné podporu tohoto nového rozhranní očekávat? Předně je to Server Explorer. Do Server Exploreru můžete přidávat oblíbené databáze a procházet pomocí stromového menu jednotlivé databázové objekty případně jejich strukturu. Jako další bych uvedl podporu pro drag-and-drop operace. Můžete lehce přetahovat objekty ze Server Exploreru na plochu jednotlivých designerů (např. DataSetu). Další – neméně důležitou částí – je podpora pro login a connection dialog boxy, které jsou většinou specifické pro daný datový zdroj. A jako poslední je zde podpora pro vlastní designery. DDEX může poskytovat vlastní „návrháře“ pro prohlížení a změny objektů v databázi, můžete např. editovat nebo přidávat tabulky přímo z prostředí Visual Studia.
Toliko tedy malé představení Data Designer Extensibility.
Firebird ADO.NET Data Provider obsahuje samozřejmě i DDEX Provider pro Visual Studio 2005. Stáhnout jej můžete na http://www.firebirdsql.org/index.php?op=files&id=netprovider. Potřebovat budete i samotný Firebird ADO.NET Data Provider, který ale předpokládám již máte stažen (pokud nikoli, můžete jej stáhnout na stejném místě).
Máte-li vše staženo, je nutné nejprve nainstalovat Firebird ADO.NET Data Provider a případně zkontrolovat, zda-li je korektně zaveden v GAC. Využít k tomu můžete utilitu gacutil (nachází se např. v instalačním balíku FB Data Provideru) – zapište na příkazový řádek gacutil.exe /l FirebirdSql.Data.FirebirdClient, výstup by měl být podobný:
Microsoft (R) .NET Global Assembly Cache Utility. Version 2.0.50727.42
Copyright (c) Microsoft Corporation. All rights reserved.
The Global Assembly Cache contains the following assemblies:
FirebirdSql.Data.FirebirdClient, Version=2.0.1.0, Culture=neutral, PublicKeyToken=3750abcc3150b00c, processo
rArchitecture=MSIL
Number of items = 1
Pokud není provider v GAC správně nainstalován zopakujte instalační proces. Dalším krokem bude úprava machine.config souboru, ve kterém jsou uložena nastavení pro .NET Framework. Vyhledejte klíč configuration -> configSections a přidejte řádek:
<section name="FirebirdSql.Sata.FirebirdClient" type="System.Data.Common.DbProviderConfigurationHandler, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />.
A následně vyhledejte system.data -> DbProviderFactories a přidejte řádek (případně upravte signaturu assembly podle verze v GAC, což mj. zjistíte z výpisu gacutil):
<add name="FirebirdClient Data Provider" invariant="FirebirdSql.Data.FirebirdClient" description=".Net Framework Data Provider for Firebird" type="FirebirdSql.Data.FirebirdClient.FirebirdClientFactory, FirebirdSql.Data.FirebirdClient, Version=2.0.1.0, Culture=neutral, PublicKeyToken=3750abcc3150b00c" />.
Nakonec je nutné zapsat data do registru pomocí přiložených skriptů (FirebirdDDEXProvider.reg příp. FirebirdDDEXProviderPackageLess.reg). V těchto souborech nahraďte %Path% řetězec cestou, kde máte FB Data Provider nainstalován (vetšinou C:\Program Files\FirebirdClient).
Nyní přichází trocha magie, máte totiž na výběr dvě cesty jak pokračovat. Začneme tou služebně starší. Aby mohl DDEX provider fungovat budete potřebovat VS SDK (což není(!) to samé co .NET Framework SDK), ke stažení je na http://msdn.microsoft.com/vstudio/extend/. Po instalaci toho balíčku již stačí jen poklepat na upravený soubor FirebirdDDEXProvider.reg a odsouhlasit zápis hodnot do registru. Zde je vidět hlavní problém této cesty, a sice že VS SDK není možné nainstalovat do Express edicí a tedy není možné ani DDEX pro FB použít – ale nezoufejte, řešení existuje.
Druhou cestou je neinstalovaní VS SDK a importování hodnot z FirebirdDDEXProviderPackageLess.reg souboru.
Zde je také klíč k instalaci do Express edicí Visual Studia. Soubor FirebirdDDEXProviderPackageLess.reg nevyžaduje (resp. „to co vyrobí“) přítomnost VS SDK a může být použít i pro Express edice – ale pozor! Soubor je ještě nutné upravit tak, že přepíšete tam použitá GUID, na GUID některého z implicitně instalovaných providerů (tím se tedy o tento připravíte). Avšak tento postup není oficiální a je možné, že nebude vždy fungovat.
Jakmile máte DDEX podporu pro FB nainstalovánu, můžete si zkusit v Server Exploreru přidat první datový zdroj a užívat si. V příštím pokračování se podíváme na … nechte se překvapit. :-)
Zajímavosti: Je možné, že při zkoumání narazíte na plno nedostatků DDEX. Jedním z mých oblíbených je zapsání SQL příkazu v okně Query Builderu s nějakým rozšířením specifickým pro Firebird. Vzhledem k tomu, že vlastní DDEX provider pro FB nemá možnost zvalidovat příkaz, provádí validaci samo Visual Studio, které jej samozřejmě prohlásí za chybný a nevygeneruje například tabulku pro DataSet. Řešení tohoto je jednoduché, zapsat nejprve příkaz obecně a po vygenerování dotaz upravit do požadovaného tvaru.
reklama
Visual Studio 2005 přináší nové rozhraní pro tvůrce databázových (ne nutně) providerů, takže je možné ve VS pracovat s oblíbenou databází stejně ladně a lehce jako s např. MS SQL Serverem. Toto rozhraní je pojmenováno DDEX – Data Designer Extesibility. DDEX rozšiřuje možnosti design-time vlastností a podobných dialogů a průvodců o možnosti využívat datové zdroje třetích stran a dokonce si podporu pro tyto libovolně a snadno přidávat.
Kde je tedy možné podporu tohoto nového rozhranní očekávat? Předně je to Server Explorer. Do Server Exploreru můžete přidávat oblíbené databáze a procházet pomocí stromového menu jednotlivé databázové objekty případně jejich strukturu. Jako další bych uvedl podporu pro drag-and-drop operace. Můžete lehce přetahovat objekty ze Server Exploreru na plochu jednotlivých designerů (např. DataSetu). Další – neméně důležitou částí – je podpora pro login a connection dialog boxy, které jsou většinou specifické pro daný datový zdroj. A jako poslední je zde podpora pro vlastní designery. DDEX může poskytovat vlastní „návrháře“ pro prohlížení a změny objektů v databázi, můžete např. editovat nebo přidávat tabulky přímo z prostředí Visual Studia.
Toliko tedy malé představení Data Designer Extensibility.
Firebird ADO.NET Data Provider obsahuje samozřejmě i DDEX Provider pro Visual Studio 2005. Stáhnout jej můžete na http://www.firebirdsql.org/index.php?op=files&id=netprovider. Potřebovat budete i samotný Firebird ADO.NET Data Provider, který ale předpokládám již máte stažen (pokud nikoli, můžete jej stáhnout na stejném místě).
Máte-li vše staženo, je nutné nejprve nainstalovat Firebird ADO.NET Data Provider a případně zkontrolovat, zda-li je korektně zaveden v GAC. Využít k tomu můžete utilitu gacutil (nachází se např. v instalačním balíku FB Data Provideru) – zapište na příkazový řádek gacutil.exe /l FirebirdSql.Data.FirebirdClient, výstup by měl být podobný:
Microsoft (R) .NET Global Assembly Cache Utility. Version 2.0.50727.42
Copyright (c) Microsoft Corporation. All rights reserved.
The Global Assembly Cache contains the following assemblies:
FirebirdSql.Data.FirebirdClient, Version=2.0.1.0, Culture=neutral, PublicKeyToken=3750abcc3150b00c, processo
rArchitecture=MSIL
Number of items = 1
Pokud není provider v GAC správně nainstalován zopakujte instalační proces. Dalším krokem bude úprava machine.config souboru, ve kterém jsou uložena nastavení pro .NET Framework. Vyhledejte klíč configuration -> configSections a přidejte řádek:
<section name="FirebirdSql.Sata.FirebirdClient" type="System.Data.Common.DbProviderConfigurationHandler, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />.
A následně vyhledejte system.data -> DbProviderFactories a přidejte řádek (případně upravte signaturu assembly podle verze v GAC, což mj. zjistíte z výpisu gacutil):
<add name="FirebirdClient Data Provider" invariant="FirebirdSql.Data.FirebirdClient" description=".Net Framework Data Provider for Firebird" type="FirebirdSql.Data.FirebirdClient.FirebirdClientFactory, FirebirdSql.Data.FirebirdClient, Version=2.0.1.0, Culture=neutral, PublicKeyToken=3750abcc3150b00c" />.
Nakonec je nutné zapsat data do registru pomocí přiložených skriptů (FirebirdDDEXProvider.reg příp. FirebirdDDEXProviderPackageLess.reg). V těchto souborech nahraďte %Path% řetězec cestou, kde máte FB Data Provider nainstalován (vetšinou C:\Program Files\FirebirdClient).
Nyní přichází trocha magie, máte totiž na výběr dvě cesty jak pokračovat. Začneme tou služebně starší. Aby mohl DDEX provider fungovat budete potřebovat VS SDK (což není(!) to samé co .NET Framework SDK), ke stažení je na http://msdn.microsoft.com/vstudio/extend/. Po instalaci toho balíčku již stačí jen poklepat na upravený soubor FirebirdDDEXProvider.reg a odsouhlasit zápis hodnot do registru. Zde je vidět hlavní problém této cesty, a sice že VS SDK není možné nainstalovat do Express edicí a tedy není možné ani DDEX pro FB použít – ale nezoufejte, řešení existuje.
Druhou cestou je neinstalovaní VS SDK a importování hodnot z FirebirdDDEXProviderPackageLess.reg souboru.
Zde je také klíč k instalaci do Express edicí Visual Studia. Soubor FirebirdDDEXProviderPackageLess.reg nevyžaduje (resp. „to co vyrobí“) přítomnost VS SDK a může být použít i pro Express edice – ale pozor! Soubor je ještě nutné upravit tak, že přepíšete tam použitá GUID, na GUID některého z implicitně instalovaných providerů (tím se tedy o tento připravíte). Avšak tento postup není oficiální a je možné, že nebude vždy fungovat.
Jakmile máte DDEX podporu pro FB nainstalovánu, můžete si zkusit v Server Exploreru přidat první datový zdroj a užívat si. V příštím pokračování se podíváme na … nechte se překvapit. :-)
Zajímavosti: Je možné, že při zkoumání narazíte na plno nedostatků DDEX. Jedním z mých oblíbených je zapsání SQL příkazu v okně Query Builderu s nějakým rozšířením specifickým pro Firebird. Vzhledem k tomu, že vlastní DDEX provider pro FB nemá možnost zvalidovat příkaz, provádí validaci samo Visual Studio, které jej samozřejmě prohlásí za chybný a nevygeneruje například tabulku pro DataSet. Řešení tohoto je jednoduché, zapsat nejprve příkaz obecně a po vygenerování dotaz upravit do požadovaného tvaru.