Zen v14 SP1 ADO.NET データ プロバイダー 4.3 および 4.4(.NET Framework 用)リリース ノート
一般リリース – 2020 年 4 月
目次
以下のトピックでは、ADO.NET データ プロバイダー 4.3 および 4.4 の両方の Zen v14 サポートに関する情報を提供します。
Zen ADO.NET データ プロバイダー 4.3 および 4.4(.NET Framework 用)について
Zen v14 は、ADO.NET データ プロバイダー 4.3 および 4.4 の 2 つのバージョンを提供します。デフォルトで、すべてのバージョンがデータベース エンジンと一緒にインストールされます。
次の表に示すように、Zen ADO.NET データ プロバイダー 4.3 および 4.4 では、Microsoft .NET Framework や Microsoft Entity Framework との組み合わせもサポートされるようになりました。表の各行で、これら 3 製品のサポートされるバージョンの互換性のある組み合わせを表しています。
Zen ADO.NET データ プロバイダー 4.3(.NET Framework 用)SDK は、Zen ADO.NET Data Provider Zen v14 Tools を Microsoft Visual Studio(VS)2012、2013、2015、および 2017 と統合します。Zen ADO.NET データ プロバイダー 4.4(.NET Framework 用)SDK は、Tools を VS 2017 および 2019 と統合します。
Zen ADO.NET Entity Framework プロバイダー 4.3 では、Microsoft Entity Framework 5.0、6.0、および 6.1 がサポートされています。Zen ADO.NET Entity Framework プロバイダー 4.4 では、Microsoft Entity Framework 6.0 および 6.1 がサポートされています。
一覧に示したバージョンはすべて、.NET Framework の 32 ビットと 64 ビットのどちらのバージョンにも適用されます。
ADO.NET をカスタマイズしないで使用しているのであれば、以前のバージョンの .NET Framework と Zen データ プロバイダー用に作成されたコードは、Zen データ プロバイダー 4.3 および 4.4 と互換性があります。
アプリケーションで Zen ADO.NET Entity Framework プロバイダー 4.3 または 4.4 を使用するには、.NET Framework 4.5 以上を使用しなければなりません。
メモ:Zen ADO.NET データー プロバイダーは現在、Microsoft Entity Framework Core をサポートしていません。
本リリースで使用が推奨されなくなった機能
Zen ADO.NET データ プロバイダー 4.3 および 4.4 SDK では、Zen ADO.NET Provider Data Tools と Microsoft Visual Studio の 2012 より前のバージョンとの統合は提供されません。Zen ADO.NET データ プロバイダー 4.4 SDK では、Visual Studio 2017 より前のバージョンとの統合は提供されません。
Zen Data Tools と Visual Studio との統合
Zen ADO.NET Data Provider for .NET SDK パッケージは、SDK Library for Zen / PSQL からダウンロードできます。これらのパッケージは、設計時ファイル(ドキュメントとコード サンプル)を同梱しているほか、Zen ADO.NET データ プロバイダーのテンプレートおよび Data Tools と VS との統合を提供します。サポートされている Zen ADO.NET データ プロバイダーのバージョンごとにダウンロードがあります。
4.3/4.4 プロバイダー SDK
4.3 または 4.4 プロバイダー(.NET 用)SDK のダウンロードは、zip 形式のアーカイブ ファイルです。ターゲット システム上でパッケージを手動で展開すると、次の項目が配置されます。
これらの項目を Visual Studio と統合する手順は、次のセクションで説明します。
Visual Studio との統合
Zen ADO.NET データ プロバイダー 4.3 SDK では、Zen ADO.NET Provider Data Tools と Microsoft Visual Studio 2012、2013、2015、および 2017 との統合を提供します。Zen ADO.NET データ プロバイダー 4.4 SDK は Visual Studio 2017 および 2019 と統合します。
テンプレートと Data Tools を Visual Studio に統合するには、アーカイブ ファイルの VisualStudioDataTools フォルダーに同梱されている PowerShell インストール スクリプトを使用することをお勧めします。
PowerShell スクリプトでは、アーカイブ ファイル内の上記フォルダーに同梱されている新しい Visual Studio 拡張機能(VSIX)パッケージのいずれかのインストールが処理されます。このパッケージにより、Zen プロジェクト テンプレートおよび項目テンプレートと Zen Data Tools が Visual Studio に統合されます。VSIX パッケージでは現在、Entity Framework Model First テンプレートの統合がサポートされていないため、VS が Entity Framework 開発用に構成されている場合に限り、Zen Model First テンプレートをパッケージ内の該当する場所から適切な VS フォルダーにコピーする処理も PowerShell スクリプトが行います。
PowerShell を使用した統合
PowerShell インストール スクリプトを使用するには、PowerShell 3.0、4.0、または 5.0 をインストールしておくと共に、設定する際に、署名付きスクリプトを実行できるようにその実行ポリシーを設定しておく必要があります。また、PowerShell セッションを管理者特権で実行することも必要です。
1
2
管理者として実行]オプションを使用して、PowerShell セッションを開始します。
3
PS> <スクリプトのパス>\Load-PSQL-DataTools.ps1 install
1
2
PS> <スクリプトのパス>\Load-PSQL-DataTools.ps1 remove
VSIX パッケージを使用した統合(Model-First テンプレートを使用しない)
Entity Framework 開発で Zen Model First テンプレートが不要な場合には、Visual Studio ユーティリティ VSIXInstaller.exe を使用して VSIX パッケージを直接インストールすることもできます。
1
2
Windows エクスプローラーで、ターゲット システムの場所の VisualStudioDataTools フォルダーを参照します。
3
Zen.VisualStudio.DataTools_2012_2013.vsix:VS 2012 または VS 2013 の場合(4.3 のみ)
Zen.VisualStudio.DataTools_2015_2017.vsix:VS 2015 ~ VS 2017(4.3 のみ)
Zen.VisualStudio.DataTools_2017_2019.vsix:VS 2017 ~ VS 2019 の場合(4.4 のみ)
4
1
VS を起動し、[ツール]>[拡張機能と更新プログラム]を選択します。
2
インストールしたパッケージ、Pervasive DataTools を見つけます。
3
アンインストール]オプションをクリックし、VSIXInstaller ユーティリティ アンインストール ウィザードの指示に従います。
はじめに
ADO.NET 用の Zen データ プロバイダーで必要とされるファイルは、異なる方法で提供されます。
プロバイダー アセンブリ
データベース エンジンのインストールは、Zen のインストール先の Zen\bin フォルダー下のバージョンに応じたフォルダーに、すべてのプロバイダー アセンブリをコピーします。4.3 と 4.4 で個別のフォルダーが使用され、複数のバージョンの Entity Framework をサポートするよう、個別のサブフォルダーに Entity Framework プロバイダー アセンブリが格納されます。Membership Provider for ASP.NET 2.0 はこのレイアウトに当てはまらないため、これについては Membership Provider for ASP.NET 2.0 で説明します。
Zen データベース インストールがサポートされているバージョンの .NET Framework を検出した場合は、次の処理も発生します。
メモ:インスタンスは、.NET Framework の最終一般提供(GA)リリースに対してのみ、DbProviderFactories 名前空間に追加されます。システム上にインストールされている .NET Framewaork が Alpha、Beta や RC(Release Candidate:リリース候補)版のような、GA より前のリリースである場合、名前空間は更新されません
汎用プロバイダーのインスタンス(Pervasive.Data.SqlClient)は常に最新のプロバイダー アセンブリを指します。
Zen\bin フォルダーにコピーされたプロバイダー アセンブリは、インストール時にプリコンパイルされません。つまり、それらはローカル コンピューター上の Windows ネイティブ イメージ サービスに追加されません。プロバイダー アセンブリをプライベート サイド バイ サイド アセンブリとしてアプリケーションと一緒にインストールし、ターゲット システム上の Windows ネイティブ イメージ サービスに追加したい場合は、インストールにそれらを追加する必要があります。詳細については、Microsoft MSDN ライブラリで「ネイティブ イメージ ジェネレーター」トピックを参照してください。
異なるプロバイダーの参照
SDK のインストーラーはサンプル ソース コード ファイル、テンプレート、およびライブラリをインストールすることに加え、Zen ADO.NET データ プロバイダーのために次の統合を実行します。
Visual Studio の[ツール]メニュー オプション、[Pervasive]>[Pervasive Performance Tuning Wizard]を追加します。
Zen ADO.NET データ プロバイダーをインストール後に Visual Studio をインストールする場合
Zen ADO.NET SDK をインストール後に Visual Studio をインストールした場合は、前述の統合手順を再実行してください。
Logging Application Block の構成
Logging Application Block を正しく機能させるにはアプリケーションに次の行を含める必要があります。
ConfigurationManager.GetSection("Pervasive.Data.SqlClient.Entity");
設計の考慮点
以下の情報は、Zen ADO.NET データ プロバイダー(.NET Framework 用)で機能するアプリケーションの設計方法を決定するのに役立ちます。
Membership Provider for ASP.NET 2.0
ASP.NET ログイン コントロールは、カスタムの Zen メンバーシップ プロバイダーを使用して、ユーザー情報を格納するための個々のデータベースを指定します。
カスタム メンバーシップ プロバイダーの記述については、Microsoft MSDN ライブラリで追加情報が提供されています。メンバーシップ プロバイダーの場所については、アセンブリを参照してください。
ライブラリとサンプルに含まれるサンプルの ASP.NET アプリケーションは、ユーザーの作成、パスワードの変更、パスワードの回復、およびユーザーの検証を行う方法を示しています。
アセンブリ
PSQL.Membership.Provider.dll という名前の Zen メンバーシップ プロバイダー アセンブリは、デフォルトでは Zen データベースと一緒にインストールされません。このプロバイダー アセンブリは、Zen ADO.NET SDK に含まれています。Zen ADO.NET SDK の場合、メンバーシップ プロバイダーは同じフォルダーの場所(samples\MembershipProvider\bin)の .zip アーカイブに格納されます。
メンバーシップ プロバイダー要件
1
2
Users テーブルの SQL スクリプトを使用してテーブルを作成します。
3
ここまでの手順を完了すると、ASP.NET のログイン コントロールは Zen メンバーシップ プロバイダーを使用できるようになります。
Users テーブルの SQL スクリプト
CREATE TABLE Users
(
 PKID UniqueIdentifier NOT NULL PRIMARY KEY,
  Username Char (255) NOT NULL,
  ApplicationName char (255) NOT NULL,
  Email Char (128) NOT NULL,
  Comment Char (255),
  "Password" Char (128) NOT NULL,
  PasswordQuestion Char (255),
  PasswordAnswer Char (255),
  IsApproved SmallInt,
  LastActivityDate DateTime,
  LastLoginDate DateTime,
  LastPasswordChangedDate DateTime,
  CreationDate DateTime,
  IsOnLine SmallInt,
  IsLockedOut SmallInt,
  LastLockedOutDate DateTime,
  FailedPasswordAttemptCount Integer,
  FailedPasswordAttemptWindowStart DateTime,
  FailedPasswordAnswerAttemptCount Integer,
  FailedPasswordAnswerAttemptWindowStart DateTime
)
web.config ファイルの修正例
<connectionStrings>
<add name="PsqlServices" connectionString="ServerDSN=ASPNETPSQL;" /> </connectionStrings> <system.web>
<membership defaultProvider="PsqlMembershipProvider" userIsOnlineTimeWindow="120">
<providers>
<clear />
<add
name="PsqlMembershipProvider"
type="PSQL.Membership.PsqlMembershipProvider"
connectionStringName="PsqlServices"
enablePasswordRetrieval="true"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
writeExceptionsToEventLog="true"
debug="false"
passwordFormat="Clear"/>
</providers>
</membership>
</system.web>
IPv6 環境
Zen ADO.NET データ プロバイダー(.NET Framework 用)は、IPv6 環境(IPv4/IPv6 混在または IPv6 のみ)をサポートしています。
ドキュメント
.NET アプリケーションの開発方法の詳細については、Zen 開発者ドキュメントの『Zen Data Provider for .NET Guide』および『Zen Programmer's Guide』を参照してください。
サンプル
以下の表は ADO.NET データ プロバイダー(.NET Framework 用)で提供されるサンプルの要約です。デフォルトでは、SDK インストーラーは、ProgramData\Actian\Zen フォルダー内のバージョン別のフォルダーにサンプル ファイルをコピーします。注意:アプリケーション データの場所はオペレーティング システムによって異なります。『Getting Started with Zen』の「 ファイルはどこにインストールされますか?」を参照してください。
 
既知の問題と使用に関する注意
修正履歴および既知の問題については、弊社 Web サイトで参照できます。
Zen ADO.NET SDK と Visual Studio の統合に VSIX パッケージを使用する場合は、パッケージに署名した認証機関の証明書を検証するために、インターネット接続が必要です。
Visual Studio 2017 に .NET デスクトップ開発ワークロードがインストールされていない場合に、Zen ADO.NET Provider Data Tools を統合すると、[ツール]>[Pervasive]メニューから[Run Pervasive Performance Tuning Wizard](Pervasive パフォーマンス チューニング ウィザードの実行)オプションを選択したときに、このエラー メッセージが表示されます。この問題を解決するには、Visual Studio 2017 のインストールを再実行し、インストール対象として .NET デスクトップ開発ワークロードを選択したうえで、Zen ADO.NET Provider Data Tools を統合する PowerShell スクリプトを再実行するか、VSIX パッケージを再インストールします。
Entity Framework アプリケーションの使用中に、同じデータベースに対して Microsoft ADO.NET Entity Framework v5.0(EF5)から v6.0(EF6)にアップグレードすると、Code First のワークフローで問題が発生する場合があります。このような場合には、NotSupported 例外が返されます。この例外を解決するには、__MigrationHistory テーブルを削除し、アプリケーションを再実行します。
Code First Migrations(Code First マイグレーション)のワークフローでは、ストアド プロシージャのマッピングを有効にして Enable-Migration(マイグレーションの有効化)コマンドを実行すると、[設定]フォルダーに <タイムスタンプ>_InitialCreate.cs ファイルが作成されますが、このファイルによってビルド エラーが発生します。
この問題を解決するには、<タイムスタンプ>_InitialCreate.cs ファイルを削除します。このファイルを削除しても、データの損失につながったり、データのマイグレーションに影響したりしません。
バックエンドのデータが含まれるテーブルに対して Code First Migrations(Code First マイグレーション)を実行すると、"ファイルがロックされています" というエラーが返されます。その理由は、Entity Framework の Code First Migrations(Code First マイグレーション)ではすべてのクエリがローカル トランザクション(通常、Alter コマンド)内で実行されるためです。ところが、この動作は Zen ではサポートされていません。
2 つ以上の Entity Framework アプリケーションが、少なくとも 1 つのコンテキストに "Create Database If Not Exist" 以外のセット初期化子が含まれる同じデータベースに接続しようとすると、データが失われる可能性があります。この問題を解決するには、カスタマイズ可能なマイグレーション履歴機能を使用し、新しいマイグレーション履歴テーブルにバックエンドの既存テーブルと異なる名前を付けます。
__MigrationHistory テーブルの名前を変更する際は、主キー HistroyContext の長さを Zen で許容される最大長 254 バイト以内に必ず収めてください。
Code First Migrations(Code First マイグレーション)では、カスタマイズ可能なマイグレーション履歴テーブルのデフォルトの主キー列のサイズを変更する際、Zen サーバーで設定されている最大許容主キー長を超えてはなりません。超えると、デフォルト長の値が以下のように設定されます。
Unicode が有効になっている場合、各長さは次のようになります。
Unicode が無効なっている場合、各長さは次のようになります。
Code First モデルでは、マイグレーション履歴テーブルの名前を変更すると、DropCreateDatabaseIfModelChanges または DropCreateDatabaseAlways セット初期化子を使用する際に、問題が発生する可能性があります。
Progress では、マイグレーション履歴テーブルの名前を変更することをお勧めします。
カスタマイズ可能なマイグレーション履歴テーブルに新しい列を追加した後では、サード パーティ制限のため、どの列のサイズも変更することはできません。
複数の列を追加/削除したり、関係のあるコンテキストを持つ 1 つまたは複数の列を 1 回のマイグレーションで変更したりすると、Btrieve エラー 88 が発生します。これは Zen にとって既知の問題です。
Lightswitch により、Zen の DATE 型の列に対して DateTime コントロールがロードされます。つまり、Lightswitch アプリケーションで使用する DATE 型の列をテーブルにロードすると、Lightswitch により、そのような列に対して DateTime コントロールがロードされます。TIME 型の値は格納できないため、DATE 型フィールドに入力された時刻は保存されず、Lightswitch アプリケーションにより時刻部分が 00:00 にリセットされます。これを回避するには、Lightswitch Designer における DATE 型の列の Lightswitch マッピングを DateTime から Date に変更します。
Entity Framework プロバイダーでは、UniqueIdentifier 型のマッピングはサポートされていません。エンティティ データ モデルを生成する際、UniqueIdentifier 型の列が含まれるテーブルを選択すると、"UniqueIdentifier data type is not supported(UniqueIdentifier データ型はサポートされていません)" というエラーが返されます。このようなテーブルは、エンティティ モデルにインポートすることはできるものの、UniqueIdentifier 型の列なしでインポートされます。UniqueIdentifier 型の列でヌル値が許可される場合には、このようなテーブルを Entity Framework アプリケーションで使用し続けることができます。
Zen ADO.NET データ プロバイダー 4.3 および 4.4(.NET Framework 用)は、GA バージョンや、任意のパッチまたはサービス パックを適用したバージョンなど、以前にリリースされたバージョンのデータ プロバイダーと同じマシン上に共存することができます。ただし、同じディレクトリにインストールすることはできません。
インストールした ADO.NET データ プロバイダーが perfmon の[パフォーマンス オブジェクト]リストに表示されない場合は、次の操作を行います。
これで、当該リストに ADO.NET データ プロバイダーが表示されるようになります。
Logging Application Block を正しく機能させるにはアプリケーションに次の行を含める必要があります。
ConfigurationManager.GetSection("Pervasive.Data.SqlClient.Entity");
Zen ADO.NET データ プロバイダー(.NET Framework 用)がインストールされているコンピューターに Visual Studio を初めてインストールするには、Visual Studio Integration Tool(Visual Studio 統合ツール)を使用する必要があります。
コマンド プロンプトで、Tools フォルダーにある InstallProviderIntegration.cmd スクリプトを実行します。Pervasive.Data.SqlClient.dll のインストール ディレクトリを指定します。
コマンド プロンプトで、Tools フォルダーにある UninstallProviderIntegration.cmd スクリプトを実行します。
免責事項
ACTIAN CORPORATION は、本ソフトウェアおよびドキュメントの使用を、利用者またはその会社に対して「現状のまま」で、かつ同梱の使用許諾契約書に記載の契約条件によってのみ許諾するものです。
Copyright © 2020 Actian Corporation. All Rights Reserved.