Trong khung Solution Explorer, bn click ph i chu t trên project node ho c trên Reference node và ch n AddReference.. Trong h p tho i Add Reference, click vào tab có ki u component mà bn
Trang 2H U
H
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
có th hoàn thành đ c đ án t t nghi p nh ngày hôm nay
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 đ tài này
Trang 3Ch 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
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
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
Trang 4H U
H
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
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
Trang 5H U
H
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.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.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
Trang 6H U
H
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
Trang 7H U
H
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 ình 3.4: H p tho i New Project35
H ình 3.5 Màn hình project Web Services35
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
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
Hình 3.12: T ng quan v b o m t.42
Hình 3.13: H p tho i default Web Site Properties44
Hình 3.14: H p tho i Authentication Methods44
Trang 9B 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
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
Trang 11Chú ý: 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
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
Trang 12H U
H
(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 :
i m t ng quát:
Trang 13th 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 nhn th t s là m t đi u mà không ch cá nhân tôi
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
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 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 client đ ng ký, truy c p và xem các thông tin v l i
II Ch c n ng
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 dch, 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
Trang 14T 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à
EnvDTE Tên ca 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ó
d ng nh COM là Microsoft Development Environment 7.0” và đ c ch a
đ ng trong file g i là dte.olb
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
Application trong Visual Basic.
Trang 16Dim objTextDoc As TextDocument
Dim objEP As EditPoint
'T o m t tài li u v n b n m i.
DTE
'L y quy n đi u khi n t i tài li u m i.
.ItemOperations.NewFile("General\Text File")
Set objEP = objTextDoc.StartPoint.CreateEditPoint
.ActiveDocument.Object("TextDocument")
'T o m t EditPoint và thêm đo n v n b n.
objEP.Insert "A test sentence."
End Sub
I.2 Thêm m t tham chi u t i không gian tên EnvDTE
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ì
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
đ 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à bn mu n, 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
Trang 17H U
H
I.3 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:
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
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,
CommandEvents, TaskListEvents, OutputWindowEvents, Window, OutputWindowPane và các ph ng th c s ki n OnConnect,
OnStartupComplete, OnAddInsUpdate, OnBeginShutdown, OnDisconnection
I.4 Nh ng đ i t ng chính trong project
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 loi đ 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
Trang 18H U
H
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)
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
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
Trang 19Thu c tính:
public CommandEvents CommandEvents(
string Guid, int ID
) {get;}
Tham s :
Guid: đ c yêu c u ây là GUID cho nhóm l nh N u Guid là
Null ho c Nothing, thì CommandEvents tr v m t đ i t ng
CommandEvents t ng tr ng cho t t c các l nh trong môi tr ng
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
Trang 20Filter: 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
đó N u Filter không đ c h tr m t giá tr danh m c h p l , thì thu c tính
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
Trang 21Khung không c n ph i t n t i khi đ i t ng
OutputWindowEvents đ c t o N u khung đ c t o b t k lúc nào thì các
s ki n s đ c t đ ng cung c p cho nó
Các s ki n
PaneAdded Xu t hi n khi m t khung c a s Output m i đ c t o
PaneClearing Xu t hi n khi t t c v n b n trong khung c a s Output b xoá
PaneUpdated Xu t hi n khi v n b n m i đ c thêm t i m t khung trong c a
s Output
B ng 2.4: S ki n và ho t đ ng c a đ i t ng OutputWindEvents
Ghi chú:
i t ng OutputWindowEvents đ c tr v b i DTE.Events
Trang 22Dim objTW As TextWindow
Dim objPane As TextPane
Dim objStart As TextPoint
MsgBox("It begins at line " & Str(objStart.Line) & ", column
" & Str(objStart.LineCharOffset) & ".")
Trang 23H U
H
ch n v i m t h p x xu ng t i đ nh c a c a s Ch ng h n, quá trình build errors thì đi v i khung “Build Errors”, trong khi m i công c l nh bên ngoài đi
v i khung c a s output riêng bi t c a 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 thu t Add-In
t o m t công c cho m t nhi m v ho c đ t o m t công c đ giúp
nh ng l p trình viên khác t o ra các ph n m n c a h , b n có th s d ng mô hình v i k thu t t đ ng trên Visual Studio NET mô hình v i k thu t t
đ ng, đ c bi t đ n trong phiên b n tr c c a Visual Studio NET nh mô hình có kh n ng m r ng, là m t giao di n l p trình cho phép b n truy c p t i các th t c bên d i có ch y môi tr ng phát tri n đ c tích h p, cho phép
hi u ch nh, thao tác và t đ ng hoá nó Ch ng h n, b n có th t o các d án và các m c l c d án m t cách l p trình hay t đ ng hoá vi c xây d ng m t d án
và các ti n trình tri n khai d án
Chú ý: Kh n ng m r ng là kh n ng cho phép phát tri n và m r ng
ch c n ng c a IDE K thu t t đ ng hoá nói đ n mã đ c t o ra theo thao tác
c a user và các công c mà t đ ng hoá các tác v trong môi tr ng và ch y IDE theo cách đ c l p trình
B n có th truy c p t i mô hình t đ ng hoá thông qua các macro trên
VS.NET (VSMacros), b ng cách t o các m r ng cho IDE dc g i là Add-in,
hay b ng cách cài đ t m t m c m i ho c các Add Project wizard Các
Add-in đ c biên d ch thành các app mà có th thao tác v i môi tr ng làm vi c và các tác v t đ ng hoá Các Add -in có th đ c tri u g i theo m t trong các
Trang 24H U
H
cách khác nhau, bao g m Add-in Manager, toolbar command hay các nút, các
dòng l nh, hay thông qua các s ki n nh kh i đ ng IDE
Trong phn h tr t i mô hình đ i t ng chung đ c cung c p b i Visual Studio NET t i t t c các ngôn ng l p trình , các công c và các gói
c a nó, riêng v i các ngôn ng l p trình trên Visual Studio NET c ng có th cung c p các b sung k thu t riêng c a chúng t i mô hình đ i t ng t đ ng hoá nh m h tr các đ c đi m riêng bi t và các thành ph n T t y u b n có th
t o m t đ i t ng Add-in mà làm vic r t t t v i b t k ngôn ng nào trên Visual Studio NET, hay đi v i ngôn ng nào đ c ghép vào đ cung c p
nh ng đi m đ c bi t c a m t ngôn ng riêng bi t, ch ng h n VB hay VC++
II.1 T o m t đ i t ng Add-in
Trình Add-in Wizard cho phép t o m t đ i t ng Add-in v i đ y đ các khung ch c n ng mà có th ch y ngay sau khi b n hoàn t t nó Sau khi trình Add-in Wizard t o m t b khung c b n, b n có th thêm code t i nó và hi u
II.2 Các b c t o đ i t ng Add-in b ng Wizard
o Add-in project b ng tr ình Visual Studio Add-in Wizard
Trang 25H U
H
Trình Add-in Wizard cho phép b n cung c p m t tên hi n th và mô t
cho đ i t ng Add-in, c hai xu t hi n trong h p tho i Add-In Manager B n
có th ch n đ cho trình Wizard t o mã mà cho phép thêm m t l nh t i menu
Tools đ load và tri u g i đ i t ng Add-in Khi trình Wizard hoàn t t, b n có
đ c môt project m i v i m t môđun đ n gi n đ cài đ t đ i t ng Add-in
B n c ng có đ c setup project đ t o ra file msi mà có th đ c dùng đ cài
đ t đ i t ng Add-in trên h th ng khác (hay đ c p nh t vi c đ ng ký c a đ i
t ng Add-in trên máy tri n khai mà đôi khi là c n thi t đ i v i nh ng gì mà
b n làm v i đ i t ng Add-in c a b n)
Các b c th c hi n:
1 T o m t VS Add-In project m i B n có th tìm th y project này t
m c Extensibility Projects bên d i Other Projects
2 Ch n m t ngôn ng t khung Select a Programming Language
i u này cho phép b n ch n m t ngôn ng đ i v i đ i t ng Add-in
đ c t o ra
3 Ch n m t ho c nhi u ng d ng t khung Select an Application
Host i u này cho phép b n ch n các ng d ng mà b n c ng mu n
ch y đ i t ng Add-in sau khi t o
4 Nh p vào tên và mô t cho đ i t ng Add-in c a b n trong khung
Enter a Name and Description Tên này s đ c hi n th trong
danh sách Available Add-Ins c a h p tho i Add-In Manager và cho các user bi t đ c đ i t ng Add-in làm gì, làm nh th nào, và h n
th n a
5 Trong khung Choose Add-in Options, hãy ch đ nh nh ng gì mà
b n mu n đ i t ng Add-in xu t hi n trong menu Tools, khi nào b n
mu n đ i t ng Add-in xu t hi n, và nh ng gì mà đ i t ng s cho phép đ i v i các đ i t ng khác ho c không i u này cho phép b n
ch đ nh các tu ch n theo thói quen ch c ch n cho đ i t ng Add-in
c a b n
6 Trong khung Choosing Help About Information, hãy ch đ nh
nh ng gì b n mu n v m t h p thông tin Help About, và n u th ,
Trang 26H U
H
hãy ch đ nh thông tin mà b n mu n hi n th i u này cho phép b n
t o m t c a s Help About ch a các thông tin v phiên b n, thông tin h tr , thông tin b n quy n cho đ i t ng Add-in c a b n và h n
th n a Sau 6 b c, các tu ch n mà b n đã ch n đ c hi n th trong m t trang t ng k t
7 Ch n Finish đ t o đ i t ng Add-in
Lúc này bn có đ c m t đ i t ng Add -in v i đ y đ các ch c n ng,
nh ng còn r ng
II.3 K t qu các l nh c a đ i t ng Add-in
Khi b n t o ra m t đ i t ng Add-in s d ng trình Add-in Wizard và
sau khi ch y nó, m t th c th khác c a VS.NET kh i đ ng, cho phép b n ki m tra và bãy li đ i t ng t ng k t M t ho c nhi u l nh cho đ i t ng Add -in
đ c đ t trên m t ho c nhi u menu, ch ng h n menu Tools Sau khi b n hoàn
t t b c bãy l i đ i t ng Add-in và sau đó đóng li th c th th hai c a VS.NET, thông tin v l nh s đ c l u l i
II.4 ph c h i các l nh c a đ i t ng Add-in t i menu
T bây gi , khi ch y VS.NET, các l nh c a đ i t ng Add-in s đ c
hi n th trên các menu Trình setup project s xây d ng và cài đ t nhanh h n
n u b n xác đ nh nó lo i tr môđun k t h p có th phân ph i l i khi ch y trên NET Runtime
Trang 27H U
H
II.5 i u khi n đ i t ng Add-In v i Add-In Manager
Add-In Manager là m t công c đ load và lo i b các đ i t ng Add-in trong IDE, và rt ti n đ ch đ nh các hành vi load lên c a chúng Add -In Manager li t kê t t c các đ i t ng đ c đ ng ký hi n th i S d ng Add-In Manager, b n có th load hay unload m t đ i t ng Add-In ngay t c thì, hay
ch đ nh m t đ i t ng Add-In khi môi tr ng phát tri n kh i đ ng ho c khi nó
đ c kh i đ ng thông qua m t dòng l nh, nh v i m t thao tác t o d ng
2 Ch n vào check box trong dòng Startup, và click OK
N u đ i t ng Add-in có m t giao di n (interface), thì nó s xu t hi n, hay đ i t ng Add-in có th xu t hi n nh m t nút tên toolbar hay m t l nh trên menu tùy theo b n ch n l a, đi u này ph thu c vào cách b n l p trình cho
Trang 28H U
H
đ i t ng Add-in N u đ i t ng Add-in không có m t giao di n đ h a (UI),
nó s load lên m t cách âm th m và b t đ u ch y
2 Ch n vào check box trong dòng Startup, và click OK
N u đ i t ng Add-in có m t giao di n (interface), thì nó s xu t hi n, hay đ i t ng Add-in có th xu t hi n nh m t nút tên toolbar hay m t l nh trên menu tùy theo b n ch n l a, đi u này ph thu c vào cách b n l p trình cho
đ i t ng Add-in N u đ i t ng Add-in không có m t giao di n đ h a (UI),
nó s load lên m t cách âm th m và b t đ u ch y
M o: N u b n c load m t đ i t ng mà không th đ c đ nh v thì trình Add-In Manager s thoát b đ ng ký nó đ nó không còn xu t hi n trong danh sách n a
II.7 Ch đ nh Add-in n p lên khi môi tr ng kh i đ ng
Các b c th c hi n:
1 Ch n đ i t ng Add-in t danh sách
2 Ch n ô Load at startup trong dòng Startup
L n sau khi môi tr ng kh i đ ng, thì đ i t ng Add-in s load lên n u
nó có hi u l c
Trang 29devenv /command <command>.<name>
đây, command.name là tên l nh trong đ i t ng Add-in c a b n
II.9 ng ký đ i t ng Add-In
M t khi m t đ i t ng Add-In đ c t o ra, nó ph i đ c đ ng ký nh là
m t thành ph n COM v i các b n Microsoft Windows Trình Add-in Wizard
s t đ ng th c hi n vi c đ ng ký này cho b n, nh ng n u b n không s d ng trình Add-in Wizard đ t o ra đ i Add-in, b n ph i làm đi u này b ng tay theo các b c sau:
1 M c a s dòng l nh
2 N u b n đang s d ng VB.NET hay VC#.NET, hãy đánh
regasm <name>.dll
đây, <name> là tên c a đ i t ng Add-In
N u b n s d ng VC++.NET, hãy dùng regsvr32
Sau khi m t đ i t ng Add -in đ c đ ng ký, nó đ c nh n ra b i môi
tr ng tri n khai đ c tích h p (IDE) li t kê nó trong h p tho i Add-In
Manager, bn ph i t o ra các khoá đ ng ký cho nó, nh dòng bên d i Trong vài tr ng h p, s là có ích đ bi t đ c nh ng gì mà các khoá đ ng ký
đ c gi t o b i trình Add-In Wizard Trình Add-In Wizard t o m t mã
ch ng trình th ng nh t ( progID) cho m i đ i t ng Add -in và chèn nó vào
trong ph n đ ng ký M t progID bao g m tên c a d án và theo sau là tên c a
môđun l p, nh MyProj.MyClass
Chú ý r ng HKEY_CURRENT_USER đ c dùng đ làm cho đ i t ng Add-in có hi u l c ch đ i v i user hi n th i làm cho nó có hi u l c đ i v i
t t c các user, hãy thay b ng HKEY_LOCAL_MACHINE M i ProgID ch a
đ ng c p tên/giá tr sau:
Trang 30H U
H
• FriendlyName – tu ch n Là tên xu t hi n trong danh sách các đ i
t ng Add-In có hi u l c c a trình Add-In Manager Giá tr này là
tu ch n nh ng nó có yêu c u s d ng cao
• Description – tu ch n Là m t chu i đ c hi n th bên d i c a
h p tho i Add-in Manager khi đ i t ng Add -in đ c thêm vào
Giá tr này là tu ch n nh ng nó có yêu c u s d ng cao
B ng 2.5: Các tu ch n cho load đ i t ng Add-in
• CommandPreload – tu ch n Là m t giá tr d ng Boolean cho bi t khi nào là ln đ u tiên mà Visual Studio đã kh i đ ng t khi đ i
t ng Add-in đ c đ ng ký Ch ng h n, c này cho phép b n ch
đ nh m i khi m t đ i t ng Add-in đ c load đ đ t các l nh trong các menu, và ngay sau đó nó không đ c load cho đ n khi m t user
cu i cùng s d ng m t trong các l nh này, mà sau đó load lên theo yêu c u đ i t ng Add-in trong t t c các th c th k ti p c a IDE
0 Cho bi t đ i t ng Add-in đã cài đ t các l nh c a nó
1 Cho bi t đ i t ng Add-in v n c n cài đ t các l nh
c a nó
B ng 2.6: Ý ngh a c a c CommandPreload
Trang 31• CommandLineSafe – tu ch n Cho bi t dù đ i t ng Add -in có
đ c thi t k hay không đ tránh hi n th m t giao di n ng i dùng
(UI) khi đ c tri u g i b i dòng l nh devenv
• SatelliteDllPath và SatelliteDllName – tu ch n Các m c tên và
mô t trong ph n đ ng ký có th đ c đ nh v N u giá tr c a chúng
b t đ u v i d u # và theo sau đó là m t s nguyên có th chuy n
ki u, thì giá tr d ng chu i đ c hi n th trong h p tho i Add-in
Manager là giá tr c a mã ngu n đ c ch đ nh bên trong file v tinh trung tâm DLL File v tinh trung tâm DLL này đ c xác đ nh b i
m t ho c hai m c đ ng ký có giá tr tu ch n sau :
o SatelliteDllPath – N u đ c hi n th , giá tr này là m t tên
đ ng d n đ y đ d ng chu i ch t i m t th m c, k t thúc
b i m t d u (\) Trình Add-in Manager tìm ki m file Dll v
tinh trung tâm trong khu vc b i s trùng kh p đ ng d n
ho c là th m c đ c tính tr c đ c mô t cho SatelliteDllPath
II.10 Các s ki n chính trong Add-In project
object[] custom );
Trang 32AddInInst: m t đ i t ng Add-In đ i di n cho m t th c th c a Add-In
Custom: M t m ng các bi n mà b n có th dùng đ cung c p cho d li u
b sung
Nh n xét:
OnConnect là m t ph ng th c mà khi giao di n d ng host c a nó
(IDTExtensibility2) đ c cài đ t, nó hành đ ng nh m t s ki n xu t hi n khi
m t đ i t ng Add-In đ c load i u này xu t hi n khi:
• M t user load đ i t ng Add-In thông qua h p tho i Add-In
Dim applicationObject As EnvDTE.DTE
Dim addInInstance as EnvDTE.AddIn
applicationObject = CType(application, EnvDTE.DTE)
addInInstance = CType(addInInst, EnvDTE.AddIn)
End Sub
End Class
Trang 33H U
H
II.10.2 Ph ng th c OnStartupComplete
Xu t hi n khi môi tr ng đã hoàn t t quá trình kh i đ ng
void OnStartupComplete( object[] custom );
S ki n OnStartupComplete xu t hi n khi ng d ng ch c a nó hoàn
t t ti n trình kh i đ ng c a nó, trong tr ng h p mà đ i t ng Add-In load t i lúc môi tr ng kh i đ ng N u đ i t ng Add-In không đ c load lên lúc ng
d ng load, thì s ki n OnStartupComplete không xu t hi n, ngay c khi user load đ i t ng Add-In thông qua h p tho i Add-In Manager Khi s ki n này
xu t hi n, nó xu t hi n sau s ki n OnConnection
B n có th dùng s ki n OnStartupComplete đ ch y đo n code mà
t ng tác v i ng d ng, nh ng không nên ch y cho đ n khi ng d ng k t thúc quá trình load Chng h n, n u b n mu n hi n th m t form mà cho user m t
ch n các tài li u đ t o khi chúng b t đ u ng d ng, b n có th đ t đo n mã đó bên trong th t c s ki n OnStartupComplete
Dim applicationObject As EnvDTE.DTE
Dim addInInstance as EnvDTE.AddIn
Public Sub OnStartupComplete(ByRef custom As System.Array) Implements Extensibility.IDTExtensibility2.OnStartupComplete Msgbox("IDE startup complete event occuring.")
End Sub
End Class
Trang 34OnAddInsUpdate là m t ph ng th c m à khi giao din ch c a nó
đ c cài đ t, nó ho t đ ng khi m t s ki n t o ra m t thay đ i t i danh sách
các đ i t ng Add -In trong hp tho i Add-In Manager, nh khi mt đ i
t ng đ c load hay unload
S ki n OnAddInsUpdate xu t hi n trong vài tr ng h p khác c a các
đ i t ng Add-In Ch ng h n, n u c hai đ i t ng Add -In A và B hin t i cùng đ c load, và sau đó thì đ i t ng Add -In C đ c load, thì s ki n OnAddInsUpdate xu t hi n trong các đ i t ng A và B N u C b unload thì s
Dim applicationObject As EnvDTE.DTE
Dim addInInstance as EnvDTE.AddIn
Trang 35OnBeginShutdown là m t ph ng th c mà khi giao di n ch c a nó
đ c cài đ t, nó ho t đ ng nh m t s ki n xu t hi n khi môi tr ng đang shut down
S ki n OnBeginShutdown xu t hi n khi m t ng d ng ch b t đ u
ti n trình shutdown c a nó; ngh a là khi mt ng d ng đóng trong khi đ i
t ng Add-In v n đ c load N u đ i t ng Add-in hi n t i không đ c load khi ng d ng đóng, thì s ki n OnBeginShutdown không xu t hi n Khi đi u
này x y ra thì s ki n này xu t hi n tr c s ki n OnDisConnection
Ta c ng có th dùng s ki n OnBeginShutdown đ ch y khi user đóng
m t ng d ng Ch ng h n, ta có th ch y đo n code mà l u l i d li u c a form
Trang 36);
Tham s
RemoveMode: là mt h ng s ext_dm ch đ nh cách đ i t ng Add -in
đ c load
custom: m t m ng các ki u giá tr c a bi n mà cung c p d li u b sung
i u này không đ c dùng b i Visual Studio NET
Ghi chú:
OnDisconnection là mt ph ng th c mà khi giao di n ch c a nó
đ c cài đ t, nó ho t đ ng nh m t s ki n xu t hi n khi m t đ i t ng Add-in
đ c load
M t đ i t ng Add-in có th b unload trong m t vài cách sau:
• Xoá check box tip theo t i đ i t ng Add-in trong hp tho i Add-In Manager
• óng ng d ng ch c a nó N u m t đ i t ng Add -In
đ c load và ng d ng c a nó đóng, thì sau đó đ i t ng Add-In b unload N u thu c tính loadBehavior c a đ i
t ng Add-In đ c thi t l p lúc Startup, thì nó đ c load
l i khi m t ng d ng b t đ u tr l i
• Thu c tính Connect c a đ i t ng Add-In t ng ng đ c
thi t l p False
Trang 37Dim applicationObject As EnvDTE.DTE
Dim addInInstance as EnvDTE.AddIn
Public Sub OnDisconnection(ByVal RemoveMode As
Extensibility.ext_DisconnectMode, ByRef custom As System.Array) Implements Extensibility.IDTExtensibility2.OnDisconnection Msgbox("Add-In disconnection event occuring.")
End Sub
End Class
Trang 38H U
H
Ch ng III: KI N TH C WEB SERVICES
I Gi i thi u v Web Services
I.1 V n đ chia s d li u
Các máy tính c n đ c chia s d li u v i nhau Có nhi u công vi c c n
ph i chia s d li u nh : Nh ng nhà kinh doanh c n chia s d li u v i đ i tác,
b ph n này trong công ty c n g i d li u đ n b ph n khác, các ng d ng c a
• Môi tr ng x lý d li u gi a các đ i lý trong cùng m t công ty
c n chia s d li u c a khách hàng, thông tin hoá đ n
• Tích h p các ng d ng l n nh tích h p gi a d li u v email
c a công ty v i d li u v nhân s
I.2 Gi i quy t b ng phát tri n các ng d ng phân tán
Phát trin ng d ng phân tán(Distributed application Development) là ngh thu t và k thu t đ l y d li u t máy này sang máy khác Có nhi u công ngh cho vi c xây d ng các ng d ng có th g i và nh n d li u CORBA(Common Object Request Broker Architerture), RMI(Remote Method Invocation), và DCOM(Distributed Component Object Model) Nhng công ngh này đa s đ u có các nh c đi m, và không đ c s d ng cho các môi
tr ng không đ ng nh t
DCOM đ c xây d ng d a trên COM (Component Object Model) là
m t chu n nh phân mà h u nh không th tri n khai đ c bên ngoài môi
tr ng Microsoft Windows
CORBA là m t công ngh phân tán có th ch y trên nhi u môi tr ng Tuy nhiên vì nhi u lý do, trong đó nh ng nhà phát tri n nh n th y s khó kh n trong vi c th c thi các ng d ng d a trên CORBA
Trang 39H U
H
I.3 Web Services
Web service là m t công ngh phân tán g m có nh ng đ i t ng(object)
và ph ng th c(method) có th đ c g i lên t b t k client nào thông qua giao th c HTTP Web service đ c xây d ng ch y u d a trên giao th c SOAP(Simple Object Access Protocol) đ h tr truy n thông đi p qua t ng
v n chuy n HTTP và s d ng đ nh d ng XML đ mô t d li u D li u liên
quan đ n vi c g i ph ng th c và các tham s đ c truy n đ n Web service
đ nh d ng XML s d ng giao th c SOAP trên t ng v n chuy n HTTP
I.3.1 Các đ c đi m c a Web service
• Cho phép các ng d ng giao ti p thông qua m ng LAN, intranet, và
ch y trên các h đi u hành khác nhau, đ c t o ra t các ngôn ng khác nhau
và đ c xây d ng b ng nhi u mô hình đ i t ng khác nhau
Web service giao tip b ng cách s d ng các giao th c Web chu n và các đ nh d ng d li u, nh là HTTP, XML, và SOAP(Simple Object Access Protocol) B t k nh ng h th ng nào có h tr nh ng chu n Web nh v y có
th ch y đ c Web service
Web Service có th đ c s d ng c c b nh m t ng d ng đ n l , hay
đu c nhi u ng d ng khác nhau truy xu t thông qua m ng c c b (LAN), intranet và internet B i vì Web service đ c truy xu t thông qua m t giao di n chu n, Web service cho phép các h th ng tách bi t làm vi c cùng nhau, mô hình Web service đ c l p ngôn ng , môi tr ng, n n và các mô hình đ i t ng
Trang 40H U
H
I.3.2 L i ích khi s d ng Web service
I.3.2.1 Liên k t l ng(Loosely couple)
Loose couple có ngha là m i d ch v t n t i đ c l p v i các d ch v khác hình thành nên ng d ng i u này cho phép các ph n riêng l c a ng
d ng đ c s a ch a mà không nh h ng đ n nh ng ph n không liên quan, đây là m t yêu c u th c ti n trong thi t k các ki n trúc h ng d ch v (Service
Oriented Architecture)
I.3.2.2 H tr c u trúc h ng d ch v
Web service th hi n s k t h p gi a s phát tri n d a trên d ch v (service-based development) ca các ng d ng và Web Trong mô hình SOA(Service oriented Architecture), các quy trình công vic t o nên ng d ng
đ c tách bi t đ c l p v i nhau, d dàng phân tán các d ch v
I.3.2.3 D dàng tích h p
Không gi ng nh nh ng ph ng pháp tích h p khác, Web service đang
đ c ch p nh n r ng rãi trong ngành công nghi p ph n m m S ch p nh n
r ng rãi này giúp gi m b t n i lo c a các công ty có th b “lock” v công ngh trong t ng lai Các chu n c a Web service d đ c, cho phép nh ng nhà phát tri n xem đ c chính xác nh ng gì đang x y ra trong h th ng
I.3.2.4 D truy xu t
Web service đ c phân tán trên Internet Web service s d ng giao th c
v n chuy n nh HTTP, tác đ ng đ n các ki n trúc đang có và cho phép thông
tin đ c yêu c u và nh n trong th i gian th c
II C s h t ng Web Services
II.1 Các chu n và giao th c
II.1.1 Extend Markup Language(XML):
Là n n t ng c a Web service là XML XML là ngôn ng đ nh d ng đánh
d u d li u ngày càng tr nên ph bi n T ng t nh HTML, XML d a trên các Tag Mc dù XML không thay th HTML, nó là m t đ nh d ng b sung