MỤC LỤCMỞ ĐẦU11.1. Phát biểu bài toán11.2. Đặc tả yêu cầu hệ thống21.2.1. Tác nhân của hệ thống.21.2.2. Các trường hợp sử dụng31.2.3. Hoạt động của hệ thống.3Chương 1: CÔNG NGHỆ SỬ DỤNG51.1. Công nghệ .NET51.2. Ngôn ngữ lập trình ASP.NET81.3. Hệ quản trị cơ sở dữ liệu SQL Server15Chương 2 PHÂN TÍCH HỆ THỐNG172.1. Biểu đồ trường hợp sử dụng (Usecase diagram)172.1.1. Tác nhân hệ thống172.1.2. Các trường hợp sử dụng (Usecase)183.2. Mô hình hệ thống (Class diagram)49Chương 3; THIẾT KẾ HỆ THỐNG513.1. Bảng dữ liệu513.2. Mô tả bảng dữ liệu52KẾT LUẬN VÀ KIẾN NGHỊ58TÀI LIỆU THAM KHẢO59
Trang 1Tôi tên: NGUYỄN VĂN KỶ, là sinh viên trường đại học tài nguyên và môi
trường Hà Nội.
Tôi Xin cam đoan: Toàn bộ nội dung đồ án tốt nghiệp “XÂY DỰNG HỆ THÔNG QUẢN LÝ TÀI CHÍNH TRỰC TUYẾN” Do tôi tự học tập từ bài giảng
các môn học của Quý thầy cô, nghiên cứu trên Internet, sách báo, và các tài liệu trong
và ngoài nước có liên quan Không sao chép hay sử dụng bài làm của bất kỳ ai khác.
Tôi xin chịu hoàn toàn trách nhiệm về lời cam đoan của mình trước Quý thầy
Cô và nhà trường.
Hà Nội ngày 02 tháng 06 năm 2016
NGƯỜI CAM ĐOAN
Trang 2MỞ ĐẦU 1
1.1 Phát biểu bài toán 1
1.2 Đặc tả yêu cầu hệ thống 2
1.2.1 Tác nhân của hệ thống 2
1.2.2 Các trường hợp sử dụng 3
1.2.3 Hoạt động của hệ thống 3
Chương 1: CÔNG NGHỆ SỬ DỤNG 5
1.1 Công nghệ NET 5
1.2 Ngôn ngữ lập trình ASP.NET 8
1.3 Hệ quản trị cơ sở dữ liệu SQL Server 15
Chương 2 PHÂN TÍCH HỆ THỐNG 17
2.1 Biểu đồ trường hợp sử dụng (Usecase diagram) 17
2.1.1 Tác nhân hệ thống 17
2.1.2 Các trường hợp sử dụng (Usecase) 18
3.2 Mô hình hệ thống (Class diagram) 49
Chương 3; THIẾT KẾ HỆ THỐNG 51
3.1 Bảng dữ liệu 51
3.2 Mô tả bảng dữ liệu 52
KẾT LUẬN VÀ KIẾN NGHỊ 58
TÀI LIỆU THAM KHẢO 59
Trang 3DANH MỤC BẢNG 2
Bảng 3.1 : Bảng đặc tả usecase tạo tài khoản 19
Bảng 2.2 : Bảng đặc tả usecase đăng nhập tài khoản 20
Bảng 2.3 : Bảng đặc tả usecase đăng xuất 21
Bảng 2.4: Bảng đặc tả usecase lấy lại mật khẩu 22
Bảng 2.5: Đặc tả usecase đổi mật khẩu 23
Bảng 2.6: Đặc tả usecase xem thông tin tài khoản 24
Bảng 2.7: Bảng đặc tả usecase sửa thông tin tài khoản 24
Bảng 2.8: Bảng đặc tả usecase kích hoạt tài khoản 25
Bảng 2.9: Đặc tả usecase quản lý quỹ 27
Bảng 2.10: Bảng đặc tả tài khoản 27
Bảng 2.11: Bảng đặc tả usecase thêm thể loại tài chính 30
Bảng 2.12: Bảng đặc tả usecase sửa thông tin thể loại tài chính 31
Bảng 2.13: Bảng đặc tả usecase xóa thông tin thể loại tài chính 32
Bảng 2.14: Bảng đặc tả usecase phân quyền cho thành viên nhóm 33
Bảng 2.15: Bảng đặc tả usecase thêm thành viên nhóm 34
Bảng 2.16: Bảng đặc tả usecase loại bỏ thành viên khỏi nhóm 35
Bảng 2.17 : Bảng đặc tả usecase khai báo thu thập 37
Bảng 2.18: Bảng đặc tả thiết lập mức tài chính của thành viên nhóm 38
Bảng 2.19: Bảng đặc tả Usecase định mức tài khoản chi theo thể loại 39
Bảng 2.20 : Bảng đặc tả usecase dự trù khoản chi cố định 40
Bảng 2.21: Bảng đặc tả usecase thêm khoản thu 42
Bảng 2.22: Bảng đặc tả usecase sửa thông tin khoản thu 43
Bảng 2.23: Bảng đặc tả usecase xóa thông tin khoản thu 44
Bảng 2.24: Bảng đặc tả usecase thêm khoản chi 45
Bảng 2.25: Bảng đặc tả usecase sửa thông tin khoản chi 46
Bảng 2.26: Bảng đặc tả usecase xóa thông tin khoản chi 47
Bảng 2.27: Bảng đặc tả usecase tạo nhắc nhở giao dịch 48
Bảng 3.1 Bảng thành viên đối tác 52
Bảng 3.2 Bảng Thành viên 52
Bảng 3.3 Bảng quyền thành viên 53
Bảng 3.4 Bảng quyền 53
Bảng 3.5 Bảng thành viên đối tác 53
Bảng 3.6 Bảng Vay nợ 54
Bảng 3.7 Bảng Lịch sử chuyển khoản 54
Trang 4Bảng 3.10: Bảng Đối tác 56
Bảng 3.11 Bảng Định kỳ vay 56
Bảng 3.12: Nhật ký thu trả 57
Bảng 3.13 Bảng Thu chi 57
Trang 5Hình 2.1 : Tác nhân hệ thống 17
Hình 2.2: Usecase tổng quát hệ thống 18
Hình 2.3: Usecase quản lý tài khoản 19
Hình 2.4: Usecase quản lý quỹ 26
Hình 2.5: Usecase quản lý thể loại tài chính 30
Hình 2.6: Usecase quản lý thành viên nhóm 33
Hình 2.7: Usecase lập kế hoạch tài chính 36
Hình 2.8: Usecase quản lý tài chính 41
Hình 2.9: Usecase quản lý hoạt động thu chi 42
Hình 2.10: Biểu đồ lớp tầng Entity 49
Hình 2.11: Biều đồ lớp tầng DAL 50
Hình 3.1: Mô hình quan hệ giữa các bảng 51
Trang 6MỞ ĐẦU 1.1 Phát biểu bài toán
Trong một đơn vị như: Phòng trọ, hộ gia đình hay cửa hàng kinh doanh, thường phát sinh các hoạt động thu chi khác nhau cần quản lý
Các đơn vị này thường có nhiều thành viên và cần phải có một khoản quỹ
để phục vụ cho các hoạt động cần thiết
Về Thành viên: quản lý các thông tin: Mã thành viên, Tên thành viên, sốđiện thoại, ngày sinh, quê quán
Về Khoản quỹ: Có các loại quỹ khác nhau tùy theo mục đích hay lĩnh vựcthu chi, việc quản lý các loại quỹ cũng rất quan trọng Đặt ra các loại quỹ với số
dư xác định đảm bảo việc chi tiêu hợp lí, khoa học hơn
Về hoạt động thu chi tài chính của các đơn vị bao gồm các loại giao dịchnhư sau: Thu, chi, cho vay và nợ gắn với nguồn quỹ nhất định
Với mỗi loại giao dịch lại có các thể loại khác nhau thể hiện được mụcđích hay lĩnh vực liên quan đến giao dịch thu, chi này
Ví dụ như: Thu từ lương, kinh doanh, thưởng, lãi ngân hàng,
Chi cho sinh hoạt, mua sắm, tiêu dùng,
Các thể loại này thì lại đặc trưng cho tính chất cá nhân hay tính chấtchung của cả đơn vị đó
Với các thể loại mang tính chất cá nhân thì cần xác định thành viên sởhữu Đảm bảo vấn đề về quyền, Các thành viên không thể sử dụng khoản quỹcủa nhau
Các giao dịch Cho vay và Nợ được xem như là một khoản Chi và Thu, tácđộng trực tiếp đến nguồn quỹ chỉ định Tuy nhiên, giao dịch Cho vay và Nợ nàyđược chỉ định thêm thuộc tính ngày trả và lãi xuất
Ngoài các thuộc tính về thành viên thực hiện giao dịch, thời gian, số tiền,
khoản quỹ, ghi chú, còn cần quản lý về vấn đề đối tác với mỗi giao dịch
Đối tác cũng có thể là thành viên của đơn vị đó
Trang 7Đối tác có thể là nhóm người đại diện cho người liên quan đến giao dịch.Với kinh doanh có thể gọi là khách lẻ, hay công ty A, B,
Cơ sở dữ liệu được thiết kế cho nhiều người dùng, vì vậy cần chỉ định vềquyền của thành viên, để đảm bảo tính chính xác và trách nhiệm với các giaodịch chung của đơn vị
Hoạt động cho vay và nợ là hoạt động giao dịch phát sinh của các cá nhânhay đơn vị, tác động trực tiếp đến nguồn quỹ có thể sử dụng của cá nhân hayđơn vị đó Số tiền cho vay được tính như khoản chi, không còn là tiền ngườidùng có thể sử dụng Còn khoản vay được tính như khoản thu, được xem là tiềncủa người dùng – có thể sử dụng cho các hoạt động chi tiêu khác
Hoạt động cho vay và nợ được chỉ định một nguồn quỹ nhất định liênquan đến giao dịch Với giao dịch cho vay, số dư của nguồn quỹ sẽ giảm còngiao dịch nợ thì số dư của nguồn quỹ sẽ tăng lên
Hoạt động cho vay và nợ đi kèm với nhật ký quá trình thu trả, một khoảntiền có thể trả nhiều lần và được lưu lại quá trình theo thời gian
Đặc biệt, hoạt động cho vay và nợ có lãi suất Lãi suất có thể là lãi đơnhoặc lãi kép theo một định kỳ nào đó do người dùng chọn
1.2 Đặc tả yêu cầu hệ thống
1.2.1 Tác nhân của hệ thống.
Các cá nhân, đơn vị hay tổ chức (Hộ gia đình, phòng trọ, hộ kinh doanhvừa và nhỏ, ) có nhu cầu cần quản lý hoạt động thu chi tài chính của mình
Hệ thống có thể thỏa mãn yêu cầu quản lý tài chính chung của cả đơn vị
và nguồn tài chính của từng cá nhân riêng biệt
Chỉ thành viên có tài khoản truy cập mới có thể sử dụng hệ thống.Ngoài việc cá nhân sử dụng hệ thống để quản lý tài chính cá nhân, nhữngngười có quyền có thể sử dụng những chức năng riêng biệt với nguồn tài chínhchung (Thực hiện giao dịch, báo cáo, )
Trang 81.2.2 Các trường hợp sử dụng
Ghi lại các giao dịch phát sinh hoạt động tài chính: Có khoản thu, khoản
đã chi, khoản cho vay hay nợ tài chính
Xem danh sách các khoản thu, chi, cho vay và nợ theo hạn mức định kỳ
từ ngày nào đến ngày nào đó
Duyệt danh sách các khoản cho vay, khoản nợ:
Kiểm tra thời gian trả để đặt ra kế hoạch thu hồi và trả vốn
Trả nợ khoản vay
Nhập khoản thu đối tác trả
Xem danh sách quá trình trả nợ của giao dịch vay/nợ
Xem danh sách khoản quỹ và số dư hiện có của cá nhân và đơn vị (nếu cóquyền)
Xem danh sách đối tác và lịch sử giao dịch liên quan đến đối tác đó
Chuyển khoản giữa các loại quỹ
Thông báo khi khoản quỹ sắp hết
Nhắc nhở về khoảng cho vay/nợ khi đến hạn trả
Báo cáo về hoạt động cân đối giữa thu và chi theo một khoảng thời giannào đó
1.2.3 Hoạt động của hệ thống.
Sau khi người dùng đăng nhập, hệ thống kiểm tra quyền của người đó.Nếu người đó có quyền với các giao dịch chung của đơn vị sẽ hiển thị thêm vềđối tác, thể loại thu chi, các khoản quỹ của đơn vị Nếu không có quyền sẽ chỉhiển thị cho người dùng thấy được danh sách các thể loại, quỹ, do người đó
Trang 9Hệ thống kiểm tra số dư của thể sử dụng của khoản quỹ bằng công thức:
Tổng quỹ =(Số dư ban đầu + Tổng thu + Tổng Nợ) – (Tổng Chi + tổng cho vay) của quỹ đó.
Khi số dư có thể sử dụng của quỹ hết, có thể chuyển quỹ giữa các loạiquỹ bằng cách trừ số dư ban đầu của quỹ nguồn và cộng vào số dư ban đầucủa quỹ nhận một khoản tương ứng (Số dư ban đầu có thể âm vì tổng quỹ làdương khi tính tổng)
Về khoản cho vay và nợ, Giao dịch này có thể có lãi suất Lãi suất đượctrả cùng với tiền gốc theo số định kì đã đạt của khoản nợ Mỗi định kỳ đềuđược quy đổi thành số ngày tương ứng Lãi suất gồm lãi đơn hoặc lại képđược tính theo công thức sau:
Công thức tính lãi đơn như sau:
Công thức tính lãi kép như sau: Ngoài ra, khi người dùng có nhu cầu kiểm kê tài khoản, Reset hệ thốngtheo một định kỳ nào đó, danh sách các khoản quỹ sẽ bị xóa bỏ và tổng hợp số
dư của quỹ hiện có để cập nhật vào số dư ban đầu của quỹ
Với mỗi giao dịch phát sinh đều ghi lại thời gian để thuận lợi cho việcbáo cáo, thống kê tình hình tài chính theo một khoảng thời gian
Trang 10Chương 1 CÔNG NGHỆ SỬ DỤNG 1.1 Công nghệ NET
.NET là nền tảng của Microsoft cho các dịch vụ Web XML, là thế hệphần mềm kế tiếp kết nối thế giới thông tin, các thiết bị và tất cả mọi ngườitrong một thể thống nhất Nền tảng NET cho phép tạo ra và sử dụng các ứngdụng, các quá trình và các Website dựa trên XML[1] như những dịch vụ chia
xẻ, kết nối thông tin và hoạt động cùng nhau, trên bất cứ nền tảng hay thiết bịthông minh nào, nhằm mục đích cung cấp những giải pháp theo yêu cầu chocác tổ chức và các cá nhân riêng biệt Nền tảng NET của Microsoft đưa ra cáccông nghệ, các công cụ và sản phẩm để tạo ra và chạy các dịch vụ Web
Trong thế giới điện toán, những cải tiến và thay đổi vẫn thường xuyênxảy ra Đây là những biến đổi tất yếu và có tác động thúc đẩy sự phát triển Mộtthách thức đối với bất kì nhà lập trình hay những công việc chuyên về CNTT[1] nào là theo kịp những biến đổi liên tục và những sự phát triển trong côngnghệ
Như một nhà quản lí doanh nghiệp hay người đưa ra các quyết định, sự
am hiểu về công nghệ và tác động của nó đối với công việc kinh doanh nhiềulúc làm cho bạn cảm thấy nản lòng Tuy nhiên, những thay đổi thường xuyênnhất trong công nghệ luôn đem lại cho bạn thành quả tốt nhất Ngày nay, docông nghệ thông tin liên tục phát triển, cho nên những nền tảng của công nghệ
đó có thể thay đổi để điều tiết những sự phát triển mới và những nhu cầu mớitrên thương trường Thậm chí một vài nǎm trở lại đây, chỉ có một số ít ngườibiết đến Internet Ngày nay, Internet đã thâm nhập hầu như mọi nơi mọi chỗtrong cuộc sống của chúng ta
Trang 11Sự khởi xướng ý tưởng NET là một bước đột phá mới của Microsoft Nóbao hàm nhiều quan niệm hiện hữu và những triết lý Microsoft đưa ra côngnghệ mà nó cho phép ý tưởng NET trở thành hiện thực Bài báo này sẽ cungcấp cho bạn một cái nhìn tổng thể về NET, nó rất có ý nghĩa cho thế giớiCNTT và nhất là cho Internet.
Định nghĩa NET
Để bắt đầu công việc khảo sát NET, chúng ta phải xác định rõ ranh giớicông việc cần thực hiện Vì NET có nghĩa một nền tảng hơn là một sản phẩmđơn lẻ, cho nên cách định nghĩa nó có thể đa dạng, có phần hơi khó hiểu và mơ
hồ Một cách đơn giản NET được định nghĩa dưới dạng một khung ứng dụng(application framework) .NET cung cấp một khung cho những ứng dụng nàođược xây dựng; nó xác định những ứng dụng truy nhập các hàm như thế nàoqua các hệ thống và các mạng .Net cung cấp một nền tảng mà trên đó các giảipháp và các dịch vụ Web có thể được xây dựng, một nền tảng giải phóngnhững sự ràng buộc và tự bản thân nó giải phóng khỏi Microsoft Windows (vềmặt kĩ thuật) Nói cách khác, NET là một cách để xây dựng các ứng dụng vàcác dịch vụ mà nó hoạt động không phụ thuộc vào một nền tảng (platform) nào.Đây là một cách để tạo ra các trao đổi thông tin (truyền thông) giữa những hệthống đa dạng và các ứng dụng cũng như tích hợp nhiều thiết bị vào trong việctrao đổi thông tin này
Với cái nhìn tổng thể, bạn có thể đặt câu hỏi "Ai quan tâm đến vấn đềnày?" Xét cho cùng, Internet là một phương tiện truyền thông không thể tin nổicho phép thực hiện thương mại điện tử Trong khi đây là thực tế, thì một cáinhìn khác về Internet và thương mại điện tử là điều cần thiết Ngày nay Internet
Trang 12cung cấp những giải pháp thương mại điện tử thực sự hiệu quả, nhưng trước hếtchúng ta hãy khảo sát mô hình của Internet Internet hoạt động trên mô hìnhkhách/chủ (client/server) mà ở đó những khách hàng (client) phải tương tác vớicác máy phục vụ (server) để xem dữ liệu Những trình duyệt đã được phát triển
để thông dịch mã HTML[2] và trả lại trang Web cho người dùng Về cơ bảnviệc sử dụng trình duyệt và Internet là công việc không thể thay đổi Bạn có thểnhập thông tin vào trong các CSDL[3] thông qua trình duyệt của bạn, nhưngphần lớn bạn không thể điều khiển việc sử dụng hay thao tác thông tin Bạnphải tương tác với các máy phục vụ Web và các CSDL của chúng, và nhiềuứng dụng Web thường không tương thích Nếu bạn sử dụng những thiết bị truynhập Internet khác nhau như PC hay cell phone thì cách sử dụng những thiết bị
đó là rất khác nhau Những thiết bị này không tích hợp tốt với nhau, thậm chíngay cả trên Internet Từ một viễn cảnh công việc kinh doanh, nhiều công nghệthương mại điện tử để lại những hệ thống đang tồn tại đằng sau chúng, đây quả
là một vấn đề tốn kém và khó khǎn
Ý tưởng NET được thiết kế để hỗ trợ chúng ta tiến tới một Web thânthiện hơn, tích hợp tốt hơn, một nơi mà ở đó các ứng dụng và các quá trình giaodịch có thể tương tác với nhau một cách tự do không phụ thuộc vào chươngtrình và nền tảng Tóm lại, NET làm cho thông tin trên Web có thể được tiếpcận một cách dễ dàng: bạn có thể sử dụng bất kì thiết bị nào, trên bất kì nềntảng nào .NET còn có thể hỗ trợ các hệ thống máy phục vụ và ứng dụng liênlạc với nhau một cách thông suốt (seamlessly) và xây dựng hệ thống tính toánphân tán trên Web, làm cho Web trở thành một nơi tương tác nǎng động hơngiữa các dịch vụ Web, các ứng dụng và khách hàng
Làm thế nào Microsoft có thể hoàn thành mục tiêu này? Chúng ta có thểthấy ngay được kết quả thông qua các sản phẩm và các dịch vụ mà khách hàngmua hàng nǎm Mục tiêu của NET có trở thành hiện thực hay không vẫn còn
bỏ ngỏ, nhưng hiện tại thì Microsoft đang bận bịu với công việc phát triển cáccông cụ và những chiến lược để làm cho NET trở thành hiện thực .NET được
Trang 13thực thi thông qua NET framework và các công cụ, hoặc thông qua các cáckhối (block) hợp nhất và các dịch vụ như Microsoft Visual Studio NET HiệnMicrosoft đang tǎng số lượng các cộng sự và các nhà phát triển và họ đang tạo
ra các sản phẩm bổ xung hữu ích cho việc thực thi .NET (.NETImplementation) Microsoft Windows XP là một trong những hệ điều hành đầutiên được thiết kế để bắt đầu giới thiệu ý tưởng NET
1.2 Ngôn ngữ lập trình ASP.NET
ASP.NET sử dụng NET Framework, NET Framework là sự tổng hợptất các các kỷ thuật cần thiết cho việc xây dựng một ứng dụng nền desktop, ứngdụng web, web services
ASP.NET là một nền tảng ứng dụng web (web application framework)được phát triển và cung cấp bởi Microsoft, cho phép những người lập trình tạo
ra những trang web động, những ứng dụng web và những dịch vụ web Lần đầutiên được đưa ra thị trường vào tháng 2 năm 2002 cùng với phiên bản 1.0của .NET framework, là công nghệ nối tiếp của Microsoft's Active ServerPages(ASP) ASP.NET được biên dịch dưới dạng Common Language Runtime(CLR), cho phép những người lập trình viết mã ASP.NET với bất kỳ ngôn ngữnào được hỗ trợ bởi NET language
Trong nhiều năm qua, ASP đã được cho rằng đó thực sự là một lựa chọnhàng đầu cho web developers trong việc xây dựng những web sites trên nềnmáy chủ web Windows bởi nó vừa linh hoạt mà lại đầy sức mạnh Đầu năm
2002, Microsoft đã cho ra đời một công nghệ mới đó chính là ASP.NET Đâythực sự là một bước nhảy vượt bậc của ASP cả về phương diện tinh tế lẫn hiệuquả cho các developers Nó tiếp tục cung cấp khả năng linh động về mặt hỗ trợngôn ngữ, nhưng hơn hẳn về mặt lĩnh vực ngôn ngữ script vốn đã trở nên hoànthiện và trở thành ngôn ngữ cơ bản của các developers Việc phát triển trongASP.NET không chỉ yêu cầu hiểu biết về HTML và thiết kế web mà còn khảnăng nắm bắt những khái niệm của lập trình và phát triển hướng đối tượng
Trang 14Tuy mang họ tên gần giống như ASP cổ điển nhưng ASP.NET khôngphải là ASP Ta sơ lược ở đây vài khác biệt giữa ASP.NET và ASP để bạn cókhái niệm tổng quát và sẽ trình bày thêm chi tiết khi đào sâu vào từng điểm đặctrưng (features) của ASP.NET.
KHÁC BIỆT GIỮA ASP.NET VÀ ASP
ASP.NET được phác thảo (re-design) lại từ số không, nó được thay đổitận gốc rễ và phát triển (develop) phù hợp với yêu cầu hiện nay cũng như vạchmột hướng đi vững chắc cho tương lai Tin Học Lý do chính là Microsoft đãquá chán nãn trong việc thêm thắt và kết hợp các công dụng mới vào các kiểumẫu lập trình hay thiết kế mạng theo kiểu cổ điển nên Microsoft nghĩ rằng tốtnhất là làm lại một kiểu mẫu hoàn toàn mới thay vì vá víu chổ này chổ nọ vàoASP Ðó là chưa kể đến nhiều phát minh mới ra đời sau này dựa trên các kháiniệm mới mẽ theo xu hướng phát triển hiện nay của công nghệ Tin Học(Information Technology) cần được đưa vào kiểu mẫu phát triển mới đó Nhờvậy, ta mới có thể tạm nói ASP.NET không phải là ASP Thật vậy, ASP.NETcung cấp một phương pháp hoàn toàn khác biệt với phương pháp của ASP
Mặc dù ASP.NET và ASP khác biệt nhau nhưng chúng có thể hoạt độngvui vẽ hài hoà với nhau trong Web Server (operate side-by-side) Do đó, khi càiASP.NET engine, chúng ta không cần lập trình lại các ứng dụng hiện có dướidạng ASP của tuy rằng, nếu muốn, bạn có thể làm điều đó rất dễ dàng
SỰ THAY ÐỔI CƠ BẢN
ASP đã và đang thi hành sứ mạng được giao cho nó để phát triển mạngmột cách tốt đẹp như vậy thì tại sao ta cần phải đổi mới hoàn toàn?
Lý do đơn giản là ASP không còn đáp ứng đủ nhu cầu hiện nay tronglãnh vực phát triển mạng của công nghệ Tin Học ASP được thiết kế riêng biệt
và nằm ở tầng phiá trên hệ điều hànhWindows và InternetInformation Server,
do đó các công dụng của nó hết sức rời rạt và giới hạn
Trong khi đó, ASP.NET là một cơ cấu trong các cơ cấu của hệ điều hànhWindows dưới dạng nền hay khung .NET (.NET framework), như vậy
Trang 15ASP.NET không những có thể dùng các object của các ứng dụng cũ mà còn cóthể sử dụng tất cả mọi tài nguyên mà Windows có.
Ta có thể tóm tắt đại khái sự thay đổi như sau:
Tập tin của ASP.NET (ASP.NET file) có extension là ASPX, còn tập tincủa ASP là ASP
Tập tin của ASP.NET (ASP.NET file) được phân tích ngữ pháp (parsed)bởi XSPISAPI.DLL, còn tập tin của ASP được phân tích bởi ASP.DLL
ASP.NET là kiểu mẫu lập trình phát động bằng sự kiện (event driven),còn các trang ASP được thi hành theo thứ tự tuần tự từ trên xuống dưới
ASP.NET xử dụng trình biên dịch (compiled code) nên rất nhanh, cònASP dùng trình thông dịch (interpreted code) do đó hiệu suất và tốc độ pháttriển cũng thua sút hẳn
ASP.NET yểm trợ gần 25 ngôn ngữ lập trình mới với NET và chạytrong môi trường biên dịch (compiled environment), còn ASP chỉ chấp nhậnVBScript và JavaScript nên ASP chỉ là một scripted language trong môi trườngthông dịch(in the interpreter environment) Không những vậy, ASP.NET cònkết hợp nhuần nhuyễn với XML (Extensible Markup Language) để chuyển vậncác thông tin (information) qua mạng
ASP.NET yểm trợ tất cả các browser và quan trọng hơn nữa là yểm trợcác thiết bị lưu động (mobile devices) Chính các thiết bị lưu động, mà mỗingày càng phổ biến, đã khiến việc dùng ASP tron gviệc phát triển mạng nhằmvươn tới thị trường mới đó trở nên vô cùng khó khăn
PHƯƠNG PHÁP LÀM VIỆC TRONG MẠNG
Internet đã và đang đem lại nhiều điều kỳ diệu cho đời sống của ta Thậtvậy, nó có khả năng 'nối vòng tay lớn' mọi người trên thế giới tưởng chừng nhưcách biệt xa xôi ngàn dặm bổng dưng lại gần trong gang tất, kỹ thuật này đãmang lại biết bao nhiêu điều mới mẽ đến cho ta tỷ như e-mail, instantmessaging hay World Wide Web (hay gọi tắc là WWW hay Web hay mạng)
Trang 16làm việc thông tin liên lạc trở nên dễ dàng, do đó con người cùng đời sốngcũng thay đổi nhanh chóng như 'cuốn theo chiều gió' vậy.
Từ khởi đầu, việc phát triển 1 mạng hết sức là đơn giản, chỉ cần một hayvài trang trong đó ta muốn chia sẽ bất cứ thông tin gì ta thích là chắc chắn cũng
có người ghé qua thăm viếng Tuy vậy, các trang trong thời kỳ khởi nguyên củamạng rất thụ động, nó không cho phép khách vãng lai trao đổi thông tin mộtcách hổ tương (interact) với ta, nghĩa là thăm thì có thăm nhưng không hỏi haychia sẽ được gì với nhau
Dần dà, mạng phát triển thêm nhiều công dụng khác nhau gắn thêm vàonào là hình ảnh, nào là tables, forms và cuối cùng có thể trao đổi thông tin haytâm tình với khách vãng lai qua các ứng dụng như guestbook, thăm dò ý kiến(user, customer hoặc là client poll) hay các diễn đàn với mọi tiết mục trên trờidưới đất Sau đó, các chuyên gia phát triển mạng lại thêm thắt và trang điểmcho mạng của mình càng lúc càng đặc sắc hơn, cùng muôn mầu muôn vẽ
Tất cả những cố gắng đó đã đem tác động hổ tương đến giữa WebMaster (hay nhóm quản lý mạng) và khách vãng lai như ta được chứng kiếnhiện nay, tuy vậy vẫn còn thiếu hẳn 1 phần quan trọng nhất là phần nội dung cơđộng tuỳ biến (dynamic content) Do đó vai trò của phương pháp dịch vụ(server processing) được phát triển để có thể trình bày nội dung được lưu trữtrong các cơ sở dữ liệu (database) tuỳ theo yêu cầu riêng biệt cho từng cá nhân
KIỂU MẪU RESQUEST/RESPONSE
Kiểu mẫu này chính là toàn bộ phương pháp làm việc theo kiểu Client/Server hiện dùng với ASP
Client/Server - Một trường hợp đơn giản nhất là sự trao đổi thông tingiữa 2 máy vi tính để hoàn thành 1 công việc nào đó, trong đó máy server cungcấp dịch vụ theo yêu cầu của 1 máy khách hành (Client PC)
Thường thường, Server là máy vi tính lưu trữ thông tin về mạng trong đó
có hình ảnh, video, những trang HTML hay ASP và Client là máy vi tính được
Trang 17dùng dể viếng thăm mạng Một cách tổng quát phương pháp này gồm có 4bước như sau:
1 Client (thông qua Internet Browser) xác định vị trí của Web Serverqua 1 nối URL (Universal Resource Locator)
2 Client sẽ yêu cầu được tham khảo 1 trang trong mạng đó và thườngthường là trang chủ (home page) như index.htm hay default.htm
3 Server đáp ứng bằng cách hoàn trả hồ sơ mà Client đã yêu cầutrước đây
4 Client nhận được hồ sơ gởi về và hiển thị (display) trong browsercủa mình
KIỂU MẪU EVENT-DRIVEN
Kiểu mẫu event-driven này dùng với ASP.NET cũng tương tợ như làkiểu mẫu event-driven mà ta vẫn thường dùng trong khi lập trình các ứng dụngvới Visual Basic
Trong kiểu mẫu này, Server sẽ không ngồi chơi xơi nước chờ Client yêucầu tham khảo 1 trang nào đó trong mạng mà Server đã bố trí và kế hoạch sẵntrước tất cả mọi tình huống để có thể hành động kịp thời mỗi khi Client quyếtđịnh làm 1 điều gì đó Ta gọi đó là 'response to your action', còn trong kiểumẫu trước là 'response to your request', như vậy ASP.NET có thể phát hiện racác hành động của Client để phản ứng cho thích hợp
Ðọc tới đây chắc bạn sẽ hỏi lại ngay rằng: 'Ủa, nhưng mà làm sao mộtServer nào đó, có thể ở tận đâu đâu bên kia địa cầu, lại biết được là ta đang gõvài mẫu tự trong một hộp chữ hay là đang nhấp mũi chuột (click) vào buttontrong phần Guestbook hay Forum
Chúng ta có thể chạy nguồn mã ở 2 chỗ khác nhau: hoặc là chạy ở Server(gọi là Server-side) hoặc là chạy ở Client (Client-side) và các nguồn mã ở 2 chỗnày hoàn toàn khác biệt và không có tác động hổ tương với nhau (no interactwith each other) Ðiều đó có nghĩa là máy Client sẽ chịu trách nhiệm thi hànhcác nguồn mã được lập trình dành cho mình cũng như máy Server chỉ chạy các
Trang 18nguồn mã dành cho Server Thông tin hay nội dung cần thiết ở Server sẽ đượcchuyển sang dạng HTML đơn giản (plain HTML) trước khi gởi đến cho Client,thường thì nguồn mã dành cho Client cũng được chuyển đi dưới dạng 'plaintext command' để thực hiện các hiệu ứng năng động (dynamic effect) ở máyClient, tỷ như thay đổi hình ảnh (image rollover) hay hiển thị một thông điệp(message box).
ASP.NET sẽ dùng các ngôn ngữ mới có trình biên dịch (compiledlanguages) như C# hay VB.NET để soạn các nguồn mã trong các trang Web ởServer
ASP.NET là một kỹ thuật phía server (server-side) dành cho việc thiết kếcác ứng dụng web trên môi trường NET
ASP.NET là một kỹ thuật server-side Hầu hết những web designers bắtđầu sự nghiệp của họ bằng việc học các kỷ thuật client-side như HTML,JavaScript và Cascading Style Sheets (CSS) Khi một trình duyệt web yêu cầumột trang web được tạo ra bởi các kỷ thuật client-side, web server đơn giản lấycác files mà được yêu cầu và gửi chúng xuống Phía client chịu trách nhiệmhoàn toàn trong việc đọc các định dạng trong các files này và biên dịch chúng
và xuất ra màn hình
Với kỹ thuật server-side như ASP.NET thì hoàn toàn khác, thay vì việcbiên dịch từ phía client, các đoạn mã server-side sẽ được biên dịch bởi webserver Trong trường hợp này, các đoạn mã sẽ được đọc bởi server và dùng đểphát sinh ra HTML, JavaScript và CSS để gửi cho trình duyệt Chính vì việc xử
lý mã xảy ra trên server nên nó được gọi là kỹ thuật server-side
ASP là một kỹ thuật dành cho việc phát triển các ứng dụng web Mộtứng dụng web đơn giản chỉ các trang web động Các ứng dụng thường đượclưu trữ thông tin trong database và cho phép khách truy cập có thể truy xuất vàthay đổi thông tin Nhiều kỹ thuật và ngôn ngữ lập trình khác cũng đã đượcphát triển để tạo ra các ứng dụng web như PHP, JSP, Ruby on Rails, CGI vàColdFusion Tuy nhiên thay vì trói buộc bạn vào một ngôn ngữ và một công
Trang 19nghệ nhất định, ASP.NET cho phép bạn viết ứng dụng web bằng các loại ngônngữ lập trình quen thuộc khác nhau.
ASP.NET sử dụng NET Framework, NET Framework là sự tổng hợptất các các kỷ thuật cần thiết cho việc xây dựng một ứng dụng nền desktop, ứngdụng web, web services thành một gói duy nhất nhằm tạo ra cho chúng khảnăng giao tiếp với hơn 40 ngôn ngữ lập trình
Thậm chí với những sự lý giải kỹ càng như vậy, bạn vẫn ngạc nhiên tựhỏi điều gì làm nên một ASP.NET tốt như vậy Sự thật là có rất nhiều kỹ thuậtserver-side với điểm mạnh và điểm yếu riêng nhưng ASP.NET có những tínhnăng gần như là duy nhất
ASP cho phép bạn sử dụng ngôn ngữ lập trình mà bạn ưa thích hoặc gầngũi với chúng Hiện tại, thì NET Framework hỗ trợ trên 40 ngôn ngữ lập trìnhkhác nhau mà đa phần đều có thể được sử dụng để xây dựng nên những websites ASP.NET Chẳng hạn như C# (C sharp) và Visual Basic
Nhưng trang ASP.NET được Compiled chứ không phải là Interpreted.Khác với các trang ASP được Interpreted, điều này có nghĩa là mỗi lần ngườidùng yêu cầu một trang, máy chủ sẽ đọc các đoạn mã vào bộ nhớ, xử lý cáchthức thực thi các đoạn mã và thực thi chúng Đối với ASP.NET, máy chủ chỉcàn xử lý cách thức thực thi một lần duy nhất Đoạn mã sẽ được Compiledthành các files mã nhị phân cái mà được thực thi rất nhanh mà không cần phảiđọc lại Chính điều này tạo ra bước tiến nhảy vọt về hiệu suất so với ASP
ASP đã cả khả năng toàn quyền truy xuất tới các chức năng của NETFramework Hỗ trợ XML, web services, giao tiếp với CSDL, email và rấtnhiều các kỹ thuật khác được tích hợp vào NET, giúp bạn tiết kiệm được côngsức
ASP cho phép bạn phân chia các đoạn mã server-side và HTML Khi bạnphải làm việc với cả đội ngũ lập trình và thiết kế, sự tách biệt này cho phép cáclập trình viên chỉnh sửa server-side code mà không cần dính dáng gì tới đội ngũthiết kế
Trang 20ASP giúp cho việc tái sử dụng những yếu tố giao diện người dùng trongnhiều web form vì nó cho phép chúng ta lưu các thành phần này một cách độclập.
Bạn có được một công cụ tuyệt vời hỗ trợ phát triển các ứng dụng ASP.NEThoàn toàn miễn phí, đó là Visual Web Developer, một trình soạn thảo trực quanmạnh mẽ có tính năng Code Autocompletion, Code Format, DatabaseIntegration Functionality, Visual HTML editor, Debugging
Mục tiêu của C# là cung cấp một ngôn ngữ lập trình đơn giản, an toàn,hiện đại, hướng đối tượng, đặt trọng tâm vào Internet, có khả năng thực thi caocho môi trường Net C# là ngôn ngữ được tích hợp trong nó những tinh hoacủa ba thập kỷ phát triển của ngôn ngữ lập trình Ta có thể dễ dàng thấy trongC# có những đặc trưng quen thuộc của Java, C++, Visual Basic,…
1.3 Hệ quản trị cơ sở dữ liệu SQL Server
SQL Server là viết tắt của Structure Query Language,nó là một công cụquản lý dữ liệu được sử dụng phổ biến ở nhiều lĩnh vực Hầu hết các ngôn ngữbậc cao đều có trình hỗ trợ SQL như Visual BaSic,Oracle,Visual C# Cácchương trình ứng dụng và các công cụ quản trị CSDL cho phép người sử dụngtruy nhập tới CSDL mà không cần sử dụng trực tiếp SQL Nhưng những ứngdụng đó khi chạy phải sử dụng SQL
SQL Server có các đặc điểm sau:
SQL là ngôn ngữ tựa tiếng Anh
SQL là ngôn ngữ phi thủ tục, nó không yêu cầu ta cách thức truynhập CSDL như thế nào Tất cả các thông báo của SQL đều rất dễ
sử dụng và ít khả năng mắc lỗi
SQL cung cấp tập lệnh phong phú cho các công việc hỏi đáp DL
Chèn, cập nhật, xoá các hàng trong một quan hệ
Tạo, sửa đổi, thêm và xoá các đối tượng trong của CSDL
Điều khiển việc truy nhập tới cơ sở dữ liệu và các đối tượngcủa CSDL để đảm bảo tính bảo mật của cơ sở DL
Đảm bảo tính nhất quán và sự ràng buộc của CSDL
Trang 21 Yêu cầu duy nhất để sử dụng cho các truy vấn là phải nắm vữngđược các cấu trúc CSDL của mình.
Đầu tiên SQL được sử dụng trong các ngôn ngữ quản lý CSDL và chạy trên máyđơn lẻ Do sự phát triển nhanh chóng của nhu cầu xây dựng những CSDL lớntheo mô hình khách/chủ (Client/Server), nhiều phần mềm sử dụng ngôn ngữSQL đã ra đời mà điển hình là MS SQL Server, Oracle, Sybase
Trang 22Chương 2 PHÂN TÍCH HỆ THỐNG 2.1 Biểu đồ trường hợp sử dụng (Usecase diagram)
Trang 24Hình 2.3: Usecase quản lý tài khoản
Đặc tả Usecase tạo tài khoản (đăng ký tài khoản
Bảng 3.1 : Bảng đặc tả usecase tạo tài khoản
đăng ký tài khoản
3 Nhập thông tin
4 Nhận nút đăng ký
Luồng thay
thế và các
ngoại lệ
8b Nếu thông tin không hợp lệ,
đưa ra thông báo đăng ký thấtbại
Trang 25Điều kiện sau Lưu thông tin tài khoản vào CSDL
Điều kiện
thoát
Khi tác nhân chọn thoátKhi chức năng thực hiện thành công
Đặc tả Usecase đăng nhập tài khoản
Bảng 2.2 : Bảng đặc tả usecase đăng nhập tài khoản
đăng nhập tài khoản
3 Nhập tài khoản và
mật khẩu
4 Nhấn nút đăng nhập
tài khoản và mật khẩu Nếuthông tin đúng thì thông báođăng nhập thành công
Đặc tả Usecase đăng xuất
Bảng 2.3 : Bảng đặc tả usecase đăng xuất
Mã usecase UC03
Tên usecase Đăng xuất tài khoản
Tác nhân Người dùng
Mô tả Cho phép người dùng đăng xuất tài khoản
Trang 26kiện 1 Chọn chức năng
đăng xuất tài khoản
hiện giao diện đăng nhập
4 Nhấn nút đăng xuất5a Hiện giao diện đăng nhập tài
khoảnLuồng thay
thế và các
ngoại lệ
công thì hệ thống thông báo lỗi
Đặc tả Usecase lấy lại mật khẩu
Bảng 2.4: Bảng đặc tả usecase lấy lại mật khẩu
hợp lệ thông báo lấy lại mậtkhẩu thành công và gửi mailthông báo thành công
Luồng thay
thế và các
sai tài khoản
Trang 28 Đặc tả Usecase đổi mật khẩu
Bảng 2.5: Đặc tả usecase đổi mật khẩu
3 Nhập thông tin yêu
cầu
4 Nhấn nút xác nhận
Hệ thống cập nhật mật khẩumới User trong CSDL và thôngbáo đổi mật khẩu thành công.Luồng thay
Trang 29 Đặc tả usecase xem thông tin tài khoản
Bảng 2.6: Đặc tả usecase xem thông tin tài khoản
Mã usecase UC06
Tên usecase Xem thông tin tài khoản
Tác nhân Người dùng
Mô tả Cho phép người dùng xem thông tin cá nhân
Luồng sự kiện Tác nhân Hệ thống phản hồi
1 Đăng nhập vào tàikhoản
2 Chọn chức năng xemthông tin tài khoản
khoảnLuồng thay
Khi tác nhân chọn thoát
Đặc tả Usecase sửa thông tin tài khoản
Bảng 2.7: Bảng đặc tả usecase sửa thông tin tài khoản
Mã usecase UC07
Tên usecase Sửa thông tin người dùng
Tác nhân Người dùng
Mô tả Cho phép người dùng sửa thông tin tài khoản
Luồng sự kiện Tác nhân Hệ thống phản hồi
1 Chọn chức năng cậpnhật tài khoản
2 Hiện giao diện cập nhật tài
khoản
3 Nhập thông tin muốn
và được phép sửa
4 Nhấn nút cập nhật5a Kiểm tra khuôn dạng dữ liệu
Nếu thông tin hợp lệ, thông báo
Trang 30sửa thông tin thành côngLuồng thay
thế và các
ngoại lệ
5b Nếu thông tin không hợp lệ,
thông báo sửa thông tin thất bại
Điều kiện sau Lưu thông tin cập nhật vào CSDL
Điều kiện
thoát
Khi tác nhân chọn thoátKhi chức năng thực hiện thành công
Đặc tả Usecase kích hoạt tài khoản
Bảng 2.8: Bảng đặc tả usecase kích hoạt tài khoản
Mã usecase UC08
Tên usecase Kích hoạt tài khoản
Tác nhân Người quản trị
Mô tả Cho phép quản trị thực hiện chức năng kích hoạt tài khoảnLuồng sự kiện Tác nhân Hệ thống phản hồi
4 Chọn checkbox kíchhoạt
5a Cập nhật thông tin User Nếu
thông tin hợp lệ thông báo xử lýthành công
Luồng thay thế
và các ngoại lệ
5b Nếu thông tin không hợp lệ,
thông báo lỗi
Điều kiện sau Lưu thông tin kích hoạt tài khoản vào CSDL
Điều kiện thoát Khi tác nhân chọn thoát
Khi chức năng thực hiện thành côngQuản lý khoản quỹ
Trang 31Hình 2.4: Usecase quản lý quỹ
Trang 32 Đặc tả Usecase quản lý quỹ
Bảng 2.9: Đặc tả usecase quản lý quỹ
Tên Use Case Quản lý khoản quỹ
Tạo khoản quỹ
Mô tả Use Case tạo khoản quỹ
Điều kiện tiên quyết
- Người dùng phải đăng nhập hệ thống
- Người dùng đang ở trang quản lý khoản quỹ
Luồng sự kiện Tác nhân Hệ thống phản hồi
1 Nhập thông tinkhoản quỹ
2 Click nút Tạokhoản quỹ 3a
Kiểm tra tính đúng đắn của thông tinkhoản quỹ và đưa ra thông báo thêmthành công nếu không có lỗi
4a Hiện thông tin khoản quỹ vừa thêm
Luồng thay thế và
3b quỹ không hợp lệ.- Thông báo thông tin khoản4b - Không hiện thông tin khoản quỹ vừa thêm.Điều kiện sau
Điều kiện thoát - Đóng trang quản lý khoản quỹ.
- Người dùng thoát đăng nhập
Sửa thông tin khoản quỹ
Mô tả Use Case sửa thông tin khoản quỹ