HUTECH
B GIÁO DC VÀ ÀO TO
TRNG I HC DÂN LP K THUT CÔNG NGH
KHOA CÔNG NGH THÔNG TIN
= = =
= = =
LUN VN TT NGHIP
TÀI:
XÂY DNG H THNG H TR
TRA CU LI LP TRÌNH
GVHD : NGUY N CHÁNH THÀNH
SVTH : NGUY N DUY HÒA – MSSV: 10102062
VÕ C HIN – MSSV: 10102056
LP : 01CNPM
Thaønh phoá Hoà Chí Minh, Thaùng 01 - 2006
HUTECH
LI CM N
Lun vn tt nghip là mt trong nhng s kin
quan trong đi ngi , và ngày hôm nay chúng em đã
hoàn thành đc điu y. Và điu mà chúng em mun nói
đn đu tiên là li chân thành cm n sâu sc đn bc
thy cô, nht là tt c thy cô giáo trng i Hc
K thut Công Ngh, đc bit là đi ng thy cô giáo
khoa Công Ngh Thông Tin đã tn tình dy d, truyn
đt nhng kin thc vô cùng quý báo đ cho chúng em
có th hoàn thành đc đ án tt nghip nh ngày hôm
nay.
Và đc bit cm n đn thy Nguyn Chánh Thành,
ngi đã tn tình hng dn chúng em thc hin tt đ
tài này.
Và cng xin gi li cm n đn các bn, nhng
ngi đã có nhng gp ý chân thành và quý giá trong
quá trình thc hin đ tài này.
Dù có nhiu n lc trong quá trình hin th c đ
tài, nhng ln đu tiên nên cng khó tránh khi
nhng vng mc và sai sót. Chúng em rt mong nhn
đc nhng ý kin đóng góp, và s hng dn chân tình
ca quý thy cô.
Xin chân thành cm n.
TP .HCM, Tháng 1 / 2006
HUTECH
MC LC
Chng I: GII THIU V TÀI1
I. Gii thiu1
II.Chc nng1
Chng II: KIN THC MÔI TRNG PHÁT TRIN VÀ ADD-IN2
I. Môi trng phát trin DTE2
I.1. i tng DTE2
I.2. Thêm mt tham chiu ti không gian tên EnvDTE4
I.3. Tham chiu đi tng DTE 5
I.4. Nhng đi tng chính trong project5
I.4.1. i tng Events5
I.4.2. i tng BuildEvents6
I.4.3. i tng CommandEvents7
I.4.4. i tng TaskListEvents8
I.4.5. i tng OutputWindowEvents9
I.4.6. i tng Window10
I.4.7. i tng OutputWindowPane10
II. K thut Add-In11
II.1. To mt đi tng Add-in12
II.2. Các bc to đi tng Add-in bng Wizard12
II.3. Kt qu các lnh ca đi tng Add-in14
II.4. phc hi các lnh ca đi tng Add-in ti menu14
II.5. iu khin đi tng Add-In vi Add-In Manager15
II.6. np mt đi tng Add-In ngay tc thì16
II.7. Ch đnh Add-in np lên khi môi trng khi đng16
II.8. Triu gi các đi tng Add-In thông qua dòng lnh Devenv17
II.9. ng ký đi tng Add-In17
II.10.Các s kin chính trong Add-In project19
II.10.1. Phng thc OnConnect19
II.10.2. Phng thc OnStartupComplete21
II.10.3. Phng thc OnAddInsUpdate22
II.10.4. Phng thc OnBeginShutdown23
II.10.5. Phng thc OnDisconnection24
Chng III: KIN THC WEB SERVICE26
I. Gii thiu v Web Service26
I.1. Vn đ chia s d liu26
I.2. Gii quyt bng phát trin các ng dng phân tán26
I.3. Web Service27
I.3.1. Các đc đim ca Web service27
I.3.2. Li ích khi s dng Web service28
HUTECH
II. C s h tng Web Services28
II.1. Các chun và giao thc28
II.2. Các thành phn ca 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 tip gia Client và Web service31
III. Giao thc triu gi Web Services31
III.1. HTTP-GET31
III.2. HTTP-POST33
III.3. SOAP33
IV. Xây dng, trin khai và s dng Web Service34
IV.1. Xây dng Web service34
IV.2. Trin khai Web service36
IV.2.1. Trin khai Web service bng cách copy36
IV.2.2. Các thành phn đc trin khai trong Web service37
IV.2.3. S dng Web service38
IV.2.3.1 Thêm Web Reference vào ng dng khách(client)38
IV.2.3.2 Phát sinh lp Proxy40
IV.2.3.3 To mt đi tng ca lp Proxy41
IV.2.3.4 Truy xut Web Service s dng mt đi tng proxy42
V. Bo mt42
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 dng IIS48
V.1.4.3. nh dng ASP.NET49
V.2. Authorization49
V.2.1. File Authorization49
V.2.2. URL Authorization50
Chng IV: PHÂN TÍCH - THIT K - THC HIN52
I. Phân tích52
I.1. Nhim v52
I.2. Phng án52
I.2.1. Xây dng ng dng Admin Website
và Web Service theo mô hình đa tng52
I.2.2. Xây dng Web Client theo mô hình phân tán
HUTECH
s dng công ngh Web Service54
I.2.3. S dng h qun tr c s d liu SQL Server 200054
I.2.4. Ngôn ng s dng: ASP.NET54
I.2.5. Phân tích các nghip v ca h thng bng ngôn ng UML55
I.2.6. Xây dng add-in55
II. Thit k và thc hin56
II.1. Thit k c s d liu56
II.1.1. Biu đ quan h56
II.1.2. Các bng d liu ca h thng58
II.1.2.1. Bng ErrorCode58
II.1.2.2. Bng ErrorItems58
II.1.2.3. Bng Items58
II.1.2.4. Bng Chapters58
II.1.2.5. Bng Parts59
II.1.2.6. Bng Books59
II.1.2.7. Bng Users59
II.1.3. Các StoreProcedure59
II.2. Phân tích h thng61
II.2.1. S đ hat đng61
II.2.2 S đ tun t chc nng ca Add-in63
II.2.3. S đ tun t chc nng Web Admin64
II.2.3.1. S đ tun t chc nng qun lý sách64
II.2.3.2. S đ tun t chc nng qun lý phn trong sách65
II.2.3.3. S đ tun t chc nng qun lý chng66
II.2.3.4. S đ tun t chc nng qun lý mc67
II.2.3.5. S đ tun t chc nng qun lý li68
II.2.3.6. S đ tun t chc nng qun lý thêm mc vào li69
II.2.3.7. S đ tun t chc nng qun lý chi tit li70
II.2.4. S đ tun t cho chc nng tìm kim trong Web Client71
II.3. Phn Add-In72
II.3.1. Cài đt phn Add-in72
II.3.2. Thêm đi tng Add-in thông qua hp thoi Add-in Manager73
II.3.3. Hin th danh sách li73
II.3.4. Hin tr trang thông tin chi tit li74
II.4. Phn Web Admin75
II.4.1. Màn hình chính qun lý sách75
II.4.2. Màn hình chi tit sách76
II.4.3. Màn hình thêm sách mi76
II.4.4. Màn hình xoá sách77
II.4.5. Màn hình chnh sa sách78
II.4.6. Màn hình qun lý phn(Parts)78
II.4.7. Màn hình qun lý chng79
II.4.8. Màn hình qun lý mc80
II.4.9. Màn hình chi tit và cp nht ni dung mc80
II.4.10.Màn hình thêm m
c mi81
II.4.11.Màn hình qun lý li81
HUTECH
II.4.12.Màn hình chi tit li82
II.4.13.Màn hình xoá li83
II.4.14.Màn hình thêm mc cho li83
II.5. Phn Web Client84
II.5.1. Màn hình tìm kim84
II.5.2. Màn hình ni dung mc liên quan đn li85
II.6. Phn Web Service85
II.6.1. Tng quát85
II.6.2. Chi tit các phng thc86
Chng V: ÁNH GIÁ D ÁN VÀ HNG PHÁT TRIN87
I. ánh giá87
I.1. Hoàn thành87
I.2. Cha hoàn thành87
II. Hng phát trin87
HUTECH
MC LC HÌNH
Hình 2.1: Mô hình đi tng t đng trên Visual Studio .NET3
H ình 2.2: To Add-in project bng trình Visual Studio Add-in Wizard12
H ình 2.3: Hp thoi Add-In Manager15
H ình 3.1: Các thành phn ca Web service giúp client xác đnh và gi các
phng thc ca Web service30
Hình 3.2: Th t trong lp HttpWebClientProtocol.32
H ình 3.3: Hp thoi New Project34
H ình 3.4: Hp thoi New Project35
H ình 3.5 Màn hình project Web Services35
H ình 3.6: Màn hình cu hình IIS36
H ình 3.7: Hp thoi Properties ca trang web37
H ình 3.8: Màn hình Add Web Reference39
H ình 3.9: Hp thoi Add Web Reference39
H ình 3.10: Hp thoi Add Web Reference40
H ình3.11: Màn hình hin th các file trong Web Services41
Hình 3.12: Tng quan v bo mt.42
Hình 3.13: Hp thoi default Web Site Properties44
Hình 3.14: Hp thoi Authentication Methods44
Hình 3.15: Mànhình Computer Management46
Hình 3.16: Access Control List50
H ình 4.1: Biu đ quan h ca h thng56
Hình 4.2: S đ hot đng ca h thng61
H ình 4.3: S đ tun t chc nng ca Add-in63
Hình 4.4: S đ tun t chc nng qun lý sách64
Hình 4.5: S đ tun t chc nng qun lý phn trong sách65
Hình 4.6: S đ tun t chc nng qun lý chng trong sách66
Hình 4.7: S đ tun t chc nng qun lý mc trong sách67
Hình 4.8: S đ tun t chc nng qun lý li68
HUTECH
Hình 4.9: S đ tun t chc nng qun lý thêm mc vào li69
Hình 4.10: S đ tun t chc nng qun lý chi tit li70
Hình 4.11: S đ tun t chc nng tìm kim trong Web Client71
Hình 4.12: Cài đt h thng Add-in v ào Visual Studio .NET 200372
Hình 4.13: Hp thoi Add-In Manager73
Hình 4.14: Màn hình hin th Tab Add-In73
Hình 4.15: Màn hình hin th trang chi tit li74
Hình 4.16: Màn hình qun lý sách75
Hình 4.17: Màn hình hin th chi tit sách76
Hình 4.18: Màn hình thêm sách mi76
Hình 4.19: Màn hình xoá sách77
Hình 4.20: Màn hình cp nht sách78
Hình 4.21: Màn hình qun lý phn trong sách78
Hình 4.22: Màn hình qun lý chng trong sách79
Hình 4.23: Màn hình qun lý mc trong sách80
Hình 4.24: Màn hình cp nht mc80
Hình 4.25: Màn hình thêm mc mi81
Hình 4.27: Màn hình qun lý li82
Hình 4.28: Màn hình cp nht li82
Hình 4.29: Màn hình xoá li83
Hình 4.30: Màn hình thêm mc vào li84
Hình 4.31: Màn hình tra cu li84
Hình 4.32: Màn hình ni dung mc liên quan đn li85
HUTECH
MC LC BNG
Bng 2.1: S kin và hot đng ca đi tng BuildEvents6
Bng 2.2: S kin và hot đng ca đi tng CommandEvents7
Bng 2.3: S kin và hot đng ca đi tng TaskListEvents8
Bng 2.4: S kin và hot đng ca đi tng OutputWindEvents9
Bng 2.5: Các tu chn cho load đi tng Add-in18
Bng 2.6: Ý ngh a ca c CommandPreload18
Bng 3.1: Kiu và các giá tr ca thuc tính trong authentication43
Bng 3.2: Chc nng phân quyn trong bo mt Authorization51
Bng 4.1: B ng ErrorCode
Bng 4.2: Bng ErrorItems
Bng 4.3: Bng Items
B ng 4.4: Bng Chapters
B ng 4.5: Bng Parts
B ng 4.6: Bng Books
B ng 4.7: Bng Users
Bng 4.8: B ng Các Store Procedure
Bng 4.9: Chc nng các control trong màn hình qun lý sách75
Bng 4.10: Chc nng các control trong màn hình chi tit sách76
Bng 4.11: Chc nng các control trong màn hình thêm sách mi77
Bng 4.12: Chc nng các control trong màn hình xoá sách77
Bng 4.13: Chc nng các control trong màn hình cp nht sách78
Bng 4.14: Chc nng các control trong màn hình qun lý phn trong sách79
Bng 4.15: Chc nng các control trong màn hình qun lý chng trong sách79
Bng 4.16: Chc nng các control trong màn hình qun lý mc trong sách80
Bng 4.7: Chc nng các control trong màn hình cp nht mc81
Bng 4.18: Chc nng các control trong màn hình thêm mc mi82
Bng 4.191: Chc nng các control trong màn hình qun lý li82
Bng 4.20: Chc nng các control trong màn hình cp nht li83
HUTECH
Bng 4.21: Chc nng các control trong màn hình xoá li83
Bng 4.22: Chc nng các control trong màn hình thêm mc vào li84
Bng 4.23: Chc nng các control trong màn hình tra cu li85
B ng 4.24: Chi tit các phng thc 86
HUTECH
B GIÁO DC & ÀO TO CNG HÒA XÃ HI CH NGHA VIT NAM
I HC DL K THUT CÔNG NGH TP.HCM C LP – T DO – HNH PHÚC
144/24 in Biên Ph - Q. Bình Thnh - TPHCM _____oOo_____
T: 5120254 - 5120294
Khoa: Công Ngh Thông Tin
B môn: Công ngh phn mm
NHIM V THC HIN ÁN TT NGHIP
Chú ý: Sinh viên phi dán nhim v bn này vào trang th nht
trong tp báo cáo đ án tt nghip
H và tên : Nguyn Duy Hoà MSSV : 10102062
Võ c Hin MSSV : 10102056
Ngành :
Công ngh phn mm Lp : 01CNPM
1. u đ đ án tt nghip :
XÂY DNG H THNG H TR TRA CU LI LP TRÌNH
2. Nhim v :
a. D liu ban đu:
Tìm hiu Web Service, môi trng phát trin Visual Studio .NET 2003 và
k thut Add-in.
b. Ni dung:
Phân tích thit k các yêu cu ca h thng:
Phân tích và thit k s đ hot đng ca h thng.
Phân tích và thit k s đ tun t ca các nhip v
Phân tích và thit k c s d liu
Hin thc các yêu cu ca h thng:
Xây d
ng phn Add-In vào môi trng phát trin ca VS.NET 2003.
Xây dng Web Server theo mô hình 3 lp.
3. Ngày giao nhim v đ án : 3/10/2005
: 9/1/2006
5. H tên giáo viên hng dn : ThS. Nguyn Chánh Thành
HUTECH
Ni dung và yêu cu đ án tt nghip đã thông qua. GIÁO VIÊN HNG DN CHÍNH
TP.HCM, ngày ……… tháng ……… nm 2006 (Ký và ghi rõ h tên)
CH NHIM KHOA
(Ký và ghi rõ h tên)
PHN DÀNH CHO B MÔN
Ngi duyt (chm s b):
n v:
Ngày bo v:
im tng quát:
HUTECH
Lun vn tt nghip Chng 1
Nguyn Duy Hoà V õ c Hin Trang 1
Chng I: GII THIU V TÀI
I. Gii thiu
Lp trình là mt công vic vô cùng khó khn, đòi hi lp trình viên phi
có kin thc rng rãi cng nh mt k nng lp trình tt đ có th bt tay thc
hin các d án phn mm. Vn đ mt ngi lp trình cn có 1 công c h tr
nhm gii đáp các thc mc liên quan đn kin thc lp trình là nhu cu rt
thit thc trong quá trình dy hc trong ngành Công ngh thông tin đ có th có
công c nào giúp trút bt gánh nng trong vic lp trình. tài “Xây dng h
thng h tr tra cu li lp trình trong môi trng lp trình Visual Studio
.NET 2003” mà chúng tôi nhn tht s là mt điu mà không ch cá nhân tôi
mà rt nhiu các lp trình viên khác hng mong c.
tài này xây dng mt công c h tr vic tra cu li trong môi
trng lp trình Visual Studio .NET 2003. Công c này bao gm 2 phn; phn
add-in tng tác vi môi trng phát trin ca VS.Net 2003 (IDE), ngoài ra
còn h tr thêm mt Web Server cho phép phn add-in truy cp ti kho d liu
đ nhn v thông tin liên quan đn li. Ngoài ra, Web Server còn cho phép các
client đng ký, truy cp và xem các thông tin v li.
II. Chc nng
u tiên, đ s dng h thng h tr tra cu li lp trình, ngi dùng
cn cài đt công c này. H thng h tr tra cu li có các chc nng sau:
• Sau khi biên dch, phn Add -in s truy cp vào h thng Visual Studio
.NET 2003 ly danh sách li, và hin th trong tab OutputWindow.
• T tab OutputWindow này cho phép ngi dùng click vào hyperlink
bên cnh mã li đ mang v thông tin liên quan đn li đó.
• i vi ngi qun tr c s d liu, h có th truy cp vào h thng
bng quyn Admin và qun tr d liu.
• i vi ngi dùng thông thng, h có th đng ký account, và truy
cp vào trang web đ tra cu các thông tin liên quan đn li.
HUTECH
Lun vn tt nghip Chng 2
Nguyn Duy Hoà V õ c Hin Trang 2
Chng II: KIN THC MÔI TRNG PHÁT TRIN VÀ
ADD-IN
I. Môi trng phát trin DTE
I.1. i tng DTE
Là đi tng trên cùng trong mô hình đi tng t đng hoá ca b
Visual Studio.
Tt c các đi tng và các thành viên trong mô hình t đng hoá Visual
Studio.NET đu da trên đi tng DTE. i tng DTE tiêu biu cho môi
trng phát trin đc tích hp trên Visual Studio.NET và là đi tng trên
cùng trong mô hình h thng cp bc. Nó đt trong mt không gian tên gi là
EnvDTE. Tên ca sn phm to ra trên .NET đi vi khô ng gian tên này là
“envdte” và đc cha đng trong mt file gi là envdte.dll. Tên th vin có
dng nh COM là Microsoft Development Environment 7.0” và đc cha
đng trong file gi là dte.olb.
i tng DTE đc cung cp ti bn qua phng thc OnConnection
mà bn cài đt khi to ra mt đi tng Add-In. i tng DTE là đi tng
Application trong Visual Basic.
HUTECH
Lun vn tt nghip Chng 2
Nguyn Duy Hoà V õ c Hin Trang 3
Hình 2.1: Mô hình đi tng t đng trên Visual Studio .NET
HUTECH
Lun vn tt nghip Chng 2
Nguyn Duy Hoà V õ c Hin Trang 4
truy cp ti các thuc tính ch đnh trong d án nh VBProjects hay
CSharpProjects, hãy dùng cu trúc DTE.GetObject(“VBProjects”).
Minh ho:
Sub DTEExample()
Dim objTextDoc As TextDocument
Dim objEP As EditPoint
'To mt tài liu vn bn mi.
DTE
'Ly quyn điu khin ti tài liu mi.
.ItemOperations.NewFile("General\Text File")
Set objTextDoc = DTE
Set objEP = objTextDoc.StartPoint.CreateEditPoint
.ActiveDocument.Object("TextDocument")
'To mt EditPoint và thêm đon vn bn.
objEP.Insert "A test sentence."
End Sub
I.2. Thêm mt tham chiu ti không gian tên EnvDTE
Dù bn chn đi tng .NET assembly hay loi th vin dng COM tu
thuc vào project ca bn. Khi bn to mt đi tng Add-in s dng trình
Add-In Wizard (trong bt k ngôn ng nào) hay khi bn to mt macro, thì
mt tham chiu ti không gian tên EnvDTE đc thit lp sn cho bn. Nu
bn mun truy cp ti phn bên ngoài ca các đi tng t đng hoá ca các
đi tng macro hay các đi tng Add-in đc to bi trình Add-In Wizard
thì bn phi thit lp bng tay tham chiu này.
thêm mt tham chiu ti không gian tên EnvDTE trong Visual C#
.NET, ta thc hin nh sau:
1. Trong khung Solution Explorer, bn click phi chut trên project
node hoc trên Reference node và chn AddReference.
2. Trong hp thoi Add Reference, click vào tab có kiu component
mà bn mun, nh .NET hay COM. Tìm trong danh sách các
component và chn envdte hay Microsoft Development
Environment 7.0, sau đó click OK.
HUTECH
Lun vn tt nghip Chng 2
Nguyn Duy Hoà V õ c Hin Trang 5
I.3. Tham chiu đi tng DTE
Mt khi project ca bn đã có tham chiu ti môi trng EnvDTE, thì
bn có th thit lp mt tham chiu ti đi tng DTE theo đon code sau:
EnvDTE.DTE myDTE;
myDTE =
(EnvDTE.DTE)Microsoft.VisualBasic.Interaction.CreateObject("Vis
ualStudio.DTE.7.1", "");
-or-
EnvDTE.DTE dte;
DTE =
(EnvDTE.DTE)System.Runtime.InteropServices.Marshal.GetActiveObj
ect("VisualStudio.DTE.7.1") // Ly mt thc th ca môi //
trng Visual Studio .NET IDE hin hành đang chy.
Nhng đ truy cp vào bên trong môi trng phát trin ca VS.NET
2003, ly mã li và hin th trên VS.NET 2003, chng trình cn s dng các
đi tng sau đây làm vic nh các macro: đi tng Events, BuildEvents,
CommandEvents, TaskListEvents, OutputWindowEvents, Window,
OutputWindowPane và các phng thc s kin OnConnect,
OnStartupComplete, OnAddInsUpdate, OnBeginShutdown, OnDisconnection.
I.4. Nhng đi tng chính trong project
I.4.1. i tng Events
Cho phép truy cp ti tt c các s kin trong mô hình m rng. Các s
kin này cng có th đc phi bày t các đi tng ch đnh bên trong mô
hình m rng DTE.
DTE
Events
Nhn xét:
Mô hình t đng hoá cha đng mt đi tng s kin gc Events mà
các clients cùng loi đc vit bt kì ngôn ng nào cng có th tham chiu
ti các s kin t đng hoá. Các công c IDE , các loi project khác nhau, có
th thêm các s kin b sung ti đi tng Events mà chúng ch đnh.
HUTECH
Lun vn tt nghip Chng 2
Nguyn Duy Hoà V õ c Hin Trang 6
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
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 tng BuildEvents
Cung cp các s kin cho gii pháp to dng.
DTE
Events
BuildEvents
Thuc tính:
public BuildEvents BuildEvents {get;}
Tr v đi tng BuildEvents, cung cp các s kin cho các gii pháp
xây dng.
Các s kin:
S kin
Hot đng
OnBuildBegin
Xut hin trc khi solution xây dng, trc khi
d án bt đu xây dng
OnBuildDone
Xut hin sau khi mt solution hoàn tt quá
trình xây dng.
OnBuildProjConfigBegin
Xut hin khi vic đnh hình mt d án bt đu.
OnBuildProjConfigDone
Xut hin khi vic đnh hình mt d án kt thúc.
Bng 2.1: S kin và hot đng ca đi tng BuildEvents
HUTECH
Lun vn tt nghip Chng 2
Nguyn Duy Hoà V õ c Hin Trang 7
I.4.3. i tng CommandEvents
Cung cp các s kin dòng lnh cho các client t đng hoá.
DTE
Events
CommandEvents
Thuc tính:
public CommandEvents CommandEvents(
string Guid,
int ID
) {get;}
Tham s:
Guid: đc yêu cu. ây là GUID cho nhóm lnh. Nu Guid là
Null hoc Nothing, thì CommandEvents tr v mt đi tng
CommandEvents tng trng cho tt c các lnh trong môi trng.
ID: đc yêu cu. Mt ch mc trong nhóm lnh tng ng vi
lnh c th. Nu ID là Null hay Nothing, thì CommandEvents tr v mt đi
tng CommandEvents tng trng cho tt c các lnh trong nhóm.
Giá tr tr v:
Mt đi tng CommandEvents.
Các s kin:
S kin
Hot đng
AfterExecute
Xut hin sau khi mt lnh thc thi
BeforeExecute
Xut hin trc khi mt lnh thc
thi
Bng 2.2: S kin và hot đng ca đi tng CommandEvents
Nhn xét:
i tng CommandEvents đc tr v bi thuc tính
CommandEvents ca đi tng Events.
Minh ho:
<System.ContextStaticAttribute()> Public WithEvents
CommandEvents As
EnvDTE.CommandEvents
HUTECH
Lun vn tt nghip Chng 2
Nguyn Duy Hoà V õ c Hin Trang 8
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 tng TaskListEvents
Cung cp các s kin cho các thay đi ti danh sách tác v.
DTE
Events
TaskListEvents
Thuc tính:
public TaskListEvents TaskListEvents(
string Filter
) {get;}
Tham s:
Filter: tu chn. ây là tên ca danh mc tác v. Nu Filter đc
h tr, thì đi tng TaskListEvents ch cung cp các s kin cho danh mc
đó. Nu Filter không đc h tr mt giá tr danh mc hp l, thì thuc tính
TastListEvents b hng.
Giá tr tr v:
Mt đi tng TaskListEvents.
Các s kin:
S kin
Hot đng
TaskAdded
Xut hin khi mt tác v mi đc thêm ti Task List.
TaskModified
Xut hin khi mt tác v trong Task List đc sa đi.
TaskNavigated
Xut hin lp tc trc khi bn điu hng ti ngun ca
mt tác v trong Task List.
TaskRemoved
Xut hin khi mt tác v b loi b khi Task List.
Bng 2.3: S kin và hot đng ca đi tng TaskListEvents
Ghi chú:
i tng TaskListEvents đc tr v bi DTE.Events.
HUTECH
Lun vn tt nghip Chng 2
Nguyn Duy Hoà V õ c Hin Trang 9
I.4.5. i tng OutputWindowEvents
Cung cp các thay đi ti ca s Output.
DTE
Events
OutputWindowEvents
Thuc tính:
public OutputWindowEvents OutputWindowEvents(
string Pane
) {get;}
Tham s:
Pane: tu chn. ây là tên ca mt ca s kt qu Output. Nu
Pane đc h tr, thì đi tng OutputWindowEvents ch cung cp các s
kin cho khung đó.
Giá tr tr v:
Khung không cn phi tn ti khi đi tng
OutputWindowEvents đc to. Nu khung đc to bt k lúc nào thì các
s kin s đc t đng cung cp cho nó.
Các s kin
S kin
Hot đng
PaneAdded
Xut hin khi mt khung ca s Output mi đc to
PaneClearing
Xut hin khi tt c vn bn trong khung ca s Output b xoá
PaneUpdated
Xut hin khi vn bn mi đc thêm ti mt khung trong ca
s Output.
Bng 2.4: S kin và hot đng ca đi tng OutputWindEvents
Ghi chú:
i tng OutputWindowEvents đc tr v bi DTE.Events.
HUTECH
Lun vn tt nghip Chng 2
Nguyn Duy Hoà V õ c Hin Trang 10
I.4.6. i tng Window
i tng Window hin th mt ca s trong môi trng.
DTE
Windows
Window
Thuc tính:
public Window Window {get;}
Giá tr tr v:
Mt đi tng Window.
Minh ho:
Sub WindowExample()
Dim objTW As TextWindow
Dim objPane As TextPane
Dim objStart As TextPoint
objTW = ActiveWindow.Object
objPane = objTW.ActivePane
MsgBox("The active pane is " & Str(objPane.Height) & " lines
high and " & Str(objPane.Width) & " columns wide.")
objStart = objPane.StartPoint
MsgBox("It begins at line " & Str(objStart.Line) & ", column
" & Str(objStart.LineCharOffset) & ".")
objPane.Window.Close()
End Sub
I.4.7. i tng OutputWindowPane
Hin th mt khung trong ca s Output.
DTE
Windows
Window
OutputWindow
OutputWindowPanes
OutputWindowPane
Ghi chú:
Ca s Output hin th kt qu dng vn bn. Ca s Output có th có
mt hay nhiu khung, đc hin th bi đi tng OutputWindowPane. Mi
công c IDE s dng mt khung ca s output khác nhau. Các khung đc
HUTECH
Lun vn tt nghip Chng 2
Nguyn Duy Hoà V õ c Hin Trang 11
chn vi mt hp x xung ti đnh ca ca s. Chng hn, quá trình build
errors thì đi vi khung “Build Errors”, trong khi mi công c lnh bên ngoài đi
vi khung ca s output riêng bit ca nó.
Minh ho:
Sub OutputWindowPaneExample()
' Create a tool window handle for the Output window.
Dim win As Window =
DTE.Windows.Item(EnvDTE.Constants.vsWindowKindOutput)
' Create handles to the Output window and its panes.
Dim OW As OutputWindow = win.Object
Dim OWp As OutputWindowPane
' Add a new pane to the Output window.
OWp = OW.OutputWindowPanes.Add("A New Pane")
' Add a line of text to the new pane.
OWp.OutputString("Some Text")
End Sub
II. K thut Add-In
to mt công c cho mt nhim v hoc đ to mt công c đ giúp
nhng lp trình viên khác to ra các phn mn ca h, bn có th s dng mô
hình vi k thut t đng trên Visual Studio .NET. mô hình vi k thut t
đng, đc bit đn trong phiên bn trc ca Visual Studio .NET nh mô
hình có kh nng m rng, là mt giao din lp trình cho phép bn truy cp ti
các th tc bên di có chy môi trng phát trin đc tích hp, cho phép
hiu chnh, thao tác và t đng hoá nó. Chng hn, bn có th to các d án và
các mc lc d án mt cách lp trình hay t đng hoá vic xây dng mt d án
và các tin trình trin khai d án.
Chú ý:
Kh nng m rng là kh nng cho phép phát trin và m rng
chc nng ca IDE. K thut t đng hoá nói đn mã đc to ra theo thao tác
ca user và các công c mà t đng hoá các tác v trong môi trng và chy
IDE theo cách đc lp trình.
Bn có th truy cp ti mô hình t đng hoá thông qua các macro trên
VS.NET (VSMacros), bng cách to các m rng cho IDE dc gi là Add-in,
hay bng cách cài đt mt mc mi hoc các Add Project wizard . Các Add-
in đc biên dch thành các app mà có th thao tác vi môi trng làm vic và
các tác v t đng hoá. Các Add -in có th đc triu gi theo mt trong các
HUTECH
Lun vn tt nghip Chng 2
Nguyn Duy Hoà V õ c Hin Trang 12
cách khác nhau, bao gm Add-in Manager, toolbar command hay các nút, các
dòng lnh, hay thông qua các s kin nh khi đng IDE.
Trong phn h tr ti mô hình đi tng chung đc cung cp bi
Visual Studio .NET ti tt c các ngôn ng lp trình , các công c và các gói
ca nó, riêng vi các ngôn ng lp trình trên Visual Studio .NET cng có th
cung cp các b sung k thut riêng ca chúng ti mô hình đi tng t đng
hoá nhm h tr các đc đim riêng bit và các thành phn. Tt yu bn có th
to mt đi tng Add-in mà làm vic rt tt vi b t k ngôn ng nào trên
Visual Studio .NET, hay đi vi ngôn ng nào đc ghép vào đ cung cp
nhng đim đc bit ca mt ngôn ng riêng bit, chng hn VB hay VC++.
II.1. To mt đi tng Add-in
Trình Add-in Wizard cho phép to mt đi tng Add-in vi đy đ các
khung chc nng mà có th chy ngay sau khi bn hoàn tt nó. Sau khi trình
Add-in Wizard to mt b khung c bn, bn có th thêm code ti nó và hiu
chnh nó.
Chú ý: các đi tng dc to trong VS.NET 2003 s không làm vic
chính xác trong VS.NET 2002.
Bn có th to mt macro đ truy cp ti mô hình t đng hoá trên VS
nh mt s la chn cho vic to ra mt đi tng Add-in.
II.2. Các bc to đi tng Add-in bng Wizard
H ình 2.2: To Add-in project bng tr ình Visual Studio Add-in Wizard
HUTECH
Lun vn tt nghip Chng 2
Nguyn Duy Hoà V õ c Hin Trang 13
Trình Add-in Wizard cho phép bn cung cp mt tên hin th và mô t
cho đi tng Add-in, c hai xut hin trong hp thoi Add-In Manager. Bn
có th chn đ cho trình Wizard to mã mà cho phép thêm mt lnh ti menu
Tools đ load và triu gi đi tng Add-in. Khi trình Wizard hoàn tt, bn có
đc môt project mi vi mt môđun đn gin đ cài đt đi tng Add-in.
Bn cng có đc setup project đ to ra file .msi mà có th đc dùng đ cài
đt đi tng Add-in trên h thng khác (hay đ cp nht vic đng ký ca đi
tng Add-in trên máy trin khai mà đôi khi là cn thit đi vi nhng gì mà
bn làm vi đi tng Add-in ca bn).
Các bc thc hin:
1. To mt VS Add-In project mi. Bn có th tìm thy project này t
mc Extensibility Projects bên di Other Projects
2. Chn mt ngôn ng t khung Select a Programming Language.
iu này cho phép bn chn mt ngôn ng đi vi đi tng Add-in
đc to ra.
3. Chn mt hoc nhiu ng dng t khung Select an Application
Host. iu này cho phép bn chn các ng dng mà bn cng mun
chy đi tng Add-in sau khi to.
4. Nhp vào tên và mô t cho đi tng Add-in ca bn trong khung
Enter a Name and Description. Tên này s đc hin th trong
danh sách Available Add-Ins ca hp thoi Add-In Manager và cho
các user bit đc đi tng Add-in làm gì, làm nh th nào, và hn
th na.
5. Trong khung Choose Add-in Options, hãy ch đnh nhng gì mà
bn mun đi tng Add-in xut hin trong menu Tools, khi nào bn
mun đi tng Add-in xut hin, và nhng gì mà đi tng s cho
phép đi vi các đi tng khác hoc không. iu này cho phép bn
ch đnh các tu chn theo thói quen chc chn cho đi tng Add-in
ca bn.
6. Trong khung Choosing Help About Information, hãy ch đnh
nhng gì bn mun v mt hp thông tin Help About, và nu th,