+1 vote
in .NET Core by

6 Answers

+1 vote
by

1. Tối ưu các danh sách
1.1 Nếu đang dùng
Entity Framework:
B1: Dùng IQueryable để lấy danh sách nếu đang sử dụng entity framework, sau đó where các điều kiện rồi chuyển thành AsEnumable() hoặc ToList() để trả kết quả lên View
B2: Sử dụng Ajax Partial để lấy danh sách data
B3: Xử lý phân trang cho partial đó

1.2 Nếu đang sử dụng StoreProcedure:
B1. Cần truyền tất cả parameter vào rồi xử lý dưới SP
B2. Chỉ select những column sử dụng, tránh select hết tất cả
B3. Thêm đoạn set "SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;" trên đầu body SP
B4. Trường hợp có parameter trong SP là kiểu "DateTime" hoặc "kiểu chuỗi (char, varchar, nvarchar)" thì cần khai báo một biến riêng trong SP rồi sử dụng biến đó, tránh dùng trực tiếp từ parameter truyền vào
B5. Trường hợp danh sách cần xử lý phân trang cho SP

+1 vote
by

2. Kế thừa sử dụnng các function chung
B1: Tạo class BaseController
B2: Viết các function chung trong BaseController
B3: Kế thừa BaseController ở các Controller khác để sử dụng các function đó (tránh dùng static function quá nhiều)

+1 vote
by

3. Xử lý cache Menu
B1. Tối ưu SP lấy danh sách menu
B2. Sử dụng cache để lưu menu khi đăng nhập
B3. Thiết lập thời gian hết hạn của cache (vd: 12hours)
B4. Khi lấy dữ liệu menu, cần kiểm tra cache trước và lấy data từ cache menu B5. Xử lý khi user logout, cần remove cache đi

+1 vote
by

4. Xử lý cache phân quyền
B1. Tối ưu SP lấy danh sách phân quyền của user
B2. Sử dụng cache để lưu danh sách quyền khi đăng nhập
B3. Thiết lập thời gian hết hạn của cache (vd: 12hours)
B4. Khi lấy dữ liệu phân quyền, cần kiểm tra cache trước và lấy data từ cache phân quyền
B5. Xử lý khi user logout, cần remove cache đi

+1 vote
by

5. Thay đổi cơ chế đăng nhập
B1. Tạo class Princial bao gồm các thông tin user
B2. Điều chỉnh repository MemberShip để lấy thông tin user và pasword mới
B3. Điều chỉnh action Login, lưu thông tin user Session => Cookie và set thời gian hết hạn cho phiên làm việc đó
B4. Thêm function "Application_PostAuthenticateRequest" trong Global.asax để nhận thông tin đăng nhập
B5. Update lại thông tin password mới cho các user

+1 vote
by

6. Thay đổi cơ chế lấy thông tin user từ WebSecurity
6.1 Đối với controller:
B1. Tạo class CurrentUser để kế thừa Principal
B2. Khi sử dụng để lấy thông tin User chỉ cần CurrentUser.[Data]

6.2 Đối với views:
B1. Tạo class BaseWebViewPage kế thừa từ WebViewPage để get thông tin user
B2. Điều chỉnh web config để lấy thông tin từ BaseWebViewPage
B3. Khi sử dụng để lấy thông tin User chỉ cần User.[Data]

Welcome to Qtsd Q&A, where you can ask questions and receive answers from other members of the community.
...