レガシーコードを使用せずに、新しいプロジェクトを開始する準備が整いました。過去にSubsonicを使用しましたが、かなり満足しています。しかし、それはLinqの前でした。
誰かがこれと同じ問題(Linq x Subsonic)に直面する必要がありましたか?
あなたの決断は何でしたか?理由は何でしたか?
どんな洞察もありがたいです。
レガシーコードを使用せずに、新しいプロジェクトを開始する準備が整いました。過去にSubsonicを使用しましたが、かなり満足しています。しかし、それはLinqの前でした。
誰かがこれと同じ問題(Linq x Subsonic)に直面する必要がありましたか?
あなたの決断は何でしたか?理由は何でしたか?
どんな洞察もありがたいです。
サブソニック
長所:
短所:
次の点に注意してください。
Linq から SQL へ
長所:
短所:
次の点に注意してください。
ADO.NET Entity Frameworkとhereも評価してください。
私が LINQ で気に入っていることの 1 つは、SubSonic が適切に処理しているとは思わない点ですが、結合が自動的に処理されることです。
FROM a in db.Orders
where a.Total > 100
SELECT new {a.Item.Desc, a.Customer.Name};
このようなSQLを自動的に生成しますL
select i.DESC, c.NAME
from ORDERS o
inner join ITEMS on o.ItemID = i.ItemID
inner join CUSTOMERS c on o.CustomerID = c.CUSTOMERID
where o.TOTAL > 100
フレームワークに組み込まれているため、Linqを使用しました。Microsoftではサポートされないと言っている人のために...段階的に廃止されるのはLinqToSqlです。計画の1つは、それをEntityFrameworkに吸収することだと思います。
現在、EntityFrameworkを使用しています。また、linqを使用します。基本的には、linqToSqlとまったく同じですが、使用することを選択した場合は、柔軟性とパワーが向上します。
サードパーティのフレームワークやオームは、最終的には消滅するため、避ける傾向があります。彼らの人生は、どれだけの人がそれに興味を持って使っているかによって生まれるので、彼らは死ぬ可能性が高いと思います。彼らの人生はまた、その主な作者/寄稿者に大きく依存しています。
私の経験は SubSonic が主でした。デプロイは非常に簡単で、DAL は 30 分以内に完了します。実用性を重視して設計されたスイス アーミー ナイフであることにご注意ください。基本的に、テーブルごとに生成されたクラスと、コレクションの遅延読み込みを実行する機能を取得します。フレームワークを介してストアド プロシージャを実行することもできるため、複雑なデータ構造がある場合は、データベースからそれらをフェッチして、手作りのクラスを更新できます。
現在、5 つの主要なプロジェクトで使用しており、すぐに依存するようになったことに感銘を受けています。
NHibernate はどうですか?それは本当に新しいプロジェクトには当てはまらないのでしょうか? それでも、Java から来た人にはなじみがあり、.NET 2.0 や Mono でも使用できます。
MS が LINQ to SQ L の開発を停止した場合に何が起こるかを調べる必要があるかもしれません。SubSonics の最新バージョンは、以前のバージョンよりもクエリを作成しやすく、読みやすくなっています。
私も同じ状況でした。LinQ はより「視覚的」であり、vstudio 内ですべてを行います。Rob でさえ、サブソニックにはそれに匹敵するものがいくつかあることを認めています。
IEnumerable、LINQDatasource (自動ページング付き)、およびビジュアル モデリングにより、Subsonic ではなく Linq を選択することにしました。
linq to sql の最大のリスクは、Microsoft がそれに飽きて放棄することです。これはすでに発生しており、エンティティ フレームワークのみが更新されるという憶測が多数あります。Subsonic はこの問題に悩まされることはありません。最悪の場合、ソース コードを編集する必要があります。