Волгоградский государственный университет
Опубликован: 02.03.2009 | Доступ: свободный | Студентов: 1519 / 187 | Оценка: 4.20 / 4.03 | Длительность: 16:55:00
Специальности: Разработчик интернет-проектов
Теги:
Лекция 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 Namespace15.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 ".