Chỉ trong một thời gian ngắn, nhưng nhờ sự chỉ dẫn nhiệt tình của nhóm trainer, nhóm thực tập chúng em đã tiếp thu được những kiến thức quan trọng để có thể làm được phần của dự án.. Đặc
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO THỰC TẬP
LẬP TRÌNH ỨNG DỤNG WEB
VỚI ASP.NET MVC
TP Hồ Chí Minh, tháng 07 năm 2020
Trang 2LỜI MỞ ĐẦU
Ngày nay, ngành công nghiệp web là một bộ phận không thể thiếu của ngành công nghiệp phần mềm Với tốc độ phát triển vô cùng mạnh mẽ, ngành web đã và đang là nhân tố kích thích sự phát triển của công nghệ thông tin thế giới, cả về phần cứng và phần mềm
Cùng với xu thế phát triển của thế giới, Việt Nam cũng không phải ngoại lệ Ngành công nghiệp web non trẻ Việt Nam đã và đang phát triển mạnh mẽ, để hòa nhập với những công ty hàng đầu về web trên thế giới
Sau ba năm học tập trên trường, do mong muốn có thêm kinh nghiệm thực tế, cũng như muốn được tham gia làm ứng dụng web trong một môi trường doanh nghiệp, em có dự định là
sẽ thực tập trong học kì này Bản thân em sau một thời gian chuẩn bị kiến thức và ứng tuyển, đã nhận được cơ hội làm việc tại công ty People Link JSC Đây là công ty có môi trường chuyên nghiệp, hiện đại, phù hợp cho em trau dồi kiến thức, kinh nghiệm và phát triển các kĩ năng của bản thân
Trang 3LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn Công ty People Link JSC đã tạo điều kiện cho em có cơ hội được thực tập tại công ty
Chỉ trong một thời gian ngắn, nhưng nhờ sự chỉ dẫn nhiệt tình của nhóm trainer, nhóm thực tập chúng em đã tiếp thu được những kiến thức quan trọng để có thể làm được phần của dự
án Chân thành cảm ơn các anh chị trong nhóm trainer đã bỏ ra nhiều thời gian,công sức để hướng dẫn chúng em hoàn thành đợt thực tập này
Đặc biệt cảm ơn anh Trần Quốc Hưởng, đã training về Hệ thống của công ty, hướng dẫn,
giúp đỡ cho chúng em tận tình cả những khó khăn trong công việc, đến những khó khăn việc
làm quen với môi trường mới; cảm ơn anh Huỳnh Khánh Hồng Châu, đã training ASP.NET
MVC, hỗ trợ chúng em rất nhiều về các vấn đề kỹ thuật trong quá trình làm project; cảm ơn anh
Trần Quốc Hưởng, đã chỉ dẫn chúng em về cách làm báo cáo, lên kế hoạch, những kỹ năng
không thể thiếu để có thể làm ra một sản phẩm trong thời gian qua
Cũng xin cảm ơn thầy cô trong khoa Công nghệ phần mềm đã nhiệt tình hỗ trợ, tạo điều kiện em làm bài báo cáo này
Hồ Nguyễn Nhật Tiến TpHCM, ngày 05 tháng 04 năm 2020
Trang 4NHẬN XÉT CỦA KHOA
Trang 5
MỤC LỤC
LỜI MỞ ĐẦU 1
LỜI CẢM ƠN 2
NHẬN XÉT CỦA KHOA 3
Chương 1: Giới thiêu công ty thực tập 5
1 Giới thiệu công ty People link Việt Nam 5
2 Sản phẩm của công ty 5
Chương 2: Nội dung thực tập 6
1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 6
2 Nghiên cứu kỹ thuật 6
2.1 Các công cụ làm việc 6
2.2 Tìm hiểu ngôn ngữ C# nâng cao 6
2.3 ASP.NET MVC 7
2.4 jQuery, Bootstrap 3 9
2.5 Kiến trúc Microservices 10
3 Thực hiện project 10
4 Lịch làm việc 11
Chương 3: Chi tiết về project 13
1 Giới thiệu về dự án 13
1.1 Ý tưởng 13
1.2 Các tính năng chính 13
2 Thực hiện 13
3 Kế hoạch 13
TÀI LIỆU THAM KHẢO 15
TỔNG KẾT 16
Trang 6Chương 1: Giới thiêu công ty thực tập
1 Giới thiệu công ty People link Việt Nam
Được thành lập năm 2001, People Link JSC là đơn vị tiên phong cung cấp các giải pháp nhân sự độc đáo như tuyển dụng, thuê ngoài, biên chế, đào tạo và tăng tính gắn kết của nhân viên đối với nhãn hàng,
Những giải pháp công ty cung cấp những giải pháp phù hợp với thị trường và luôn quan tâm đến khía cạnh văn hóa của vùng Đảm bảo chúng hoạt động tốt và phù hợp tại thị trường Việt Nam
Sứ mệnh: Trở thành đối tác đáng tin cậy trong thời gian dài Tầm nhìn: Mang lại thành công cho khách hàng của chúng tôi bằng cách chăm sóc
và mang lại kết quả tích cực trong bất kỳ đổi mới nào
Giá trị: Chia sẻ niềm vui thành công cùng nhau song hành như một đối tác đáng tin cậy với khách hàng và dịch vụ chất lượng tuyệt vời
2 Sản phẩm của công ty
People link cung cấp các giải pháp phần mềm quản lý nhân sự độc đáo như tuyển dụng, thuê ngoài, biên chế, đào tạo và tăng tính gắn kết của nhân viên đối với nhãn hang Ngoài ra công ty đã phát triển hệ thống quản lý PLS System để nhân viên trong công ty và các doanh nghiệp khách hang có thể quản lý nhân sự nhân sự 1 cách tối ưu nhất nhằm giải quyết những khó khan về nghiệp vụ và tốc độ báo cáo, tính trung thực, tính thực thi, đáp ứng nhanh cho việc đưa ra quyết định , giải quyết các vấn đề ngoài thị trường
Trang 7Chương 2: Nội dung thực tập
Đợt thực tập với chủ đề “Lập trình web với ASP.NET MVC” nhằm mục đích giúp sinh viên thực tập được đào tạo toàn diện về lập trình web, đồng thời rèn luyện những kỹ năng mềm như làm việc nhóm, thuyết trình, giao tiếp Tại công ty, sinh viên có cơ hội được học tập, khám phá và làm việc trong một môi trường phát triển phần mềm chuyên nghiệp
1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty
Thời gian : 2 ngày
Nội dung : Giới thiệu về công ty, cách tổ chức của công ty
Được nghe người phụ trách giới thiệu về công ty, quá trình thành lập và phát triên (như đã nhắc đến ở trên), quy trình làm việc từ cao xuống thấp, cách thức tổ chức của công ty
Ngoài ra, thực tập sinh còn được giới thiệu về cách thức làm việc trong công ty như thời gian đi làm, các quy định cần phải tuân thủ, cách sử dụng email trong công việc…
Kết quả : Hiểu thêm về công ty People link, quá trình thành lập và phát triển Có thêm
các kỹ năng về việc sử dụng email trong công việc, làm việc có kế hoạch, có kỷ luật, có trách nhiệm hơn
2 Nghiên cứu kỹ thuật
Thời gian : 1 ngày
Nội dung : Tìm hiểu về các công cụ sẽ được sử dụng trong quá trình làm việc.
Trong thời gian này, supervisor đã hướng dẫn thực tập sinh tìm hiểu về các công
cụ sẽ giúp ích cho trong công việc sau này Một số phần mềm trong số đó như Tortoise SVN - sử dụng trong làm việc nhóm, Microsoft Visual Studio - một môi trường phát triển tích hợp (IDE) từ Microsoft, Notepad ++ - một chương trình soạn thảo văn bản rất hữu ích và phổ biến với lập trình viên
Thực hiện : Thực hành sử dụng các phần mềm đã nêu trên.
Kết quả : Lập trình sử dụng các công cụ miễn phí, giúp dễ dàng kết hợp các công cụ
với nhau
Thời gian : 1 ngày
Nội dung : Được training về các kỹ thuật C# nâng cao, những kiến thức quan trọng
cho việc thiết kế web API
- Lập trình hướng đối tượng
Các kiến thức cơ bản về lập trình hướng đối tượng như khái niêm, các đặc tính như tính kế thừa, tính đóng gói, tính ảo hóa, tính đa hình Ngoài ra, thực tập sinh còn được hướng dẫn về cách thiết kế lớp cho các thực thể trong database
Trang 8- Interface :
Một interface được hiểu như là 1 khuôn mẫu mà mọi lớp thực thi nó đều phải tuân theo Interface sẽ định nghĩa phần “làm gì” (khai báo) và những lớp thực thi interface này sẽ định nghĩa phần “làm như thế nào” (định nghĩa nội dung) tương ứng
- LINQ
Thực hiện :
- Tham gia đầy đủ các buổi training của công ty
- Làm các bài thực hành, kiểm tra về kiến thức đã học
Kết quả :
- Nâng cao kỹ năng lập trình với ngôn ngữ C#
- Có được những kiến thức quan trọng cho việc lập trình web sau này
- Ngoài ra còn được biết thêm một số quy tắc trong việc viết code sao cho đúng chuẩn, dễ đọc, dễ hiểu
Thời gian : 1 tuần
Nội dung: Các kiến thức về lập trình web bằng ASP.NET MVC để có thể áp dụng
vào project của công ty
- Khái niệm cơ bản về ASP.NET MVC.
Năm được các khái niệm về mô hình MVC, MVC là cụm từ viết tắt của Model-View-Controller, nó phân chia pattern của ứng dụng thành 3 phần - model, controller và view
dữ liệu hoặc cũng có thể chỉ là một tập tin XML
trang web của bạn để nhìn thấy các dữ liệu Các trang ASPX thường được sử dụng để hiển thị view trong các ứng dụng ASP.NET MVC
Nó được sử dụng để xác định loại view nào cần phải được hiển thị Controller cũng được sử dụng cho mục đích giao tiếp với model
- Repository Pattern:
Trang 9Repository là một lớp trung gian giữa hai tầng này Trong project sử dụng Entity Framework với ASP.NET MVC thì Data chính là tầng chứa các lớp dbContext và class enttiy Còn business logic chính là tầng xử lý nghiệp vụ của dự án Repository hầu hết được sử dụng những chỗ cần điều chỉnh dữ liệu trước khi truyền xuống tầng data hoặc truyền lên trên business logic
- Generic Repository Pattern
Trong các trường hợp khác, dự án lại đòi hỏi một cách tốt nhất để tạo ra tất cả các repository logic ở cùng một nơi Chúng ta cần tạo 1 và chỉ 1 repository cho việc thao tác với toàn bộ các class entity Vậy để giải quyết điều này chúng ta phải sử dụng Generic Repository Pattern
- Unit Of Work trong Repository Pattern
Unit Of Work được sử dụng để đảm bảo nhiều hành động như insert, update, delete được thực thi trong cùng một transaction thống nhất Nói đơn giản hơn, nghĩa là khi một hành động của người dùng tác động vào hệ thống, tất cả các hành động như insert, update, delete phải thực hiện xong thì mới gọi là một transaction thành công Gói tất cả các hành động đơn lẻ vào một transaction để đảm bảo tính toàn vẹn dữ liệu
- RESTFUL API
theo đó, một ứng dụng hay một thành phần sẽ tương tác với một ứng dụng hay thành phần khác API có thể trả về dữ liệu mà bạn cần cho ứng dụng của mình
ở những kiểu dữ liệu phổ biến như JSON hay XML
liệu, một kiểu kiến trúc để viết API Nó sử dụng phương thức HTTP đơn giản
để tạo cho giao tiếp giữa các máy Vì vậy, thay vì sử dụng một URL cho việc
xử lý một số thông tin người dùng, REST gửi một yêu cầu HTTP như GET, POST, DELETE, vv đến một URL để xử lý dữ liệu
dụng web để quản lý các resource RESTful là một trong những kiểu thiết kế API được sử dụng phổ biến ngày nay để cho các ứng dụng (web, mobile…) khác nhau giao tiếp với nhau
Trang 10Thực hiện :
- Tham gia đầy đủ các buổi trainning
- Làm các bài tập thực hành như viết được api them xóa sửa 1 bảng nào đó trong database, …
- Tìm kiếm tài liệu trên mạng để tìm hiểu thêm
Kết quả :
- Hiểu được những khái niệm trong lập trình web với ASP.NET MVC
- Đã viết được api cơ bản theo cấu trúc project của công ty
Nội dung : Các kĩ thuật cơ bản để lập trình giao diện trang người quản lý.
- jQuery:
jQuery là thư viện được viết từ JavaScript, jQuery giúp xây dựng các chức năng bằng Javascript dễ dàng, nhanh và giàu tính năng hơn jQuery được tích hợp nhiều module khác nhau Từ module hiệu ứng cho đến module truy vấn selector
- Bootstrap 3:
Bootstrap là một framework bao gồm các HTML, CSS và JavaScript template dùng để phát triển website chuẩn responsive Bootstrap cho phép quá trình thiết kế website diễn ra nhanh chóng và dễ dàng hơn dựa trên những thành tố cơ bản sẵn
có như typography, forms, buttons, tables, grids, navigation, image carousels…
Thực hiện :
Trang 11- Tham gia đầy đủ các buổi training.
- Tạo ra những ứng dụng cơ bản, lập trình giao diện web bằng bootstrap 3
Kết quả:
liệu, thêm, xóa , sửa
Nội dung : Các kiến thức cơ bản về kiến trúc Microservices.
- Thực tế có nhiều định nghĩa khác nhau đối với Microservices nhưng hiểu theo cách đơn giản thì, microservice là một kiếu kiến trúc phần mềm Các module trong phần mềm này được chia thành các service rất nhỏ (microservice) Mỗi service sẽ được đặt trên một server riêng -> dễ dàng để nâng cấp và scale ứng dụng
- Thay vì gom tất cả module thành một khối (monolith), ta tách các module thành những service siêu nhỏ Mỗi service sẽ được đặt trên một server riêng (Có thể dùng server cloud như AWS hoặc Azure), giao tiếp với nhau thông qua mạng (Gửi nhận message qua giao thức HTTP hoặc sử dụng MessageQueue)
3 Thực hiện project
Sau hai tuần được training và thực hành, thực tập sinh đã nắm được những kiến thực cơ bản về ASP.NET MVC, Bootstrap 3, JQuery Trong tháng thứ hai, trainer đã hướng dẫn thực tập sinh áp dụng những kiến thức đã học để thực hiện dự án là module online training trong dự án PL Systems
Chi tiết đồ án sẽ được nói ở phần sau
Trang 124 Lịch làm việc
Mức độ hoàn thành
Nhận xét của người hướng dẫn
1
- Tìm hiểu về công
ty, cách tổ chức của công ty
- Làm quen với các công cụ làm việc trong công ty
- Học cách trao đổi, làm việc qua email
Anh Trần Quốc
của công ty, tích cực trong việc hỏi đáp các vấn đề còn trở ngại
mắc
2
- Tìm hiểu ngôn ngữ lập trình C# nâng cao
- Thực hành C#
- Tìm hiểu về ASP.NET MVC
- Thực hành một số API cơ bản
- Tìm hiểu về jQuery, Bootstrap 3
- Viết thử giao diện
cơ bản
- Tìm hiểu về kiến trúc Microservices
Anh Trần Quốc Hưởng, Anh Huỳnh Khánh Hồng Châu
Hoàn thành Có khả năng tựnghiên cứu kiến
thức với keyword được cho
3
- Quy trình phát triển phần mềm và
project
Anh Trần Quốc
project
4,5,6,7
Giai đoạn alpha
- Lên kế hoạch
- Tìm hiểu nghiệp
vụ chung
- Viết các api cơ bản
có thể tái sử dụng
- Code giao diện các màn hình
Anh Trần Quốc
Huỳnh Khánh Hồng Châu
Hoàn thành
Có khả năng ứng dựng kiến thức đã được train vào công việc Vẫn còn
hạn chế về chất lượng code
8,9,10,11,1
2 Giai đoạn beta- Hoàn thiện các api
được giao
- Hoàn thiện các giao
Hoàn thành Có khả năng ứngdựng kiến thức đã
được train vào công việc Vẫn
Trang 13- Kết nối api và đưa
dữ liệu lên màn
hình
- Test và fix bug
- Thuyết trình về sản
phẩm
hạn chế về chất lượng code
Kỹ năng thuyết trình còn chưa tốt lắm
Trang 14Chương 3: Chi tiết về project
1 Giới thiệu về dự án
Online training là 1 module của dự People link systems (PL Systems ), quản lý việc training nhân viên của công ty bằng cách tạo các khóa học để nhân viên có thể học trên mobile app, trong quá trình thực tập, em chỉ đảm nhiệm 1 nhỏ của phần của trainer (trang quản lý)
People link systems là 1 platform quản lý của công ty Peoplelink JSC, bao gồm nhiều module: Headcount request, online training, KPI, sale out, sale in, perfect store, online recruitment, GPS tracking, payroll
Online training là 1 module trong PL Systems, quản lý các khóa học, bài kiểm tra Trainer sẽ tạo các khóa học, các bài kiểm tra để kiểm tra trình độ của nhân viên xem có thể vào làm việc được chưa
Vì đây là ứng dụng nội bộ của công ty People link JSC nên em không thể trình bày chi tiết các tính năng được, nên chỉ khái quát một số tính năng mà em đã được tham gia phát triển như:
- Quản lý ngân hàng câu hỏi (Trainer)
- Quản lý ngân hàng bài kiểm tra (Trainer)
- Quản lý các khóa học (Trainer)
- Quản lý các bài giảng (Trainer)
2 Thực hiện
Sinh viên :Hồ Nguyễn Nhật Tiến
Và sự giúp đỡ tận tình của anh Châu và anh Hưởng
3 Kế hoạch
Giai đoạn Alpha:
- Lên kế hoạch
- Tìm hiểu nghiệp vụ chung
- Viết các services cơ bản có thể tái sử dụng
- Code giao diện các màn hình
Trang 15- Hầu hết các tính năng trên đã được thực hiện
Giai đoạn Beta:
- Hoàn thiện các api được giao
- Hoàn thiện các giao diện được giao
- Kết nối api và đưa dữ liệu lên màn hình
- Test và fix bug
- Thuyết trình về sản phẩm
Kết quả : Đã hoàn thành toàn bộ những tính năng trên, nhưng giao diện chưa được bắt mắt
Trang 16TÀI LIỆU THAM KHẢO
https://jquery.com/
https://dotnet.microsoft.com/apps/aspnet
https://getbootstrap.com/docs/3.3/
Trang 17TỔNG KẾT
Như vậy, trong vòng ba tháng ngắn ngủi, nhóm đã kịp hoàn thành một phần của module online training Module đã có khá đầy đủ các tính năng cơ bản mà bộ phân training nhân viên của công ty đề ra Do thời gian có hạn nên tính năng còn đơn giản, hình ảnh chưa được đẹp như mong đợi Nhưng do ứng dụng phát triển theo framework có tính kế thừa nên sau này khi có thời gian sẽ có thể phát triển lên mức cao hơn
Chân thành cảm ơn sự giúp đỡ của các anh trong team IT của công ty Cảm ơn anh Trần Quốc Hưởng đã giúp em hoàn thành bài báo cáo này