BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC DÂN LẬP KỸ THUẬT CÔNG NGHỆ
KHOA CÔNG NGH Ệ THÔNG TIN
= = = = = =
H
LUẬN VĂN TỐT NGHIỆP
C
ĐỀ TÀI:
H
U
TE
XÂY DỰNG HỆ THỐNG HỖ TRỢ
TRA CỨU LỖI LẬP TRÌNH
GVHD : NGUY ỄN CHÁNH THÀNH
SVTH : NGUY ỄN DUY HÒA– MSSV: 10102062
VÕ ĐỨC HIỀN– MSSV: 10102056
LỚP : 01CNPM
Thaønh phoá Hoà Chí Minh, Thaùng 01 - 2006
LỜI CẢM ƠN
Luận văn tốt nghiệp là một trong những sự kiện
quan trong đ
ời người , và ngày hôm nay chúng emã đ
hoàn thành được điều ấy. Và điều mà chúng em muốn nói
đến đầu tiên là lời chân thành cảm ơn sâu sắc đến bậc
thầy cô, nhất là tất cả thầy cô giáo trường Đại Học
Kỹ thuật Công Nghệ, đặc biệt là đội ngũ thầy cô giáo
khoa Công Nghệ Thông Tin đã tận tình dạy dỗ, truyền
đạt những kiến thức vô cùng quý báo để cho chúng em
H
có thể hoàn thành được đề án tốt nghiệp như ngày hôm
nay.
C
Và đặc biệt cảm ơn đến thầy Nguyễn Chánh Thành,
người đã tận tình hướng dẫn chúng em thực hiện tốt đề
TE
tài này.
Và cũng xin gởi lời cảm ơn đến các bạn, những
người đã có những gớp ý chân thành và quý giá trong
quá trình thực hiện đề tài này.
U
Dù có nhiều nổ lực trong quá trình hiện th ực đề
lần đầu tiên nên cũng khó tránh khỏi
H
tài, nhưng ở
những vương mắc và sai sót. Chúng em rất mong nhận
được những ý kiến đóng góp, và sự hướng dẫn chân tình
của quý thầy cô.
Xin chân thành cảm ơn.
TP .HCM, Tháng 1 / 2006
MỤC LỤC
Chương I: GIỚI THIỆU VỂ ĐỀ TÀI1
I. Giới thiệu1
II.Chức năng1
H
U
TE
C
H
Chương II: KIẾN THỨC MÔI TRƯỜNG PHÁT TRIỂN VÀ ADD-IN2
I. Môi trường phát triển DTE2
I.1. Đối tượng DTE2
I.2. Thêm một tham chiếu tới không gian tên EnvDTE4
I.3. Tham chiếu đối tượng DTE 5
I.4. Những đối tượng chính trong project5
I.4.1. Đối tượng Events5
I.4.2. Đối tượng BuildEvents6
I.4.3. Đối tượng CommandEvents7
I.4.4. Đối tượng TaskListEvents8
I.4.5. Đối tượng OutputWindowEvents9
I.4.6. Đối tượng Window10
I.4.7. Đối tượng OutputWindowPane10
II.
Kỷ thuật Add-In11
II.1. Tạo một đối tượng Add-in12
II.2. Các bước tạo đối tượng Add-in bằng Wizard12
II.3. Kết quả các lệnh của đối tượng Add-in14
II.4. Để phục hồi các lệnh của đối tượng Add-in tới menu14
II.5. Điều khiển đối tượng Add-In với Add-In Manager15
II.6. Để nạp một đối tượng Add-In ngay tức thì16
II.7. Chỉ định Add-in nạp lên khi môi trường khởi động16
II.8. Triệu gọi các đối tượng Add-In thông qua dòng lệnh Devenv17
II.9. Đăng ký đối tượng Add-In17
II.10.Các sự kiện chính trong Add-In project19
II.10.1. Phương thức OnConnect19
II.10.2. Phương thức OnStartupComplete21
II.10.3. Phương thức OnAddInsUpdate22
II.10.4. Phương thức OnBeginShutdown23
II.10.5. Phương thức OnDisconnection24
Chương III: KIẾN THỨC WEB SERVICE26
I. Giới thiệu về Web Service26
I.1. Vấn đề chia sẽ dữ liệu26
I.2. Giải quyết bằng phát triển các ứng dụng phân tán26
I.3. Web Service27
I.3.1. Các đặc điểm của Web service27
I.3.2. Lợi ích khi sử dụng Web service28
H
U
TE
C
H
II. Cơ sở hạ tầng Web Services28
II.1. Các chuẩn và giao thức28
II.2. Các thành phần của Web service29
II.2.1. Web service Directories29
II.2.2. Web service Discovery30
II.2.3. Web service Description30
II.2.4. Web service Wire Format30
II.3. Giao tiếp giữa Client và Web service31
III. Giao thức triệu gọi Web Services31
III.1.
HTTP-GET31
III.2.
HTTP-POST33
III.3.
SOAP33
IV. Xây dựng, triển khai và sử dụng Web Service34
IV.1.
Xây dựng Web service34
IV.2.
Triển khai Web service36
IV.2.1. Triển khai Web service bằng cách copy36
IV.2.2. Các thành phần được triển khai trong Web service37
IV.2.3. Sử dụng Web service38
IV.2.3.1 Thêm Web Reference vào ứng dụng khách(client)38
IV.2.3.2 Phát sinh lớp Proxy40
IV.2.3.3 Tạo một đối tượng của lớp Proxy41
IV.2.3.4 Truy xuất Web Service sử dụng một đối tượng proxy42
V. Bảo mật42
V.1. Authentication43
V.1.1. Anonymous Access44
V.1.2. Windows Authentication45
V.1.2.1. Role - Base Security45
V.1.2.2. Basic Authentication46
V.1.2.3. Digest Authentication46
V.1.2.4. Integrated Windows Authentication47
V.1.3. Passport Authentication47
V.1.4. Form Authentication47
V.1.4.1. Login Form48
V.1.4.2. Định dạng IIS48
V.1.4.3. Định dạng ASP.NET49
V.2. Authorization49
V.2.1. File Authorization49
V.2.2. URL Authorization50
Chương IV: PHÂN TÍCH - THIẾT KẾ - THỰC HIỆN52
I. Phân tích52
I.1. Nhiệm vụ52
I.2. Phương án52
I.2.1. Xây dựng ứng dụng Admin Website
và Web Service theo mô hình đa tầng52
I.2.2. Xây dựng Web Client theo mô hình phân tán
H
U
TE
C
H
sử dụng công nghệ Web Service54
I.2.3. Sử dụng hệ quản trị cơ sở dữ liệu SQL Server 200054
I.2.4. Ngôn ngữ sử dụng: ASP.NET54
I.2.5. Phân tích các nghiệp vụ của hệ thồng bằng ngôn ngữ UML55
I.2.6. Xây dựng add-in55
II. Thiết kế và thực hiện56
II.1. Thiết kế cơ sở dữ liệu56
II.1.1. Biểu đồ quan hệ56
II.1.2. Các bảng dữ liệu của hệ thống58
II.1.2.1. Bảng ErrorCode58
II.1.2.2. Bảng ErrorItems58
II.1.2.3. Bảng Items58
II.1.2.4. Bảng Chapters58
II.1.2.5. Bảng Parts59
II.1.2.6. Bảng Books59
II.1.2.7. Bảng Users59
II.1.3. Các StoreProcedure59
II.2. Phân tích hệ thống61
II.2.1. Sơ đồ họat động61
II.2.2 Sơ đồ tuần tự chức năng của Add-in63
II.2.3. Sơ đồ tuần tự chức năng Web Admin64
II.2.3.1. Sơ đồ tuần tự chức năng quản lý sách64
II.2.3.2. Sơ đồ tuần tự chức năng quản lý phần trong sách65
II.2.3.3. Sơ đồ tuần tự chức năng quản lý chương66
II.2.3.4. Sơ đồ tuần tự chức năng quản lý mục67
II.2.3.5. Sơ đồ tuần tự chức năng quản lý lỗi68
II.2.3.6. Sơ đồ tuần tự chức năng quản lý thêm mục vào lỗi69
II.2.3.7. Sơ đồ tuần tự chức năng quản lý chi tiết lỗi70
II.2.4. Sơ đồ tuần tự cho chức năng tìm kiếm trong Web Client71
II.3. Phần Add-In72
II.3.1. Cài đặt phần Add-in72
II.3.2. Thêm đối tượng Add-in thông qua hộp thoại Add-in Manager73
II.3.3. Hiển thị danh sách lỗi73
II.3.4. Hiển trị trang thông tin chi tiết lỗi74
II.4. Phần Web Admin75
II.4.1. Màn hình chính quản lý sách75
II.4.2. Màn hình chi tiết sách76
II.4.3. Màn hình thêm sách mới76
II.4.4. Màn hình xoá sách77
II.4.5. Màn hình chỉnh sửa sách78
II.4.6. Màn hình quản lý phần(Parts)78
II.4.7. Màn hình quản lý chương79
II.4.8. Màn hình quản lý mục80
II.4.9. Màn hình chi tiết và cập nhật nội dung mục80
II.4.10.Màn hình thêm mục mới81
II.4.11.Màn hình quản lý lỗi81
II.4.12.Màn hình chi tiết lỗi82
II.4.13.Màn hình xoá lỗi83
II.4.14.Màn hình thêm mục cho lỗi83
II.5. Phần Web Client84
II.5.1.
Màn hình tìm kiếm84
II.5.2.
Màn hình nội dung mục liên quan đến lỗi85
II.6. Phần Web Service85
II.6.1.
Tổng quát85
II.6.2.
Chi tiết các phương thức86
H
U
TE
C
H
Chương V: ĐÁNH GIÁ DỰ ÁN VÀ HƯỚNG PHÁT TRIỂN87
I.
Đánh giá87
I.1. Hoàn thành87
I.2. Chưa hoàn thành87
II.
Hướng phát triển87
MỤC LỤC HÌNH
Hình 2.1: Mô hình đối tượng tự động trên Visual Studio .NET3
H ình 2.2: Tạo Add-in project bằng trình Visual Studio Add-in Wizard12
H ình 2.3: Hộp thoại Add-In Manager15
H ình 3.1: Các thành phần của Web service giúp client xác định và gọi các
phương thức của Web service30
Hình 3.2: Thứ tự trong lớp HttpWebClientProtocol.32
H ình 3.3: Hộp thoại New Project34
H
H ình 3.4: Hộp thoại New Project35
H ình 3.5 Màn hình project Web Services35
C
H ình 3.6: Màn hình cấu hình IIS36
H ình 3.7: Hộp thoại Properties của trang web37
TE
H ình 3.8: Màn hình Add Web Reference39
H ình 3.9: Hộp thoại Add Web Reference39
H ình 3.10: Hộp thoại Add Web Reference40
H ình3.11: Màn hình hiển thị các file trong Web Services41
U
Hình 3.12: Tổng quan về bảo mật.42
H
Hình 3.13: Hộp thoại default Web Site Properties44
Hình 3.14: Hộp thoại Authentication Methods44
Hình 3.15: Mànhình Computer Management46
Hình 3.16: Access Control List50
H ình 4.1: Biểu đồ quan hệ của hệ thống56
Hình 4.2: Sơ đồ hoạt động của hệ thống61
H ình 4.3: Sơ đồ tuần tự chức năng của Add-in63
Hình 4.4: Sơ đồ tuần tự chức năng quản lý sách64
Hình 4.5: Sơ đồ tuần tự chức năng quản lý phần trong sách65
Hình 4.6: Sơ đồ tuần tự chức năng quản lý chương trong sách66
Hình 4.7: Sơ đồ tuần tự chức năng quản lý mục trong sách67
Hình 4.8: Sơ đồ tuần tự chức năng quản lý lỗi68
Hình 4.9: Sơ đồ tuần tự chức năng quản lý thêm mục vào lỗi69
Hình 4.10: Sơ đồ tuần tự chức năng quản lý chi tiết lỗi70
Hình 4.11: Sơ đồ tuần tự chức năng tìm kiếm trong Web Client71
Hình 4.12: Cài đặt hệ thống Add-in v ào Visual Studio .NET 200372
Hình 4.13: Hộp thoại Add-In Manager73
Hình 4.14: Màn hình hiển thị Tab Add-In73
Hình 4.15: Màn hình hiển thị trang chi tiết lỗi74
Hình 4.16: Màn hình quản lý sách75
Hình 4.17: Màn hình hiển thị chi tiết sách76
Hình 4.18: Màn hình thêm sách mới76
Hình 4.20: Màn hình cập nhật sách78
H
Hình 4.19: Màn hình xoá sách77
Hình 4.21: Màn hình quản lý phần trong sách78
C
Hình 4.22: Màn hình quản lý chương trong sách79
TE
Hình 4.23: Màn hình quản lý mục trong sách80
Hình 4.24: Màn hình cập nhật mục80
Hình 4.25: Màn hình thêm mục mới81
Hình 4.27: Màn hình quản lý lỗi82
U
Hình 4.28: Màn hình cập nhật lỗi82
H
Hình 4.29: Màn hình xoá lỗi83
Hình 4.30: Màn hình thêm mục vào lỗi84
Hình 4.31: Màn hình tra cứu lỗi84
Hình 4.32: Màn hình nội dung mục liên quan đến lỗi85
MỤC LỤC BẢNG
Bảng 2.1: Sự kiện và hoạt động của đối tượng BuildEvents6
Bảng 2.2: Sự kiện và hoạt động của đối tượng CommandEvents7
Bảng 2.3: Sự kiện và hoạt động của đối tượng TaskListEvents8
Bảng 2.4: Sự kiện và hoạt động của đối tượng OutputWindEvents9
Bảng 2.5: Các tuỳ chọn cho load đối tượng Add-in18
Bảng 2.6: Ý ngh ĩa của cờ CommandPreload18
Bảng 3.1: Kiểu và các giá trị của thuộc tính trong authentication43
Bảng 3.2: Chức năng phân quyền trong bảo mật Authorization51
H
Bảng 4.1: B ảng ErrorCode
Bảng 4.3: Bảng Items
TE
B ảng 4.4: Bảng Chapters
C
Bảng 4.2: Bảng ErrorItems
B ảng 4.5: Bảng Parts
B ảng 4.6: Bảng Books
B ảng 4.7: Bảng Users
U
Bảng 4.8: B ảng Các Store Procedure
H
Bảng 4.9: Chức năng các control trong màn hình quản lý sách75
Bảng 4.10: Chức năng các control trong màn hình chi tiết sách76
Bảng 4.11: Chức năng các control trong màn hình thêm sách mới77
Bảng 4.12: Chức năng các control trong màn hình xoá sách77
Bảng 4.13: Chức năng các control trong màn hình cập nhật sách78
Bảng 4.14: Chức năng các control trong màn hình quản lý phần trong sách79
Bảng 4.15: Chức năng các control trong màn hình quản lý chương trong sách79
Bảng 4.16: Chức năng các control trong màn hình quản lý mục trong sách80
Bảng 4.7: Chức năng các control trong màn hình cập nhật mục81
Bảng 4.18: Chức năng các control trong màn hình thêm mục mới82
Bảng 4.191: Chức năng các control trong màn hình quản lý lỗi82
Bảng 4.20: Chức năng các control trong màn hình cập nhật lỗi83
Bảng 4.21: Chức năng các control trong màn hình xoá lỗi83
Bảng 4.22: Chức năng các control trong màn hình thêm mục vào lỗi84
Bảng 4.23: Chức năng các control trong màn hình tra cứu lỗi85
H
U
TE
C
H
B ảng 4.24: Chi tiết các phương thức 86
BỘ GIÁO DỤC & ĐÀO TẠO
ĐẠI HỌC DL KỸ THUẬT CÔNG NGHỆ TP.HCM
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
ĐỘC LẬP – TỰ DO – HẠNH PHÚC
144/24 Điện Biên Phủ - Q. Bình Thạnh - TPHCM
ĐT: 5120254 - 5120294
_____oOo_____
Khoa: Công Nghệ Thông Tin
Bộ môn: Công nghệ phần mềm
NHIỆM VỤ THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP
Chú ý: Sinh viên phải dán nhiệm vụ bản này vào trang thứ nhất
trong tập báo cáo đố án tốt nghiệp
Họ và tên : Nguyễn Duy Hoà
MSSV : 10102062
Võ Đức Hiền
H
MSSV : 10102056
Lớp : 01CNPM
1. Đầu đề đồ án tốt nghiệp :
C
Ngành : Công nghệ phần mềm
XÂY DỰNG HỆ THỐNG HỖ TRỢ TRA CỨU LỖI LẬP TRÌNH
U
TE
2. Nhiệm vụ :
a. Dữ liệu ban đầu:
Tìm hiểu Web Service, môi trường phát triển Visual Studio .NET 2003 và
kỹ thuật Add-in.
H
b. Nội dung:
Phân tích thiết kế các yêu cầu của hệ thống:
Phân tích và thiết kế sơ đồ hoạt động của hệ thống.
Phân tích và thiết kế sơ đồ tuần tự của các nhiệp vụ
Phân tích và thiết kế cơ sở dữ liệu
Hiện thực các yêu cầu của hệ thống:
Xây dựng phần Add-In vào môi trường phát triển của VS.NET 2003.
Xây dựng Web Server theo mô hình 3 lớp.
3. Ngày giao nhiệm vụ đồ án : 3/10/2005
: 9/1/2006
5. Họ tên giáo viên hướng dẫn : ThS. Nguyễn Chánh Thành
GIÁO VIÊN HƯỚNG DẪN CHÍNH
Nội dung và yêu cầu đồ án tốt nghiệp đã thông qua.
TP.HCM, ngày ……… tháng ……… năm 2006
(Ký và ghi rõ họ tên)
CHỦ NHIỆM KHOA
(Ký và ghi rõ họ tên)
PHẦN DÀNH CHO BỘ MÔN
Người duyệt (chấm sơ bộ): ..................................................
Đơn vị: ...................................................................................
Ngày bảo vệ: .........................................................................
H
U
TE
C
H
Điểm tổng quát: ....................................................................
Luận văn tốt nghiệp
Chương I:
Chương 1
GIỚI THIỆU VỂ ĐỀ TÀI
I. Giới thiệu
Lập trình là một công việc vô cùng khó khăn, đòi hỏi lập trình viên phải
có kiến thức rộng rãi cũng như một kỹ năng lập trình tốt để có thể bắt tay thực
hiện các dự án phần mềm. Vấn đề một người lập trình cần có 1 công cụ hỗ trợ
nhằm giải đáp các thắc mắc liên quan đến kiến thức lập trình là nhu cầu rất
thiết thực trong quá trình dạy học trong ngành Công nghệ thông tin để có thể có
công cụ nào giúp trút bớt gánh nặng trong việc lập trình. Đề tài “Xây dựng hệ
thống hỗ trợ tra cứu lỗi lập trình trong môi trường lập trình Visual Studio
.NET 2003” mà chúng tôi nhận thật sự là một điều mà không chỉ cá nhân tôi
H
mà rất nhiều các lập trình viên khác hằng mong ước.
Đề tài này xây dựng một công cụ hỗ trợ việc tra cứu lỗi trong môi
C
trường lập trình Visual Studio .NET 2003. Công cụ này bao gồm 2 phần; phần
add-in tương tác với môi trường phát triển của VS.Net 2003 (IDE), ngoài ra
TE
còn hổ trợ thêm một Web Server cho phép phần add-in truy cập tới kho dữ liệu
để nhận về thông tin liên quan đến lỗi. Ngoài ra, Web Server còn cho phép các
U
client đăng ký, truy cập và xem các thông tin về lỗi.
II. Chức năng
H
Đầu tiên, để sử dụng hệ thống hỗ trợ tra cứu lỗi lập trình, người dùng
cần cài đặt công cụ này. Hệ thống hỗ trợ tra cứu lỗi có các chức năng sau:
• Sau khi biên dịch, phần Add -in sẽ truy cập vào hệ thống Visual Studio
.NET 2003 lấy danh sách lỗi, và hiển thị trong tab OutputWindow.
• Từ tab OutputWindow này cho phép người dùng click vào hyperlink
bên cạnh mã lỗi để mang về thông tin liên quan đến lỗi đó.
• Đối với người quản trị cơ sở dữ liệu, họ có thể truy cập vào hệ thống
bằng quyền Admin và quản trị dữ liệu.
• Đối với người dùng thông thường, họ có thể đăng ký account, và truy
cập vào trang web để tra cứu các thông tin liên quan đến lỗi.
Nguyễn Duy Hoà -- V õ Đức Hiền
Trang 1
Luận văn tốt nghiệp
Chương 2
Chương II: KIẾN THỨC MÔI TRƯỜNG PHÁT TRIỂN VÀ
ADD-IN
I.
Môi trường phát triển DTE
I.1.
Đối tượng DTE
Là đối tượng trên cùng trong mô hình đối tượng tự động hoá của bộ
Visual Studio.
Tất cả các đối tượng và các thành viên trong mô hình tự động hoá Visual
Studio.NET đều dựa tr ên đối tượng DTE. Đối tượng DTE tiêu biểu cho môi
trường phát triển được tích hợp trên Visual Studio.NET và là đối tượng trên
cùng trong mô hình hệ thống cấp bậc. Nó đặt trong một không gian tên gọi là
H
EnvDTE. Tên của sản phẩm tạo ra trên .NET đối với khô ng gian tên này là
“envdte” và được chứa đựng trong một file gọi là envdte.dll. Tên thư viện có
đựng trong file gọi là dte.olb.
C
dạng như COM là Microsoft Development Environment 7.0” và được chứa
TE
Đối tượng DTE được cung cấp tới bạn qua phương thức OnConnection
mà bạn cài đặt khi tạo ra một đối tượng Add-In. Đối tượng DTE là đối tượng
H
U
Application trong Visual Basic.
Nguyễn Duy Hoà -- V õ Đức Hiền
Trang 2
Luận văn tốt nghiệp
H
U
TE
C
H
Chương 2
Hình 2.1: Mô hình đối tượng tự động trên Visual Studio .NET
Nguyễn Duy Hoà -- V õ Đức Hiền
Trang 3
Luận văn tốt nghiệp
Chương 2
Để truy cập tới các thuộc tính chỉ định trong dự án như VBProjects hay
CSharpProjects, hãy dùng cấu trúc DTE.GetObject(“VBProjects”).
Minh hoạ:
Sub DTEExample()
Dim objTextDoc As TextDocument
Dim objEP As EditPoint
'Tạo một tài liệu văn bản mới.
DTE.ItemOperations.NewFile("General\Text File")
'Lấy quyền điều khiển tới tài liệu mới.
Set objTextDoc = DTE.ActiveDocument.Object("TextDocument")
Set objEP = objTextDoc.StartPoint.CreateEditPoint
'Tạo một EditPoint và thêm đoạn văn bản.
H
objEP.Insert "A test sentence."
I.2.
C
End Sub
Thêm một tham chiếu tới không gian tên EnvDTE
TE
Dù bạn chọn đối tượng .NET assembly hay loại thư viện dạng COM tuỳ
thuộc vào project của bạn. Khi bạn tạo một đối tượng Add-in sử dụng trình
Add-In Wizard (trong bất kỳ ngôn ngữ nào) hay khi bạn tạo một macro, thì
U
một tham chiếu tới không gian tên EnvDTE được thiết lập sẵn cho bạn. Nếu
bạn muốn truy cập tới phần bên ngoài của các đối tượng tự động hoá của các
H
đối tượng macro hay các đối tượng Add-in được tạo bởi trình Add-In Wizard
thì bạn phải thiết lập bằng tay tham chiếu này.
Để thêm một tham chiếu tới không gian tên EnvDTE trong Visual C#
.NET, ta thực hiện như sau:
1.
Trong khung Solution Explorer, ạbn click phải chuột trên project
node hoặc trên Reference node và chọn AddReference.
2.
Trong hộp thoại Add Reference, click vào tab có kiểu component
mà bạn muốn, như .NET hay COM. Tìm trong danh sách các
component và ọn
ch
envdte hay Microsoft Development
Environment 7.0, sau đó click OK.
Nguyễn Duy Hoà -- V õ Đức Hiền
Trang 4
Luận văn tốt nghiệp
I.3.
Chương 2
Tham chiếu đối tượng DTE
Một khi project của bạn đã có tham chiếu tới môi trường EnvDTE, thì
bạn có thể thiết lập một tham chiếu tới đối tượng DTE theo đoạn code sau:
EnvDTE.DTE myDTE;
myDTE =
(EnvDTE.DTE)Microsoft.VisualBasic.Interaction.CreateObject("Vis
ualStudio.DTE.7.1", "");
-orEnvDTE.DTE dte;
DTE =
(EnvDTE.DTE)System.Runtime.InteropServices.Marshal.GetActiveObj
ect("VisualStudio.DTE.7.1") // Lấy một thực thể của môi //
H
trường Visual Studio .NET IDE hiện hành đang chạy.
Nhưng để truy cập vào bên trong môi trường phát triển của VS.NET
C
2003, lấy mã lỗi và hiển thị trên VS.NET 2003, chương trình cần sử dụng các
đối tượng sau đây làm việc như các macro: đối tượng Events, BuildEvents,
TaskListEvents,
OutputWindowEvents,
TE
CommandEvents,
OutputWindowPane
và
các
phương
thức
sự
kiện
Window,
OnConnect,
I.4.
U
OnStartupComplete, OnAddInsUpdate, OnBeginShutdown, OnDisconnection.
Những đối tượng chính trong project
H
I.4.1. Đối tượng Events
Cho phép truy cập tới tất cả các sự kiện trong mô hình mở rộng. Các sự
kiện này cũng có thể được phơi bày từ các đối tượng chỉ định bên trong mô
hình mở rộng DTE.
DTE
Events
Nhận xét:
Mô hình tự động hoá chứa đựng một đối tượng sự kiện gốc Events mà
các clients cùng loại được viết ở bất kì ngôn ngữ nào cũng có thể tham chiếu
tới các sự kiện tự động hoá. Các công cụ IDE , các loại project khác nhau, ... có
thể thêm các sự kiện bổ sung tới đối tượng Events mà chúng chỉ định.
Nguyễn Duy Hoà -- V õ Đức Hiền
Trang 5
Luận văn tốt nghiệp
Chương 2
Minh hoạ:
Public Module Module1
Dim WithEvents bldevents As BuildEvents
Dim applicationObject As EnvDTE.DTE
Sub EventsExample()
Dim addInInstance As EnvDTE.AddIn
applicationObject = CType(Application, EnvDTE.DTE)
bldevents = CType(applicationObject.Events.BuildEvents,
EnvDTE.BuildEvents)
End Sub
H
Private Sub bldevents_OnBuildDone(ByVal Scope As
EnvDTE.vsBuildScope,
ByVal Action As EnvDTE.vsBuildAction) Handles
bldevents.OnBuildDone
MsgBox("Build complete")
End Sub
End Module
I.4.2. Đối tượng BuildEvents
DTE
TE
Events
C
Cung cấp các sự kiện cho giải pháp tạo dựng.
BuildEvents
Thuộc tính:
U
public BuildEvents BuildEvents {get;}
Trả về đối tượng BuildEvents, cung cấp các sự kiện cho các giải pháp
H
xây dựng.
Các sự kiện:
Sự kiện
OnBuildBegin
Hoạt động
Xuất hiện trước khi solution xây dựng, trước khi
dự án bắt đầu xây dựng
OnBuildDone
Xuất hiện sau khi một solution hoàn tất quá
trình xây dựng.
OnBuildProjConfigBegin
Xuất hiện khi việc định hình một dự án bắt đầu.
OnBuildProjConfigDone
Xuất hiện khi việc định hình một dự án kết thúc.
Bảng 2.1: Sự kiện và hoạt động của đối tượng BuildEvents
Nguyễn Duy Hoà -- V õ Đức Hiền
Trang 6
Luận văn tốt nghiệp
Chương 2
I.4.3. Đối tượng CommandEvents
Cung cấp các sự kiện dòng lệnh cho các client tự động hoá.
DTE
Events
CommandEvents
Thuộc tính:
public CommandEvents CommandEvents(
string Guid,
int ID
)
{get;}
Tham số:
H
Guid: được yêu cầu. Đây là GUID cho nhóm lệnh. Nếu Guid là
về
một đối tượng
C
Null hoặc Nothing, thì CommandEvents trả
CommandEvents tượng trưng cho tất cả các lệnh trong môi trường.
TE
ID: được yêu cầu. Một chỉ mục trong nhóm lệnh tương ứng với
lệnh cụ thể. Nếu ID là Null hay Nothing, thì CommandEvents trả về một đối
tượng CommandEvents tượng trưng cho tất cả các lệnh trong nhóm.
Giá trị trả về:
U
Một đối tượng CommandEvents.
H
Các sự kiện:
Sự kiện
Hoạt động
AfterExecute
Xuất hiện sau khi một lệnh thực thi
BeforeExecute
Xuất hiện trước khi một lệnh thực
thi
Bảng 2.2: Sự kiện và hoạt động của đối tượng CommandEvents
Nhận xét:
Đối tượng CommandEvents được trả về bởi thuộc tính
CommandEvents của đối tượng Events.
Minh hoạ:
Public WithEvents
CommandEvents As
EnvDTE.CommandEvents
Nguyễn Duy Hoà -- V õ Đức Hiền
Trang 7
Luận văn tốt nghiệp
Chương 2
Public Sub CommandEvents_AfterExecute(ByVal Guid As String,
ByVal ID As
Integer, ByVal CustomIn As Object, ByVal CustomOut As Object)
Handles
CommandEvents.AfterExecute
MsgBox("test")
End Sub
I.4.4. Đối tượng TaskListEvents
Cung cấp các sự kiện cho các thay đổi tới danh sách tác vụ.
DTE
Events
TaskListEvents
H
Thuộc tính:
public TaskListEvents TaskListEvents(
{get;}
Tham số:
TE
)
C
string Filter
Filter: tuỳ chọn. Đây là tên của danh mục tác vụ. Nếu Filter được
hỗ trợ, thì đối tượng TaskListEvents chỉ cung cấp các sự kiện cho danh mục
U
đó. Nếu Filter không được hỗ trợ một giá trị danh mục hợp lệ, thì thuộc tính
TastListEvents bị hỏng.
H
Giá trị trả về:
Một đối tượng TaskListEvents.
Các sự kiện:
Sự kiện
Hoạt động
TaskAdded
Xuất hiện khi một tác vụ mới được thêm tới Task List.
TaskModified
Xuất hiện khi một tác vụ trong Task List được sửa đổi.
TaskNavigated Xuất hiện lập tức trước khi bạn điều hướng tới nguồn của
một tác vụ trong Task List.
TaskRemoved
Xuất hiện khi một tác vụ bị loại bỏ khỏi Task List.
Bảng 2.3: Sự kiện và hoạt động của đối tượng TaskListEvents
Ghi chú:
Đối tượng TaskListEvents được trả về bởi DTE.Events.
Nguyễn Duy Hoà -- V õ Đức Hiền
Trang 8
- Xem thêm -