.net - فوت - معنى كلمة عنوان بالانجليزي




ما هي تجربتك مع التخلي عن مففم للعمارة القائمة على وسركونترول القائم؟ (5)

قمنا ببناء تطبيق كبير على أساس مكتبة التطبيقات المركبة و مففم باستخدام عناصر التحكم إنفراجيستيكش .

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

BaseEditor.cs:

using System.Windows.Controls;

namespace App
{
    public class BaseEditor : UserControl
    {
        public string Title { get; set; }
        public BaseEditor()
        {
            Title = "This was defined in the Base Editor.";
            Loaded += new System.Windows.RoutedEventHandler(BaseEditor_Loaded);
        }

        void BaseEditor_Loaded(object sender, System.Windows.RoutedEventArgs e)
        {
            StackPanel sp = new StackPanel();
            TextBlock tb = new TextBlock();
            tb.Text = Title;
            sp.Children.Add(tb);
            this.Content = sp;
        }
    }
}

CustomerEditor.cs:

namespace App
{
    public class CustomerEditor : BaseEditor
    {
        public CustomerEditor()
        {
            Title = "This was overwritten by the CustomerEditor.";
        }
    }
}

Window1.cs.xaml:

<Window x:Class="App.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:App"
    Title="Window1" Height="300" Width="300">
    <Grid>
        <local:CustomerEditor/>
    </Grid>
</Window>

وبصرف النظر عن مسألة قابلية الاختبار وحقيقة أن هذا "يشعر القذرة" القيام وف مثل هذا، لقد شهدت فقط آثار إيجابية من هذا القرار، على سبيل المثال:

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

ھل کان لأي شخص آخر یقوم ب مففم في وف أن یشھد تجارب مماثلة؟ هل التقيت مع أي مشاكل حقيقية على المدى الطويل؟


حاولت هذا وانتهى الأمر بالعودة إلى مففم. كنت في نهاية المطاف مع نفس الفوضى التي ترمزها الحدث سباجيتي كنت انتهى دائما مع في نماذج ويندوز. إذا لم يكن لدي للقيام myLabel.Text = this.MyLabelText أخرى myLabel.Text = this.MyLabelText سأكون سعيدا.

لا تحصل لي خطأ - مففم من الصعب التمسك مع وعليك حقا أن تعرف وف لسحب تشغيله .

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


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

وأود أن نختلف باحترام (لا دونفوت) مع أندرسون إيمس على نقطة واحدة: أنا لا أجد مففم الصعب العصا مع؛ أجد أنه من السهل جدا. بالنسبة لي، هو أبسط والأكثر طبيعية النهج لتصميم تطبيقات وف. أنا استخدامه في إطار مركب وف (بريزم)، الذي يوفر إطارا قويا جدا لتقسيم التطبيقات المعقدة.

لقد كتبت مقالة كوديبروجيكت على تنفيذ مففم في التطبيق في العالم الحقيقي. نأمل، والناس مجرد الدخول في مففم تجد أنه من المفيد.


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

وعلاوة على ذلك كان من السهل جدا حقا لتغيير الضوابط تماما. في بعض الأماكن كنا قد استخدمت الضوابط الأساسية وف التي حلناها لاحقا مع الضوابط تيليريك والعكس بالعكس (كما هو الحال في بعض الأماكن لم نطلب ضوابط تيليك الثقيلة مثل غريدفيو). أستطيع أن أقول أنه إذا لزم الأمر يمكن أن يكون بسهولة استبدال جميع الضوابط تيليريك مع بعض الضوابط الطرف 3'rd أخرى أو الضوابط وف الأصلي بسهولة في أي وقت.

ولكن نعم، كان علينا تنفيذ بعض الحلول أثناء استخدام الضوابط تيليريك وكتابة بعض التعليمات البرمجية في كودبيهيند لحل بعض القضايا (البق في تيليريك). كل هذا الرمز كان منطق العرض بحتة.


يمكننا أن ترث لدينا غير زمل وسركونترولس من بعضها البعض

أنا لا أفهم. ماذا عن مففم يحول دون الميراث؟

ونحن نستخدم الكثير من التعليمات البرمجية وراء كما نريد الذي يسرع التنمية

رمز وراء ما يرام طالما أنها التعليمات البرمجية التي تعنى وجهة النظر. أي. لا منطق الأعمال التي تريد اختبار. فصل الشواغل وجميع.

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

إرفاق الضوابط إنراغستيك مباشرة إلى فئة نموذجنا القادمة من خدمة الإنترنت تطهير العشرات من المشاكل الملزمة قليلا كنا مع ملزمة إنفراجيستيكش إلى أوبسيرفابلكولكتيونس

الضوابط إنفراجيستيكش هي في غاية الفقر. هناك، قلت ذلك. إذا كان خيارا، فلا تستخدمه. إذا لم يكن خيارا (وكنت في هذا الموقف أيضا)، يمكنك عادة العمل حول العديد من القضايا مع السلوكيات المرفقة وغيرها من التقنيات. انها مشاحنات، نعم، ولكن لا ألوم مففم - إلقاء اللوم إنفراجيستيكش لإنتاج مجموعة السيطرة التي هي على خلاف ذلك مع منصة وف.

حتى في وف مباشرة، وعدم وجود أوبسيرفابلكولكتيونس تجعل مشاكل مثل عدم القدرة على إنشاء قائمة بسيطة تذهب بعيدا

أنا لا أفهم هذه النقطة على الإطلاق. ملاحظات هي جزء من وف، وليس مففم. وبعد أن قرأت سؤالك (مرة أخرى - أجبت على أنه لم يمض وقت طويل بعد تقديمه) أود أن أقول هذا هو مجرد سوء فهم لك كيف يعمل وف - لا علاقة لها مع مففم على الإطلاق.

نحن نستبدل إيفنتاغريغاتور واحدا تلو الآخر مع الأحداث المباشرة باستخدام وسيركونترولس ورمز وراء، والتي تطهر جميع أنواع المشاكل مع الأحداث

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

باختصار، هذا ليس كثيرا من قضية ضد مففم، ولكن أكثر عدم وجود فهم. أعتقد أنك السباحة المنبع وأوصي لك أن نلقي نظرة فاحصة على مففم. انها ليست رصاصة فضية أو نمط واحد يناسب الجميع، ولكن يمكن أن تساعد بالتأكيد خلق أساس رائع لتطبيقات وف / سي عند استخدامها بشكل صحيح.


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

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

قول "لا تفهم مففم" ليس حقا حجة ضد نهجه. النمط الذي هو أسهل لفهم هو أفضل من واحد ليس كذلك.







prism