Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.76 MB, 104 trang )
Xây dựng hệ thống quản lý đồ án 1 đến 5 trên nền tảng Asp.net
bảo mật cao. Đây xứng đáng là mô hình thay thế cho ASP.NET Web Forms thông
thường.
Hình 2-1: Mô hình kiến trúc MVC
Model: là thành phần có nhiệm vụ lưu trữ thông tin, trạng thái của các đối tượng.
Thông thường nó là một lớp được ánh xạ từ một bảng trong cơ sở dữ liệu.
View: là các thành phần chịu trách nhiệm hiển thị các thông tin cho người
dùng thông qua giao diện. Thông thường, các thông tin cần hiển thị được lấy từ
thành phần Model thông qua sự điều khiển của Controller. Trong ASP.NET
MVC4, có thể chọn View bằng Aspx hoặc Razor View Engine.
Controller: chịu trách nhiệm làm việc trực tiếp với Model và lấy dữ liệu
truyền cho View hiển thị lên người dùng. Trong MVC, View chỉ có trách nhiệm
hiển thị dữ liệu, còn việc điều khiển dữ liệu và thao tác của người dùng vẫn do
Controller phụ trách.
2.2.1 So sánh ASP.NET MVC với ASP.NET
Bạn đã được nghe qua về điểm yếu và giới hạn của ASP.NET WebForm
truyền thống và làm thế nào mà ASP.NET MVC vượt qua những vấn đề này. Điều
đó không có nghĩa là ASP.NET WebForm đã chết mà chỉ là: Microsoft muốn mọi
người hiểu rằng có hai nền tảng song song nhau, hỗ trợ cho nhau và cả hai đều là
đối tượng cho việc phát triển hiện tại. Nói chung, việc bạn chọn lựa giữa hai mô
hình còn tùy vào hoàn cảnh.
8
Xây dựng hệ thống quản lý đồ án 1 đến 5 trên nền tảng Asp.net
ASP.NET WebForm mang tới một trang web mà giao diện có thể lưu giữ
trạng thái và cuối cùng thêm vào một lớp trừu tượng tinh vi nằm trên HTTP và
HTML, sử dụng ViewState và postback để tạo ra hiệu ứng của việc có trạng thái.
Điều này thích hợp với phong cách phát triển kéo và thả của Window Form, tức là
bạn đặt các đối tượng có giao diện lên trang và mã xử lý vào trình xử lý sự kiện của
chúng.
MVC hòa vào bản chất không trạng thái của HTTP, làm việc chung với nó hơn
là chống lại. Điều này yêu cầu bạn phải hiểu thật sự cách làm việc của một ứng
dụng web, để đạt được điều đó, MVC cung cấp một cách tiếp cận đơn giản, mạnh
mẽ và hiện đại cho việc viết các ứng dụng web với mã có trật tự mà dễ dàng để
kiểm thử và bảo trì sau này, giải phóng những phức tạp khó chịu và các giới hạn
không đáng có.
Điều đặc biệt là ASP.NET MVC có mã nguồn mở, không giống các nền tảng
trước đó, bạn có thể dễ dàng tải mã nguồn gốc của ASP.NET MVC, thậm chí bạn
có thể sửa đổi và tạo ra phiên bản của riêng bạn. Có những tình huống mà
ASP.NET WebForm khá tốt thậm chí còn tốt hơn .
Nhưng mặt khác, nếu bạn một viết một ứng dụng trên Internet, hoặc các ứng
dụng nội bộ lớn hơn, bạn sẽ hướng tới tốc độ download nhanh và tương thích trình
duyệt chéo, được xây dựng với chất lượng cao hơn, mã kiến trúc tốt thích hợp cho
việc test tự động, trong trường hợp đó ASP.NET MVC sẽ mang lại những ưu điểm
quan trọng.
Bảng 2-1: So sánh giữa ASP.NET Webform và ASP.NET MVC
Tính năng
ASP.Net
ASP.Net MVC
Kiến trúc chương trình
Kiến trúc mô hình
WebForm->Business>Database
Cú pháp chương trình
Sử
dụng
cú
pháp
WebForm, tất cả các sự
kiện và control do server
quản lý
Phân tải nhanh hơn do
không phải quản lý
ViewState để quản lý các
control trong trang
Kiến trúc sử dụng việc
phân chia chương trình
thành Controllers,
Models, View
Các sự kiện được kiều
khiển bởi controllers,
các control không do
server quản lý
Tốc độ phân tải chậm
trong khi trang có quá
nhiều các controls vì
ViewState quá lớn
Tốc độ phân tải
9
Xây dựng hệ thống quản lý đồ án 1 đến 5 trên nền tảng Asp.net
Debug
Debug chương trình phải
thực hiện tất cả bao gồm
các lớp truy cập dữ liệu,
sự hiển thị, điều khiển các
controls
Tương tác với javascrip
Tương tác với javascrip
khó khăn vì các controls
được điều khiển bởi
server
URL Address
2.2
Debug có thể sử dụng
các unit test kiểm tra
các phương thức trong
Controllers
Tương tác với javascrip
dễ dàng vì các đối
tượng không do server
quản lý điều khiển
không khó
Cấu trúc địa chỉ URL có Cấu trúc địa chỉ rành
dạng
mạch theo dạng
Controllers/Action/ID
tham số>
Hệ quản trị SQL Server
2.2.1 Các thành phần của một cơ sở dữ liệu trong SQL Server
- Tables: Table là đối tượng chính của CSDL dùng lưu trữ dữ liệu cần quản lý.
Mỗi table có 1 hay nhiều Field. Mỗi Field ứng với một loại dữ liệu cần lưu
-
trữ. Table còn có các thành phần liên quan như: Constraint, Triggers, Indexs.
Diagram – Sơ đồ quan hệ: Thể hiện mối quan hệ dữ liệu giữa các table.
Views – Khung nhìn hay table ảo: Là đối tượng dùng hiển thị dữ liệu được
-
rút trích, tính toán từ các Table theo nhu cầu của người dùng.
Stored Procedure – Thủ tục nội: Chứa các lệnh T-SQL dùng thực hiện một
số tác vụ nào đó. Stored Proc có thể nhận và truyền tham số. Stored Proc
được biên dịch trước, do đó thời gian thực hiện nhanh khi được gọi. Có
nhiều Stored Proc hệ thống được định nghĩa với tiền tố “sp_” có nhiệm vụ
-
thu thập thông tin từ các bảng hệ thống và rất có ích cho việc quản trị.
User Defined Function: Hàm do người dùng định nghĩa
Users: Chứa danh sách User sử dụng CSDL. Người quản trị hệ thống cao
nhất có User Name là dbo, tên đăng nhập (Login Name) hệ thống mặc định
-
là sa. Tài khoản sa luôn tồn tại và không thể bỏ đi.
Roles: Các qui định vai trò và chức năng của User trong hệ thống SQL
Server.
10
Xây dựng hệ thống quản lý đồ án 1 đến 5 trên nền tảng Asp.net
2.2.2
a)
Rules: Các qui tắc ràng buộc dữ liệu được lưu trữ trên Table.
Defaults: Các khai báo giá trị mặc định.
User Defined Data Type: Kiểu dữ liệu do người dùng tự định nghĩa
Full Text Catalogs: Tập phân loại dữ liệu Text.
Tạo các ràng buộc
Ràng buộc khóa chính( Primary key)
Primary Key: Ràng buộc khóa chính nhằm xác định chính xác bản ghi
duy nhất trong một bảng. Cột khóa chính không thể nhân đôi và không
thể chứa giá trị null.
Cú pháp: CONSTRAINT ten_rang_buoc PRIMARY KEY.
b) Ràng buộc khóa ngoại(Foreign Key)
Foreign Key: Ràng buộc khóa ngoại trong bảng cơ sở dữ liệu là trường
phù hợp với trường khóa chính trong bảng khác. Trường khóa ngoại
được sử dụng để tạo ra mối quan hệ với trường khóa chính của bảng
chính. Điều này ngăn cản chèn thêm bất kỳ dữ liệu không hợp lệ trong
trường khóa ngoại vì trường khóa ngoại chỉ chấp nhận những giá trị đã
-
có trong trường khóa chính.
Cú pháp: CONSTRAINT (tên ràng buộc) FOREIGN KEY (tên trường
làm khóa) REFERENCES tên bảng tham chiếu (khóa chính).
c) Ràng buộc Check
Dùng để khai báo những quy định mà mỗi dòng đều phải thỏa mãn, dùng
-
để kiểm tra miền giá trị của dữ liệu.
Cú pháp: CONSTRAINT (tên ràng buộc) CHECK (bieu_thuc_datgiatri).
2.3
Giới thiệu về Linq và Linq to Sql
2.3.1 Khái niệm Linq
LINQ là viết tắt của từ “Language Integrated Query” đây là một tập hợp các
phương thức, thành phần cho cách viết truy vấn dữ liệu ngay trong ngôn ngữ lập
trình như C#, VB, JS… LINQ chỉ được hỗ trợ ở phiên bản thư viện .net framework
3.5 trở lên. LINQ bao gồm nhiều thành phần như: LINQ to Objects, LINQ enabled
ADO.Net, LINQ to XML trong đó LINQ enabled ADO.Net chứa LINQ to SQL .
-
Kiến trúc LinQ:
11
Xây dựng hệ thống quản lý đồ án 1 đến 5 trên nền tảng Asp.net
Hình 2-2: Kiến trúc Linq
2.3.2 Tìm hiểu Linq to Sql
Linq to Sql là một phiên bản khái quát, hiện thực hóa về quan niệm bản đồ
quan hệ trong CSDL, Linq to Sql được tích hợp sẳn trong .net framework 3.5 trở
lên, có thể mô tả được dữ liệu bằng cách dùng các lớp .Net, sau đó truy vấn vào
trong CSDL để thực hiện các chức năng.
Linq to Sql hỗ trợ tất cả các công cụ để kết nối CSDL transaction, view, stored
procedure …
2.4.2 Các truy vấn với Linq to Sql
Tìm hiểu lớp DataContext
Cứ mỗi một file LINQ to SQL thêm vào solution, một lớp DataContext sẽ
được tạo ra, nó sẽ được dùng khi cần truy vấn hay cập nhật lại các thay đổi. Lớp
DataContext được tạo sẽ có các thuộc tính để biểu diễn mối bảng được mô hình hóa
từ CSDL, cũng như các phương thức đã thêm vào.
Lấy ra một đối tượng từ cơ sở dữ liệu
12
Xây dựng hệ thống quản lý đồ án 1 đến 5 trên nền tảng Asp.net
csdlDataContext dl=new csdlDataContext();
var lay=from c in dl.Tenbang select c;
Ví dụ: Lấy ra các cận lâm sàng từ cơ sở dữ liệu:
csdlDataContext dl=new csdlDataContext();
var lay=from c in dl.CLs select c;
Thêm 1 bản ghi vào 1 bảng trong cơ sở dữ liệu
Ví dụ: Thêm 1 cận lâm sàng vào trong cơ sở dữ liệu
csdlDataContext dl=new csdlDataContext();
CLS cl=new CLS();
cl.Macls=txtmacls.Text;
cl.Tencls=txttencls.Text;
dl.CLs.InsertOnSubmit(cls);
dl.SubmitChanges();
Cập nhật 1 bản ghi vào 1 bảng trong cơ sở dữ liệu
Ví dụ: Cập nhật cận lâm sàng có mã cận lâm sàng là “cls1”:
csdlDataContext dl=new csdlDataContext();
CLScapnhat=dl.CLs.SingleOrDefault(c=>c.MaCLS.ToString()==”cls”;
capnhat.Macls=txtmacls.Text;
capnhat.Tencls=txttencls.Text;
dl.SubmitChanges();
Xóa 1 bản ghi của 1 bảng trong cơ sở dữ liệu
Ví dụ xóa cận lâm sàng có mã là “cls1” trong cơ sở dữ liệu:
csdlDataContext dl=new csdlDataContext();
13
Xây dựng hệ thống quản lý đồ án 1 đến 5 trên nền tảng Asp.net
var xoa=dl.CLs.SingleOrDefault(c=>c.MaCLS.ToString()==”cls1”);
dl.CLs.DeleteOnSubmit(xoa);
dl.SubmitChanges();
2.4
Giới thiệu về công cụ Report Viewer để tạo dữ liệu báo cáo
2.4.1 Khái niệm về Report Viewer
Viewer Report Viewer là phần mềm thiết kế báo biểu chuyên nghiệp được tích
hợp trong Visual Studio. Phiên bản Studio.Net của Microsoft được tích hợp Report
Viewer. Xét về mặt thiết kế báo cáo, Report Viewer cung cấp đầy đủ các chức năng
định dạng dữ liệu và các chức năng phân nhóm, tính toán, sub-report và kể cả khả
năng lập trình bằng formula dựa trên các formula filed. Người dùng ngoài việc sử
dụng formula field còn có thể tự xây dựng bộ thư viện hàm riêng của mình và đưa
vào Report Viewer thông qua các DDL. Bên cạnh khả năng thiết kế báo biểu thông
thường, Report Viewer còn cung cấp chức năng thiết kế biểu đồ dựa trên nguồn dữ
liệu lấy từ CSDL. Bằng cách tích hợp sẵn Report Viewer, Visual Studio.Net đem lại
cho người sử dụng một công cụ xây dựng báo cáo hiệu quả, tiết kiệm thời gian so
với việc phải sử dụng các đối tượng in ấn để tự phát sinh báo cáo. Chúng ta có thể
sử dụng Report Expert để tạo ra báo cáo dựa vào wizard và template định sẵn hay
thiết kế báo cáo chi tiết báo biểu bằng tay. Report Viewer sử dụng DataSet làm
nguồn dữ liệu cho báo biểu.
2.4.2 Các thành phần của ReportViewer
-
Page Header: Là phần đầu tiên của một trang báo cáo. Giống như khái niệm
Page header trong Word và Excel. Phần này có thể có hoặc không có thông
tin tuỳ vào người thiết kế.
-
Detail: Là phần thân của report, đây là nơi hiển thị giá trị các bản ghi sẽ in ra.
Phần này có thể bị thay đổi, phụ thuộc vào nguồn dữ liệu tại thời điểm sẽ in
ra của report. Header là phần tiêu đề của trang đầu tiên Report, nằm tiếp theo
phần Page header và nằm trên phần Detail. Mỗi Report sẽ chỉ có nhiều nhất
14
Xây dựng hệ thống quản lý đồ án 1 đến 5 trên nền tảng Asp.net
một Report header. Phần này có thể có hoặc không có thông tin tuỳ vào
người thiết kế.
-
Page Footer: Là phần cuối cùng của trang, nằm dưới phần Detail. Mỗi
Report sẽ chỉ có nhiều nhất một Page footer. Phần này có thể có hoặc không
có thông tin tuỳ vào người thiết kế.
2.4.3 Các bước để tạo một ReportViewer
Để tạo một report chúng ta làm như sau:
• Bước 1: Thêm một tập tin báo cáo cho dự án bằng cách: chọn dự án →
add new item → chọn mục reporting → chọn report → OK.
• Bước 2: Tạo các Page Header, Page Footer và thiết kế cho trang Report
sử dụng công cụ Toolbox bên tay trái.
• Bước 3: Tạo DataSet để lấy dữ liệu.
•
Bước 4: Kéo điều khiển Report Viewer vào trang ASPX rồi chọn
datasource cho ReportViewer đó.
CHƯƠNG 3:
XÂY DỰNG HỆ THỐNG QUẢN LÝ ĐỒ ÁN 1 ĐẾN 5
TRÊN NỀN TẢNG ASP.NET
3.1.
Khảo sát và phân tích yêu cầu
3.1.1 Thời gian và địa điểm khảo sát
- Tham khảo hệ thống quản lý đồ án của bộ môn mạng máy tính và truyền
thông khóa trước.
3.1.2 Thông tin liên hệ
- Bộ môn MMT&TT - Khoa Công Nghệ Thông Tin - Trường ĐHSPKT Hưng Yên Mỹ Hào – Hưng Yên.
3.1.3 Thông tin dự án
15
Xây dựng hệ thống quản lý đồ án 1 đến 5 trên nền tảng Asp.net
-
Tên dự án: “XÂY DỰNG HỆ THỐNG QUẢN LÝ ĐỒ ÁN 1 ĐẾN 5 TRÊN
NỀN TẢNG ASP.NET”.
- Người thực hiện: Nguyễn Thị Thương
- Người hướng dẫn: Phạm Minh Chuẩn
- Ngày thực hiện: 20/01/2014
- Ngày dự kiến hoàn thành: 10/07/2014.
3.1.4 Yêu cầu của hệ thống sau khảo sát
Bảng 3-1: Yêu cầu khách hàng
ST
Tên yêu cầu
T
1
2
3
4
5
6
Quản lý thông tin sinh viên tham gia làm đề tài
Quản lý thông tin nhóm lớn, nhóm nhỏ
Quản lý thông tin về đề tài của sinh viên trong các kì học
Quản lý thông tin giảng viên hướng dẫn sinh viên làm đề tài
Quản lý thông tin lớp của sinh viên làm đồ án
Quản lý thông tin về quá trình phân nhóm, phân đề tài (SV [Sinh viên] tự
7
nhận nhóm hoặc GVHD [Giáo viên hướng dẫn] sẽ phân)
Quản lý thông tin về quá trình thực hiện đồ án (quản lý tiến độ từng tuần,
có sự trao đổi hỏi đáp giữa SV và GVHD, điểm danh và đánh giá điểm
quá trình)
8
Quản lý thông tin về phân hội đồng đánh giá và kết quả đánh giá
9
10
Quản lý thông tin kết quả: điểm quá trình, điểm báo cáo, điểm bảo vệ
Quản trị hệ thống (quản lý người dùng, phân quyền tùy chọn cho từng
đối tượng người dùng)
11
Tìm kiếm, thống kê, báo cáo in ấn phải chính xác theo từng yêu cầu riêng
12
của trưởng bộ môn và GVHD và đúng theo mẫu biểu có sẵn
Quản lý tin tức và bài viết trên trang chủ
13
14
15
16
17
Phần mềm phải có giao diện dễ sử dụng, đơn giản và đẹp
Phần mềm phải có tính bảo mật và phân quyền rõ ràng
Update thông tin một cách nhanh chóng, chính xác
Tốc độ truy xuất nhanh chóng, hợp lý, hiệu quả và tuyệt đối chính xác
Phù hợp với nhiều đối tượng người dùng.
16