سؤال

نحن ندرس Microsoft DSL أدوات لخلق بعض مجردة المصممين.لقد فعلت بعض POCs, ولكن ترغب في الحصول على بعض الآراء على نفسه.

أي واحد هنا لتبادل الخبرات في العمل مع مايكروسوفت DSL أدوات و T4?أيضا, أي مؤشرات مفتوحة المصدر DSL المشاريع سوف تساعد - على سبيل المثال.خدمة Microsoft مصنع النمذجة طبعة بشكل كبير والاعتماد على DSL أدوات.

كما أوسلو/رباعي سوف يستغرق بعض الوقت للحصول على صدر أعتقد الخيار الوحيد لدينا هو أن تعتمد على Microsoft DSL مصمم.(انظر Kieth مدونة على نفس)

أيضا, هنا بعض المعلومات لدي بالفعل على DSL:

1 - لطيفة مختبر في MSDN على DSL

2 - قائمة من المشاريع في Codeplex باستخدام أدوات DSL

هل كانت مفيدة؟

المحلول

قمنا بعمل كبير مع DSLs ولها عدد منهم في منزل العميل على أساس استشاري استخدام, على الرغم من أنه ليس لي من فعل معظم العمل معهم.مرة واحدة كنت قد تسويتها النمذجة(ليس بالأمر الهين) أود أن أقول أن هذه هي أدوات عظيمة.

أنا لا يمكن أن نشير لكم في أي مشاريع مفتوحة المصدر unfortuanetly وأنا سوف أضيف أن الاستثمار في الحصول على غير تافهة DSL وتشغيلها مع كبيرة جدا ، ومع ذلك إذا كنت تحصل لهم الحق ثم زيادة الإنتاجية هو مثير للإعجاب.

تحرير - بعد بضع سنوات من الخبرة أنا الملاحظات التالية:

  1. VS DSLs سيئة الأداء البصري مخططات كبيرة ، تحتاج أضعاف نموذج عناصر بعيدا (إخفاء/إظهار)
  2. مخططات كبيرة مع العديد من ربط خطوط يصعب التنقل (تخطيطات الثابت)
  3. نماذج كبيرة تؤدي على نحو كاف على رمز gen إلخ ، مع الوقت المستغرق في الغالب على deserialisation (كما هو متوقع)
  4. نموذج المقارنة صعبة نظرا لوجود عدد كبير من Guid
  5. مطور جيدة التجربة تتطلب الكثير من التطوير على الخروج من مربع خصائص الحوارات.
  6. نماذج يمكن أن تكون مشفرة لحماية الملكية الفكرية ، وهذا يجعل المقارنة في وقت لاحق من الصعب للغاية (ولكن هذا ينطبق على جميع الملفات المشفرة.)

نصائح أخرى

ولقد بحثت في استخدام أدوات بصرية استوديو DSL. في نهاية المطاف، وجدت هذه الأدوات لتكون بعيدة إلى تشنجا. تتطلب واجهة المستخدم الرسومية، من دون أي قدرة على وصف بسهولة عبارة عن قواعد نصية الأساسي، يبدو فقط غير كافية بالنسبة لي. I تتطلب القدرة على استخدام بسهولة DSL بدون واجهة المستخدم الرسومية.

وأوسلو ويبدو أن تسير في اتجاه غريب جدا، وتخزين جميع البيانات الوصفية للDSL في DB SQL. يبدو أن مجرد غريبة بالنسبة لي، وبالتأكيد يمكن أن يبطئ الأمور، خاصة إذا كنت تريد التكامل IDE سريع. ومن المسلم به أنا لم ينظر بعمق في ذلك، لذلك قد يكون أفضل من انطباعي منه.

وبوصفها جانبا، ومؤخرا نفذت DSL باستخدام ANTLR . يمكنك العثور على منصبي ردا على سؤال حول SO حول هذا الموضوع <لأ href = "https://stackoverflow.com/questions/1109237/for-what-kind-of-problems-do-you-use-a- الدي اس ال / 1110167 # 1110167 "> هنا

وبالإضافة إلى ما سبق، فإن NORMA أداة لكائن بنيت -Role النمذجة على أدوات DSL. انها مثال متطورة جدا على ما يمكن القيام به معهم، ويوضح باستخدام XML يحول للتحول نموذج ورمز جيل.

وأنا بالتأكيد اخذ خطيرة. جعل إيف مؤخرا الدي اس ال لنموذج orderprocesses لorderingsystem. ونحن نستخدم windowsservice أن الذي يصل إلى خدمات ويب مختلفة على أساسها processtatus صف محدد لها ثم يغير وضع استنادا إلى نتائج (التالي، خطأ، الحرمان). وكان timeconsuming جدا لتعديل هذا الجدول ديسيبل يدويا، لذلك جعل اللغة ومولدات لرمز مزود.

لا بد لي من معرفة ما اذا كان سمح وأنا على الرد على أي رمز من المشروع لكنني الرد على هيكل DB حتى تتمكن من فهم لماذا؟ ق الصعب القيام تحرير ذلك يدويا. يجب أن أضع في البيانات ولكنها تعمل. 10 orderprocesses مع 5-20 الخطوات مع كل الإجراءات وكل شيء (ProcessActionId هو المنشأ لخدمة ويب).

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
)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top