na3er-faraji
شنبه 17 شهریور 1386, 08:55 صبح
با عزیمت همه برنامه نویسان به سمت معماری سه لایه ما هم برای عقب نموندن از این جمع باید هر چه سریعتر حرکت خودمونو آغاز کنیم . برای همین فعلا کمی مطالعه در این باره رو آغاز کردم . و خوب نتیجش هم بد نبوده . اما این لایه منطقی یا همون BLL کمی این وسط نامفهومه . واقعا یه نفر میتونه واسه من توضیح بده این لایه این وسط چیکارس؟ گاهی وقتا هم واسه این که بیکار نباشه یه بررسی روی داده ها هم انجام میده . که به نظر من این کار در لایه نمایش هم میتونه انجام بشه . برای این که منظورم رو بفهمید توجه شما رو به قطعه کدهایی از پروژه آقای بهروز راد جلب می کنم .
لایه نمایش
Dim obj_BLProject As New GridViewFuncBehrouzRad.BLProject
Dim IsInserted As Boolean = obj_BLProject.AddOrder(strOrganName, strPieceName, strSubPieceName, Int32.Parse(strOrderID))
لایه منطقی
Public Function AddOrder(ByVal OrganName As String, ByVal PieceName As String, ByVal SubPieceName As String, ByVal OrderID As Int32) As Boolean
Try
Dim IsInserted As Boolean = False
Dim obj_DAProject As New GridViewFuncBehrouzRad.DAProject
IsInserted = obj_DAProject.AddOrder(OrganName.Trim(), PieceName.Trim(), SubPieceName.Trim(), OrderID)
Return IsInserted
Catch ex As SqlException
Throw ex
Catch ex As Exception
Throw ex
End Try
End Function
لایه DAL
Public Function AddOrder(ByVal OrganName As String, ByVal PieceName As String, ByVal SubPieceName As String, ByVal OrderID As Int32) As Boolean
Dim Cnn As SqlConnection = Me.GetConnection()
Dim Cmd As New SqlCommand("spAddOrder", Cnn)
Cmd.CommandType = CommandType.StoredProcedure
Dim Param As SqlParameter
Param = Cmd.Parameters.Add("@organName", SqlDbType.NVarChar, 50)
Param.Value = OrganName.Trim.ToString()
Param = Cmd.Parameters.Add("@pieceName", SqlDbType.NVarChar, 50)
Param.Value = PieceName.Trim.ToString()
Param = Cmd.Parameters.Add("@subPieceName", SqlDbType.NVarChar, 50)
Param.Value = SubPieceName.Trim.ToString()
Param = Cmd.Parameters.Add("@pieceID", SqlDbType.Int)
Param.Value = OrderID
Try
Cnn.Open()
Dim intRowAffect As Int32 = Cmd.ExecuteNonQuery()
If intRowAffect > 0 Then Return True
Catch ex As SqlException
Throw ex
Catch ex As Exception
Throw ex
Finally
If (Cnn.State <> ConnectionState.Closed) Then Cnn.Close()
End Try
Return False
End Function
یک نفر به من بگه چرا لایه داده با لایه نمایش مستقیم با هم کار نمی کنن؟
لایه نمایش
Dim obj_BLProject As New GridViewFuncBehrouzRad.BLProject
Dim IsInserted As Boolean = obj_BLProject.AddOrder(strOrganName, strPieceName, strSubPieceName, Int32.Parse(strOrderID))
لایه منطقی
Public Function AddOrder(ByVal OrganName As String, ByVal PieceName As String, ByVal SubPieceName As String, ByVal OrderID As Int32) As Boolean
Try
Dim IsInserted As Boolean = False
Dim obj_DAProject As New GridViewFuncBehrouzRad.DAProject
IsInserted = obj_DAProject.AddOrder(OrganName.Trim(), PieceName.Trim(), SubPieceName.Trim(), OrderID)
Return IsInserted
Catch ex As SqlException
Throw ex
Catch ex As Exception
Throw ex
End Try
End Function
لایه DAL
Public Function AddOrder(ByVal OrganName As String, ByVal PieceName As String, ByVal SubPieceName As String, ByVal OrderID As Int32) As Boolean
Dim Cnn As SqlConnection = Me.GetConnection()
Dim Cmd As New SqlCommand("spAddOrder", Cnn)
Cmd.CommandType = CommandType.StoredProcedure
Dim Param As SqlParameter
Param = Cmd.Parameters.Add("@organName", SqlDbType.NVarChar, 50)
Param.Value = OrganName.Trim.ToString()
Param = Cmd.Parameters.Add("@pieceName", SqlDbType.NVarChar, 50)
Param.Value = PieceName.Trim.ToString()
Param = Cmd.Parameters.Add("@subPieceName", SqlDbType.NVarChar, 50)
Param.Value = SubPieceName.Trim.ToString()
Param = Cmd.Parameters.Add("@pieceID", SqlDbType.Int)
Param.Value = OrderID
Try
Cnn.Open()
Dim intRowAffect As Int32 = Cmd.ExecuteNonQuery()
If intRowAffect > 0 Then Return True
Catch ex As SqlException
Throw ex
Catch ex As Exception
Throw ex
Finally
If (Cnn.State <> ConnectionState.Closed) Then Cnn.Close()
End Try
Return False
End Function
یک نفر به من بگه چرا لایه داده با لایه نمایش مستقیم با هم کار نمی کنن؟