8

私は小さなプロジェクト計画を作成していて、使用するローカルデータベースシステムを決定する必要があることになりました。

入力データはウェブサーバー(ホスティング-MySQL DB)に保存されます。アイデアは、必要なすべてのデータをダウンロードして(たとえば、深夜に)処理するプロセスを構築することです。ただし、多くの入力と処理の段階があるため、アプリケーションの半製品を格納するために、ある種のローカルデータベースを使用する必要があります

C#(.NET)アプリケーションでの作業に推奨するローカルデータベースシステムはどれですか?

編集:最終製品(情報)は、ホスティングMySQLDBに簡単にエクスポートして戻す必要があります。

彼の答えで述べたように-はい、私はパフォーマンスと使いやすさを求めています。

4

12 に答える 12

13

Microsoft Sql 2005 Expressは、.NETで開発するときに(ほぼ)当然の選択となるため、言いたいと思います。

しかし、それはすべてあなたが持っている以前のデータベーススキルに依存します。MySqlを既に知っていて、すでに述べたように、データをMySqlにエクスポートして戻す必要があります。MySqlをずっと使ってみませんか?

于 2008-10-06T12:28:40.733 に答える
8

迅速で汚い場合は、SQL ServerCompactEditionを使用します。 Sql Serverのインプロセス実装であるため、他のアプリケーションをインストールする必要はありません。

昔は、この種のことにはAccessデータベースを使用していました。しかし、Accessデータベースはちょっと打撃です。

完成したデータを本番サーバーにアップロードするのにそれほど時間はかかりません。そのプロセスを自動化するソリューションを探している場合は、MySqlのインスタンスをローカルでホストし、それが提供するレプリケーションサービスを使用する必要があります。

于 2008-10-06T12:30:08.703 に答える
2

私は、SQL ServerCompactEditionを使用すると言います。これは、本格的なバージョンのSQL Serverと非常によく似ており、VS2008には、テーブルの設計、クエリなどのサポートが組み込まれています(Management Studio 2008でもサポートされています)。最大の欠点は、ストアドプロシージャを失うことですが、ローカルユーザーのマシンに何もインストールする必要がなく、データの選択に非常に高速に機能するため、利点は素晴らしいです。さらにクールなのは、SQL Metalを使用すると、SQL Serverの場合と同じように、DBMLファイルを作成してLINQを使用できることです。

于 2008-10-06T13:01:53.100 に答える
1

db4oを使ってみませんか?これは、アプリケーションに埋め込むことができるOODBです。レプリケーションもサポートします。編集:補足として-db4oを使用している現在のペットプロジェクトには、次の行があります(C#3.5):

IList<Users> list = Persistence.Database.Query<Users>(u => u.Name == "Admin");

強い型のラムダ式を使用して、データベースからオブジェクトの(遅延)リストを取得します。また、インデックスを使用してリストをすばやく取得します。

于 2008-10-06T12:49:32.110 に答える
0

これはすでに答えられているので。CLR言語を使用する場合、CLR / .NET Framework統合により、MS SQLServer2005/2008が他の言語とは一線を画しています。ここからの抜粋に続きます。

By using languages such as Visual Basic .NET and C#, you can capitalize on CLR integration to write code that has more complex logic and is more suited for computation tasks. Additionally, Visual Basic .NET and C# offer object-oriented capabilities such as encapsulation, inheritance, and polymorphism. You can easily organize related code into classes and namespaces, which means that you can more easily organize and maintain your code investments when you are working with large amounts of code. The ability to logically and physically organize code into assemblies and namespaces is a huge benefit that enables you to better find and relate different pieces of code in a large database implementation.

于 2008-10-06T15:01:49.863 に答える
0

MS SQL Serverのサポートは、他のドライバーやセットアップを必要とせずに、すぐに使用できます。また、MS SQLServerExpressは無料です。

MySQLとの間でデータをエクスポートするスクリプトを生成できます。

于 2008-10-06T12:23:25.720 に答える
0

「明らかな」選択は、MS SQLServerExpressです。VSと.netはどちらもネイティブにサポートしており、(メインDBの場合は)すでに使用したことがある場合は、それ(またはそのエクスプレスバージョン)を使い続けたいと思うでしょう。

しかし、それは確かにあなたの選択肢の終わりではありません。私はクロスプラットフォームアプリケーションやWebアプリにSQLiteをよく使用しています。目を見張るほど高速で、 System.Data.SQLiteを介してかなりうまく統合されますが、MSSQLServerほど緊密​​ではありません。

SQLiteと非常によく比較できるSQLServerのコンパクト版もあります。

于 2008-10-06T12:32:10.290 に答える
0

MySQLと完全に構文および型互換性のある優れたインプロセスデータベースを知りません。それを念頭に置いて、3つのオプションがあります。

  1. SQLlite、Access、SQLServerCompactなどを選択します。問題は、それらのいずれかを使用して複雑な変換ロジックを記述し、すべてのクエリを2回記述しなければならないことです。
  2. MySQLをローカルにインストールします。次に、ローカルシステムで完全なデータベースサーバーを実行することに我慢する必要があります。あなたは間違いなくあなたが顧客に出荷するもののためにこれを避けたいです、しかしあなた自身の使用のためにそれは大丈夫かもしれません。幸い、MySQLは他の最新のデータベースサーバーほど多くのリソースを使用しませんが、それでも理想的とは言えません。
  3. サーバーでSQLServerExpressエディションに切り替え、クライアントでSQLServerCompactを使用します。MySQLと同じくらい安いです(商用目的でMySQLを購入することになっているので、おそらくもっと安いでしょう)。クライアント側でC#を使用していることを考えると、サーバー側でもASP.Netで使用することをお勧めします。また、ASP.Netサーバー側を使用している場合は、SQLServerExpressを提供するホストを見つけるのは難しくありません。これで、データベースはタイプ互換になり、クライアント用に作成したクエリはすべてサーバーでも機能することが保証されます。

MSデータベーススタック(アクセスを除く)の大きな強みの1つであるIMOは、デスクトップからマルチデータセンタークラスターに至るまで、何をしていても互換性のあるソリューションを備えていることです。アプリの規模が変更された場合、または2つの異なるクラスのアプリ間でデータを送信する必要がある場合は、データベースレイヤーが処理されます。

于 2008-10-06T12:59:09.407 に答える
0

利用可能なものをすべて選択しますが、インターフェースに対してのみコーディングします。そうすれば、インターフェースを簡単に切り替えることができます。

本番環境では、大規模プロジェクトの場合はMS SQL(または中級レベルの場合はExpress)のどちらかと言えます。これは、小規模プロジェクトの場合はVSおよびSqliteと緊密に統合されているためです。

説明を考えると、Sqliteは最も単純で最もオーバーヘッドが少ないので、良い選択だと思います。

于 2008-10-06T13:39:52.447 に答える
0

ほとんどの人が言及しているようにSQL Server...私の理由は、ソース管理を使用してC#からデータベースにテストケースを統合できるからです....

Team Foundation (TFS) は、GUI を備えた Microsoft の 1 つです...

于 2008-10-06T14:39:14.463 に答える
0

私は最近いくつかのテストを行ってきましたが、SQL Server 2008 は新しく RTM されましたが、すぐに使用できるため、SQL Server 2005 (必要に応じて Express) もお勧めします。

于 2008-10-06T14:00:45.773 に答える
-1

あなたが説明したことについては、間違いなくMSSQLServerです。優れたパフォーマンス、優れたツール。無料。

于 2008-10-06T12:36:06.897 に答える