نقل قول نوشته شده توسط kavehYn مشاهده تاپیک
سلام
از مطالبی که در این تاپیک ذکر کردید خیلی ممنونم ولی من دو سئوال دیگر دارم که اگر راهنمایی کنید من خیلی از ابهاماتم رفع میشه

1- فرض کنید درمورد همین فیلدهایی که مثال برای آنها طراحی شده ، میخواهیم کنترل کنیم که فیلد pName حتما مقدار داشته باشد . اینکار قطعا با یک دستور If انجام میشود .
فقط لطفا به من بگویید که محل قرار گیری این دستور در کجاست ؟ در Dal یا در BLL و در همان روال کلیک شدن برروی دکمه INsert ؟

2- تمام فرمها قبل از نمایش دادن نیاز به یکسری آماده سازی دارد . مثلا جعبه متنها باید پاک شود و اطلاعات مورد نیاز لیست باکسها باید از یک جدول خوانده شده و در داخل لیست باکس قرار داده شود .
.در یک معماری 3 سطحی چنین عملیاتی در کدام لایه اجرا میشود ؟ و توابعی که مثلا یک لیست باکس را مقداردهی میکند در کدام لایه قرار میگیرد ؟

خیلی از لطف شما ممنونم
1. این شرط باید در سه سطح Presentation Layer، Middle Layer و Data Layer تست بشه. منظورم از Data Layer بانک اطلاعاتی هستش. مثلا در بانک نباید این فیلد Nullable تعریف بشه. منظور از middle layer، همون Business Layer هستش که اونجا باید چک بشه که اگر مقدار نداشت، مثلا Exception مناسب throw بشه. اما این چک کردن باید در سطح Client هم رخ بده، تا اگر مقدار وارد شده توسط User، معتبر نبود، اصلا هیچ فراخوانی به Business Layer صورت نگیره.

2.تو یه معماری سه لایه، که بر اساس Office Automation Model طراحی شده باشه، همه اطلاعات از Business Layer بصورت Entity های مرتبط با هم گرفته شده و در Model ذخیره میشن. بعد Model، رویداد مثلا ModelChanged رو صادر میکنه و Form مورد نظر که قبلا خودش رو برای گرفتن Event های Model، ثبت کرده بوده، به محض گرفتن این event عمل مورد نظر خودش رو انجام میده که در این مورد، Refresh شدن محتویات ComboBox هستش.