در حال ارتباط با سرور...




لطفا نظرات و پيشنهادات خود را بمنظور ارتقاء کيفي هرچه بيشتر سايت با ما در ميان بگذاريد.

ویدیوها مقالات کتاب ها اخبار پرسش و پاسخ
برنامه‌های رومیزی مبتنی بر وب زبان های برنامه سازی پایگاه داده سیستم عامل شبکه 
تاریخ : 1391-4-1 08:49:39

 

Navigation  کتابخانه ایست که با خارج کردن منطق مربوط به عملیات CRUD از فایل های Code-behind باعث تسهیل امر تست و آزمایش ASP.NET WEB FORMS می گردد. Graham Mandick در مقاله ای با عنوان “Unit Testing in the Navigation…” به بررسی پاره ای از قابلیت ها و ویژگی های این کتابخانه می پردازد و همچنین چگونگی پیاده سازی Unit Test را شرح می دهد.

اما این کتابخانه چه کار می کند؟باید گفت Navigation این امکان را می دهد که:

·         بتوان کنترول ها را به متدهای کنترول ها  در کلاس های مجزا مقید نمود.

·         بتوان انقیاد Navigatiol داشت.

تمامی کدهای نشانه گذاری (mark-up) های موجود در داخل فایل Aspx شما، بعنوان مثال mark-up مربوط به انقیاد یک FormView به متد های کنترولر ، چیزی شبیه به کد زیر خواهد بود:

 

<asp:FormView ID="Question" runat="server"  DataSourceID="QuestionDataSource"  DefaultMode="Edit">
 <EditItemTemplate>
 </EditItemTemplate>
 </asp:FormView>  
 <asp:ObjectDataSource ID="QuestionDataSource" runat="server"  SelectMethod="GetQuestion" UpdateMethod="UpdateQuestion"  TypeName="Survey.SurveyController" DataObjectTypeName="Survey.Question"  />

در مثال بالا  متدهای GetQuestion و UpdateQuestion متدهای کنترولر هستند که در کلاسی با نام SurveyController پیاده سازی شده اند.آنها امکان دسترسی مستقیم به کنترل ها را ندارند اما داده ها از طریق Navigation Library به آنها ارسال می شوند. Survey.Question ویو مدلی  ( ViewModel )است که در این مثال مورد استفاده قرار گرفته است.

حال این سوال ممکن است مطرح شود که این کار چگونه باعث ساده شدن Unit Testing می گردد؟در جواب باید گفت که به این خاطر که اکنون منطق برنامه در یک کلاس POCO مجزا قرار دارد که هیچ رفتار خاص یک برنامه وب (wbe-specific behavior) در آن دیده نمی شود.این امر باعث می شود که عمل تست ساده تر شود.برای کسب اطلاعات  بیشتر می توانید مقاله ای با عنوان چگونگی انجام Unit Test در ASP.NET WEB FORMs بوسیله Navigation را مطالعه کنید.

 

منبع infoQ


hamedkh
5.8 k