Cách xây dựng ứng dụng bằng .NET tương đối dễ dàng và tiện lợi so với các công nghệ khác vì Microsoft đã làm rất tốt phần việc của mình khi giúp cho lập trình viên không còn phải can thi
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 CAD
Công ty thực tập : TGL Solutions
TP Hồ Chí Minh, tháng 06 năm 2022
Trang 2LỜI MỞ ĐẦU
Trong thời điểm mà ngành công nghệ thông tin nói chung và phát triển phần mềm nói riêng đang phát triển với tốc độ chưa từng có tiền lệ Nhu cầu cho các sản phẩm phần mềm thuộc nhiều lĩnh vực càng ngày càng tăng
Cùng với sự phát triển của phần mềm thì NET Framework đã trở thành một trong công nghệ được sử dụng rộng rãi trên toàn thế giới Theo số liệu thống kê không chính thức thì số lượng lập trình viên sử dụng ngôn ngữ C# của NET cũng rơi vào khoảng 6 triệu Đây là một sự tăng trưởng cực kỳ nhanh nếu như chúng ta biết rằng NET mới chỉ ra đời được gần 20 năm Điều đấy cũng cho thấy mức độ hấp dẫn của NET đối với lập trình viên lớn như thế nào
.NET framework cùng với hệ sinh thái Microsoft đã phát triển rất nhanh với tất cả các công nghệ có thể giúp lập trình viên xây dựng nên các ứng dụng mất ít thời gian nhất, nó có thể giúp xây dựng từ ứng dụng chạy trên desktop cho đến ứng dụng web và gần đây là cả ứng dụng mobile/tablet Cách xây dựng ứng dụng bằng NET tương đối dễ dàng và tiện lợi so với các công nghệ khác vì Microsoft đã làm rất tốt phần việc của mình khi giúp cho lập trình viên
không còn phải can thiệt và hiểu quá sâu về hệ thống và cách thức hoạt động của NET
Tuy nhiên, để có thể nắm vững và sử dụng hiệu quả NET, tránh những lỗi khó xử lý thì chúng ta cần phải hiểu được kiến trúc của NET cũng như cách thức hoạt động của nó
Sau ba năm học tập trên trường, trải qua rất nhiều đồ án và bài tập liên quan đến NET framework, do mong muốn có thêm kinh nghiệm thực tế, cũng như muốn được làm việc trong một môi trường chuyên nghiệp, em có dự định là sẽ thực tập trong hè Vì vậy, em quyết định chọn TGL-Sol - một môi trường lý tưởng, hiện đại, chuyên nghiệp - là nơi sẽ giúp em thực hiện được dự định này
Trang 3LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn Công ty TGL-Solutions Việt Nam đã 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 một product
cụ thể 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 Nghiêm và em Hùng Vỹ, đã training các kiến thức về NET & CAD Api, 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 Phan Trần Minh Trí, đã 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ảm ơn toàn bộ team CAD đã luôn tạo điều kiện tốt nhất để em có thể hoàn thành tốt các công việc được giao trong thời gian làm việc tại công ty
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
Đồng Quang Quý TpHCM, ngày 15 tháng 6 năm 2022
Trang 4NHẬN XÉT CỦA KHOA
Trang 5
MỤC LỤC
CHƯƠNG 1: Giới thiệu công ty thực tập 7
1 Giới thiệu công ty TGL Solutions 7
2 Các sản phẩm của công ty 7
2.1 Website 7
2.2 App 8
2.3 Hệ thống 9
2.4 Cad business 9
2.5 Công nghệ mới 9
2.6 Bảo trì nâng cấp 10
CHƯƠNG 2: Nội dung thực tập 11
1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 11
2 Nghiên cứu kỹ thuật 11
2.1 Các công cụ làm việc 11
2.2 Tìm hiểu về các phần mềm vẽ kỹ thuật và cách thao tác với chúng thông qua Api 12
2.3 Tìm hiểu ngôn ngữ C# nâng cao 12
2.4 Lập trình command cơ bản với CAD Api và AutoCAD 13
2.5 Tìm hiểu thực hiện AutoTest trên IjCAD 13
3 Thực hiện project 13
4 Lịch làm việc 14
CHƯƠNG 3: Chi tiết về project 18
1 Giới thiệu về dự án 18
1.1 Sự ra đời 18
1.2 Mục tiêu 18
Trang 62 Kế hoạch 18 CHƯƠNG 4: Tài liệu tham khảo 19 CHƯƠNG 5: Tổng kết 20
Trang 7CHƯƠNG 1: Giới thiệu công ty thực tập
1 Giới thiệu công ty TGL Solutions
TGL SOLUTIONS được thành lập năm 2019 tại Hồ Chí Minh, TGL Solutions luôn nỗ lực không ngừng để mở rộng và đa dạng hóa các dịch vụ công nghệ phần mềm, đáp ứng nhu cầu và xu thế phát triển của thị trường Sau 4 năm thành lập TGL từ một start up nhỏ đã vươn mình trở thành một công có quy mô khá lớn và nhận được nhiều phản hồi tốt từ khách hàng
TGL có công ty mẹ là skyAce có trụ sở ở Tokyo và một công ty anh chị là công ty Prima có trụ sở tại Đà Nẵng
2 Các sản phẩm của công ty
2.1. Website
Trang 8Cung cấp giải pháp hoàn chỉnh từ thiết kế, lập trình và tư vấn tối ưu hóa website Đặc biệt có thể tích hợp các ứng dụng VR/ livestream/ đấu giá bán hàng ngay trên website thương mại để tăng tương tác và hiệu quả kinh doanh của khách hàng.
2.2. App
Bao gồm Smartphone App và PC App Đặc trưng nổi bật của TGL chính là sẵn sàng xây dựng nhanh chóng bản demo trước cho khách hàng phê duyệt Điều này đã giúp chúng tôi luôn cung cấp các giải pháp phát triển app theo đúng yêu cầu chất lượng mong muốn của khách hàng.
Trang 92.3. Hệ thống
Các dịch vụ liên quan đến Business system, Ec system, dịch vụ Cloud
migration (chuyển môi trường on-premises qua Cloud(AWS, GCP, Azure), dịch vụ Serverless (sử dụng hệ thống AWS, GCP, Azure)
2.4. Cad business
Ứng dụng ngôn ngữ C++/C# để tạo ra các commands trong bản vẽ thiết kế nhà ở, kiến trúc và cơ khí Tư vấn và hiệu chỉnh các tính năng bản vẽ CAD theo yêu cầu riêng biệt của từng khách hành nhằm tối ưu hóa năng suất và hiệu quả làm việc công ty khách hàng.
2.5. Công nghệ mới
Trang 10Với lợi thế là đội ngữ nhân sự trẻ, tràn đầy nhiệt huyết và tư duy đầu vào cao, chúng tôi luôn sẵn sàng nghiên cứu và áp dụng các công nghệ mới nhất hiện nay vào phát triển dự án như AI, Machine Learning, VR, Outsystem
2.6. Bảo trì nâng cấp
Thêm chức năng, sửa chữa cho các hệ thống theo yêu cầu của khách hàng.
Tư vấn giải pháp nâng cấp hệ thống web, phần mềm hiện có nhằm tối ưu hiệu suất kinh doanh.
Trang 11CHƯƠNG 2: Nội dung thực tập
Đợt thực tập 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
sử dụng kiến thức về NET để tạo ra các command có thể tích hợp chạy trong các phần mềm vẽ
đồ họa, đồ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 game 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: 1 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 TGL, 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
2.1. Các công cụ làm việc
Thời gian: 2 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, thực tập sinh được hướng dẫn 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ư Microsoft
Teams - sử dụng trong làm việc nhóm, Visual Studio - một IDE rất hữu ích và phổ biến với lập trình viên, Source Tree - GUI giúp quản lý source code, Asana - quản lý tiến độ làm việc
Trang 12Ngoài ta, vì là dự án đặc thù nên lập trình viên phải tìm hiểu thêm về các công cụ
vẽ kỹ thuật liên quan, cụ thể ở đây là AutoCAD và IjCAD
Thực hiện: Thực tập sinh tiến hành tìm hiểu và sử dụng các công cụ đã được nêu
phía trên
Kết quả: Thành thạo các công cụ được sử dụng trong công ty, nắm rõ công cụ nào
được dùng khi nào và cho mục đích gì, đảm bảo quy trình làm việc trơn tru cho công ty
2.2. Tìm hiểu về các phần mềm vẽ kỹ thuật và cách thao tác với chúng thông
qua Api
Thời gian: 5 ngày
Nội dung: Tìm hiểu về 2 phần mềm vẽ kỹ thuật được chỉ định là AutoCAD và
IjCAD Học cách sử dụng 2 phần mềm này để thiết kế thử một số bản vẽ cơ bản
Ngoài ta, còn tìm hiểu CAD Api, các thao tác cơ bản tương tác với các công cụ
vẽ, …
Thực hiện: Thực tập sinh tiến hành tìm hiểu và sử dụng các công cụ đã được nêu
phía trên
Kết quả: Biết cách sử dụng cơ bản của 2 công cụ vẽ kỹ thuật, nắm được nội dung
tài liệu về lập trình command cho CAD
2.3. Tìm hiểu ngôn ngữ C# nâng cao
Thời gian: 5 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 cần lưu ý về việc lập trình command cho các phần mềm vẽ kỹ thuật
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 đối tượng cụ thể
Quản lý bộ nhớ: Thực tập sinh sẽ được hướng dẫn về cách cấp phát, quản lý bộ nhớ sao cho tối ưu, tránh rò rỉ bộ nhớ, một trong những phần rất quan trọng trong lập trình, để tối ưu hiệu năng cho sản phẩm mang lại sự hài lòng cho khách hàng
Trang 13Thực hiện: Tham gia đầy đủ tất cả các buổi training của công ty Nghiêm túc tự
giác tìm hiểu, thực hiện, hoàn thành các bài tập được giao
Kết quả: Nâng cao kỹ năng lập trình với ngôn ngữ C#, có được các kiến thức
quan trọng cho việc lập trình sau này, biết thêm nhiều quy tắc về việc trình bày code cho
dễ đọc, dễ hiểu
2.4. Lập trình command cơ bản với CAD Api và AutoCAD
Thời gian: 5 ngày Nội dung: Được mentor hướng dẫn cách thực hiện 1 task(ở đây là một command
cơ bản – command vẽ vòng tròn circle) Hiểu được cách khai báo các file các thư mục như thế nào cho đúng chuẩn, cách mà một command được gọi và thực thi, biết được một
số thao tác liên quan đến tương tác người dùng và cơ sở dữ liệu trong runntime Được memtor giao cho 1 task bài tập(ở đây là command vẽ tia - ray)
Thực hiện: Chú ý tập trung hiểu được nội dung trình bày, đưa ra thắc mắc khi gặp
phải vấn đề Nghiêm túc thực hiện bài tập được giao theo đúng tiến độ
Kết quả: Nắm được các kỹ thuật để lập trình nên một command chạy trong phần
mềm vẽ kỹ thuật
2.5. Tìm hiểu thực hiện AutoTest trên IjCAD
Thời gian: 5 ngày Nội dung: Được mentor hướng dẫn cách thực hiện một AutoTest cho một
command nào đó cho phần mềm vẽ kỹ thuật IjCad Hiểu được cách một lệnh AutoTest hoạt động, cách nó giả lập hành vi người dùng để tương tác với phần mềm vẽ kỹ thuật dựa theo kịch bản đã lập ra Được mentor giao cho 1 task bài tập thực hiện AutoTest cho command Ray
Thực hiện: Chú ý tập trung hiểu được nội dung trình bày, đưa ra thắc mắc khi
gặp phải vấn đề Nghiêm túc thực hiện bài tập được giao theo đúng tiến độ
Kết quả: Nắm được các kỹ thuật để lập trình nên một lệnh AutoTest có thể thực
hiện được
3 Thực hiện project
Trang 14Sau một tháng đượ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ề C#, CAD Api 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 các task được giao trong dự án đang được công ty thực hiện
4 Lịch làm việc
Tuần Công việc Người hướng dẫn
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
Chị Lê Bê Ly 100% Nắm rõ quy định của
công ty
2
- Tìm hiểu về các phần mềm vẽ kỹ thuật và thao tác với chúng thông qua CAD Api
Anh Xuân Nghiêm 100% Tìm hiểu nhanh
chóng và biết được cách sử dụng cơ bản của các phần mềm vẽ
kỹ thuật Biết cách giao tiếp với nó thông qua Api
3
- Tìm hiểu ngôn ngữ lập
- trình C# nâng cao
- Thực hành C#
- Làm bài test C#
Anh Xuân Nghiêm 100% Tìm hiểu nhanh
chóng và nắm được các nội dung được truyền đạt, hoàn
Trang 15thành tốt các bài tập được giao
4
- Tìm hiểu về cách tạo ra
một command cơ bản
- Thực hành tạo ra một
command được giao
Anh Xuân Nghiêm 100% Tìm hiểu nhanh
chóng và nắm được các nội dung được truyền đạt, hoàn thành tốt các bài tập được giao
5
- Tìm hiểu về cách thực
hiện AutoTest cho một
command
- Thực hành viết
AutoTest cho một
command
Anh Xuân Nghiêm 100% Tìm hiểu nhanh
chóng và nắm được các nội dung được truyền đạt, hoàn thành tốt các bài tập được giao
6
- Thực hiện tạo ra
command Ray trên
AutoCad
- Thực hiện tạo ra
command Ray trên
IjCad
- Thực hiện viết
AutoTest cho command
Ray trên IjCad
Anh Minh Trí 100% Hoàn thành đúng tiến
độ
7
- Thực hiện tạo ra
command Base trên
AutoCad
- Thực hiện tạo ra
command Base trên
Anh Minh Trí Hoàn thành đúng tiến
độ
Trang 16- Thực hiện viết
AutoTest cho command
Base trên IjCad
8
- Thực hiện tạo ra
command Fill trên
AutoCad
- Thực hiện tạo ra
command Fill trên
IjCad
- Thực hiện viết
AutoTest cho command
Fill trên IjCad
Anh Minh Trí Hoàn thành đúng tiến
độ
9
- Thực hiện tạo ra
command Group trên
AutoCad
- Thực hiện tạo ra
command Group trên
IjCad
- Thực hiện viết
AutoTest cho command
Group trên IjCad
Anh Minh Trí Hoàn thành đúng tiến
độ
10
- Thực hiện tạo ra
command HideObjects
trên AutoCad
- Thực hiện tạo ra
command HideObjects
trên IjCad
Anh Minh Trí Hoàn thành đúng tiến
độ
Trang 17- Thực hiện viết
AutoTest cho command
HideObjects trên IjCad
Trang 18CHƯƠNG 3: Chi tiết về project
1 Giới thiệu về dự án
1.1 Sự ra đời
Ngày nay yêu cầu vẽ kỹ thuật ngày càng trở nên phổ biến, dễ thấy nhất là trong xây dựng và cơ khí Câu hỏi được đặt ra ở đây là gì, vậy trên thị trường, ngoài AutoCad ra thì còn được bao nhiêu phần mềm có thể đáp ứng được đầy đủ các tác vụ mà các kỹ sư cần có để thực hiện xây dựng nên bản vẽ kỹ thuật, thứ 2 là liệu sau này việc các công ty phát triển nên các phần mềm vẽ kỹ thuật khác cho các lĩnh vực khác liệu có dễ dàng hay không hay vẫn phải phụ thuộc vào AutoCad
để phát triển nên.
Sứ mệnh của công ty là tạo ra một sản phẩm mà ở đó có thể cung cấp một
bộ khung hoàn chỉnh cho các phần mềm vẽ kỹ thuật, cung cấp hầu như là đầy đủ các lệnh vẽ cơ bản hiện nay, ngoài ra còn có nhiều document và các phương thức
để các công ty sau này khi mua lại có thể dễ đàng phát triển theo lĩnh vực mà mình mong muốn Xóa bỏ đi vị thế độc tôn của AutoCad khi mà license của nó cũng không phải là rẻ.
1.2 Mục tiêu
Trong vòng 5 năm, đội ngũ phát triển cần phải hoàn thành sản phẩm với chất lượng tốt nhất để có thể đưa ra thị trường thương mại hóa, bước sang giai đoạn bảo trì.
2 Kế hoạch
Để thực hiện dự án, công ty chia team CAD thành nhiều team đảm nhận nhiều mảng khác nhau của dự án, có thể nêu lên 2 mảng chính thứ nhất là xây dựng khung vẽ và thứ 2 là xây dựng các command Ở đây vì được ứng tuyển vào
Trang 19nhóm thực hiện command nên em chỉ đề cập đến kế hoạch làm việc ở team làm command.
Trong quá trình phát triển phần mềm, mỗi năm, bên phía công ty mẹ sẽ đưa
ra một danh sách các command cần được thực hiện trong năm Việc của team là phân loại các command theo độ khó, ước lượng thời gian và phân chia cho các thành viên thực hiện.
Một command được coi như là hoàn thành nếu đã trải qua các giai đoạn:
Thực hiện trên AutoCAD
Thực hiện trên IjCAD
Self-check
Cross-review
Bàn giao cho tetster và fix bug nếu có
Thực hiện AutoTest trên IjCad
Project lead review
CHƯƠNG 4: Tài liệu tham khảo
For TGL: https://tgl-sol.com/
For C#: https://www.w3schools.com/cs/index.php
For Net: https://docs.microsoft.com/en-us/aspnet/core/?view=aspnetcore-6.0
For AutoCad: https://knowledge.autodesk.com/support/autocad/learn
For IjCad: https://www.ijcad.jp/