0

DTTX_CNTT_xay dung he thong tra cuu loi lap trinh

101 11 0
  • DTTX_CNTT_xay dung he thong tra cuu loi lap trinh

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Tài liệu liên quan

Thông tin tài liệu

Ngày đăng: 19/01/2021, 17:42

T ạo một add-in nhằm truy cập Microsoft Visual Studio .Net IDE 2003 để lấy thông tin về lỗi lập trình của người học/lậptrình viên, sau đó gọi hàm (từ ph ần webservice nêu trên) để thực[r] (1)HUTECH KHOA CÔNG NGH Ệ THÔNG TIN = = =  = = = LUẬN VĂN TỐT NGHIỆP ĐỀ TÀI: 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 (2)HUTECH Luận văn tốt nghiệp kiện quan đời người , ngày hôm chúng em hoàn thành điều Và điều mà chúng em muốn nói đến lời chân thành cảm ơn sâu sắc đến bậc thầy cô, tất thầy cô giáo trường Đại Học Kỹ thuật Công Nghệ, đặc biệt đội ngũ thầy cô giáo khoa Cơng Nghệ Thơng Tin tận tình dạy dỗ, truyền đạt kiến thức vô q báo chúng em có thể hồn thành đề án tốt nghiệp 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 tốt đề tài Và xin gởi lời cảm ơn đến bạn, người có gớp ý chân thành quý giá quá trình thực đề tài Dù có nhiều nổ lực q trình th ực đề tài, lần nên khó tránh khỏi vương mắc sai sót Chúng em mong nhận ý kiến đóng góp, hướng dẫn chân tình của quý thầy cô Xin chân thành cảm ơn (3)HUTECH Chương I: GIỚI THIỆU VỂ ĐỀ TÀI1 I Giới thiệu1 II.Chức năng1 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 tham chiếu tới không gian tên EnvDTE4 I.3 Tham chiếu đối tượng DTE I.4 Những đối tượng 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 đối tượng Add-in12 II.2 Các bước tạo đối tượng Add-in Wizard12 II.3 Kết lệnh đối tượng Add-in14 II.4 Để phục hồi lệnh đố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 đối tượng Add-In tức thì16 II.7 Chỉ định Add-in nạp lên môi trường khởi động16 II.8 Triệu gọi đố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 kiện 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 Web Service26 I.1 Vấn đề chia liệu26 I.2 Giải phát triển ứng dụng phân tán26 I.3 Web Service27 (4)HUTECH II.2 Các thành phần 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 Client 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 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 cách copy36 IV.2.2 Các thành phần triển khai 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 đối tượng lớp Proxy41 IV.2.3.4 Truy xuất Web Service sử dụng đố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 (5)HUTECH I.2.4 Ngôn ngữ sử dụng: ASP.NET54 I.2.5 Phân tích nghiệp vụ hệ thồng ngôn ngữ UML55 I.2.6 Xây dựng add-in55 II Thiết kế thực hiện56 II.1 Thiết kế sở liệu56 II.1.1 Biểu đồ quan hệ56 II.1.2 Các bảng liệu 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ơ đồ chức Add-in63 II.2.3 Sơ đồ chức Web Admin64 II.2.3.1 Sơ đồ chức quản lý sách64 II.2.3.2 Sơ đồ chức quản lý phần sách65 II.2.3.3 Sơ đồ chức quản lý chương66 II.2.3.4 Sơ đồ chức quản lý mục67 II.2.3.5 Sơ đồ chức quản lý lỗi68 II.2.3.6 Sơ đồ chức quản lý thêm mục vào lỗi69 II.2.3.7 Sơ đồ chức quản lý chi tiết lỗi70 II.2.4 Sơ đồ cho chức tìm kiếm 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 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 xố 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 cập nhật nội dung mục80 II.4.10.Màn hình thêm mục mới81 (6)HUTECH 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 phương thức86 Chương V: ĐÁNH GIÁ DỰ ÁN VÀ HƯỚNG PHÁT TRIỂN87 I Đánh giá87 (7)HUTECH Hình 2.1: Mơ hình đối tượng tự động Visual Studio NET3 H ình 2.2: Tạo Add-in project 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 Web service giúp client xác định gọi phương thức Web service30 Hình 3.2: Thứ tự 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 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ị file Web Services41 Hình 3.12: Tổng quan 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 Hình 3.15: Mànhình Computer Management46 Hình 3.16: Access Control List50 H ình 4.1: Biểu đồ quan hệ hệ thống56 Hình 4.2: Sơ đồ hoạt động hệ thống61 H ình 4.3: Sơ đồ chức Add-in63 Hình 4.4: Sơ đồ chức quản lý sách64 (8)HUTECH Hình 4.11: Sơ đồ chức tìm kiếm Web Client71 Hình 4.12: Cài đặt hệ thống Add-in v 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.19: Màn hình xố sách77 Hình 4.20: Màn hình cập nhật sách78 Hình 4.21: Màn hình quản lý phần sách78 Hình 4.22: Màn hình quản lý chương sách79 Hình 4.23: Màn hình quản lý mục 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 Hình 4.28: Màn hình cập nhật lỗi82 Hình 4.29: Màn hình xố 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 (9)HUTECH Bảng 2.1: Sự kiện hoạt động đối tượng BuildEvents6 Bảng 2.2: Sự kiện hoạt động đối tượng CommandEvents7 Bảng 2.3: Sự kiện hoạt động đối tượng TaskListEvents8 Bảng 2.4: Sự kiện hoạt động đố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ờ CommandPreload18 Bảng 3.1: Kiểu giá trị thuộc tính authentication43 Bảng 3.2: Chức phân quyền bảo mật Authorization51 Bảng 4.1: B ảng ErrorCode Bảng 4.2: Bảng ErrorItems Bảng 4.3: Bảng Items B ảng 4.4: Bảng Chapters B ảng 4.5: Bảng Parts B ảng 4.6: Bảng Books B ảng 4.7: Bảng Users Bảng 4.8: B ảng Các Store Procedure Bảng 4.9: Chức control hình quản lý sách75 Bảng 4.10: Chức control hình chi tiết sách76 Bảng 4.11: Chức control hình thêm sách mới77 Bảng 4.12: Chức control hình xố sách77 Bảng 4.13: Chức control hình cập nhật sách78 Bảng 4.14: Chức control hình quản lý phần sách79 Bảng 4.15: Chức control hình quản lý chương sách79 Bảng 4.16: Chức control hình quản lý mục sách80 Bảng 4.7: Chức control hình cập nhật mục81 (10)HUTECH (11)HUTECH BỘ GIÁO DỤC & ĐÀO TẠO CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐẠI HỌC DL KỸ THUẬT CÔNG NGHỆ TP.HCM ĐỘC LẬP – TỰ DO – HẠNH PHÚC 144/24 Điện Biên Phủ - Q Bình Thạnh - TPHCM _oOo _ ĐT: 5120254 - 5120294 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ụ vào trang thứ trong tập báo cáo đố án tốt nghiệp Họ tên : Nguyễn Duy Hoà MSSV : 10102062 Võ Đức Hiền MSSV : 10102056 Ngành : Công nghệ phần mềm Lớp : 01CNPM 1 Đầu đề đồ án tốt nghiệp : XÂY DỰNG HỆ THỐNG HỖ TRỢ TRA CỨU LỖI LẬP TRÌNH 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 kỹ thuật Add-in b Nội dung: Phân tích thiết kế yêu cầu hệ thống: Phân tích thiết kế sơ đồ hoạt động hệ thống Phân tích thiết kế sơ đồ nhiệp vụ Phân tích thiết kế sở liệu  Hiện thực yêu cầu hệ thống: Xây dựng phần Add-In vào môi trường phát triển VS.NET 2003 Xây dựng Web Server theo mơ hình lớp 3 Ngày giao nhiệm vụ đồ án : 3/10/2005 : 9/1/2006 (12)HUTECH CHỦ NHIỆM KHOA (Ký ghi rõ họ tên) PHẦN DÀNH CHO BỘ MÔN (13)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang Chương I: GIỚI THIỆU VỂ ĐỀ TÀI I Giới thiệu Lập trình cơng việc vơ khó khăn, địi hỏi lập trình viên phải có kiến thức rộng rãi kỹ lập trình tốt để bắt tay thực dự án phần mềm Vấn đề người lập trình cần có cơng cụ hỗ trợ nhằm giải đáp thắc mắc liên quan đến kiến thức lập trình nhu cầu thiết thực trình dạy học ngành Cơng nghệ thơng tin để có cơng cụ giúp trút bớt gánh nặng 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 mơi trường lập trình Visual Studio .NET 2003” mà nhận thật điều mà không cá nhân tơi mà nhiều lập trình viên khác mong ước Đề tài xây dựng công cụ hỗ trợ việc tra cứu lỗi mơi trường lập trình Visual Studio NET 2003 Cơng cụ bao gồm phần; phần add-in tương tác với mơi trường phát triển VS.Net 2003 (IDE), ngồi hổ trợ thêm Web Server cho phép phần add-in truy cập tới kho liệu để nhận thơng tin liên quan đến lỗi Ngồi ra, Web Server cho phép client đăng ký, truy cập xem thông tin lỗi II Chức Đầ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ụ Hệ thống hỗ trợ tra cứu lỗi có chức sau: • Sau biên dịch, phần Add -in truy cập vào hệ thống Visual Studio NET 2003 lấy danh sách lỗi, hiển thị tab OutputWindow • Từ tab OutputWindow cho phép người dùng click vào hyperlink bên cạnh mã lỗi để mang thông tin liên quan đến lỗi • Đối với người quản trị sở liệu, họ truy cập vào hệ thống quyền Admin quản trị liệu (14)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 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 mơ hình đối tượng tự động hoá Visual Studio Tất đối tượng thành viên mơ hình tự động hoá Visual Studio.NET dựa đối tượng DTE Đối tượng DTE tiêu biểu cho môi trường phát triển tích hợp Visual Studio.NET đối tượng mơ hình hệ thống cấp bậc Nó đặt không gian tên gọi EnvDTE Tên của sản phẩm tạo NET khô ng gian tên “envdte” chứa đựng file gọi envdte.dll Tên thư viện có dạng COM Microsoft Development Environment 7.0” chứa đựng file gọi dte.olb (15)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang (16)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang Để truy cập tới thuộc tính định dự án VBProjects hay CSharpProjects, dùng cấu trúc DTE.GetObject(“VBProjects”) Minh hoạ: Sub DTEExample() Dim objTextDoc As TextDocument Dim objEP As EditPoint 'Tạo tài liệu văn DTE 'Lấy quyền điều khiển tới tài liệu .ItemOperations.NewFile("General\Text File") Set objTextDoc = DTE Set objEP = objTextDoc.StartPoint.CreateEditPoint .ActiveDocument.Object("TextDocument") 'Tạo EditPoint thêm đoạn vă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 bạn Khi bạn tạo đối tượng Add-in sử dụng trình Add-In Wizard (trong bất kỳ ngơn ngữ nào) hay bạn tạo macro, tham chiếu tới không gian tên EnvDTE thiết lập sẵn cho bạn Nếu bạn muốn truy cập tới phần bên đối tượng tự động hoá đối tượng macro hay đối tượng Add-in tạo trình Add-In Wizard bạn phải thiết lập tay tham chiếu Để thêm tham chiếu tới không gian tên EnvDTE Visual C# NET, ta thực sau: 1 Trong khung Solution Explorer, bạn click phải chuột project node hoặc Reference node chọn AddReference (17)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang I.3 Tham chiếu đối tượng DTE Một project bạn có tham chiếu tới mơi trường EnvDTE, bạn thiết lập 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", ""); -or- EnvDTE.DTE dte; DTE = (EnvDTE.DTE)System.Runtime.InteropServices.Marshal.GetActiveObj ect("VisualStudio.DTE.7.1") // Lấy thực thể môi // trường Visual Studio NET IDE hành chạy Nhưng để truy cập vào bên môi trường phát triển VS.NET 2003, lấy mã lỗi hiển thị VS.NET 2003, chương trình cần sử dụng đối tượng sau làm việc macro: đối tượng Events, BuildEvents, CommandEvents, TaskListEvents, OutputWindowEvents, Window, OutputWindowPane phương thức kiện OnConnect, OnStartupComplete, OnAddInsUpdate, OnBeginShutdown, OnDisconnection I.4 Những đối tượng project I.4.1 Đối tượng Events Cho phép truy cập tới tất kiện mơ hình mở rộng Các kiện phơi bày từ đối tượng định bên mơ hình mở rộng DTE DTE Events Nhận xét: (18)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 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 tượng BuildEvents Cung cấp kiện cho giải pháp tạo dựng DTE Events BuildEvents Thuộc tính: public BuildEvents BuildEvents {get;} Trả đối tượng BuildEvents, cung cấp kiện cho giải pháp xây dựng Các kiện: Sự kiện Hoạt động OnBuildBegin Xuất trước solution xây dựng, trước dự án bắt đầu xây dựng OnBuildDone Xuất sau solution hồn tất q trình xây dựng OnBuildProjConfigBegin Xuất việc định hình dự án bắt đầu OnBuildProjConfigDone Xuất việc định hình dự án kết thúc (19)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang I.4.3 Đối tượng CommandEvents Cung cấp kiện dòng lệnh cho client tự động hoá DTE Events CommandEvents Thuộc tính: public CommandEvents CommandEvents( string Guid, int ID ) {get;} Tham số: Guid: yêu cầu Đây GUID cho nhóm lệnh Nếu Guid Null Nothing, CommandEvents trả đối tượng CommandEvents tượng trưng cho tất lệnh môi trường ID: yêu cầu Một mục nhóm lệnh tương ứng với lệnh cụ thể Nếu ID Null hay Nothing, CommandEvents trả đối tượng CommandEvents tượng trưng cho tất lệnh nhóm Giá trị trả về: Một đối tượng CommandEvents Các kiện: Sự kiện Hoạt động AfterExecute Xuất sau lệnh thực thi BeforeExecute Xuất trước lệnh thực thi Bảng 2.2: Sự kiện hoạt động đối tượng CommandEvents Nhận xét: Đối tượng CommandEvents trả thuộc tính CommandEvents đối tượng Events Minh hoạ: <System.ContextStaticAttribute()> Public WithEvents CommandEvents As (20)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 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 kiện cho thay đổi tới danh sách tác vụ DTE Events TaskListEvents Thuộc tính: public TaskListEvents TaskListEvents( string Filter ) {get;} Tham số: Filter: tuỳ chọn Đây tên danh mục tác vụ Nếu Filter hỗ trợ, đối tượng TaskListEvents cung cấp kiện cho danh mục đó Nếu Filter không hỗ trợ giá trị danh mục hợp lệ, thuộc tính TastListEvents bị hỏng Giá trị trả về: Một đối tượng TaskListEvents Các kiện: Sự kiện Hoạt động TaskAdded Xuất tác vụ thêm tới Task List TaskModified Xuất tác vụ Task List sửa đổi TaskNavigated Xuất trước bạn điều hướng tới nguồn một tác vụ Task List TaskRemoved Xuất tác vụ bị loại bỏ khỏi Task List Bảng 2.3: Sự kiện hoạt động đối tượng TaskListEvents Ghi chú: (21)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang I.4.5 Đối tượng OutputWindowEvents Cung cấp thay đổi tới cửa sổ Output DTE Events OutputWindowEvents Thuộc tính: public OutputWindowEvents OutputWindowEvents( string Pane ) {get;} Tham số: Pane: tuỳ chọn Đây tên cửa sổ kết Output Nếu Pane hỗ trợ, đối tượng OutputWindowEvents cung cấp kiện cho khung Giá trị trả về: Khung không cần phải tồn đối tượng OutputWindowEvents được tạo Nếu khung tạo lúc kiện tự động cung cấp cho Các kiện Sự kiện Hoạt động PaneAdded Xuất khung cửa sổ Output tạo PaneClearing Xuất tất văn khung cửa sổ Output bị xoá PaneUpdated Xuất văn thêm tới khung cửa sổ Output Bảng 2.4: Sự kiện hoạt động đối tượng OutputWindEvents Ghi chú: (22)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 10 I.4.6 Đối tượng Window Đối tượng Window hiển thị cửa sổ môi trường DTE Windows Window Thuộc tính: public Window Window {get;} Giá trị trả về: Một đối tượng 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 tượng OutputWindowPane Hiển thị khung cửa sổ Output DTE Windows Window OutputWindow OutputWindowPanes OutputWindowPane Ghi chú: (23)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 11 chọn với hộp xổ xuống đỉnh cửa sổ Chẳng hạn, trình build errors với khung “Build Errors”, cơng cụ lệnh bên ngồi với khung cửa sổ output riêng biệt 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 công cụ cho nhiệm vụ để tạo công cụ để giúp lập trình viên khác tạo phần mền họ, bạn sử dụng mơ hình với kỹ thuật tự động Visual Studio NET mơ hình với kỹ thuật tự động, biết đến phiên trước Visual Studio NET mơ hình có khả mở rộng, giao diện lập trình cho phép bạn truy cập tới thủ tục bên có chạy mơi trường phát triển tích hợp, cho phép hiệu chỉnh, thao tác tự động hố Chẳng hạn, bạn tạo dự án mục lục dự án cách lập trình hay tự động hoá việc xây dựng dự án tiến trình triển khai dự án Chú ý: Khả mở rộng khả cho phép phát triển mở rộng chức IDE Kỹ thuật tự động hố nói đến mã tạo theo thao tác user công cụ mà tự động hố tác vụ mơi trường chạy IDE theo cách lập trình (24)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 12 cách khác nhau, bao gồm Add-in Manager, toolbar command hay nút, dịng lệnh, hay thơng qua kiện khởi động IDE Trong phần hỗ trợ tới mơ hình đối tượng chung cung cấp Visual Studio NET tới tất ngơn ngữ lập trình , cơng cụ gói nó, riêng với ngơn ngữ lập trình Visual Studio NET cung cấp bổ sung kỹ thuật riêng chúng tới mơ hình đối tượng tự động hoá nhằm hỗ trợ đặc điểm riêng biệt thành phần Tất yếu bạn tạo đối tượng Add-in mà làm việc tốt với bấ t kỳ ngôn ngữ Visual Studio NET, hay ngôn ngữ ghép vào để cung cấp điểm đặc biệt ngôn ngữ riêng biệt, chẳng hạn VB hay VC++ II.1 Tạo đối tượng Add-in Trình Add-in Wizard cho phép tạo đối tượng Add-in với đầy đủ khung chức mà chạy sau bạn hồn tất Sau trình Add-in Wizard tạo khung bản, bạn thêm code tới hiệu chỉnh Chú ý: đối tượng dc tạo VS.NET 2003 không làm việc xác VS.NET 2002 Bạn tạo macro để truy cập tới mơ hình tự động hoá VS lựa chọn cho việc tạo đối tượng Add-in II.2 Các bước tạo đối tượng Add-in Wizard (25)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 13 Trình Add-in Wizard cho phép bạn cung cấp tên hiển thị mô tả cho đối tượng Add-in, hai xuất hộp thoại Add-In Manager Bạn chọn trình Wizard tạo mã mà cho phép thêm lệnh tới menu Tools để load triệu gọi đối tượng Add-in Khi trình Wizard hồn tất, bạn có mơt project với mơđun đơn giản để cài đặt đối tượng Add-in Bạn có setup project để tạo file msi mà dùng để cài đặt đối tượng Add-in hệ thống khác (hay để cập nhật việc đăng ký đối tượng Add-in máy triển khai mà đơi cần thiết mà bạn làm với đối tượng Add-in bạn) Các bước thực hiện: 1 Tạo VS Add-In project Bạn tìm thấy project từ mục Extensibility Projects bên Other Projects 2. Chọn ngôn ngữ từ khung Select a Programming Language Điều cho phép bạn chọn ngôn ngữ đối tượng Add-in tạo 3. Chọn nhiều ứng dụng từ khung Select an Application Host Điều cho phép bạn chọn ứng dụng mà bạn muốn chạy đối tượng Add-in sau tạo 4 Nhập vào tên mô tả cho đối tượng Add-in bạn khung Enter a Name and Description Tên sẽ hiển thị danh sách Available Add-Ins của hộp thoại Add-In Manager cho user biết đối tượng Add-in làm gì, làm nào, 5. Trong khung Choose Add-in Options, định mà bạn muốn đối tượng Add-in xuất menu Tools, bạn muốn đối tượng Add-in xuất hiện, mà đối tượng cho phép đối tượng khác không Điều cho phép bạn định tuỳ chọn theo thói quen chắn cho đối tượng Add-in bạn (26)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 14 hãy định thông tin mà bạn muốn hiển thị Điều cho phép bạn tạo cửa sổ Help About chứa thông tin phiên bản, thông tin hỗ trợ, thông tin quyền cho đối tượng Add-in bạn Sau bước, tuỳ chọn mà bạn chọn hiển thị trang tổng kết 7. Chọn Finish để tạo đối tượng Add-in Lúc bạn có đối tượng Add -in với đầy đủ chức năng, rỗng II.3 Kết lệnh đối tượng Add-in Khi bạn tạo đối tượng Add-in sử dụng trình Add-in Wizard sau chạy nó, thực thể khác VS.NET khởi động, cho phép bạn kiểm tra bãy lỗi đối tượng tổng kết Một nhiều lệnh cho đối tượng Add -in đặt nhiều menu, chẳng hạn menu Tools Sau bạn hoàn tất bước bãy lỗi đối tượng Add-in sau đóng lại thực thể thứ hai VS.NET, thông tin lệnh lưu lại II.4 Để phục hồi lệnh đối tượng Add-in tới menu Các bước thực hiện: 1 Xây dựng setup project trình wizard Đóng tất thực thể VS.NET Chạy file msi từ setup project 4 Khởi động lại VS.NET (27)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 15 II.5 Điều khiển đối tượng Add-In với Add-In Manager Add-In Manager công cụ để load loại bỏ đối tượng Add-in IDE, tiện để định hành vi load lên chúng Add -In Manager liệt kê tất đối tượng đăng ký thời Sử dụng Add-In Manager, bạn load hay unload đối tượng Add-In tức thì, hay định đối tượng Add-In môi trường phát triển khởi động khởi động thơng qua dịng lệnh, với thao tác tạo dựng Chỉ có đối tượng đăng ký xuất danh sách đối tượng Add-In có hiệu lực Chú ý: Bạn dùng phím TAB để di chuyển tới dịng lệnh phần Startup, thay bạn phải sử dụng tổ hợp phím ALT + S ALT + C để di chuyển tới lui vùng chọn H ình 2.3: Hộp thoại Add-In Manager Các bước thực hiện: 1 Chọn từ danh sách 2. Chọn vào check box dòng Startup, click OK (28)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 16 đối tượng Add-in Nếu đối tượng Add-in khơng có giao diện đồ họa (UI), load lên cách âm thầm bắt đầu chạy Mẹo: Nếu bạn cố load đối tượng mà định vị trình Add-In Manager sẽ bỏ đăng ký để khơng cịn xuất danh sách II.6 Để load đối tượng Add-In tức Các bước thực hiện: 1 Chọn từ danh sách 2. Chọn vào check box dòng Startup, click OK Nếu đối tượng Add-in có giao diện (interface), xuất hiện, hay đối tượng Add-in xuất nút tên toolbar hay lệnh menu tùy theo bạn chọn lựa, điều 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ó giao diện đồ họa (UI), load lên cách âm thầm bắt đầu chạy Mẹo: Nếu bạn cố load đối tượng mà khơng thể định vị trình Add-In Manager bỏ đăng ký để khơng cịn xuất danh sách II.7 Chỉ định Add-in nạp lên 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 dòng Startup (29)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 17 II.8 Triệu gọi đối tượng Add-In thơng qua dịng lệnh Devenv Thơng thường sử dụng trình Add-In Manager để khởi động đối tượng Add-in, bạn gọi đối tượng Add-in cách dùng dòng lệnh Devenv Để làm điều này, sử dụng khoá chuyển đổi /command với cấu trúc sau: devenv /command <command>.<name> Ở đây, command.name tên lệnh đối tượng Add-in bạn II.9 Đăng ký đối tượng Add-In Một đối tượng Add-In tạo ra, phải đăng ký thành phần COM với Microsoft Windows Trình Add-in Wizard tự động thực việc đăng ký cho bạn, bạn không sử dụng trình Add-in Wizard để tạo đối Add-in, bạn phải làm điều tay theo bước sau: 1 Mở cửa sổ dòng lệnh 2 Nếu bạn sử dụng VB.NET hay VC#.NET, đánh regasm <name>.dll ở đây, <name> tên đối tượng Add-In Nếu bạn sử dụng VC++.NET, dùng regsvr32 Sau đối tượng Add -in đăng ký, nhận mơi trường triển khai tích hợp (IDE) Để liệt kê hộp thoại Add-In Manager, bạn phải tạo khố đăng ký cho nó, dịng bên Trong vài trường hợp, có ích để biết mà khố đăng ký được giả tạo trình Add-In Wizard Trình Add-In Wizard tạo mã chương trình thống ( progID) cho đối tượng Add -in chèn vào phần đăng ký Một progID bao gồm tên dự án theo sau tên môđun lớp, MyProj.MyClass (30)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 18 FriendlyName – tuỳ chọn Là tên xuất danh sách đối tượng Add-In có hiệu lực trình Add-In Manager Giá trị tuỳ chọn có yêu cầu sử dụng cao • Description – tuỳ chọn Là chuỗi hiễn thị bên hợp thoại Add-in Manager đối tượng Add -in thêm vào Giá trị tuỳ chọn có u cầu sử dụng cao • LoadBehavior – tuỳ chọn Một trường bít kiểu DWORD với cờ theo sau (đối với Visual Studio, Visual Basic VSA) Các giá trị tuỳ chọn có yêu cầu sử dụng cao Cờ hiệu Giá trị Mô tả ID_UNLOADED Đối tượng Add-in không load ID_STARTUP Đối tượng Add-in nên load IDE khởi động ID_COMMAND_LINE Đối tượng Add-in nên load devenv được triệu gọi từ dịng lệnh với thành phần chuyển khố Bảng 2.5: Các tuỳ chọn cho load đối tượng Add-in CommandPreload – tuỳ chọn Là giá trị dạng Boolean cho biết lần mà Visual Studio khởi động từ đối tượng Add-in đăng ký Chẳng hạn, cờ cho phép bạn định đối tượng Add-in load để đặt lệnh menu, sau khơng đượ c load user cuối sử dụng lệnh này, mà sau load lên theo yêu cầu đối tượng Add-in tất thực thể IDE Giá trị Mô tả 0 Cho biết đối tượng Add-in cài đặt lệnh Cho biết đối tượng Add-in cần cài đặt lệnh của (31)HUTECH Nguyễn Duy Hồ V õ Đức Hiền Trang 19 Bạn đánh dấu phương thức OnConnection mà bạn cài đặt để biết với loại kết nối ext_cm_UISetup Nếu thế, bạn thực thi CommandLineSafe – tuỳ chọn Cho biết dù đối tượng Add -in có thiết kế hay không để tránh hiển thị giao diện người dùng (UI) triệu gọi dòng lệnh devenv SatelliteDllPath SatelliteDllName – tuỳ chọn Các mục tên mơ tả phần đăng ký định vị Nếu giá trị chúng bắt đầu với dấu # theo sau số ngun chuyển kiểu, giá trị dạng chuỗi hiển thị hợp thoại Add-in Manager giá trị mã nguồn định bên file vệ tinh trung tâm DLL File vệ tinh trung tâm DLL xác định hai mục đăng ký có giá trị tuỳ chọn sau : o SatelliteDllPath – Nếu hiển thị, giá trị tên đường dẫn đầy đủ dạng chuổi tới thư mục, kết thúc bởi dấu (\) Trình Add-in Manager tìm kiếm file Dll vệ tinh trung tâm khu vực trùng khớp đường dẫn của giá trị o SatelliteDllPath, mã khu vực máy cài đặt, dấu ( \), giá trị SatelliteDllName SatelliteDllName – Là giá trị dạng chuỗi chứa tên file Thư mục chứa file thư mục chứa thư viện liên kết động (DLL), hoặc thư mục tính trước mơ tả cho SatelliteDllPath II.10 Các sự kiện Add-In project II.10.1 Phương thức OnConnect Xuất đối tượng Add-In load vào môi trường void OnConnection( object Application, ext_ConnectMode ConnectMode, object AddInInst, (32)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 20 Tham số: Application: đối tượng có khả mở rộng mức cao ConnectMode: Một số ext_cm định đối tượng Add-In nạp AddInInst: một đối tượng Add-In đại diện cho thực thể Add-In Custom: Một mảng biến mà bạn dùng để cung cấp cho liệu bổ sung Nhận xét: OnConnect một phương thức mà giao diện dạng host (IDTExtensibility2) cài đặt, hành động kiện xuất đối tượng Add-In load Điều xuất khi: • Một user load đối tượng Add-In thông qua hộp thoại Add-In Manager • Một đối tượng Add-In đánh dấu bắt đầu ứng dụng chủ load • Đối tượng Connect đối tượng Add-In tương ứng thiết lập True Minh hoạ: Chú ý đoạn code làm việc Add-In project, không làm việc macro Imports Microsoft.Office.Core imports Extensibility imports System.Runtime.InteropServices Imports EnvDTE <GuidAttribute("B25D9733-A1B2-420D-8F6B-478E2B051C83"), ProgIdAttribute("MyAddin1.Connect")> _ Public Class Connect Implements Extensibility.IDTExtensibility2 Dim applicationObject As EnvDTE.DTE Dim addInInstance as EnvDTE.AddIn Public Sub OnConnection(ByVal application As Object, ByVal connectMode As Extensibility.ext_ConnectMode, ByVal addInInst As Object, ByRef custom As System.Array) Implements Extensibility.IDTExtensibility2.OnConnection applicationObject = CType(application, EnvDTE.DTE) addInInstance = CType(addInInst, EnvDTE.AddIn) End Sub (33)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 21 II.10.2 Phương thức OnStartupComplete Xuất mơi trường hồn tất q trình khởi động void OnStartupComplete( object[] custom ); Tham số: custom: mảng biến mà bạn dùng để cung cấp liệu bổ sung Ghi chú: OnStartupComplete một phương thức mà giao diện chủ (IDTExtensibility2) cài đặt, hoạt động kiện xuất môi trường kết thúc trình khởi động Sự kiện OnStartupComplete xuất ứng dụng chủ hồn tất tiến trình khởi động nó, trường hợp mà đối tượng Add-In load lúc môi trường khởi động Nếu đối tượng Add-In không load lên lúc ứng dụng load, kiện OnStartupComplete khơng xuất hiện, user load đối tượng Add-In thông qua hộp thoại Add-In Manager Khi kiện xuất hiện, xuất sau kiện OnConnection Bạn dùng kiện OnStartupComplete để chạy đoạn code mà tương tác với ứng dụng, không nên chạy ứng dụng kết thúc trình load Chẳng hạn, bạn muốn hiển thị form mà cho user chọn tài liệu để tạo chúng bắt đầu ứng dụng, bạn đặt đoạn mã bên thủ tục kiện OnStartupComplete Minh hoạ: Imports Microsoft.Office.Core imports Extensibility imports System.Runtime.InteropServices Imports EnvDTE <GuidAttribute("B25D9733-A1B2-420D-8F6B-478E2B051C83"), ProgIdAttribute("MyAddin1.Connect")> _ Public Class Connect Implements Extensibility.IDTExtensibility2 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.") (34)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 22 II.10.3 Phương thức OnAddInsUpdate Xuất đối tượng Add-in load hay unload môi trường void OnAddInsUpdate( object[] custom ); Tham số: custom: Một mảng biến mà bạn dùng để cung cấp cho liệu bổ sung Chú ý: OnAddInsUpdate một phương thức m giao diện chủ cài đặt, hoạt động kiện tạo thay đổi tới danh sách các đối tượng Add -In hộp thoại Add-In Manager, một đối tượng load hay unload Sự kiện OnAddInsUpdate xuất vài trường hợp khác đối tượng Add-In Chẳng hạn, hai đối tượng Add -In A B load, sau đối tượng Add -In C load, kiện OnAddInsUpdate xuất đối tượng A B Nếu C bị unload kiện OnAddInsUpdate lại xuất A B Minh hoạ: Imports Microsoft.Office.Core imports Extensibility imports System.Runtime.InteropServices Imports EnvDTE <GuidAttribute("B25D9733-A1B2-420D-8F6B-478E2B051C83"), ProgIdAttribute("MyAddin1.Connect")> _ Public Class Connect Implements Extensibility.IDTExtensibility2 Dim applicationObject As EnvDTE.DTE Dim addInInstance as EnvDTE.AddIn Public Sub OnAddInsUpdate(ByRef custom As System.Array) Implements Extensibility.IDTExtensibility2.OnAddInsUpdate Msgbox("Add-In update event occuring.") (35)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 23 II.10.4 Phương thức OnBeginShutdown Xuất môi trường shut down void OnBeginShutdown( object[] custom ); Tham số: custom: Một mảng biến mà bạn dùng để cung cấp cho liệu bổ sung Chú ý: OnBeginShutdown một phương thức mà giao diện chủ cài đặt, hoạt động kiện xuất môi trường shut down Sự kiện OnBeginShutdown xuất ứng dụng chủ bắt đầu tiến trình shutdown nó; nghĩa ứng dụng đóng đối tượng Add-In load Nếu đối tượng Add-in khơng load ứng dụng đóng, kiện OnBeginShutdown không xuất Khi điều xảy kiện xuất trước kiện OnDisConnection Ta cũng dùng kiện OnBeginShutdown để chạy user đóng ứng dụng Chẳng hạn, ta chạy đoạn code mà lưu lại liệu form tới file Sự kiện OnBeginShutdown xuất nhiều lần Nếu đối tượng quản lý kiện thoát khỏi thao tác shutdown mơi trường, ở lần sau môi trường bắt đầu shutdown, kiện OnBeginShutdown lại xuất Minh hoạ: Imports Microsoft.Office.Core imports Extensibility imports System.Runtime.InteropServices Imports EnvDTE <GuidAttribute("B25D9733-A1B2-420D-8F6B-478E2B051C83"), ProgIdAttribute("MyAddin1.Connect")> _ Public Class Connect Implements Extensibility.IDTExtensibility2 (36)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 24 Dim addInInstance as EnvDTE.AddIn Public Sub OnBeginShutdown(ByRef custom As System.Array) Implements Extensibility.IDTExtensibility2.OnBeginShutdown Msgbox("Shutdown event occuring.") End Sub End Class II.10.5 Phương thức OnDisconnection Xuất Add-in load từ môi trường void OnDisconnection( ext_DisconnectMode RemoveMode, object[] custom ); Tham số RemoveMode: một số ext_dm định cách đối tượng Add -in load custom: một mảng kiểu giá trị biến mà cung cấp dự liệu bổ sung Điều không dùng Visual Studio NET Ghi chú: OnDisconnection một phương thức mà giao diện chủ cài đặt, hoạt động kiện xuất đối tượng Add-in load Một đối tượng Add-in bị unload vài cách sau: • Xố check box tới đối tượng Add-in hộp thoại Add-In Manager • Đóng ứng dụng chủ Nếu đối tượng Add -In load ứng dụng đóng, sau đối tượng Add-In bị unload Nếu thuộc tính loadBehavior đối tượng Add-In thiết lập lúc Startup, đư ợc load lại ứng dụng bắt đầu trở lại (37)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 25 Minh hoạ: Imports Microsoft.Office.Core imports Extensibility imports System.Runtime.InteropServices Imports EnvDTE <GuidAttribute("B25D9733-A1B2-420D-8F6B-478E2B051C83"), ProgIdAttribute("MyAddin1.Connect")> _ Public Class Connect Implements Extensibility.IDTExtensibility2 Dim 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.") (38)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 26 Chương III: KIẾN THỨC WEB SERVICES I Giới thiệu Web Services I.1 Vấn đề chia liệu Các máy tính cần chia liệu với Có nhiều công việc cần phải chia liệu như: Những nhà kinh doanh cần chia liệu với đối tác, phận công ty cần gởi liệu đến phận khác, ứng dụng người dùng cần phải làm việc với ứng dụng người dùng khác Microsoft nhận nhiều loại ứng dụng khác chia liệu như: • Những nhà cung cấp liệu, người cung cấp liệu cho thị trường chứng khống • Mơi trường xử lý liệu đại lý công ty cần chia liệu khách hàng, thơng tin hố đơn • Tích hợp ứng dụng lớn tích hợp giũa liệu email cơng ty với liệu nhân I.2 Giải phát triển ứng dụng phân tán Phát triển ứng dụng phân tán(Distributed application Development) nghệ thuật kỹ thuật để lấy liệu từ máy sang máy khác Có nhiều cơng nghệ cho việc xây dựng ứng dụng gởi nhận liệu CORBA(Common Object Request Broker Architerture), RMI(Remote Method Invocation), DCOM(Distributed Component Object Model) Những công nghệ đa số có nhược điểm, khơng sử dụng cho môi trường không đồng DCOM xây dựng dựa COM (Component Object Model) chuẩn nhị phân mà triển khai bên ngồi mơi trường Microsoft Windows (39)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 27 I.3 Web Services Web service công nghệ phân tán gồm có đối tượng(object) phương thức(method) gọi lên từ client thông qua giao thức HTTP Web service xây d ựng chủ yếu dựa giao thức SOAP(Simple Object Access Protocol) để hổ trợ truyền thông điệp qua tầng vận chuyển HTTP sử dụng định dạng XML để mô tả liệu Dữ liệu liên quan đến việc gọi phương thức tham số truyền đến Web service định dạng XML sử dụng giao thức SOAP tầng vận chuyển HTTP I.3.1 Các đặc điểm Web service • Cho phép ứng dụng giao tiếp thông qua mạng LAN, intranet, Internet Độc lập ngơn ngữ Độc lập giao thức Độc lập Một thách thức lớn nhà phát triển tích hợp ứng dụng Tích hợp ứng dụng kết hợp nhóm nhiều ứng dụng chuyển chúng thành ứng dụng Web dễ sử dụng, chí chương trình chạy hệ điều hành khác nhau, tạo từ ngôn ngữ khác xây dựng nhiều mơ hình đối tượng khác Web service giao tiếp cách sử dụng giao thức Web chuẩn định dạng liệu, HTTP, XML, SOAP(Simple Object Access Protocol) Bất kỳ hệ thống có hỗ trợ chuẩn Web chạy Web service (40)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 28 I.3.2 Lợi ích sử dụng Web service I.3.2.1 Liên kết lỏng(Loosely couple) Loose couple có nghĩa dịch vụ tồn độc lập với dịch vụ khác hình thành nên ứng dụng Điều cho phép phần riêng lẽ ứng dụng sửa chữa mà không ảnh hưởng đến phần không liên quan, yêu cầu thực tiễn thiết kế 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ể kết hợp phát triển dựa dịch vụ (service-based development) ứng dụng Web Trong mơ hình SOA(Service oriented Architecture), quy trình cơng việc 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 dịch vụ I.3.2.3 Dễ dàng tích hợp Khơng giống phương pháp tích hợp khác, Web service chấp nhận rộng rãi ngành công nghiệp phần mềm Sự chấp nhận rộng rãi giúp giảm bớt nỗi lo công ty bị “lock” cơng nghệ tương lai Các chuẩn Web service dể đọc, cho phép nhà phát triển xem xác xảy hệ thống I.3.2.4 Dễ truy xuất Web service phân tán Internet Web service sử dụng giao thức vận chuyển HTTP, tác động đến kiến trúc có cho phép thông tin yêu cầu nhận thời gian thực II Cơ sở hạ tầng Web Services II.1 Các chuẩn giao thức II.1.1 Extend Markup Language(XML): (41)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 29 HTML dùng để mơ tả nội dung mà người xem được, XML sử dụng cho xử lý máy tính II.1.2 HyperText Tranfer Protocol(HTTP) HTTP giao thức sử dụng rộng rãi Internet Mỗi trình duyệt truy xuất trang Web, HTTP giao thức vận chuyển sử dụng HTTP hỗ trợ tốt cho giao tiếp có request response Request -Response có nghĩa yêu cầu thực hiện, phản hồi cho yêu cầu đáp lại II.1.3 Simple Object Access Protocol(SOAP) Giao thức truy xuất đối tượng đơn giản, xây dựng dựa ngôn ngữ XML, giao thức truyền nhận thông tin Web service Ở cấp độ kỹ thuật, SOAP không đưa cách chuyển liệu Chuyển liệu SOAP dựa trên phương thức HTTP-POST thêm phần mô tả liệu XML II.1.4 Web Service Description Language(WSDL) Là ngôn ngữ đánh dấu văn dựa XML dùng để mô tả Web service II.1.5 Universal Description, Discovery, and Intergration(UDDI) Thực công việc đăng ký (register), tìm kiến (find) kết hợp (bind) Web service với ứng dụng II.2 Các thành phần Web service II.2.1 Web service Directories (42)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 30 information), thông tin liên kết( binding information), kỹ thuật dịch vụ(service specifications) II.2.2 Web service Discovery Sử dụng trình này, client định vị tài liệu(document) để mô tả XML Service sử dụng WSDL Quá trình discovery hổ trợ client biết tồn Web Service II.2.3 Web service Description Thành phần cung cấp thông tin giúp client biết hoạt động thực Web Service Web Service Description tài liệu dạng XML để rỏ định dạng thơng điệp mà Web Service có thể hiểu II.2.4 Web service Wire Format Để hổ trợ việc giao tiếp hệ thống khác nhau, XML Web service sử dụng định dạng đường truyền mở(open wire formats) Các định dạng đường truyền mở giao thức hiểu hệ thống có khả hổ trợ chuẩn web chung HTTP SOAP (43)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 31 II.3 Giao tiếp Client Web service Quá trình giao tiếp client Web service tương tự việc gọi thủ tục từ xa(RPC) Client sử dụng đối tượng proxy Web service máy cục để gọi phương thức Web service Tương tác client Web Service bao gồm phần sau thực hiện: 1 Client tạo đối tượng lớp prox y Web service máy client 2 Client gọi phương thức đối tượng proxy 3 Cơ sở hạ tầng Web service máy client đồng hoá(serialize) phương thức gọi tham số vào thông điệp SOAP gởi đến Web service mạng 4 Cơ sở hạ tầng server Web service (giải đồng bộ)deserialize thông điệp SOAP tạo thực thể Web Service Sau Cơ sở hạ tầng gọi phương thức tham số(arguments) Web service 5 Web Service thực thi phương thức trả gi trị tham số xuất cho sở hạ tầng 6 Cơ sở hạ tầng đồng bộ(serialize) giá trị trả tham số vào thông điệp SOAP gởi tới client 7 Cơ sở hạ tầng client giải đồng bộ(deserialize) thông điệp SOAP chứa giá trị trả tham số gởi đến đối tượng proxy 8 Đối tượng proxy gởi giá trị trả tham số cho client III Giao thức triệu gọi Web Services III.1 HTTP-GET (44)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 32 Ví dụ: http://localhost/StockTicker1/Service1.asmx/GetName?StockSymb ol=msft Xem xét URL sau đây: Dấu chấm hỏi cho biết dạng triệu gọi HTTP-GET, tên biến được truyền cho phương thức GetName StockSymbol có giá trị là: msft Kết trả phương thức gói liệu định dạng theo ngôn ngữ XML với cấu trúc: <?xml version = “1.0”?> <[data type]>[value]</[data type]> <?xml version = “1.0”?> Ví dụ: <int>13</int> Triệu gọi phương thức Web service HTTP-GET thích hợp tất liệu truyền có dạng cặp tham số tên/giá trị(name/value pairs), có thuộc tính cần truyền, độ dài thuộc tính ngắn Triệu gọi giao thức GET dùng không quan tâm đến việc bảo mật liệu .Net Framework cung cấp lớp tên HttpGetClientProtocol để sử dụng giao thức HTTP-GET phía client (45)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 33 III.2 HTTP-POST Triệu gọi phương thức Web service giao thức HTTP-POST chủ yếu dựa vào phương thức chuyển liệu POST thẻ <form> HTML mà thường dùng Submit Dữ liệu truyền HTTP -POST có khả mã hố đóng gói đựơc số lượng liệu lớn HTTP-GET Triệu gọi giao thức HTTP-POST thích hợp có nhiều thuộc tính hay tham số cần truyền có độ dài đáng kể Xét bảo mật HTTP -POST an tồn HTTP-GET giao thức triệu gọi HTTP-POST mã hoá Giống giao thức HTTP-GET, HTTP-POAST truyền liệu dạng cặp tham số tên/giá trị(name/value pairs) .Net Framework cung cấp lớp tên HttpPostClientProtocol để sử dụng giao thức HTTP-POST phía client III.3 SOAP Chuyển liệu GET/POST HTTP chủ yếu dùng chế đặt liệu biến theo khuôn dạng name= value Dữ liệu chuyển chứa thơng tin để tự mô tả kiểu liệu, chiều dài, quan hệ với liệu khác Để mở rộng cách chuyển liệu theo giao thức HTTP, Microsoft số công ty khác IMB, Lotus…đã xây dựng giao thức truy xuất đối tượng đơn giản SOAP(Simple Object Access Protocol) SOAP sử dụng cách mô tả liệu ngơn ngữ định dạng XML để đóng gói thơng tin cần chuyển SOAP tập trung vào phục vụ cho việc chuyển tham số, liệu đối tượng SOAP hướng thay tốt cho giao thức triệu gọi đối tượng phân tán trước CORBA, RMI hay DCOM Một thông điệp SOAP chuyển thường gồm có ba phần: 1. Envelop(thơng tin gói): Chứa mơ tả gói liệu cần chuyển Các mô tả xây dựng thông qua ngôn ngữ XML (46)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 34 3. Remote Procedure Call(Thông tin gọi thủ tục từ xa): Hỗ trợ mô tả tham số lời gọi thủ tục đối tượng phân tán nhận kết trả từ đối tượng SOAP sử dụng để gởi dối tượng phức tạp lớp(class), cấu trúc(struct), dataset Một trở ngại sử dụng giao thức SOAP thông điệp dạng SOAP có chứa nhiều từ khơng cần thiết, sử dụng định dạng XML Vì vây băng thông(bandwidth) đường truyền nhỏ liệu truyền khơng lớn phức tạp sử dụng giao thức HTTP-GET hay HTTP-POST .Net Framework cung cấp lớp tên HttpSoapClientProtocol để sử dụng giao thức SOAP phía client IV Xây dựng, triển khai sử dụng Web Services IV.1 Xây dựng Web service Web Service cung cấp chức cho ứng dụng client web Để tạo Web Service, trước tiên bạn phải chọn ngơn ngữ lập trình tạo lớp để thừa kế từ System.Web.Services.WebService Mở VS.NET Chọn File->New->Project để mở hộp thoại New Project Trong hộp thoại New Project, chọn Visual C# project ô Project Types Trong ô template, chọn ASP.NET Web Service, vị trí, gõ tên vị trí Web Service http://localhost/myService, nhấn OK (47)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 35 2 Hộp thoại Create New Web xuất thư mục Web tạo H ình 3.4: Hộp thoại Create New Web Khi bạn tạo ASP.NET Web Service project, trang default thể chế độ design, file asmx tạo ra, bạn viết code để cung cấp chức cho Web Service Code lưu trong file *.asmx.cs xem file code ẩn H ình 3.4: Màn hình project Web Services 3 Chọn Click here to switch to code view để viết viết phương thức xử lý, trước phương thức phải có dịng [WebMethod] Ví dụ: [WebMethod(Description=”Add two Integer”)] Viết phương thức xử lý công hai số public void Add(int a, int b) { (48)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 36 IV.2 Triển khai Web service Khi triển khai Web service Web Server, dịch vụ(service) đưa lên Web ứng dụng client truy xuất Web service triển khai Web Server hai cách Cách thứ tạo Web Setup Project cách thứ hai copy files Web service vào Web Server Ở tìm hiểu cách triển khai thứ hai IV.2.1 Triển khai Web service cách copy 1 Copy file ứng dụng Web service vào thư mục Inetpub\wwwroot Bạn cần copy files asmx, Web.config, Global.asax vào thư mục ứng dụng file dll vào thư mục \bin Các bước thực hiện: H ình 3.6: Màn hình cấu hình IIS Cấu trúc thư mục Web service triển khai 2. Mở Internet Services Manager từ thư mục Administrative tools 3. Mở rộng nút Default Web site (49)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 37 H ình 3.7: Hộp thoại Properties trang web 5 Nhấn vào nút Create hộp thoại để định dạng thư mục ảo gốc ứng dụng Web Service Sau định dạng ứng dụng Web Service, dịch vụ Web sẵn sàng để sử dụng IV.2.2 Các thành phần triển khai Web service 1. Thư mục ứng dụng Web(Web application directory) : Đây thư mục gốc Web service Tất file Web service thể thư mục hay thư mục Cần phải định dạng thư mục ứng dụng ứng dụng Web IIS 2. File <WebService>.asmx : Đây đường dẫn URL để client truy xuất đến Web Service 3. File <WebService>.disco(tuỳ chọn): File mô tả chế discovery Web Service (50)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 38 5. Thư mục \Bin: Thư mục chứa file nhị phân Web service Nếu bạn không định nghĩalớp Web Service file asmx, assembly chứa lớp thể bên thư mục \Bin Sau triển khai Web Service Web Server, ứng dụng định vị trí Web Service cách sử dụng chế Discovery IV.2.3 Sử dụng Web service Để truy xuất Web Service từ ứng dụng client, cần phải thực bước sau đây: • Thêm Web Reference vào ứng dụng client cách tìm kiếm Web service muốn sử dụng • Phát sinh lớp Proxy Web service • Tạo đối tượng lớp proxy ứng dụng client • Truy xuất Web service cách sử dụng đối tượng proxy IV.2.3.1 Thêm Web Reference vào ứng dụng khách Để sử dụng dịch vụ Web service, trước tiên phải xác định vị trí Web service chế Discovery Muốn sử dụng Web Service, người lập trình phải biết vị trí Web service Web service có đáp ứng yêu cầu hay không Nếu dịch vụ đâu, tìm UDDI Để hổ trợ tìm kiếm Web service, Visual Studio.NET cung cấp Web Reference Web service sử dụng Project Web Reference thể cục bộ(local representation) Web Service project (51)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 39 1 Click chuột phải vào nút References cửa sổ Solution Explorer Các bước thực H ình 3.8: Màn hình Add Web Reference 2 Chọn Add Web Reference từ shortcut menu Hộp thoại Add Web Reference xuất (52)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 40 3 Trong địa hộp thoại Add Web Reference, gõ đường dẫn Web service bạn muốn sử dụng H ình 3.10: Hộp thoại Add Web Reference IV.2.3.2 Phát sinh lớp Proxy Khi nhấn vào nút Add Reference hộp thoại Add Web Reference, Visual Studio.NET tải mô tả dịch vụ đến máy cục phát sinh lớp proxy của Web service Lớp proxy Web service chứa hướng dẫn để gọi phương thức Web service Thêm vào đó, lớp proxy xếp(marshals) tham số Web service ứng dụng khách Visual Studio.NET sử dụng WSDL để tạo lớp proxy Lớp proxy mô tả file wsdl Sau thêm Web Reference đến Web service phát sinh l ớp proxy, bạn thêm tham chiếu đến lớp proxy tạo đối tượng lớp proxy ứng dụng khách (53)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 41 H ình 3.11: Màn hình hiển thị file Web Services File wsdl chứa lớp proxy phát sinh Visual Studio.NET Lớp chứa hướng dẫn để gọi phương thức Web Service IV.2.3.3 Tạo đối tượng lớp Proxy Lớp proxy phát sinh cách thêm tham chiếu đến Web service định nghĩa namespace Bạn cần phải thêm(using) namespace lớp proxy ứng dụng khách trước tạo đối tượng lớp proxy Sau thêm namespace lớp proxy ứng dụng, tạo đối tượng lớp proxy cách sử dụng toán tử new Đối tượng lớp proxy cho phép gọi phương thức Web service truy xuất kết giống phương thức khác thành phần Trong hộp thoại Add Web Reference, tên mặc định Web Service localhost, đổi tên theo ý nghĩa Web Service Ví dụ using Applicationname.ErrorService; : Tên Web Service ErrorService, cần tạo đối tượng lớp Proxy (54)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 42 IV.2.3.4 Truy xuất Web Service sử dụng đối tượng proxy Đối tượng lớp proxy chuyển đổi phương thức gọi Web Service thành thông điệp yêu cầu thông điệp phản hồi để trả giá trị mà truy xuất ứng dụng V Bảo mật Là phần NET Framework, ASP.NET có cở sở hạ tầng bảo mật vững ASP.NET xây dựng để làm việc với Microsoft Internet Information Service(IIS), Window 2000, XP, 2003 filesystem NTFS Do đó, có tích hợp chặt chẽ với chế bảo mật môi trường Vai trò bảo mật ASP.NET giới hạn có lựa chọn truy xuất đến phần trang Web phương thức sau: • Authentication: Xác nhận client Authorization: Quyết định client quyền truy xuất đến tài nguyên mà client yêu cầu (55)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 43 V.1 Authentication Authentication bước ba chức tảng để bảo mật ứng dụng Web Authentication thực cách sử dụng credentials, hay một số dạng nhận diện Client phải cung cấp credentials cho IIS ứng dụng ASP.NET, thường username password Credentials sau xác nhận quyền dựa vào cấp quyền(authority) Dựa vào cách mà Authentication định dạng, cấp quyền bảo mật Windows 2000,2003,XP hay dựa vào username password lưu trữ, quyền giữ file định dạng Web.config, sở liệu liên quan SQL Server, hay file XML Authentication cung cấp thông qua module code gọi Authentication provider Authentication provider hổ trợ file định dạng ASP.NET, machine.config hay web.config Một đoạn file định dạng hổ trợ authentication có nội dung: configuration> <system.web> <authentication mode="Forms" /> </system.web> </configuration> Thuộc tính “mode” xác định authentication provider sử dụng có bốn kiểu giá trị sau: Các giá trị thuộc tính Mode Mô tả Wind ows Windows authentication sẽ sử dụng kết hợp với IIS Đây kiểu mặc định Form s Các yêu cầu không xác nhận gọi đến trang đăng nhập để người dùng cung cấp thông tin xác nhận Passp ort Dịch vụ xác nhận thương mại tập trung hoá(Centralized commercial authentication service) cung cấp Microsoft, dùng cho nhà phát triển trang web, cung cấp việc kiểm tra đăng nhập trang None Khơng có xác nhận thực Hỗ trợ truy xuất ẩn danh (56)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 44 V.1.1 Anonymous Access Truy xuất ẩn danh ứng dụng web không quan tâm đến việc người dùng Trong trường hợp này, IIS không yêu cầu Credentials việc xác nhận không thực Cho phép người dùng truy xuất ẩn danh định dạng mặc định trang Web Khi muốn định dạng IIS kiểu truy xuất ẩn danh: • Mở IIS, chọn Default Web Site>Properties Hình 3.13: Hộp thoại default Web Site Properties • Chọn Tab Directory Security>Edit (57)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 45 Nếu Check box “Anonymous access” check, yêu cầu chấp nhận IIS mà không yêu cầu Credentials việc xác nhận không thực V.1.2 Windows Authentication Windows Authentication cung cấp cho nhà phát triển cách nâng cao bảo mật dựa vào môi trường Windows 2000/2003/XP hệ thống file NTFS Windows Authentication dựa chế bảo mật IIS Sử dụng Windows Authentication, mức bảo mật cao xây dựng ứng dụng Web mà khơng cần viết code hay viết code Điều quan trọng cần thiết sử dụng Windows Authentication người dùng phải sử dụng môi trường Windows có user account Web Server hay Windows có chứa Web Server Để định dạng IIS dùng Windows Authentication, theo bước định dạng Anonymous access Bỏ chọn checkbox “Anonymous access” Chọn hay nhiều checkbox bên “Authenticated Access” Nếu chọn nhiều kiểu xác nhận truy xuất, IIS sử dụng xác nhận Interrgrated Windows đầu tiên, check Tiếp đến Digest Authentication, cuối Basic Authentication Có ba loại Windows Authentications: Basic, Digest integrated Windows Authentication V.1.2.1 Role - Base Security (58)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 46 Hình 3.15: Mànhình Computer Management V.1.2.2 Basic Authentication Basic Authentication kiểu đơn giản bảo mật Windows Authentication Trong kiểu xác nhận này, trình duyệt đưa dialog box chuẩn cung cấp Windows để người dùng nhập vào Credentials, gồm có username password Các Credentials sau đươc so xánh với account người dùng hợp lệ domain server hay máy cục Sau credential xác nhận người dùng truy xuất đến nguồn tài nguyên yêu cầu V.1.2.3 Digest Authentication (59)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 47 V.1.2.4 Integrated Windows Authentication Integrated Windows Authentication sử dụng Credentials người dùng cung cấp họ đăng nhập vào Windows Dialog Box không xuất cho người dùng nhập thông tin Credentials cung cấp lúc đăng nhập vào Windows không tương xứng với tài nguyên yêu cầu Integrated Windows Authentication gồm có hai loại xác nhận c nhau: NTLM(NT Lan Manager) chanllenge/response, Kerberos NTLM giao thức sử dụng Windows NT, Windows 2000 Work Groups môi trường hồ lẫn Domain NT 2000 Nếu mơi trường Windows 2000 hay Windows XP Active Directory Domain, giao thức NTLM tự động disable giao thức xác nhận chuyển sang Kerberos V.1.3 Passport Authentication Passport dịch vụ xác nhận tập trung hoá Microsoft Dịch vụ cung cấp đăng nhập cho trang web đăng ký với dịch vụ Passport, chấp nhận yêu cầu hợp đồng, trả phí yêu cầu, cài đặt Passport SDK V.1.4 Form Authentication Trong Form Authentication, form đăng nhập cung cấp cho người dùng chưa xác nhận để tiếp nhận thông tin Thông tin code ứng dụn g thực việc kiểm tra cách so xánh thông tin credentials với username password chứa file lưu trữ File lưu trữ file định dạng Web.config, sở liệu, file XML, sở liệu Windows hay Active Directory (60)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 48 V.1.4.1 Login Form Form đăng nhập cung cấp giao diện cho người dùng nhập username password, chứa code để kiểm tra đăng nhập Using System.Web.UI.Security; Minh hoạ void btn_Click(Object Source, EventArgs E) { if (CheckLogin(txtUserName.Text,txtPassword.Text)) { lblMessage.Text = "Authenticated: <br>" + txtUserName.Text + "<br>" + txtPassword.Text; FormsAuthentication.RedirectFromLoginPage(txtUserName.Text, } false); else { lblMessage.Text = "Not Authenticated: <br>" + txtUserName.Text + "<br>" + txtPassword.Text; } } Hàm CheckLogin người dùng viết để kiểm tra username password người dùng nhập vào cách so xánh với thông tin database, file XML… Hàm RedirectFromLoginPage nhận hai tham số • Tham số thứ • : username liên kết với cookie Username không thiết phải tên account, tên dùng cho cookie Tham số thứ hai: có kiểu bool để định trạng thái cookie có liên tục hay không, trạng thái true, user không cần phải đăng nhập lần thứ hai yêu cầu tài nguyên V.1.4.2 Định dạng IIS Chọn IIS>Default Web Site>Properties>Security Directory>Edit Bỏ chọn tất check box bên “Authenticated Access” để disable Window Authentication (61)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 49 V.1.4.3 Định dạng ASP.NET Công việc cuối để thực Form Authentication định dạng ASP.NET cách định dạng file Web.config Để định dạng cho ứng dụng Web, đặt file định dạng Web.config thư mục ứng dụng trong thư mục gốc ảo( virtual root directory) <configuration> Minh hoạ <system.web> <authentication mode = "Forms"> <forms name="ProgAspNetCookie" loginUrl="csLoginForm.aspx" /> </authentication> <authorization> <deny users="?" /> </authorization> </system.web> </configuration> V.2 Authorization Khi người dùng xác nhận, server phải kiểm tra xem người dùng có cho phép truy xuất đến tài nguyên yêu cầu hay không Đây q trình Authorization(cáp phép) Có hai loại cấp phép cho người dùng File Authorization URL Authorization V.2.1 File Authorization Bất kỳ hệ điều hành có hổ trợ NTFS(Windows 2000,XP, Windows 2003 Server) sử dụng hệ thống bảo mật dựa danh sách điều khiển truy xuất ACL(Access Control Lists) ACLs điều khiển truy xuất đến file hay thư mục dựa vào việc truy vấn thông tin thành viên Windows domain hay Active Directory , Groups mà thành viên tham gia (62)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 50 nguyên Mỗi người dùng đưa vào Group thích hợp Group cung cấp quyền cần thiết ACL kiểm tra file hay thư mục bằ ng cách click chuột phải vào file hay thư mục đó, chọn Tab Security Hình 3.16: Access Control List Có hai điều cần quan tâm sử dụng chế File Authorization • Người dùng ứng dụng Web phải có Windows Account • Quản lý ACL trang Web lớn phức tạp khó khăn V.2.2 URL Authorization Chúng ta cấp quyền người dùng dựa vào danh sách hay quy tắc(list hay rules), hai nằm file định dạng Cách gọi URL Authorization Các điều kiện truy xuất chứa phần <authorization> file Web.config Đối với tất file định dạng, điều kiện gán cho thư mục thư mục thư mục khơng có file Web.config bên (63)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 51 Với thành phần truy xuất, bên có chứa hay nhiều thuộc tính Các thuộc tính thành phần truy xuất gồm có T ên Mơ tả R oles Xác định hay nhiều vai trị, có nhiều vai trị cách dấu phẩy U sers Xác định hay nhiều người dùng Nhiều người dùng cách dấu phẩy Có hai trạng thái đặc biệt là: * người ?chỉ người chưa xác nhận(Anonymous users) V erbs Xác định hành động gán cho user Các giá trị hợp lệ GET, HEAD, hay POST Bảng 3.2: Chức phân quyền bảo mật Authorization Ví dụ: <location path="pages/public.aspx" > Phần Authorization File Web.config <system.web> <authorization> <allow users="*" /> </authorization> </system.web> </location> <location path="pages" > <system.web> <authorization> <allow users="Dan, Jesse " roles="Administrators" /> </authorization> (64)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 52 Chương IV: PHÂN TÍCH - THIẾT KẾ - THỰC HIỆN I Phân tích I.1 Nhiệm vụ Đề tài có hai phần phần Web Server phần Add-in I.1.1 Phần Webserver • Phần admin website: • cung cấp trang web để cập nhật thông tin lỗi, sách/chương/phần liên quan đến thông tin lỗi dựa mã lỗi Phần client website: • cung cấp trang web để tìm kiếm thơng tin liên quan đến lỗi (từ mã lỗi tương ứng) để nhận phần giới thiệu sách liên quan, chương/phần học liên quan trong sách Phần web service: I.1.2 Phần Add-in cung cấp hàm (với input: mã lỗi, output: phần giới thiệu sách liên quan, chương/phần học liên quan sách đó) để tìm kiếm thông tin liên quan đến lỗi Tạo add-in nhằm truy cập Microsoft Visual Studio Net IDE 2003 để lấy thơng tin lỗi lập trình người học/lậptrình viên, sau gọi hàm (từ phần webservice nêu trên) để thực truy vấn hiển thị kết (dạng liên kết hyperlink) Add-in cho người học/lập trình viên xem (đồng thời người học/lậptrình viên bấm vào hyperlink để mở browser truy cập xác đến mục liên quan đến lỗi bị xãy ra) I.2 Phương án I.2.1 Xây dựng ứng dụng Admin Website Web Service theo mơ hình đa tầng (65)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 53 Trong ứng dụng khơng phân tầng, mã chương trình, với định dạng kết xuất, xử lý liệu trộn lẫn vào Điều gây khó khăn dự án lớn cần hoạt động theo nhóm tách biệt bước phát triển Trong mơ hình phân tầng, nghiệp vụ xử lý ứng dụng cài đặt thành đối tượng riêng biệt Ứng dụng phân theo ba tầng: 1 Tầng dịch vụ người dùng (User services): chứa trang ASP.NET(.aspx,asmx) định dạng giao diện triệu gọi đối tượng tầng xử lý nghiệp vụ 2 Tầng xử lý liệu (Data Layer): Các đối tượng phần Bussiness Layer thực chức chương trình bao gồm mã lệnh tách rời phần định dạng HTML Giao tiếp với tầng xử lý liệu để trao đổi liệu 3 Tầng xử lý liệu (Data Layer): Bao gồm đối tượng thực việc kết nối truy xuất sở liệu Mơ hình ba lớp thư ờng sử dụng ứng dụng thương mại điện tử thay cho mơ hình client/server Các chức xử lý ứng dụng nằm tầng xử lý nghiệp vụ tầng xử lý liệu Nếu muốn chuyển ứng dụng sang môi trường khác, chẳng hạn xây dựng ứng dụng Desktop, sử dụng lại đối tượng mà không cần phải thay đổi thêm Ứng dụng gồm đối tượng xử lý: 1 Books: phục vụ việc quản lý thông tin sách 2 Parts: phục vụ việc quản lý phần sách 3 Chapters: phục vụ quản lý chương sách 4 Items: phục vụ quản lý mục sách 5 CodeErrors: phục vụ quản lý lỗi 6 ErrorItems: phục vụ quản lý chi tiết lỗi 7 Users: phục vụ quản lý thành viên (66)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 54 I.2.2 Xây dựng Web Client theo mơ hình phân tán sử dụng công nghệ Web Service Mô hình phân tán kỹ mang lại nhiều lợi ích triệu gọi qua mạng sử dụng lại nhiều hệ điều hành khác ASP.NET cung cấp kiến trúc hạ tầng để xây dựng ứng dụng phân tán Web theo giao thức triệu gọi SOAP, cho phép thực chuyển đổi liệu XML cách dễ dàng hiệu Đối với chức tìm kiếm thơng tin lỗi, phía Client cần cung cấp mã lỗi, mã lỗ truyền mạng đến Web Server để tìm kiếm lỗi có sở liệu Server Khi tìm thấy, thơng tin lỗi đóng gọi theo định dạng SOAP chuyển đến cho Client xử lý I.2.3 Sử dụng hệ quản trị sở liệu SQL Server 2000 Microsot SQL Server hệ quản trị sở liệu(DBMS) mạnh mẽ, cung cấp cho người dùng chức hoàn hảo lĩnh vực sở liệu SQL tối ưu để chạy trường sở liệu lớn phục vụ lúc cho hàng ngàn người dùng Microsoft SQL Server 2000 kết hợp ăn ý với server IIS , E-Commerce, Proxy Server… I.2.4 Ngôn ngữ sử dụng: ASP.NET (67)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 55 I.2.5 Phân tích nghiệp vụ hệ thồng ngôn ngữ UML Ngôn ngữ mơ hình hợp nhất(UML) tập hợp mơ hình quan niệm với hệ thống ký hiệu Bản thân UML khơng phương pháp lập trình khơng có cách xử lý Nhưng ghép nối với Enterprise component modeling(ECM), trở thành phương pháp lập trình Ngơn ngữ UML dùng kiểu phân tích thiết kế hướng đối tượng để xây dựng nên mơ hình hệ thống hướng đối tượng Các chương trình dùng để tạo mã thực thi Ngôn ngữ UML phát triển Grady Boock, Jame Rumbaugh Ivar Jacobson, dùng khái niệm từ phương pháp Booch, OMT & OOSE kết hợp ý kiến từ nhà phương pháp học khác Bằng cách hợp quan niệm từ phương pháp lập trình hướng đối tượng chủ đạo UML có tham vọng đưa tiêu chuẩn cho việc phân tích thiết kế hướng đối tượng Mơ hình hoạt động nghiệp vụ đề án thiết kế ngôn ngữ UML thông qua phần mềm Rational Rose Đây ngôn ngữ mô nghiệp vụ, tác vụ hệ thống phần mềm thông qua biểu đồ lớp, biểu đồ use case, biểu đồ Qua giúp người dùng hình dung chức thao tác mà phần mềm lần lượcthực Cụ thể đề tài này, biểu đồ use case cho thấy nghiệp vụ mà phần mềm hỗ trợ actor thực chức mơ hình Cịn biểu đồ (Sequence diagram) cho thấy bước thực thi lần lược hệ thống I.2.6 Xây dựng Add-in (68)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 56 .NET (VSMacros), cách tạo mở rộng cho IDE gọi Add-in Các Add-in biên dịch thành ứng dụng mà thao tác với môi trường làm việc tác vụ tự động hố Các Add-in triệu gọi theo cách khác nhau,bao gồm Add-in Manager,toolbarcommand hay nút, dịng lệnh, hay thơng qua kiện khởi động IDE Trong phần hỗ trợ tới mơ hình đối tượng chung cung cấp VS tới all ngơn ngữ lập trình , cơng cụ gói nó, riêng với ngơn ngữ lập trình Visual Studio NET cung cấp thê m kỹ thuật riêng chúng tới mơ hình đối tượng tự động hố Và tất nhiên bạn tạo đối tượng Add-in mà làm việc tốt với ngôn ngữ Visual Studio NET, hay ngôn ngữ ghép vào để cung cấp điểm đặc biệt ngôn ngữriêng biệt, chẳng hạn VB hay VC++ II Thiết kế thực II.1 Thiết kế sở liệu II.1.1 Biểu đồ quan hệ (69)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 57 Cơ sở liệu hệ thống gồm có bảng để quản lý thơng tin lỗi, sách người dùng Mỗi bảng mang ý nghĩa cụ thể sau: Books: Lưu trữ thông tin sách bao gồm tên sách, tên tác giả, mã sách, hình ảnh sách, mã(BookID) để quản lý số lượng sách Parts: Lưu trữ thông tin phần sách, gồm có tên phần, mã sách liên quan, mã(PartID) để quản lý số lượng phần sách Chapters: Lưu trữ thơng tin chương sách, gồm có tên chương, mã phần liên quan mã(ChapterID) để quản lý số lượng chương sách Items: Lưu trữ thông tin liên quan đến mục sách, gồm có tên mục, nội dung mục, mã chương có liên quan mã(ItemID) để quản lý số lượng mục sách CodeErrors: Lưu trữ mã lỗi lập trình, tên lỗi, mơ tả lỗi, mã(ErrorID) để quản lý số lượng lỗi quản lý ErrorItems: Lưu trữ thông tin chi tiết lỗi, gồm mã lỗi mã mục liên quan đến lỗi Ngồi cịn có mã(ErrorItemID) để quản lý số lượng chi tiết lỗi (70)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 58 II.1.2 Các bảng liệu hệ thống II.1.2.1 Bảng ErrorCode T_CodeErrors Các trường Khóa Kiểu liệu Độ dài Ý nghĩa ErrorID X Int Mã lỗi CodeError Varchar 50 Mã lỗi lập trình ErrorName Nvarchar 200 Tên lỗi lập trình Description Nvarchar 4000 Mơ tả lỗi lập trình Type Bit Lỗi hay thông báo Bảng 4.1: Bảng ErrorCode II.1.2.2 Bảng ErrorItems T_ErrorItems Các trường Khóa Kiểu liệu Độ dài Ý nghĩa ErrorItemID X Int Mã chi tiết lỗi ErrorID X Int Mã lỗi ItemID X Int Mã mục liên quan đến lỗi Bảng 4.2: Bảng ErrorItems II.1.2.3 Bảng Items T_Items Các trường Khóa Kiểu liệu Độ dài Ý nghĩa ItemID X Int Mã mục ItemName NVarchar 150 Tên mục ItemContent NVarchar 4000 Nội dung mục ChapterID Int Mã chương Bảng 4.3: Bảng Items II.1.2.4 Bảng Chapters T_Chapters Các trường Khóa Kiểu liệu Độ dài Ý nghĩa ChapterID X Int Mã chương ChapterName Nvarchar 150 Tên chương PartID Int Mã phần (71)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 59 II.1.2.5 Bảng Parts T_Parts Các trường Khóa Kiểu liệu Độ dài Ý nghĩa PartID X Int Mã phần PartName Nvarchar 150 Tên phần BookID Int Mã sách Bảng 4.5: Bảng Parts II.1.2.6 Bảng Books T_Books Các trường Khóa Kiểu liệu Độ dài Ý nghĩa BookID X Int Mã sách BookName Nvarchar 250 Tên sách Author Nvarchar 50 Tên tác giả ISBN Varchar 50 Mã sách Picture Varchar 50 Hình ảnh Bảng 4.6: Bảng Books II.1.2.7 Bảng Users T_Users Các trường Khóa Kiểu liệu Độ dài Ý nghĩa UserName X Varchar 50 Tên đăng nhập PassWord Varchar 50 Mật uRole Bit Vai trò Bảng 4.7: Bảng Users II.1.3 Các Store Procedure STT Tên STOREPROCEDURE Chức 1 usp_Books_Insert Thêm sách 2 usp_Books_Update Cập nhật sách 3 usp_Books_Delete Xóa sách 4 usp_Books_CheckISBN Kiểm tra mã sách trùng 5 usp_Books_GetAllBooks Lấy tất sách 6 usp_Books_GetBookDetail Lấy chi tiết sách 7 usp_Parts_Insert Thêm phần vào sách (72)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 60 9 usp_Parts_Update Cập nhật người dùng 10 usp_Parts_GetAllParts Lất tất phần 11 usp_Parts_GetBookParts Chọn phần có mã sách nhập vào 12 usp_Parts_GetPartDetail Lấy chi tiết phần 13 usp_Chapters_Insert Thêm chương 14 usp_Chapters_Delete Xóa chương 15 usp_Chapters_Update Cập nhật chương 16 usp_Chapters_GetPartID Lấy mã phần chương 17 usp_Chapters_GetAllChapters Lấy chương phần 18 usp_Chapters_GetChapterDetail Lấy chi tiết chương 19 usp_Items_Insert Thêm mục 20 usp_Items_Delete Xóa mục 21 usp_Items_Update Cập nhật mục 22 usp_Items_GetItemDetails Lấy chi tiết mục 23 usp_Items_GetChapterItems Lấy chương mục 24 usp_Items_GetAllItems Lấy tất mục chương 25 usp_CodeErrors_Insert Thêm mã lỗi 26 usp_CodeErrors_Delete Xóa mã lỗi 27 usp_CodeErrors_Update Cập nhật mã lỗi 28 usp_CodeErrors_GetCodeErrorDetai l Lấy chi tiết lỗi 29 usp_CodeErrors_GetAllCodeErrors Lấy tất lỗi 30 usp_ErrorItems_Insert Thêm mã mục mã lỗi 31 usp_ErrorItems_Delete Xóa mã mục mã lỗi 32 usp_ErrorItems_Update Cập nhật mã mục lỗi 33 usp_ErrorItems_GetErrorItemDetai ls Lấy chi tiết mã mục (73)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 61 II.2 Phân tích hệ thống II.2.1 Sơ đồ họat động Xem thong tin chi tiet loi Quan tri co so du lieu Lay danh sach ma loi Hien thi thong tin loi Lay thong tin loi thong qua ma loi Add-In Duyet thong tin loi qua trinh duyet web LogIn Bien dich User DangKy Client Admin LogOut Hình 4.2: Sơ đồ hoạt động hệ thống Mô tả: hệ thống gồm Actor : Admin, Add-In, Client user Trong Actor thực chức sau: 1 Actor Admin Mô tả Khi hồn tất cơng việc quản trị sở liệu, Admin Logout khỏi hệ thống : Khi Admin cung cấp username password để đăng nhập vào hệ thống, hệ thống kiểm tra username password nhập vào + Nếu thông tin hợp lệ, hệ thống cho phép Admin vào hệ thống thực chức quản trị sở liệu (74)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 62 2 Actor Client Mô tả • Nếu có username hệ thống gởi thông báo yêu cầu thay đổi username : Đầu tiên, client phải đăng ký account với hệ thống cung cấp username password Hệ thống kiểm tra username có trùng hay khơng • Nếu thơng tin đăng ký hợp lệ, thơng tin đăng ký lưu vào hệ thống Sau đăng ký, người dùng đăng nhập vào hệ thống với account vừa tạo cách nhập vào username password Nếu đăng nhập thành công, client tra cứu xem chi tiết thơng tin vể lỗi Khi kết thúc tìm kiếm, người dùng LogOut khỏi hệ thống 3 Add-In Nếu trình biên dịch xảy lỗi, trình Add-In truy cập vào hệ thống lấy danh sách mã lỗi, sau hiển thị tab OutputWindow Cột chứa mã lỗi, cột thứ hai chứa liên kết có mang theo mã lỗi Sau user click vào liên kết này, trang chứa đựng thông tin chi tiết lỗi hiển thị Ngồi việc tham khảo thơng tin này, user click vào liên kết mục liên quan đến lỗi có thơng tin mục 4 User (75)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 63 II.2.2 Sơ đồ chức Add-in Visual Studio 2003 : Add-In : User Web Server : Admin : Client 1: LoadAdd-In() 2: 4: LayDSMaLoi() 5: 6: HienThiDSMaLoi() 10: LayThongTinChiTietLoi() 11: 13: HienThiTTCTLoiTrenTrangChinh() 21: XemThongTinLoiQuaTrinhDuyet() 16: QuanTriCSDL() 17: 8: LogIn() 9: 14: LogIn() 15: 19: LogOn() 20: 3: BienDich() 12: LogOut() 7: XemThongTinMotLoi() 18: LogOut() 22: LogOut() (76)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 64 II.2.3 Sơ đồ chức Web Admin II.2.3.1 Sơ đồ chức quản lý sách : Admin Login Form BookForm BookBusiness BookData Books 4: LayDSSach() 9: TraVeDataSet 10: LayMaSach() 15: TraVeChiTietSach 16: LayMaSach() 21: 22: LayMaSach() 27: 28: ThemSach() 34: 5: LayDSSach() 8: TraVeDataSet 11: LayThongTinCTSach() 14: TraVeChiTietSach 17: CapNhatSach() 20: 23: XoaSach() 26: 30: ThemSach() 33: 6: ChayStoreProc 7: TraVeDataSet 12: ChayStoreProc 13: TraVeDataSet 18: ChayStoreProc 19: 24: ChayStoreProc 25: 31: ChayStoreProc 32: 1: Login() 2: 35: LogOut() 3: QuanTriSach() 29: KiemTraTrungMaSach (77)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 65 II.2.3.2 Sơ đồ chức quản lý phần sách : Admin Form Login Form Part BussinessPart Part Data Parts 1: LogIn() 2: 4: LayMaSach() 3: QuanTriCacPhanCuaSach() 5: LayDSCacPhan() 6: ChayStoreProc 7: TraVeDataset 8: TraVeDataset 9: TraVeDataset 10: LayMaPhan() 11: CapNhatThongTinPhan() 12: ChayStoreProc 13: 14: 15: 16: LayMaPhan() 17: XoaPhan() 18: ChayStoreProc 19: 20: 21: 22: ThemPhanMoi() 23: ThemPhanMoi 24: ChayStoreProc 25: 26: 27: 28: LogOut() (78)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 66 II.2.3.3 Sơ đồ chức quản lý chương : Admin Form Login ChapterForm BussinessChapter Chapter Data Chapters 1: LogIn() 2: 3: QuanTriChuongSach() 4: LayMaPhan() 5: LayDSCacChuong() 6: ChayStoreProc 7: TraVeDataset 8: TraVeDataset 9: TraVeDataSet 10: LayMaChuong() 11: CapNhatChuong() 12: ChayStoreProc 13: 14: 15: 16: LayMaChuong() 17: XoaChuong() 18: ChayStoreProc 19: 20: 21: 22: ThemChuong() 23: ThemChuong() 24: ChayStoreProc 25: 26: 27: 28: LogOut() (79)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 67 II.2.3.4 Sơ đồ chức quản lý mục : Admin Form Login Form Item BussinessItem Item Data Items 1: SingIn() 2: 3: QuanTriMuc() 4: LayMaChuong() 5: LayDSCacMuc() 6: ChayStoreProc 7: TraVeDataset 8: TraVeDataset 9: TraVeDataset 10: LayMaMuc() 11: CapNhatMuc() 12: ChayStorProc 13: 14: 15: 16: LayMaMuc() 17: XoaMuc() 18: ChayStoreProc 19: 20: 21: 22: ThemMucMoi() 23: ThemMucMoi() 24: ChayStoreProc 25: 26: 27: 28: LogOut() (80)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 68 II.2.3.5 Sơ đồ chức quản lý lỗi : Admin Form Login Form Error BussinessError Error Data Errors 1: LogIn() 2: 3: QuanTriLoi() 4: LayDSCacLoi() 5: LayDSCacLoi() 6: ChayStoreProc 7: TraVeDataSet 8: TraVeDataSet 9: TraVeDataSet 10: LayMaLoi() 11: CapNhatLoi() 12: ChayStoreProc 13: 14: 15: 16: LayMaLoi() 17: XoaLoi() 18: ChayStoreProc 19: 20: 21: 22: ThemLoiMoi() 24: ThemLoiMoi() 25: ChayStoreProc 26: 28: 27: 29: LogOut() 23: KiemTraTrungMaLoi (81)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 69 II.2.3.6 Sơ đồ chức quản lý thêm mục vào lỗi : Admin Form Login ErrorItemForm BussinessErrorItem ErrorItem Data ErrorItems 1: LogIn() 2: 3: QuanTriMucVaLoi() 4: LayMaChuong() 5: LayDSCacMuc() 6: ChayStoreProc 7: TraVeDataset 8: TraVeDataset 9: TraVeDataSet 10: ThemMucVaLoi() 11: ThemMucVaLoi() 12: ThemMucVaLoi() 13: 14: 15: 16: LogOut() (82)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 70 II.2.3.7 Sơ đồ chức quản lý chi tiết lỗi : Admin Form Login ErrorItemDetailForm BussinessErrorItem ErrorItemData Error Items 1: SingIn() 2: 3: QuanTriChiTietMucVaLoi() 4: LayDSCacMucVaLoi() 5: LayDSCacMucVaLoi() 6: ChayStoreProc 7: TraVeDataset 8: TraVeDataset 9: TraVeDataset 10: LayMaMucVaLoi() 11: CapNhatMuc() 12: ChayStorProc 13: 14: 15: 16: LayMaMucVaLoi() 17: XoaMucVaLoi() 18: ChayStoreProc 19: 20: 21: 22: LogOut() (83)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 71 II.2.4 Sơ đồ cho chức tìm kiếm Web Client : User Form LogIn Form Tim Kiem WebService Database 1: LogIn() 7: TimKiemThongTinLoi() 8: LayMaLoi() 9: LayThongTinLoi() 10: 11: 13: 12: SingOut() 2: KiemTraDangNhap() 3: KiemTraDangNhap() 4: 5: 6: (84)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 72 II.3 Phần Add-In Sau tạo project dạng Add -In, ta coding cho nghiệp vụ truy cập vào hệ thống Visual Studio NET 2003 để lấy danh sách mã lỗi mà chương trình sau biên dịch có lỗi p hát sinh Danh sách mã lỗi hiển thị tab Add-In Window Tool ảnh (a.1) liên kết đến dạng hyperlink, chứa thông tin mã lỗi Sau user click vào liên kết này, chương trình truy cập tới Web Services, dựa mã lỗi lấy thông tin liên quan đến lỗi hiển thị trang VS NET 2003 User tham khảo thêm thơng tin chi tiết hơn, cụ thể lỗi nằm mục nào, phần nào, chương Nhưng trước hết, user phải cài đặt phần công cụ hỗ trợ kiểm lỗi II.3.1 Cài đặt phần Add-in Phần cài đặt công cụ hỗ trợ công cụ kiểm tra lỗi vào môi trường Visual Studio NET 2003 (85)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 73 II.3.2 Thêm đối tượng Add-in thông qua hộp thoại Add-in Manager Sau cài đặ t song, ta mở Visual Studio NET 2003, sau vào tool menu  Add-In Manager Hình 4.13: Hộp thoại Add-In Manager Hợp thoại cho phép người dùng chọn đối tượng Add-In phép plugin vàomôi trường Visual Studio NET 2003 Check vào Item “My AddIn” chọn cho phép đối tượng bắt đầu lúc khởi động (check vào CheckBox “My AddIn” cột StartUp) Hoặc plugout đối tượng khỏi mơi trường Visual Studio NET 2003 bằngcách uncheck vào II.3.3 Hiển thị danh sách lỗi Sau bước thực trên, ta thấy bên VS.NET 2003 xuất khung “C# Tool Window”, phận Add-In vừa thêm vào (86)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 74 Sau đó, ta tiến hành biên dịch chương trình, trình biên dịch có lỗi xảy ra, chương trình Add-In truy cập vào hệ thống đem danh sách mã lỗi trình biên dịch Bên phải lỗi liên kết, liên kết mang thơng tin chi tiết lỗi hiển thị lên trang VS.NET 2003 Điều thực nhờ trình Add-In truy cập vào web server, dùng mã lỗi để truy vấn tới sở liệu mang thông tin liên quan đến lỗi hiển thị trang VS.NET 2003 II.3.4 Hiển trị trang thông tin chi tiết lỗi Trang hiển thị thông tin chi tiết liên q uan đến lỗi Từ đó, ta biết lỗi gì, mơ tả lỗi Đồng thời, ta biết lỗi nằm mục nào, chương nào, phần sách Ta click trực tiếp lên mục để có thêm nhiều thơng tin bổ ích khác (87)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 75 II.4 Phần Web Admin II.4.1 Màn hình quản lý sách Chức năng: Hiển thị danh sách tất sách sở liệu, ngồi cịn cung cấp điều khiển giúp xem chi tiết, thêm mới, cập nhật, xoá, chỉnh sửa thêm phần(Part) vào sách Hình 4.16: Màn hình quản lý sách STT TÊN ĐIỀU KHIỂN CHỨC NĂNG 1 New Book Gọi hình nhập sách 2 Delete Gọi hình xố sách có mã chọn 3 Edit Gọi hình cập nhật sách có mã chọn 4 Biểu tượng sách Gọi hình thêm phần cho sách có mã chọn (88)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 76 II.4.2 Màn hình chi tiết sách Chức năng: Hiển thị chi tiết thơng tin sách Hình 4.17: Màn hình hiển thị chi tiết sách STT TÊN ĐIỀU KHIỂN CHỨC NĂNG 1 OK Trở hình sách Bảng 4.10: Chức control hình chi tiết sách II.4.3 Màn hình thêm sách Chức năng: Cung cấp chức thêm sách vào sở liệu Admin điền thông tin sách vào textbox, chọn hình ảnh nhấn Add để thêm sách mới vào sở liệu (89)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 77 STT TÊN ĐIỀU KHIỂN CHỨC NĂNG 1 Add Thêm sách vào sở liệu 2 New Thêm sách 3 Back Trở hình sách 4 Browse Chọn hình ảnh cho sách Bảng 4.11: Chức control hình thêm sách II.4.4 Màn hình xố sách Chức năng: Cho phép xóa sách có thơng tin hiển thị Hình 4.19: Màn hình xố sách STT TÊN ĐIỀU KHIỂN CHỨC NĂNG 1 Delete Xoá sách có thơng tin hiển thị (90)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 78 II.4.5 Màn hình chỉnh sửa sách Chức năng: Cho phép người dùng thay đổi thơng tin sách có mã chọn Hình 4.20: Màn hình cập nhật sách STT TÊN ĐIỀU KHIỂN CHỨC NĂNG 1 Update Cập nhật thông tin sách 2 Back Trở hình sách 3 Browse Chọn hình cho sách Bảng 4.13: Chức control hình cập nhật sách II.4.6 Màn hình quản lý phần(Parts) Chức năng: Cung cấp chức cập nhật, xóa tên phần có mã chọn Ngịai ra, người dùng thêm phần vào sách, gọi trang thêm chương cho phần chọn cách chọn biểu tượng sách nhỏ (91)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 79 STT TÊN ĐIỀU KHIỂN CHỨC NĂNG 1 New Part Hiển thị textbox nhập tên phần 2 OK Lưu tên phần vào sách 3 Cancel Kết thúc nhập tên phần 4 Edit Cập nhật tên phần 5 Del Xố phần có mã chọn 6 Biểu tượng sách Thêm chương vào phần chọn Bảng 4.14: Chức control hình quản lý phần sách II.4.7 Màn hình quản lý chương Chức năng: Hiển thị chương thuộc phần, sách lựa chọn Cho phép người dùng thêm chương vào phần chọn, cập nhật, xóa chương chọn Người dùng thêm mục vào chương chọn cách chọn biểu tương sách nhỏ Hình 4.22: Màn hình quản lý chương sách STT TÊN ĐIỀU KHIỂN CHỨC NĂNG 1 New Chapter Hiển thị textbox nhập tên chương 2 OK Lưu tên chương vào sách 3 Cancel Kết thúc nhập tên chương 4 Edit Cập nhật tên chương 5 Del Xố chương có mã chọn (92)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 80 II.4.8 Màn hình quản lý mục Chức năng: Hiển thị danh sách mục chương, phần, sách chọn Cho phép người dùng chọn chi tiết để xem thông tin đầy đủ mục, xóa mục chọn hay thêm mục vào chương chọn Hình 4.23: Màn hình quản lý mục sách STT TÊN ĐIỀU KHIỂN CHỨC NĂNG 1 New Item Hiển thị textbox nhập tên nội dung mục 2 Details Chi tiết mục chọn 3 Del Xoá mục chọn Bảng 4.16: Chức control hình quản lý mục sách II.4.9 Màn hình chi tiết cập nhật nội dung mục Chức năng: Cho phép người dùng xem thông tin chi tiết mục, cập nhật thông tinmục (93)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 81 STT TÊN ĐIỀU KHIỂN CHỨC NĂNG 1 Update Cập nhật thông tin textbox vào sách 2 Cancel Kết thức chức cập nhật Bảng 4.17: Chức control hình cập nhật mục II.4.10 Màn hình thêm mục Chức năng: Cho phép người dùng thêm mục vào chương chọn Hình 4.25: Màn hình thêm mục STT TÊN ĐIỀU KHIỂN CHỨC NĂNG 1 Add new Thêm nội mục vào sách 2 Cancel Kết thức chức cập nhật Bảng 4.18: Chức control hình thêm mục II.4.11 Màn hình quản lý lỗi (94)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 82 Hình 4.26: Màn hình quản lý lỗi STT TÊN ĐIỀU KHIỂN CHỨC NĂNG 1 New Error Hiển thị phần nhập lỗi 2 OK Thêm lỗi vào sở liệu 3 Cancel Kết thúc phần nhập lỗi 4 Details Gọi trang chi tiết lỗi chọn 5 Delete Gọi trang xoá lỗi chọn 6 Biểu tượng sách Gọi trang thêm mục cho lỗi chọn 7 ErrorItemDetail Gọi trang chi tiết mục lỗi Bảng 4.19: Chức control hình quản lý lỗi II.4.12 Màn hình chi tiết lỗi Chức năng: Cho phép người dùng xem thông tin chi tiết lỗi Đồng thời cho phép cập nhật thông tin lỗi (95)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 83 STT TÊN ĐIỀU KHIỂN CHỨC NĂNG 1 Update Cập nhật thông tin lỗi 2 Cancel Trở hình lỗi Bảng 4.20: Chức control hình cập nhật lỗi II.4.13 Màn hình xoá lỗi Chức năng: Cho phép người dùng xóa lỗi có thơng tin chọn Hình 4.28: Màn hình xố lỗi STT TÊN ĐIỀU KHIỂN CHỨC NĂNG 1 Delete Xố lỗi có thơng tin hiển thị 2 Cancel Trở hình lỗi Bảng 4.21: Chức control hình xố lỗi II.4.14 Màn hình thêm mục cho lỗi (96)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 84 Hình 4.29: Màn hình thêm mục vào lỗi STT TÊN ĐIỀU KHIỂN CHỨC NĂNG 1 >> Thêm mục chọn 2 << Huỷ chọn mục chọn 3 Add Thêm mục vào lỗi có mã cho trước 4 Cancel Trở hình lỗi 5 Errors Trở hình lỗi Bảng 4.22: Chức control hình thêm mục vào lỗi II.5 Phần Web Client II.5.1 Màn hình tìm kiếm Chức năng: Cho phép người dùng nhập vào mã lỗi hiển thị mục, chương, phầnvà sách liên quan đến mã lỗi (97)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 85 STT TÊN ĐIỀU KHIỂN CHỨC NĂNG 1 Search Tìm kiếm mục liên quan đến lỗi 2 Tên mục Hiển thị chi tiết nội dung mục Bảng 4.32: Chức control hình tra cứu lỗi II.5.2 Màn hình nội dung mục liên quan đến lỗi Chức năng: Hiển thị nội dung mục có thơng tin liên quan đến lỗi Hình 4.31: Màn hình nội dung mục liên quan đến lỗi II.6 Phần Web Service II.6.1 Tổng quát (98)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 86 II.6.2 Chi tiết phương thức STT TÊN PHƯƠNG THỨC CHỨC NĂNG 1 AddUser Nhận vào UserName Password, trả kiểu String UserName thành công chuổi trốnng không thành công Giúp người dùng đăng ký thành viên 2 GetCodeErrorDetail Nhận vào mã lỗi, trả chi tiết lỗi dạng một đối tượng 3 GetItemContent Nhận vào mã mục, trả dataset nội dung mục có mã tươg ứng 4 GetItemsList Nhận vào mã lỗi, trả dataset chứa mục có liên quan đến mã lỗi nhập vào 5 GetChapterList Nhận vào mã lỗi, trả dataset chứa chương sách có chứa mục liên quan đến mã lỗi nhập vào 6 GetPartList Nhận vào mã lỗi, trả dataset chứa phần có chứa chương, mục liên quan đến mã lỗi nhập vào 7 GetBookList Nhận vào mã lỗi, trả dataset chứa các sách có chứa phần, chương, mục liên quan đến mã lội nhập vào 8 IsMember Nhận vào UserName, kiểm tra xem UserName có database hay chưa, trả giá trị bool, giúp kiểm tra thành viên đăng ký 9 ValidateUser Nhận vào UserName Password, kiểm tra xem UserName Password có hay khơng, trả giá trị kiểu bool (99)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 87 Chương V: ĐÁNH GIÁ DỰ ÁN VÀ HƯỚNG PHÁT TRIỂN I Đánh giá I.1 Hoàn thành I.1.1 Phần Add-In Hoàn thành thao tác Add-in vào VS.NET 2003; lấy hiển thị danh sách mã lỗi chương trình biên dịch có lỗi; truy vấn tới web server, thơng qua hyperperlink có chứa mã lỗi để lấy thông tin chi tiết liên quan đến lỗi đó; trang hiển thị thơng tin lỗi, user click trực tiếp lên mục, liên quan đến lỗi để có thêm nhiều thơng tin lỗi I.1.2 Phần Web Server • Web Admin: Các thao tác thêm ,xố, sửa lổi, chi tiết lỗi, sách, phần, chương, mục liên quan đến lỗi hoàn thành, giao diện dể hiểu, giúp người dùng dể dàng sử dụng Các xử lý thiết kế theo mơ hình ba lớp • Web Client: Chức tìm kiếm thơng tin liên quan đến mã lỗi hồn thành Được truy xuất mạng cục đến sở liệu Server • Web Service: Các chức nhận mã lỗi trả tên sách, phần, chương mục liên quan đà hoàn thành, Web Service cung cấp chức kiểm tra người dùng đăng ký, kiểm tra đăng nhập thêm người dùng mới hổ trợ cho chức đăng ký I.2 Chưa hoàn thành Bên cạnh đó, có vấn đề nhỏ mà đề án chưa hoàn tất (100)HUTECH Nguyễn Duy Hoà V õ Đức Hiền Trang 88 I.2.2 Phần Web Server: • Phần Web Amdin: Giao diện cịn chưa đẹp • Phần Web Server: Bảo mật chưa cao, cho phep người dùng đăng ký sử mức bảo mật đăng nhập để xử dụng • Phần Web Client: Giao diện chưa đẹp, mã lỗi tìm xác mã lỗi đó, khơng xử lý chức tìm mã lỗi gần giống với mã lỗi cung cấp II Hướng phát triển Đây đề án hay có nhiều hướng phát triển Chúng ta tưởng tượng phần có khả plugin, chúng ngày có nhiều chức hơn, trở nên thật hữu ích hơn, đáp ứng tất mong muốn bạn Đó nhờ phận Add-in Chúng ta tạo nhiều Add -in với nhiều chức cập nhật, thật hữu ích cho phần mềm ứng dụng chẳng hạn Win, Word, Exel, Access (101)HUTECH Ngày xu?t b?n 14/2/2003, Mã sách(ISBN) 0-321-11359-4 2 .NET Web Services Solutions, Tác gi? Kris Jamsa, N?m xu?t b?n: 2003, Mã sách(ISBN): 0782141722 3 Programming ASP.NET, 2nd Edition, Tác gi? O’Reilly, Ngày xu?t b?n 9/2003, Mã sách(ISBN)0-596-00487-7 4 Expert Web Services Security in the NET Platform, Tác gi? Brian Nantz Laurence Moroneym, N?m xu?t b?n 2005, Mã sách(ISBN) 1590591151 B TRANG WEB http://www.codeproject.com http://www.w3c.org
- Xem thêm -

Xem thêm: DTTX_CNTT_xay dung he thong tra cuu loi lap trinh,

Hình ảnh liên quan

Hình 3.1: Các thành phần của Webservice giúp client xác định và gọi các phương thức của Web service  - DTTX_CNTT_xay dung he thong tra cuu loi lap trinh

Hình 3.1.

Các thành phần của Webservice giúp client xác định và gọi các phương thức của Web service Xem tại trang 42 của tài liệu.
Hình3.2: Thứ tự trong lớp HttpWebClientProtocol. - DTTX_CNTT_xay dung he thong tra cuu loi lap trinh

Hình 3.2.

Thứ tự trong lớp HttpWebClientProtocol Xem tại trang 44 của tài liệu.
Hình 3.3: Hộp thoại New Project - DTTX_CNTT_xay dung he thong tra cuu loi lap trinh

Hình 3.3.

Hộp thoại New Project Xem tại trang 46 của tài liệu.
Hình 3.7: Hộp thoại Properties của trang web - DTTX_CNTT_xay dung he thong tra cuu loi lap trinh

Hình 3.7.

Hộp thoại Properties của trang web Xem tại trang 49 của tài liệu.
Hình 3.10: Hộp thoại Add Web Reference - DTTX_CNTT_xay dung he thong tra cuu loi lap trinh

Hình 3.10.

Hộp thoại Add Web Reference Xem tại trang 52 của tài liệu.
Hình 3.11: Mànhình hiển thị các file trong WebServices - DTTX_CNTT_xay dung he thong tra cuu loi lap trinh

Hình 3.11.

Mànhình hiển thị các file trong WebServices Xem tại trang 53 của tài liệu.
Hình 3.12: Tổng quan về bảo mật. - DTTX_CNTT_xay dung he thong tra cuu loi lap trinh

Hình 3.12.

Tổng quan về bảo mật Xem tại trang 54 của tài liệu.
Hình 3.15: Mànhình Computer Management - DTTX_CNTT_xay dung he thong tra cuu loi lap trinh

Hình 3.15.

Mànhình Computer Management Xem tại trang 58 của tài liệu.
Hình 4.2: Sơ đồ hoạt động của hệ thống - DTTX_CNTT_xay dung he thong tra cuu loi lap trinh

Hình 4.2.

Sơ đồ hoạt động của hệ thống Xem tại trang 73 của tài liệu.
Hình 4.3: Sơ đồ tuần tự chức năng của Add-in - DTTX_CNTT_xay dung he thong tra cuu loi lap trinh

Hình 4.3.

Sơ đồ tuần tự chức năng của Add-in Xem tại trang 75 của tài liệu.
Hình 4.4: Sơ đồ tuần tự chức năng quản lý sách - DTTX_CNTT_xay dung he thong tra cuu loi lap trinh

Hình 4.4.

Sơ đồ tuần tự chức năng quản lý sách Xem tại trang 76 của tài liệu.
Hình 4.5: Sơ đồ tuần tự chức năng quản lý phần trong sách - DTTX_CNTT_xay dung he thong tra cuu loi lap trinh

Hình 4.5.

Sơ đồ tuần tự chức năng quản lý phần trong sách Xem tại trang 77 của tài liệu.
Hình 4.6: Sơ đồ tuần tự chức năng quản lý chương trong sách - DTTX_CNTT_xay dung he thong tra cuu loi lap trinh

Hình 4.6.

Sơ đồ tuần tự chức năng quản lý chương trong sách Xem tại trang 78 của tài liệu.
Hình 4.7: Sơ đồ tuần tự chức năng quản lý mục trong sách - DTTX_CNTT_xay dung he thong tra cuu loi lap trinh

Hình 4.7.

Sơ đồ tuần tự chức năng quản lý mục trong sách Xem tại trang 79 của tài liệu.
Hình 4.8: Sơ đồ tuần tự chức năng quản lý lỗi - DTTX_CNTT_xay dung he thong tra cuu loi lap trinh

Hình 4.8.

Sơ đồ tuần tự chức năng quản lý lỗi Xem tại trang 80 của tài liệu.
Hình 4.9: Sơ đồ tuần tự chức năng quản lý thêm mục vào lỗi - DTTX_CNTT_xay dung he thong tra cuu loi lap trinh

Hình 4.9.

Sơ đồ tuần tự chức năng quản lý thêm mục vào lỗi Xem tại trang 81 của tài liệu.
Hình 4.10: Sơ đồ tuần tự chức năng quản lý chi tiết lỗi - DTTX_CNTT_xay dung he thong tra cuu loi lap trinh

Hình 4.10.

Sơ đồ tuần tự chức năng quản lý chi tiết lỗi Xem tại trang 82 của tài liệu.
Hình 4.11: Sơ đồ tuần tự chức năng tìm kiếm trong WebClient - DTTX_CNTT_xay dung he thong tra cuu loi lap trinh

Hình 4.11.

Sơ đồ tuần tự chức năng tìm kiếm trong WebClient Xem tại trang 83 của tài liệu.
Hình 4.12: Cài đặt hệ thống Add-in vào VisualStudio .NET 2003 - DTTX_CNTT_xay dung he thong tra cuu loi lap trinh

Hình 4.12.

Cài đặt hệ thống Add-in vào VisualStudio .NET 2003 Xem tại trang 84 của tài liệu.
Hình 4.14: Mànhình hiển thị Tab Add-In - DTTX_CNTT_xay dung he thong tra cuu loi lap trinh

Hình 4.14.

Mànhình hiển thị Tab Add-In Xem tại trang 85 của tài liệu.
Hình 4.15: Mànhình hiển thị trang chi tiết lỗi - DTTX_CNTT_xay dung he thong tra cuu loi lap trinh

Hình 4.15.

Mànhình hiển thị trang chi tiết lỗi Xem tại trang 86 của tài liệu.
II.4.2. Mànhình chi tiết sách - DTTX_CNTT_xay dung he thong tra cuu loi lap trinh

4.2..

Mànhình chi tiết sách Xem tại trang 88 của tài liệu.
Bảng 4.14: Chức năng các control trong màn hình quản lý phần trong sách - DTTX_CNTT_xay dung he thong tra cuu loi lap trinh

Bảng 4.14.

Chức năng các control trong màn hình quản lý phần trong sách Xem tại trang 91 của tài liệu.
II.4.7. Mànhình quản lý chương - DTTX_CNTT_xay dung he thong tra cuu loi lap trinh

4.7..

Mànhình quản lý chương Xem tại trang 91 của tài liệu.
Hình 4.23: Mànhình quản lý mục trong sách - DTTX_CNTT_xay dung he thong tra cuu loi lap trinh

Hình 4.23.

Mànhình quản lý mục trong sách Xem tại trang 92 của tài liệu.
II.4.8. Mànhình quản lý mục - DTTX_CNTT_xay dung he thong tra cuu loi lap trinh

4.8..

Mànhình quản lý mục Xem tại trang 92 của tài liệu.
Bảng 4.19: Chức năng các control trong màn hình quản lý lỗi - DTTX_CNTT_xay dung he thong tra cuu loi lap trinh

Bảng 4.19.

Chức năng các control trong màn hình quản lý lỗi Xem tại trang 94 của tài liệu.
Hình 4.29: Mànhình thêm mục vào lỗi - DTTX_CNTT_xay dung he thong tra cuu loi lap trinh

Hình 4.29.

Mànhình thêm mục vào lỗi Xem tại trang 96 của tài liệu.
4 Cancel Trở về màn hình lỗi. - DTTX_CNTT_xay dung he thong tra cuu loi lap trinh

4.

Cancel Trở về màn hình lỗi Xem tại trang 96 của tài liệu.
Bảng 4.32: Chức năng các control trong màn hình tra cứu lỗi - DTTX_CNTT_xay dung he thong tra cuu loi lap trinh

Bảng 4.32.

Chức năng các control trong màn hình tra cứu lỗi Xem tại trang 97 của tài liệu.

Từ khóa liên quan