Опубликован: 02.03.2009 | Уровень: для всех | Доступ: платный | ВУЗ: Волгоградский государственный университет
Лекция 15:
Разработка модулей для DotNetNuke в Visual Studio 2005
Модификация файла DataProvider.vb
Содержимое файла DataProvider.vb следует заменить следующим кодом:
Imports System
Imports DotNetNuke
Imports System.Data
Imports DotNetNuke.Framework
Namespace YourCompany.Modules.GuestBook
Public MustInherit Class DataProvider
' singleton reference to the instantiated object
Private Shared objProvider As DataProvider = Nothing
' constructor
Shared Sub New()
CreateProvider()
End Sub
' dynamically create provider
Private Shared Sub CreateProvider()
objProvider = CType(Reflection.CreateObject("data", "YourCompany.Modules.GuestBook", ""), DataProvider)
End Sub
' return the provider
Public Shared Function Instance() As DataProvider
Return objProvider
End Function
Public MustOverride Sub YourCompany_GuestBook_Insert(ByVal ModuleId As Integer, _
ByVal Name As String, ByVal Email As String, ByVal Message As String)
Public MustOverride Function YourCompany_GuestBook_GetAll(ByVal ModuleId As Integer) As IDataReader
Public MustOverride Sub YourCompany_GuestBook_Update(ByVal ID As Integer, ByVal Name As String, _
ByVal Email As String, ByVal Message As String, ByVal DateEntered As DateTime)
Public MustOverride Sub YourCompany_GuestBook_Delete(ByVal ID As Integer)
End Class
End NamespaceТаким образом, создание уровня доступа к данным завершено. Переходим к уровню бизнес-логики.
Этапы реализации уровня бизнес-логики
Для построения уровня бизнес-логики буду произведены следующие действия:
- модифицирован файл GuestBookInfo.vb ;
- модифицирован файл GuestBookController.vb.
Модификация файла GuestBookInfo.vb
В данном файле будет создан класс, предназначенный для хранения данных, диаграмма которого приведена на рис. 15.25.
Для его реализации замените содержимое файла на следующее:
Imports System
Imports System.Configuration
Imports System.Data
Namespace YourCompany.Modules.GuestBook
Public Class GuestBookInfo
Private _ModuleId As Integer
Private _ID As Integer
Private _Name As String
Private _Email As String
Private _Message As String
Private _DateEntered As DateTime
' initialization
Public Sub New()
MyBase.New()
End Sub
' <summary>
' Gets and sets the Module Id
' </summary>
Public Property ModuleId() As Integer
Get
Return _ModuleId
End Get
Set(ByVal value As Integer)
_ModuleId = value
End Set
End Property
' <summary>
' Gets and sets the Item ID
' </summary>
Public Property ID() As Integer
Get
Return _ID
End Get
Set(ByVal value As Integer)
_ID = value
End Set
End Property
' <summary>
' gets and sets the Name
' </summary>
Public Property Name() As String
Get
Return _Name
End Get
Set(ByVal value As String)
_Name = value
End Set
End Property
' <summary>
' Gets and sets the Email
' </summary>
Public Property Email() As String
Get
Return _Email
End Get
Set(ByVal value As String)
_Email = value
End Set
End Property
' <summary>
' Gets and sets the Message
' </summary>
Public Property Message() As String
Get
Return _Message
End Get
Set(ByVal value As String)
_Message = value
End Set
End Property
' <summary>
' Gets and sets the DateEntered
' </summary>
Public Property DateEntered() As DateTime
Get
Return _DateEntered
End Get
Set(ByVal value As DateTime)
_DateEntered = value
End Set
End Property
End Class
End Namespace
15.2.
Модификация файла GuestBookController.vb
Содержимое файла следует заменить следующим кодом:
Imports System
Imports System.Collections.Generic
Imports System.Configuration
Imports System.ComponentModel
Imports System.Data
Imports System.Xml
Imports System.Web
Imports DotNetNuke
Imports DotNetNuke.Common
Imports DotNetNuke.Common.Utilities
Imports DotNetNuke.Entities.Modules
Imports DotNetNuke.Services.Search
Namespace YourCompany.Modules.GuestBook
Public Class GuestBookController
<DataObjectMethod(DataObjectMethodType.Insert)> _
Public Shared Sub GuestBook_Insert(ByVal objTest As GuestBookInfo)
DataProvider.Instance.YourCompany_GuestBook_Insert(objTest.ModuleId, objTest.Name,
objTest.Email, objTest.Message)
End Sub
<DataObjectMethod(DataObjectMethodType.Delete)> _
Public Shared Sub GuestBook_Delete(ByVal objTest As GuestBookInfo)
DataProvider.Instance.YourCompany_GuestBook_Delete(objTest.ID)
End Sub
<DataObjectMethod(DataObjectMethodType.Select)> _
Public Shared Function GuestBook_GetAll(ByVal ModuleId As Integer) As List(Of GuestBookInfo)
Return CBO.FillCollection(Of GuestBookInfo)(DataProvider.Instance().YourCompany_GuestBook_GetAll(ModuleId))
End Function
<DataObjectMethod(DataObjectMethodType.Update)> _
Public Shared Sub GuestBook_Update(ByVal objTest As GuestBookInfo)
DataProvider.Instance.YourCompany_GuestBook_Update(objTest.ID, objTest.Name,
objTest.Email, objTest.Message, objTest.DateEntered)
End Sub
End Class
End NamespaceЭтот код создает класс с четырьмя методами (рис. 15.26):
- GuestBook_Insert - Добавляет записи в БД. Используется объект GuestBookInfo. Параметры ModuleId, Name, Email, Message передаются методу YourCompany_GuestBook_Insert в файле DataProvider.vb
- GuestBook_Delete - Удаляет записи из БД. Используется объект GuestBookInfo. Параметр ID передается методу YourCompany_GuestBook_Delete в файле DataProvider.vb.
- GuestBook_GetAll - получает набор записей из БД . Используется параметр ModuleId. Этот метод вызывает метод YourCompany_GuestBook_GetAll в файле DataProvider.vb и возвращает объект GuestBookInfo, заполненный данными .
- GuestBook_Update - обновляет БД . Используется объект GuestBookInfo. Метод открывает объект и передает отдельные параметры ( ID, ModuleId, Name, Email, Message, DateEntered ) методу YourCompany_GuestBook_Update в файле DataProvider.vb ".

