Sản phẩm được xây dựng lại từ Phần mềm quản lý điểm học sinh của anh Nguyễn Hoàng Tùng với các cải tiến mới:
- Kiến trúc:
- Xây dựng theo mô hình 3 layers: BUS, DAO, DTO.
- Sử dụng đối tượng Data Provider để tạo các kết nối, tương tác với CSDL bằng
ADO.NET
. - Thiết kế các đối tượng trong BUS và DAO theo Design Pattern
Singleton
.
- Cơ sở dữ liệu:
- Xây dựng CSDL trên Cloud với Azure SQL Database.
- Sử dụng Procedure cho các tác vụ phức tạp lên CSDL, đồng thời hạn chế lỗi SQL Injection.
- Thêm các chức năng:
- Mã hóa mật khẩu người dùng.
- Đóng gói và cập nhật phần mềm tự động với Squirrel.Windows.
- Sửa các lỗi:
- Vẫn có thể sử dụng tab đang bật dù đã đăng xuất.
- ReportViewer không hiển thị giá trị.
- Nếu không muốn sử dụng Cloud mà chỉ muốn tạo Database local với SQL Server Management Studio thì có thể bắt đầu xem từ bước 4.
- Bản cập nhật mới nhất ở đây sẽ không hoạt động được do connectionString trong file DataProvider.cs chỉ dành riêng cho bản đóng gói này.
- Azure SQL Database có tính phí.
-
Tạo tài khoản Microsoft Azure. Nếu có tài khoản Student thì có thể sử dụng để được free.
-
Tiến hành tạo Azure SQL Database theo hướng dẫn.
-
Vào mục Query editor (preview) để chuẩn bị tiến hành tạo dữ liệu. Ngoài ra, có thể thực hiện trên SQL Server Management Studio với tên và tài khoản Server đã tạo:
-
Sau khi tạo Database, copy nội dung và chạy lần lượt các file: Tables.sql -> Users.sql -> Procedures.sql.
-
Copy Connection Strings của
ADO.NET (SQL authentication)
tại mục Settings của Azure SQL Database và gán giá trị này cho biến connectionString trong file DataProvider.cs. Nếu chỉ sử dụng Database local thì connectionString sẽ là:private string connectionString = "Data Source=(local); Initial Catalog=QuanLyHocSinh; Integrated Security=True";
-
Đăng nhập phần mềm với 1 trong các tài khoản trong file Users.sql, ví dụ:
- Tên đăng nhập: admin
- Mật khẩu: 123456
-
Nếu muốn đóng gói phần mềm như trong repository này thì có thể tham khảo Squirrel.Windows. Sau khi đã đóng gói thì có thể chạy file Setup.exe để tiến hành cài đặt.