1.2 Mục đích của đề tài Mục đích chính của trang web bán mỹ phẩm là tạo ra một nền tảng toàn diện, đáp ứngnhu cầu mua sắm của khách hàng, cung cấp thông tin hữu ích, và xây dựng một cộng
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC KINH TẾ CÔNG NGHIỆP LONG AN
TRÊN NỀN TẢNG ASP.NET.CORE.MVC
GIẢNG VIÊN : ThS NGÔ VĂN LINH
SINH VIÊN : HUỲNH THỊ HỒNG DIỄM
MSSV : 2252010024
LONG AN,THÁNG NĂM 2024
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC KINH TẾ CÔNG NGHIỆP LONG AN
TRÊN NỀN TẢNG ASP.NET.CORE.MVC
GIẢNG VIÊN : ThS NGÔ VĂN LINH
SINH VIÊN : HUỲNH THỊ HỒNG DIỄM
MSSV : 2252010024
LONG AN,THÁNG NĂM 2024
Trang 3LỜI CẢM ƠN
Lời đầu tiên, chúng em xin gửi lời cảm ơn chân thành đến khoa Công Nghệ của TrườngĐại Học Kinh Tế Công Nghiệp Long An đã tạo điều kiện cho em được trình bày bài báocáo này và đặc biệt em xin gửi lời tri ân sâu sắc đến thầy Ngô Văn Linh đã tận tình hướngdẫn tụi em trong bài báo cáo này Và trong quá trình tìm hiểu và học tập môn Thiết Kế
Và Lập Trình Web Với APS.NET em đã nhận được sự giảng dạy và hướng dẫn rất tậntình, tâm huyết của thầy Thầy đã giúp em tích lũy thêm nhiều kiến thức hay và bổ ích
Từ những kiến thức mà thầy truyền đạt, em xin trình bày lại những gì em đã được học và
tự nghiêm cứu để viết nên một bài báo cáo trình bày một trang web bán hàng
Vì là lần đầu em thực hiện nên không ít thì nhiều những bất lợi thiếu sót kính mongthầy thông cảm và bỏ qua cho em Và rất mong được sự chỉ bảo, đóng góp ý kiến từ cácthầy cô để em có điều kiện thuận lợi bổ sung nâng cao kiến thức của mình
Kính chúc thầy hạnh phúc và thành công hơn nữa trong sự nghiệp trồng người Kínhchúc thầy luôn dồi dào sức khỏe để tiếp tục dìu dắt nhiều thế hệ học trò đến những bến
bờ tri thức
Em xin chân thành cảm ơn!
Long An, ngày tháng năm 2024
Chữ ký SVTH
HUỲNH THỊ HỒNG DIỄM
Trang 4NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Chữ ký GVHD
Ths.NGÔ VĂN LINH
Trang 5TÓM TẮT
Sự phát triển của công nghệ thông tin, đặc biệt là qua nền tảng ASP.NET Core MVC, đãmang lại nhiều lợi ích trong quảng bá mỹ phẩm ASP.NET Core MVC cho phép xâydựng các trang web hiệu suất cao với giao diện đẹp và dễ sử dụng, giúp thu hút kháchhàng Nó hỗ trợ quản lý và hiển thị thông tin sản phẩm như hình ảnh và mô tả, đồng thờicung cấp các công cụ để tạo danh mục và bộ lọc sản phẩm
Nền tảng này cũng cung cấp các tính năng bảo mật để quản lý thông tin người dùng và cánhân hóa trải nghiệm mua sắm, cùng với khả năng tích hợp các hệ thống thanh toán vàgiỏ hàng ASP.NET Core MVC tối ưu hóa SEO và hỗ trợ quảng cáo trực tuyến, giúptrang web dễ dàng được tìm thấy và theo dõi hiệu quả chiến dịch marketing
Ngoài ra, nền tảng này bảo đảm hiệu suất cao và tích hợp với các API và dịch vụ bênngoài, mở rộng chức năng như hệ thống quản lý khách hàng và kho Nhờ vào những tínhnăng này, ASP.NET Core MVC trở thành công cụ mạnh mẽ trong phát triển và quản lýcác trang web quảng bá mỹ phẩm
Trang 6MỤC LỤC
Nội dung
CHƯƠNG 1 : GIỚI THIỆU TỔNG QUAN 1
1.1 Lý do chọn đề tài 1
1.2 Mục đích của đề tài 2
1.3 Mục tiêu nghiêm cứu 2
1.4 Phương pháp và phạm vi nghiêm cứu 2
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 4
2.1 CÔNG NGHỆ ASP.NET MVC5 4
2.2 MÔ HÌNH MVC5 7
2.2.1 Các tính năng của mô hình MVC3 và MVC4 7
2.3 GIỚI THIỆU ENTITY FRAMEWORK 10
2.3.1 Tổng quan 10
2.3.2 Tầng Application 11
2.3.3 Tầng Object Services 11
2.3.4 Tầng EntityClient Data Provider 12
2.3.5 Tầng ADO.NET Data Providers 12
2.3.6 Tầng EDM (Entity Data Model) 12
2.3.7 Cách sử dụng trong Entity Framework 13
2.4 TỔNG QUAN VỀ SQL SERVER 14
2.5 TỔNG QUAN VỀ NGÔN NGỮ GIAO DIỆN 16
2.2.1 HTML 16
2.2.2 Razor View Engine 16
2.2.2.1 Giới thiệu 16
2.2.2.2 Cú pháp Razor 17
2.2.2 CSS 18
2.2.3 JavaScript, JQuery và Ajax 18
2.3 Môi trường phát triển 21
2.3.1 Azure DevOps 21
2.3.2 Visual Studio 22
CHƯƠNG 3 : THIẾT KẾ HỆ THỐNG 28
Trang 73.1 MÔ HÌNH CƠ SỞ DỮ LIỆU 28
3.2.1 Bảng dữ liệu Article 29
3.2.2 Bảng dữ liệu Authorized 29
3.2.3 Bảng dữ liệu Category 30
3.2.4 Bảng dữ liệu Group 30
3.2.5 Bảng dữ liệu Member 31
3.2.6 Bảng dữ liệu Product 32
3.2.7 Bảng dữ liệu Role 33
3.2.8 Bảng dữ liệu Customer 33
3.2.9 Bảng dữ liệu Oder 34
3.2.10 Bảng dữ liệu Detail 34
3.3 PHÂN TÍCH MỐI QUAN HỆ DỮ LIỆU GIỮA CÁC THỰC THỂ 34
CHƯƠNG 4 : DEMO VÀ TRIỄN KHAI DỰ ÁN 36
4.1 GIAO DIỆN CHÍNH 36
4.1.1 Giao diện trang chủ trên Web 36
4.1.2 Giao diện trang chủ trên Smartphone 39
4.1.3 Giao diện trang sản phẩm trên Web 43
4.1.4 Giao diện trang sản phẩm trên Smartphone 43
4.1.5 Giao diện tin tức trên Web 44
4.1.6 Giao diện tin tức trên Smartphone 44
4.2 GIAO DIỆN BIÊN TẬP VIÊN 44
4.2.1 Giao diện Login 44
1 Trên Web 44
2 Trên Smartphone 45
4.2.2 Trang chủ của biên tập viên 45
1 Trên Web 45
2 Trên Smartphone 46
4.3 GIAO DIỆN QUẢN TRỊ VIÊN 47
4.3.1 Giao diện Login 47
1 Trên Web 47
2 Trên Smartphone 48
Trang 84.3.2 Trang chủ của quản trị viên 48
1 Trên Web 48
2 Trên Smartphone 49
4.3.3 Danh mục 49
1 Trên Web 50
2 Trên Smartphone 57
4.3.5 Nghiệp vụ 58
1 Trên Web 58
2 Trên Smartphone 59
4.3.6 Hệ thống 59
1 Trên Web 59
2 Trên Smartphone 60
4.3.7 Thống kê 62
1 Trên Web 62
2 Trên Smartphone 62
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 63
A Kết luận 63
B Hướng phát triển 63
TÀI LIỆU THAM KHẢO 65
Trang 9DANH MỤC HÌNH ẢNH
Hình 0.1 Mỹ phẩm từ nhà Centella 1
Hình 0.1 Lịch sử các phiên bản MVC 4
Hình 0.2 Sự khác nhau giữa MVC và Webform 5
Hình 0.3 Mô hình MVC 6
Hình 0.4 Các loại security trong MVC5 9
Hình 0.5 Mô hình kiến trúc Entity Framework 10
Hình 0.6 Bảng ánh xạ tương đương giữa các đối tượng trong database và EF 11
Hình 0.7 Lưu đồ Entity Mapping Model 13
Hình 0.8 Sơ đồ minh họa mối quan hệ các thành phần trong EF 14
Hình 0.9 SQL Server 14
Hình 0.10 Sơ đồ minh họa kiến trúc của máy chủ SQL Server 15
Hình 0.11 Minh họa khối mã lệnh Razor View 17
Hình 0.12 Javascript là gì ? 18
Hình 0.13 Các tính năng của Azure DevOps 22
Hình 0.14 Visual Studio 23
Hình 0.15 VS đa ngôn ngữ lập trình 23
Hình 0.16 VS hỗ trợ gỡ lỗi mạnh mẽ 24
Hình 0.17 VS tổng hợp git 25
Hình 0.18 VS tự động hoàn thành mã (IntelliSense) 26
Hình 0.19 VS hỗ trợ đa nền tảng 27
Hình 0.1 Bảng dữ liệu Article 29
Hình 0.2 Bảng dữ liệu Authorized 29
Hình 0.3 Bảng dữ liệu Category 30
Hình 0.4 Bảng dữ liệu Group 30
Hình 0.5 Bảng dữ liệu Member 31
Hình 0.6 Bảng dữ liệu Product 32
Hình 0.7 Bảng dữ liệu Role 33
Hình 0.8 Bảng dữ liệu Customer 33
Hình 0.9 Bảng dữ liệu Oder 34
Hình 0.10 Bảng dữ liệu Detail 34
Hình 0.1 Giao diện trang chủ 36
Hình 0.2 Giao diện trang chủ phần giới thiệu 36
Hình 0.3 Giao diện trang chủ phần hợp tác thương hiệu 37
Hình 0.4 Giao diện trang chủ phần tin tức 37
Hình 0.5 Giao diện trang chủ phần chính sách mua hàng 38
Hình 0.6 Giao diện trang chủ phần sản phẩm 38
Hình 0.7 Giao diện trang chủ phần phản hồi từ khách hàng 38
Hình 0.8 Giao diện trang chủ phần thông tin liên hệ 39
Hình 0.9 Giao diện trang chủ phần footer 39
Trang 10Hình 0.10 Giao diện trang trên Smartphone 40
Hình 0.11 Giao diện trang trên Smartphone 40
Hình 0.12 Giao diện trang trên Smartphone 41
Hình 0.13 Giao diện trang trên Smartphone 42
Hình 0.14 Giao diện trang sản phẩm trên Web 43
Hình 0.15 Giao diện trang sản phẩm trên Smartphone 44
Hình 0.16 Giao diện trang sản phẩm trên Smartphone 44
Hình 0.17 Giao diện Login trên Web 45
Hình 0.18 Giao diện Login trên Smartphone 45
Hình 0.19 Trang chủ của biên tập viên trên web 45
Hình 0.20 Trang chủ của biên tập viên trên Smartphone 46
Hình 0.21 Giao diện Login của quản trị viên 47
Hình 0.22 Giao diện Login của biên tập viên trên Smartphone 48
Hình 0.23 Trang chủ của biên tập viên 48
Hình 0.24 Trang chủ của biên tập viên trên Smartphone 49
Hình 0.25 Danh mục trên trang chủ 49
Hình 0.26 Giao diện trang chuyên mục 50
Hình 0.27 Thêm một chuyên mục mới 50
Hình 0.28 Biên tập viên có thể xóa và sửa 50
Hình 0.29 Giao diện khi bấm vào chuyên mục Root 51
Hình 0.30 Giao diện khi bấm vào chuyên mục Product 51
Hình 0.31 Thêm một loại sản phẩm mới trong chuyên mục Product 52
Hình 0.32 Thêm thành công loại sản phẩm 52
Hình 0.33 Giao diện trong Authorized 53
Hình 0.34 Giao diện quản lý sản phẩm 53
Hình 0.35 Thêm một sản phẩm mới 54
Hình 0.36 Chọn chuyên mục cho sản phẩm đó 54
Hình 0.37 Cập nhật lại sản phẩm mới thêm 55
Hình 0.38 Cập nhật thành công 55
Hình 0.39 Giao diện quản lý tin tức 55
Hình 0.40 Thêm tin tức 56
Hình 0.41 Cập nhật lại sản phẩm 56
Hình 0.42 Giao diện chuyên mục trên Smartphone 57
Hình 0.43 Giao diện sản phẩm trên Smartphone 57
Hình 0.44 Giao diện tin tức trên Smartphone 58
Hình 0.45 Giao diện quản lý đơn đặt hàng 58
Hình 0.46 Giao diện chi tiết đơn hàng khi chưa được thanh toán 59
Hình 0.47 Giao diện nhóm quyền 60
Hình 0.48 Giao diện thành viên 60
Hình 0.49 Giao diện nhóm quyền Smartphone 61
Trang 11Hình 0.50 Giao diện thành viên trên Smartphone 61 Hình 0.51 Thống kê theo tháng 62 Hình 0.52 Thống kê theo tháng trên Smartphone 62
Trang 12CHƯƠNG 1 : GIỚI THIỆU TỔNG QUAN
1.1 Lý do chọn đề tài
Chọn đề tài làm trang web bán mỹ phẩm không chỉ giúp tận dụng các lợi thế của ngànhcông nghiệp này mà còn khai thác được tiềm năng lớn từ thị trường trực tuyến, mang lại
cơ hội kinh doanh hiệu quả và bền vững
Hình CHƯƠNG 1 : GIỚI THIỆU TỔNG QUAN.1 Mỹ phẩm từ nhà Centella
Nhu cầu thị trường cao:
- Thống kê thị trường: Theo báo cáo của Statista, ngành công nghiệp mỹ phẩmtoàn cầu được dự đoán sẽ đạt giá trị hơn 800 tỷ USD vào năm 2025 Tại ViệtNam, ngành mỹ phẩm cũng tăng trưởng mạnh với tỷ lệ hàng năm trên 10%
- Thói quen tiêu dùng: Phụ nữ và cả nam giới hiện nay rất chú trọng đến việc chămsóc bản thân, đặc biệt là da và tóc, dẫn đến nhu cầu mua sắm mỹ phẩm tăng cao.Khả năng đa dạng sản phẩm:
Trang 13- Danh mục sản phẩm phong phú: Mỹ phẩm không chỉ giới hạn ở các sản phẩmchăm sóc da mà còn bao gồm trang điểm, chăm sóc tóc, nước hoa, sản phẩmdưỡng thể, và các dụng cụ làm đẹp Mỗi dòng sản phẩm đều có nhiều loại khácnhau, phục vụ nhu cầu đa dạng của người tiêu dùng.
- Xu hướng sản phẩm mới: Các thương hiệu liên tục ra mắt các sản phẩm mới, xuhướng mới như mỹ phẩm hữu cơ, mỹ phẩm tự nhiên, mỹ phẩm không thử nghiệmtrên động vật, v.v
Khả năng tiếp cận khách hàng trực tuyến:
- Thương mại điện tử bùng nổ: Mua sắm trực tuyến đang trở thành xu hướng tấtyếu, đặc biệt trong thời kỳ dịch bệnh Nhiều người tiêu dùng chuyển sang muasắm trực tuyến vì sự tiện lợi và an toàn
- Công cụ SEO và quảng cáo trực tuyến: Sử dụng các công cụ SEO (tối ưu hóacông cụ tìm kiếm) và quảng cáo trên Google, Facebook, Instagram để tiếp cận vàthu hút khách hàng mục tiêu
1.2 Mục đích của đề tài
Mục đích chính của trang web bán mỹ phẩm là tạo ra một nền tảng toàn diện, đáp ứngnhu cầu mua sắm của khách hàng, cung cấp thông tin hữu ích, và xây dựng một cộngđồng gắn kết, từ đó thúc đẩy doanh số và phát triển thương hiệu một cách bền vững.Nhằm xây dựng website có thể được triển khai trên hosting mọi người đều truy cậpđược, website gồm 2 phần: (1) Phần dành cho người mua hàng; (2) Phần dành cho quảntrị viên
1.3 Mục tiêu nghiêm cứu
- Lựa chọn mẫu giao diện dành cho người dùng và giao diện dành cho quản trịviên
- Phân tích các bảng cơ sở dữ liệu
- Viết mã lệnh trang người dùng
- Viết mã lệnh trang Admin
1.4 Phương pháp và phạm vi nghiêm cứu
Phương pháp nghiên cứu:
Phân tích thị trường: Nghiên cứu thị trường để hiểu nhu cầu và xu hướng của người tiêu dùng trong lĩnh vực thẩm mỹ
Phân tích đối thủ cạnh tranh: Nghiên cứu các trang web hoặc cửa hàng cạnh tranh để hiểu về chiến lược kinh doanh của họ và điểm mạnh, điểm yếu
Trang 14Khảo sát khách hàng: Tổ chức các khảo sát để hiểu ý kiến, mong muốn và hành vi mua sắm của khách hàng.
Phân tích dữ liệu: Sử dụng các công cụ phân tích dữ liệu để hiểu về hành vi truy cập
và mua sắm trên trang web
Trang 15CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 CÔNG NGHỆ ASP.NET MVC5
Lịch sử ra đời:
Tất cả bắt đầu vào những năm 70 của thế kỷ 20, tại phòng thí nghiệm Xerox PARC ởPalo Alto Sự ra đời của giao diện đồ họa (GUI) và lập trình hướng đối tượng (ObjectOriented Programming) cho phép lập trình viên làm việc với những thành phần đồ họanhư những đối tượng đồ họa có thuộc tính và phương thức riêng của nó Không dừng lại
ở đó, những nhà nghiên cứu ở Xerox PARC còn đi xa hơn khi cho ra đời cái gọi là kiếntrúc MVC (viết tắt của Model – View – Controller)
MVC được phát minh tại Xerox Parc vào những năm 70, bởi TrygveReenskaug MVClần đầu tiên xuất hiện công khai là trong Smalltalk-80 Các giấy tờ quan trọng đầu tiênđược công bố trên MVC là “A Cookbook for Using the Model-View-Controller UserInterface Paradigm in Smalltalk – 80”, bởi Glenn Krasner và Stephen Pope, xuất bảntrong tháng 8 / tháng 9 năm 1988
Thế hệ tiếp theo của MVC xuất hiện cùng với hệ điều hành NeXT và các phần mềm củanó
Kiến trúc này ngày càng được phát triển và hoàn thiện nhằm giải quyết các vấn đề phátsinh cũng như các giải pháp cho quá trình phát triển phần mềm
Vì vậy sau đó, lần lượt các MVC framework ra đời dựa trên mô hình MVC như:CodeIgniter, Zend, ASP.NET MVC …
Hình CHƯƠNG 2: CƠ SỞ LÝ THUYẾT.2 Lịch sử các phiên bản MVC.
Sự khác nhau giữa MVC và webform
Thành phần ASP.net MVC chia ra làm 3 phần: ASP.net WebForm sử dụng
ViewState để quản lý Các trang
Trang 16– Models – View – ControllerMọi tương tác của người dùng vớiViews sẽ được xử lý thông quaviệc thực hiện các action hànhđộng trong Controllers, không cònpostback, lifecycle và events.
ASP.net đều có lifecycle,postback và dùng các webcontrols, các event để thực hiệncác hành động cho UI (UserInterface) Khi có sự tương tácvới người dùng nên hầu hếtASP.net WebForm xử lý chậm
Việc kiểm tra
(test), gỡ lỗi
(debug)
Đối với MVC thì việc đó có thể sửdụng các unit test có thể thẩm địnhrất dễ dàng các Controllers thựchiện như thế nào
Với ASP.net WebForm đềuphải chạy tất cả các tiến trìnhcủa ASP.net, và sự thay đổi IDcủa bất kỳ Controls nào cũngảnh hưởng đến ứng dụng
Hình CHƯƠNG 2: CƠ SỞ LÝ THUYẾT.3 Sự khác nhau giữa MVC và Webform
- View: View làm nhiệm vụ thể hiện một Model hay nhiều Model một cách trực quan, nónhận thông tin (một Model hoặc nhiều Model) sau đó biểu diễn lên trang website
Trang 17- Controller: Controller nằm giữa tầng View và Model, làm nhiệm vụ tìm kiếm, xử lýmột hoặc nhiều Model, sau đó gửi Model tới View để View hiển thị.
Hình CHƯƠNG 2: CƠ SỞ LÝ THUYẾT.4 Mô hình MVC
Tiếp tục hỗ trợ các tính năng trong ASP.NET
Hỗ trợ sử dụng các các tập tin:.ASPX, ASCX, Master như là thành phần View
Hỗ trợ đầy đủ các tính năng bảo mật của ASP.net: Form/ Windows authenticate, URLauthorization, membership/roles, output và data caching, section/ profile state,configuration system, provider architecture
Tách rõ ràng các mối liên quan, mở ra khả năng test TDD (Test Driven Developer)
Có thể test unit trong ứng dụng mà không cần phải chạy Controllers cùng với tiến trìnhcủa ASP.NET và có thể dùng bất kỳ một unit testing framework nào như NUnit,MBUnit, MS Test,…
Có khả năng mở rộng, mọi thứ trong MVC được thiết kế để dễ thay thế, dễ dàng tùybiến Ánh xạ URL mạnh mẽ, cho phép xây dựng ứng dụng với những URL sạch.Không sử dụng mô hình post-back từ giao diện gửi đến server Thay vào đó, chủ độngđưa những post-back từ View đến thẳng lớp Controller
Hỗ trợ nhiều công cụ tạo View (Support for Multiple View Engines)
Cho phép chọn công cụ tạo view Hộp thoại New Project cho phép xác định view enginemặc định cho một project
Các loại view engine :
- Web Forms (ASPX)
- Razor
- Hay một view engine nguồn mở như Spark, NHaml, NDjango
Hỗ trợ định tuyến
Trang 18- ASP.NET MVC Framework có một bộ máy ánh xạ URL thật sự mạnh mẽ.
- Bộ máy này cung cấp phương pháp rất linh hoạt trong việc ánh xạ URL sang cácController Classes
- Bạn có thể dễ dàng định ra các quy luật, cài đặt đường đi, ASP.NET dựa vào cácquy luật đường đi đó để xác định Controller và action cần phải thực thi
- ASP.NET còn có khả năng phân tích URL, chuyển các thông số trong URL thànhcác tham số trong lời gọi hàm của Controller
Model Binding
- Model Binding là tính năng thế mạnh của ASP.NET MVC (và bây giờ nó cũngđược áp dụng cho cả Web Forms trong phiên bản ASP.NET 4.5)
- Hỗ trợ bạn viết phương thức nhận một đối tượng tùy biến như là một tham số
- Với sự hỗ trợ của Model Binding, bây giờ bạn chỉ cần tập trung vào việc cài đặtcác nghiệp vụ logic, không cần phải bận tâm về việc suy nghĩ làm cách nào đểánh xạ dữ liệu từ người dùng sang các đối tượng NET
- Visual Studio bao gồm IntelliSense và mã cú pháp Razor được màu hóa
- Với Razor views có thể kiểm tra từng đơn vị mà không đòi hỏi bạn phải chạy cácứng dụng hoặc phải chạy website
- Controller được cải tiến hơn như thuộc tính ViewBag và kiểu ActionResult
- Cải thiện Dependency Injection với IDpendencyResolver (có 2 phần:DependencyResolver và interface IDpendencyResolver) trong ASP.NET
Trang 19MVC3; đây là lớp thực thi mô hình Service Locator, cho phép framework gọiDIContainer khi cần làm việc với 1 lớp thực thi từ 1 kiểu cụ thể.
- Cách tiếp cận với JavaScript được hạn chế
- Hỗ trợ caching trong Partial page
MVC4
- ASP.NET Web API ra đời, nhằm đơn giản hoá việc lập trình với HTML hiện đại
và đây là một cải tiến mới thay cho WCF Web API
- Mặc định của dự án được cải thiện hơn về hình thức bố trí, giúp dễ nhìn hơn
- Mẫu Empty Project là project trống, phù hợp cho những developer muốn nângcao khả năng lập trình với ASP.NET MVC4
- Giới thiệu jQuery Smartphone và mẫu Smartphone Project cho dự án
- Hỗ trợ Asynchronous Controller
- Kiểm soát Bundling và Minification thông qua web.config
- Hỗ trợ cho việc đăng nhập OAuth và OpenID bằng cách sử dụng thư việnDotNetOpenAuth Cho phép Logins từ Facebook và những tài khoản khác
- Phiên bản mới Windows Azure SDK 1.6 được phát hành
Các cải tiến của MVC5
- Với MVC5 thì cải tiến hơn so với ASP.NET MVC4, Bootstrap được thay thếmẫu MVC mặc định
- Chứng thực người dùng Authentication Filter được tuỳ chỉnh hoặc chứng thực từhãng thứ 3 cung cấp
- Với Filter overrides, chúng ta có thể Filter override trên Method hoặc Controller
- Thuộc tính Routing được tích hợp vào MVC5
Bootstrap
Bootstrap là một framework CSS được Twitter phát triển Nó là một tập hợp các bộchọn, thuộc tính và giá trị có sẵn để giúp web designer tránh việc lặp đi lặp lại trong quátrình tạo ra các class CSS và những đoạn mã HTML giống nhau trong dự án web củamình Ngoài CSS ra, thì bootstrap còn hỗ trợ các function tiện ích được viết dựa trênJQuery(Carousel, Tooltip, Popovers , )
Những lý do để sử dụng Bootstrap:
Được viết bởi những người có óc thẩm mỹ và tài năng trên khắp thế giới Sự tương thíchcủa trình duyệt với thiết bị đã được kiểm tra nhiều lần nên có thể tin tưởng kết quả mìnhlàm ra và nhiều khi không cần kiểm tra lại Vì vậy, giúp cho dự án của bạn tiết kiệm đượcthời gian và tiền bạc
Chỉ cần biết sơ qua HTML, CSS, Javascript, Jquery là bạn có thể sử dụng Bootstrap đểtạo nên một trang web sang trọng và đầy đủ Nhưng lại không cần code quá nhiều CSS
Trang 20Với giao diện mặc định là màu xám bạc sang trọng, hỗ trợ các component thông dụng
mà các website hiện nay cần có Vì nó là opensource nên bạn có thể vào mã nguồn của
nó để thay đổi theo ý thích của bản thân
Do có sử dụng Grid System nên Bootstrap mặc định hỗ trợ Responsive Bootstrap đượcviết theo xu hướng Smartphone First tức là ưu tiên giao diện trên Smartphone trước Nênviệc sử dụng Bootstrap cho website của bạn sẽ phù hợp với tất cả kích thước màn hình.Nhờ đó mà chúng ta không cần xây dựng thêm một trang web riêng biệt choSmartphone
Đội ngũ phát triển Bootstrap đã bổ sung thêm tính năng Customizer Giúp cho designer
có thể lựa chọn những thuộc tính, component phù hợp với project của họ Chức năng nàygiúp ta không cần phải tải toàn bộ mã nguồn về máy
Individual User Accounts Ứng dụng sử dụng tài khoản được quản lý
bởi SQL Server hoặc từ gmail, facebookOrganizational Accounts Ứng dụng sử dụng tài khoản được quản lý
bởi Active Directory hoặc Windows AzureDirectory
Windown Authentication Ứng dụng chạy trên intranet tức sử dụng
tài khoản windows để đăng nhập
Hình CHƯƠNG 2: CƠ SỞ LÝ THUYẾT.5 Các loại security trong MVC5
Mỗi loại security khác nhau sẽ phù hợp với các ứng dụng khác nhau Khi chọnIndividual User Accounts thì ứng dụng chạy trên Internet và sử dụng SQL Server để lưutrữ thành viên hoặc đăng nhập từ các hệ thống khác như Google, Facebook Khi đóngười dùng có thể đăng ký, đăng nhập, đổi mật khẩu, đăng xuất với tài khoản cục bộhoặc từ bên ngoài(Google, Facebook…)
Trang 21Code của AccountController có 2 sự khác biệt :
o Annotation [Authorize] được sử dụng để làm cho mọi action trong controllerkhông thẻ truy xuất khi chưa đăng nhập ngoại trừ action đó được đánh dấu vớiannotion [AllowAnontmous]
o Thuộc tính UserManager được tạo ra trong constructor để quản lý các thành viên.Các trang chức năng security đăng ký, đăng nhập và đổi mật khẩu được thực hiệnnhờ thuộc tính này
2.3 GIỚI THIỆU ENTITY FRAMEWORK
2.3.1 Tổng quan
Entity Framework (EF) là một framework ánh xạ quan hệ đối tượng (ORM) dành choADO.NET, là 1 phần của NET Framework EF cho phép các nhà phát triển Web tươngtác với dữ liệu quan hệ theo phương pháp hướng đối tượng đặc trưng Lợi ích lớn nhấtcủa EF là giúp lập trình viên giảm thiểu việc lập trình mã nguồn cần thiết để truy cập vàtương tác với cơ sở dữ liệu EF được Microsoft hỗ trợ phát triển lâu dài và bền vững, vìvậy EF là 1 framework mạnh nhất hiện nay để phát triển ứng dụng Web với sự hỗ trợđông đảo của các nhà phát triển Web Kiến trúc của Entity Framework được minh họanhư sau:
Hình CHƯƠNG 2: CƠ SỞ LÝ THUYẾT.6 Mô hình kiến trúc Entity Framework
Trang 222.3.2 Tầng Application
Application (ứng dụng) là tầng chứa giao diện trang Web (HTML, CSS, Javascript, hìnhảnh, …) và các đoạn mã nguồn (C#, VB) để tương tác dữ liệu với các tầng khác trong môhình thông qua Object Services
2.3.3 Tầng Object Services
Object Services (tạm dịch là các dịch vụ đối tượng) là tầng chứa quá trình tương tác giữaứng dụng và database, hay nói cách khác nó là nơi chủ yếu để truy cập dữ liệu từdatabase và trả ngược kết quả về giao diện Object Services cung cấp các tiện ích để truyvết các thay đổi và quản lý nhận dạng, đồng thời là các quan hệ và thay đổi ở database.Đây là các class tự động sinh ra tương ứng với mô hình dữ liệu Các class này bao gồm:ObjectContext đại diện cho một database ObjectContext có chức năng quản lý các kếtnối, định nghĩa mô hình dữ liệu với metadata và thao tác với database Lớp này cũng cóthể thêm vào các phương thức đại diện cho các stored procedure trong database
ObjectSet<TEntity> là một một tập hợp các entity Mỗi đối tượng này tương ứngvới một table Có thể lấy được các đối tượng này thông qua các property tươngứng của ObjectContext
EntityObject, ComplexObject là các lớp tương ứng cho một dòng dữ liệu củatable trong database Khác biệt chính giữa hai loại này là ComplexObject khôngchứa primary key
EntityCollection<TEntity> và EntityReference<TEntity>: là các đối tượng thểhiện mối quan hệ (relationship) giữa hai entity class Mỗi đối tượng này có thểđược truy xuất thông qua các property của entity class
Sự ánh xạ tương đương được thể hiện bảng sau:
Trang 232.3.4 Tầng EntityClient Data Provider
EntityClient là một data provider mới của ADO.NET dùng để truy xuất đến database.Được xây dựng bên trên các ADO.NET data provider cơ bản, EntityClient không truyxuất trực tiếp dữ liệu mà thông qua các data provider khác dựa vào các thông tin dữ liệu
từ Entity Data Model
EntityClient cũng bao gồm các lớp giống như các ADO.NET data provider khác và tênlớp được đặt với tiền tố Entity Ví dụ bạn có thể tạo kết nối bằng EntityConnection, tạocác câu truy vấn bằng EntityCommand và đọc kết quả bằng EntityDataReader
Một điểm khác biệt với các data provider khác là EntityClient sử dụng Entity SQL đểtruy vấn dữ liệu Các lệnh Entity SQL sẽ được chuyển thành một cấu trúc lệnh dạng cây(command tree) và chuyển xuống cho các data provider khác
2.3.5 Tầng ADO.NET Data Providers
Đây là tầng thấp nhấp để dịch các truy vấn L2E (LINQ to Entity) thông qua cây lệnhthành các câu lệnh SQL và thực thi các câu lệnh trong hệ thống DBMS (databasemanagement system – hệ quản lý dữ liệu) nào đó Tầng này kết với database sử dụngADO.NET
EntityClient là một data provider mới của ADO.NET dùng để truy xuất đến database.Được xây dựng bên trên các ADO.NET data provider cơ bản, EntityClient không truyxuất trực tiếp dữ liệu mà thông qua các data provider khác dựa vào các thông tin dữ liệu
từ Entity Data Model
EntityClient cũng bao gồm các lớp giống như các ADO.NET data provider khác và tênlớp được đặt với tiền tố Entity Ví dụ bạn có thể tạo kết nối bằng EntityConnection, tạocác câu truy vấn bằng EntityCommand và đọc kết quả bằng EntityDataReader
Một điểm khác biệt với các data provider khác là EntityClient sử dụng Entity SQL đểtruy vấn dữ liệu Các lệnh Entity SQL sẽ được chuyển thành một cấu trúc lệnh dạng cây(command tree) và chuyển xuống cho các data provider khác
2.3.6 Tầng EDM (Entity Data Model)
Entity Data Model (EDM) là mô hình dữ liệu được mô tả thông qua các ngôn ngữ theochuẩn XML EDM được chia làm 3 lớp là: Conceptual, Mapping và Logical Mỗi lớpnày được định nghĩa bởi ngôn ngữ riêng theo định dạng XML:
Conceptual – Conceptual Schema Definition Language (CSDL): là ngôn ngữ định nghĩacác entity, relationship, hàm trong tập tin với phần mở rộng csdl Có thể tạo được cácentity class (object layer)
Mapping – Mapping specification language (MSL): định nghĩa các ánh xạ giữa lớpconceptual và logical, nội dung này được lưu trong tập tin msl
Trang 24Logical – Store Schema Definition Language (SSDL): định nghĩa mô hình lưu trữ của
dữ liệu, lưu trữ trong tập tin ssdl
Hình CHƯƠNG 2: CƠ SỞ LÝ THUYẾT.8 Lưu đồ Entity Mapping Model
2.3.7 Cách sử dụng trong Entity Framework
Là thành phần trung gian giữa ứng dụng và database, Entity Data Model (EDM) giúp tạoliên kết và mô tả giữa nguồn dữ liệu vật lý và các đối tượng bussiness (hay object layer)trong ứng dụng Dựa vào sự lựa chọn thành phần nào sẽ được tạo ra trước, một ứng dụngEntity Framework (EF) có thể sử dụng 1 trong 3 cách tiếp cận: Database First, ModelFirst và Code First
Các sơ đồ dưới đây minh hoạt mối quan hệ và thứ tự tạo ra giữa các thành phần dữ liệutrong ứng dụng của Entity Framework Phần Model tương ứng với tập tin edmx, Codetương ứng với tập tin cs (hoặc vb nếu bạn dùng VB.NET)
Trang 25Hình CHƯƠNG 2: CƠ SỞ LÝ THUYẾT.9 Sơ đồ minh họa mối quan hệ các thành phần trong EF
Ngoài ra, SQL Server cũng cung cấp các công cụ để tạo báo cáo, phân tích và quản lý cơ
sở dữ liệu trực quan thông qua giao diện người dùng hoặc các script lệnh SQL
SQL Server được xây dựng dựa trên SQL, một ngôn ngữ lập trình tiêu chuẩn để tươngtác với cơ sở dữ liệu quan hệ SQL Server được liên kết với Transact-SQL hoặc T-SQL,triển khai SQL của Microsoft có bổ sung một tập hợp các cấu trúc lập trình độc quyền
SQL Server hoạt động độc quyền trên môi trường Windows trong hơn 20 năm Vào năm
2016, Microsoft đã cung cấp SQL Server trên Linux SQL Server 2017 ra mắt vào tháng
10 năm 2016 chạy được trên cả Windows và Linux
Hình CHƯƠNG 2: CƠ SỞ LÝ THUYẾT.10 SQL Server
Cấu trúc của SQL Server
Trang 26Hình CHƯƠNG 2: CƠ SỞ LÝ THUYẾT.11 Sơ đồ minh họa kiến trúc của máy chủ SQL Server
SQL Server gồm 2 phần chính :
Database Engine của SQL Server
Thành phần cốt lõi của SQL Server là database engine Thành phần này bao gồm mộtcông cụ quan hệ có chức năng xử lý các lệnh và truy vấn, một công cụ lưu trữ quản lý cáctệp, bảng, trang, index, bộ đệm và giao dịch cơ sở dữ liệu
Các nhiệm vụ, trigger, trình xem và các đối tượng dữ liệu lưu trữ khác cũng đượcDatabase Engine khởi tạo và xử lý
SQLOS trong SQL Server
SQLOS là tầng cuối cùng trong kiến trúc tổng thể của SQL Server SQLOS cung cấpnhiều hệ điều hành như quản lý bộ nhớ và I/O Ngoài ra, còn có các dịch vụ khác nhưdịch vụ xử lý ngoại lệ và đồng bộ hóa
Trang 272.5 TỔNG QUAN VỀ NGÔN NGỮ GIAO DIỆN
2.2.1 HTML
HTML là chữ viết tắt của Hypertext Markup Language Nó giúp người dùng tạo và cấu
trúc các thành phần trong trang web hoặc ứng dụng, phân chia các đoạn văn, heading,links, blockquotes,
HTML không phải là ngôn ngữ lập trình, đồng nghĩa với việc nó không thể tạo ra cácchức năng “động” được Nó chỉ giống như Microsoft Word, dùng để bố cục và địnhdạng trang web
Khi làm việc với HTML, chúng ta sẽ sử dụng cấu trúc code đơn giản (tags và attributes)
để đánh dấu lên trang web Ví dụ, chúng ta có thể tạo một đoạn văn bằng cách đặt vănbản vào trong cặp tag mở và đóng văn bản <p> và </p>
2.2.2 Razor View Engine
2.2.2.1 Giới thiệu
Như chúng ta đã biết, từ phiên bản Asp.net MVC 3, Microsoft lựa chọn View Enginemặc định là Razor View Engine, khi View được yêu cầu bởi Http Request thì RazorView Engine thực hiện biên dịch trang View này
Khi sử dụng Razor View Engine, lập trình viên không cần phải học một ngôn ngữ lậptrình mới, mà thay vào đó Razor cung cấp các mẫu nhằm kết hợp giữa cú pháp của ngônngữ đánh dấu siêu văn bản (HTML) và ngôn ngữ lập trình như C#, VB ở nội dung củacác trang View Với các lập trình viên đã quen với các ngôn ngữ C# hoặc VB thì học vàlàm quen với Razor View Engine là rất đơn giản
Trang 282.2.2.2 Cú pháp Razor
Để thông dịch các đoạn mã được viết bởi các ngôn ngữ như C#, VB trong các trangView, Razor đưa ra những quy tắc nhằm để xác định các đoạn mã đó được biên dịch ởphía Server (server-side code) và các đoạn mã đánh dấu (markup code) được thực hiệnbiên dịch ở phía client (như javascript, css, html, …), Razor sử dụng ký tự @ nhằm phânbiệt giữa server-side code và markup code
Khi tạo ra các Razor view chúng ta cần chú ý như sau :
- Sử dụng @{ code } để viết một khối mã lệnh
- Để viết một biểu thức inline (Viết biểu thức Razor trực tiếp trong đoạn mã củamarkup code, lập trình viên chỉ cần sử dụng @
- Sử dụng từ khóa var để khai báo biến
- Sử dụng ; để kết thúc một câu lệnh
- Với các Razor view sử dụng ngôn ngữ C#, các file có đuôi mở rộng là cshtml
- Với các Razor view sử dụng ngôn ngữ VB, các file có đuôi mở rộng là vbhtml
Trang 292.2.3 JavaScript, JQuery và Ajax
JavaScript
Javascript là một ngôn ngữ lập trình website, được tích hợp và nhúng trong HTML vàgiúp cho website trở nên sống động hơn Đây là dạng ngôn ngữ theo kịch bản, được hìnhthành dựa trên chính đối tượng phát triển có sẵn hoặc đơn giản là tự định nghĩa ra.Javascript cho phép bạn kiểm soát các hành vi của trang web tốt hơn so với việc chỉ sửdụng mỗi HTML Có thể kể đến một vài ứng dụng thực tiễn cực kỳ quen thuộc củaJavascript như slideshow, pop-up quảng cáo hay tính năng autocomplete của Google,…chúng đều được viết bằng ngôn ngữ Javascript
Hình CHƯƠNG 2: CƠ SỞ LÝ THUYẾT.13 Javascript là gì ?
Ưu và nhược điểm của Javascript
Ưu điểm :
Trang 30 Khách hàng có thể dễ dàng sử dụng Javascript
Các mã được tiến hành thực hiện thông qua bộ vi xử lý của chính người dùng thay vì sửdụng trên máy chủ web Nhờ vậy, bạn có thể tiết kiệm năng thông, đồng thời giảmnhững căng thẳng, hoạt động quá nhiều trên máy chủ web dễ dàng hơn
Ngôn ngữ lập trình thông dụng, phổ biến
Javascript được người dùng đánh giá là ngôn ngữ lập trình đơn giản, dễ dàng tìm hiểucũng như sử dụng Với những cú pháp tương đối giống với tiếng Anh thì việc bạn có thểthực hiện thao tác với Javascript một cách dễ dàng và nhanh chóng Thông qua mô hìnhDOM được sử dụng, cung cấp tới nhiều tính năng hữu ích, được viết sẵn và đem lại khảnăng đáp ứng tốt với những nhu cầu, đòi hỏi khác nhau từ phía người dùng
Với những tính năng hữu ích mà ngôn ngữ lập trình này mang lại thì việc phát triển kịchbản nhằm giải quyết yêu cầu, mục đích cũng trở nên dễ dàng hơn Nhờ vậy mà nhữngmục đích tùy chỉnh của con người được đáp ứng hiệu quả với sự hỗ trợ tối đa từJavascript
Độ nhanh chóng với người dùng cuối
Việc sử dụng ngôn ngữ Javascript có khả năng đảm bảo khi mã được thực hiện trên thiết
bị máy tính của người dùng đồng nghĩa với việc quá trình xử lý lẫn kết quả đều đượchoàn thành ngay lập tức Thời gian cụ thể sẽ phụ thuộc vào từng nhiệm vụ tương ứngthời gian nhất định, tuy nhiên thường thì các vấn đề sẽ được giải quyết nhanh chóng
Mang tới tính năng bổ sung cho các website
Nhờ vào Greasemonkey giúp đảm bảo cho các nhà phát triển ngôn ngữ lập trìnhJavascript dễ dàng trong việc viết các đoạn mã, từ đó có thể thực hiện hiệu quả trênwebsite như mong muốn Đồng thời, việc mở rộng thêm các tính năng của trang webcũng trở nên đơn giản và dễ dàng hơn
Bên cạnh đó, với những trang web khi sử dụng có yêu cầu sở hữu tính năng nhất định thìchúng ta hoàn toàn có khả năng tự viết, ngoài ra cũng có thể sử dụng thêm trình bổ sungGreasemonkey giúp việc thực hiện diễn ra thuận lợi trên website chúng ta đang dùng
Ứng dụng đa dạng trên nhiều trình duyệt khác nhau
Nhờ vào khả năng sử dụng thông qua nhiều trình duyệt khác nhau nên ngôn ngữ lập trìnhJavascript ngày càng trở nên phổ biến, được tin dùng và ứng dụng phong phú hơn Bạn
có thể dễ dàng bắt gặp ngôn ngữ lập trình này trên nhiều trình duyệt trên máy tính nhưChrome, Firefox,… hay cá trình duyệt khác trên thiết bị di động Đây cũng là ưu điểmnổi bật giúp Javascript được ứng dụng hiệu quả, đầy đủ hơn cũng như đáp ứng được nhucầu của con người một cách tốt nhất
Trang 31 Dễ dàng trong quá trình sử dụng
Sử dụng Javascript đảm bảo cho các lập trình viên có thể dễ học, dễ dàng phát hiện lỗikhi xuất hiện, đồng thời cũng có khả năng hoạt động nhanh chóng, nhẹ nhàng hơn so vớicác ngôn ngữ lập trình khác Nhờ vậy, quá trình sử dụng cũng thích hợp với nhiều đốitượng người dùng, mang lại hiệu quả cao và tránh những ảnh hưởng không mong muốn
có thể xảy ra
Sở hữu giao diện thân thiện, tính năng đa dạng
Javascript được ưa chuộng hơn cả bởi sở hữu giao diện thân thiện, phù hợp với hầu hết
mọi đối tượng người dùng khác nhau Không chỉ vậy, ngôn ngữ lập trình này cũng manglại tính tương tác cao giúp cho quá trình ứng dụng của mỗi người dùng một kết quả ưng
ý nhất Javascript cũng sở hữu nhiều tính năng giúp website bạn tạo ra có được hiệu quả
sử dụng lý tưởng Tiêu biểu như việc tiến hành thêm slide, slideshow, thực hiện hiệu ứngcuộn khi chuột di tới, tính năng kéo thả,… tất cả đều được trang bị đầy đủ và mang lạihiệu quả sử dụng tốt nhất cho người dùng
Nhược điểm :
Bên cạnh những ưu điểm nổi bật được nhắc tới phía trên, ngôn ngữ lập trình “quốc dân”của chúng ta vẫn còn tồn tại một số hạn chế cần khắc phục Việc xác định và nắm rõđược những hạn chế sẽ giúp bạn chủ động hơn trong việc đánh giá cũng như đưa ra quyếtđịnh sử dụng hợp lý nhất
Ngôn ngữ lập trình Javascript dễ bị khai thác: điều này đồng nghĩa với việc bảo mật chongôn ngữ này không được đánh giá cao Bởi vậy, trong quá trình sử dụng người dùngcần lưu ý những nguy cơ để chủ động xử lý khi có vấn đề xảy ra
Với Javascript, chúng ta có thể sử dụng để thực thi mã độc trên máy tính của người dùngnên có thể gây những ảnh hưởng hay thiệt hại không nhỏ tới công việc mà chúng ta đangthực hiện
Javascript có thể không sử dụng được với một số trình duyệt cụ thể trong một số trườnghợp nhất định Điều này gây bất lợi cho một số người dùng khi không thể sử dụng ngônngữ này khi cần thiết
Javascript sở hữu code snippets khá lớn nên có thể khó khăn trong quá trình sử dụng
Trang 32- JQuery là một bộ công cụ tiện ích JavaScript làm đơn giản hóa các tác vụ đa dạng vớiviệc viết ít code hơn Dưới đây liệt kê một số tính năng tối quan trọng được hỗ trợ bởijQuery:
Thao tác DOM − jQuery giúp dễ dàng lựa chọn các phần tử DOM để traverse mộtcách dễ dàng như sử dụng CSS, và chỉnh sửa nội dung của chúng bởi sử dụngphương tiện Selector mã nguồn mở, mà được gọi là Sizzle
Xử lý sự kiện − jQuery giúp tương tác với người dùng tốt hơn bằng việc xử lý các
sự kiện đa dạng mà không làm cho HTML code rối tung lên với các EventHandler
Hỗ trợ AJAX − jQuery giúp bạn rất nhiều để phát triển một site giàu tính năng vàphản hồi tốt bởi sử dụng công nghệ AJAX
Hiệu ứng − jQuery đi kèm với rất nhiều các hiệu ứng đa dạng và đẹp mắt mà bạn
có thể sử dụng trong các Website của mình
Được hỗ trợ hầu hết bởi các trình duyệt hiện đại − jQuery được hỗ trợ hầu hết bởicác trình duyệt hiện đại, và làm việc tốt trên IE 6.0+, FF 2.0+, Safari 3.0+,Chrome và Opera 9.0+
Cập nhật và hỗ trợ các công nghệ mới nhất − jQuery hỗ trợ CSS3 Selector và cúpháp XPath cơ bản
Ajax
- AJAX, là viết tắt của Asynchronous JavaScript and XML, (tạm dịch là JavaScript vàXML không đồng bộ), là một kỹ thuật mới để tạo các ứng dụng web giàu tính tương tác,nhanh hơn và mượt mà hơn với sự giúp đỡ của XML, HTML, CSS và JavaScript
- AJAX không phải là ngôn ngữ lập trình mới Tên AJAX ở đây không có nghĩa là bạnphải học XML trước khi cần học AJAX Điều này là không cần thiết
- AJAX cho phép các trang web được cập nhật một cách không đồng bộ bằng cách traođổi các lượng dữ liệu nhỏ với Server Tức là AJAX giúp cập nhật các phần nhỏ trongtrang mà không cần tải lại toàn bộ trang Nếu đến đây bạn chưa hiểu thì các dòng tiếptheo đây sẽ giúp bạn hiểu cách AJAX làm việc hơn
2.3 Môi trường phát triển
2.3.1 Azure DevOps
Azure DevOps là một bộ công cụ dành cho việc quản lý dự án phần mềm, bao gồm quản
lý mã nguồn, tự động hóa quy trình phát triển phần mềm, quản lý quy trình liên kết(continuous integration - CI) và liên kết triển khai (continuous deployment - CD), quản
lý công việc và nhiệm vụ, cũng như cung cấp các công cụ để theo dõi và báo cáo tiến độ
dự án
Trang 33Azure DevOps Services sẽ cung cấp cho bạn bộ tính năng tích hợp, mà dựa vào đó có thểtruy cập thông qua trình duyệt web hoặc ứng dụng IDE Những dịch vụ bao gồm:
Hình CHƯƠNG 2: CƠ SỞ LÝ THUYẾT.14 Các tính năng của Azure DevOps
Azure Repos : cung cấp kho kiểm soát phần mềm Git hoặc Team FoundationVersion Control (TFVC), giúp bạn kiểm soát chặt chẽ mọi mã nguồn
Azure Pipelines : cung cấp dịch vụ xây dựng và phát hành nhằm hỗ trợ khả năngtích hợp và chuyển giao liên tục cho ứng dụng
Azure Boards : cung cấp bộ cung cụ Agile nhằm giúp bạn có thể lên kế hoạch,theo dõi tiến độ công việc, rà soát lỗi code cũng như các vấn đề liên quan nhờphương pháp Kanban và Scrum
Azure Test Plans : cung cấp công cụ giúp kiểm tra ứng dụng bằng cả phương phápthủ công và tự động
Azure Artifacts : cho phép chia sẻ các gói Maven, npm và NuGet từ các nguồncông khai cũng như các nhân
Bên cạnh đó, các công cụ cộng tác bao gồm cả dashboard có thể tùy chỉnh với các tiệních khác nhằm chia sẻ thông tin, tiến trình và xu hướng…
2.3.2 Visual Studio
Visual Studio được hiểu là một hệ thống bao gồm tất cả những gì có liên quan đến pháttriển ứng dụng như trình chỉnh sửa mã, thiết kế, gỡ lỗi, viết code hay chỉnh sửa thiết kế,ứng dụng một cách dễ dàng và nhanh chóng Có thể nói đây là một phần mềm hỗ trợ đắclực đối với dân lập trình trong việc lập trình website.Visual Studio cho phép người dùng
có khả năng thiết kế và trải nghiệm giao diện như khi phát triển ứng dụng
Trang 34Hình CHƯƠNG 2: CƠ SỞ LÝ THUYẾT.15 Visual Studio
Các tính năng nổi bật của Microsoft Visual Studio :
Hỗ trợ đa ngôn ngữ lập trình
Hình CHƯƠNG 2: CƠ SỞ LÝ THUYẾT.16 VS đa ngôn ngữ lập trình
Microsoft Visual Studio nổi bật với khả năng hỗ trợ một loạt các ngôn ngữ lập trình, baogồm JavaScript, TypeScript, Python, C#, Java, Go, Ruby Điều này biến nó trở thànhcông cụ lý tưởng cho các nhà phát triển làm việc trên nhiều dự án với đa ngôn ngữ lậptrình Ngoài ra, khả năng hỗ trợ đa ngôn ngữ của Microsoft Visual Studio còn giúp giớilập trình viên dễ dàng chuyển đổi giữa các ngôn ngữ và dự án mà không cần phải thayđổi môi trường làm việc, từ đó tiết kiệm thời gian, đồng thời tối ưu hiệu quả công việc
Trang 35Hỗ trợ gỡ lỗi mạnh mẽ
Hình CHƯƠNG 2: CƠ SỞ LÝ THUYẾT.17 VS hỗ trợ gỡ lỗi mạnh mẽ
Microsoft Visual Studio cung cấp một hệ thống hỗ trợ gỡ lỗi mạnh mẽ với các tính năngnhư Breakpoints, kiểm tra biến, theo dõi code từng bước và bảng điều khiển gỡ lỗi Cáccông cụ này sẽ giúp nhà phát triển dễ dàng tìm và sửa lỗi trong mã nguồn, tăng cườnghiệu quả và chất lượng của quá trình phát triển phần mềm Ngoài ra, bộ công cụ gỡ lỗicủa Microsoft Visual Studio cũng sẽ giúp giảm thiểu thời gian và công sức cần thiết đểxác định và sửa chữa các vấn đề trong code, từ đó tăng tốc độ phát triển và triển khai ứngdụng
Tích hợp Git
Trang 36Hình CHƯƠNG 2: CƠ SỞ LÝ THUYẾT.18 VS tổng hợp git
Một tính năng nổi bật khác của Microsoft Visual Studio là hỗ trợ cho Git, cho phép nhàphát triển quản lý phiên bản trực tiếp trong trình soạn thảo Nhờ vậy, việc quản lý mãnguồn sẽ trở nên dễ dàng hơn, hiệu quả hơn nhờ khả năng thực hiện các thao tác Git nhưcommit, push, pull và xem lịch sử mã nguồn hết sức trực quan Bên cạnh đó, việc tíchhợp Git cũng giúp Microsoft Visual Studio tối ưu hóa quy trình làm việc của nhà pháttriển, đảm bảo họ có thể tập trung vào việc viết và cải thiện code thay vì quản lý phiênbản
Tự động hoàn thành mã (IntelliSense)
Trang 37Hình CHƯƠNG 2: CƠ SỞ LÝ THUYẾT.19 VS tự động hoàn thành mã (IntelliSense)
Microsoft Visual Studio cũng cung cấp tính năng IntelliSense - một hệ thống tự độnghoàn thành mã nguồn thông minh dựa trên ngữ cảnh Về cơ bản, IntelliSense sẽ hiển thịgợi ý về biến, phương thức và các thành phần khác của mã nguồn, giúp tăng tốc quá trìnhviết mã Nhờ vậy, tính năng này không chỉ giúp tăng hiệu suất làm việc bằng cách giảmthiểu thời gian gõ code, mà còn giúp giảm thiểu lỗi và cung cấp thông tin hữu ích về cácAPI và thư viện mà nhà phát triển có thể không quen thuộc Với IntelliSense, MicrosoftVisual Studio chắc chắn sẽ là một trợ lý thông minh để hỗ trợ nhà phát triển trong việcviết mã nhanh chóng và chính xác hơn
Hỗ trợ đa nền tảng
Trang 38Hình CHƯƠNG 2: CƠ SỞ LÝ THUYẾT.20 VS hỗ trợ đa nền tảng
Microsoft Visual Studio có tính năng hỗ trợ phát triển ứng dụng trên nhiều nền tảng(cross-platform) rất tốt Cụ thể, phần mềm lập trình này cho phép lập trình viên xây dựngcác ứng dụng có thể chạy trên:
- Windows: Đây là nền tảng mặc định với hỗ trợ tốt nhất cho các ứng dụngdesktop, web, di động trên Windows
- Android: Visual Studio hỗ trợ xây dựng ứng dụng Android native bằngJava/Kotlin cũng như các framework như Xamarin hay React Native
- iOS: Có thể phát triển ứng dụng iOS native bằng Objective-C/Swift hoặc dùngXamarin để viết code C# cho cả iOS và Android
- Web: Visual Studio cung cấp các công cụ để phát triển các ứng dụng web nhưASP.NET, NodeJS
- macOS: Có thể xây dựng ứng dụng giao diện người dùng trên macOS bằng C# và.NET Core
- Linux: Hỗ trợ phát triển các ứng dụng NET Core chạy trên Linux
Với Visual Studio, lập trình viên có thể dễ dàng xây dựng các ứng dụng chạy trên nhiềunền tảng, tiết kiệm thời gian phát triển và chi phí Đây là một tính năng rất hữu ích vàmạnh mẽ của Visual Studio