Lời đầu tiên, tôi xin gửi lời cảm ơn chân thành đến công ty Global Cybersoft Việt Nam JSC, Đặc biệt là bác Ngô Đức Chí – Giám đốc công ty đã tạo điều kiện cho tôi được thực tập tại công ty cũng như các buổi hoạt động và team building do công ty tổ chức. Đồng thời, tôi cũng xin gửi lời cảm ơn sâu sắc tới anh Nhậm Hải Thành – Project Manager, hai anh Trần Văn Kha, Bình Nguyễn – Supporter, anh Trần Đình Khang – Assistant đã hỗ trợ tôi trong quá trình thực tập. Cảm ơn các bạn thực tập chung đã cùng tâm sự giúp đỡ những lúc tôi khó khăn.
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG
BÁO CÁO THỰC TẬP DOANH NGHIỆP
GLOBAL CYBERSOFT VIET NAM JSC
NGUYỄN VĂN ĐỨC - 12520078
TP Hồ Chí Minh, 1 tháng 6 năm 2016
Trang 2LỜI CẢM ƠN
Lời đầu tiên, tôi xin gửi lời cảm ơn chân thành đến công ty Global Cybersoft Việt Nam JSC, Đặc biệt là bác Ngô Đức Chí – Giám đốc công ty đã tạo điều kiện cho tôi được thực tập tại công ty cũng như các buổi hoạt động và team building do công ty
tổ chức
Đồng thời, tôi cũng xin gửi lời cảm ơn sâu sắc tới anh Nhậm Hải Thành – Project Manager, hai anh Trần Văn Kha, Bình Nguyễn – Supporter, anh Trần Đình Khang – Assistant đã hỗ trợ tôi trong quá trình thực tập Cảm ơn các bạn thực tập chung đã cùng tâm sự giúp đỡ những lúc tôi khó khăn
Cảm ơn chân thành tới khoa Mạng Máy Tính đã tận tình giảng dạy trang bị cho tôi những kiến thức và kỹ năng cần thiết trong suốt qua trình học tập và sinh hoạt tại trường
Cuối cùng, Con xin vô cùng cảm ơn bố mẹ, gia đình đã nuôi lớn con tạo điều kiện vật chất và tinh thần cùng đồng hành với con trên chặng đường đại học, cùng chắp cánh vui đắp xây dựng ước mơ của con
Một lần nữa, tôi xin chân thành cảm ơn các anh các chị và công ty Chúc công
ty càng ngày càng phát triển Chúc sức khỏe tới Khoa Mạng Máy Tính và công ty Global Cybersoft
Trang 3NHÂN XÉT CỦA HỘI ĐỒNG
Trang 4
MỤC LỤC
CHƯƠNG 1 GIỚI THIỆU VỀ CÔNG TY 6
1.1 Tổng quan về công ty 6
1.2 Tổ chức hành chính, nhân sự 7
1.3 Môi trường làm việc 8
CHƯƠNG 2 KẾ HOẠCH VÀ THỜI GIAN THỰC TẬP 9
2.1 Giới thiệu về dự án 9
2.2 Kế hoạch và thời gian thực tập 9
CHƯƠNG 3 NỘI DUNG CHÍNH CÔNG VIỆC THỰC HIỆN 12
3.1 Tìm hiểu Entity Framework 6.0 12
3.1.1 Sơ lược về Entity Framework 12
3.1.2 Các phương pháp lập trình với Entity Framework 13
3.2 Log4Net 22
3.2.1 Sơ lược về Log4Net 22
3.2.2 Những chức năng chính của Log4Net 22
3.2.3 Cài đặt và cấu hình Log4Net 22
CHƯƠNG 4 KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN 24
4.1 Kết quả thực tập 24
4.2 Suy nghĩ và hướng phát triển cho bản thân 25
CHƯƠNG 5 TÀI LIỆU THAM KHẢO 25
Trang 5DANH MỤC CÁC HÌNH
Hình 1 Mô hình tổ chức hành chính, nhân sự 7
Hình 2 Mô hình các bộ phận chính của công ty 8
Hình 3 Mô hình hoạt động database first 13
Hình 4 Cấu trúc project demo database first 14
Hình 5 Mô hình table của database 14
Hình 6 Tạo mới project ASP.NET 15
Hình 7 Cài đặt Entity Framework 15
Hình 8 Cài đặt ADO.NET 16
Hình 9 Chọn kiểu EF Data Model 16
Hình 10 Thêm bảng database 17
Hình 11 Model của database 17
Hình 12 Cấu trúc sau khi tự động tạo model 18
Hình 13 Ví dụ về Course Model 18
Hình 14 Mô hình hoạt động Code First 19
Hình 15 Khởi tạo đối tượng của code first 19
Hình 16 Bật chức năng code first migration 20
Hình 17 File cấu hình Migrations 21
Hình 18 Update database từ Console 21
Hình 19 Cài đặt Log4Net 22
Hình 20 Khai báo Log4Net 23
Hình 21 Cấu hình Log4Net 23
Hình 22 Cấu hình level cho Log4Net 23
Hình 23 Cấu hình dữ liệu đầu ra cho Log4Net 23
Hình 24 Tạo đối tượng Log4Net 24
Hình 25 Ví dụ về Log4Net 24
DANH MỤC CÁC BẢNG Bảng 1 Thời gian và kế hoạch thực tập 12
Trang 6CHƯƠNG 1 GIỚI THIỆU VỀ CÔNG TY
1.1 Tổng quan về công ty
Công ty Cổ phần Global CyberSoft (Việt Nam) được thành lập vào năm 2000 tọa lạc tại tòa nhà Helios, công viên phần mềm Quang Trung, phường Tân Chánh Hiệp, quận 12, TP.Hồ Chí Minh, với trụ sở chính tại Mỹ và các chi nhánh, văn phòng đại diện tại Nhật và Châu Âu Là một nhà cung cấp giải pháp công nghệ thông tin hàng đầu thế giới, vốn chủ sở hửu của công ty hiện đang được cung cấp vởi các nhà đầu tư quốc tế Global CyberSoft (Việt Nam) cam kết mang lại các dịch vụ công nghệ thông tin tiên tiến cho khách hàng trên toàn thế giới, bao gồm những khách hàng trong danh sách Fortune 500 và các công ty kỹ nghệ hàng đầu tại Nhật Bản, Châu Âu, Châu Mỹ và Châu
Á
Riêng tại Việt nam, Global CyberSoft (Việt Nam) có hơn 1000 nhân viên làm việc làm tại các trung tâm nghiên cứu, phát triển sản phẩm đặt tại Thành phố Hồ Chí Minh
và Đà Nẵng
Trong suốt thời gian hơn 16 năm hoạt động tại Việt Nam, với nhiều kinh
nghiệm và chuyên môn phong phú, Global CyberSoft (Việt Nam) là người tiên phong trong lĩnh vực IT lớn và đối tác tin cậy ở Việt Nam Tầm nhìn của Global CyberSoft (Việt Nam) là trở thành một trong những doanh nghiệp Công nghệ thông tin hàng đầu
ở châu Á góp phần cho sự thành công của khách hàng trên toàn thế giới bằng cách cung cấp chất lượng tuyệt vời với dịch vụ IT outsourcing, sản phẩm và giải pháp, và kết hợp sáng tạo, nghiên cứu, công nghệ tiên tiến và nguồn nhân lực cạnh tranh
Công ty đã đạt được các chứng chỉ có giá trị và các giải thưởng danh giá trong những năm qua, bao gồm:
ISO-9001
ISO 27001
CMMi level 5
SAP’s Strategic Partner
Sao Khue Award in 2012, 2013
Vietnam Gold Medal & Top 5 ICT Outsourcing Company in 2010 and
2012
Vietnam’s 30 Leading IT Companies 2014
Trang 7 Top 10 IT Oursourcing Enterprises 2015
SAP Partner Quality Program Accreditation Award in 2015
Global CyberSoft hiện đang sử dụng hơn 700 kỹ sư chuyên nghiệp có tay nghề cao, được hướng dẫn từ các quản lí hàng đầu, cam kết cung cấp giải pháp tổng thể và dịch vụ gia công cho các khách hàng có giá trị trong nước và quốc tế
1.2 Tổ chức hành chính, nhân sự
Hình 1 Mô hình tổ chức hành chính, nhân sự
Danh sách những gương mặt quan trọng trong công ty
Ngô Đức Chí - BOD member, CEO
Lê Mỹ Phúc - Factory Automation
Nguyễn Đức Hồng - Testing Services
Cao Đài An - Information Communication Technology
Vũ Đình Thắng - Enterprise Business Solutions
Ngô Văn Toàn - Engineering Support
Lê Hồng Lâm - Embeded System (Nguyen Quan Vien)
Trang 8Hình 2 Mô hình các bộ phận chính của công ty
1.3 Môi trường làm việc
Với định hướng “Khi nơi làm việc như ở nhà - Cơ hội phát triển và thăng tiến - Nặng lòng cả với người ra đi” Global CyberSoft (Việt Nam) luôn chú trọng thu hút nhân tài và xây dựng một môi trường làm việc năng động, sáng tạo cùng những chính sách đãi ngộ tốt nhất, ngoài bố trí phòng tập thể dục ngay trong tòa nhà đặt văn phòng, công ty còn tổ chức các cuộc thi nhằm kích thích nhân viên tham gia sử dụng các hạ tầng dịch vụ nhằm tạo môi trường làm việc như ở nhà
Luôn xem nhân viên là tài sản quan trọng bậc nhất Tiêu chí giữ chân nhân viên của công ty là bảo đảm một môi trường làm việc tốt và tạo điều kiện cho họ phát triển toàn diện Ví dụ như khi nhân viên đạt các chứng chỉ tiếng Anh, Pháp, Nhật…
sẽ được thưởng, phụ cấp thu nhập, tuyên dương trước toàn công ty
Trang 9Bên cạnh xây dựng các chính sách và điều kiện làm việc thuận lợi nhất cho nhân viên, công ty thường xuyên tổ chức các cuộc thi bóng bàn, bóng đá, tổ chức những hoạt động sự kiện, từ thiện được thường niên mang đậm chất văn hóa riêng biệt như Ngày Quốc tế Phụ nữ,…
Điểm đặc biệt của Global CyberSoft (Việt Nam) là mọi cá nhân đều được chấp nhận như họ vốn có, cả ưu điểm lẫn khuyết điểm Luôn có những chính sách khích
lệ nhân viên phát triển kỹ năng chuyên môn, nâng cao kiến thức thuộc lĩnh vực làm việc Ở Global CyberSoft (Việt Nam), cấp dưới với cấp trên đều bình đẳng với nhau
2.2 Kế hoạch và thời gian thực tập
Tuần Thời gian thực tập Công việc thực tập
1 22/2/2016 – 28/2/2016
- Tham gia làm bài Test Skill và buổi Interview tại trường đại học Công Nghệ Thông Tin
2 01/3/2016 – 6/3/2016
- Thực tập tại công ty Global CyberSoft
- Tham gia buổi gặp mặt training về giới thiệu công ty cũng như các chính sách của công ty
và quyền lợi nghĩa vụ khi thực tập tại công
ty
- Cài đặt các chương trình và tài khoản phục
vụ cho dự án như: SVN, Visual Studio 2013, Thunderbird, SQL Server
Trang 105 21/3/2016 – 27/3/2016 - Báo cáo teachnical đã tìm hiểu - Tiếp nhận sự góp ý của các anh và sửa lại
phần slide, báo cáo
6 28/3/2016 – 3/4/2016
- Phát triển tài liệu SRS của dự án
- Phân tích các yêu cầu của dự án một cách chi tiết nhất để thực hiện đúng với yêu cầu
7 4/4/2016 – 10/4/2016
- Học cách tham gia thiết kế dự án phần mềm, xây dựng tài liệu phân tích thiết kế phần mềm (SAD)
- Tham gia buổi training “How to write a good architecture and design document” nhằm tìm hiểu cách thực hiện tài liệu phân tích, thiết
kế phần mềm và “Logging Frameworks and Logging policies”
- Hoàn thiện dần tài liệu SAD: thực hiện công việc được phân công trong nhóm
- Báo cáo tiến độ công việc cho Trainer
- Viết đặc tả yêu cầu cho phần Report: Resource, Fresher, Internship, Interview, Offer, Hired
- Cập nhật và sửa lổi sau khi được Review
- Hoàn thành SRS Report
- Viết tài liệu cho SAD Report
Trang 11- Cập nhật, chỉnh sửa tài liệu cho SAD Report
- Tổng hợp các phần Report của các thành viên trong nhóm
8 11/4/2016 – 17/4/2016
- Cập nhật tài liệu SRD Report: Detail Design
- Đọc, hiểu database gốc cho hệ thống RMS(Recruiment Management System)
- Thiết kế database cho phần Report
9 18/4/2016 – 24/4/2016
- Review, ghi nhận lổi: lổi định dạng, thiếu bảng
- Chỉnh sửa, hoàn thiện datadase cho Report
- Chuẩn bị cho phần Coding
- Cài đặt database, nhập dữ liệu cho Report
- Sửa các lổi giao diện, lổi code (cú pháp, chú thích…)
12 9/5/2016 – 15/5/2016
- Hoàn thành dữ liệu cho Report
- Áp dụng Unit Test, logger
- Test chương trình
- Sửa các lổi giao diện, lổi code
13 16/5/2016 – 20/05/2016
- Cập nhật code, sửa lổi
- Demo trình bày các chức năng của phần Report: Hiển thị report cho từng mẫu, Xuất file ra theo định dạng : pdf, csv, excel
- Ghi nhận các lổi sau khi demo: lổi giao diện người dùng, coding convension
- Sửa lổi và cập nhật code
Trang 12Bảng 1 Thời gian và kế hoạch thực tập
CHƯƠNG 3 NỘI DUNG CHÍNH CÔNG VIỆC THỰC HIỆN
Vì lý do bảo mật của công ty yêu cầu nên tôi chỉ trình bày những kiến thức mà tôi
đã tìm hiểu để phục vụ cho dự án thay vì tập trung vào chi tiết những công việc đã làm cho dự án
3.1 Tìm hiểu Entity Framework 6.0
3.1.1 Sơ lược về Entity Framework
Entity Framework là một bộ ánh xạ đối tượng – quan hệ (Object/Relational Mapping – ORM) cho phép lập trình viên NET làm việc với dữ liệu quan hệ qua các đối tượng (object) mà không cần viết mã cho (hầu hết) những gì liên quan đến truy cập dữ liệu Entity Framework được Microsoft giới thiệu từ phiên bản NET
Framework 3.5 tích hợp với Visual Studio 2008 EF 6.1.3 là phiên bản mới nhất của Entity Framework đã được phát hành
Các thành phần trong Entity Framework:
Code là mã lệnh tạo thành các lớp đối tượng dữ liệu cho phép thao tác với dữ liệu
Model là sơ đồ gồm các hộp mô tả các thực thể và các đường nối kết mô
tả các quan hệ
Database là cơ sở dữ liệu (có thể là SQL Server, Compact SQL Server, Local database, MySQL, Oracle…)
Có 3 kiểu xây dựng kiến trúc cho Entity Framework bao gồm:
Code-First: Thường được sử dụng cho các dự án mới chưa có cơ sở dữ liệu Được xây dựng bằng các tự xây dựng các Object qua đó tạo ra cơ
sở dữ liệu tương ứng
Database-First: Sử dụng khi đã có sẵn Database thích hợp cho các mô hình chuyển đổi giao diện nền (sử dụng công nghệ lập trình khác mà không thay đổi cấu trúc Database)
Model-First: Sử dụng công nghệ Model do EF cung cấp để tạo các thực thể (Entities), các quan hệ (Relationship) và các mối quan hệ kế thừa trên giao diện Model Sau đó sẽ tạo ra Database tương ứng Điều này khác với việc dùng Code First – hoàn toàn không có giao diện Model
mà phải tự viết bằng code Những điểm mới trong EF 6.0
- Khả năng phục hồi kết nối khi bị lỗi
- Truy vấn và lưu bất đồng bộ
- Code-based configuration
- Database command logging
Trang 13- Database command interception
- Better Transaction Support
3.1.2 Các phương pháp lập trình với Entity Framework
Database first
- Khi nào sửa dụng
Khi đã có sẵn một database thì database first là lựa chon hoàn hảo để
ta có thể tự động tạo ra các model từ database và ánh xạ các mối quan
hệ giữa chúng một cách tự động
- Mô hình hoạt động
Hình 3 Mô hình hoạt động database first
- Ví dụ tự động tạo ra model và các mối quan hệ giữa các bảng với nhau bằng Database first
Database University gồm 3 bảng Student, Course và Enrollment có mối quan hệ như sau:
One-to-many giữa bảng Course và Enrollment
One-to-many giữa bảng Student và Enrollment
Many-to-many giữa bảng Student và Course
Cấu trúc project
Trang 14Hình 4 Cấu trúc project demo database first
Hình 5 Mô hình table của database
- Tạo mới một ASP.NET web application
Trang 15Hình 6 Tạo mới project ASP.NET
- Install EF 6
Hình 7 Cài đặt Entity Framework
- Thêm ADO.NET Entity Data Model
Trang 16Hình 8 Cài đặt ADO.NET
- Chọn EF Designer from database
Hình 9 Chọn kiểu EF Data Model
- Thêm table từ database
Trang 17Hình 10 Thêm bảng database
- Model sẽ được tạo ra từ database bao gồm các mối quan hệ giữa chúng
Hình 11 Model của database
- Kết quả sao khi tạo Database từ model
Trang 18Hình 12 Cấu trúc sau khi tự động tạo model
Trang 19Hình 14 Mô hình hoạt động Code First
- Khởi tạo CSDL
CSDL được khởi tạo thông ra một lớp context kế thừa từ lớp DbContext Entity Framework xác định tên hay chuỗi kết nối của CSDL thông qua đối số truyền vào hàm khởi tạo của context
Hình 15 Khởi tạo đối tượng của code first
Không có đối số: Code-First API sẽ tạo CSDL trong SQLEXPRESS với tên được đặt theo quy tắc
{Namespace}.{Tên_lớp_context}
Truyền vào tên CSDL: Nếu tên CSDL được truyền vào đối số của hàm khởi tạo lớp Context, Code-First API sẽ tạo CSDL trong SQLEXPRESS với tên như vậy
Truyền vào chuỗi kết nối: Nếu truyền vào hàm khởi tạo của lớp Context tên của chuỗi kết nối được định nghĩa trong tập tin App.config hoặc Web.config thì CodeFirst API sẽ tạo
Trang 20CSDL dựa trên tên và máy chủ được định nghĩa trong chuỗi kết nối
- Code-First Migration
Entity Framework 4.3 giới thiệu một công vụ migration tự động cập nhật lược đồ CSDL, khi model thay đổi mà không làm mất dữ liệu hay các đối tượng có sẵn do phải phá bỏ và tạo lại CSDL Để sử dụng chức năng Code-First Migration, trước tiên phải chạy câu lệnh
“enable-migrations” thông qua Package Manager Console (Tools -> Library Package Manager -> Package Manager Console)
Hình 16 Bật chức năng code first migration
Câu lệnh “enable-migrations” sẽ tạo ra thư mục Migrations, trong đó
có tập tin Configuration.cs để cấu hình lại nếu cần thiết
Trang 21Hình 17 File cấu hình Migrations
Sau khi thay đổi các domain class, cần chạy câu lệnh “add-migration {tên-bảnmigration}” từ Package Manager Console để Code-Frist Migration biết được cần phải tạo, cập nhật hay xóa bỏ những gì trong CSDL
Cuối cùng, chạy câu lệnh “update-database” từ Package Manager Coonsole để cập nhật lại CSDL
Hình 18 Update database từ Console
Code-First Migration cũng hỗ trợ việc phục hồi lại CSDL từ một bản migration bất kỳ bằng câu lệnh “update-database –
TargetMigration:{tên_bản_migration}” hoặc phục hồi lại từ đầu bằng câu lệnh ”update-databse –TargetMigration:0”