سؤال

لمشروع يلة القليل أود أن أكتب عنصر المصادقة التي يمكن استخدامها في تطبيقات .NET لقيام التحقق المعتاد ومملة من وجوه، معلمات الإدخال والظروف آخر.

وكانت الفكرة الأولى بلادي لتفريغ كل هذا المنطق الإعداد التحقق في ملف XML configuation وتوفير واجهة السائلة للشعب التي ترغب في الحصول عليها في التعليمات البرمجية.

ولأن أود أن تقدم أي شيء التي يمكن استخدامها في الواقع فكرت في توفير DSL المتخصصة (المجال لغة معينة). والسؤال هو ما هي الأدوات التي يجب استخدامها للقيام بذلك؟

وفكرت في تحليل باليد باستخدام التعابير المنطقية. ولكن شخصيا أود أن يكون شيئا أكثر ... صالحة للاستعمال.

وهكذا ماذا تقترح؟

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

المحلول

إذا كنت تبحث على وجه التحديد في DSL، إلقاء نظرة على ANTLR المشروع. لقد استخدامه في الشركة التي أعمل بها بنجاح كبير في الماضي.

نصائح أخرى

وهذا يبدو وكأنه كنت تتحدث عن تنفيذ <وأ href = "http://blogs.msdn.com/bclteam/archive/2008/11/04/what-s-new-in-the-bcl-in الصافي-4-0-جوستين-فان-patten.aspx "يختلط =" noreferrer "> واحدة من الميزات صافي 4.0، وعقود كود .

ولذا أعتقد أن بلدي أداة أوصى أن يكون VS.NET 2010.

والشيء مع والدي اس ال هو أنها نادرا ما تكون فعالة في العزلة. أن تكون مفيدة لكتابة البرنامج الحقيقي، كنت حقا بحاجة إلى أن تكون قادرة على تضمين DSL داخل لغة المضيف. مقارنة، على سبيل المثال، فإن الطريقة ينق تعمل مقابل SQL فقط التوالي. مثال جيد آخر هو XML ميزة الحرفية في VB. كلا تمكنك من كتابة التعليمات البرمجية الحقيقي، في أغراض العامة PL ونسج منها مع أبسط كود DSL declaritive.

والنتيجة هي شيء أقوى بكثير من تقف وحدها SQL أو محرر XML بسيط.

والجانب السلبي لهذا، للأسف، هو أن لا C # VB ولا يقدم أي ميزات البرمجة الفوقية، وبالتالي فإن الطريقة الوحيدة للقيام بذلك نيابة المشروعات الإنمائية دوت التيار هو بناء لغتك. إذا كان هذا هو شيء تقومون به لمجرد التسلية قد تكون قادرا على تعديل أحادية C # مترجم لإضافة ميزات كنت مهتما إلى هذه اللغة. قد يكون بديل آخر لمحاولة روبي. أنه يحتوي على جملة مرونة حركتي دعونا تحصل بعيدا مع الكثير من crazyness. Personaly، ومع ذلك، أود أن تفضل C # نهج اختراق.

وقد ترغب في التحقق من المجال بناء لغات محددة في بو (بوو هي لغة CLR، يجب مفاهيم تحمل أكثر من C #). مشروع مثال على ذلك هو آلة الدولة بسيط .

ونلقي نظرة على أوسلو من Microsoft، ولست متأكدا إذا كان كذلك ما تريد، لكني أعرف أنه يمكنك بناء موزعي DSL وتحديد قواعد النحو، ويكون ذلك إنشاء مكتبات الفئة التي يمكن تحليل البيانات استنادا إلى القواعد.

ومزيد من التفاصيل عن اللغة "M" وكيفية استخدامه هي <وأ href = "http://msdn.microsoft.com/en-us/library/dd129519٪28VS.85٪29.aspx" يختلط = "نوفولو noreferrer"> هنا

لماذا تذهب حتى الآن؟ تبدأ باستخدام الأدوية واجهة بطلاقة. تبدأ بسيطة والعمل من خلال بعض الإنتاج. إذا كان الاحتكاك مرتفع جدا التعامل مع واجهة بطلاقة، ثم ننظر في استخدام DSL.

ويمكنك محاولة أدوات DSL لبرنامج Visual Studio.

ويجب أن ننظر في مشروع السخرية على http://irony.codeplex.com/

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top