タグ付けされた質問 「microsoft-access」

7
大規模なMS Accessアプリケーションを.Netに移行するためのベストプラクティスは?
最初は個人的なニーズに合わせて社内で開発された非常に巨大なMS Accessアプリケーションがあり、その後商用ソフトウェアに変換されて販売に成功しました。ソフトウェアは一種の「万能ソフトウェア」であり、ドキュメント管理システム、エンタープライズリソースプランニング、在庫管理、顧客関係管理、データ分析などのいくつかのモジュールが含まれています。アプリケーションの機能ですが、クライアントからのリクエストに応えるためには、新しいものに移行する必要があることに気付きます。 Visual Basic .Netに固執できるため、アプリケーションを徐々に.Netに移行することにしました。ここではほとんどの開発者にとって新しい言語ですが、VBAおよびVB6で実装された数十の小さなプロジェクトに関する深い知識があります。 すべてのデータ操作と検索がサーバー上で直接実行されるように、すでにアプリケーションのデータレイヤー機能をMS SQL Serverに移行し始めています。 私たちが探しているのは、拡張GUIを徐々に移動するためのベストプラクティスです(サブフォームを含む約500〜600の異なるフォーム、多言語サポートのある約200のレポートなど)。潜在的な顧客からDMSのドキュメントに非同期データ暗号化を実装するという最近の要求に従って、この部分をMS Accessから完全に切り離し、.Netで実装することもできます。 問題は、.Netアプリケーションを既存のMS Accessシステムとシームレスに統合し、特定のパラメーター(ユーザー権限など)で呼び出すことができ、このアプリケーションと実行中のMS Accessアプリケーション間のデータ交換を可能にする方法です。 編集: マーティンファウラーの著書「エンタープライズ統合パターン」にあるいくつかのプラクティスを適用して、MS Accessアプリケーションと、さまざまなニーズに合わせて.Netで実装したいくつかの小さなユーティリティを統合しようとしました。しかし、なんとか「共有データベース」パターンを使用することができただけであり、ソリューションに本当に満足していませんでした。 たとえば、POP3接続を使用してメールサーバーからすべてのメッセージを自動的にダウンロードして1つのテーブルに保存するWindowsサービスとして実行される小さなユーティリティを実装しましたが、すべての添付ファイルはファイルシステムに保存されます。 主に行ったのは、ADO.NETを使用してMDB形式のMS Accessデータベースに直接アクセスし、処理済みのデータ(上記の例のメールメッセージに関するデータなど:FROM、TO、CC、BCC、件名と本文)。 .NetのMDBデータ形式を使用してもまったく問題はありません。さらに、MDBにとどまり、ほとんどすべてをMS SQL Server 2008にアップサイズすることは望ましくありません。これにより、データ管理とスケーラビリティに関する自由度が高まります。 ここでの主な問題は、データの更新時に特定のVBAコードの実行をトリガーできるように、Accessで一種の「コールバック」を実装する方法がわからないことです。 データテーブルの更新および挿入トリガーをサポートする MS Access 2010には大きな期待がありましたが、これらのトリガーにはMS Accessマクロしか使用できず、トリガー内でカスタムVBAコードを実行する方法はありませんでした。 また、ユーザーが呼び出したデータの再クエリを模倣するために、キーストロークをMS Accessウィンドウに直接送信するソリューションもいくつか試しました。これは機能しますが、本番環境で使用できる現実的なソリューションであるとは考えていません。 MS AccessのDDEも検討しましたが、DDEコマンドを実装し、それらをインメモリデータおよびコマンド交換に使用する優れたサンプルソリューションは見つかりませんでした。 そのため、主な問題は、MS Accessと.Netアプリケーションを共存させて相互作用させることです。 EDIT2: .NetとMS Accessの間でメッセージを渡すためにVBAにMSMQライブラリを実装したことについて言及するのを忘れましたが、問題はここでもコールバックの欠如でした。マルチスレッド化は、本当に良い解決策ではありませんでした。

4
なぜMS Data Accessのストーリーがそんなに壊れているのですか?データアクセスの性質ですか、それともMSですか?
このStackOverflowの質問では、「Microsoft.Data.Objectsはどこで入手できますか」と尋ねられます。 答えは、おそらくEntity Framework 4のCTP4(コードファースト)リリースであることが判明しましたが、そこには多くの推測があります。含む System.Data エンティティフレームワーク Microsoft.ApplicationBlocks.Data Microsoft.Practices.EnterpriseLibrary.Data 10年前に誰かがDAO、RDO、ADOを入手した可能性があるために同様の質問をした場合。 これは単なる獣の性質なのか、それともMSなのか。 このパターンは他のベンダーでも発生しますか?基本データアクセス戦略はどこでラップまたは変更されますか?

5
Accessをデータベースとして使用することの欠点はありますか?
Microsoft Accessの複数のテーブルにデータを保存するアプリケーションを継承しました。Access DBはストレージにのみ使用され、すべてのデータ処理はアプリ(VB.net)によって処理されます。 これは良い習慣ですか?私は同様のアプリをゼロから構築する必要があり、「通常の」プラクティスが何であるかわかりません。 私はさまざまな形式で質問をグーグルで試し、多数の結果(このフォーラムの多くを含む)をチェックしましたが、すべての質問は、単にデータストレージに使用するのではなく、Access内でプログラミングしている場所に関連しているようです。 私はもっ​​と具体的になると思いますが、SQL Server Expressまたは同様のものがより良いオプションになると思います。 -あなたが原因類似した質問を有することに、この記事を読んでいる場合は、下に@DanielBによって提供されるこのリンクをチェックアウト/programming/694921/ms-access-mdb-concurrencyを
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.