2

ちょっとした夜のプロジェクトでは、.NETアプリケーションで使用できる検証コンポーネントを作成して、オブジェクト、入力パラメーター、および投稿条件の通常の面倒な検証を実行したいと思います。

私の最初のアイデアは、このすべての検証セットアップロジックをXML構成ファイルにダンプし、それをコードに入れたい人々に流動的なインターフェイスを提供することでした。

実際に使えるものを届けたいので、専用のDSL(ドメイン固有言語)を提供することを考えました。問題は、これを行うためにどのツールを使用する必要があるかということです。

正規表現を使って手作業で解析することを考えました。でも個人的にはもっと…使えるものが欲しいです。

それで、あなたは何を提案しますか?

4

8 に答える 8

5

.Net 4.0 の機能の 1 つであるコード コントラクトの実装について話しているようです。

したがって、私の推奨ツールは VS.Net 2010 になると思います。

于 2009-09-16T21:56:47.330 に答える
1

特に DSL を検討している場合は、ANTLRプロジェクトを参照してください。私たちは過去に私の会社でそれをうまく使ってきました。

于 2009-09-17T04:15:36.923 に答える
0

Visual Studio 用の DSL ツールを試すことができます。

于 2009-10-07T17:30:23.573 に答える
0

なぜそこまで行く?ジェネリックと流暢なインターフェイスを使用して開始します。簡単に始めて、いくつかの生産を通してそれを処理します。流暢なインターフェースを扱うのに摩擦が大きすぎる場合は、DSL の使用を検討してください。

于 2009-09-30T15:23:15.967 に答える
0

Microsoft のOsloを見てみましょう。それが希望どおりに機能するかどうかはわかりませんが、DSL パーサーを構築して文法を指定し、文法に基づいてデータを解析できるクラス ライブラリを生成できることはわかっています。

「M」言語の詳細と使い方はこちら

于 2009-09-30T07:00:29.760 に答える
0

http://irony.codeplex.com/の Irony プロジェクトを参照してください。

于 2013-05-23T16:34:54.150 に答える
0

DSl の問題は、それらが単独で効果的であることはめったにないということです。実際のソフトウェアの作成に役立つようにするには、ホスト言語内に DSL を埋め込むことができる必要があります。たとえば、Linq の動作と単純な SQL を比較してください。もう 1 つの良い例は、VB の XML リテラル機能です。どちらも、汎用 PL で実際のコードを記述し、それをより単純な宣言型 DSL コードと織り交ぜることができます。

その結果、スタンドアロンの SQL や単純な XML エディターよりもはるかに強力なものになります。

残念ながら、これの欠点は、C# も VB もメタ プログラミング機能を提供しないことです。そのため、主流の .net 開発者がそれを行う唯一の方法は、独自の言語を構築することです。これが楽しみのためだけに行っていることである場合は、mono C# コンパイラを変更して、興味のある機能を言語に追加できる可能性があります。別の方法として、Ruby を試すこともできます。それは柔軟な構文を持っているので、多くの狂気を逃れることができます. ただし、個人的には、ハッキングされた C# アプローチを好みます。

于 2009-09-30T04:11:03.087 に答える
0

Building Domain Specific Languages in Boo (Boo は CLR 言語であり、概念は C# に継承する必要があります) を参照してください。サンプル プロジェクトはSimple State Machineです。

于 2009-09-30T04:13:58.537 に答える