Tổng quan và lịch sử .NET Framework là một môi trường phát triển phần mềm cho việc xây dựng và chạy các ứng dụng trên nền tảng Windows.. Mỗi phiên bản của .NET Framework đều đem lại cải
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
ĐỒ ÁN MÔN HỌC
Ứng dụng hỗ trợ học từ vựng Flashcard
GIẢNG VIÊN GIẢNG DẠY
THS.THÁI THỤY HÀN UYỂN
Thành viên nhóm:
Trần Trương Phú Túc – 20520345 Nguyễn Trương Thái Phụng – 20520281
TP HỒ CHÍ MINH, 2023
Trang 2Cuối cùng, chúng em xin chân thành cảm ơn cô Thái Thụy Hàn Uyển vì sự dẫn dắt tận tâm
và kiến thức quý giá mà Cô đã truyền đạt cho chúng em trong quá trình thực hiện đồ án Chúng em
sẽ luôn trân trọng những kiến thức và kinh nghiệm mà cô đã chia sẻ và áp dụng chúng vào tương lai
Trân trọng,
Nhóm thực hiện
Trường Đại học Công nghệ Thông tin, tháng 7 năm 2023
Trang 3MỤC LỤC
Trang 53 Nhược điểm và giải pháp: 39
Trang 6DANH MỤC HÌNH ẢNH
1.3 Kiến trúc ứng dụng: Mô hình MVC: 22
Trang 83 Nhược điểm và giải pháp: 39
Trang 9DANH MỤC BẢNG
Trang 113 Nhược điểm và giải pháp: 39
Trang 12CHƯƠNG I GIỚI THIỆU ĐỀ TÀI
1 Giới thiệu chung:
Đề tài mà chúng em muốn giới thiệu là một ứng dụng hỗ trợ học từ vựng Tiếng Anh thông qua phương pháp flashcard Ứng dụng này nhằm giúp người dùng nâng cao khả năng từ vựng và ghi nhớ từ một cách hiệu quả và thú vị.Trong quá trình học tiếng Anh, từ vựng đóng vai trò quan trọng trong việc xây dựng cơ
sở ngôn ngữ Tuy nhiên, việc học từ vựng có thể gặp phải một số khó khăn như quá trình ghi nhớ không hiệu quả, khó khăn trong việc áp dụng từ vựng vào thực tế
và thiếu sự thú vị trong quá trình học
Ứng dụng flashcard mà chúng em đề xuất sẽ giải quyết những khó khăn trên bằng cách cung cấp một giao diện đơn giản và dễ sử dụng cho người dùng Người dùng có thể tạo ra các bộ từ vựng riêng, hoặc sử dụng các bộ từ vựng có sẵn Mỗi
từ vựng sẽ được hiển thị trên một flashcard riêng, bao gồm cả từ vựng, phát âm, nghĩa, ví dụ và cách sử dụng trong ngữ cảnh thực tế
Hệ thống cho phép người dùng cũng như người quản trị tương tác với hệ thống qua giao diện web thân thiện và dễ dàng sử dụng, người dùng có thể xem những từ vựng đã có sẵn trên hệ thống Từ những chủ đề đó hệ thống sẽ cung cấp cho người dùng những cách thức ôn tập từ vựng khác nhau (trắc nghiệm, nối từ) Trong đó có những chức năng yêu cầu người dùng phải đăng nhập Ngoài ra các từ vụng được quản lý theo chủ đề, và trong chủ đề được tiếp tục chia nhỏ thành từng
bộ với số lượng từ vựng giới hạn, thuận tiện cho việc học tập và quản lý
2 Mục tiêu đề tài:
2.1 Lý thuyết:
• Nghiên cứu về Net Framework và ngôn ngữ lập trình JavaScript
• Nắm rõ các thao tác công cụ lập trình Visual studio code
• Nghiên cứu và sử dụng dịch vụ cơ sở dữ liệu trên nền tảng MySQL
• Nghiên cứu cách thức phát triển ứng dụng đa nền tảng
Trang 133 Quá trình hiện thực
Trải qua quá trình tìm hiểu và thực hiện đề tài, nhóm đã giải quyết được các vấn đề đặt ra ban đầu, từng bước giải quyết và liên tục đặt ra những vấn đề mới để ngày càng hoàn thiện sản phẩm Những bước thực hiện:
• Phân tích yêu cầu bài toán
• Lựa chọn nền tảng công nghệ phù hợp với yêu cầu
• Nghiên cứu cơ sở lý thuyết của công nghệ lựa chọn
• Áp dụng lý thuyết vào xây dựng ứng dụng thực tiễn
• Kiểm tra và khám phá các ứng dụng tương tự để tối ưu hoá trải nghiệm người dùng và cải thiện các tính năng cho ứng dụng
4 Tổng quan về chức năng
Hình 1 Tổng quan về chức năng
Trang 14CHƯƠNG II CƠ SỞ LÝ THUYẾT
1 C#.net
1.1 Tổng quan và lịch sử
.NET Framework là một môi trường phát triển phần mềm cho việc xây dựng và chạy các ứng dụng trên nền tảng Windows
Nó cung cấp một bộ công cụ, thư viện, và khung làm việc cho lập trình viên để tạo
ra các ứng dụng đa dạng từ các ứng dụng desktop, web, di động đến các dịch vụ phân tán
.NET Framework hỗ trợ nhiều ngôn ngữ lập trình như C#, VB.NET, F#, và C++/CLI, cho phép lập trình viên lựa chọn ngôn ngữ phù hợp với nhu cầu của họ .NET Framework được phát triển bởi Microsoft và phiên bản đầu tiên (.NET Framework 1.0) được giới thiệu vào năm 2002
Trong những năm tiếp theo, Microsoft đã phát hành các phiên bản NET Framework tiếp theo, bao gồm NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.6, 4.7, 4.8, và phiên bản mới nhất là NET Framework 4.8 (tính đến thời điểm hiện tại)
Mỗi phiên bản của NET Framework đều đem lại cải tiến và tính năng mới, bao gồm cải thiện hiệu suất, bảo mật, quản lý bộ nhớ, hỗ trợ ngôn ngữ, khả năng phát triển ứng dụng đa nền tảng và tích hợp với các công nghệ và khung làm việc khác của Microsoft
Đồng thời, NET Framework cũng đã mở rộng để hỗ trợ phát triển ứng dụng web (ASP.NET), ứng dụng giao diện người dùng (Windows Forms và WPF), dịch vụ phân tán (WCF), và quản lý cơ sở dữ liệu (Entity Framework)
Tóm lại, NET Framework là một nền tảng phát triển ứng dụng của Microsoft, cung cấp công cụ và khung làm việc để xây dựng các ứng dụng trên nền tảng Windows
Nó đã trải qua nhiều phiên bản và phát triển theo thời gian, mang lại nhiều cải tiến
và tính năng mới để hỗ trợ lập trình viên xây dựng các ứng dụng đa dạng và mạnh
mẽ trên nền tảng NET
Trang 15Hình 2 Hình ảnh minh họa cho sự đa dạng của Net Framework
1.2 Thành phần của Net
.Net Framework gồm các phần chính như sau:
Common Language Runtime (CLR): CLR là môi trường thực thi cho các ứng dụng NET Nó quản lý việc biên dịch, thực thi mã và cung cấp các tính năng như quản lý
bộ nhớ tự động, quản lý ngoại lệ và bảo mật
Thư viện lớp NET (NET Class Library): Đây là một bộ sưu tập các lớp, giao diện,
và phương thức đã được viết sẵn để hỗ trợ việc phát triển ứng dụng Thư viện lớp NET cung cấp các chức năng và công cụ cho nhiều lĩnh vực như làm việc với chuỗi, tệp tin, mạng, giao diện người dùng, bảo mật, và nhiều hơn nữa
Ngôn ngữ lập trình (Programming Languages): NET Framework hỗ trợ nhiều ngôn ngữ lập trình như C#, Visual Basic.NET, F#, và C++/CLI Người dùng có thể lựa chọn ngôn ngữ phù hợp với nhu cầu của họ để phát triển ứng dụng trên NET Framework
Trang 16ASP.NET: Là một phần của NET Framework, ASP.NET là một nền tảng phát triển ứng dụng web Nó cung cấp các công cụ và khung làm việc để xây dựng các ứng dụng web động, bao gồm việc tạo ra các trang web và dịch vụ web
Windows Presentation Foundation (WPF): WPF là một công nghệ của NET Framework cho phát triển các ứng dụng giao diện người dùng (UI) đồ họa Nó cung cấp các công cụ và khung làm việc để tạo ra các giao diện người dùng đẹp, linh hoạt
và tương tác trên các ứng dụng Windows
Windows Communication Foundation (WCF): WCF là một công nghệ trong NET Framework cho phát triển các ứng dụng dịch vụ (service-oriented applications) Nó cung cấp các công cụ và khung làm việc để xây dựng các ứng dụng phân tán và giao tiếp qua mạng
Windows Forms: Là một phần của NET Framework, Windows Forms là một khung làm việc cho phát triển các ứng dụng Windows truyền thống Nó cung cấp các công
cụ và thành phần để xây dựng các giao diện người dùng dựa trên hình thức và sự kiện
Entity Framework: Entity Framework là một công nghệ ORM (Object-Relational Mapping) trong NET Framework, giúp lập trình viên làm việc với cơ sở dữ liệu dễ dàng bằng cách ánh xạ các đối tượng vào cơ sở dữ liệu
Trang 17Hình 3 Kiến trúc của Net Framework
1.3 Một số đặc điểm nổi bật
Đa ngôn ngữ: NET Framework hỗ trợ nhiều ngôn ngữ lập trình như C#, VB.NET, F#, và C++/CLI Người lập trình có thể lựa chọn ngôn ngữ phù hợp với nhu cầu của mình để phát triển ứng dụng trên nền tảng NET
CLR (Common Language Runtime): CLR là môi trường thực thi cho các ứng dụng NET Nó cung cấp các tính năng như quản lý bộ nhớ tự động, quản lý ngoại lệ, và bảo mật CLR giúp đơn giản hóa việc phát triển và thực thi ứng dụng, cũng như cung cấp một môi trường chung cho các ngôn ngữ lập trình NET
Thư viện lớp NET (NET Class Library): Thư viện lớp NET là một bộ sưu tập các lớp, giao diện và phương thức đã được viết sẵn để hỗ trợ việc phát triển ứng dụng NET Nó cung cấp các chức năng và công cụ cho nhiều lĩnh vực như làm việc với chuỗi, tệp tin, mạng, giao diện người dùng, bảo mật, và nhiều hơn nữa
Hỗ trợ đa nền tảng: NET Framework có khả năng phát triển và chạy ứng dụng trên nhiều nền tảng khác nhau, không chỉ hạn chế trong môi trường Windows Với NET Core, một phiên bản nhẹ của NET Framework, người lập trình có thể xây dựng và triển khai ứng dụng trên nền tảng Linux và macOS
Khung làm việc (Framework): NET Framework cung cấp các khung làm việc như ASP.NET, Windows Forms, WPF, và WCF Các khung làm việc này giúp lập trình viên xây dựng các ứng dụng web, giao diện người dùng, và dịch vụ phân tán một cách dễ dàng và hiệu quả
Visual Studio: Visual Studio là môi trường phát triển tích hợp (IDE) được cung cấp bởi Microsoft để hỗ trợ việc phát triển ứng dụng NET Nó cung cấp các công cụ, trình biên dịch, trình gỡ lỗi và các tính năng khác để lập trình viên dễ dàng xây dựng, kiểm thử và triển khai ứng dụng
Hệ sinh thái mạnh mẽ: NET Framework có một hệ sinh thái mạnh mẽ với cộng đồng lập trình viên sôi động và nhiều tài liệu, thư viện và công cụ bổ sung Cộng đồng này giúp lập trình viên chia sẻ kiến thức, giải đáp thắc mắc và tạo ra các giải pháp
Trang 18Thư viện lớp NET: NET Framework cung cấp một thư viện lớp phong phú và mạnh mẽ, giúp lập trình viên tăng hiệu suất và tăng tốc quá trình phát triển ứng dụng
CLR (Common Language Runtime): CLR giúp quản lý bộ nhớ tự động, xử lý ngoại lệ, và bảo đảm tính nhất quán của ứng dụng Nó cũng cung cấp quyền truy cập an toàn và bảo mật cho ứng dụng
Hỗ trợ đa nền tảng: NET Core, một phiên bản nhỏ gọn của NET Framework, cho phép lập trình viên xây dựng và triển khai ứng dụng trên nền tảng Linux và macOS
Công cụ phát triển: Visual Studio là một môi trường phát triển tích hợp (IDE) mạnh mẽ và đáng tin cậy, cung cấp các công cụ và tính năng hỗ trợ cho quá trình phát triển ứng dụng NET
1.4.2 Nhược điểm:
Phụ thuộc vào nền tảng Windows: NET Framework chủ yếu được hỗ trợ trên hệ điều hành Windows Do đó, việc triển khai và chạy ứng dụng NET Framework trên các nền tảng khác như Linux hoặc macOS có thể gặp một số hạn chế Kích thước tải về: Việc cài đặt NET Framework trên một máy tính mới yêu cầu tải về và cài đặt một số gói phần mềm, điều này có thể làm tăng kích thước của ứng dụng và thời gian khởi động ban đầu
Sự cạnh tranh: Có nhiều nền tảng và công nghệ khác nhau được phát triển và sử dụng cho việc xây dựng ứng dụng, do đó, NET Framework cần phải cạnh tranh với những nền tảng khác trong việc thu hút lập trình viên và doanh nghiệp Quá trình học và kiến thức yêu cầu: NET Framework là một công nghệ phức tạp, vì vậy lập trình viên cần phải đầu tư thời gian và nỗ lực để học và làm quen với các khái niệm và công cụ của nó
2 Ngôn ngữ lập trình JavaScript
2.1 Tổng quan
JavaScript là một ngôn ngữ lập trình thông dịch, đa nền tảng, được sử dụng rộng rãi trong việc phát triển ứng dụng web Ngôn ngữ này được thiết kế để cung cấp tính tương tác và động cho các trang web, giúp tạo ra các trải nghiệm người dùng tốt hơn JavaScript có cú pháp tương đối dễ học và có khả năng tương tác với các thành phần HTML và CSS để thay đổi và điều khiển nội dung trên trang web
Trang 19JavaScript là một ngôn ngữ dựa trên sự kiện, có khả năng xử lý các hành động của người dùng như nhấp chuột, gõ phím, kéo và thả Nó cũng hỗ trợ các khái niệm của lập trình hướng đối tượng như class, object, inheritance và encapsulation Ngôn ngữ này cũng có các tính năng mạnh mẽ như xử lý bất đồng bộ (asynchronous) thông qua sử dụng callback, Promise và async/await
JavaScript ban đầu được tạo ra bởi Brendan Eich tại Netscape vào năm 1995 Ngôn ngữ này được đặt tên là LiveScript ban đầu, nhưng sau đó được đổi tên thành JavaScript để tận dụng sự phổ biến của ngôn ngữ Java vào thời điểm đó
Sau khi được giới thiệu, JavaScript nhanh chóng trở thành một phần quan trọng trong phát triển web và được hỗ trợ bởi các trình duyệt phổ biến như Netscape Navigator
và Internet Explorer
2.2 Tại sao Net Framework chọn JavaScript?
Giao diện người dùng tương tác: JavaScript là một ngôn ngữ mạnh mẽ và linh hoạt cho phát triển giao diện người dùng tương tác trên trình duyệt web Nó cho phép tạo
ra các hiệu ứng, xử lý sự kiện và tương tác trực tiếp với người dùng
Thư viện và framework: JavaScript có một số thư viện và framework phổ biến như jQuery, React, hoặc AngularJS, cung cấp các công cụ và khung làm việc để xây dựng ứng dụng web phong phú và tương tác
Tương thích đa nền tảng: JavaScript là một ngôn ngữ được hỗ trợ trên hầu hết các trình duyệt web hiện đại, cho phép ứng dụng NET Framework hoạt động trên nhiều nền tảng khác nhau
Phát triển ứng dụng đơn giản: Đôi khi, sử dụng JavaScript trong kịch bản NET Framework có thể là một cách đơn giản để thực hiện một số chức năng nhỏ mà không cần triển khai đầy đủ một ứng dụng NET hoặc cần tương tác nhanh chóng với trình duyệt
3 Hệ quản trị cơ sở dữ liệu MySQL
Trang 203.2 Mã nguồn mở
MySQL được phát triển dựa trên mô hình mã nguồn mở, có nghĩa là mã nguồn của
nó được công khai và có thể được sửa đổi và phân phối miễn phí Điều này giúp MySQL trở thành một lựa chọn phổ biến cho các dự án phần mềm mã nguồn mở và giúp giảm chi phí cho việc triển khai và sử dụng
3.3 Hiệu suất cao và khả nawg mở rộng
MySQL có hiệu suất cao và khả năng mở rộng tốt Nó có thể xử lý cùng lúc hàng nghìn kết nối và triệu bản ghi dữ liệu một cách hiệu quả MySQL cũng hỗ trợ các tính năng như replica, sharding và cluster để nâng cao khả năng mở rộng và khả năng chịu tải của hệ thống
3.4 Bảo mật và quản lý dữ liệu
MySQL cung cấp các tính năng bảo mật như kiểm soát truy cập dựa trên vai trò, mã hóa dữ liệu và kiểm tra xác thực Nó cũng hỗ trợ các công cụ quản lý dữ liệu như sao lưu và phục hồi dữ liệu, quản lý phiên bản, và các công cụ giám sát và tối ưu
hóa hiệu suất của cơ sở dữ liệu
3.5 Ưu điểm của MySQL
Hiệu suất cao: MySQL có hiệu suất cao và khả năng xử lý tải lớn Nó được tối ưu hóa để xử lý các truy vấn nhanh chóng và hiệu quả
Hỗ trợ đa nền tảng: MySQL có sẵn trên nhiều nền tảng như Windows, Linux và macOS, cho phép phát triển ứng dụng trên nhiều hệ điều hành
Bảo mật: MySQL cung cấp các tính năng bảo mật như quản lý người dùng, kiểm soát truy cập dựa trên vai trò, mã hóa dữ liệu và kiểm tra xác thực
Khả năng mở rộng: MySQL có khả năng mở rộng tốt, cho phép tăng cường khả năng chịu tải của hệ thống bằng cách sử dụng replica, sharding và cluster
Độ tin cậy cao: MySQL có khả năng xử lý cơ sở dữ liệu lớn mà không mất dữ liệu
và đảm bảo tính nhất quán của dữ liệu
3.6 Nhược điểm của MySQL
Hạn chế trong xử lý dữ liệu phi cấu trúc: MySQL không thích hợp cho các ứng dụng có nhu cầu xử lý dữ liệu phi cấu trúc phức tạp, như hệ thống lưu trữ tài liệu hoặc dữ liệu không có cấu trúc rõ ràng
Tính tương thích SQL tiêu chuẩn: Mặc dù MySQL tuân theo chuẩn SQL ANSI, nhưng có một số đặc điểm không tương thích đầy đủ với chuẩn này Điều này có thể tạo ra sự khác biệt khi di chuyển giữa các hệ thống quản lý cơ sở dữ liệu khác
Trang 21CHƯƠNG III XÂY DỰNG HỆ THỐNG
1.2 Kiến trúc hệ thống:Mô hình Client-Server
• Lớp Client: Hiển thị giao diện người dùng, thông qua kết nối Internet để kết nối
đến cơ sở dữ liệu quản lý thư viện Là nơi diễn ra các tương tác của người dùng với chương trình như nhập, các thao tác truy xuất dữ liệu
• Lớp Server: Quản lý và chứa toàn bộ dữ liệu của phần mềm Đồng thời xử lý các
yêu cầu nhập/xuất được gửi xuống từ lớp Client Ứng dụng được dùng làm lớp Server là My SQL
Hình 4 Kiến trúc hệ thống client server