سلام
متاسفانه به بعضی از مزایای مهم و جالب برنامه نویسی چند لایه اشاره نشد.

تصور کنید نرم‌افزار بزرگ و جامعی نوشتین. و می‌خواین این نرم‌افزار در ابعاد و حالت‌های مختلف قابل فروش باشه.
مهم‌ترین و کلیدی‌ترین بخش نرم‌افزار قسمت Business اون هست که تفاوت مهم رو بین نرم‌افزارهای هم رده ایجاد می‌کنه.
اما برای فروش باید به سطح نگهداری داده‌ها و واسط کاربر توجه ویژه‌ای بشه.
فرض کنید نرم‌افزار رو با دیتابیس Sql و WinForm نوشتین.
یه مشتری مهم میاد می‌گه من همین رو با Oracle و WPF می‌خوام.
یه مشتری دیگه هم ممکنه همین رو با MySql و تحت وب بخواد.
آیا باید تمام نرم‌افزار از نو نوشته بشه؟

تو برنامه نویسی چند لایه این امکان فراهم می‌شه که با تغییر لایه‌ها بتونیم یه نرم‌افزار رو در حالت‌های متفاوت ارائه بدیم.
برای لایه‌ی ‌UI کافیه یه پروژه‌ی جدید ایجاد کنیم و همون کارها رو توی WPF انجام بدیم. که بخش کوچکی از کل پروژه بازنویسی
می‌شه و به صورت هم‌زمان دو پروژه‌ی WinForm و WPF رو خواهیم داشت.

یک نکته‌ی دیگه تو تفاوت توانمندی‌های برنامه‌نویسان هست. یه نفر متخصص WinForm هست، یکی دیگه WPF و دیگری Web کار خوبی هست.
اما دلیل نمی‌شه که این افراد Business رو بتونن به خوبی پیاده کنن، پس تو پروژه‌های بزرگ می‌تونیم افراد متفاوتی رو با قابلیت‌های
خاص خودشون در جای مناسب به کار ببریم. و نیازی نیست که چند نفر با «تمام قابلیت‌ها» پیدا کنیم که هر کدوم بتونن تمام کارهای متفاوت
یک پروژه رو انجام بدن.

صبا صبوحی