SlideShare une entreprise Scribd logo
1  sur  7
Télécharger pour lire hors ligne
www.karimzadeh.org 1
‫چیست؟‬ ‫الیه‬ ‫سه‬ ‫معماری‬
Farhad Karimzadeh
‫در‬‫معماری‬‫سه‬‫الیه‬‫تمام‬‫برنامه‬‫به‬‫چندین‬‫بخش‬
‫تقسیم‬‫می‬‫شود‬.‫این‬‫بخش‬‫ها‬‫می‬‫توانند‬‫فیزیکی‬
‫یا‬‫منطقی‬‫باشند‬.‫هر‬‫بخش‬‫کار‬‫خاصی‬‫را‬‫انجام‬
‫می‬‫دهد‬‫مثال‬‫نمایش‬‫اینترفیس‬‫کاربر‬‫یا‬‫دسترسی‬
‫به‬‫داده‬‫ها‬.‫برنامه‬‫می‬‫تواند‬‫به‬‫هر‬‫تعداد‬‫الیه‬
‫داشته‬‫باشد‬‫ولی‬‫به‬‫هر‬‫حال‬‫بیشتر‬‫برنامه‬‫ها‬‫سه‬
‫الیه‬‫مجزا‬‫دارند‬‫که‬‫عبارتند‬‫از‬:
Presentation Layer
Business Logic Layer
Data Access Layer
www.karimzadeh.org 2
Farhad Karimzadeh
‫همان‬‫طور‬‫که‬‫احتماال‬‫حدس‬‫زده‬،‫اید‬‫الیه‬Presentation
‫چیزی‬‫نیست‬‫به‬‫جز‬‫بخشی‬‫از‬‫نرم‬‫افزار‬‫که‬‫با‬‫کاربر‬‫برنامه‬
‫شما‬‫ارتباط‬‫برقرار‬‫می‬‫کند‬(‫اینترفیس‬‫برنامه‬‫شماست‬)
‫نمایش‬‫داده‬‫ها‬‫به‬‫کاربر‬‫نهایی‬‫و‬‫اجازه‬‫به‬‫آنان‬‫برای‬‫ارتباط‬
‫داشتن‬‫با‬‫داده‬،‫ها‬‫اصلی‬‫ترین‬‫وظیفه‬‫این‬‫الیه‬‫است‬.
‫در‬‫بیشتر‬‫موارد‬‫داده‬‫هایی‬‫که‬‫توسط‬‫کاربر‬‫وارد‬‫می‬‫شوند‬‫نیاز‬
‫به‬‫اعتبارسنجی‬‫یا‬‫پردازش‬‫اضافی‬‫دارند‬.‫این‬‫مسوولیت‬‫الیه‬
Business Logic‫است‬.
‫در‬‫نهایت‬‫داده‬‫های‬‫برنامه‬‫شما‬‫نیاز‬‫به‬‫ذخیره‬‫و‬‫بازیابی‬‫از‬
‫طریق‬‫یک‬‫انبار‬‫داده‬‫دارند‬,‫مثال‬‫سیستم‬‫مدیریت‬‫دیتابیس‬
‫های‬‫رابطه‬‫ای‬‫یا‬RDBMS‫و‬‫یا‬XML‫این‬‫وظیفه‬‫توسط‬‫الیه‬
‫دسترسی‬‫به‬‫داده‬‫انجام‬‫می‬‫شود‬.
‫چیست؟‬ ‫الیه‬ ‫سه‬ ‫معماری‬
www.karimzadeh.org 3
Farhad Karimzadeh
‫به‬‫طور‬،‫خالصه‬‫فرآیند‬‫مورد‬‫نظر‬‫ما‬‫این‬‫گونه‬‫کار‬‫می‬‫کند‬:
•‫کاربر‬‫برای‬‫داده‬‫های‬‫برنامه‬‫درخواستی‬‫ارسال‬‫می‬‫کند‬.
•‫الیه‬Data Access‫داده‬‫های‬‫مورد‬‫نظر‬‫را‬‫بازیابی‬‫می‬‫کند‬‫و‬‫از‬‫طریق‬
‫الیه‬Business Logic‫آن‬‫ها‬‫را‬‫به‬‫الیه‬‫نمایش‬‫می‬‫فرستد‬.‫بعضی‬‫مواقع‬
‫الیه‬‫دسترسی‬‫به‬‫داده‬،‫ها‬‫این‬‫داده‬‫ها‬‫را‬‫مستقیما‬‫به‬‫الیه‬‫نمایش‬
‫ارسال‬‫می‬‫کند‬.
•‫الیه‬‫نمایش‬‫اطالعاتی‬‫که‬‫باید‬‫نمایش‬‫داده‬‫شوند‬‫را‬‫از‬‫طریق‬‫الیه‬
Business Logic‫دریافت‬‫می‬‫کند‬.
•‫کاربر‬‫داده‬‫ها‬‫را‬‫تغییر‬‫می‬‫دهد‬‫و‬‫عمل‬‫مناسب‬‫در‬‫مورد‬‫آن‬‫ها‬‫را‬‫اجرا‬
‫می‬‫کند‬(‫مثل‬‫اضافه‬‫یا‬‫به‬‫روز‬‫کردن‬‫داده‬‫ها‬)
•‫الیه‬Business Logic‫صحت‬‫داده‬‫های‬‫وارد‬‫شده‬‫توسط‬‫کاربر‬‫را‬
‫بررسی‬‫می‬‫کند‬(‫داده‬‫ها‬‫را‬‫اعتبار‬‫سنجی‬‫می‬‫کند‬)
•‫اگر‬‫داده‬‫ها‬‫معتبر‬‫باشند‬‫آن‬‫ها‬‫را‬‫برای‬‫به‬‫روز‬‫رسانی‬‫در‬‫بانک‬
‫اطالعاتی‬‫به‬‫دست‬‫الیه‬‫دسترسی‬‫به‬‫داده‬‫می‬‫سپارد‬.
‫چیست؟‬ ‫الیه‬ ‫سه‬ ‫معماری‬
4www.karimzadeh.org 4
Farhad Karimzadeh
‫برنامه‬‫ها‬‫به‬‫چند‬‫بخش‬‫منطقی‬‫جدا‬‫از‬‫هم‬‫تقسیم‬‫می‬‫شوند‬‫و‬‫اتصال‬‫میان‬
UI‫رابط‬،‫کاربری‬‫پردازش‬‫ها‬‫و‬‫بانک‬‫اطالعاتی‬‫کم‬‫می‬‫شود‬.
‫تغییر‬‫در‬‫بانک‬‫اطالعاتی‬‫یا‬‫روال‬‫های‬‫دسترسی‬‫به‬‫داده‬‫ها‬‫تاثیری‬‫در‬‫الیه‬
‫نمایش‬‫یا‬‫برنامه‬‫کالینت‬‫نخواهد‬‫گذاشت‬.
‫برنامه‬‫کالینت‬‫با‬‫عبارات‬SQL‫آمیخته‬‫نخواهد‬‫شد‬.
‫نام‬‫جداول‬‫و‬‫ستون‬‫ها‬‫به‬‫طور‬‫موثری‬‫از‬‫برنامه‬‫کالینت‬‫حذف‬‫می‬‫شوند‬.
‫برنامه‬‫کالینت‬‫نمی‬‫فهمد‬‫که‬‫داده‬‫ها‬‫از‬‫کجا‬‫آمده‬‫اند‬(‫چیزی‬‫که‬‫به‬‫آن‬
location transparency‫گفته‬‫می‬‫شود‬)
‫تغییر‬‫یا‬‫گسترش‬‫برنامه‬‫بسیار‬‫ساده‬‫تر‬‫خواهد‬،‫شد‬‫بدون‬‫نیاز‬‫به‬‫تغییر‬‫یا‬
‫کامپایل‬‫مجدد‬‫برنامه‬‫کالینت‬.
‫نکته‬‫منفی‬‫در‬‫معماری‬‫سه‬‫الیه‬‫این‬‫است‬‫که‬‫شما‬‫باید‬‫تعداد‬‫زیادی‬‫بخش‬
‫ها‬‫و‬‫کالس‬‫های‬‫از‬‫هم‬‫جدا‬‫در‬‫نرم‬‫افزار‬‫بسازید‬.‫اما‬‫به‬‫هر‬‫حال‬‫مزایای‬‫این‬
‫روش‬‫بیشتر‬‫و‬‫برتر‬‫از‬‫معایب‬‫آن‬‫است‬.
‫الیه‬ ‫چند‬ ‫های‬ ‫برنامه‬ ‫های‬ ‫مزیت‬
5www.karimzadeh.org 5
Farhad Karimzadeh
‫دو‬‫انتخاب‬‫اصلی‬‫برای‬‫ساخت‬‫یک‬‫الیه‬‫نمایش‬‫در‬‫دات‬‫نت‬‫وجود‬‫دارد‬.‫آنها‬‫فرم‬
‫های‬‫ویندوزی‬‫یا‬‫فرم‬‫های‬‫وبی‬ASP.NET‫هستند‬.
‫با‬‫استفاده‬‫از‬‫ویندوز‬‫فرم‬‫ها‬‫شما‬‫می‬‫توانید‬‫برنامه‬‫های‬‫دسکتاپ‬‫فرم‬‫محور‬
form base‫معمول‬‫را‬‫بسازید‬.‫برنامه‬‫های‬‫ویندوز‬‫فرمی‬‫می‬‫توانند‬‫المان‬‫های‬
‫رابط‬‫کاربری‬‫بسیار‬‫غنی‬‫به‬‫کاربر‬‫پیشنهاد‬‫کنند‬.‫آن‬‫ها‬‫کم‬‫و‬‫بیش‬‫شبیه‬‫به‬‫فرم‬
‫های‬‫ویژوال‬‫بیسیک‬‫هستند‬.
‫جذاب‬‫ترین‬‫گزینه‬‫برای‬‫توسعه‬‫الیه‬‫نمایش‬‫استفاده‬‫از‬‫وب‬‫فرم‬‫های‬ASP.NET
‫است‬.‫کنترل‬‫هایی‬‫مثل‬،‫دیتاگرید‬‫دیتالیست‬‫و‬‫تقویم‬Calendar‫یک‬‫رابط‬
‫کاربری‬‫قدرتمند‬‫را‬‫با‬‫مقدار‬‫کمی‬‫کد‬‫فراهم‬‫می‬‫کنند‬.
‫انتخاب‬‫هایی‬‫که‬‫در‬‫باال‬‫برای‬‫ساخت‬‫یک‬‫الیه‬‫نمایش‬‫بررسی‬‫کردیم‬‫می‬‫توانند‬
‫توسط‬‫زبان‬‫های‬‫مختلفی‬‫مثل‬‫سی‬‫شارپ‬‫یا‬‫ویژوال‬‫بیسیک‬‫دات‬‫نت‬‫پیاده‬
‫سازی‬‫شوند‬.
‫الیه‬ ‫های‬ ‫انتخاب‬Presentation
www.karimzadeh.org 6
‫الیه‬ ‫های‬ ‫انتخاب‬Business Logic
‫الیه‬Business logic‫از‬‫چندین‬‫بخش‬‫که‬‫کارهایی‬‫نظیر‬‫اعتبار‬‫سنجی‬،‫کار‬
‫گردش‬‫کار‬‫یا‬‫کارهای‬‫مشابه‬‫را‬‫انجام‬‫می‬‫دهند‬‫تشکیل‬‫شده‬‫است‬.
‫کامپوننت‬‫های‬‫دات‬‫نت‬‫این‬‫الیه‬‫را‬‫شکل‬‫می‬‫دهند‬.
Farhad Karimzadeh
‫الیه‬ ‫های‬ ‫انتخاب‬Data Access
www.karimzadeh.org 7
‫ین‬‫الیه‬‫با‬‫دستکاری‬‫داده‬‫ها‬‫مثل‬‫اضافه‬،‫حذف‬‫و‬‫به‬‫روز‬‫رسانی‬‫آن‬‫ها‬‫سر‬‫و‬‫کار‬‫دارد‬.‫داده‬‫هایی‬‫که‬
‫به‬‫آن‬‫ها‬‫اشاره‬‫کردیم‬‫می‬‫توانند‬‫در‬RDBMS‫یا‬XML‫قرار‬‫داشته‬‫باشند‬.‫شما‬‫باید‬‫الیه‬‫دسترسی‬‫به‬
‫داده‬‫را‬‫چنان‬‫طراحی‬‫کنید‬‫که‬‫دیگر‬‫الیه‬‫ها‬‫نیازی‬‫به‬‫دانستن‬‫وضعیت‬‫انبار‬‫داده‬‫ها‬‫نداشته‬‫باشند‬.
ADO.NET‫فناوری‬‫دسترسی‬‫به‬‫داده‬‫تحت‬‫دات‬‫نت‬‫است‬.‫اگر‬‫چه‬ADO.NET‫از‬‫طریق‬‫کالس‬‫های‬
DataReader‫اجازه‬‫دسترسی‬‫به‬‫داده‬‫های‬‫در‬‫هنگام‬‫اتصال‬‫را‬‫می‬‫دهد‬‫ولی‬‫بیشترین‬‫تمرکز‬‫روی‬
‫دسترسی‬‫به‬‫داده‬‫ها‬‫در‬‫زمان‬‫متصل‬‫نبودن‬‫است‬.‫دیتاست‬‫نقش‬‫کلیدی‬‫را‬‫در‬‫این‬‫مورد‬‫بازی‬‫می‬‫کند‬.
‫در‬‫بعضی‬‫موارد‬‫شما‬‫می‬‫توانید‬ADO‫را‬‫هم‬‫برای‬‫دسترسی‬‫به‬‫داده‬‫ها‬‫استفاده‬‫کنید‬‫ولی‬‫استفاده‬‫از‬
‫آن‬‫باید‬‫دلیل‬‫معتبری‬‫داشته‬‫باشد‬.‫از‬ADO‫استفاده‬‫نکنید‬‫فقط‬‫به‬‫خاطر‬‫اینکه‬RecordSet‫ها‬‫را‬
‫دوست‬‫دارید‬!
‫این‬‫جا‬‫هم‬‫کامپوننت‬‫های‬‫دات‬‫نت‬‫الیه‬‫را‬‫تشکیل‬‫می‬‫دهند‬.
‫همچنین‬‫وب‬‫سرویس‬‫ها‬‫هم‬‫می‬‫توانند‬‫الیه‬‫دسترسی‬‫به‬‫داده‬‫را‬‫شکل‬‫دهند‬.‫این‬‫مخصوصا‬‫زمانی‬
‫درست‬‫است‬‫که‬‫دیتابیس‬‫شما‬‫فراهم‬‫کننده‬(provider )‫داده‬‫ندارد‬.‫در‬‫این‬‫گونه‬‫موارد‬‫شما‬‫می‬
‫توانید‬‫مقداری‬‫کد‬‫برای‬‫اتصال‬‫به‬‫داده‬‫ها‬‫و‬‫پر‬‫کردن‬‫دیتاست‬‫ها‬‫و‬‫بازگرداندن‬‫نتایج‬‫درون‬‫دیتاست‬‫به‬
‫درخواست‬‫کننده‬‫داده‬‫بنویسید‬.
‫عالوه‬‫بر‬ADO.NET‫شما‬‫می‬‫توانید‬‫از‬‫امکانات‬‫سیستم‬‫مدیریت‬‫دیتابیس‬‫خود‬‫مثل‬‫توابع‬‫و‬‫یا‬‫روال‬‫های‬
‫ذخیره‬‫شده‬Stored Procedures‫استفاده‬‫کنید‬.
Farhad Karimzadeh

Contenu connexe

En vedette

Hukum i termodinamika
Hukum i termodinamikaHukum i termodinamika
Hukum i termodinamika
Anpriyan
 

En vedette (9)

.NetFramework
.NetFramework.NetFramework
.NetFramework
 
Rooban lesson plan
Rooban lesson planRooban lesson plan
Rooban lesson plan
 
Hukum i termodinamika
Hukum i termodinamikaHukum i termodinamika
Hukum i termodinamika
 
5 Benefits of Industry Cleaning
5 Benefits of Industry Cleaning5 Benefits of Industry Cleaning
5 Benefits of Industry Cleaning
 
Texting app for service resellers
Texting app for service resellersTexting app for service resellers
Texting app for service resellers
 
Softwares : Vuln discovery , attack and deffence technologies
Softwares : Vuln discovery , attack and deffence technologiesSoftwares : Vuln discovery , attack and deffence technologies
Softwares : Vuln discovery , attack and deffence technologies
 
CV Umita
CV UmitaCV Umita
CV Umita
 
وﺏ پلتفرﻡ ﻭ وﺏ دﺭ ساﻝ ۲۰۲۰ به کجا خوﺍهد رسید؟
وﺏ پلتفرﻡ ﻭ وﺏ دﺭ ساﻝ ۲۰۲۰ به کجا خوﺍهد رسید؟وﺏ پلتفرﻡ ﻭ وﺏ دﺭ ساﻝ ۲۰۲۰ به کجا خوﺍهد رسید؟
وﺏ پلتفرﻡ ﻭ وﺏ دﺭ ساﻝ ۲۰۲۰ به کجا خوﺍهد رسید؟
 
توسعه، از وب تا پلتفرم‌های دیگر
توسعه، از وب تا پلتفرم‌های دیگرتوسعه، از وب تا پلتفرم‌های دیگر
توسعه، از وب تا پلتفرم‌های دیگر
 

Similaire à Me 3 layerarchitecture

معرفي فايروال پايگاه داده
معرفي فايروال پايگاه دادهمعرفي فايروال پايگاه داده
معرفي فايروال پايگاه داده
Hamid Torkashvand
 

Similaire à Me 3 layerarchitecture (7)

Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیرازIntroduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
 
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران
 
Big Data Processing in Cloud Computing Environments
Big Data Processing in Cloud Computing EnvironmentsBig Data Processing in Cloud Computing Environments
Big Data Processing in Cloud Computing Environments
 
نرم افزار تابلو اعلانات اتوماسیون اداری
نرم افزار تابلو اعلانات اتوماسیون ادارینرم افزار تابلو اعلانات اتوماسیون اداری
نرم افزار تابلو اعلانات اتوماسیون اداری
 
Software architecture002
Software architecture002Software architecture002
Software architecture002
 
Software Fault Avoidance in Implementation
Software Fault Avoidance in ImplementationSoftware Fault Avoidance in Implementation
Software Fault Avoidance in Implementation
 
معرفي فايروال پايگاه داده
معرفي فايروال پايگاه دادهمعرفي فايروال پايگاه داده
معرفي فايروال پايگاه داده
 

Me 3 layerarchitecture