PDA

View Full Version : سوال: شما چطور برنامه چند لایه می نویسین؟



Developer Programmer
شنبه 27 آذر 1389, 22:56 عصر
من همیشه سعی میکنم برنامه رو به کلاس های کوچیکتر تقسیم کنم تا کار تیمی راحتتر بشه و کدها از یک قاعده تبعیت کنن.
مثلا یه کلاس واسه کار با تاریخ . یا کلاس واسه اتصال به دیتابیس و انجام اعمال درج و حذف و اجرای تراکنش ها

در زیر یک مثال از توابع کلاس DataBase رو می تونین مشاهده کنین




Public Function BindDataGridView(ByRef DataGrid As DataGridView, ByVal Query As String, ByRef BN As BindingNavigator) As Boolean
If Not OpenDB() Then Return False
Try
Dim ds As New DataSet()
If Not FillDataSet(ds, Query, "table") Then Return False

Dim bs As New BindingSource(ds, "table")
BN.BindingSource = bs
DataGrid.DataSource = bs
CloseDB()
Return True
Catch ex As Exception
Return False
End Try
End Function
'
'یه کوئری رو میگیره و اجراش میکنه
'
Public Function ExecuteNonQuery(ByVal Query As String) As Boolean
Dim cmd As New SqlCommand()
Try
If Not OpenDB() Then Return False
cmd.CommandText = Query
cmd.Connection = Cnn
cmd.ExecuteNonQuery() 'کوئری رو اجرا کن
CloseDB() 'دیتابیس رو ببند
Return True
Catch ex As Exception
Return False
End Try
End Function



منتها این روش نواقص خودش رو داره که محدودیت های خاصی اعمال میکنه. می خوام بدونم دوستان چطور معماری چند لایه رو پیاده میکنن که بتونن از قابلیتهای Cache و Ado.net و ... استفاده کنن؟

majid325
یک شنبه 28 آذر 1389, 14:46 عصر
به صورت کلی باید نگاه کنی ببینی که هدفت از لایه ای کردن چی هست، یعنی میخوای به چی برسی ؟
من لایه بندی رو به 2 دسته تقسیم میکنم :
1-طولی
2-عرضی

یک مثال از پیاده سازی لایه بندی طولی میتونه MVC,MVP, MVVM باشه و مثالی برای لایه بندی عرضی میتونه راه حل های پیاده سازی Load balancing و یا مواردی از این قبیل باشه

در لایه بندی طولی یا خطی یکی از اهداف ما میتونه رسیدن به بهترین شرایط برای Unit testing باشه و در لایه بندی عرضی یکی از اهداف ما میتونه Load balancing مناسب باشه

پیشنهاد میکنم تاریخچه چگونگی و دلیل پیدایش یکی از مدلهای MVC,MVP, MVVM رو مطالعه کنید