Microsoft Visual Studio SDK DSLツールなテイ?
-
21-08-2019 - |
質問
を考えていますMicrosoft DSLフトウェアを抽象的なデザイナー。いかなかったPOCsが、いい意見も同じです。
いずここで得た経験を活Microsoft DSLツールキットT4?また、任意のポインタをオープンソースのDSLプロジェクト-Eg.Microsoftサービス工場のモデリング版が大きく依存しDSLいます。
としてオスロ/象限までには時間がかかり、いいなMicrosoft DSLデザイナー。(見Kiethのブログを同じ)
また、ここではいくつかの情報を既に持っているDSL:
解決
して相当のDSLsというストに基づくコンサルタントの使用でもない人もで動作します。きゃのモデリング(小feat)というから。
できない点までオープンソースのソフトウェアunfortuanetlyますが、追加投資に非自明なDSL実とはかなり大きく、しかし場合においてそれでは、生産性の向上が印象的です。
編集後数年の経験をいかして、以下の観測:
- に対DSLsいヴィジュアル-パフォーマンスを大きな図が必要倍、モデル要素の離(hide/show)
- 大きな図表を多くの連系線のハードターミナルのレイアウトハード)
- 大規模なモデルを適切にコントゲンなどの時間を中心deserialisation(予定)
- モデルとの比較は困難で多数の特別な技術を必要と
- 良い開発経験が必要な開発のスク特性のダイアログ.
- モデルを暗号化することができるIPの保護のため、比較降極めて困難だがこれは全て暗号化されたファイルなど)
他のヒント
私は、Visual StudioのDSLツールキットの使用を見てきました。最終的に、私はこれらのツールは、収縮に遠くであることが判明しました。 GUIを必要とするために、簡単に基礎となるテキストの文法を記述するための任意の能力なしに、ただ私には不十分なようです。私は簡単にGUIなしでDSLを使用する能力を必要とします。
オスロは、SQL DBにおけるDSLのすべてのメタデータを格納し、非常に奇妙な方向に行くことのようです。それはちょうど私には無関係のようで、確かにあなたが速いIDEとの統合をしたい場合は特に、物事を遅くすることができます。確かに私はそれに深く見ていないので、それはそれの私の印象よりも良いかもしれません。
余談として、私は最近、 ANTLRするを使用してDSLを実装しました。あなたはそれについてのSO <のhref = "https://stackoverflow.com/questions/1109237/for-what-kind-of-problems-do-you-use-a-上の質問への応答としての私の記事を見つけることができますここを
DSL / 1110167#1110167" >上記に加えて、 NORMA のツール-Roleモデルは、DSLツール上に構築されています。それは彼らと何ができるかの非常に洗練された例だと、XMLはモデル変換とコード生成のために変換し使用する方法を示しています。
- 私の深刻な係。アイブ氏は最近、orderingsystemためorderprocessesをモデル化するために、DSLを作りました。我々は、それが結果(次に、エラー、拒否)に基づいてステータスを特定の行をprocesstatus有するに基づいて、異なるWebサービスに接続し、変更Windowsサービスを使用します。手動でDBテーブルを編集することは非常にtimeconsumingだったので、私はSQLコードのための言語および発電機を作っています。
it'sハード手動で編集を行う理由を理解することができますので、 - 私はプロジェクトから任意のコードを投稿することができますが、私はDBの構造を投稿する場合は、私は確認する必要があります。私はおよそ10mlの液体フッ化水素を圧入用のデータに配置する必要があります。 5-20と10 orderprocessesはアクションと、すべて(ProcessActionIdがWebサービスへのrefrenceである)との各ステップ。
CREATE TABLE [dbo].[OrderProcessStep](
[OrderProcessCode] [int] NOT NULL,
[PreviousProcessStatusCode] [int] NOT NULL,
[NextProcessStatusCode] [int] NULL,
[DenialProcessStatusCode] [int] NULL,
[ErrorProcessStatusCode] [int] NULL,
[ProcessActionId] [int] NULL,
[StepComment] [varchar](500) NOT NULL,
[SecondsToNext] [int] NULL,
[SecondsToError] [int] NULL,
[SecondsToDenial] [int] NULL,
CONSTRAINT [PK_OrderProcess] PRIMARY KEY CLUSTERED
(
[OrderProcessCode] ASC,
[PreviousProcessStatusCode] ASC
)