Báo cáo chuyên đề học phần lập trình web nâng cao đề tài tìm hiểu nền tảng net core 6 0

84 0 0
Báo cáo chuyên đề học phần lập trình web nâng cao đề tài tìm hiểu nền tảng  net core 6 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

lOMoARcPSD|39472803 TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN LẬP TRÌNH WEB NÂNG CAO ĐỀ TÀI: TÌM HIỂU NỀN TẢNG NET CORE 6.0 Sinh viên thực hiện: Hoàng Minh An Đặng Đình Việt Anh Nguyễn Hữu Việt Anh Đôn Nguyên Thắng Nguyễn Quốc Việt Giảng viên hướng dẫn: Trần Trung Mã sinh viên: 21810320503 21810310178 21810310042 21810320482 21810310007 Lớp: D16QTANM STT Họ và tên HÀ NỘI - 2023 Điểm Chữ ký Nội dung thực hiện lOMoARcPSD|39472803 Nguyễn Hữu Việt Anh Thực hiện code Demo 1 MSV: 21810310042 Biên soạn báo cáo Tìm hiểu ASP.NET, ASP.NET Core Hoàng Minh An Tìm hiểu Hệ quản trị cơ sở dữ liệu 2 MSV: 21810320503 PostgreSQL Tìm hiểu AJAX Đặng Đinh Việt Anh Tìm hiểu NoSQL, MongoDB, 3 MSV: 21810310178 Cassandra Tìm hiểu NET và Webservers Nguyễn Quốc Việt Biên soạn báo cáo 4 MSV: 21810310007 Tìm hiểu Webservice Đôn Nguyên Thắng Tìm hiểu RAZOR PAGE 5 MSV: 21810320482 PHIẾU CHẤM ĐIỂM Phiếu chấm điểm của giảng viên: Họ và tên Chữ ký Ghi chú Giảng viên chấm 1 : Giảng viên chấm 2 : 1 lOMoARcPSD|39472803 MỤC LỤC LỜI CẢM ƠN 6 CHƯƠNG 1: Tổng quan NET và Webservers .7 1 Tổng quan NET 6 7 1.1 Hỗ trợ 9 1.2 Hiệu năng 10 1.3 C# 10 10 1.4 Bảo mật .10 1.5 Arm64 11 2 Tổng quan về NGINX/Kestrel/IIS/Apache 11 2.1 NGINX 11 2.1.1 NGINX là gì 11 2.1.2 Tính năng của NGINX 12 2.1.3 Cài đặt .12 2.1.4 Cấu hình NGINX 13 2.2 Apache 18 2.2.1 Apache là gì? 18 2.2.2 Apache và những web server khác .18 2.2.2.1 Apache vs NGINX 18 2.2.2.2 Apache vs Tomcat 19 2.2.3 Ưu điểm 19 2.2.4 Nhược điểm .20 2.3 Kestrel 20 2.3.1 Kestrel là gì? 20 2.3.2 Tại sao sử dụng Kestrel? .20 2.3.3 Sử dụng Kestrel 20 2.3.3.1 Tự host (Self Hosting) 21 2.3.3.2 Đằng sau Web Server khác 22 2.4 IIS 23 2.4.1 IIS là gì? 23 2.4.2 IIS có thể làm được gì? 24 2.4.3 IIS hoạt động như thế nào? 24 2.4.4 Các tính năng của IIS 25 2 lOMoARcPSD|39472803 2.4.5 So sánh IIS với các web server khác .25 3 Tổng quan về lập trình với ngôn ngữ Python 26 3.1 Ngôn ngữ Python .26 3.1.1 Python là gi? 26 3.1.2 Ứng dụng của Python 26 3.1.3 Lợi thế của Python 27 3.2 Các bước cài đặt môi trường lập trình Python 28 CHƯƠNG 2: ASP.NET và ASP.NET Core 33 1 ASP.NET 33 1.1 ASP.NET là gì? 33 1.2 Chức năng của ASP.NET 33 1.3 Các thành phần của ASP.NET 33 2 ASP.NET Core 33 2.1 ASP.NET Core là gì? 33 2.2 Ứng dụng 33 2.3 Sự khác nhau giữa ASP.NET và ASP.NET Core 35 2.3.1 Cấu trúc project .35 2.3.2 Cấu trúc một solution 36 2.3.3 Tập tin dự án csproj .37 2.3.4 Tập tin Program.cs 38 2.3.5 Tập tin Startup.cs 38 3 Demo Project 40 CHƯƠNG 3: Hệ quản trị cơ sở dữ liệu PostgreSQL 43 1 Tìm hiểu tổng quan Hệ quản trị cơ sở dữ liệu PostgreSQL 43 1.1 Đặc điểm của PostgreSQL 43 1.2 Tính năng 43 1.3 Ưu điểm và hạn chế 45 2 Kết nối ASP.NET Core với PostgreSQL có nhiều tác dụng quan trọng trong việc phát triển ứng dụng web .46 2.1 Đặc điểm .46 2.2 Ưu và nhược điểm 46 2.2.1 Ưu điểm 46 2.2.2 Nhược điểm .47 3 Tổng quan kết nối ASP.NET Core MVC, với Hệ quản trị cơ sở dữ liệu PostegreSQL 47 CHƯƠNG 4: AJAX .53 3 lOMoARcPSD|39472803 1 AJAX là gì? 53 2 Sử dụng AJAX trong Javascript .53 2.1 Khởi tạo đối tượng 53 2.2 Các thuộc tính và phương thức 54 2.2.1 Thuộc tính 54 2.2.2 Phương thức .54 2.2.3 AJAX hoạt động như thế nào? 55 3 POST & GET Request trong AJAX 55 3.1 GET Request 56 3.2 POST Request 56 3.3 Ưu và Nhược điểm của việc sử dụng AJAX .56 3.3.1 Ưu điểm 56 3.3.2 Nhược điểm .57 4 Demo Ajax 57 CHƯƠNG 5: NoSQL, MongoDB, Cassandra 58 1 NoSQL 58 1.1 Cơ sở dữ liệu NoSQL là gì? 58 1.2 Tại sao lại cần phải có NoSQL 58 1.3 Một số đặc điểm 58 1.4 Lý do nên sử dụng NoSQL 59 2 Cassandra .59 2.1 Cassandra là gì? .59 2.2 Internet of things .60 2.3 Cơ chế dữ liệu 60 3 Mongo DB 62 3.1 Mongo DB là gì 62 3.2 Ưu điểm của mongoDB 63 3.3 Nhược điểm của mongoDB .64 4 Demo: Thiết lập kết nối với Cassandra .64 CHƯƠNG 6: Tổng quan Webservice 68 1 Tổng quan về WebService .68 1.1 WebService làC gì 68 1.2 Các loại Web Service hiện nay .68 1.3 Web Service hoạt động thế nào? .68 1.4 Lợi ích khi sử dụng 69 4 lOMoARcPSD|39472803 1.5 Ưu điểm và nhược điểm 69 1.5.1 Ưu điểm 69 1.5.2 Nhược điểm 69 2 Kiến trúc WebService 70 2.1 Vai trò của Web Service 70 2.2 Các công nghệ sử dụng trong Web Service 70 2.3 WSDL (Ngôn ngữ mô tả Web Service) 70 3 Tổng quan về RESTful Web Service 71 3.1 Restful Web Service là gì? 71 3.2 Đặc điểm 71 3.3 Những yếu tố chính của RESTful Web Service 71 3.4 So sánh REST với SOAP 72 CHƯƠNG 7: TỔNG QUAN RAZOR PAGE 73 1 Tổng quan Single Page Application 73 1.1 Khái niệm 73 1.2 Single Page Application hoạt động ra sao? 73 1.3 Một vài hạn chế của Single Page Application .73 2 Tổng quan Razor Page 74 2.1 Thành phần Razor Page 74 2.2 Phương pháp tạo một Razor Page 74 3 Dependency Injection 75 3.1 Khái niệm 75 3.2 Các loại Dependency Injection 76 3.3 Các Ưu điểm và Nhược điểm 77 3.3.1 Ưu điểm 77 3.3.2 Nhược điểm 77 KẾT LUẬN 79 5 lOMoARcPSD|39472803 LỜI CẢM ƠN Lời đầu tiên, em xin chân thành gửi lời cảm ơn tới các thầy cô giáo trong Trường Đại học Điện Lực nói chung và các thầy cô giáo trong Khoa Công nghệ thông tin nói riêng đã tận tình giảng dạy, truyền đạt cho chúng em những kiến thức cũng như kinh nghiệm quý báu trong suốt quá trình học Đặc biệt chúng em xin gửi lời cảm ơn đến thầy Trần Trung - giảng viên Khoa Công nghệ thông tin - Trường Đại học Điện Lực Thầy đã tận tình theo sát giúp đỡ trực tiếp chỉ bảo, hướng dẫn trong suốt quá trình nghiên cứu và học tập của chúng em Trong thời gian học tập với thầy, nhóm chúng em không những tiếp thu thêm nhiều kiến thức bổ ích mà còn học tập được tinh thần làm việc, thái độ nghiên cứu khoa học nghiêm túc, hiệu quả Đây là những điều rất cần thiết cho chúng em trong quá trình học tập và công tác sau này Do thời gian thực hiện có hạn kiến thức còn nhiều hạn chế nên bài làm của chúng em chắc chắn không tránh khỏi những thiếu sót nhất định Em rất mong nhận được ý kiến đóng góp của thầy cô giáo và các bạn để em có thêm kinh nghiệm và tiếp tục hoàn thiện đồ án của mình Chúng em xin chân thành cảm ơn! 6 lOMoARcPSD|39472803 CHƯƠNG 1: Tổng quan NET và Webservers 1 Tổng quan NET 6 Vào tháng 11/2021, MS đã ra măt bản NET 6 đánh dấu một bước phát triển rất ngoạn mục cho nền tảng này Cụ thể là lần đầu tiên có một bản cập nhật lớn LTS (Long Term Support) tức là hỗ trợ lâu dài (trong ít nhất 3 năm) hợp nhất giữa NET Core và NET Framework Trước đây có NET 5 đã là phiên bản tiền đề để hợp nhất 2 nền tảng NET của Microsoft nhưng chưa phải là LTS mà đến 6.0 mới là LTS Điều này có nghĩa là các ứng dụng doanh nghiệp có thể tự tin nâng cấp lên 6.0 từ NET Core 3.1, NET 5 hay NET Framework 4.8 mà không lo về độ ổn định cũng như thời gian cam kết của Microsoft Bản cập nhật này thực sự có những tính năng mà cộng đồng mong chờ, nổi bật nhất là cơ chế Hot Reload cho ứng dụng NET Ngoài ra chúng ta cũng có phiên bản mới nhất của C# là C# 10 và F# 6 Song song với đó thì Microsoft cũng luôn cải tiến hiệu năng của nền tảng NET qua từng lần ra mắt Chúng ta có thể điểm qua các thay đổi và các tính năng mới như:  C# 10 và F# 6  HTTP/3  JSON Processing  WebAssembly  OpenTelemetry  Cải tiến performance  Hỗ trợ Arm64 Tương tự như các bản release trước, nền tảng NET 6 cũng hỗ trợ cr Linux, macOS và Windows Ngoài ra còn có Visual Studio 2022 là một môi trường phát triển tích hợp (IDE) cho nền tảng NET 6 Những ai dùng Visual Studio Code thì vẫn yên tâm là luôn xài được với mọi phiên bản Riêng có Visual Studio thì phải nâng cấp lên Visual Studio bản 2022 để có thể phát triển được NET 6 Riêng với Visual Studio for Mac thì vẫn có thể dùng Visual Studio 2019 Các tính năng mới trong NET 6 như sau: 7 lOMoARcPSD|39472803  Hỗ trợ Production stress-tested dành cho ứng dụng Microsoft services, ứng dụng cloud chạy bởi các công ty khác, và đã mở mã nguồn  Hỗ trợ trong 3 năm hay gọi là LTS  Nền tảng thống nhất hỗ trợ nhiều loại trình duyệt, cloud, desktop, IoT, và mobile apps, tất cả sử dụng chung code base có thể share code dễ dàng  Hiệu năng được cải thiện rất nhiều và cho tác tác vụ I/O cụ thể, bằng cách giảm thời gian thực thi, độ trễ và bộ nhớ sử dụng  C# 10 cải tiến ngôn ngữ bằng các tính năng như record structs, implicit using, và new lambda capabilities, trong khi trình biên dịch tăng khả năng gen code  Hot Reload cho phép bạn tránh được việc build và khởi động lại ứng dụng khi có thay đổi mới trong lúc ứng dụng vẫn đang chạy, hỗ trợ trên Visual Studio 2022 và từ NET CLI cho C# lẫn Visual Basic  Cloud diagnostics được cải tiến với OpenTelemetry và dotnet monitor, hỗ trợ cho tìm lỗi trên môi trường Production trên Azure App Service  JSON APIs được tăng khả năng và có hiệu năng cao hơn với source generator cho bộ xử lý JSON  Minimal APIs được giới thiệu trong NET Core giúp đơn giản và dễ dàng bắt đầu cũng như cải tiến hiệu năng của HTTP services  Blazor có thể được render từ JavaScript và tích hợp với ứng dụng Javascript base  WebAssembly AOT biên dịch cho ứng dụng Blazor WebAssembly (Wasm), as well as support for runtime relinking and native dependencies  Single-page apps được giới thiệu với ASP.NET Core giờ đây sử dụng một pattern linh hoạt giúp bạn có thể sử dụng Angular, React hoặc các framework frontend Javascript khác  HTTP/3 được thêm vào ASP.NET Core, HttpClient, và gRPC có thể tương tác với HTTP/3 giữa client và server  Cơ chế đọc ghi file (File IO) đã hỗ trợ liên kết tượng trưng và cải tiến mạnh mẽ về hiệu năng với việc viết lại từ đầu FileStream class 8 lOMoARcPSD|39472803  Bảo mật được cải tiến bằng việc hỗ trợ OpenSSL 3, phương thức mã hoá ChaCha20Poly1305, và các biện pháp ngăn chặn chiều sâu, đặc biệt là W^X và CET  Single-file apps (extraction-free) được ra mắt trên Linux, macOS và Windows (trước đây chỉ có trên Linux)  IL trimming hiệu quả hơn với cảnh báo mới, bộ phân tích để đảm bảo kết quả đúng cuối cùng  Source generators và analyzers được thêm vào giúp bạn tái hiện bug tốt hơn, an toàn hơn và tối ưu hiệu năng hơn  Source build cho phép tổ chức như Red Had xây dựng NET từ mã nguồn mở và tự xây dựng cho người dùng của mình 1.1 Hỗ trợ  Bản NET 6 là một bản hỗ trợ lâu dài (LTS) được phát hành và được hỗ trợ trong 3 năm Nó hỗ trợ nhiều hệ điều hành bao gồm cả macOS Apple Silicon và Windows Arm64  Red Hand hỗ trợ NET trên Red Hat Enterprise Linux và đã làm việc với team  NET 6 được hỗ trợ với Visual Studio 2022 và Visual Studio 2022 for Mac Nó không hỗ trợ Visual Studio 2019, Visual Studio for Mac 8 hoặc MSBuild 16 Nếu bạn muốn dùng NET 6 thì phải upgrade lên Visual Studio 2022 Nếu dùng Visual Studio Code thì có thể phát triển sử dụng C# Extension  Có thể bắt đầu migrate ứng dụng của mình lên NET 6 từ NET 5 Nó cũng tương thích tốt khi upgrade từ NET 3.1 và NET 5  Nền tảng thống nhất và mở rộng  Có thể dùng 1 nền tảng mà có thể phát triển nhiều loại ứng dụng từ Desktop, Web, IoT, WebAssembly, Cloud và có thể chia sẻ được code base dễ dàng Một điều thú vị nữa là NET Multi-platform App UI (.NET MAUI) tức là chính ta có thể viết code với 1 project nhưng có thể tạo ra một ứng dụng chạy trên cả Desktop lẫn Mobile .NET MAUI được đính kèm trong NET 6  Có thể phát triển cả Windows Desktop với Windows Forms và WPF cũng như trên cloud với ASP.NET Core 9

Ngày đăng: 25/03/2024, 18:13

Tài liệu cùng người dùng

Tài liệu liên quan