.NET Framwork là cơ sở hạ tầng cung cấp cho người dùng cách thức sử dụng nhiều ngôn ngữ lập trình khác nhau cho phép truy cập thông tin, file, hoặc các chương trình của họ ở mọi lúc mọi nơi trên mọi cấu hình phần cứng và thiết bị.
Tâm điểm của .NET Framework là môi trường CLR (Common Language Runtime) và tập phân cấp các bộ thư viện hợp nhất cùng với ASP.NET. CLR quản lý sự thực thi của đoạn mã .NET và cung cấp các dịch vụ giúp cho quá trình phát triển chương trình ứng dụng dễ dàng hơn. Các trình biên dịch và các công cụ làm cho chức năng của thư viện thực thi runtime trở nên phong phú và hiệu quả hơn.
Đoạn mã viết trong trang ASP.NET hướng đến một kiến trúc đích cụ thể gọi là mã được quản lý (managed code). CLR quản lý đoạn mã ở mức thực thi thấp nhất, kết hợp khả năng sử dụng đồng thời nhiều ngôn ngữ có khả năng triệu gọi lẫn nhau (cross-language), tích hợp quản lý các lỗi ngoại lệ, khởi động và chấm dứt các tiểu trình (thread) ở mức thấp, hỗ trợ về bảo mật, quản lý phiên bản, đóng gói cài đặt.
Ngoài ra, dịch vụ Web trong .NET Framework cho phép phát triển ứng dụng Internet hay Intranet trong hiện tại lẫn tương lai bằng bất cứ ngôn ngữ lập trình nào, truy cập đến hệ thống bất kỳ. CLR cung cấp cơ chế dễ dàng cho các nhà phát triển Visual Basic.NET khi thiết kế và xây dựng ứng dụng trong đó những đối tượng viết bằng Web Services có thể tương tác với các đối tượng được viết bằng ngôn ngữ khác.
Sự tương tác này có thể bởi vì các trình biên dịch ngôn ngữ và các công cụ phát triển hướng đến sử dụng CLR với một hệ thống kiểu dữ liệu chung định nghĩa bởi thư viện runtime như hình 19 dưới đây.
135 trang |
Chia sẻ: oanh_nt | Lượt xem: 1263 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Đề tài Xây dựng Cổng thông tin cho Viện Đại Học Mở Hà Nội, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
àm Xóa thành viên
5.2.4.4 Biểu đồ dòng dữ liệu hàm 1.4.4 – Tìm kiếm
Quản trị
Tìm kiếm
Thông báo
Tên thành viên
Không tìm thấy kết quả
Thành viên
Quản trị
Kết quả tìm kiếm
Hình 49. Biểu đồ dòng dữ liệu hàm Tìm kiếm
5.3 Biểu đồ dòng dữ liệu hàm 2 – Quản lý Module
Quản trị viên
2.3
Tổ chức Module
2.1
Quản lý danh sách Module
Cấu hình
2.2
Quản lý Tab
Yêu cầu
Yêu cầu
Yêu cầu
Cấu hình
Hình 50. Biểu đồ dòng dữ liệu hàm Quản lý Module
5.3.1 Biểu đồ dòng dữ liệu hàm 2.1 – Quản lý danh sách Module
Quản trị
Kiểm tra quyền Admin
Thông báo
Không hợp lệ
Quyền
Định nghĩa Module
Sửa định nghĩa Module
Xóa định nghĩa Module
Cấu hình
Cấu hình
Tên truy cập
Thông tin kiểm tra
Thông tin kiểm tra
Thông tin kiểm tra
Hình 51. Biểu đồ dòng dữ liệu hàm Quản lý danh sách Module
5.3.2 Biểu đồ dòng dữ liệu hàm 2.2 – Quản lý Tab
Quản trị
Kiểm tra quyền Admin
Thông báo
Quyền không hợp lệ
Quyền
Tạo Tab
Sửa Tab
Xóa Tab
Cấu hình
Cấu hình
Cấu hình
Tên truy cập
Thông tin kiểm tra
Thông tin kiểm tra
Thông tin kiểm tra
Hình 52. Biểu đồ dòng dữ liệu hàm Quản lý Tab
5.3.3 Biểu đồ dòng dữ liệu hàm 2.3 – Tổ chức Module
Quản trị
Kiểm tra quyền Admin
Thông báo
Không hợp lệ
Quyền
Cập nhật Module
Sửa Module
Xóa Module
Cấu hình
Cấu hình
Cấu hình
Tên truy cập
Thông tin kiểm tra
Thông tin kiểm tra
Thông tin kiểm tra
Hình 53. Biểu đồ dòng dữ liệu hàm Tổ chức Module
5.4 Biểu đồ dòng dữ liệu hàm 3 – Tra cứu tuyển sinh
Người dùng
Tra cứu kết quả tuyển sinh
Yêu cầu
Tuyển sinh
Quản trị viên
Kết quả
Quản lý kết quả tuyển sinh
Thông tin kết quả tuyển sinh
Nhập kết quả tuyển sinh
Xóa
Sửa
Yêu cầu
Yêu cầu
Yêu cầu
Tuyển sinh
Hình 54. Biểu đồ dòng dữ liệu hàm Tra cứu tuyển sinh
5.5 Biểu đồ dòng dữ liệu hàm 4 – Quản lý tin tức
Quản trị
4.1
Quản lý trang tin
Tin tức
4.3
Quản lý liên kết nhanh
4.4
Quản lý thảo luận
4.2
Quản lý thông báo
Thảo luận
Thư mục
Liên kết
Tin tức
Người dùng
Trang tin
Sự kiện
Thông báo
Liên kết
Thông báo
Thông báo
Người dùng
Liên kết
Thông tin thảo luận
4.5
Quản lý thông tin góp ý
Người dùng
Thông tin góp ý
Thành viên
Góp ý
Quản trị
Xem xét góp ý
Phản hồi
Yêu cầu xem tin
Hình 55. Biểu đồ dòng dữ liệu hàm Quản lý tin tức
5.5.1 Biểu đồ dòng dữ liệu hàm 4.1 – Quản lý trang tin
Trang tin
Hiển thị
Tin tức
Hệ thống quản lý Tab
Thông báo
Sự kiện
Liên kết
Tin tức
Vị trí
hiển thị Module
Thư mục
Vị trí hiển thị tin ,số lượng tin
Người dùng
Yêu cầu xem
Tin tức
Quản trị viên
Tin tức
4.1.1
Quản lý bài viết
4.1.2
Quản lý thư mục
4.1.3
Upload
Gửi bài mới
Yêu cầu
Thông báo
Upload
Yêu cầu
Thư mục
Yêu cầu
Yêu cầu
Hình 56. Biểu đồ dòng dữ liệu hàm Quản lý trang tin
5.5.1.1 Biểu đồ dòng dữ liệu hàm 4.1.1 – Quản lý bài viết
Quản trị
Tin tức
Xem tin
Sửa tin
Xóa tin tức
Thư mục
Tin tức
Yêu cầu
Tìm kiếm
Thư mục
Thông tin
yêu cầu
Thông tin
tìm kiếm
Kết quả
Tin tức
Thông báo
Yêu cầu
Thông báo
Hình 57. Biểu đồ dòng dữ liệu hàm Quản lý bài viết
5.5.1.2 Biểu đồ dòng dữ liệu hàm 4.1.2 – Quản lý thư mục
Quản trị
Xem thư mục
Sửa thư mục
Xóa thư mục
Thư mục
Thư mục
Yêu cầu
yêu cầu
Thư mục
Thông báo
Yêu cầu
Thông báo
Tạo thư mục
Yêu cầu
Kết quả
Thư mục
Hình 58. Biểu đồ dòng dữ liệu hàm Quản lý thư mục
5.5.1.3 Biểu đồ dòng dữ liệu hàm 4.1.3 – Upload
Quản trị
Tải file lên server
Thư mục trên Server
Upload
Đường dẫn
File
Yêu cầu
Thông báo
Hình 59. Biểu đồ dòng dữ liệu hàm Upload
5.5.2 Biểu đồ dòng dữ liệu hàm 4.2 – Quản lý thông báo
Quản trị
Xem thông báo
Sửa thông báo
Thông báo
yêu cầu
Thông báo
Yêu cầu
Thông báo
Tạo thông báo
Yêu cầu
Kết quả
Thông báo
Thành viên
Hình 57. Biểu đồ dòng dữ liệu hàm Quản lý thông báo
5.5.3 Biểu đồ dòng dữ liệu hàm 4.3 – Quản lý liên kết nhanh
Quản trị
Xem liên kết
Sửa liên kết
Xóa liên kết
Liên kết
Liên kết
Yêu cầu
yêu cầu
Liên kết
Thông báo
Yêu cầu
Thông báo
Tạo liên kết
Yêu cầu
Kết quả
Liên kết
Hình 58. Biểu đồ dòng dữ liệu hàm Quản lý liên kết nhanh
5.5.4 Biểu đồ dòng dữ liệu hàm 4.4 – Quản lý thảo luận
Quản trị
Tạo Topic mới
Sửa Topic
Thảo luận
Xem
Trả lời
Thảo luận
Thông tin topic
Thông báo
Thông tin topic
Thảo luận
Thông báo
Xóa Topic
Yêu cầu
Thông báo
Thành viên
Yêu cầu
Yêu cầu
Thông tin thảo luận
Thông báo
Hình 59. Biểu đồ dòng dữ liệu hàm Quản lý thảo luận
5.5.4 Biểu đồ dòng dữ liệu hàm 4.5 – Quản lý thông tin góp ý
Quản trị
Xem
Trả lời
Xóa
Người góp ý
Email,
nội dung trả lời
Góp ý
Yêu cầu
Thông tin góp ý
Yêu cầu
Góp ý
Thông báo
Hình 60. Biểu đồ dòng dữ liệu hàm Quản lý thông tin góp ý
5.6 Biểu đồ dòng dữ liệu hàm 5 – Tra cứu thông tin sinh viên
Người dùng
Tra cứu thông tin sinh viên
Yêu cầu
Sinh viên
Quản trị viên
Kết quả
Quản lý thông tin sinh viên
Thông tin sinh viên
Nhập thông tin sinh viên
Xóa
Sửa
Điếm chuẩn / Thông tin sinh viên
Yêu cầu
Yêu cầu
Sinh viên
Tuyển sinh
Hình 61. Biểu đồ dòng dữ liệu hàm Tra cứu thông tin sinh viên
MÔ HÌNH THỰC THỂ LIÊN KẾT
6.1 Xác định thực thể
Chức năng
Thực thể
Quản lý thành viên và phân quyền thành viên
Thành viên, quyền, quyền thành viên
Quản lý thông tin góp ý
Góp ý
Quản lý Điểm tuyển sinh
Điểm tuyển sinh
Chức năng Thảo luận
Thảo luận
Chức năng Thông báo
Thông báo
Chức năng quản lý sinh viên
Sinh viên
Quản lý các sự kiện
Sự kiện
Quản lý các liên kết nóng
Liên kết
Chức năng Quản lý tin tức
Tin tức, nhóm tin tức
Quản lý uploadfile
Upload
Thuộc tính của thực thể
Tên thực thể
Thuộc tính
Thành viên
Mã thành viên, Tên truy cập, Tên thành viên, Mật khẩu, Email
Quyền
Mã quyền, Tên quyền
Quyền thành viên
Mã quyền, mã thành viên
Góp ý
Mã góp ý, người gửi, email, tiêu đề, nội dung, ngày gửi
Điểm tuyển sinh
Mã thí sinh, Tên thí sinh, Ngày sinh, Quê quán, Số báo danh, Hệ đào tạo, Năm tuyển sinh, Điểm môn1,Hệ số môn 1, Điểm môn2, Hệ số môn2, Điểm môn3, Hệ số môn 3, Điểm thưởng, Tổng điểm,Trạng thái
Thảo luận
Mã thảo luận, Mã Module, Tiêu đề, Ngày gửi, Nội dung, Ngày hết hạn, Người gửi
Thông báo
Mã thông báo, Mã Module, Người gửi, Ngày gửi, Tiêu đề, Liên kết, Ngày hết hạn, Nội dung
Sự kiện
Mã sự kiện, Mã Module, Người gửi, Ngày gửi, Tiêu đề, Nơi xảy ra, Ngày hết hạn, Nội dung
Liên kết
Mã liên kết, Mã Module, Người gửi, Ngày gửi, Tiêu đề, Nội dung, Đường dẫn
Sinh viên
Mã sinh viên, Tên sinh viên, Ngày sinh, Quê quán, Địa chỉ, Số báo danh, Hệ đào tạo, Năm tuyển sinh, Điểm môn1,Hệ số môn1, Điểm môn2, Hệ số môn2, Điểm môn3, Hệ số môn 3, Điểm thưởng, Tổng điểm,Lớp, Khoa,Trung bình khóa học, Kiểu tốt nghiệp,Môn tốt nghiệp 1, Môn tốt nghiệp 2, Môn tốt nghiệp 3, Điểm thưởng tốt nghiệp, Trạng thái, Ghi chú
Tin tức
Mã tin, Tiêu đề, Tóm tắt nội dung, Nội Dung, Người gửi, Mã nhóm tin tức, Hình ảnh
Nhóm tin tức
Mã nhóm, Tiêu đề, Mức, Mã thư mục cha, Vị trí hiển thị, Số lượng tin hiển thị
Upload
Mã file, Tên file, Đường dẫn, Người gửi
6.3 Mô hình thực thể liên kết
CHƯƠNG V
THIẾT KẾ HỆ THỐNG
CỔNG THÔNG TIN VIỆN ĐẠI HỌC MỞ HÀ NỘI
Chương 5 trình bày 5 vấn đề chính sau
- Đặc tả tiến trình
- Cấu trúc cổng thông tin Viện Đại học Mở Hà Nội
- Cơ sở dữ liệu quan hệ
- Các giao diện chính
- Các đoạn code tiêu biểu
I. ĐẶC TẢ TIẾN TRÌNH
Đặc tả tiến trình hệ thống dùng giả mã
1.1 Đặc tả tiến trình đăng nhập
1.1.1 Đặc tả tiến trình xử lý đăng nhập
1, myname = tên truy cập
2, my pass = mật khẩu
3, Mở kho dữ liệu “Thành viên”
4, Find( THANHVIEN.name) = myname
5, If không thấy then
a,Thông báo tên truy cập không hợp lệ
b, Dừng
6, Kiểm tra mật khẩu
If THANHVIEN.pass mypass then
a, Thông báo sai mật khẩu
b, Dừng
7, Lấy quyền quản trị của thành viên
myroleid : mã quyền của thành viên
THANHVIEN.roleid = myroleid
8, Đóng kho “Thành viên”
9, Mở kho “Quyền”
10, Tìm quyền của thành viên
Find(myroleid) = QUYEN.roleid
Return tên quyền
11, Đóng kho “Quyền”
12, Thông báo thành viên đăng nhập thành công
1.1.2 Đặc tả tiến trình xử lý đổi mật khẩu
1, Đăng nhập thành công
2, newpass = mật khẩu mới
3, Mở kho dữ liệu “Thành viên”
4, Find ( THANHVIEN.name) = tên truy cập đã đăng nhập
5, Cập nhật lại mật khẩu
THANHVIEN.pass = newpass
6, Đóng kho “Thành viên”
7, Thông báo đã đổi mật khẩu thành công
1.1.3 Đặc tả tiến trình xử lý quên mật khẩu
1, myname = tên truy cập
2, Gửi cho Người quản trị (Admin)
Các công việc của Admin
3, Nhận thông tin người dùng quên mật khẩu
4, Admin đăng nhập bằng tài khoản của Admin
5, Chọn phần Sửa thông tin thành viên
6, Nhập myname (người dùng vừa gửi)
7, Mở kho dữ liệu “Thành viên”
8, Find(THANHVIEN.name) = myname
9, If không thấy then
a,Thông báo tên truy cập không hợp lệ
b, Thông báo cho người dùng không có tên truy cập đã nêu.
c, Dừng
10, Cập nhật lại mật khẩu
newpass = mật khẩu mới
THANHVIEN.pass = newpass
11, Đóng kho “Thành viên”
12, Thông báo cho người dùng đã cấp lại mật khẩu
13, Gửi cho người dùng mật khẩu mới
1.2 Đặc tả tiến trình Đăng ký thành viên
1, Vào mục “Đăng ký thành viên”
2, newname = tên thành viên mới
3, newpass = mật khẩu
4, Nhập Email
5, Hệ thống mở kho dữ liệu “Thành viên”
6, Kiểm tra thành viên mới nhập có trùng tên với thành viên đã có hay không
If trùng then
a, Thông báo trùng tên thành viên
b, Dừng
7, Tạo bản ghi thành viên
8, Cập nhật vào Kho dữ liệu “Thành viên”
9, Đóng kho “Thành viên”
10, Thông báo đã cập nhật thành công
1.3 Đặc tả tiến trình hiển thị của Trang tin tức
1, Yêu cầu hiển thị Trang tin tức
2, Mở Kho “Tin tức”,“Thư mục”,“Thông báo”, “Liên kết nhanh”.
3, Lấy dữ liệu “Trang tin tức” yêu cầu để hiển thị
a, Các thông báo còn hiệu lực
b, Các liên kết nhanh
c, Các Module được chỉ định hiển thị trên trang tin tức
d, Các Topic được chỉ định hiện tại các vị trí
e, Số lượng tin chỉ định hiển thị cho mỗi Topic
4, Đóng kho “Tin tức”,“Thư mục”,“Thông báo”, “Liên kết nhanh”.
5, Hiển thị
1.4 Đặc tả tiến trình Tra cứu điểm tuyển sinh
1, Nhập thông tin tìm kiếm
2, Mở Kho “Tuyển sinh”.
3, Tùy chọn Tìm kiếm
Theo Tên thí sinh
Theo Số báo danh thí sinh
Theo Quê quán thí sinh
4, If chọn tìm kiếm theo tên then
myname = Tên thí sinh
a, Find(TUYENSINH.name) = myname
b, If không tìm thấy then
x, Thông báo không tìm thấy
y, Dừng
c, Return myname
d, Thông báo kết quả
5, If chọn tìm kiếm theo số báo danh then
mynumber = Số báo danh thí sinh
a, Find(TUYENSINH.number) = mynumber
b, If không tìm thấy then
x, Thông báo không tìm thấy
y, Dừng
c, Return mynumber
d, Thông báo kết quả
6, If chọn tìm kiếm theo quê quán then
myplace = quê quán thí sinh
a, Find(TUYENSINH.place) = myplace
b, If không tìm thấy then
x, Thông báo không tìm thấy
y, Dừng
c, Return myplace
d, Thông báo kết quả
7, Đóng kho “Tuyển sinh”
1.5 Đặc tả tiến trình Tra cứu thông tin sinh viên
1, mname = tên sinh viên
2, myclass = Lớp
3, myFaculty = Khoa
4, mySystem = Hệ đào tạo
5, Mở Kho “Sinh viên”.
6, Tìm kiếm
Find( SINHVIEN.class = myclass and
SINHVIEN.faculty = myFaculty and
SINHVIEN.system = mySystem)
If không tìm thấy then
a, Thông báo không tìm thấy
a, Dừng
7, Return Thông tin sinh viên
8, Đóng kho “Sinh viên”
9, Thông báo kết quả.
1.6 Đặc tả tiến trình Thông tin góp ý
1, Nhập thông tin góp ý
2, Mở kho “Góp ý”
3, Tạo bản ghi mới
4, Cập nhật vào kho “Góp ý”
5, Đóng kho “Góp ý”
6, Thông báo góp ý thành công.
1.7 Đặc tả tiến trình Quản trị hệ thống
1.7.1 Đặc tả tiến trình Quản lý Tab
1.7.1.1 Đặc tả tiến trình Tạo Tab
1, Nhập tên Tab
2, Cập nhật vào file Cấu hình
3, Thông báo cập nhật thành công
1.7.1.2 Đặc tả tiến trình Xóa Tab
1, Chọn Tab cần xóa
2, Xóa Tab
a, Xóa tab
b, Xóa các Module đang được hiển thị trong Tab đó
3, Thông báo Xóa thành công
1.7.1.3 Đặc tả tiến trình Sửa Tab
1, Chọn Tab cần sửa
2, Nhập tên Tab mới
3, Cập nhật thêm/ bớt Module hiển thị
4, Cập nhật vào file Cấu hình
5, Thông báo sửa thành công
1.7.2 Đặc tả tiến trình Quản lý Module
1.7.2.1 Đặc tả tiến trình Cập nhật Module
1, Nhập tên Module
2, Cập nhật vào file Cấu hình
3, Tải Module lên Server
4, Thông báo cập nhật thành công
1.7.2.2 Đặc tả tiến trình Xóa Module
1, Chọn Module cần xóa
2, Xóa Module
a, Xóa định nghĩa Module trong file cấu hình
b, Xóa Module trên Server
3, Thông báo Xóa thành công
1.7.2.3 Đặc tả tiến trình Sửa Module (Sửa tên Module)
1, Chọn Module cần sửa
2, Nhập tên Module mới
3, Cập nhật vào file Cấu hình
4, Thông báo sửa thành công
1.7.3 Đặc tả tiến trình Quản lý Thành viên
1.7.3.1 Đặc tả tiến trình Tạo tài khoản mới
1, newname = tên thành viên mới
2, newpass = mật khẩu
3, Nhập Email
4, Mở kho dữ liệu “Thành viên”
5, Kiểm tra thành viên mới nhập có trùng tên với thành viên đã có hay không
If trùng then
a, Thông báo trùng tên thành viên
b, Dừng
6, Tạo bản ghi thành viên
7, Cập nhật vào Kho dữ liệu “Thành viên”
8, Đóng kho “Thành viên”
9, Thông báo đã cập nhật thành công
1.7.3.2 Đặc tả tiến trình Sửa thông tin thành viên
1, myname = tên thành viên
2, Mở kho dữ liệu “Thành viên”
3, Find(THANHVIEN.name) = myname
4, If không tìm thấy then
a, Thông báo không có thành viên
b, Dừng
5, Sửa lại thông tin thành viên
7, Cập nhật vào bản ghi THANHVIEN
8, Đóng kho “thành viên”
9, Thông báo sửa thành công
1.7.3.3 Đặc tả tiến trình Xóa thành viên
1, mname = tên thành viên cần xóa
2, Mở kho dữ liệu “Thành viên”
3, Find( THANHVIEN.name) = mname
4, If không tìm thấy then
a, Thông báo không có thành viên
b, Dừng
5, Xóa bản ghi THANHVIEN
6, Đóng kho “Thành viên”
7, Thông báo xóa thành công
1.7.3.4 Đặc tả tiến trình Tìm kiếm thành viên
1, mname = tên thành viên
2, Mở kho dữ liệu “Thành viên”
3, Find( THANHVIEN.name) = myname
4, If không tìm thấy then
a, Thông báo không có thành viên
b, Dừng
5, Return THANHVIEN
6, Đóng kho “Thành viên”
7, Thông báo kết quả tìm kiếm.
1.7.4 Đặc tả tiến trình Quản lý Quyền
1.7.4.1 Đặc tả tiến trình Tạo quyền mới
1, newrole = tên quyền mới
2, Mở kho dữ liệu “Quyền”
3, Cập nhật vào Kho dữ liệu “Quyền”
4, Đóng kho “Quyền”
5, Thông báo đã cập nhật thành công
1.7.4.2 Đặc tả tiến trình Sửa quyền
1, editrole = quyền cần sửa
2, Mở kho dữ liệu “Quyền”
3, Sửa lại tên quyền
4, Find(ROLE.name) =editrole
5, Cập nhật vào bản ghi ROLE
6, Đóng kho “Quyền”
7, Thông báo sửa thành công
1.7.4.3 Đặc tả tiến trình Xóa quyền
1, myrole = tên quyền
2, Mở kho dữ liệu “Quyền”
3, Find(ROLE.name) = myrole
4, Xóa bản ghi ROLE
5, Đóng kho “Quyền”
6, Thông báo xóa thành công
1.7.5 Đặc tả tiến trình Quản lý Tin tức
1.7.5.1 Đặc tả tiến trình Cập nhật bài mới
1, Nhập thông tin bài viết
2, Mở kho dữ liệu “Tin tức”
3, Tạo bản ghi mới
4, Tải ảnh (nếu có) lên Server
5, Cập nhật vào Kho dữ liệu “Tin tức”
6, Đóng kho “Tin tức”
7, Thông báo đã cập nhật thành công
1.7.5.2 Đặc tả tiến trình xem bài viết
1, Chọn bài viết cần xem
2, Mở kho dữ liệu “Tin tức”
3, myId= mã bài viết
Find( TINTUC.id) = myId
4, Tải nội dung về Client
5, Đóng kho “Tin tức”
6, Hiển thị nội dung tin
1.7.5.3 Đặc tả tiến trình Xóa bài viết
1, Chọn bài viết cần xóa
2, Mở kho dữ liệu “Tin tức”
3, myId= mã bài viết
Find( TINTUC.id) = myId
4, Xóa bản ghi TINTUC
5, Đóng kho “Tin tức”
6, Thông báo xóa thành công
1.7.5.4 Đặc tả tiến trình Sửa bài viết
1, myId= mã bài viết
2, Mở kho dữ liệu “Tin tức”
3, Find(TINTUC.id) = myId
4, Tải bản ghi TINTUC về Client
5, Sửa nội dung bài viết
6,Cập nhật nội dung mới vào bản ghi TINTUC
7, Đóng kho “Tin tức”
8, Thông báo sửa thành công
1.7.5.5 Đặc tả tiến trình tìm kiếm bài viết (theo thư mục)
1, Chọn thư mục chứa bài viết cần tìm
2, Mở kho dữ liệu “Thư mục”
3, myId= mã thư mục
Find(THUMUC.id) = myId
4, Hiển thị tiêu đề tất cả bài viết có mã thư mục = myId
5, Đóng kho “Thư mục”
1.7.5 Đặc tả tiến trình Upload
1, Chọn file cần upload
2, Mở kho dữ liệu “Upload”
3, Tải file lên Server
4, Tạo bản ghi mới
5, Cập nhật đường dẫn vào kho “Upload”
6, Đóng kho “Upload”
7, Thông báo upload thành công
1.7.6 Đặc tả tiến trình Quản lý thư mục
1.7.6.1 Đặc tả tiến trình Tạo thư mục
1, Nhập tên thư mục
2, Mở kho dữ liệu “Thư mục”
3, Tạo bản ghi mới
4, Cập nhật vào Kho dữ liệu “Thư mục”
5, Đóng kho “Thư mục”
6, Thông báo đã cập nhật thành công
1.7.6.2 Đặc tả tiến trình Sửa thư mục
1, Chọn thư mục cần sửa
2, Mở kho dữ liệu “Thư mục”
3, mydirid = mã thư mục
Find( THUMUC.id) = mydirid
4, Sửa thông tin thư mục
5, Cập nhật vào bản ghi THUMUC
6, Đóng kho “Thư mục”
7, Thông báo đã cập nhật thành công
1.7.6.3 Đặc tả tiến trình Xóa thư mục
1, mydirid = mã thư mục
2, Mở kho dữ liệu “Thư mục”
3, Find(THUMUC.id) = mydirid
4, Xóa thư mục con của bản ghi THUMUC
5, Xóa bản ghi THUMUC
6, Đóng kho “Thư mục”
7, Thông báo đã xóa thành công
1.7.7 Đặc tả tiến trình Quản lý tuyển sinh
1.7.7.1 Đặc tả tiến trình Nhập kết quả tuyển sinh
1, Nhập tên thông tin thí sinh
2, Mở kho dữ liệu “Tuyển sinh”
3, Tạo bản ghi mới
4, Cập nhật vào Kho dữ liệu “Tuyển sinh”
5, Đóng kho “Tuyển sinh”
6, Thông báo đã cập nhật thành công
1.7.7.2 Đặc tả tiến trình Sửa kết quả tuyển sinh
1, Nhập tên thí sinh cần sửa
2, Mở kho dữ liệu “Tuyển sinh”
3, myid = Mã thí sinh
Find(TUYENSINH.id) = myid
4, Sửa thông tin thí sinh
5, Cập nhật lên bản ghi TUYENSINH
6, Đóng kho “Tuyển sinh”
7, Thông báo sửa thành công
1.7.7.1 Đặc tả tiến trình Xóa kết quả tuyển sinh
1, Nhập năm tuyển sinh cần xóa
2, Nhập hệ đào tạo cần xóa
3, Mở kho “Tuyển sinh”
4, delyear = năm cần xóa
delsys = hệ đào tạo cần xóa
5, while TUYENSINH.year = delyear AND TUYENSINH.system = delsys
DO
Delete(TUYENSINH)
TUYENSINH += 1
End while
6, Đóng kho “Tuyển sinh”
7, Thông báo đã xóa thành công
1.7.8 Đặc tả tiến trình nhập thông tin sinh viên
1, exyear = năm tuyển sinh
2, sys = Hệ đào tạo
3, fal = Khoa
4, Nhập điểm chuẩn tuyển sinh (point = điểm chuẩn)
5, Mở kho “Tuyển sinh”
6, Mở kho “Sinh viên”
7, Cập nhật thí sinh thi đỗ sang kho “Sinh viên”
while TUYENSINH.point >= point DO
SINHVIEN = TUYENSINH
SINHVIEN +=1
TUYENSINH +=1
End while
8, Đóng kho “Tuyển sinh”
9, Đóng kho “Sinh viên”
10, Thông báo cập nhật thành công
1.7.9 Đặc tả tiến trình Quản lý liên kết
1.7.9.1 Đặc tả tiến trình Tạo liên kết
1, linkname = tên liên kết
2, Mở kho dữ liệu “Liên kết”
3, Tạo bản ghi mới
4, Cập nhật vào Kho dữ liệu “Liên kết”
5, Đóng kho “Liên kết”
6, Thông báo đã cập nhật thành công
1.7.9.2 Đặc tả tiến trình Sửa liên kết
1, mylink = tên liên kết cần sửa
2, Mở kho dữ liệu “Liên kết”
3, myid = Mã liên kết
Find(LIENKET.id) = myid
4, Sửa thông tin liên kết
5, Cập nhật lên bản ghi LIENKET
6, Đóng kho “Liên kết”
7, Thông báo sửa thành công
1.7.10 Đặc tả tiến trình Quản lý thông tin góp ý
1.7.10.1 Đặc tả tiến trình Xem thông tin góp ý
1, Chọn thông tin góp ý muốn xem
2, Mở kho “Góp ý”
3, Ideaid = mã thông tin góp ý
Tìm kiếm GOPY.id = Ideaid
4, Tải về Client
5, Đóng kho “Góp ý”
1.7.10.1 Đặc tả tiến trình Xóa thông tin góp ý
1, myideaid = mã tin góp ý
2, Mở kho dữ liệu “Góp ý”
3, Find(GOPY.id) = myideaid
4, Xóa bản ghi GOPY
6, Đóng kho “Góp ý”
7, Thông báo đã xóa thành công
II. Cấu trúc Cổng thông tin Viện Đại Học Mở Hà Nội
2.1 Cấu trúc cổng
Cổng thông tin Viện Đại Học Mở được cấu trúc dưới dạng Tab. Tất cả các thông tin sẽ được trình bày trên 1 trang duy nhất (default.aspx)
Portal Default .aspx
Tab1
Header …
Nội dung
Tab3
Tab2
……
Nội dung trái
Nội dung phải
Nội dung giữa
Footer …
Hình 63 : Cấu trúc Cổng Thông Tin Viện Đại Học Mở Hà Nội
Các Module chương trình sẽ được trình bày trên các Tab. Khi mỗi Tab được chọn, nội dung của Tab đó sẽ được hiển thị.
Module 1
Module 2
Module 3
…
Tab1
Hình 64: Cấu trúc một Tab
2.2 Ý nghĩa của Tab trong hệ thống
Trong Cổng thông tin Viện Đại Học Mở Hà Nội, có 3 file quan trọng nhất đó là : Configuration.vb , DesktopControls.vb , PortalCfg.xml
PortalCfg.xml : chứa cấu trúc của portal dạng xml
Configuration.vb : là file quan trọng nhất , chứa lõi của portal .
DesktopControls.vb : chứa định nghĩa PortalModuleControl , là baseclass của các module trong Portal .
Khi Click vào 1 Tab sẽ xuất hiện đường dẫn như sau:
trong đó :
tabindex : thứ tự của tab hiện thời.
tabid : id của tab hiện thời
Như vậy đường dẫn trên có ý nghĩa : tab hiện thời có id là 1 và có thứ tự trong listtab là 0 . Như thế phần nội dung phía dưới sẽ hiển thị nội dung của tab có id là 1 và sẽ tô trắng tab có thứ tự là 0 trong listtab (chính là phần tử có id = 1). Trong hệ thống đây chính là “trang chủ”
Trong file Global.asax, mỗi lần có yêu cầu (request) (mỗi lần hiển thị trang) các tham số tabindex và tabid sẽ được nhận và từ đó sẽ lấy ra PortalSettings cần thiết . Cùng với SiteSettings , 2 đối tượng này sẽ được cho vào Context (đối tượng tồn tại suốt trong thời gian chạy Portal) . Đoạn mã sau nằm trong file Global.asax thực thi việc này.
Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
Dim tabIndex As Integer = 0
Dim tabId As Integer = 1
' Lay tabindex tu querystring
If Not (Request.Params("tabindex") Is Nothing) Then
tabIndex = CInt(Request.Params("tabindex"))
End If
' lay TabID tu querystring
If Not (Request.Params("tabid") Is Nothing) Then
tabId = CInt(Request.Params("tabid"))
End If
' Add doi tuong PortalSettings vao context
Context.Items.Add("PortalSettings", New PortalSettings(tabIndex, tabId))
' Doc thong tin cau hinh tu file XML và add vao context
Dim config As Configuration = New Configuration
Context.Items.Add("SiteSettings", config.GetSiteSettings())
Try
If Not (Request.UserLanguages Is Nothing) Then
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Request.UserLanguages(0))
Else
Thread.CurrentThread.CurrentCulture = New CultureInfo("en-us")
End If
Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture
Catch ex As Exception
Thread.CurrentThread.CurrentCulture = New CultureInfo("en-us")
End Try
End Sub
-----------------------------------------------------------------------------------------------------------
Như vậy nhiệm vụ còn lại của DestopDefault.aspx chỉ là sử dụng 2 đối tượng này (tabindex, tabid) và hiển thị các Module. Đoạn mã sau nằm trong file DestopDefault.aspx.vb thực thi công việc này.
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
InitializeComponent()
If Request.Params("tabindex") Is Nothing Or Request.Params("tabid") Is Nothing Then
Response.Redirect("DesktopDefault.aspx?tabindex=0&tabid=1")
Return
End If
' Lay PortalSettings tu` Current Context
Dim _portalSettings As PortalSettings = CType(HttpContext.Current.Items("PortalSettings"), PortalSettings)
'Kiem tra quyen`
If PortalSecurity.IsInRoles(_portalSettings.ActiveTab.AuthorizedRoles) = False Then
Response.Redirect("~/Admin/AccessDenied.aspx")
End If
' Tu dong chen` cac module vao` trang .
If _portalSettings.ActiveTab.Modules.Count > 0 Then
' Lap qua cac Configuration
Dim _moduleSettings As ModuleSettings
For Each _moduleSettings In _portalSettings.ActiveTab.Modules
Dim parent As Control = Page.FindControl(_moduleSettings.PaneName)
If _moduleSettings.CacheTime = 0 Then
Dim portalModule As PortalModuleControl = CType(Page.LoadControl(_moduleSettings.DesktopSrc), PortalModuleControl)
portalModule.PortalId = _portalSettings.PortalId
portalModule.ModuleConfiguration = _moduleSettings
parent.Controls.Add(portalModule)
Else
Dim portalModule As New CachedPortalModuleControl
portalModule.PortalId = _portalSettings.PortalId
portalModule.ModuleConfiguration = _moduleSettings
parent.Controls.Add(portalModule)
End If
' moi module duoc cach nhau boi (xuong dong`)
parent.Controls.Add(New LiteralControl(""))
parent.Visible = True
Next _moduleSettings
End If
End Sub
III. Cơ sở dữ liệu quan hệ
Cơ sở dữ liệu của hệ thống gồm 13 bảng dữ liệu có quan hệ với nhau như sau:
Hình 65 : Cơ sở dữ liệu quan hệ của hệ thống
3.1 Cơ sở dữ liệu cho Module Quản lý thành viên
Hình 66 : Cơ sở dữ liệu cho Module Quản lý thành viên
3.2 Cơ sở dữ liệu cho Module Quản lý tin tức
Hình 67 : Cơ sở dữ liệu cho Module Quản lý tin tức
3.3 Cơ sở dữ liệu cho Module Tra cứu điểm tuyển sinh
Hình 68 : Cơ sở dữ liệu cho Module Tra cứu điểm tuyển sinh
3.4 Cơ sở dữ liệu cho Module tra cứu thông tin sinh viên
Hình 69 : Cơ sở dữ liệu cho Module Tra cứu thông tin sinh viên
3.5 Nội dung các bảng dữ liệu
Tên bảng
Nội dung
Portal_Student
Lưu trữ các thông tin về sinh viên
Portal_News_Uploadfile
Lưu trữ các thông tin về các file được tải lên Server
Portal_Users
Lưu trữ các thông tin về thành viên hệ thống
Portal_UserRoles
Lưu trữ các thông tin về mã thành viên và mã quyền
Portal_Roles
Lưu trữ các thông tin về quyền truy nhập
Portal_Point
Lưu trữ các thông tin về kết quả tuyển sinh
Portal_Idea
Lưu trữ các thông tin về các ý kiến đóng góp cho hệ thống của người dùng
Portal_Discussion
Lưu trữ các thông tin về thảo luận của các thành viên hệ thống
Portal_Annoucements
Lưu trữ các thông tin về các thông báo
Portal_Events
Lưu trữ các thông tin về các sự kiện
Portal_NewsCat
Lưu trữ các thông tin về thư mục tin tức
Portal_NewsItem
Lưu trữ các thông tin về tin tức
Portal_Link
Lưu trữ các thông tin về các liên kết nhanh
IV. Các giao diện chính
Hình 70 : Giao diện hệ thống (được hiển thị bởi Module Tin tức)
Hình 71 : Giao diện khi 1 mẩu tin được hiển thị
Hình 72 : Giao diện tiếp nhận thông tin góp ý
Hình 73 : Giao diện hệ thống quản lý thông tin góp ý
Hình 74 : Giao diện hệ thống quản lý Module
Hình 75 : Giao diện hệ thống quản lý tab
Hình 76 : Giao diện hệ thống tổ chức Module
Hình 77 : Giao diện hệ thống tra cứu kết quả tuyển sinh
V. Một số đoạn chương trình tiêu biểu
5.1 Đoạn chương trình cấu hình hệ thống
Public Class Configuration
Public Sub UpdatePortalInfo(ByVal portalId As Integer, ByVal portalName As String, ByVal alwaysShow As Boolean)
Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Items("SiteSettings"), SiteConfiguration)
With siteSettings.Global.FindByPortalId(portalId)
.PortalId = portalId
.PortalName = portalName
.AlwaysShowEditButton = alwaysShow
End With
SaveSiteSettings()
End Sub
‘----------------------
Public Function AddTab(ByVal portalId As Integer, ByVal tabName As String, ByVal tabOrder As Integer) As Integer
Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Items("SiteSettings"), SiteConfiguration)
Dim newRow As SiteConfiguration.TabRow = siteSettings.Tab.NewTabRow()
With newRow
.TabName = tabName
.TabOrder = tabOrder
.AccessRoles = "All Users"
End With
siteSettings.Tab.AddTabRow(newRow)
SaveSiteSettings()
Return newRow.TabId
End Function
‘---------------------------------
Public Sub UpdateTab(ByVal portalId As Integer, ByVal tabId As Integer, ByVal tabName As String, ByVal tabOrder As Integer, ByVal authorizedRoles As String)
Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Items("SiteSettings"), SiteConfiguration)
With siteSettings.Tab.FindByTabId(tabId)
.TabName = tabName
.TabOrder = tabOrder
.AccessRoles = authorizedRoles
End With
SaveSiteSettings()
End Sub
‘------------------------------------
Public Sub UpdateTabOrder(ByVal tabId As Integer, ByVal tabOrder As Integer)
Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Items("SiteSettings"), SiteConfiguration)
With siteSettings.Tab.FindByTabId(tabId)
.TabOrder = tabOrder
End With
SaveSiteSettings()
End Sub
Public Sub DeleteTab(ByVal tabId As Integer)
Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Items("SiteSettings"), SiteConfiguration)
Dim tabTable As SiteConfiguration.TabDataTable = siteSettings.Tab
Dim tabRow As SiteConfiguration.TabRow = siteSettings.Tab.FindByTabId(tabId)
Dim myConnection As New SqlConnection(ConfigurationSettings.AppSettings("connectionString"))
Dim myCommand As New SqlCommand("Portal_DeleteModule", myConnection)
myCommand.CommandType = CommandType.StoredProcedure
Dim parameterModuleID As New SqlParameter("@ModuleID", SqlDbType.Int, 4)
myConnection.Open()
Dim moduleRow As SiteConfiguration._ModuleRow
Try
For Each moduleRow In tabRow.GetModuleRows()
myCommand.Parameters.Clear()
parameterModuleID.Value = moduleRow.ModuleId
myCommand.Parameters.Add(parameterModuleID)
myCommand.ExecuteNonQuery()
Next
Catch ex As Exception
End Try
myConnection.Close()
tabTable.RemoveTabRow(tabRow)
SaveSiteSettings()
End Sub
‘-------------------------------------
Public Sub UpdateModuleOrder(ByVal ModuleId As Integer, ByVal ModuleOrder As Integer, ByVal pane As String)
Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Items("SiteSettings"), SiteConfiguration)
With siteSettings._Module.FindByModuleId(ModuleId)
.ModuleOrder = ModuleOrder
.PaneName = pane
End With
SaveSiteSettings()
End Sub
‘---------------------------------------
Public Function AddModule(ByVal tabId As Integer, ByVal moduleOrder As Integer, ByVal paneName As String, ByVal title As String, ByVal moduleDefId As Integer, ByVal cacheTime As Integer, ByVal editRoles As String, ByVal showMobile As Boolean) As Integer
Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Items("SiteSettings"), SiteConfiguration)
Dim newModule As SiteConfiguration._ModuleRow = siteSettings._Module.New_ModuleRow()
With newModule
.ModuleDefId = moduleDefId
.ModuleOrder = moduleOrder
.ModuleTitle = title
.PaneName = paneName
.EditRoles = editRoles
.CacheTimeout = cacheTime
.TabRow = siteSettings.Tab.FindByTabId(tabId)
End With
' add modun moi vao trong bang modun
siteSettings._Module.Add_ModuleRow(newModule)
' luu lai
SaveSiteSettings()
' tra lai id modun moi
Return newModule.ModuleId
End Function
‘---------------------------------------------------
Public Function UpdateModule(ByVal moduleId As Integer, ByVal moduleOrder As Integer, ByVal paneName As String, ByVal title As String, ByVal cacheTime As Integer, ByVal editRoles As String) As Integer
Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Items("SiteSettings"), SiteConfiguration)
With siteSettings._Module.FindByModuleId(moduleId)
.ModuleOrder = moduleOrder
.ModuleTitle = title
.PaneName = paneName
.CacheTimeout = cacheTime
.EditRoles = editRoles
End With
SaveSiteSettings()
Return moduleId
End Function
‘-----------------------------------------------------
Public Sub DeleteModule(ByVal moduleId As Integer)
Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Items("SiteSettings"), SiteConfiguration)
Dim myConnection As New SqlConnection(ConfigurationSettings.AppSettings("connectionString"))
Dim myCommand As New SqlCommand("Portal_DeleteModule", myConnection)
myCommand.CommandType = CommandType.StoredProcedure
Dim parameterModuleID As New SqlParameter("@ModuleID", SqlDbType.Int, 4)
myConnection.Open()
parameterModuleID.Value = moduleId
myCommand.Parameters.Add(parameterModuleID)
myCommand.ExecuteNonQuery()
myConnection.Close()
siteSettings._Module.Remove_ModuleRow(siteSettings._Module.FindByModuleId(moduleId))
SaveSiteSettings()
End Sub
‘--------------------------------------------------
Public Sub UpdateModuleSetting(ByVal moduleId As Integer, ByVal key As String, ByVal value As String)
Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Items("SiteSettings"), SiteConfiguration)
Dim moduleRow As SiteConfiguration._ModuleRow = siteSettings._Module.FindByModuleId(moduleId)
Dim settingsRow As SiteConfiguration.SettingsRow
If moduleRow.GetSettingsRows().Length > 0 Then
settingsRow = moduleRow.GetSettingsRows()(0)
Else
settingsRow = siteSettings.Settings.NewSettingsRow()
settingsRow._ModuleRow = moduleRow
siteSettings.Settings.AddSettingsRow(settingsRow)
End If
Dim settingRow As SiteConfiguration.SettingRow
Dim settingRows() As SiteConfiguration.SettingRow = settingsRow.GetSettingRows()
If settingRows.Length = 0 Then
If value String.Empty Then
settingRow = siteSettings.Setting.NewSettingRow()
With settingRow
.SettingsRow = settingsRow
.Name = key
.Setting_Text = value
End With
siteSettings.Setting.AddSettingRow(settingRow)
End If
Else
Dim found As Boolean = False
Dim i As Int32
For i = 0 To settingRows.Length - 1
If settingRows(i).Name = key Then
If value = String.Empty Then
siteSettings.Setting.RemoveSettingRow(settingRows(i))
Else
settingRows(i).Setting_Text = value
End If
found = True
End If
Next
If found = False Then
If value String.Empty Then
settingRow = siteSettings.Setting.NewSettingRow()
With settingRow
.SettingsRow = settingsRow
.Name = key
.Setting_Text = value
End With
siteSettings.Setting.AddSettingRow(settingRow)
End If
End If
End If
SaveSiteSettings()
End Sub
‘--------------------------------------------
Public Shared Function GetModuleSettings(ByVal moduleId As Integer) As Hashtable
Dim _settingsHT As New Hashtable
Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Items("SiteSettings"), SiteConfiguration)
Dim moduleRow As SiteConfiguration._ModuleRow = siteSettings._Module.FindByModuleId(moduleId)
If moduleRow.GetSettingsRows().Length > 0 Then
Dim settingsRow As SiteConfiguration.SettingsRow = moduleRow.GetSettingsRows()(0)
If Not settingsRow Is Nothing Then
Dim sRow As SiteConfiguration.SettingRow
For Each sRow In settingsRow.GetSettingRows()
_settingsHT(sRow.Name) = sRow.Setting_Text
Next
End If
End If
Return _settingsHT
End Function
'
' DINH NGHIA MODULE '
Public Function GetModuleDefinitions(ByVal portalId As Integer) As DataRow()
Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Items("SiteSettings"), SiteConfiguration)
Return siteSettings.ModuleDefinition.Select()
End Function
‘----------------------------------
Public Function AddModuleDefinition(ByVal portalId As Integer, ByVal name As String, ByVal desktopSrc As String) As Integer
Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Items("SiteSettings"), SiteConfiguration)
Dim newModuleDef As SiteConfiguration.ModuleDefinitionRow = siteSettings.ModuleDefinition.NewModuleDefinitionRow()
With newModuleDef
.FriendlyName = name
.DesktopSourceFile = desktopSrc
End With
siteSettings.ModuleDefinition.AddModuleDefinitionRow(newModuleDef)
SaveSiteSettings()
Return newModuleDef.ModuleDefId
End Function
Public Sub DeleteModuleDefinition(ByVal defId As Integer)
Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Items("SiteSettings"), SiteConfiguration)
Dim myConnection As New SqlConnection(ConfigurationSettings.AppSettings("connectionString"))
Dim myCommand As New SqlCommand("Portal_DeleteModule", myConnection)
myCommand.CommandType = CommandType.StoredProcedure
Dim parameterModuleID As New SqlParameter("@ModuleID", SqlDbType.Int, 4)
myConnection.Open()
Dim moduleRow As SiteConfiguration._ModuleRow
For Each moduleRow In siteSettings._Module.Select()
If moduleRow.ModuleDefId = defId Then
myCommand.Parameters.Clear()
parameterModuleID.Value = moduleRow.ModuleId
myCommand.Parameters.Add(parameterModuleID)
siteSettings._Module.Remove_ModuleRow(moduleRow)
myCommand.ExecuteNonQuery()
End If
Next
myConnection.Close()
siteSettings.ModuleDefinition.RemoveModuleDefinitionRow(siteSettings.ModuleDefinition.FindByModuleDefId(defId))
SaveSiteSettings()
End Sub
*********************************************************************
Public Sub UpdateModuleDefinition(ByVal defId As Integer, ByVal name As String, ByVal desktopSrc As String)
Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Items("SiteSettings"), SiteConfiguration)
With siteSettings.ModuleDefinition.FindByModuleDefId(defId)
.FriendlyName = name
.DesktopSourceFile = desktopSrc
End With
SaveSiteSettings()
End Sub
‘--------------------------------------------
Public Function GetSingleModuleDefinition(ByVal defId As Integer) As SiteConfiguration.ModuleDefinitionRow
Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Items("SiteSettings"), SiteConfiguration)
Return siteSettings.ModuleDefinition.FindByModuleDefId(defId)
End Function
‘-----------------------------------------------
Public Shared Function GetSiteSettings() As SiteConfiguration
Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Cache("SiteSettings"), SiteConfiguration)
If siteSettings Is Nothing Then
siteSettings = New SiteConfiguration
Dim configFile As String = HttpContext.Current.Server.MapPath(ConfigurationSettings.AppSettings("configFile"))
With siteSettings
.Tab.TabIdColumn.AutoIncrement = True
._Module.ModuleIdColumn.AutoIncrement = True
.ModuleDefinition.ModuleDefIdColumn.AutoIncrement = True
siteSettings.ReadXml(configFile)
End With
HttpContext.Current.Cache.Insert("SiteSettings", siteSettings, New CacheDependency(configFile))
End If
Return siteSettings
End Function
‘--------------------------------------------
Public Sub SaveSiteSettings()
Dim siteSettings As SiteConfiguration = CType(HttpContext.Current.Cache("SiteSettings"), SiteConfiguration)
If siteSettings Is Nothing Then
siteSettings = GetSiteSettings()
End If
Dim configFile As String = HttpContext.Current.Server.MapPath(ConfigurationSettings.AppSettings("configFile"))
siteSettings.WriteXml(configFile)
End Sub
End Class
‘------------------------------------
Public Class PortalSettings
Public PortalId As Integer
Public PortalName As String
Public AlwaysShowEditButton As Boolean
Public DesktopTabs As New ArrayList
Public MobileTabs As New ArrayList
Public ActiveTab As New TabSettings
‘-------------------------------
Public Sub New(ByVal tabIndex As Integer, ByVal tabId As Integer)
Dim config As Configuration = New Configuration
Dim siteSettings As SiteConfiguration = config.GetSiteSettings()
Dim tRow As SiteConfiguration.TabRow
For Each tRow In siteSettings.Tab.Select("", "TabOrder")
Dim tabDetails As New TabStripDetails
With tabDetails
.TabId = tRow.TabId
.TabName = tRow.TabName
.TabOrder = tRow.TabOrder
.AuthorizedRoles = tRow.AccessRoles
End With
Me.DesktopTabs.Add(tabDetails)
Next
If Me.ActiveTab.TabId = 0 Then
Me.ActiveTab.TabId = CType(Me.DesktopTabs(0), TabStripDetails).TabId
End If
Dim mRow As SiteConfiguration.TabRow
For Each mRow In siteSettings.Tab.Select("ShowMobile='true'", "TabOrder")
Dim tabDetails As New TabStripDetails
With tabdetails
.TabId = mRow.TabId
.AuthorizedRoles = mRow.AccessRoles
End With
Me.MobileTabs.Add(tabDetails)
Next
Dim activeTab As SiteConfiguration.TabRow = siteSettings.Tab.FindByTabId(tabId)
Dim moduleRow As SiteConfiguration._ModuleRow
For Each moduleRow In activeTab.GetModuleRows()
Dim moduleSettings As New moduleSettings
With moduleSettings
.ModuleTitle = moduleRow.ModuleTitle
.ModuleId = moduleRow.ModuleId
.ModuleDefId = moduleRow.ModuleDefId
.ModuleOrder = moduleRow.ModuleOrder
.TabId = tabId
.PaneName = moduleRow.PaneName
.AuthorizedEditRoles = moduleRow.EditRoles
.CacheTime = moduleRow.CacheTimeout
Dim modDefRow As SiteConfiguration.ModuleDefinitionRow = siteSettings.ModuleDefinition.FindByModuleDefId(.ModuleDefId)
.DesktopSrc = modDefRow.DesktopSourceFile
End With
Me.ActiveTab.Modules.Add(moduleSettings)
Next
Me.ActiveTab.Modules.Sort()
Dim globalSettings As SiteConfiguration.GlobalRow = siteSettings.Global.Rows(0)
Me.PortalId = globalSettings.PortalId
Me.PortalName = globalSettings.PortalName
Me.AlwaysShowEditButton = globalSettings.AlwaysShowEditButton
Me.ActiveTab.TabIndex = tabIndex
Me.ActiveTab.TabId = tabId
Me.ActiveTab.TabOrder = activeTab.TabOrder
Me.ActiveTab.AuthorizedRoles = activeTab.AccessRoles
Me.ActiveTab.TabName = activeTab.TabName
End Sub
End Class
‘-------------------------------------
Public Class ModuleSettings
Implements IComparable
Public ModuleId As Integer
Public ModuleDefId As Integer
Public TabId As Integer
Public CacheTime As Integer
Public ModuleOrder As Integer
Public PaneName As String
Public ModuleTitle As String
Public AuthorizedEditRoles As String
Public DesktopSrc As String
Protected Overridable Function CompareTo(ByVal value As Object) As Integer Implements IComparable.CompareTo
If value Is Nothing Then
Return 1
End If
Dim compareOrder As Integer = CType(value, ModuleSettings).ModuleOrder
If Me.ModuleOrder = compareOrder Then Return 0
If Me.ModuleOrder < compareOrder Then Return -1
If Me.ModuleOrder > compareOrder Then Return 1
Return 0
End Function
End Class
‘--------------------------------
Public Class ModuleItem
Implements IComparable
Private _moduleOrder As Integer
Private _title As String
Private _pane As String
Private _id As Integer
Private _defId As Integer
Public Property ModuleOrder() As Integer
Get
Return _moduleOrder
End Get
Set(ByVal Value As Integer)
_moduleOrder = Value
End Set
End Property
Public Property ModuleTitle() As String
Get
Return _title
End Get
Set(ByVal Value As String)
_title = Value
End Set
End Property
Public Property PaneName() As String
Get
Return _pane
End Get
Set(ByVal Value As String)
_pane = Value
End Set
End Property
Public Property ModuleId() As Integer
Get
Return _id
End Get
Set(ByVal Value As Integer)
_id = Value
End Set
End Property
Public Property ModuleDefId() As Integer
Get
Return _defId
End Get
Set(ByVal Value As Integer)
_defId = Value
End Set
End Property
Protected Overridable Function CompareTo(ByVal value As Object) As Integer Implements IComparable.CompareTo
If value Is Nothing Then
Return 1
End If
Dim compareOrder As Integer = CType(value, ModuleItem).ModuleOrder
If Me.ModuleOrder = compareOrder Then Return 0
If Me.ModuleOrder < compareOrder Then Return -1
If Me.ModuleOrder > compareOrder Then Return 1
Return 0
End Function
End Class
' ModuleDef :mot Arraylist cua ModuleDefDetails
Public Class ModuleDfs
Inherits ArrayList
Dim m As ArrayList = New ArrayList
Public Sub New()
Dim siteSettings As SiteConfiguration = Configuration.GetSiteSettings()
Dim mds As ModuleDefDetails = New ModuleDefDetails
Dim mdRow As SiteConfiguration.ModuleDefinitionRow
For Each mdRow In siteSettings.ModuleDefinition.Select("ModuleType ='Admin'")
Dim mdDetails As ModuleDefDetails = New ModuleDefDetails
mdDetails.ModuleDefId = mdRow.ModuleDefId
mdDetails.DesktopSourceFile = mdRow.DesktopSourceFile
Try
mdDetails.ModuleType = mdRow.ModuleType
Catch ex As Exception
End Try
mdDetails.FriendlyName = mdRow.FriendlyName
Me.Add(mdDetails)
Next
End Sub
End Class
Public Class ModuleDefDetails
Public ModuleDefId As Integer
Public DesktopSourceFile As String
Public ModuleType As String
Public FriendlyName As String
End Class
Public Class TabItem
Implements IComparable
Private _tabOrder As Integer
Private _name As String
Private _id As Integer
Public Property TabOrder() As Integer
Get
Return _tabOrder
End Get
Set(ByVal Value As Integer)
_tabOrder = Value
End Set
End Property
Public Property TabName() As String
Get
Return _name
End Get
Set(ByVal Value As String)
_name = Value
End Set
End Property
Public Property TabId() As Integer
Get
Return _id
End Get
Set(ByVal Value As Integer)
_id = Value
End Set
End Property
Public Overridable Function CompareTo(ByVal value As Object) As Integer Implements IComparable.CompareTo
If value Is Nothing Then
Return 1
End If
Dim compareOrder As Integer = CType(value, TabItem).TabOrder
If Me.TabOrder = compareOrder Then Return 0
If Me.TabOrder < compareOrder Then Return -1
If Me.TabOrder > compareOrder Then Return 1
Return 0
End Function
End Class
End Namespace
5.2 Các hàm trong hệ thống quản lý tin tức
Shared Function GetCat(ByVal cid As Integer) As DataSet
Dim myconnection As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("connectionString"))
Dim mycommand As SqlCommand = New SqlCommand("Portal_News_GetCat", myconnection)
Dim ds As DataSet = New DataSet
Dim da As SqlDataAdapter = New SqlDataAdapter
mycommand.CommandType = CommandType.StoredProcedure
AddParamToSQLCmd(mycommand, "@id", SqlDbType.Int, 0, ParameterDirection.Input, cid)
myconnection.Open()
da = New SqlDataAdapter(mycommand)
da.Fill(ds)
myconnection.Close()
Return ds
End Function
‘---------------------------------
Shared Function GetAllCatsLevel(ByVal id As Integer) As DataSet
Dim myconnection As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("connectionString"))
Dim mycommand As SqlCommand = New SqlCommand("Portal_News_GetAllCatsLevel", myconnection)
Dim ds As DataSet = New DataSet
Dim da As SqlDataAdapter = New SqlDataAdapter
mycommand.CommandType = CommandType.StoredProcedure
myconnection.Open()
AddParamToSQLCmd(mycommand, "@id", SqlDbType.Int, 0, ParameterDirection.Input, id)
da = New SqlDataAdapter(mycommand)
da.Fill(ds)
myconnection.Close()
Return ds
End Function
‘-----------------------------------------
Shared Function UpdateCat(ByVal catid As Integer, ByVal newname As String, ByVal newparentid As Integer, ByVal newlevel As Integer, ByVal newviewitem As Integer, ByVal newamount As Integer)
Dim myconnection As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("connectionString"))
Dim mycommand As SqlCommand = New SqlCommand("Portal_News_UpdateCat", myconnection)
Dim ds As DataSet = New DataSet
Dim da As SqlDataAdapter = New SqlDataAdapter
mycommand.CommandType = CommandType.StoredProcedure
AddParamToSQLCmd(mycommand, "@id", SqlDbType.Int, 0, ParameterDirection.Input, catid)
AddParamToSQLCmd(mycommand, "@newname", SqlDbType.NVarChar, 200, ParameterDirection.Input, newname)
AddParamToSQLCmd(mycommand, "@newparentid", SqlDbType.Int, 0, ParameterDirection.Input, newparentid)
AddParamToSQLCmd(mycommand, "@newlevel", SqlDbType.Int, 0, ParameterDirection.Input, newlevel)
AddParamToSQLCmd(mycommand, "@newviewitem", SqlDbType.Int, 0, ParameterDirection.Input, newviewitem)
AddParamToSQLCmd(mycommand, "@newamount", SqlDbType.Int, 0, ParameterDirection.Input, newamount)
myconnection.Open()
mycommand.ExecuteNonQuery()
myconnection.Close()
End Function
‘-----------------------------------------
Shared Function AddNewsItem(ByVal title As String, ByVal summary As String, ByVal content As String, ByVal catid As Integer, ByVal author As String, ByVal imglink As String)
Dim myconnection As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("connectionString"))
Dim mycommand As SqlCommand = New SqlCommand("Portal_News_AddItem", myconnection)
mycommand.CommandType = CommandType.StoredProcedure
AddParamToSQLCmd(mycommand, "@title", SqlDbType.NVarChar, 500, ParameterDirection.Input, title)
AddParamToSQLCmd(mycommand, "@summary", SqlDbType.NVarChar, 1000, ParameterDirection.Input, summary)
AddParamToSQLCmd(mycommand, "@catid", SqlDbType.Int, 0, ParameterDirection.Input, catid)
AddParamToSQLCmd(mycommand, "@author", SqlDbType.NVarChar, 100, ParameterDirection.Input, author)
AddParamToSQLCmd(mycommand, "@img", SqlDbType.NVarChar, 100, ParameterDirection.Input, imglink)
mycommand.Parameters.Add("@content", SqlDbType.NText)
mycommand.Parameters("@content").Value = content
myconnection.Open()
mycommand.ExecuteNonQuery()
myconnection.Close()
End Function
‘----------------------------
Shared Function DelItem(ByVal id As Integer)
Dim myconnection As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("connectionString"))
Dim mycommand As SqlCommand = New SqlCommand("Portal_News_DelItem", myconnection)
Dim ds As DataSet = New DataSet
Dim da As SqlDataAdapter = New SqlDataAdapter
mycommand.CommandType = CommandType.StoredProcedure
AddParamToSQLCmd(mycommand, "@id", SqlDbType.Int, 0, ParameterDirection.Input, id)
myconnection.Open()
mycommand.ExecuteNonQuery()
myconnection.Close()
End Function
‘----------------------------------
Shared Function GetNewsItem(ByVal nid As Integer) As DataSet
Dim myConnection As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("connectionString"))
Dim mycommand As SqlCommand = New SqlCommand("Portal_News_GetNewsItem", myConnection)
Dim ds As DataSet = New DataSet
Dim da As SqlDataAdapter = New SqlDataAdapter
mycommand.CommandType = CommandType.StoredProcedure
AddParamToSQLCmd(mycommand, "@id", SqlDbType.Int, 0, ParameterDirection.Input, nid)
myConnection.Open()
da = New SqlDataAdapter(mycommand)
da.Fill(ds)
myConnection.Close()
Return ds
End Function
TÀI LIỆU THAM KHẢO
----------------------------------------------
Phân tích và thiết kế hệ thống – Đào Thanh Tĩnh
2. Phân tích và thiết kế hệ thống thông tin – Nguyễn Văn Ba
3. Cấu trúc dữ liệu và giải thuật – Đỗ Xuân Lôi
4. SQL Server2000 - Phạm Hữu Khang
5. Lập trình Windows với C#.NET – Phương Lan
6. XML – nền tảng và ứng dụng – Nguyễn Phương Lan
7. Lập trình Visual Basic.NET – Hoàng Đức Hải
8. Khai thác hệ thống thông tin điện tử trong đề án 112 – Nguyễn Đình Hóa
9. Xây dựng ứng dụng thương mại điện tử bằng ASP.NET - Phạm Hữu Khang
10. Diễn đàn Tin Học – www.ddth.com
11. Diễn đàn Trái tim Việt Nam Online – www.ttvnol.com\forum
12. Diễn đàn Mã Nguồn – www.manguon.com
13. Diễn đàn hacker Việt Nam – www.hvaonline.net
14. Diễn đàn Khoa Công Nghệ Tin Học – Viện ĐH Mở Hà Nội – forum.fithou.net.vn
15. What is a Portal?
16. Microsoft ASP.NET -
17. ASP.NET – Genetic Center - Hanoi University of Technology
18. Inside ASP.NET – Apptech Education
MỤC LỤC
****************************
Các file đính kèm theo tài liệu này:
- P0056.doc