Đề tài Tìm Hiểu C# và WebService

.NET FrameWork là một nền tảng cho thế hệ máy tính mới được thiết kế bởi Microsoft nhằm mục đích đơn giản hoá việc phát triển các ứng dụng hiện đại như : Những chương trình mà ứng dụng cách viết theo Microsoft.NET , sử dụng giao diện đồ hoạ GUIs phức tạp phía người dùng đầu cuối.

doc75 trang | Chia sẻ: vietpd | Lượt xem: 2672 | Lượt tải: 4download
Bạn đang xem trước 20 trang tài liệu Đề tài Tìm Hiểu C# và WebService, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
LỜI CẢM ƠN Suốt quá trình học tập trong trường đại học vừa qua, chúng em đã được quý thầy cô cung cấp và truyền đạt tất cả kiến thức chuyên môn cần thiết và quý giá nhất. Ngoài ra, chúng em còn được rèn luyện một tinh thần học tập và làm việc độc lập, sáng tạo. Đây là tính cách hết sức cần thiết để có thể thành công khi bắt tay vào nghề nghiệp trong tương lai. Luận văn tốt nghiệp là cơ hội để chúng em có thể áp dụng, tổng kết lại những kiến thức mà mình đã học. Đồng thời, rút ra những kinh nghiệm thực tế và quý giá trong suốt quá trình thực hiện đề tài. Sau một học kỳ chúng em tập trung công sức cho đề tài và cùng làm việc cực lực với nhau, đặc biệt là nhờ sự chỉ đạo và hướng dẫn tận tình của thầy Nguyễn Chánh Thành cùng với các thầy cô trong khoa, đã giúp cho chúng em hoàn thành đề tài này một cách thuận lợi và gặt hái được một số kết quả khá khả quan. Bên cạnh những kết quả khiêm tốn mà chúng em đạt được, chắc chắn không tránh khỏi những sai lầm, thiếu sót khi thực hiện luận văn của mình, kính mong thầy cô thông cảm và tha thứ. Sự phê bình, góp ý của quý thầy cô sẽ là những bài học kinh nghiệm rất quý báu cho công việc thực tế của chúng em sau này. Là sinh viên ngành máy tính, chúng em rất tự hào về khoa mà mình đang theo học, tự hào về tất cả các thầy cô của mình. Hỗ trợ các công cụ rất đầy đủ : XML,cơ sở dữ liệu ,ASP.NET,VC++,VB.NET……. Một lần nữa, chúng em xin chân thành cảm ơn công lao dạy dỗ của quý thầy cô. Kính chúc quý thầy cô mạnh khỏe, tiếp tục đạt được nhiều thắng lợi trong nghiên cứu khoa học và sự nghiệp trồng người. Trân trọng kính chào! Sinh viên thực hiện Lê Phước Hùng MỤC LỤC Lời cảm ơn 1 Mục lục 2 Chương I : Giới Thiệu 3 Phần 1 : .NET FrameWork 3 Phần 2 :Tìm Hiểu Về Visual C# 8 Phần 3 : ADO.NET 22 Phần 4 : SQL Server 27 Phần 5 : Dịch Vụ Windows Services 32 Phần 6 : WebService và Các Công Nghệ Liên Quan 36 Phần 7 :Giới thiệu XML 50 Chương II : Phân Tích và Thiết Kế hệ Thống 59 Chương III : Demo và hình ảnh 67 Chương IV : Tổng kết và đánh giá 71 Tài liệu tham khảo 73 CHƯƠNG I : GIỚI THIỆU PHẦN 1 : .NET FrameWork .NET FrameWork là một nền tảng cho thế hệ máy tính mới được thiết kế bởi Microsoft nhằm mục đích đơn giản hoá việc phát triển các ứng dụng hiện đại như : Những chương trình mà ứng dụng cách viết theo Microsoft.NET , sử dụng giao diện đồ hoạ GUIs phức tạp phía người dùng đầu cuối. Những ứng dụng hay chương trình sử dụng Internet. Các ứng dụng truy xuất cơ sở dữ liệu ……. Thật ra, .NET cài đặt một chế độ biên dịch nhiều tầng : trước tiên ,chương trình sẽ được biên dịch sang một dạng trung gian khả chuyển và đến lúc được thực thi ,nó sẽ được biên dịch tức thời (just-in-time Compile hay còn gọi là JIT compile) sang dạng thực thi cuối cùng. Có hai thành phần chính đối với .NET FrameWork :Môi trường thực thi ngôn ngữ chung (Common Language Runtime (CLR)) và thư viện các lớp .NET FrameWork. Sơ đồ cấu trúc .NET FrameWork Các thành phần chính của Microsoft.NET Framework: Sơ đồ các thành phần chính của .NET Ứng dụng .NET được chia ra làm hai loại: cho Internet gọi là ASP.NET, gồm có Web Forms và Web Services và cho destop gọi là Windows Forms .XML được hỗ trợ tối đa , có hai giao thức được sử dụng thông thường nhất trong .NET là TCP/IP và HTTP Việc thiết kế môi trường thực thi ngôn ngữ chung gồm những mục tiêu chính sau: Việc triển khai đơn giản và nhanh hơn :người phát triển sẽ dành nhiều thời gian quyết định nối những thành phần của phần mềm nào lại với nhau nhiều hơn là lập trình thật sự . Các công tác thiết yếu như : quản lý bộ nhớ ,xử lý thông tin …. được giúp đỡ một cách tự động. Hỗ trợ các công cụ rất đầy đủ ..XML,cơ sở dữ liệu ,……. Cài đặt đơn giản và an toàn, hỗ trợ mọi tập tin .DLL . Sử dụng cho từ WindowsCE đến Destop , và Web. Sơ đồ mô tả môi trường thực thi ngôn ngữ chung (CLR) Siêu dữ liệu (Metadata): Các lớp. Net là những lớp có khả năng tự mô tả,chúng mang thông tin miêu tả đi cùng với mình ngay trong file đã biên dịch ra .EXE hoặc DLL.Thông tin này được gọi là siêu dữ liệu(Metadata). Môi trường thực thi ngôn ngữ chung(CLR): là trung tâm điểm của .NET FrameWork, mà .NET cung cấp để quản lý các lớp managed Extensions C++ ,nó là cơ chế để chạy các tính năng của .NET . Trong Net mọi ngôn ngữ lập trình đều được biên dịch ra ngôn ngữ trung gian (Microsoft Intermediate Langage(IL)) ,thực thi ngôn ngữ cuả Microsoft có tên Microsoft Intermediate Language ,hoặc MSIL .Sau đó mã IL này được biên dịch đúng lúc thành mã bẩm sinh vào lúc chạy .Điều này có nghĩa là ,bất kể ngôn ngữ ban đầu của mả nguồn ,các tập tin thi hành và DLL của .NET luôn được triển khai trong IL ,do đó không có điểm khác biệt nào giữa các thành phần thoạt đầu được viết bằng C# và những thành phần được viết bằng VB.NET . Nhờ bắt buộc mọi ngôn ngữ đều phải dùng cùng các loại cùng hệ thống các kiểu dữ liệu thông dụng (Common Type Sytem (CTS)), CLR có thể kiểm soát mọi giao tiếp (interface), gọi giữa các thành phần và cho phép các ngôn ngữ có thể kết hợp với nhau . Tức trong .NET , Chương trình VB.NET có thể kế thừa C# và ngược lại một cách tự nhiên . Gom Rác : Một trong những dịch vụ quan trọng nhất mà CRL cung cấp là cơ chế gom rác [garbage collection ] .Trong C và C++ ,nếu một đối tượng được lập minh dụ [instantiated ] ,bộ nhớ mà nó sử dụng cần được giải phóng trước khi có thể dùng lại .Nếu không thể thực hiện điều naỳ ,ta sẽ bị “rò rỉ bộ nhớ ” [ memory leak ]-hệ thống không thể thu hồi bộ nhớ rảnh.khả năng vận hành của ứng dụng hiển nhiên bị xuống cấp .CRL giải quyết sự cố này bằng cách thực thi một bộ gom gác .Theo quãng thời gian định kỳ (khi không còn chỗ tên vùng phân tạm [head]) ,bộ gom gác sẽ kiểm tra tất cả các tham chiếu đối tượng ,và phóng thích bộ nhớ được lưu giữ bởi các đối đượng đã hết hoạt vi [spoce] và có thể không còn ứng dụng truy cập .Điều này miễn cho lập trình viên khỏi phải huỷ các đối tượng tường minh ,và giải quyết sự cố rò rĩ bộ nhớ . Thư viện các lớp của .NET FrameWork : Là một thư viện các lớp hướng đối tượng cung cấp hầu hết dụng cụ và phương tiện cần thiết để viết nhiều chưong trình ứng dụng đa dạng .Thư viện các lớp .NET FrameWork cung cấp một tập các lớp mà có thể sử dụng từ bất kì ngôn ngữ .NET nào , vì nó được cài đặt để làm việc ở cấp ngôn ngữ IL . Đặc tả ngôn ngữ thông dụng (Common Language Specification (CLS)) :là tập hợp những qui tắc và ràng buộc ,mà trình biên dịch và thư viện mà người lập trình viết ra cần phải tuân theo để bảo đảm cho ngôn ngữ và mã sinh ra có thể tích hợp được với những ngôn ngữ .NET khác .CLS là một tập con của CTS ,và nếu một ngôn ngữ hoặc thư viện tuân thủ theo CLS thì nó hoàn toàn tương hợp với những ngôn ngữ thuộc họ.NET . Assembly(Hợp ngữ): Ứng dụng .NET xây dựng từ các gói hợp ngữ (assemblies) là đơn vị cơ bản của việc đóng gói và nâng cấp phiên bản .Gói hợp ngữ chứa đựng mã IL ( ngôn ngữ trung gian),siêu dữ liệu dùng để mô tả gói hợp ngữ và nội dung của nó,cùng với những file khác cần cho quá trình thực thi.Nó có thể là một tập tin thi hành (.exe ),một DLL,một ứng dụng web ASP.NET được biên dịch ,hay dịch vụ web . Sơ đồ cấu trúc tổng quát của gói hợp ngữ PHẦN 2 : TÌM HIỂU VỀ VISUAL C# C# là gì ? C# là một ngôn ngữ hiện đại hướng đối tượng, là một ngôn ngữ lập trình mới duy nhất phù hợp với các môi trường ở đó năng suất ,năng lực , và Internet là quan trọng .Nó có nguồn gốc từ trong C,C++,java ,và trong một mức độ giới hạn của ngôn ngữ Visual Basic . Với C# ta có thể tạo các dạng đề án khác nhau : Các ứng dụng Console ,các ứng dụng Windows,các ứng dụng ASP.NET ,các thành phần .NET ,và Web Services. Các đề án này có thể phối hợp với nhau để thực thi các ứng dụng n tầng ,có phân phối . 2. C# và Các Ngôn Ngữ Khác + C# và Java : Chắc chắn các đoạn mã C# có thể rất giống với các đoạn mã Java tương đương về công năng .Ví dụ ,cả 2 ngôn ngữ ủng hộ tính năng mã hoá tron gói [one-stop coding] ,gom nhóm các lớp ,các giao diện và cách thực thi với nhau trong một tập tin để các nhà phát triển có thể hiệu chỉnh mã dễ dàng hơn .C# và Java cũng điều quản các đối tượng khá giống nhau : thông qua các tham chiếu thay vì các biến trỏ . C# giữ lại nhiều tính năng mạnh của C++ hơn .Ví dụ ,C # sử dụng tính năng qúa tải toán tử [operator overloading] , các kiểu điểm doanh an toàn kiểu ,các tính năng mà java hoàn toàn bỏ qua . Một khiá cạnh mà java vượt trội hơn C# đó là sự độc lập về nền tảng .Trên lý thuyết , với bytecode java nó có thể đựơc thực thi trên bất kỳ nền tảng nào được trang bị một maý ảo java . Trong khi C# sử dụng một CLR (Common Language Runtime) cũng có tính năng tương tự như máy aỏ của Java nhưng CLR chỉ thực thi trên nền tảng Windows mà thôi . + C# và VB6, VB.NET : - Những điễm khác biệt giữa VB6 và VB.NET là sâu sắc. Với VB6 ,C # mượn cách tiếp cận của VB6 để thiết kế biểu mẩu ,thiết kế giao diện người dùng ; trong cả hai ngôn ngữ ,các nhà phát triển xây dựng các giao diện người dùng bằng cách kéo các điều khiển từ một hộp công cụ ,thả chúng lên các biểu mẩu ,và viết các trình điều quản sự kiện cho chúng .C# khai thác tiến trình với hiệu quả cao ,không những áp dụng nó trong việc phát triển các giao diện người dùng má còn cấu thành các đối tượng doanh nghiệp .Đây là điểm giống nhau thực sự duy nhất giữa C# và VB6 ,bởi các khả năng đối tượng của VB6 không thể so sánh được với các khả năng của C # . Với VB.NET ,đây là phiên bản kế tiếp của VB ,mặc dù được tăng cường các đặc cụ đối tượng của VB trông giống như C# với các từ khóa khác.Thực tế ,các chuyên khu trên web đã cho thấy cùng mã nguồn biên dịch bằng trình biên dịch VB cũng sẽ biên dịch bằng trình biên dịch C# sau khi tay toàn cục vài từ khoá. Ưu điểm nổi bật nhất của C# so với VB.NET là nó chứa các khối mã C++ nhúng,nhanh,hiệu quả. Một ưu điểm đáng kể cuả C# đó là nó có thể dễ dàng thực hiện các lệnh gọi Windows API. C# và C++ : C# và C++ có liên quan với nhau .Thực tế ,có thể xem C# là một tập con đơn giản hơn,năng suất hơn ,an toàn hơn, của C++. - Tính đơn giản của C# đó là cách tiếp cận mã hoá trọn gói của nó đối với việc bảo trì mã : Trong C++ ,phần khai báo được đặt trong các tập tin phần đầu (.h) ăn khớp với các thực thi của chúng trong các tập tin hệ phục vụ (.cpp) .Trong khi,C# gói riêng phần định nghĩa và thực thi của mỗi lớp vào một khối mả trong một tập tin C# (.cs) đơn lẽ. Ngoài ra,tính đơn giản của C# còn thể hiện ở cách mà nó phân gỉai các sự phụ thuộc vào các thành phần bên ngoài .C++ yêu cầu các thành phần tham chiếu ở 2 nơi : 1)Trong các câu lệnh #include trong mã nguồn của đề án và 2)trong danh sách tham chiếu của đề án khách.Để dùng một thành phần phục vụ .NET từ một hệ khách C# ,bạn chỉ cần bổ sung một tham chiếu vào thành phần với bằng lệnh đơn Add Reference ,hoặc Solution Explorer .Không cần #include một tập tin phần đầu.Như vậy ,trong cách tiếp cận đơn giản của nó với các phụ thuộc bên ngoài ,C# giống VB6 nhiều hơn C++. Ngoài việc đơn giản hơn C++,C# cũng an toàn hơn-cho cả nhà phát triển lẩn môi trường thi hành. C# an toàn hơn cho nhà phát triển ở chổ với nó ta viết mã khó gặp lổi hơn .Các ví dụ về sự an toàn này bao gồm việc C# loại bỏ các thành ngữ dễ gặp lổi như các macrô tiền xử lý và các câu lệnh switch … case chuồi qua,cũng như sự cố chấp của trình biên dịch buộc các biến phải được khởi tạo trước khi các giá trị chủa chúng được tham chiếu . C# an toàn hơn cho môi trường phát triển ở chổ nó loại bỏ các biến con trỏ và sự dựa cậy của nó vào tiến trình gom gác cài sẳn khiến không còn rò rỉ bộ nhớ . C# tỏ ra nuâng suất hơn so với C++ ở chổ nó chấp nhận phương pháp hộp công cụ /điều khiển /biểu mẩu để xây dựng các ứng dụng GUI ,nhờ đó có thể nhanh chóng hoàn tất việc thiết kế giao diện người dùng. C# và Jscript : Jscript là một ngôn ngử khác có thể dùng để lập trình .NET.Cú pháp của nó tương tự như C,song đơn giản hơn. Về cơ bản ,Jscript là ngôn ngữ ký mả[scripting] dùng để thực hiện HTML động phía khách ,cả Netcape Navigator lẫn Internet Explorer đều có thể nhận ra Jscript . Giống như C# ,Jscript thừa kế một cú pháp xúc tích và lịch lảm từ C. Khác với C#,Jscript yếu về kiểu;tất cả các biến Jscript đều được khai báo bằng từ khoá Var và theo mặc định có thể chuyển đổi từ gía trị này sang giá trị khác. Do C# sạch hơn và mạnh hơn Jscript ,nên hầu hết các nhà phát triển hướng C sẽ chọn C# nhiều hơn Jscript cho các ứng dụng phía phục vụ.Tuy nhiên , do Netcape Navigator lẫn Internet Explorer đều có thể nhận ra Jscript nên vẫn có thể dùng Jscript để phát triển Các điều khiển web phía khách. Chúng Ta Có thể Làm gì Với C #? Tạo giao diện người sử dụng Giao diện người sử dụng có lẽ là thành phần quan trọng nhất của một ứng dụng. Đối với người sử dụng, giao diện chính là ứng dụng ; họ không cần chú ý đến thành phần mã thực thi bên dưới. Ứng dụng của chúng ta có thể phổ biến được hay không phụ thuộc vào giao diện. Sử dụng những điều khiển chuẩn của C# Ta dùng những điều khiển để lấy thông tin mà người sử dụng nhập vào, và để hiển thị kết xuất. Những điều khiển mà ta có thể dùng trong ứng dụng bao gồm hộp văn bản, nút lệnh, và hộp danh sách,…. Những điều khiển khác cho ta truy xuất những ứng dụng khác, xử lý dữ liệu của nó như là một thành phần mã trong ứng dụng của bạn. Lập trình với những đối tượng. Những đối tượng là thành phần chủ yếu để lập tình Visual Basic. Những đối tượng có thể là winform, những điều khiển hay cơ sở dữ liệu. Đáp ứng những sự kiện chuột và bàn phím Những ứng dụng C# có thể đáp ứng một lượng lớn sự kiện chuột và bàn phím. Ví dụ form, hộp ảnh, và những điều khiển ảnh có thể phát hiện vị trí con trỏ chuột, có thể quyết định phím trái hay phím phải được nhấn, và có thể đáp ứng những tổ hợp của phím chuột với phím Shift, Ctrl, hay Alt. Sử dụng những điều khiển phím, ta có thể lập trình những điều khiển và form để đáp ứng các hành động phím hoặc phiên dịch và xử lý mã Ascii của ký tự. Gỡ rối mã và quản lý lỗi Đôi khi có những lỗi xảy ra bên trong mã của ứng dụng. Những lỗi nghiêm trọng có thể là nguyên nhân một ứng dụng không đáp ứng lệnh, thông thường yêu cầu người sử dụng khởi động lại ứng dụng, và không lưu lại những gì ta đã làm. Quá trình tìm ra và sửa lỗi gọi là gỡ rối. C# cung cấp nhiều công cụ giúp chúng ta phân tích ứng dụng làm việc như thế nào. Những công cụ gỡ rối đặt biệt hữu ích trong việc tìm ra nguồn gốc lỗi, nhưng chúng ta cũng có thể dùng những công cụ này để kiểm tra chương trình hoặc tìm hiểu những ứng dụng khác nhau làm việc như thế nào. Xử lý ổ đĩa, thư mục và file Khi lập trình trong Windows, nó rất quan trọng để có khả năng thêm, di chuyển, tạo mới hoặc xóa những thư mục và file, lấy thông tin về và xử lý ổ đĩa. C# cho phép chúng ta xử lý ổ đĩa, thư mục và file bằng hai phương pháp : qua những phương thức cũ như là điều lệnh Open, Write, và qua một tập hợp các công cụ mới như FSO (File System Object) . Thiết kế cho việc thi hành và tính tương thích C# chia xẻ hầu hết những tính năng ngôn ngữ trong VS.NET cho những ứng dụng, bao gồm :các ứng dụng Console,các ứng dụng Windows,các đề án ASP.NET,và các dịch vụ web,…. Với ứng dụng Console : công dụng phổ biến nhất của ứng dụng console đó là trắc nghiệm các thành phần khác . Với ứng dụng Windows :Khi thi hành ,một chương trình WinForm hiển thị các cửa sổ để người dùng có thể tương tác bằng cách điều tác nhiều điều khiển :hộp liệt kê,nút ,và hộp văn bản khác nhau…. Các đề án ASP.NET : + Active Server Pages (ASP) là một công nghệ phổ dụng của Microsoft để tạo các ứng dụng gốc trình duyệt.Một ứng dụng ASP bao gồm một loạt các trang ASP lưu trữ chung với nhau trong một thư mục trên một hệ phục vụ Web.Mỗi trang là một tập tin .asp chứa các khối HTML pha trộn với các khối VBScript hoặc Jscript phiá phục vụ.Khi một trình duyệt yêu cầu một trang ASP,hệ phục void bàn giao HTML trong trang cho trình duyệt yêu cầu và xử lý các chùm ký mã phía phục vụ mà nó gặp khi nó phục vụ tư liệu. Như vậy ,trong các khối ký mã phía phục vụ các trang ASP có thể triệu gọi các đối tượng doanh nghiệp để truy nạp dữ liệu từ cơ sở dữ liệu hoặc để thực hiện các dịch vụ khác ,tạo các trang động có nội dung thay đổi. +Với ASP.NET hứa hẹn tăng cường đáng kể khả năng khả năng vận hành của ASP bằng cách cho phép các nhà phát triển tạo các trang được biên dịch [compiled] thay vì được diễn dịch [interpreted] .Đúng vậy ;thay vì dùng Jscript hoặc VBScript để mã hoá các trang được diễn dịch lại mỗi lần chúng được yêu cầu ,ta có thể dùng các ngôn ngữ .NET có đầy đủ tính năng (kể cả C#) để mã hoá các trang biên dịch thành IL. Lần đầu tiên khi một trang ASP.NET như vậy được yêu cầu ,mã ASP.NET được phiên dịch thành một tập tin .cs ( hoặc một .vb) mà sẽ được biên dịch sau đó. Trình biên dịch Just-in-Time sẽ chuyển đỗi IL kết qủa thành mã bẩm sinh ,lập cache nó để phòng trường hợp trang được yêu cầu lại .Với cách tiếp cận này ,các trang ASP.NET sẽ chuyển đạt nhanh hơn nhiều so với trang ASP trước đây. Các dịch vụ Web : với các đề án WebService ,cung cấp thông tin cho các thành phần và các ứng dụng khác .Nói một cách đơn giản ,một dịch vụ Web là một lớp có một trình tiền tiêu web.Một trang ASP.NET kết hợp với lớp sẽ cho phép các lớp khác gọi các phương pháp trên lớp đó qua Internet .Dạng thức của các yêu cầu,và dạng thức của các giá trị trả về là giao thức SOAP.Trong WWW mà Microsoft hình dung,tất cả các dịch vụ web khắp thế giới sẽ cung cấp cho các ứng dụng khách t