CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1. Giới thiệu ngôn ngữ lập trình C# 1. Khái niệm C# (hay C sharp) là một ngôn ngữ lập trình đơn giản, được phát triển bởi Microsoft vào năm 2000. C# là ngôn ngữ lập trình hiện đại, hướng đối tượng và được xây dựng trên nền tảng của hai ngôn ngữ là C++ và Java.
C# loại bỏ một vài sự phức tạp của những ngôn ngữ như C/C++, bao gồm việc loại bỏ việc tự quản lý vùng nhớ, thay vào đó là sử dụng GC (garbage colection), đa kế thừa, và lớp cơ sở ảo (virtual base class). Ngôn ngữ C# đơn giản vì nó dựa trên nền tảng C và C++. Nếu chúng ta thân thiện với C và C++, C# khá giống về cú pháp, biểu thức, toán tử và những chức năng khác được lấy trực tiếp từ ngôn ngữ C và C++, nhưng nó đã được cải tiến để làm cho ngôn ngữ đơn giản hơn. C# là một ngôn ngữ lập trình hướng đối tượng, vì thế nó bao gồm cả 4 tính chất cơ bản của lập trình hướng đối tượng.
Đó là tính trừu tượng (abstraction), tính đóng gói (encapsulation), tính đa hình (polymorphism) và tính kế thừa (inheritance). Ưu điểm của ngôn ngữ lập trình C# - Gần gũi với các ngôn ngữ lập trình thông dụng như C++, Java - Xây dựng dựa trên nền tảng của các ngôn ngữ lập trình mạnh nên thừa hưởng những ưu điểm của chúng. - Cải tiến các khuyết điểm của C/C++ như con trỏ, quản lý vùng nhớ,. - Dễ dàng tiếp cận, dễ phát triển.
Giới thiệu về ASP.net Core ASP.NET Core là một phiên bản mới của ASP.NET, được phát hành bởi Microsoft và là một mã nguồn mở trên GitHub.NET Core được sử dụng để phát triển khuôn khổ website và có thể thích ứng với nhiều trình duyệt khác nhau như Windows, Mac hoặc Linux kể cả trên nền tảng MVC. Ban đầu, phiên bản này có tên là ASP.NET 5 nhưng sau đó được đổi tên thành ASP.NET Core bao gồm các thành phần theo hướng module với mục đích tối thiểu tài nguyên và tiết kiệm chi phí khi phát triển. Đồng thời, ASP.NET Core cũng là một mã nguồn mở, một xu thế mà các ngôn ngữ lập trình hiện nay hướng đến.Net core khắc phục được điểm yếu trước đấy của .net framework là .net core là mã nguồn mở, và có thể chạy multi platform 1. Giới thiệu về SQL Serve 1.
Khái niệm SQL Server là một hệ thống quản lý cơ sở dữ liệu quan hệ (relational database management system viết tắt là RDBMS), hỗ trợ một số lượng lớn các quy trình xử lý giao dịch, ứng dụng doanh nghiệp và ứng dụng phân tích trong các công ty IT. SQL Server thông thường được sử dụng cho mục đích lưu trữ dữ liệu. Ngoài ra, nó còn mang lại những tính năng làm việc giúp người dùng làm việc hiệu quả hơn như sau: Giúp người sử dụng có thể duy trì việc lưu trữ bền vững. Cho phép bạn tạo ra nhiều cơ sở dữ liệu hơn.
Có khả năng phân tích dữ liệu bằng SSAS Nó có khả năng bảo mật cao Việc tạo ra được các báo cáo bằng SSRS — SQL Server Reporting Services sẽ được dễ dàng hơn. Các quá trình sẽ được thực hiện bằng SSIS — SQL Server Integration Services. Ưu điểm của sql server Không cần code Rất dễ dàng để quản lý các hệ thống cơ sở dữ liệu bằng việc sử dụng SQL chuẩn mà không cần phải viết bất cứ dòng code nào. Tiêu chuẩn được quy định rõ ràng SQL sử dụng hai tiêu chuẩn ISO và ANSI, trong khi với các non-SQL database không có tiêu chuẩn nào được tuân thủ.
Tính di động 11 c SQL có thể được sử dụng trong chương trình trong PCs, servers, laptops, và thậm chí cả mobile phones. Ngôn ngữ tương tác Language này có thể được sử dụng để giao tiếp với cơ sở dữ liệu và nhận câu trả lời cho các câu hỏi phức tạp trong vài giây. Multiple data views Với sự trợ giúp của ngôn ngữ SQL, người dùng có thể tạo các hiển thị khác nhau về cấu trúc cơ sở dữ liệu và cơ sở dữ liệu cho những người dùng khác nhau. Giới thiệu về JWT token 1.
Khái niệm JSON Web Token (JWT) là một tiêu chuẩn mở (RFC 7519) nhằm xác minh thông tin an toàn giữa các bên Client-Server dưới dạng JSON object. Thông tin này có thể được xác minh và tin cậy vì nó được ký điện tử - digitally signed. JWT có thể được ký bằng cách sử dụng một secret key (với thuật toán HMAC) hoặc cặp public/private key dùng chuẩn RSA hoặc ECDSA. Signed tokens có thể xác minh tính toàn vẹn của các claim có trong đó, trong khi encrypted tokens ẩn các claim từ các bên khác.
Khi token được đăng ký bởi các cặp public/private keys, signature cũng xác nhận rằng chỉ có bên giữ private key là nơi đã đăng ký nó. Cách hoạt động Ủy quyền – Authorization: Khi người dùng đã đăng nhập thành công, hệ thống sẽ phát cho client 1 token được ký bởi người phát hành, chữ ký này được ký bằng 1 secret key với thuật toán HMAC. Mỗi request tiếp theo được gởi từ Client sẽ bao gồm JWT token vừa được phát, authentication server sẽ đóng vai trò validate token đó, sau khi validate thành công tức người dùng được quyền truy cập resource. Ưu điểm Trao đổi thông tin - Information Exchange: JSON Web Tokens là một cách tốt để truyền thông tin an toàn giữa các bên Client và Server.
Vì JWT có thể signed. Ví dụ, sử 12 c dụng các cặp public/private key, bạn có thể biết chắc người gửi. Ngoài ra, vì signature được xác định dựa vào header và payload, bạn cũng có thể xác minh rằng nội dung chưa bị giả mạo. Giới thiệu về angular Angular là một javascript framework do google phát triển để xây dựng các Single Page Application (SPA) bằng JavaScript, HTML và TypeScript.
Angular cung cấp các tính năng tích hợp cho animation, http service và có các tính năng như auto-complete, navigation, toolbar, menus, … Code được viết bằng TypeScript, biên dịch thành JavaScript và hiển thị tương tự trong trình duyệt. Giới thiệu về mô hình client server Client server là mô hình mạng máy tính gồm có 2 thành phần chính đó là máy khách (client) và máy chủ (server). Server chính là nơi giúp lưu trữ tài nguyên cũng như cài đặt các chương trình dịch vụ theo đúng như yêu cầu của client. Ngược lại, Client bao gồm máy tính cũng như các loại thiết bị điện tử nói chung sẽ tiến hành gửi yêu cầu đến server.
Client và server giao tiếp với nhau qua 1 chuẩn định dạng dữ liệu json 1. Client Client chính 1 máy tính sử dụng hệ thống, hay hiểu sâu hơn nó chính là phần code front end. Nó có nhiệm vụ giao tiếp với server để yêu cầu server thực hiện các hành động tương ứng mà client muốn. Server Server là một máy tính từ xa.
Chúng có chức năng là cung cấp các thông tin (dữ liệu) cho một dịch vụ cụ thể nào đó hoặc quyền truy cập đối với dịch vụ. server sẽ đóng vai trò kết nối với database để xử lý các tác vụ liên quan đến dữ liệu theo nhưng yêu cầu mà client gửi tới. Ưu điểm - Giúp chúng ta có thể làm việc trên bất kì một máy tính nào có hỗ trợ giao thức truyền thông. Giao thức chuẩn này cũng giúp các nhà sản xuất tích hợp lên nhiều sản phẩm khác nhau mà không gặp phải khó khăn gì.
13 c - Có thể có nhiều server cùng làm một dịch vụ, chúng có thể nằm trên nhiều máy tính hoặc một máy tính. - Chỉ mang đặc điểm của phần mềm mà không hề liên quan đến phần cứng, ngoài yêu cầu duy nhất là server phải có cấu hình cao hơn các client. - Hỗ trợ người dùng nhiều dịch vụ đa dạng và sự tiện dụng bởi khả năng truy cập từ xa. - Cung cấp một nền tảng lý tưởng, cho phép cung cấp tích hợp các kỹ thuật hiện đại như mô hình thiết kế hướng đối tượng, hệ chuyên gia, hệ thông tin địa lý (GIS).
Kiến trúc microservice 1. Khái niệm Đúng với cái tên microservice, kiến trúc này chia một khối phần mềm thành các service nhỏ hơn, có thể triển khai trên các server khác nhau. Mỗi service sẽ xử lý từng phần công việc và được kết nối với nhau thông qua các các giao thức khác nhau, như http, SOA, socket, Message queue (Active MQ, Kafka),. để truyền tải dữ liệu.
Hình 1:Thành phần của kiến trúc microservice 14 c 1. Những đặc điểm của microservice Decoupling - Các service trong một hệ thống phần lớn được tách rời. Vì vậy, toàn bộ ứng dụng có thể dễ dàng được xây dựng, thay đổi và thu nhỏ. Componentization - Microservices được coi là các thành phần độc lập có thể dễ dàng thay thế và nâng cấp.
Business Capabilities - mỗi một thành phần trong kiến trúc microservice rất đơn giản và tập trung vào một nhiệm vụ duy nhất. Autonomy - các lập trình viên hay các nhóm có thể làm việc độc lập với nhau trong quá trình phát triển. Continous Delivery - Cho phép phát hành phần mềm thường xuyên, liên tục. Decentralized Governance - không có mẫu chuẩn hóa hoặc bất kỳ mẫu công nghệ nào.
Được tự do lựa chọn các công cụ hữu ích tốt nhất để có thể giải quyết vấn đề. Agility - microservice hỗ trợ phát triển theo mô hình Agile. Ưu điểm - Kiến trúc Microservices được sinh ra để khắc phục những hạn chế của kiến trúc một khối. - Independent Development - Tất cả các service có thể được phát triển dễ dàng dựa trên chức năng cá nhân của từng service.
Có thể chia nhỏ để phát triển độc lập. - Independent Deployment - Có thể được triển khai riêng lẻ trong bất kỳ ứng dụng nào. - Fault Isolation - khi một service của ứng dụng không hoạt động, hệ thống vẫn tiếp tục hoạt động. - Mixed Technology Stack - Các ngôn ngữ và công nghệ khác nhau có thể được sử dụng để xây dựng các service khác nhau của cùng một ứng dụng.
15 c 16 c CHƯƠNG 2: KHẢO SÁT VÀ PHÂN TÍCH THỰC TRẠNG QUẢN LÝ KÝ TÚC XÁ CỦA ĐẠI HỌC KIẾN TRÚC 2. Khảo sát thực trạng quản lý ký túc xá của ĐH Kiến Trúc. Đại học Kiến Trúc là luôn một trong top những trường đại học mang lại nhiều nguồn lực lớn cho xã hội. Hàng năm hàng nghìn sinh viên được đào tạo từ cao đẳng đến đại học trong nhiều lĩnh vực.
Đa số các bạn sinh viên theo học tại trường đến từ các khu vực khác nhau, hầu hết là từ các nơi ngoại tỉnh xa thành phố. Để tạo điều kiện thuận lợi cho các bạn về chỗ ăn, chỗ ở, chỗ sinh hoạt, nhà trường đã xây dựng các tòa ký túc xá để đáp ứng nhu cầu chỗ ở cho sinh viên.