7

Borland/Codegear/Embarcadero の移行中に Bold/Eco に何が起こったのかはわかりませんが、Delphi の新しいバージョンでは確実に見逃しています。近いフレームワークを知っている人はいますか?

そうでない場合は、近いライブラリとコンポーネントの組み合わせを提案できるかもしれません。

4

5 に答える 5

4

hcOPFは Delphi win32 用の唯一の真の ORM のようですが、まだそれに近づいていません。

Delphi win32(またはC#)のUMLモデリングなどにはModel Makerをお勧めします。

どちらのツールも Delphi 2010 をサポートしています。

--jeroen

于 2010-08-03T21:21:46.837 に答える
4

代替案は、Delphi win32 の OPF のリストです(それぞれの簡単な説明付き)。

私は Delphi に Bold しか使用したことがありません (そして今でも使用しています) が、機能セットの中で代替手段が近づくとは思えません。それが鍵だと思いますが、どの機能があなたにとって重要ですか? Bold が提供するすべてのものを必要としない場合は、代替手段の 1 つに落ち着くことができます。

または、引き続き Bold を使用することもできます。最新のリリースはDelphi 2006 の Bold であり、Embarcadero が最終的にそれをオープン ソース化するか、開発を継続することを願っています。Bold で何かをするというユーザーのプレッシャーは常にありますが、Embarcadero はそのプレッシャーにうまく対処しているようです。

于 2010-08-03T21:26:49.140 に答える
3

これは、今日の Delphi の大きな欠点の 1 つです。複雑なプロジェクトでは、古いTDatasetパラダイムだけでは十分ではありません。

Delphi 2010 で単純なアクティブ レコードを作成することは難しくありません。ただし、複雑なプロジェクトの場合、外部構成ファイルを含むデータマッパーが必要です。

Delphi (DORM aka Delphi Object Relational Mapper) 用の単純な Hibernate を作成しています。参加したい人はd [dot] teti at bitTime [dot] itにメールを送ってください。

例えば。以下はDORMの単体テストです

procedure TTestDORM.TestUpdate;
var
  p: TPersona;  //TPersona is a PODO "Plain Old Delphi Object" TObject descendat
  guid: string;
begin
  p := TPersona.Create;
  p.Nome := 'Daniele';
  p.Cognome := 'Teti';
  p.Eta := 30;
  p.DataDiNascita := EncodeDate(1979,11,04);
  Session.Save(p);  //DORM do an INSERT
  guid := p.guid;
  Session.Commit;
  Session.StartTransaction;
  p := Session.Load(TypeInfo(TPersona), guid) as TPersona; //DORM do a SELECT
  p.Nome := 'Peter';
  Session.Save(p); //DORM do an UPDATE
  Session.Commit;
  CheckEquals(1, Session.Count(TPersona));
  p := Session.Load(TypeInfo(TPersona), guid) as TPersona;  //DORM do a SELECT
  CheckEquals('Peter', p.Nome);
end;

誰か興味がありますか?

于 2010-08-04T14:13:53.693 に答える
2

TMS Aureliusと TMS Data Modelerで仕事ができると思います

ここに興味深いリンクがあります

于 2012-05-27T07:43:20.080 に答える
2

編集/更新の開始:

この回答が公開されて以来、特に真のドメイン駆動設計を実装するために必要なすべての機能を提供するために、フレームワークが大幅に強化されました。

  • ORM のデータベース不可知性 (SQLite3 だけでなく、MS SQL や Oracle を含む任意のデータベース) (Delphi Starter エディションであっても)。
  • InterfaceWCF に似たベースのサービス。
  • カーネル モードで動作する、非常に高速http.sysなイベント ドリブン HTTP サーバー。
  • AJAX クライアントと連携する準備ができました。
  • 多くの改善と修正;
  • 現在はSynopse mORMot Frameworkと呼ばれています。

Delphi のすべての利点、つまり、小さくて高速な実行可能ファイル、ランタイム/フレームワークが不要、すべてのソース コードが提供される (ブラック ボックス アプローチなし)、特定の OS や追加コストが不要です。

このブログ記事を参照して、 mORMotが、ドメイン駆動設計の実装に必要なすべてのブリックを提供するおそらく最初の Delphi フレームワークであることを確認してください。「従来の」Java または .Net 実装よりも軽量で高速なソリューションを使用します。

編集・更新終了

データベースの永続性に SQlite3 を使用して、ORM RESTful JSON ベースのフレームワークを開発しました。

もちろん、Bold や OPF ほど完全ではありませんが (UML も OCL もありません)、動作し、Delphi 2010 までの Delphi 7 でテストされています。

統合されたユーザー インターフェイスの生成と i18n、PDF へのレポートとエクスポート、クライアント/サーバー サービス、統合された単体テストなどの興味深い機能があります。データ転送に JSON を使用し、インプロセス通信、Windows GDI メッセージ、名前付きパイプ、または HTTP/1.1 で RESTful アーキテクチャを使用します。したがって、AJAX アプリケーションの開発に使用できます。

このフレームワークは、ソース コードからドキュメントを作成する SynProject ツールと適切に統合され、優れたグラフと完全なドキュメント トレーサビリティを備えています (このフレームワークで作成した医療ソフトウェアの IEC 62304 要件を満たすために使用されています)。つまり、UML はありませんが、ドキュメントと図は手元にあります。

ORM と Delphi に興味がある場合は、オープン ソースの冒険に参加してください。 http://blog.synopse.info/category/Open-Source-Projects/SQLite3-Framework

于 2010-08-03T22:49:56.080 に答える