Bằng cách học những kỹ năng này, hy vọng sẽ trở thành một nhà phát triển .NET thành thạo, người có thê tạo ra các ứng dụng chất lượng cao và có khả năng mở rộng.. C# là một phần của nền
Trang 1The Saigon International
University
Mentone
Website: www.siu.edu.vn
Trang 3Website: www.siu.edu.vnLOI CAM ON
Em xin gửi lời cảm ơn chân thành đến FPT Software và các giảng viên, mentor đã
hỗ trợ và hướng dẫn em trong suốt quá trình thực tập
Em rất hải lòng với chất lượng đào tạo và môi trường làm việc của FPT Software
Em đã được học hỏi nhiều kiến thức và kỹ năng mới về NET, C#, LINQ, Entity
Framework Core và các công nghệ tiên tiến khác Em cũng đã được trải nghiệm văn hóa làm việc đa dạng và chuyên nghiệp của FPT Sofware Em cảm thấy rằng chương
trình thực tập đã giúp em nâng cao năng lực chuyên môn, kỹ năng mềm và sự tự tin để
chuân bị cho sự nghiệp trong tương lai
Em mong muốn được tiếp tục hợp tác và làm việc với FPT Software trong những,
dự án tiếp theo Em hy vọng rằng FPT Software sẽ ngày càng phát triển va dao tạo ra nhiều kỹ sư công nghệ thông tin xuất sắc cho Việt Nam và thê giới
Tp Hô Chí Minh, ngày tháng năm 20
Sinh viên thực hiện
Trang 41 NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Tp Hô Chí Minh, ngày thang năm 20 Giáng viên hướng dân
Trang 5ll
MUC LUC
1 Lý do chọn đề tài St HH H1 1211221 121g ra 1
2 Muc tiéu nghién ctru thwe tap thure té 00.00 ccc cccecceeceseseesseeseeseseeseceeres 1
3 Phương pháp, đối tượng và phạm vi nghiên cứu + 5c 2c s2s 2s 2
4 Nội dung nghiên cứu thực tập thực tế -s- 52 2s TEE121221E2 2 re 3
Âm “ 2.ẦA 3
Ũ §QL Ă.SĂ 22C S22 ĐT E11 2212211 1101111 21.1.1111 reo 3
I_ NEH/C# cơ bản S Ăn SH HH ng ke re 3
Ũ LINQ à.S.Ă 222k 2H 1 E12 1221111121211.11 11111.211.111 111x111 kerrieg 3
I Entity FrameworkK OFC -.- S- Ăn TT TH Hinh 3
1.1 Tổng quan cơ sở lý thuyết TH 1111111111111 11111 kg x1 KH g1 K11 1101 kg 4
Trang 6CHUONG 3: NOI DUNG THUC TAP THUC TT Ẽ << secssesssessesee
3.1 Mô tả công việc được giao0 Q20 211212 HH 1011111 11111111 se 19
3.1.5 Entity Framework Core -2 2222222222111 E1 e.EE.tEEerree 24
Công việc được giao (đồ án cuối kỳ thực tập) 55 TH re 25 3.2 Các mục tiêu của công việc/ vẫn đề cần giải quyết - co 26 3.3 Quy trình thực hiện/ Phương pháp thực hiện 5-5 c2 cc22 27
3.4 Kết quả đạt được - SH HH TH 0122 1 ng tre 28
Điểm bài test trắc nghiệm SQL 2 2 T5 S212E1 11111 11 1111211111111 reu 29 Điểm bài test trắc nghiệm C - TT 2121111211111 712212 1E rrre 29
CHƯƠNG 4: TỰ ĐÁNH GIÁ VÀ NHẬN XÉT
QUA TRINH THỰC TẬP THUC TE
4.1 Nhan thire cia bam than cc 2022121112211 1211 1121111011112 111g 30 4.2, Học hỏi từ nơi thực (ập - 002011211221 1221 12212122 11222112 1tr2 na 30
4.3 Đánh giá mối liên hệ giữa lý thuyết và thực tiễn 5 Sàn e 32 KẾT LUẬN VÀ KIÊN NGHỊ, - 5-2 5< cse ceceecseeeerseeerserzeerre
Trang 7DANH MUC CAC CHU VIET TAT
NET Network Enabled Technologies
LINQ Language-Integrated Query
SQL Structured Query Language
DBMS Database Management System
EF Entity Framework
CRUD Create, Read, Update, Delete
CLR Common Language Runtime
API Application Programming Interface WPF Windows Presentation Foundation GUI Graphical User Interface
ASP.NET Active Server Pages.NET
BCL Base Class Library
ADO.NET Active Data Objects NET
ML.NET Machine Learning NET
XNA Viét tat dé quy cho XNA’s not
acronymed
COM Component Object Model
P/Invoke Platform Invoke
VB.NET Visual Basic.NET
MAUI Multi-platform App User Interface AWS Amazon Web Services
XML Extensible Markup Language
ORM Object Relational Mapping
POCO Plain Old CLR Object
EDM Entity Data Model
IDE Integrated Development Environment FPT Financing and Promoting Technology
CMMI Capability Maturity Model Integration Iso International Organization for
Standardization
ISC Information Service Center
FSS FPT Software Solutions Enterprise FSU FPT Strategic Unit
HITC Hanoi International Technology Centre ODC Offshore Development Center
RAC Resource Assurance Center
CDO Chief Delivery Officer
CQO Chief Quality Officer
CIO Chief Information Officer
CHRO Chief Human Resources Officer CFO Chief Financial Officer
CTO Chief Technology Officer
Trang 8
Vi
ERP Enterprise Resource Planning
QA Quality Assurance
loT Internet of Things
S.M.A.C Social, Mobile, Analytics and Cloud
Trang 9
MỞ ĐẦU
1 Lý do chọn đề tài
Tích lũy kinh nghiệm làm việc trong môi trường thực tế và phát triển các kỹ năng
quý giá liên quan đến lĩnh vực học tập Thực tập có thể giúp nâng cao trình độ chuyên môn và kết nối với những người trong ngành
Làm quen với NET Framework va cac tính năng của nó, chăng hạn như hỗ trợ đa nên tảng, hiệu suất cao, bảo mật và khả năng tương thích
Khám phá những cơ hội và thách thức khi làm việc với NETT trong các lĩnh vực và
tình huống khác nhau, chẳng hạn như phát triển phần mềm, phát triển web, v.v cũng muốn tìm hiểu các công nghệ và công cụ mới dựa trên hoặc tích hợp với NET
2 Mục tiêu nghiên cứu thực tập thực tế
Một trong những mục tiêu chính là đạt được kinh nghiệm và kỹ năng thực tế trong việc sử dụng NET, một famework miễn phí, mã nguồn mở và đa nền tảng để xây dựng các ứng dụng hiện đại và các dịch vụ đám mây mạnh mẽ Mong muốn áp dụng kiến thức lý thuyết đã học được từ các khóa học và tài nguyên trực tuyến vào các dự
án thực tế có thể giải quyết các vấn dé thực tế và tạo ra giá trị cho người dùng, khách
hàng Mong muốn nâng cao trình độ về các công nghệ NET khác nhau, chẳng hạn như
C#, LINQ và Entity Framework Core, cũng như tìm hiểu các tiêu chuẩn và thực tiễn tốt nhất dé phát triển phần mềm an toàn và chất lượng cao
Một mục tiêu khác là được học hỏi từ các chuyên gia và có vấn tại FPT Software, nhà cung cấp dịch vụ và tư vẫn công nghệ thông tin hàng đầu tại Việt Nam FPT
Software có hơn 20 năm kinh nghiệm cung cấp giải pháp NET cho nhiều ngảnh khác
nhau như ô tô, sản xuất, ngân hàng, y tế, hậu cần, bán lẻ, năng lượng, hàng không, truyền thông và giải trí Mong muốn nhận được sự hướng dẫn và phản hỗi của đội ngũ FPT Sofware, những người có kiến thức và kinh nghiệm sâu rộng về NET Mong muốn học hỏi từ những câu chuyện thành công và thách thức của họ trong việc triển khai các dự án đối mới và chuyên đổi kỹ thuật số cho khách hàng toàn cau
Mục tiêu xa hơn là nâng cao triển vọng và cơ hội nghề nghiệp của trong lĩnh vực công nghệ thông tin .NET là một kỹ năng quý giá có thể mở ra nhiều cánh cửa trong tương lai Bằng cách tích lũy thêm kinh nghiệm và kỹ năng về NET, hy vọng sẽ tăng khả năng tuyển dụng và khả năng cạnh tranh trong lĩnh vực công nghệ thông tin
Trang 102 Một mục tiêu nữa là khám phá văn hóa và môi trường của Việt Nam và FPT
Software, một trong những điểm đến công nghệ mới nối hàng đầu ở Châu Á - Thái Bình Dương Mong muốn trực tiếp trải nghiệm văn hóa và môi trường của Việt Nam
va FPT Software, đồng thời tìm hiểu cách họ thúc đây sự sáng tạo, đổi mới và xuất
sắc
Mục tiêu cuối củng là kết nối với các sinh viên và chuyên gia công nghệ thông tin
quốc tế khác, những người có cùng niềm đam mê và quan tâm đến NET Kết nối là một kỹ năng quan trọng có thể giúp phát triển về mặt cá nhân và nghề nghiệp Bằng cách kết nỗi với những người đam mê NET khác từ các nền tảng và quan điểm khác nhau, có thê trao đổi ý tưởng, hiểu biết sâu sắc, mẹo, tải nguyên và cơ hội Có thể xây dựng tình bạn, sự hợp tác và quan hệ đối tác có thể tổn tại lâu đài trong suốt thời gian của chương trình Sự kết nỗi có thé lam phong phú thêm trải nghiệm học tập của và
mở rộng tầm nhìn
3 Phương pháp, đối tượng và phạm vi nghiên cứu
Một trong những phương pháp nghiên cứu là sử dụng các trang web cung cấp hướng dẫn, khóa học và tài nguyên về các khía cạnh khác nhau của ffamework Trang web là nguồn thông tin thuận tiện và dễ tiếp cận, cho phép nghiên cứu theo tốc độ và trình độ của riêng mình Có thê chọn từ nhiều chủ đề và ngôn ngữ phù hợp với sở thích
và mục tiêu Có thể tương tác với những người học và chuyên gia khác thông qua các diễn đàn, nhận xét và phản hồi Các trang web cung cấp những ví dụ va bai tập thực tế
giúp áp dụng những gì học được và kiểm tra kiến thức Bằng cách học NET từ các
trang web, có thê cải thiện kỹ năng và sự tự tin khi phát triển các ứng dụng sử dụng framework nay
Đối tượng nghiên cứu là áp đụng các công nghệ NET dé phat triển các ứng dụng thực tế có thê giải quyết các vấn đề trong thế giới thực và đáp ứng nhu cầu của người dùng Mong muốn tìm hiểu cách sử dụng các ngôn ngữ NET khác nhau, chẳng hạn như C# và cách sử dụng các thành phần và thư viện NET khác nhau Mong muốn tìm hiểu cách sử dụng các công cụ và dịch vụ NET, chẳng hạn như Visual Studio Bằng cách học những kỹ năng này, hy vọng sẽ trở thành một nhà phát triển NET thành thạo, người có thê tạo ra các ứng dụng chất lượng cao và có khả năng mở rộng
Phạm vi nghiên cứu là có thể phát triển các ứng dụng bằng NET, C#, LINQ, SQL
va Entity Framework Core Tim hiéu cach str dung NET Framework va cac thu viện
Trang 113
của nó dé tạo ra các giải pháp phần mềm đa nền tảng có thê chạy trên Windows Thanh thạo ngôn ngữ lập trình C# và các tính năng của nó Ngoài ra, học được kỹ năng sử dụng LINQ dé truy van dữ liệu từ nhiều nguồn khác nhau như mảng và cơ sở đữ liệu Hơn nữa, hiểu cách sử dụng SQL va Entity Framework Core dé thiét kế, thao tác và truy cập cơ sở dữ liệu quan hệ bằng cách sử dụng các phương pháp tiếp cận code đầu tiên hoặc cơ sở dữ liệu đầu tiên Cuối cùng, áp dụng các phương pháp và nguyên tắc tốt nhất của công nghệ phần mềm đề đảm bảo chất lượng, hiệu suất và khả năng bảo trì cho các ứng dụng
4 Nội dung nghiên cứu thực tập thực tế
Nội dung nghiên cứu được chia ra thành nhiều nội dung dựa theo nhiều ngảy trong,
8 tuần thực tập tại FPT Software, nội dung bên dưới thể hiện rõ nội dung đã nghiên cứu trong quá trình thực tập thực tế
Trang 12CHUONG 1: GIOI THIEU TONG QUAN
1.1 Tổng quan cơ sở lý thuyết
dịch vụ phong phú .NET nhằm mục đích cung cấp một môi trường hiệu suất cao, an toàn và hiệu quả đề phát triển và triển khai phần mềm
Mét trong nhimg thanh phan chinh cia NET 1a Common Language Runtime (CLR), là máy ảo thực thi mã được viết bằng bất kỳ ngôn ngữ nào được NET hỗ trợ CLR xử lý việc quản lý bộ nhớ, xử lý ngoại lệ, bảo mật, phân luồng và các tác vụ cấp thấp khác CLR cũng cung cấp một hệ thống kiểu chung, xác định cách biểu diễn và thao tác các kiểu dữ liệu trong NET CLR cho phép mã được viết bằng các ngôn ngữ khác nhau giao tiếp và tương tác với nhau một cách liền mạch
Một thành phần khác của NET là NET Standard, là một bộ API xác định chức
năng cốt lõi của NET Tiêu chuẩn NET đảm bảo rằng mọi triển khai NET, chăng hạn
như NET Core hoặc NET Framework, đều cung cấp các tính năng và hành vi cơ bản giống nhau Tiêu chuẩn NET cũng cho phép khả năng di chuyên mã trên các nền tảng
và thiết bị khác nhau Tiêu chuân NET được lập phiên bản, nghĩa là mỗi phiên bản
bao gồm các API từ các phiên bản trước và thêm các API mới
.NET Core là một triển khai NET đa nền tảng và mã nguồn mở chạy trên Windows, Linux, macOS và các hệ điều hành khác .NET Core bao gồm CLR, thu vién NET Standard va cac thu vién bé sung cung cap cac tinh nang danh riéng cho nén tang .NET Core duoc tối ưu hóa về hiệu suất, khả năng mở rộng và tính mô- đun .NET Core hỗ trợ phát triển web bằng ASPNET Core, một khuôn khô dé xây dựng các ứng dụng và dịch vụ web hiện đại .NET Core cũng hỗ trợ phát triển đám mây bằng Azure, đây là nền tảng để lưu trữ và quản lý các ứng dụng cũng như đữ liệu trên đám mây
Trang 135 NET Framework là một triển khai NET khác chi chạy trên Windows .NET Framework bao gồm CLR, thư viện NET Standard và các thư viện bô sung cung cấp
các tinh nang danh riéng cho Windows .NET Framework hé trợ phat trién may tinh dé
ban bang Windows Forms hoadc Windows Presentation Foundation (WPF), 1a các khung để xây dựng giao diện đồ họa người dùng (GUI) .NET Framework ciing hé tro phát triển web bằng ASP.NET, day là một framework dé xây dựng các trang web va dịch vụ động
Thư viện NET là tập hợp mã có thể tái sử dụng, cung cấp chức năng và dịch vụ cho nhiều miền và kịch bản khác nhau Các thư viện NET bao gồm Thư viện lớp cơ
so (BCL), cung cap các chức năng cơ bản như bộ sưu tập, chuỗi, IO, mang, bảo mật, v.v Các thư viện NET cũng bao gồm các thư viện chuyên dụng để truy cập dữ liệu (ADO.NET), hoc may (ML.NET), choi game (XNA), thir nghigém (NUnit), v.v Cac thư viện NET có thể được truy cập từ bất kỳ ngôn ngữ NET nào bằng cách sử dụng củng cú pháp và ngữ nghĩa
.NET cũng hỗ trợ khả năng tương tác với các công nghệ và hệ thống khác, chẳng hạn như COM, Java, Python và mã gốc COM là công nghệ cho phép giao tiếp giữa các thành phần hoặc ứng dụng khác nhau trên Windows Java là ngôn ngữ lập trình và nền tảng chạy trên nhiều hệ điều hành Python là một ngôn ngữ kịch bản được giải thích có cộng đồng và hệ sinh thái rộng lớn Mã gốc là mã được biên dịch trực tiếp theo hướng, dẫn máy cho một kiến trúc bộ xử lý cụ thé NET cung cấp nhiều cơ chế khác nhau để tương tác với các công nghệ và hệ thống nảy, chắng hạn như COM Interop, Java Interop, Python Interop và Platform Invoke (P/Invoke) Các cơ chế này cho phép mã NET gọi hoặc được gọi bằng mã được viết bằng các công nghệ hoặc hệ thống khác
.NET là một khung phát triển phần mềm cung cấp một cách nhất quán và đáng tin cậy để tạo ứng dụng cho nhiều nền tảng khác nhau, chẳng hạn như Windows, Linux, macOS, iOS, Android, v.v Nó bao gồm một số thành phan, chang han nhu CLR, NET Standard, NET Core, NET Framework va cac thu vién NET Cac thanh phần này cho phép nhà phát triển sử dụng nhiều ngôn ngữ lập trinh, chang han nhu C#, F#, VB.NET và C++, đồng thời truy cập vào bộ chức năng và dịch vụ phong phú, chẳng hạn như truy cập dữ liệu, kết nối mang, bao mat, phat trién web, hoc may 1.12 C#
Trang 146
C# là ngôn ngữ lập trình được Microsoft tạo ra vào cuối những năm 1990 Đó là một ngôn ngữ hiện đại hỗ trợ các mô hình lập trình hướng đối tượng, chức năng và chung C# được thiết kế đơn giản, thanh lịch và biểu cảm, đồng thời mạnh mẽ và hiệu quả C# là một phần của nền tảng NET, là tập hợp các công nghệ và thư viện cho phép các nhà phát triển xây dựng và chạy nhiều loại ứng dụng khác nhau trên Windows, Linux, macOS và các hệ điều hành khác
Một trong những tính năng chính của C# là cú pháp của nó, dựa trên các ngôn ngữ kiêu C như C và C++, Điều này giúp các nhà phát triển quen thuộc với các ngôn ngit nay dé dang hoc va str dung C# Tuy nhiên, C# cũng giới thiệu nhiều tính năng và cải tiến mới giúp nó hoạt động hiệu quả và linh hoạt hơn so với các phiên bản trước
Ví dụ: C# hỗ trợ các thuộc tính, đại biếu, sự kiện, ngoại lệ, tong quát, phương thức ân danh, biểu thức lambda, LINQ, async/await, v.v
C# la một ngôn ngữ linh hoạt có thể được sử dụng cho nhiều nhiệm vụ và lĩnh vực khác nhau Nó thường được sử dụng để phát triển các ứng dụng web sử dụng khung ASPNET Core hoặc Blazor, ứng dụng máy tính để bàn sử dụng khung Windows Forms hoặc WPFEF, ứng dụng di động sử dụng khung Xamarin hoặc MAUI, trò chơi sử dụng khung Unity hoặc MonoGame và ứng dụng đám mây sử dụng dịch vụ Azure hoặc AWS C# cũng tương thích với các ngôn ngữ NET khác như VB.NET và F#, cho phép các nhà phát triển sử dụng nhiều ngôn ngữ trong cùng một dự án C# là
một trong những ngôn ngữ lập trình phổ biến nhất trên thế giới, với hàng triệu nhà
phát triển và cộng đồng lớn và năng động
1.1.3 Kiểm thử đơn vị (Unit testing)
Kiểm thử đơn vị là một quá trình xác minh chức năng và tính chính xác của từng đơn vị hoặc thành phần riêng lẻ của ứng dụng phần mềm Đơn vị là một đoạn mã nhỏ
và độc lập, có thể được kiểm tra riêng biệt với phần còn lại của chương trình Ví dụ: một đơn vị có thê là một hàm, một phương thức, một thủ tục, một mô-đun hoặc một đối tượng Kiểm thử đơn vị thường được thực hiện bởi các nhà phát triển viết mã trong
giai đoạn phát triển của vòng đời phần mềm Mục đích chính của kiểm thử đơn vị lả
đảm bảo rằng mỗi đơn vị của phần mềm hoạt động như mong đợi và đáp ứng các thông số kỹ thuật cũng như yêu cầu
Kiểm thử đơn vị dựa trên ý tưởng chia nhỏ một hệ thống phần mềm phức tạp
thành các đơn vị nhỏ hơn và đơn giản hơn đề có thê kiếm thử riêng lẻ Bằng cách kiếm
Trang 157 tra từng đơn vị một cách riêng biệt, nhà phát triển có thê xác định và sửa lỗi cũng như lỗi dễ đàng và nhanh chóng hơn, cũng như cải thiện chất lượng và độ tin cậy của phần mềm Kiểm thử đơn vị cũng giúp các nhà phát triển tai cau trúc và sửa đối mã của họ
một cách tự tin vi họ có thê kiểm tra xem những thay đôi của họ có ảnh hưởng đến
chức năng của các đơn vị khác hay không
Đề thực hiện kiêm thử đơn vị, nhà phát triển sử dụng nhiều công cụ và khung công tác khác nhau cho phép họ tạo và chạy thử nghiệm trên mã của mình Kiểm thử
là một tập hợp các hướng dẫn đề kiểm tra xem thiết bị có hoạt động chính xác trong
các điều kiện và đầu vào khác nhau hay không Một thử nghiệm thường bao gồm ba
bước: thiết lập môi trường và đữ liệu cho thử nghiệm, thực thi đơn vị được thử nphiệm
và xác minh đầu ra hoặc kết quả của thử nghiệm Một thử nghiệm có thể đạt hoặc không thành công, tùy thuộc vào việc đầu ra có phù hợp với kết quả mong đợi hay không Bộ thử nghiệm là tập hợp các thử nghiệm bao gồm tất cả hoặc hầu hết các đơn
vị trong hệ thống phần mềm
Kiểm thử đơn vị là một trong những phương pháp kiểm thử phần mềm phô biến
và được sử dụng rộng rãi nhất Đây là một phần thiết yêu của quá trình phát triển phần
mềm vì nó giúp các nhà phát triển đảm bảo rằng mã của họ là chính xác, mạnh mẽ và
có thê bảo trì được Kiểm thử đơn vị cũng tạo điều kiện thuận lợi cho các loại kiểm thử
khác, chăng hạn như kiểm thử tích hợp, kiêm thử hệ thống và kiêm thử chấp nhận,
bằng cách cung cấp nền tảng vững chắc cho chức năng phần mềm Kiểm thử đơn vị cũng có thé cải thiện thiết kế và cầu trúc của mã, vì nó khuyến khích các nhà phát triển viết các đơn vị mô-đun và gắn kết, dé kiêm tra và tái sử dụng
1.1.4 LINQ
LINQ là một bộ công nghệ mạnh mẽ cho phép nhà phát triển viết truy vấn trực tiếp bằng ngôn ngữ C# mà không cần sử dụng chuỗi hoặc thư viện bên ngoài LINQ cho phép nhà phát triển truy vấn và thao tác dữ liệu từ nhiều nguồn khác nhau, chẳng hạn như cơ sở dữ liệu SQL, Bộ dữ liệu ADO.NET, tài liệu va luồng XML cũng như bộ sưu tập NET, bằng cách sử dụng cú pháp và ngữ nghĩa thông nhất
Một trong những lợi ích chính của LINQ là nó cung cấp sự an toàn về kiêu và hỗ
trợ IntelliSense cho các truy van của nhà phát triển tại thời điểm biên dịch Điều này
có nghĩa là nhà phát triển có thể tránh được lỗi thời gian chạy và lỗi chính tả có thể xảy ra khi sử dụng truy vấn dựa trên chuỗi LINQ cũng làm cho mã của nhà phát triển
Trang 168
dé doc va dé bao tri hon vi nha phat triển có thê diễn đạt các thao tác phức tạp trên dữ liệu với lượng mã tôi thiêu
LINQ bao gồm ba thành phần chính: nhà cung cấp LINQ, biếu thức truy vấn và
toán tử truy vấn tiêu chuẩn Nhà cung cấp LINQ là các lớp triển khai giao diện
IQueryable<T> và cung cấp chức năng đề thực hiện các truy vấn đối với một nguồn dữ liệu cụ thế Biêu thức truy vẫn là các cấu trúc cú pháp trong C# giỗng với các câu lệnh SQL và có thể được trình biên dịch dịch thành các lệnh soi phương thức Toán tử truy vấn tiêu chuân là các phương thức mở rộng xác định các thao tác phô biến trên chuỗi
dữ liệu, chẳng hạn như lọc, sắp xếp và nhóm Nhà phát triên có thế sử dụng các mẫu biểu thức truy vấn cơ bản giống nhau để thực hiện các thao tác này trên bất kỳ nguồn
dữ liệu nào hỗ trợ LINQ
1.1.5 SQL
SQL là ngôn ngữ được sử dụng rộng rãi để làm việc với dữ liệu trong các hệ
thông cơ sở dữ liệu khác nhau Nó là viết tắt cua Structured Query Language, phan anh
cú pháp và ngữ nghĩa dựa trên logic toán học và đại số SQL cho phép người dùng thực hiện các thao tác khác nhau trên dữ liệu, chẳng hạn như lưu trữ, thao tác và truy xuất dữ liệu bằng cách sử dụng một bộ lệnh và từ khóa
SQL có phạm vi chức năng rộng bao gồm các khía cạnh khác nhau của quản lý
dữ liệu Một trong những chức năng chính của SQL là truy vấn đữ liệu, nghĩa là lấy đữ liệu từ một hoặc nhiều bảng trong cơ sở đữ liệu dựa trên các tiêu chí nhất định SQL cung cấp một tập hợp phong phú các toán tử và hàm có thể lọc, sắp xếp, nhóm, tổng hợp và nói đữ liệu từ nhiều nguồn khác nhau Một chức năng khác của SQL là thao tác
dữ liệu, nghĩa là chèn, cập nhật hoặc xóa dữ liệu trong cơ sở dữ liệu SQL cung cấp
các lệnh như INSERT, UPDATE và DELETE có thế sửa đôi đữ liệu trong một hoặc
nhiều bảng cùng một lúc Thao tác đữ liệu cũng bao gồm các giao dịch, là tập hợp các hoạt động được thực hiện dưới dạng một đơn vị duy nhất để đảm bảo tính nhất quan va toàn vẹn dữ liệu
Một chức năng khác của SQL là định nghĩa đữ liệu, nghĩa là tạo hoặc sửa đổi cầu trúc và lược đồ của cơ sở dữ liệu SQL cung cấp các lệnh như CREATE, ALTER
và DROP có thê xác định hoặc thay đổi các thuộc tính và ràng buộc của bảng, cột, chỉ mục, dạng xem, trình kích hoạt và các đối tượng cơ sở dữ liệu khác Định nghĩa dữ
Trang 179
liệu cũng bao gồm các kiểu đữ liệu, là các loại giá trị có thể được lưu trữ trong cơ sở
dữ liệu SỌL hỗ trợ nhiều loại đữ liệu khác nhau như số, ký tự, ngày và giờ, nhị phân
và các loại dữ liệu khác Định nghĩa dữ liệu cũng bao gồm các lược đồ, là tập hợp các đối tượng cơ sở dữ liệu thuộc về một người dùng hoặc nhóm cụ thê
Một chức năng khác của SQL là kiểm soát truy cập dữ liệu, nghĩa là cấp hoặc thu hồi các quyền và đặc quyền cho người dùng hoặc nhóm để truy cập hoặc sửa đổi dir ligu trong cơ sở dữ liệu SQL cung cấp các lệnh nhự GRANT và REVOKE có thể gán hoặc loại bỏ vai trò và quyền cho người dùng hoặc nhóm đối với các đối tượng hoặc hoạt động cơ sở dữ liệu cụ thể Kiểm soát truy cập dữ liệu cũng bao gồm xác thực và mã hóa, là các phương pháp đảm bảo tính bảo mật và quyền riêng tư của dữ liệu trong cơ sở đữ liệu
SQL là ngôn ngữ tiêu chuẩn được nhiều hệ thống cơ sở dữ liệu hỗ trợ với một số biến thê và phần mở rộng Một số hệ thống cơ sở dữ liệu phổ biến nhất sử dụng SQL là MySQL, SQL Server, Microsoft Access, Oracle, Sybase, Informix, Postgres va cac hệ
thống khác Mỗi hệ thống này đều có những tính năng và ưu điểm riêng giúp nó phù
hợp với các ứng dụng và mục đích khác nhau Tuy nhiên, tất cả đều có chung điểm cốt lõi của SQL là cho phép người dùng tương tác với đữ liệu một cách nhất quán và hiệu quả
1.1.6 Entity Framework
Entity Framework (EF) la mét framework phé bién va manh mé danh cho cac nha phat triển NET muốn làm việc với cơ sở đữ liệu quan hệ EE là một trình ánh xa quan hé déi trong (ORM) cho phép các nhà phát triển sử dụng các đối tượng theo miền cụ thê đề thao tác đữ liệu mà không cần viết nhiều mã truy cập đữ liệu EF là một
dự ân nguồn mở được hỗ trợ bởi Microsoft và cộng, đồng NET
Một trong những tính năng chính của EF là nó cho phép các nhà phát triển sử
dụng truy vẫn LINQ để lấy dữ liệu từ cơ sở dữ liệu LINQ là cú pháp truy vấn tích hợp ngôn ngữ có thể được sử dụng trong C# hoặc VB.NET EF dịch các truy vấn LINQ thành các lệnh SQL và thực thị chúng trên cơ sở đữ liệu Bằng cách này, các nhà phát triển có thé viết các truy vấn theo cách quen thuộc và đễ hiểu mà không cần lo lắng về các chỉ tiết của cơ sở dữ liệu
Một tính năng khác của EF lả nó hỗ trợ mô hình hóa dữ liệu bằng cách sử dụng
các lớp POCO (Đối tượng CLR cũ đơn giản) Các lớp POCO là các lớp đơn giản có
Trang 1810
các thuộc tính của các kiêu đữ liệu khác nhau, chẳng han nhw int, string, bool, v.v EF tạo Mô hình đữ liệu thực thể (EDM) dựa trên các lớp này, thể hiện câu trúc và mối quan hệ của đữ liệu EF cũng hỗ trợ các kỹ thuật mô hình hóa khác, chẳng hạn như mã
đầu tiên, cơ sở đữ liệu đầu tiên và mô hình đầu tiên
EF cũng cung cấp các tính năng theo dõi và lưu thay đổi, giúp đễ dàng cập nhật
dữ liệu trong cơ sở dữ liệu EF theo dõi những thay đổi được thực hiện đối với các thể hiện của các lớp POCO, chang han như thêm, sửa đổi hoặc xóa chúng Khi nhà phát triển gọi phương thức SaveChanses(), EF sẽ thực thi các lệnh SQL thích hợp để duy trì các thay đổi đối với cơ sở dữ liệu EF cũng tự động xử lý các giao dịch và đồng thời, đảm bảo tính toàn vẹn và nhất quán của dữ liệu
EF 1a mét framework da nền tảng có thé chạy trên Windows, Linux va Mac N6
hỗ trợ nhiều nhà cung cap co sé dit ligu khac nhau, chang han nhu SQL Server, SQLite, PostgreSQL, Oracle, MySQL, v.v EF cũng có một hệ sinh thái phong phú gồm các tiện ích mở rộng và công cụ giúp nâng cao chức năng và khả năng sử dụng của nó
EF la mot framework giup don gian hóa việc truy cập và thao tác dữ liệu cho các nhà phát triển NET Nó cung cấp khả năng trừu tượng hóa đữ liệu ở mức độ cao và cho phép các nhà phát triển tập trung vào logic nghiệp vụ của ứng dụng của họ EE là một framework linh hoạt và mạnh mẽ có thê được sử dụng cho nhiều loại ứng dụng và
tình huống khác nhau
1.2.Chủ đề thực tập
Chủ đề thực tập là phát triển các ứng dụng bảng điều khiển NET Ứng dụng
bảng điều khiến NET là một loại ứng dụng chạy trên NET Framework, một nền tảng
phần mềm hỗ trợ nhiều ngôn ngữ và thư viện để xây dựng nhiều loại ứng dụng khác nhau Ứng dụng bảng điều khiển là một chương trình đơn giản tương tác với người dùng thông qua nhập vả xuất văn bản trên giao diện dòng lệnh Các ứng dụng bảng điều khiển thường được sử dụng để kiểm tra, 20 lỗi hoặc thực hiện các tác vụ không yêu cầu giao diện người ding dé hoa (GUI)
Trong thời gian thực tập, đã học cách tạo và chạy các ứng dụng bảng điều khiến NET bằng Visual Studio, một môi trường phát triển tích hợp (IDE) cung cấp các công cụ và tính năng đề phát triển, thử nghiệm và triên khai các ứng dụng NET Cũng
đã học cách sử dụng C#, một trong những ngôn ngữ lập trình phô biến nhất dé phat
Trang 1911 triển NET C# là một ngôn ngữ hướng đối tượng, kiểu mạnh và có tính biểu cảm, hỗ trợ nhiều mô hình như lập trình mệnh lệnh, khai báo, chức năng và chung
1.3 Các kết quả/ mục tiêu kỳ vọng
Trong quá trình thực tập, đã có mục tiêu rõ ràng và cụ thể muốn đạt được Mong muốn học cách xây dựng ứng dụng và thực hiện các dự án một cách chuyên nghiệp theo nhóm Điều nảy có nghĩa là mong muốn có được những kỹ năng và kiến thức cần thiết để phát triển các sản phâm phần mềm chất lượng cao đáp ứng nhu cầu và mong đợi của khách hàng và người dùng
Mong muốn trải nghiệm làm việc trong môi trường nhóm, nơi có thể cộng tác với các nhà phát triên, nhà thiết kế, người thử nghiệm và người quản lý khác Mong muốn hiểu cách giao tiếp hiệu quả, chia sẻ ý tưởng, đưa và nhận phản hồi, giải quyết xung đột cùng như quản lý nhiệm vụ và thời hạn Làm việc theo nhóm sẽ gø1úp cải thiện kỹ năng giao tiếp cá nhân, học hỏi từ người khác và góp phần vào sự thành công của dự án
Bằng cách đạt được mục tiêu này, hy vọng sẽ có được những hiểu biết sâu sắc có
giá trị về ngành công nghiệp phần mềm và chuẩn bị cho sự nghiệp tương lai Mong
muốn áp dụng những gì đã học được trong quá trình học tập vào các vấn đề và thách thức trong thế giới thực Mong muốn khám phá điêm mạnh và điểm yếu, xác định lĩnh vực cần quan tâm và cải thiện, đồng thời phát triển sự tự tín và tính chuyên nghiệp Đợt thực tập này sẽ là cơ hội tuyệt vời dé phat triển với tư cách là một nhà phát triển phân mêm và một con người
Trang 2012
CHƯƠNG 2: MÔ TA CO QUAN THUC TAP THUC TE
2.1 Thong tin co quan
FPT Software (viét tắt của Công ty TNHH Phần mềm FPT) là công ty cung cấp dịch vụ công nghệ toàn cầu, có trụ sở chính tại Hà Nội, Việt Nam FPT Sofware là thành viên của Tập đoàn FPT, được thành lập ngày 13/01/1999, hoạt động trong lĩnh vực gia công phần mềm và chuyên đôi số tại Việt Nam Với các quy trình đẳng cấp thế giới về sản xuất phần mềm, quản lý chất lượng và bảo mật thông tin như CMMI5, ISO
9001:2000, ISO 27001:2005, FPT Software là công ty phần mềm có tiêu chuẩn đăng
cấp thế giới tại Việt Nam Hiện FPT Software có 28 quốc gia và vùng lãnh thổ, 71 văn
phòng và trung tâm phát triển
Trong quá trình 24 năm phát triển, FPT Software là một trong những công ty phát
triển nhanh nhất trong lĩnh vực gia công phần mềm (100%/năm), với doanh thu đạt 513,6 triệu USD năm 2020
Tên tiếng Anh: FPT Software
Chủ tịch Hội đồng quản trị: Chu Thị Thanh Hà
Tổng Giám đốc: Phạm Minh Tuấn
Nguồn nhân lực: 27.000+ người (tính đến tháng 7 năm 2021)
Vốn điều lệ: 367.172.760.000 đồng (đăng ký thay đôi ngày 15/12/2009)
Vốn chủ sở hữu của FPT: 253.929.790.000 đồng (67,52%)
Dia chi trang web cong ty: https://fptsoftware.com/
Giá trị cốt lõi là tài sản vô giá mà mỗi thành viên FSOFT đều trân trọng và gìn giữ:
ñ Làm hài lòng khách hàng: Tận tâm với khách hàng và luôn cố gắng đáp ứng nhu cầu của họ và vượt quá mong đợi của họ
Con người là cốt lõi: tôn trọng những người xung quanh, tạo điều kiện cho các
Trang 21là một loạt các giải pháp phần mềm cho ngân hàng, kế toán, bán vé máy bay, cùng với
các dự án và phân phối phần cứng Vào tháng 12 năm 1994, khi nó đủ lớn, ISC đã
được chia thành các bộ phận chuyên môn cho các dự án, phân phối, phần mềm Bộ phan phan mềm tại thời điểm đó được đặt tên là FSS (FPT Software Solutions Enterprise) Sau d6, vao nam 1999, FSS da duoc chinh thức tách ra khỏi FPT va trở
thanh Céng ty TNHH Phan mém FPT (FPT Software)
Từ năm 1994 đến 1998, bộ phận Phần mềm của Tập đoàn FPT tiếp tuc phat trién
và cung cấp các giải pháp phần mềm cho nhiều lĩnh vực như ngân hàng, kế toán, thuế, hải quan, cảnh sát, giáo dục, y tế và viễn thông Một trong những thành tựu nỗi bật của Tập đoàn FPT là xây dựng TTVN - nhà cung cấp dịch vụ Internet đầu tiên tại Việt Nam, đặt nền tảng cho sự phát triên của Công ty Viễn thông FPT sau này Năm 1999,
bộ phận Phần mềm chính thức trở thành Công ty TNHH Phần mềm FPT (FPT
Software) Nam 2004 và 2005, Tập đoàn FPT được PC World Vietnam bầu chọn là công ty công nghệ thông tin số một
Vào cuối năm 1998 và đầu năm 1999, sau khi chiến lược xuất khâu phần mềm
được định hình, một nhóm các chuyên gia đã được tách ra khỏi FSS để thành lập FSU1 (Don vi chiến lược FPT #1) với tư cách là đơn vị mũi nhọn trong sứ mệnh Toàn cầu hóa FSUI là tiền thân của FPT Software ngày nay Năm 1999, FPT Software da thực hiện thành công dự án đầu tiên với khách hàng của Winsoft, Canada, ban đầu xác định cơ cấu tô chức, chuẩn bị các chương trình nhân sự để xuất khâu Năm 2000, FPT Software chuyên trụ sở chính sang tòa nhà HITC Bị ảnh hưởng bởi cuộc khủng hoảng dot-com, thị trường xuất khâu phần mềm gặp nhiều khó khăn Tuy nhiên, FPT Software đã vượt qua thách thức và đạt được kết quả quan trọng - ký hợp đồng ODC (Offshore Development Center - Trung tam phat trién ngoai khoi) đầu tiên với Harvey
Trang 2214 Nash Đến nay, Harvey Nash vẫn là một trong những khách hàng lớn nhất của FPT
FPT Software đạt được CMM cấp 4 vào tháng 3 năm 2002, trở thành công ty đầu
tiên ở Đông Nam Á đạt được chứng chỉ này Năm 2002 cũng là năm FPT Software
củng cô sơ đồ tổ chức của mình, bằng cách thành lập Trung tâm sản xuất và các bộ
phận chức năng Vào cuối năm 2002, lần đầu tiên doanh thu của FPT Software đã vượt
qua $ 1 triệu Năm 2003 đã mang đến cho FPT Software nhiều khách hàng mới, đặc biệt là các khách hàng lớn của Nhật Bản nhwu Hitachi, Sanyo, Nissan, IBM Nhật Bản FPT Sofware thành lập văn phòng tại Thành phố Hồ Chi Minh va Da Nang Dé chuan
bị cho thị trường Nhật Bản, một chương trình lớn đã được triển khai bao gồm thành lập Trung tâm đào tạo tiếng Nhật Đông Du, tuyến dụng sinh viên từ các khoa của Nhật Bản và hỗ trợ học bồng cho họ học Aptech, tuyên dụng sinh viên tốt nghiệp CNTT và đào tạo chuyên sâu tiếng Nhật trong 6 tháng Năm 2003 cũng là năm dự án CMM-5
bắt đầu Đầu năm 2004, FPT Software tro thành Công ty Cô phần Phần mềm FPT Trụ
sở tại thành phố Hỗ Chí Minh được chuyền đến tòa nhà thị trấn điện tử FPT Software đạt được CMM cấp 5 (mức cao nhất) trong tháng 3 năm 2005 Đề phục vụ khách hàng Nhật Bản tốt hơn, văn phòng đại diện của FPT Software đã được mở tại Tokyo và Singapore Năm 2004 cũng là một năm thu hoạch của Công ty Phần mềm FPT, với
doanh thu xuất khâu năm 2004 tăng hơn 200% so với năm 2003
Năm 2005 là một năm đánh dấu sự phát triển của công ty về mọi mặt, giúp FPT Software khang dinh vi thế là công ty phần mềm hàng đầu tại Việt Nam Vào tháng 8 năm 2005, Chí nhánh Đà Nẵng được thành lập, vào tháng 11, Công ty TNHH Phan mềm FPT Nhật Bản được thành lập tại Tokyo, vào tháng 12, Trung tâm Tuyến dụng và Đào tạo đã được khánh thành tại Tòa nhà Simco, Hà Nội Đến cuối năm 2005, FPT Software da tang 114% doanh thu, trở thành công ty phần mềm đầu tiên tại Việt Nam
với hơn 1000 nhân viên
Vào tháng 10 năm 2007, FPT Software đã chuyển Trung tâm bảo đảm tài nguyên (RAC) sang Tòa nhà phần mềm FPT tại Tuoi Tre Alley - Hoàng Quốc Việt, đánh dấu