DotNetNuke là một hệ thống quản trị nội dung (Content Manager System) được phát triển trên nền tảng .NET hỗ trợ các công cụ giúp người dùng cấu hình và quản trị website một cách dễ dàng được các cơ quan, tổ chức hay công ty sử dụng để triển khai các dự án như: cổng thông tin điện tử, website thương mại phổ biến nhất hiện nay.
Tìm hiều hệ thống DotNetNuke phát triển Module ứng dụng MỤC LỤC MỤC LỤC MỞ ĐẦU CHƯƠNG I: TỔNG QUAN VỀ DOTNETNUKE I Giới thiệu DotNetNuke Hệ thống DotNetNuke ? Đặc tính bật DotNetNuke (DNN) .4 So sánh DotNetNuke với hệ thống quản trị nội dung khác .6 3.1 Ưu điểm: 3.2 Nhược điểm .6 II Kiến trúc hệ thống DotNetNuke Tầng truy xuất liệu: Data Access Layer (DAL) Tầng quy trình xử lý liệu: Business Logic Layer (BLL) Tầng trình diễn thơng tin: Presetation layer (UI) III Chuẩn bị môi trường phát triển .8 Dowload hệ thống DotNetNuke Dowload MS SQL Express 2012 Cài đặt Internet Information Services (IIS 7) Dowload phiên Microsoft Visual Studio 2012 Dowload Christoc’s DotNetNuke Module Development Template IV Cài đặt hệ thống DotNetNuke Giải nén Tạo sở liệu để lưu trữ nội dung website DotNetNuke Thiết lập quyền hạn Cấu hình DotNetNuke lên IIS7 (Internet Information Service 7) 10 Cài đặt hệ thống DotNetNuke localhost 10 CHƯƠNG II: QUẢN TRỊ VÀ CÀI ĐẶT CÁC TIỆN ÍCH MỞ RỘNG TRONG DOTNETNUKE 13 I Quản trị Dotnetnuke 13 Trang cách tạo trang 13 Nguyễn Đức Tri – CNTT K8 Trang Tìm hiều hệ thống DotNetNuke phát triển Module ứng dụng 1.1 Tổng quan trang 13 1.2 Tạo trang 14 1.3 Xóa trang phục hồi trang bị xóa 15 1.4 Phân quyền sử dụng trang .16 Module 17 2.1 Tổng quan module 17 2.2 Thêm module vào trang 20 2.3 Xóa module phục hồi module bị xóa 20 2.4 Di chuyển module 21 II Cài đặt tiện ích mở rộng 23 CHƯƠNG III: QUÁ TRÌNH PHÁT TRIỂN MODULE TRONG DOTNETNUKE 24 I Cài đặt môi trường phát triển 24 II Tạo dự án Visual Studio 24 III Kiến trúc module 24 CHƯƠNG IV: PHÁT TRIỂN MODULE QUẢN LÝ BÀI VIẾT ĐƠN GIẢN 26 I Giới thiệu 26 II Quá trình phát triển module hiển thị nội dung 26 Tạo module 26 Các bước thiết kế module 26 2.1 Tạo sở liệu cho module 26 2.2 Khai báo phương thức tầng nhiệm vụ (Business Logic Layer) 27 2.3 Lập trình giao diện 29 Đóng gói cài đặt module lên DotNetNuke .34 a Đóng gói module .34 b Cài đặt module lên hệ thống DotNetNuke 35 Quản trị module giao diện hiển thị nội dung viết .35 4.1 Quản trị module .35 4.2 Giao diện hiển thị nội dung viết .37 KẾT LUẬN .38 TÀI LIỆU THAM KHẢO 39 Nguyễn Đức Tri – CNTT K8 Trang Tìm hiều hệ thống DotNetNuke phát triển Module ứng dụng MỞ ĐẦU DotNetNuke hệ thống quản trị nội dung (Content Manager System) phát triển tảng NET hỗ trợ cơng cụ giúp người dùng cấu hình quản trị website cách dễ dàng quan, tổ chức hay công ty sử dụng để triển khai dự án như: cổng thông tin điện tử, website thương mại phổ biến Trong đề tài sau đây, tơi trình bày số nội dung tìm hiểu hệ thống mã nguồn mở DotNetNuke phát triển module quản lý viết đơn giản hỗ trợ tùy chọn hiển thị liệu nhiều dạng khác nhau, để từ đó: Hiểu tính năng, cách thức hoạt động hệ thống DotNetNuke kỹ thuật cài đặt liên quan Quản trị cài đặt tiện ích mở rộng DotNetNuke Nắm rõ trình xây dựng thiết kế để phát triển module DotNetNuke Qua trình tìm hiểu, giúp tơi tiếp cận bổ sung nhiều kiến thức kỹ thuật lập trình website với hệ thống mã nguồn mở DotNetNuke Hiểu rõ trình phát triển để thiết kế module, cố gắng hồn thiện kỹ lập trình để thích ứng với cơng cụ ngơn ngữ lập trình ngày phát triển Nguyễn Đức Tri – CNTT K8 Trang Tìm hiều hệ thống DotNetNuke phát triển Module ứng dụng CHƯƠNG I: TỔNG QUAN VỀ DOTNETNUKE I Giới thiệu DotNetNuke Hệ thống DotNetNuke ? DotNetNuke hệ thống quản trị nội dung mã nguồn mở viết ngơn ngữ lập trình VB.NET, C# tảng ASP.NET Đây hệ thống mở, tùy biến dựa Skin Module DotNetNuke sử dụng để tạo trang web cộng đồng cách dễ dàng nhanh chóng DNN đánh giá sản phẩm mã nguồn mở đứng đầu giới sử dụng hàng nghìn tổ chức giới DotNetNuke xây dựng công nghệ NET, hệ quản trị sở liệu MS SQL Server Oracle .Net công nghệ phát triển Web Microsoft xây dựng, công nghệ phát triển ứng dụng Web thương mại phổ biến Đây công nghệ mũi nhọn Microsoft có nhiều ưu điểm bật Ngồi ra, việc phát triển Web theo công nghệ giúp bạn tránh rủi ro nhân lực phát triển chỉnh sửa hệ thống lập trình với NET phổ biến Đặc tính bật DotNetNuke (DNN) Đa năng: DNN sở hạ tầng lý tưởng ứng dụng Portal để xây dựng triển khai dự án cổng thông tin thương mại điện tử, cổng thơng tin phủ điện tử, cổng thơng tin cộng tác tổ chức Thân thiện: DNN thiết kế để giúp người quản trị dễ dàng cấu hình quản trị chức ứng dụng cổng thông tin điện tử Các biểu tượng, trợ giúp, giao diện, cho phép thao tác dễ dàng Tính mở hệ thống: Kết cấu tính DNN dựa khả cho phép cài đặt module chức (Module installtion) vào bên phần mềm khung (Plug- in) Những module chức module nhà lập trình tự phát triển (thường module nhất) module nhà lập trình tự phát triển (thường module chuyên dùng, xây dựng theo mục đích xử lý, thông tin đặc thù yêu cầu quản lý thơng tin mang tính chun nghiệp so với module miễn phí) Đặc tính Plug-in cho phép tổ chức mở rộng khơng giới hạn tính theo yêu cầu người sử dụng không làm ảnh hưởng đến chức hoạt động, không làm gián đoạn vận hành liên tục Portal Nguyễn Đức Tri – CNTT K8 Trang Tìm hiều hệ thống DotNetNuke phát triển Module ứng dụng Thêm vào đó, kiến trúc DNN cho phép tạo lập nhiều Portal phần mềm cài đặt Người quản trị quản lý hay nhiều Portal khác với tính giao diện khác Mỗi Portal có hệ thống người sử dụng riêng, bao gồm người quản trị, có giao diện, ngơn ngữ trình bày riêng Giàu tính năng: DNN xây dựng với nhiều tính mạnh mẽ, quản trị, thiết kế, nội dung, bảo mật người dùng quản lý sửa đổi dễ dàng qua công cụ Giao diện tuỳ biến: DNN thiết kế với kiến trúc sử dụng Skin (giao diện bên ngoài) cho phép tách biệt nội dung giao diện Kiến trúc cho phép người thiết kế giao diện có khả làm việc độc lập với q trình phát triển địi hỏi kiến thức HTML với kiến thức thiết kế Skin DNN Chỉ cần người quản trị thực thay đổi Skin hệ thống sản phẩm Portal khai thác có giao diện Q trình thay đổi Skin khơng làm ảnh hưởng đến chức hoạt động, không làm gián đoạn vận hành liên tục Portal Được hỗ trợ tốt: DNN hỗ trợ nhiều tổ chức/cá nhân phát triển phần mềm giới Trong diễn đàn trực tuyến, cổng thông tin, mạng lưới công ty chuyên nghiệp DNN, việc hỗ trợ kỹ thuật cho DNN dễ dàng thuận tiện Dễ cài đặt: DNN cài đặt chạy vòng vài chục phút Một điểm mạnh DNN khả xây dựng Portal thông qua Template sẵn có Đa ngơn ngữ hay khả địa hố: Trong thiết kế DNN hướng đến việc hỗ trợ đa ngôn ngữ qua chế Language Packs hệ thống Cơ chế mang lại khả địa hố module DNN phần mềm khung Nói cách khác, DNN cung cấp cơng cụ để dịch ứng thuật ngữ từ ngôn ngữ sang ngơn ngữ khác dễ dàng nhanh chóng Mã nguồn mở: DNN cung cấp miễn phí, phần mềm mã nguồn mở, cấp phép cam kết BSD chuẩn Nó cho phép cá nhân làm việc họ mu ốn với ứng dụng, thương mại lẫn phi thương mại, với yêu cầu đơn giản ghi nhận công lao cộng đồng thực dự án DNN Được tín nhiệm: DNN thương hiệu tiếng tôn trọng cộng đồng mã nguồn mở Với 390.000 thành viên đội ngũ lập trình tài năng, DNN liên tục phát triển sản phẩm dựa phản hồi, ứng dụng thực tế tham gia người dùng Nguyễn Đức Tri – CNTT K8 Trang Tìm hiều hệ thống DotNetNuke phát triển Module ứng dụng So sánh DotNetNuke với hệ thống quản trị nội dung khác 3.1 Ưu điểm: Được phát triển tảng NET Microsoft, có IDE mạnh (visual studio) debug dễ dàng (so với PHP khơng có công cụ debug chuyên nghiệp) So với hệ thống quản trị nội dung Java tốc độ có phần nhanh hơn, Java phải biên dịch bytecode biên dịch Cung cấp framework gần hoàn chỉnh, có nhiều module tích hợp sẵn, sử dụng Chúng ta modify framework để phù hợp với yêu cầu mà viết lại từ đầu Mã nguồn mở cộng đồng lớn phát triển 3.2 Nhược điểm DotNetNuke không hỗ trợ đa tảng mà chạy Window Ngoài ra, DNN số nhược điểm khác Một số người dùng gặp khó khăn việc phát triển giao diện Skin không dùng bảng ( tableless) hợp chuẩn Giao diện nhân hệ thống sử dụng layout dựa bảng đặc tả kiểu văn (Document Type Declaration) lập trình gắn với nhân hệ thống Vì thế, trường hợp địi hỏi giao diện tn theo chuẩn XHTML phải làm việc với nhân hệ thống II Kiến trúc hệ thống DotNetNuke Kiến trúc hệ thống DNN phân tầng xử lý liệu tường minh, mạng lại khả mềm dẻo để lập trình phát triển hệ thống Kiến trúc DotNetNuke cho phép tầng ứng dụng bố trí phân tán hai server: web server database server Web server chịu trách nhiệm trình bày đối tượng trực quan, tầng xử lý nghiệp vụ tầng truy xuất sở liệu Trong đó, database server chịu trách nhiệm tạo nên kho lưu trữ liệu mà Nguyễn Đức Tri – CNTT K8 Trang Tìm hiều hệ thống DotNetNuke phát triển Module ứng dụng Nguyễn Đức Tri – CNTT K8 Trang Tìm hiều hệ thống DotNetNuke phát triển Module ứng dụng Mơ hình tổng quan DotNetNuke (Architectural OverView) Tầng truy xuất liệu: Data Access Layer (DAL) - Tầng bao gồm phương thức đơn giản để kết nối CSDL khác (database Engine) với tầng quy trình xử lý liệu - Giải pháp cho phép hệ thống DNN độc lập với giải pháp tổ chức CSDL bên Ví dụ: Microsoft SQL Server 2000/MSDE/Access, mySQL, Oracle,… Tầng quy trình xử lý liệu: Business Logic Layer (BLL) - Tầng bao gồm phương thức cho phép định nghĩa quy trình xử lý liệu mức logic để bảo đảm liệu tổ chức quản lý xử lý mô phỏng, tuân thủ theo quy định quản lý, xử lý công việc hoạt động kinh doanh ngày áp dụng quan - Giải pháp cho phép xây dựng quy trình xử lý liệu độc lập với tổ chức liệu vật lý hệ thống Tầng trình diễn thơng tin: Presetation layer (UI) - Tầng bao gồm phương thức tạo lập cách thức trình diễn thơng tin cho người sử dụng, quản lý vai trò, quyền hạn xử lý thông tin người sử dụng, quản lý tương tác hệ thống với người sử dụng Nguyễn Đức Tri – CNTT K8 Trang Tìm hiều hệ thống DotNetNuke phát triển Module ứng dụng - Giao tiếp với tầng quy trình xử lý liệu để chuyển yêu cầu thông tin người sử dụng tới tầng quy trình xử lý, nhận kết xử lý hiển thị cho người sử dụng III Chuẩn bị môi trường phát triển Dowload hệ thống DotNetNuke Link download: http://dotnetnuke.codeplex.com Dowload MS SQL Express 2012 http://www.microsoft.com/en-us/download/details.aspx?id=29062 Cài đặt Internet Information Services (IIS 7) Dowload phiên Microsoft Visual Studio 2012 http://www.microsoft.com/en-us/download/details.aspx?id=30678 Dowload Christoc’s DotNetNuke Module Development Template Link download: http://christoctemplate.codeplex.com/ IV Cài đặt hệ thống DotNetNuke Giải nén Giải nén file (*.zip) hệ thống DotNetNuke vào thư mục ổ cứng Ví dụ: giải nén thư mục “D:\Web\DotNetNuke” Tạo sở liệu để lưu trữ nội dung website DotNetNuke - Trong Database name, đặt tên cho CSDL: “DotNetNuke” Tạo tài khoản đăng nhập sở liệu: Thông thường cài đặt MS SQL Server, trình cài đặt yêu cầu ta chọn hình thức đăng nhập MS SQL Server sau (Windows Authentication SQL Server Authentication) Tuy nhiên bạn cài đặt MS Visual Studio (đã bao gồm MS SQL Server) bạn khơng u cầu chọn hình thức đăng nhập Quá trình cài đặt MS SQL Server thiết lập chế độ đăng nhập mặc định Windows Authentication Ta sử dụng tài khoản “sa” để quản lý CSDL dễ dàng Bước 1: Chọn tên Server Properties Security SQL Server and Windows Authentication mode Nguyễn Đức Tri – CNTT K8 Trang Tìm hiều hệ thống DotNetNuke phát triển Module ứng dụng Bước 2: Security LoginsaProperties Thiết lập Password cho tài khoản “sa” Bước 3: Sau chuyển qua thẻ Status chọn Enable Bước 4: Thiết lập xong, ta Restart lại MS SQL Server login với quyền “sa” thành công Thiết lập quyền hạn Cho phép process ASP.NET quyền read/write thư mục giải nén chứa DotNetNuke Để thực điều click lên thư mục bạn đặt DotNetNuke, chọn Properties chọn tab Sercurity Chọn Edit ApplyOK Add: IIS AppPool\DefaultAppPool Check Names Modify Tiếp tục chọn Add: Network ServiceCheck NamesModifyApplyOK Nguyễn Đức Tri – CNTT K8 Trang 10 Tìm hiều hệ thống DotNetNuke phát triển Module ứng dụng CHƯƠNG IV: PHÁT TRIỂN MODULE QUẢN LÝ BÀI VIẾT ĐƠN GIẢN I Giới thiệu Phát triển module quản lý viết đơn giản hỗ trợ nhiều tùy chọn hiển thị liệu nhiều dạng khác (multiple view) Tùy chọn hiển thị cấu hình thêm module vào trang II Quá trình phát triển module hiển thị nội dung Tạo module Bước 1: Tạo module có tên: “DNNNews” Bước 2: Chọn template DotNetNuke7 C# DAL2 Complied Module để phát triển module Bước 3: Lưu module vào thư mục hệ thống “~\DestopModules” Các bước thiết kế module 2.1 Tạo sở liệu cho module Ở mục Providers: Chọn DataProviders SqlDataProvider Trong mục SqlDataProvider.có file: 00.00.01.SqlDataProvider Uninstall.SqlDataProvider File 00.00.01.SqlDataProvider: - Khi cài đặt module vào DotNetNuke, hệ thống chạy file 00.00.01.SqlDataProvider tạo sở liệu cho module - Nội dung khai báo sở liệu file 00.00.01.SqlDataProvider sau: IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[DNNNews_Items]') AND type in (N'U')) DROP TABLE [DNNNews_Items] GO CREATE TABLE DNNNews_Items ( ItemId int NOT NULL IDENTITY (1, 1), ItemName nvarchar(MAX) NOT NULL, ItemDescription nvarchar(MAX) NOT NULL, ItemContent nvarchar(MAX) NOT NULL, ModuleId int NOT NULL, CreatedOnDate datetime NOT NULL, Nguyễn Đức Tri – CNTT K8 Trang 29 Tìm hiều hệ thống DotNetNuke phát triển Module ứng dụng CreatedByUserId int NOT NULL, LastModifiedOnDate datetime NOT NULL, LastModifiedByUserId int NOT NULL ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO ALTER TABLE DNNNews_Items ADD CONSTRAINT PK_DNNNews_Items PRIMARY KEY CLUSTERED ( ItemId ) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] GO File Uninstall.SqlDataProvider: - Khi module tháo gỡ khỏi hệ thống file Uninstall.SqlDataProvider có chức xóa sở liệu tạo file 00.00.01.SqlDataProvider - Nội dung khai báo sau: IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[DNNNews_Items]') AND type in (N'U')) DROP TABLE [DNNNews_Items] GO 2.2 Khai báo phương thức tầng nhiệm vụ (Business Logic Layer) Business Logic Layer (còn gọi lớp nghiệp vụ) đặc điểm lớp kiểm tra xem nghiệp vụ có hay khơng Ở mục Components : gồm lớp FeatureController.cs, Item.cs, ItemController.cs a Lớp Item.cs: Lớp thực thể liệu class Item { public int ItemId { get; set; } public string ItemName { get; set; } public string ItemDescription { get; set; } public string ItemContent { get; set; } public int ModuleId { get; set; } public int CreatedByUserId { get; set; } public int LastModifiedByUserId { get; set; } public DateTime CreatedOnDate { get; set; } Nguyễn Đức Tri – CNTT K8 Trang 30 Tìm hiều hệ thống DotNetNuke phát triển Module ứng dụng public DateTime LastModifiedOnDate { get; set; } public interface IPagedList : IList { bool HasNextPage { get; } bool HasPreviousPage { get; } bool IsFirstPage { get; } bool IsLastPage { get; } int PageCount { get; set; } int PageIndex { get; set; } int PageSize { get; set; } int TotalCount { get; set; } } } b Lớp ItemController.cs: Ở lớp hệ thống sẵn có phương thức để tạo mới, xóa, cập nhật, gọi lớp sở liệu Bổ sung hàm cần sử dụng sau: Phương thức “GetTinTuc” trả kiểu IEnumerable sử dụng ExecuteQuery để thực câu lện truy vấn sql, hiển thị viết bảng DNNNews_Items xếp theo CreatedOnDate tăng dần public IEnumerable GetTinTuc(int moduleId) { IEnumerable t; using (IDataContext ctx = DataContext.Instance()) { t = ctx.ExecuteQuery(System.Data.CommandType.Text, "SELECT TOP * FROM DNNNews_Items ORDER BY CreatedOnDate DESC"); } return t; } Phương thức GetPageOfItem trả IPagedList hiển thị số nội dung viết hiển thị theo danh sách trang (pageIndex, pageSize) public IPagedList GetPageOfItem(int pageIndex, int pageSize) Nguyễn Đức Tri – CNTT K8 Trang 31 Tìm hiều hệ thống DotNetNuke phát triển Module ứng dụng { IPagedList t; using (IDataContext db = DataContext.Instance()) { var rep = db.GetRepository(); t = rep.GetPage(pageIndex, pageSize); } return t; } 2.3 Lập trình giao diện Presentation Layer (cịn gọi User Interface) lớp cung cấp giao diện tương tác với người dùng chẳng hạn form hiển thị liệu, form nhập liệu Trong module viết theo kiểu WAP UI ứng với file Edit.ascx, Setting.ascx, View.ascx a Lớp View.ascx Dạng 1: Hiển thị nội dung viết theo dạng danh sách Viết code lớp View.ascx: Bước 1: Tạo thẻ Bước 2: Sử dụng thẻ asp:Repeater chứa “pnlViewList” để hiển thị nội dung dạng danh sách- Nguyễn Đức Tri – CNTT K8 Trang 32 Tìm hiều hệ thống DotNetNuke phát triển Module ứng dụng