سؤال

وأنا أميل إلى نخجل من إضافة خصائص إلى ASP.NET صفحات.فإنه لا يبدو وكأنه فكرة عظيمة بالنسبة لي.ولكن في الآونة الأخيرة لقد رأيت الممارسة المستخدمة في عينة قليلة التطبيقات.وقد نفوري من إضافة خصائص مخصصة إلى صفحة قد لا مبرر لها أو هو هذا "الأمر يتوقف" الوضع ؟

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

المحلول

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

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

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

نصائح أخرى

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

Asp.net لا يدعم منشئ القائمة على الحقن.هذا هو سيناريو واضح حيث كنت ترغب في استخدام asp.net خصائص (كما يمكنك استخدام الخاصية على أساس حقن).

تحديث 1:هنا هو سيناريو مماثل ولكن الضوابط - كيفية استخدام حقن التبعية مع ASP.NET نماذج ويب

تحديث 2: هو موافق على استخدامها للالتفاف viewstate أو سلسلة الاستعلام.وأود أن ننظر في الأمر بعناية على الرغم من أنك لا تريد الاعتداء codebehind.إذا كنت ترى كنت تستخدم واحدة من التفاف خصائص على codebehind الكثير من الأوقات ، ربما هناك الكثير من التعليمات البرمجية في codebehind.تبحث في هذا الجانب تأثير تجنب تكرار الصب/تحليل يمكن أن تكون مرتبطة إلى تلك الخصائص.

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

واحدة من أكبر استخدامات لدي للعقارات على صفحتي هو عندما التفاف قيمة حالة العرض:

protected string TaskName
{
    get { return (string)ViewState["TaskName"] ?? string.Empty; }
    set { ViewState["TaskName"] = value; }
}

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

وماذا سيكون سيئا؟ الخصائص هي حقا طرق فقط وأنا متأكد من أنك إضافة أساليب إلى صفحة في كل وقت.

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

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