1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn ngôn ngữ lập trình c

80 1,7K 0

Đang tải... (xem toàn văn)

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 80
Dung lượng 1,85 MB

Nội dung

MụC lục Giới thiệu đề tài Phần I: Giới thiệu sơ NET ngôn ngữ C# I Giới thiệu sơ NET .8 I.1 Giới thiệu chung NET (.NET platform) .8 I.2 Kiến trúc phân lớp NET I.3 Những đặc trng NET I.3.1 Phát triển đa ngôn ngữ I.3.2 Chơng trình ứng dụng độc lập với hệ điều hành vi xử lí 10 I.3.3 Quản lí nhớ tự động .10 I.3.4 Hỗ trợ phiên 10 I.4 Những thành phần NET 11 Nh xem phần trớc, có nhiều thành phần NET Trong phần trình bày thành phần bật tính chất vai trò chúng hệ thống 11 I.4.1 CLR 11 I.4.2 Mã quản lí mã không quản lí ( Managed/Unmanaged Code ) .11 I.4.3 Ngôn ngữ trung gian , hệ thống kiểu thông thờng CLS 12 I.4.4 Th viện lớp sở NET 12 I.4.5 Assembly metadata 13 I.4.6 Chơng trình dịch Just in time .13 I.4.7 Quản lí nhớ ( Garbage Collection ) .13 I.4.8 Vòng đời mã 14 II Giới thiệu sơ ngôn ngữ lập trình C# 14 II.1 Lập trình hớng đối tợng C# 14 II.2 Những đặc điểm ngôn ngữ C# 15 II.2.1 Các toán tử 15 II.2.2 Các kiểu liệu: 15 II.2.3 Các câu lệnh .16 II.2.4 Cấu tạo chơng trình C# .16 II.3 C# vấn đề nâng cao 18 II.3.1 C# với sở liệu 18 II.3.2 C# với Internet 18 Phần II: Đồ họa C# 20 I Giới thiệu GDI+ 20 II Kiến trúc GDI+ 20 II.1 Đồ họa Vector 2D 21 II.2 Hình ảnh 21 II.3 In ấn v hiển thị font chữ 21 III Kiến trúc lớp GDI+ 21 IV Một số điểm GDI+ 22 IV.1 Bút vẽ Gradient 22 IV.2 Đờng cong Spline 23 IV.3 Đối tợng đồ họa độc lập 23 IV.4 Chức chuyển đổi v đối tợng ma trận 23 IV.5 Vùng ảnh co giãn đợc 24 IV.6 Đổ bóng Alpha .24 V Thay đổi mô hình lập trình .24 V.1 Ngữ cảnh thiết bị, Handles v đối tợng đồ họa .24 V.2 Bút vẽ, bút phủ, đồ họa, hình ảnh v Font chữ 25 VI Giới thiệu đối tợng đồ họa GDI+ 25 VI.1 Đồ họa Vector 25 VI.2 Hình ảnh v Metafile 26 VI.3 Các loại hệ tọa độ 27 VI.4 Các phép chuyển đổi .28 Phần III: Đa luồng C# 29 I Khái niệm đa luồng 29 I.1 Đa nhiệm ( multitasking ) 29 I.2 Đa luồng ( multitasking) 29 II Đa luồng C# 30 II.1 Cấu trúc lớp điều khiển luồng C# .31 II.2 Tổng quát phơng thức lớp Thread 32 II.2.1 Tạo luồng ( create thread ) 33 II.2.2 Nhập luồng ( join thread ) 34 II.2.3 Dừng luồng 35 II.2.4 Hủy luồng 35 II.3 Vòng đời luồng 35 II.4 Sự u tiên luồng định thời gian biểu cho luồng 36 II.5 Đồng hóa luồng: 38 II.5.1 Lớp Interlocked: 38 II.5.2 Sử dụng lệnh C# lock: .38 II.5.3 Monitor: .39 Phần IV: XML C# 43 I Lịch sử ngôn ngữ đánh dấu 43 I.1 Khái niệm đánh dấu (markup) 43 I.2 Ngôn ngữ đánh dấu 46 II Tổng quan ngôn ngữ XML 46 II.1 Ngôn ngữ XML gì? .46 II.2 Các u điểm XML 47 II.3 Các ứng dụng XML 47 II.3.1 Mathematical Markup Language (MathML) 47 II.3.2 Resource Description Framework(RDF) 48 II.3.3 XML Linking Language(XLink) 48 II.3.4 Synchronized Multimedia Intergration Language(SMIL) .48 II.3.5 Extensible Stylesheet Language(XSL) .48 II.4 Tơng lai XML 48 III Cấu trúc cú pháp XML 49 III.1 Cấu trúc XML 49 III.1.1 Cấu trúc logic 49 III.1.2 Cấu trúc vật lí 50 III.2 Cú pháp XML 51 III.2.1 Các thẻ gán phần tử .52 III.2.2 Các thuộc tính giải .53 IV XML C# 53 IV.1 Tạo tài liệu XML 53 IV.2 Duyệt tài liệu XML 55 IV.3 Quá trình Serializing 57 IV.4 Quá trình Deserializing 60 Phần V: Lập trình mạng C# 61 I Giới thiệu lập trình mạng 61 I.1 Nhận dạng máy 61 I.2 Socket 62 I.3 Server phục vụ nhiều clients .65 II Giao tiếp với Web .67 II.1 Gửi nhận yêu cầu HTTP .67 II.2 Các yêu cầu Web không đồng 69 II.3 Dịch vụ Web 69 Phần VI: Một vài so sánh C# với ngôn ngữ khác .71 I Sự khác C# C/C++ 71 I.1 Về môi trờng .71 I.2 Về lệnh 71 I.3 Về tổ chức chơng trình .72 II Sự khác biệt C# Java 72 II.1 Về kiểu liệu 72 II.2 Về truy cập thành phần 73 II.3 Các tham số ref out 73 II.4 Giao diện (Interfaces) .74 II.5 Về từ khoá khai báo import using 74 III Sự khác biệt C# VB 6.0 .74 Kết luận 76 Tài liệu tham khảo 77 Phụ lục 78 I Mô tả chơng trình minh họa 78 II Hớng dẫn sử dụng chơng trình 79 III Hớng dẫn cài đặt chơng trình 79 Danh sách hình vẽ Hình Kiến trúc NET Hình Cấu trúc CLR 11 Hình Tô màu bút vẽ Gradient tuyến tính .22 Hình Đờng Bézier đợc tô bút phủ Gradient .23 Hình Chuyển đổi đồ thị 23 Hình Co giãn vùng ảnh 24 Hình Các mức độ suốt màu .24 Hình Hệ trục toạ độ GDI+ 26 Hình Dịch chuyển hệ toạ độ 27 Hình 10 Vòng đời luồng 37 Hình 11 Vòng luân phiên thực luồng 37 Hình 12 Minh hoạ soạn thảo WordPad 43 Hình 13 Mã văn đọc NotePad .44 Hình 14 Mã văn Word đọc NotePad 44 Hình 15 Tạo văn HTML NotePad .45 Hình 16 Cấu trúc XML .49 Hình 17 Khai báo thành phần XML .50 Hình 18 Minh họa cấu trúc ví dụ 52 Hình 19 Kết chơng trình tạo tài liệu IE 6.0 55 Hình 20 Kết ví dụ Serializing IE 6.0 59 Danh sách thuật ngữ viết tắt IE 6.0 = Internet Explorer 6.0 CLS = Common Language Spcification CLR = Common Language Runtime IDE = Integrated Development Environment API = Application Programming Interface VB = Visual Basic VC = Visual C VS = Visual Studio XML = Extensible Markup Language MSIL = IL = Microsoft Intermediate Language COM = Component Object Model IDL = Interface Definition Language DLL = Dynamic Link Library GC = Garbage Collection JIT = Just In Time compiler ADO = ActiveX Data Object MS = Microsoft SQL = Structured Query Language GDI = Graphic Device Independence WMF = Window MetaFile EMF = Enhanced MetaFile CPU = Central Processing Unit RTF = Rich Text Format HTML = Hyper Text Markup Language SGML = Standard Generalized Markup Language Giới thiệu đề tài Trong nhiều năm, lập trình viên C C++ phải đối mặt với vấn đề đau đầu nh: sử dụng trỏ, quản lí nhớ, truyền tham trị, tham biến, xử lý danh sách, xây dựng th viện, đa kế thừa, xây dựng giao diện thân thiện với ngời dùng Vì họ mong muốn, tìm kiếm ngôn ngữ thay có khả nh tính uyển chuyển mạnh nh C C++ lại đơn giản Vào năm 90, giới lập trình có thay đổi lớn với bùng nổ Internet ( Internet Boom ) đời ngôn ngữ lập trình Java Ngay từ đời, Java cho thấy khả to lớn việc phát triển ứng dụng internet Hơn Java thnàh công với tuyên bố write once, run anywhere cố thể tạm dich : viết lần, chạy Thành công xuất phát từ ý tởng tách rời mã biên dịch chơng trình mã chạy chơng trình, điểm khác biệt lớn so với ngôn ngữ lập trình C hay C++ Java đa khái niệm : máy ảo Máy ảo thực công việc nh biên dịch mã máy, quản lí nhớ hay nói cách khác, máy ảo đóng vai trò giao tiếp ứng dụng Java môi trờng ( hệ điều hành, hay phần cứng) làm cho ứng dụng Java độc lập với môi trờng Tuy nhiên tốc độ phát triển Java lại chậm dần, đấp ứng đợc đòi hỏi ngày cao ngời dùng Các hãng phát triển Java chậm đa môi trờng tích hợp IDE phục vụ cho phát triển dự án phần mềm Việc lập trình ứng dụng Windows Java không thuận tiện, Java có nhiều hạn chế việc giao tiếp với ngôn ngữ khác nh C++, Visụal BasicJava phát triển đồng theo xu h ớng thuận tiện cho ngời sử dụng, phải nhiều năm Java hỗ trợ đợc điều khiển Mouse wheel, khó sử dụng th viện API hệ điều hành, phiên Visual J++ Microsoft phát triển lại mang nhiều nét không giống với nguyên Windows XP đời với tuyên bố không hỗ trợ máy ảo Java, không tích hợp máy ảo Java vào trình duyệt IE 6.0 làm uy tín Java suy giảm nặng nề Cuối ngôn ngữ mà lập trình viên mong đợi xuất hiện, đánh dấu chấm hết cho tìm kiếm ngôn ngữ lập trình kéo dài nhiều năm lập trình viên Đợc bắt đầu nghiên cứu từ năm 1997, vào năm 2001, Microsoft giới thiệu platform .Net, với ngôn ngữ - C# C# đợc coi nh ngôn ngữ mang tính cách mạng Microsoft Dựa kinh nghiệm ngôn ngữ trớc nh C, C++ VB, C# đợc thiết kế nhằm sử dụng đơn giản, hoàn toàn hớng đối tợng Với tích hợp C# với VS Net, việc phát triển ứng dụng Windows Web nhanh đơn giản Có thể truy cập vào th viện lớp Net, C# hỗ trợ phát triển ứng dụng ASP.Net dịch vụ Web Bên cạnh đó, C# tăng cờng suất lập trình việc xoá bỏ lỗi thông thờng có C C++ Java thành công lĩnh vực: lập trình ứng dụng server giảng dạy khoa học tính trờng học C# có khả vợt trội Java hai lĩnh vực Trong đề tài này, chúng em trình bày hết vấn đề liên quan đến ngôn ngữ C#, chúng em xin giới thiệu sơ NET C# với số vấn đề nâng cao ngôn ngữ C# nh sau: Giới thiệu sơ NET ngôn ngữ C# Đồ hoạ C# Đa luồng C# XML C# Lập trình mạng C# Một vài so sánh C# với ngôn ngữ khác Trong đề tài này, chúng em không dám trình bày, đánh giá xác, xác đáng Trong làm đề tài có số thuật ngữ Anh khó chuyển tải nghĩa sang tiếng Việt nên đợc giữ nguyên Chúng em kính mong thầy thông cảm góp ý sửa chữa điểm cha tốt báo cáo Phần I: Giới thiệu sơ NET ngôn ngữ C# Nếu nh Java đời, tiếng với tuyên bố: write once, run anywhere, từ chào đời, C# NET đợc nhà thiết kế gắn với tuyên bố: Every language, one platform, tạm dịch là: ngôn ngữ chạy Nền NET ( NET Framework) Vậy NET ? Chúng ta tìm hiểu NET qua vấn đề sau : - Giới thiệu chung NET - Những đặc điểm NET - Những thành phần NET I Giới thiệu sơ NET I.1 Giới thiệu chung NET (.NET platform) Nền NET khái niệm khoa học máy tính; vợt khuôn khổ ngôn ngữ lập trình, th viện; cha phải hệ điều hành, hiểu đơn giản để từ phát triển ứng dụng Windows lẫn Internet thuận tiện Nền NET đợc thiết kế để phục vụ mục đích sau: o Cung cấp môi trờng lập trình hớng đối tợng tuyệt đối, mã chơng trình đợc thực thi máy hay cững thực thi từ máy từ xa thông qua Internet o Giảm thiểu tối đa xung đột version phần mềm o Đem lại môi trờng cho phép ngôn ngữ lập trình giao tiếp với nhau, tích hợp với Chú ý: cần phải phân biệt hai thuật ngữ: NET NET .NET bao gồm thành phần : o Nền NET: cho phép phát triển ứng dụng o Các sản phẩm NET: bao gồm tất sản phẩm Microsoft dựa NET o Các dịch vụ NET: dịch vụ đợc cung cấp Microsoft phục vụ cho việc phát triển ứng dụng chạy NET Nh NET thành phần NET Nền NET gồm hai thành phần chính: Common language runtime ( CLR ) th viện lớp NET Hai thành phần đợc trình bày cụ thể phần sau I.2 Kiến trúc phân lớp NET Hình biểu diễn kiến trúc NET Mỗi ngôn ngữ thuộc gia đình NET ( phiên gồm ngôn ngữ : VC.NET, VB.NET, C#, sau có thêm VJ# ) Hình Kiến trúc NET đợc dịch sang ngôn ngữ trung gian Microsoft ( MSIL hay gọi ngắn IL ) ngôn ngữ dựa theo tiêu chuẩn Common Language Specification ( CLS ) Có loại ứng dụng là: ứng dụng Web, dịch vụ Web, ứng dụng Form Windows Những ứng dụng sử dụng đối tợng, phơng thức từ th viện lớp sở chạy môi trờng CLR I.3 Những đặc trng NET Những đặc trng chủ chốt NET chủ yếu nằm CLR, th viện lớp sơ CLS Chúng em xin trình bày số đặc trng chúng em cho dễ nhận biết nắm bắt I.3.1 Phát triển đa ngôn ngữ Trớc đây, vấn đề sử dụng đa ngôn ngữ ( multilanguage ) hay giao thoa ngôn ngữ lập trình ( cross language ) đợc đề cập nhiều phát triển ứng dụng Đa ngôn ngữ hiểu việc sử dụng nhiều ngôn ngữ phát triển ứng dung, ngôn ngữ viết lên phần ứng dụng Với giải pháp này, ngời lập trình sử dụng ngôn ngữ mà quen thuộc kết hợp sử dụng lại đoạn mã đợc viết ngôn ngữ khác phù hợp với mục đích phần chơng trình định để xây dựng lên ứng dụng hoàn chỉnh Một phơng pháp truyền thống để thực giải pháp xây dựng nên th viện động dll Phơng pháp đợc áp dụng VS 6.0 Mỗi ngôn ngữ xây dựng nên th viện dll Một ngôn ngữ khác sử dụng file dll nh phần th viện Phơng pháp th hai sử dụng mô hình đối tợng hớng thành phần COM ( đề tài không trình bày COM, chúng em điểm qua) Cả hai phơng pháp sử dụng ngôn ngữ định nghĩa giao diện ( IDL ) Với NET, thực việc phối hợp ngôn ngữ dễ dàng Nền NET cho phép ngôn ngữ tích hợp với ngôn ngữ khác việc sử dụng ngôn ngữ trung gian MSIL Tất ngôn ngữ soạn thảo khác nhau, sau đợc dich chơng trình dịch thích hợp, chúng trở thành dạng ngôn ngữ trung gian, khác biệt ngôn ngữ hoàn toàn bị xoá bỏ Ngôn ngữ trung gian đợc đa vào CLR để thực thi I.3.2 Chơng trình ứng dụng độc lập với hệ điều hành vi xử lí Ngôn ngữ trung gian IL ngôn ngữ độc lập với vi xử lí, ngôn ngữ cấp cao ngôn ngữ máy Khi cần thực thi, IL đợc dịch ngôn ngữ máy thích hợp Bất hệ điều hành hỗ trợ NET ứng dụng NET chạy không gặp khó khăn Đối với hệ điều hành thuộc họ Windows từ Win 98 trở nên hỗ trợ NET Tháng 2001, cho đời NET, Microsoft thông báo họ đạt đợc thoả thuận phát triển NET Unix, nhiên đến cha có kết thức Tháng 10 2001, Microsoft cho phép Ximian, ngời phát triển giao diện GNOME thông dụng Linux, phát triển chơng trình dịch C# CLR Linux Phiên có tên Mono tìm www.gomono.net Công việc tiến hành giai đoạn xây dựng th viện sở Linux I.3.3 Quản lí nhớ tự động Rò rỉ nhớ vấn đề phức tạp lập trình ta không quản lý vùng nhớ đợc cấp phát Trong Visual Basic, quản lý nhớ đợc thực kĩ thuật đếm số lần truy cập Trong C C++, cách tốt để quản lý nhớ tự trả lại cho hệ điều hành vùng nhớ không dùng Trong NET, có phận GC( Garbage Collection ) làm nhiệm vụ thu hồi lại vùng nhớ hiệu cách I.3.4 Hỗ trợ phiên Những lập trình viên lập trình với th viện động DLL hẳn biết đến thuật ngữ DLL Hell DLL Hell miêu tả nh sau : bạn sử dụng chơng trình ứng dụng với DLL phiên 1.0, sau bạn cài thêm ứng dụng khác sử dụng DLL giống nh với phiên 1.1 Khi ứng dụng cữ có vấn đề, không chạy Khi bạn thay DLL với DLL phù hợp với ứng dụng cũ ứng dụng lại không chạy Trong NET, thành phần đối tợng đợc phân tách riêng rẽ, ứng dụng load thành phần đợc xây dựng, kiểm tra chạy thử với ứng dụng Sau ứng dụng cài đặt chạy thử thành công chạy .NET thực vấn đề cách sử dụng thêm thành phần assemblies Những thành phần đợc đóng gói lại assembly 10 cỏc tin trỡnh mi lm vic vi server ging nhng client riờng r Sau ú lai gi Accept() ch i nhng kt ni mi using using using using using System; System.Net; System.Net.Sockets; System.IO; System.Threading; public class MultiJabberServer { // Choose a port outside of the range 1-1024: public static readonly int PORT = 1711; public static void Main(){ new MultiJabberServer(); } public MultiJabberServer(){ TcpListener server = new TcpListener(PORT); try { server.Start(); Console.WriteLine("Started: " + server); while (true) { // Blocks until a connection occurs: TcpClient cnxn = server.AcceptTcpClient(); Console.WriteLine( "Connection accepted: "+ cnxn); new ServeOneJabber(cnxn); } } catch (Exception ex) { Console.WriteLine(ex); } finally { server.Stop(); } } } class ServeOneJabber { TcpClient cnxn; internal ServeOneJabber(TcpClient cnxn){ this.cnxn = cnxn; ThreadStart oneServer = new ThreadStart(Run); Thread svrThread = new Thread(oneServer); svrThread.Start(); } public void Run(){ try { StreamReader reader = new StreamReader(cnxn.GetStream()); 66 StreamWriter writer = new StreamWriter(cnxn.GetStream()); writer.AutoFlush = true; Console.WriteLine("Beginning receive loop"); while (true) { String str = reader.ReadLine(); if (str == "END") break; Console.WriteLine("Echoing: " + str); writer.WriteLine(str); } } finally { cnxn.Close(); } } }///:~ MultiJabberServer() to bt u TcpListener v ch i cho cỏc kt ni c to Khi kt ni c to ra, nú s to mt i tng ServerOneJabber, qua ú TcpClient l i din cho kt ni mi ServerOneJabber() to cha TcpClient cnxn l bin instance cựng tờn To mt ThreadStart i din v bt u tin trỡnh mi Thread S to ny thnh cụng mt cỏch nhanh chúng v cho phộp MultiJabberServer tip tc lng nghe ch cỏc yờu cu kt ni khỏc Phng thc ServerOneJabber.Run() l phng thc to mt tin trỡnh i din v nú cha ng cỏc nhn dng i vi cỏc JabberServer ch in mn hỡnh console nhng gỡ gi n nú Trỏch nhim úng TcpClient khụng thuc v MultiJabberServer m ch to nú ỳng hn l phng thc ServerOneJabber.Run() cú s phn hi gi TcpClient.Close() bờn mnh finally Nờn chỳ ý n tớnh n gin ca MultiJabberServer Ngay trc mt TcpListener c to v AcceptTcpClient c gi cho phộp to mt kt ni mi Nhng lỳc nygiỏ tr tr v (ca TcpClient) c to t s to ca ServerOneJabber, cỏi m to tin trỡnh mi v bt tay kt ni Khi kt ni kt thỳc thỡ tin trỡnh ny cng b hy II Giao tiếp với Web II.1 Gửi nhận yêu cầu HTTP Tip theo chỳng ta s tho lun v rt hay, ú l vic to cng nh nhn cỏc yờu cu HTTP requests, chỳng ta s núi v lp trỡnh World Wide Web Nh ngời ó bit World Wide Web l c sở ca Hypertext Transport Protocol (HTTP) Tt nhiờn, hu ht cỏc trỡnh ng dng u cú kiu HTTP request t trỡnh duyt Web Browser, nhng tht hu ớch nu, c bit l vi mc ớch g li thỡ chỳng ta cn bit lp trỡnh vi HTTP Requests .NET Framework SDK cung cp cỏc lp chỳng ta thao tỏc mt cỏch d dng, ú l lp WebRequest v lp HttpWebResquest khụng gian tờn System.Net Yờu cu HTTP n gin nht l gi l gi yờu cu HTTP 67 GET n Uniform Resource Identifier riờng bit V HTTP Server (Web Server) s gi thụng tin phn hi vi mt status code, mt header, v mt message body Vớ d sau thc hin yờu cu trờn: using System; using System.Net; using System.IO; class HttpGet { public static void Main(string[] args){ HttpWebRequest req = (HttpWebRequest) WebRequest.Create(args[0]); Console.WriteLine("Created, but not connected"); HttpWebResponse res = (HttpWebResponse) req.GetResponse(); Console.WriteLine("Status: " + res.StatusCode); foreach(string key in res.Headers.Keys){ Console.WriteLine("Header[{0}]:{1}", key, res.Headers[key]); } Console.WriteLine("Contents:"); StreamReader rdr = new StreamReader( res.GetResponseStream()); Console.WriteLine(rdr.ReadToEnd()); } }///:~ Cỏch to HttpWebRequest cng ging nh cỏc vớ d trc Ta to mt bin kiu HttpWebRequest v cho nú tr n i tng kiu WebRequest Mt kiu khỏc ca WebRequest NET Framework SDK l FileWebRequest, c to bng cỏch a vo tham s i vi WebRequest.Start() l file://, nhng nu bn vit kiu ftp:// bn cú th gi phng thc tnh WebRequest.RegisterPrefix() v WebRequest.Create() s tr v sau ú mt WebRequest mi Yờu cu Request s khụng mang tớnh thc t chuyn ti trờn mng cho n gi WebRequest.GetResponse() Bởi vỡ chỳng ta bit rng chỳng ta ang phõn chia yờu cu bt u vi http:// Sau nhn v HttpWebRespone.StatusCode, sau ú chỳng ta vit Http header vo Console Tiờu header chớnh l thuc tớnh HttpWebResponse.Header xut phỏt t i tng WebHeaderCollection l kiu ca NameValueCollection .NET Framework SDK c thit k cú h tr Microsofts Internet Information Server (IIS) v hu ht cỏc hỡnh thc truy cp trc tip u cú h tr giao din IHttpHandler khụng gian tờn System.Web IHttpHandler nh ngha hai th: mt thuc tớnh bool c gi l IsReusable ch rừ i tng vi kh nng bo v Http Request Khi ang vit mt chng trỡnh Web thnh phn ũi hi trng thỏi gim n mc ti a server ca bn Chớnh vỡ vy nờn thớch hp hn bn t 68 thuc tớnh ny l true Thnh phn thc hai ca IHttpHandler l phng thc IHttpHandler.ProcessRequest(), õy l phng thc to i tng HttpContext Thuc tớnh quan trng nht HttpContext l cỏc i tng HttpRequest v HttpResponse (chỳ ý rng cỏc lp ny khỏc vi cỏc lp m c dựng ti client HttpWebRequest v HttpWebResponse) HttpRequest cha mt s lng ln cỏc thuc tớnh, hu ht c dựng vi thuc tớnh HttpRequest.Form, tr v NameValueCollection vi cỏc nh dng tờn bin v giỏ tr l kiu string II.2 Các yêu cầu Web không đồng Vn khụng c tho lun phn trc ú l phn giao din ca dũng tin NET Framework IO stream cú h tr vo khụng ng b, c gi c hoc vit mt dũng tin khụng phi l gúi S khụng ng b IO s dng thit k khụng ng b m Microsoft ch trng phỏt trin rng sử dng: ú l cú mt khai bỏo bt u v kt thỳc operation v kớch hot kiu i din khụng ng b: public delegate void AsyncCallback(IAsyncResult ar); IasyncResult ar cú mt s trng cha: Mt Object AsyncState l mt i tng domain phn chiu bt k trng thỏi no cn thit cho hm gi ngc tr li WaitHandler AsyncWaitHandler cú th dựng ng b nhiu tin trỡnh phc cỏc iu hnh khụng ng b CompletedSynchronously and IsCompleted l hai thuc tớnh kiu bool xỏc nh s ng b húa begin operation hon thnh v end operation kt thỳc Trong trng hp WebRequest, s ng b húa c gi n phng thc WebRequest.GetResponse() cựng phn hi cựng lỳc vi phng thc bt u begin v kt thỳc end ca WebRequest.BeginGetResponse( ), WebRequest.EndGetResponse( ) thit lp mt Web request thực s ng b nờn dựng nhng phng thc ny cho quỏ trỡnh c khụng ng b ca cỏc dũng Stream phn hi dựng Stream.BeginRead() v Stream.EndRead() II.3 Dịch vụ Web WebServices khụng l cỏc trỡnh ng dng ng u vic thc hin vo gi vi chun Internet Protocol Vi headless, chỳng ta hiu rng WebServices khụng cú phn giao din ngi dựng (tt nhiờn giao din ngi dựng cui cựng thỡ cng cn thit, nhng nú c thit lp bi mt s thnh phn khỏc ch khụng phi WebServices Thay vỡ cỏc i tng hay cỏc mó HTML (cỏc thnh phn giao din), WebServices dựng ti liu XML i vi vic vo v d liu Cỏch m XML input to v XML output xúa nh th no khụng phi l ni dung cn quan tõm ca WebServices Vi Standard Internet Protocols, chỳng ta cú c nhiu kh nng thao tỏc Khi m WebServices tr thnh t thụng dng thỡ cỏc bin t ng 69 hon thnh bng cỏch nhỡn vo danh sỏch cỏc c im ca chỳng v núi rng Nu khụng h tr giao thc ny thỡ khụng th hon thnh c hay l Giao thc ny tht l thit k m rng gii quyt ca chỳng ta Theo hng ú cú nhiu chun i lp i vi bn cht ca cỏc chc nng, bao gm ý ngha cỏc th tc ca th tc c gi v ý ngha m WebServices mụ t Cu trỳc chớnh l cỏc quyt nh bỡnh phm i vi WebServices nhng NET kiờn quyt theo phớa ca Simple Object Access Protocol (SOAP) Sau õy l mt vớ d n gin ca WebServices : chng trỡnh Hello,C# c kt hp vi WebMethodAttribute Nh l mt thnh phn ca trỡnh biờn dch, Visual Studio NET nhn thuc tớnh ny v t ng a lờn IIS qua dch v SOAP IIS iu u cui ca URI thụng qua file asmx vi cỏc cụng c ca WebServices File ny phi cú dũng khai bỏo WebServices riờng u, nhng hn ht l sau ú thỡ cỏc thuc tớnh c hon ton Vớ d ny s tr v thi gian time ca server hin ti: using System; using System.Web.Services; [WebService(Namespace="http://localhost/")] class WhatsTheTime{ [WebMethod] public DateTime Time(){ return DateTime.Now; } }///:~ File c save di dng Xxx.asmx, nú phi c thờm vo khai bỏo , phng thc c khai bỏo dng public v kt hp vi WebMethodAttribute v server ca bn phi ci nn NET Framework IIS cung cp mt dch v c mụ t Web Services Description Language (WSDL) Khi bn khai bỏo : Thỡ phng thc WebMethodAttribute kiu Type s c load t Asssemble th mc /bin Khi bn dựng Visual Studio NET to mt WebServices Project thỡ kiu ca WebServices phi c khai bỏo Khi khai bỏo trang ASP.NET Cng ging nh ADO.NET hay XML thỡ trang ASP.NET cng l mt cụng ngh c to nờn vi C#, nhng nú khụng phi l mt ASP.NET c biờn dch thnh cỏc mó lnh HTML (ging WebServices ó khai bỏo trờn) Chỳng ta khụng núi nhiu v ASP.NET õy m s trỡnh by v nú ti liu khỏc 70 Phần VI: Một vài so sánh C# với ngôn ngữ khác Trong phần này, chúng em đa vài so sánh theo suy nghĩ cá nhân nhằm đa khác biệt C# với ngôn ngữ khác C#, C++, Java coi nh có chung nguồn gốc loại ngôn ngữ lập trình hớng đối tợng nên chúng có độ tơng đồng với tơng đồng với ngôn ngữ khác VB coi tơng đồng với C# I Sự khác C# C/C++ Mã C# quen thuộc với ngời lập trình C C++, nhiên có vài khác biệt I.1 Về môi trờng C# chạy môi trờng NET, điều có nghĩa có nhiều thứ đợc thực tự động, không cần điều khiển ngời lập trình, cụ thể nh sau: Việc xoá bỏ đối tợng đợc thực tự động GC không nhớ để cấp phát GC gọi để thực thu hồi nhớ trờng hợp cá biệt Trong đó, ngời lập trình C++ phải đảm nhiệm việc quản lí nhớ Hoàn toàn kiểu trỏ ngôn ngữ C# Thay vào kiểu liệu tham trị, hoạt động nh trỏ nhng dễ dàng Mã nguồn C# đợc dịch ngôn ngữ trung gian IL, mã nguồn C++ đợc dịch mã máy nên không độc lập với nh C# Các thành phần ứng dụng đợc đóng gói assembly với thông tin metadata ứng dụng, cho phép CLR nạp đủ thành phần ứng dụng C# vào chạy Đối với C++, thành phần đợc định nghĩa lỏng lẻo file h, nhiên việc mát file h hay xảy ra, không dịch đợc chơng trình C++ Khác biệt chứng tỏ điều: ứng dụng C# chạy chạy Việc đa ứng dụng C# vào thực thi cần nhiều thao tác ứng dụng C++ nên cần nhiều thời gian hơn, khó phù hợp với máy có cấu hình thấp Chơng trình C# có khả bắt lỗi runtime xử lí trả mã lỗi nh C/C++ I.2 Về lệnh 71 Các câu lệnh C# giống với C/C++, nhiên kể số khác biệt: Từ khoá new có nghĩa tạo copy kiểu liệu hay đối tợng Đối tợng đợc cấp phát vùng heap nều kiểu tham biến, cấp phát vùng stack kiểu tham trị Tất câu lệnh liên quan đến kiểm tra lô - gíc cần biến kiểu boolean chuyển kiểu từ boolean sang int hay ngợc lại C# có thêm câu lệnh foreach nhằm liệt kê thành phần tập hợp để thực phép lặp Các từ khoá checked unchecked C# đợc sử dụng để kiểm tra xem thao tác số học có bị tràn số hay không Định nghĩa lại phép gán không đợc khuyến khích C# I.3 Về tổ chức chơng trình C# file header, tất mã phải viết lớp hay đơn vị tơng đơng thuộc lớp C# không yêu cầu thứ tự khai báo, định nghĩa biến, lớp Tuy nhiên C# số tính thuận tiện có C++: Đa thừa kế hàm hằng, toán tử phạm vi, tham biến hằng, tham biến ngầm định Khởi tạo chép Define Typedef II Sự khác biệt C# Java C# Java ngôn ngữ hoàn toàn hớng đối tợng nên chắn chúng phải có nhiều điểm giống nhau, nhiên có tớng ứng điểm khác Khác rõ khác biệt C# chạy NET Java chạy máy ảo Java II.1 Về kiểu liệu C# có nhiều kiểu liệu nguyên thuỷ Java Bảng sau tổng kết kiểu Java kiểu tơng ứng C# Trong Java, kiểu nguyên thuỷ đợc phân tách theo lớp lốt ( wrapper class) nó, ví dụ : kiểu integer thuộc lớp Int Tuy nhiên C#, kiểu nguyên thuỷ đợc kế thừa từ lớp object, có nghĩa kiểu int tơng đơng với lớp Int Do mà C# viết nh sau : Console.WriteLine(5.ToString()); 72 số nguyên nhng đợc coi đối tợng Int Nếu viết nh Java có lỗi, Java phải viết nh sau: Console.WriteLine(Integer.toString(5)); Bảng so sánh kiểu liệu Java C#: Java C# gồm loại kiểu liệu tham trị tham biến Tuy nhiên C# hỗ trợ kiểu struct thuộc loại tham trị Java không Do đó, C# định nghĩa thêm kiểu tham trị, Java có kiểu tham trị sẵn có, kiểu liệu ngời dùng định nghĩa kiểu tham biến hay đối tợng thông qua định nghĩa lớp II.2 Về truy cập thành phần Ngoài thuộc tính truy cập nh public, private, protected, C# thêm vào thuộc tính internal Những thành phần có thuộc tính Internal đợc truy cập từ lớp khác project hay xác assembly II.3 Các tham số ref out 73 Trong Java, kiểu liệu tham trị đợc truyền theo kiểu tham trị lời gọi hàm Tuy nhiên, C# cho phép kiểu tham trị truyền theo kiểu tham biến lời gọi hàm khai báo từ khoá ref đứng trớc tham số Từ khoá out có chức nh từ khoá ref, nhiên tham số dùng với từ khoá out không cần phải khởi tạo giá trị trớc gọi II.4 Giao diện (Interfaces) Interface Java có số C# không Khi thực thi Interface, C# cấp lời gọi tờng minh thực thi Interface Điều cho phép class thực thi Interface từ nguồn khác có tên thành phần ( vấn đề đợc coi nh góc tối tăm C++ thực thừa kế , dẫn theo sách Lập trình C++ Ngô Trung Việt) II.5 Về từ khoá khai báo import using Trong Java khai báo import dùng để định vị gói th viện vào chơng trình nh kiểu th viện.Trong C#, từ khoá using dùng để báo hiệu cho chơng trình dịch có sử dụng th viện ghi vào assembly, th viện dạng th viện động, đợc load vào chơng trình CLR sau đọc metadata lúc thực chơng trình Tuy nhiên, C# có thiếu sót mà lại điểm mạnh Java applet Applet thực ứng dụng Web, đợc viết từ nơi nhng lại chạy máy khách bất kì, làm giảm thời gian truyền mạng nhng lại thực đợc nhiều công việc phức tạp nh xử lí âm thanh, hình ảnh, đa luồng trang Web Tuy nhiên lại không an toàn Applet lấy cắp thông tin máy khách truyền Do đó, C# không hỗ trợ Applet, thay vào vào ứng dụng Web kiểu dựa công nghệ ASP, tất ứng dụng đợc chạy server, trang Web đóng voi trò giao tiếp với ngời dùng mà Ngoài Java, tất công việc không lỗi nh vào ra, độc file phải dùng cặp try catch để bắt lỗi Trong C# không bắt buộc lập trình viên phải thực try catch tình Điều có nghĩa là, ngời lập trình C# phải cẩn thận lập trình III Sự khác biệt C# VB 6.0 VB 6.0 C# thuộc hai kiểu ngôn ngữ khác VB 6.0 lập trình hớng kiện, có tính chất lập trình hớng đối tợng C# hoàn toàn hớng đối tợng Do đó, VB C# khác gần nh hoàn toàn Rất khó tìm đợc tơng đồng C# VB Vb phù hợp cho dự án dựa Windows nhỏ, nhanh Nói chung định dạng ngôn ngữ C# đơn giản VB 6.0 rờm rà VB tồn cặp Begin End, For- to, C# dơn giản nhiều, For each C# VB phải có cách trống For each Điều làm giảm suất lập trình mhiều VB nh C++, tách biệt với hệ điều hành, chạy 74 thẳng Windows, sử dụng th viện Windows nên phụ thuộc máy Hệ thống th viện VB nhỏ, thờng không đáp ứng nhu cầu ngày tăng ngời lập trình Về kiểu liệu, VB hớng đối tợng nên khác hoàn toàn với kiểu liệu C#, kiểu liệu VB thiên ngôn ngữ phi đối tợng trớc nh Pascal Nói tóm lại, C# hoàn toàn vợt trội so với VB 75 Kết luận Trong suốt báo cáo này, chúng em trình bày vài đặc điểm nh khả C#, cụ thể đặc điểm hệ thống NET với ngôn ngữ C#, khả C# lĩnh vực đồ hoạ, thực tính toán song song, lập trình mạng Chúng em cững đa vài so sánh, nhận xét C# tơng quan với ngôn ngữ khác Có thể thấy rằng, C# ngôn ngữ đại, đơn giản, song có khả cao việc phát triển dự án phần mềm C# có đầy đủ tính tốt ngôn ngữ trớc đồng thời hạn chế nhiều lỗi mà ngôn ngữ trớc mắc phải C# đời đợc năm, ngôn ngữ giai đoạn phát triển để hoàn thiện, vào điểm này, khó đánh giá toàn u nhợc điểm C# Trong tơng lai, C# có lẽ trở thành ngôn ngữ lập trình thông dụng Chúng em xin kết thúc đề tài Chúng em xin chân thành cảm ơn thày giáo Nguyễn Ngọc Bình hớng dẫn chúng em tiếp cận thực đề tài 76 Giới thiệu ngôn ngữ lập trình C# khảo Tài liệu tham Tài liệu tham khảo [1] Anders Hejlsberg, Scott Wiltamuth; C# Language Reference; Microsoft press [2] Adrian Turtschi; C# N ET Developers Guide; Syngress [3] Eric Gunnerson; A Programmer's Introduction to C#; Apress [4] Evangelos Petroutsos; Mastering Visual Basic Net Multithreading Tutorial; Sybex [5] Jesse Liberty; Programming C#; O'Reilly [6] Larry O Brien, Bruce Eckel; Thingking in C#; Prentice Hall [7] MSDN Library; Microsoft press [8] Ngô Trung Việt; Hớng dẫn lập trình C++; NXB Giao Thông Vận Tải [9] Paul Deitel; Tự học ngôn ngữ lập trình Java; NXB Thống Kê [10] R Allen Wyke; XML programming; Microsoft press 77 Giới thiệu ngôn ngữ lập trình C# Phụ lục Phụ lục I Mô tả chơng trình minh họa Chơng trình có nhiệm vụ tìm kiếm thuật ngữ ( tìm kiếm xác) Website định Những nhiệm vụ cụ thể chơng trình: Ngời dùng nhập xác thuật ngữ địa Website cần tìm Chơng trình trả trang Web site số lần xuất hiện, chúng đợc hiển thị lên hình Chơng trình xắp xếp giảm dần số lần xuất thuật ngữ trang Web Để cài đặt ứng dụng có đầy đủ phần tìm hiểu báo cáo phức tạp, chúng em chọn cài đặt ứng dụng thể yếu tố: lập trình ứng dụng có giao diện đồ hoạ Windows, có giao tiếp với Internet, có sử dụng kĩ thuật đa luồng Chơng trình gồm lớp sau: Search Engine Search Image Engine lister Search Text Engine docparser docfetcher Lớp lister: giao diện với ngời sử dụng Lớp docparser: phân tích, tòm kiếm thông tin trang Web Lớp docfetcher: lấy thông tin Web pages từ Internet Hoạt động chơng trình: Lister nhn thut ng , a ch Website , truyn cho Docparser Docparser truyn a ch Website cho Docfetcher Docfetcher nhn a ch Website , ly thụng tin t Internet tr v cho Docparser Docparser tỡm kim , tr v a ch Webpage cho lister, Docparser ly cỏc link trang trýc ri lp li quỏ trỡnh trớc Cấu trúc liệu chơng trình: 78 Giới thiệu ngôn ngữ lập trình C# Phụ lục Giai đoạn tìm kiếm hiển thị buộc phải tiến hành song song liệu từ Website lớn, khó tìm hết thời gian ngắn, ngời dùng lại muốn nhìn thấy kết ngay, nên việc phải tiến hành đồng thời Chơng trình sử dụng luồng, luồng chịu trách nhiệm tìm kiếm, phân tích thông tin từ Website, đa địa trang Web số lần thuật ngữ xuất vào hàng, luồng chịu trách nhiệm vào hàng lấy địa trang Web sô lần xuất hiển thị Chơng trình có sử dụng giải thuật tìm kiếm nhanh để tìm kiếm thuật ngữ nh link trang Web Quá trình duyệt link trang Web sử dụng trình duyệt theo chiều rộng II Hớng dẫn sử dụng chơng trình Để sử dụng chơng trình này, ngời dụng nhập thuật ngữ cần tìm vào ô Input a key word, thuật ngữ phải nhập xác, không thừa kí tự cách trống Đối với tiếng Việt , ngời dùng sử dụng gõ VietKey để gõ tiếng Việt Unicode, gõ trực tiếp ( chơng trình tích hợp sẵn gõ Unicode theo dạng Telex) ví dụ: - Để nhập Việt Nam gõ nh sau: Vieejt Nam - Để nhập Tổ Quốc gõ nh sau: Toor Quoosc Sau nhập xong thuật ngữ , ngời dùng nhập địa Website cần tìm: cần nhập đủ nh sau: http://tenwebsite/[địa cụ thể] [ .] : phần tuỳ chọn Ví dụ: http://www.vnexpress.net http://www.msn.com/index.htm Nếu bạn nhập không đủ, nhập sai hai phần chơng trình không chạy hay chạy không xác, sau nhập xong, kích vào nút SEARCHING WITH GOOGLE, chơng trình bắt đầu tìm kiếm Thanh StatusBar cuối hình trang tìm kiếm Nếu tìm thấy trang có thuật ngữ, chơng trình hiển thị lên hình cung với số lần xuất thuật ngữ Nến muốn xem trang đó, ngời dùng cần kích chuột vào phần địa trang Nếu nh ngời dùng thấy không cần tìm kích vào nút ENOUGH FOR ME , chơng trình kết thúc tìm kiếm Nếu ngời dùng muốn xắp xếp trang theo thứ tự tần xuất xuất thuật ngữ giảm dẫn kích vào nút PLEASE ARRANGE Trong chạy chơng trình, ngời sử dụng thay đổi nội dung hột nhập, hay kích vào nút SEARCHING WITH GOOGLE chơng trình kết thúc hay tìm lại từ đầu III Hớng dẫn cài đặt chơng trình 79 Giới thiệu ngôn ngữ lập trình C# Phụ lục Việc cài đặt chơng trình chạy chơng trình phức tạp - Mọi ngời vào th mục RUN đĩa CD - Chơng trình phải chạy NetFramework Nếu máy tính bạn có cài NetFramework cài NetFramework bỏ qua bớc này, cha bạn vào th mục Microsoft NetFramework, chạy file dotnetfx để cài đặt NetFramework - Sau cài đặt xong NetFramework , bạn tiến hành cài đặt chơng trình đồ án Các bạn vào th mục: Bai tap lon huong doi tuong, chạy file cài đặt CaiDatBaitaplonB5_tin2 hay chạy file cài đặt Setup - Chơng trình cài đặt hớng dẫn bạn thực bớc lại để thực cài đặt chơng trình - Sau cài đặt chơng trình, file chạy chơng trình file BaitaplonB5_tin2.exe , file xuất hình Desktop máy ban, menu Start -> Program, th mục mà bạn chọn cài đặt chơng trình Bạn chạy chơng trình BaitaplonB5_tin2.exe sử dụng chơng trình 80 [...]... GDI+ cung cp c c lp v cu tr c lu tr thụng tin v c c thc th c s, c c lp lu tr thụng tin v c ch thc m c c thc th ny c dng v c c lp chu trỏch nhim hin th hỡnh nh lờn thit b Vớ d, cu tr c Rectangle lu tr thụng tin v v trớ v kớch c ca hỡnh ch nht; lp Pen lu tr thụng tin v mu sc, rng ng thng v kiu ng thng; C n lp Graphics c c c phng thc cho dng ng thng, hỡnh ch nht, th v c c hỡnh hỡnh hc kh c Cũn c thờm... ha vector liờn quan n vic v c c thc th ha c s nh ng thng, ng cong hay khi hỡnh c cho bi mt tp hp c c im trờn mt h ta Vớ d, mt ng thng c th c x c nh bng 2 im cui ca nú, 1 hỡnh ch nht c th c x c nh bng c ch ch ra 1 im x c nh nh trỏi trờn v 1 cp s x c nh chiu cao v chiu rng ca nú Mt th n gin c th c x c nh bi 1 mng c c im c ni vi nhau bi ng thng 1 ng Bộzier spline l mt ng cong tinh vi c x c nh bi... và kết tập II.2 Những đ c điểm c a ngôn ngữ C# C# đ c xây dựng từ những ngôn ngữ tiền đ c biệt là C và C+ + cho nên những đ c điểm ngôn ngữ c a C# rất giống với ngôn ngữ C, C+ + Trong phần này, chúng em sẽ trình bày một vài đ c điểm c a C# II.2.1 C c toán tử Trong C# c c c toán tử thông thờng sau: C c toán tử một toán hạng: ++,- -, !,~ C c toán tử hai toán hạng: *, /, %, +, C c toán tử gán: =, *=,... một ngôn ngữ trên NET thì c ng phải dựa theo CLS để xây dựng chơng trình dịch gọi là chơng trình dịch CLS Ngôn ngữ trung gian IL đ c dịch ra từ mã nguồn c a một ngôn ngữ lập trình c p cao bằng một chơng trình dịch CLS, ngôn ngữ trung gian IL sau đó đ c CLR dịch lại một lần nữa ra mã máy để th c thi I.4.4 Th viện lớp c sở c a NET NET c một th viện đố sộ những kiểu dữ liệu c thể sử dụng lại, đ c tích... tợng C# cung c p một tập c c kiểu đ c định nghĩa tr c hầu hết đã c trong C và C+ + Ngoài ra , C# lại đa thêm vào kiểu boolean, string giống nh trong Pascal C# cho phép chuyển kiểu giống nh C nà C+ + 15 II.2.3 C c câu lệnh C# kế thừa hầu hết c c câu lệnh từ C và C+ +, tuy nhiên c ng c một vài bổ xung và thay đổi đánh chú ý Chúng ta sẽ điểm qua c c câu lệnh sau: C c lệnh đ c gán nhãn và lệnh goto: c c. .. Matrix lu tr v thc hin c c thao t c chuyn i ta trong i tng Graphics c dựng thc hin c c phộp quay, t l v lt nh GDI+ cung cp mt vi cu tr c (vớ d nh Rectangle, Point hay Size) t chc d liu ha Mt vi lp kh c cng phc v ch yu cho mc ớch lu tr c c cu tr c d liu Vớ d lp BitmapData h tr lp Bitmap, lp PathData h tr cho lp GraphicsPath GDI+ nh ngha mt vi kiu lit kờ Chỳng l c c tp hp ca c c hng c liờn quan Vớ... luồng (tiểu trình) C c công vi c trong một tiến trình c thể th c hiện tuần tự, l c này chỉ c một luồng chạy th c hiện 29 c c công vi c, ta gọi đây là chế độ đơn luồng C c công vi c của tiến trình c ng c thể th c hiện đồng thời, l c này c nhiều luồng th c hiện nhiều c ng vi c Nh vậy ta gặp lại hình ảnh đa nhiệm trong đa luồng, chúng c thể phân biệt chúng đơn giản nh sau: Đa nhiệm: bao gồm c c ứng dụng... _CorExeMain đ c chèn vào điểm nhập c a chơng trình Bộ phận Loader nhảy vào điểm nhập chơng trình và gọi hàm _CorExeMain th c thi Khi _CorExeMain th c thi, nó gọi chơng trình dịch JIT ra th c thi JIT dịch mã IL sang mã máy và đa vào th c thi đồng thời đ c dự trữ ở bộ nhớ đệm để khi c n không phải dịch lại II Giới thiệu sơ bộ ngôn ngữ lập trình C# C thể coi ngôn ngữ lập trình C# là ngôn ngữ lập trình đơn... c ch v kiu kh c nhau GDI+ cung cp mt s lng rt n tng h tr cho c c nhim v phc tp ny Mt trong nhng c c c tớnh mi ca GDI+ l chng rng ca, cho phộp hin th ch vit mn hn trờn c c mn hỡnh CRT phng v mn hỡnh LCD III Kiến tr c lớp c a GDI+ 21 Giao din lp c qun lý ca GDI+ cha 60 lp, 50 kiu lit kờ, 8 kiu cu tr c Lp Graphics l phn trung tõm ca c c chc nng ca GDI+, nú chu trỏch nhim dng ng thng, ng cong, hỡnh nh... myGraphics.DrawLine(myPen, 0, 0, 160, 80): Hình 9 Dịch chuyển hệ toạ độ Phộp chuyn i thc hin vic ỏnh x h ta thc vo h ta trang c gi l phộp chuyn i h ta thc v c lu trong thuc tớnh Transform ca lp Graphics Phộp chuyn i thc hin vic ỏnh x ta trang vo h ta thit b c gi l mt phộp chuyn i trang Lp Graphics cung cp c c thuc tớnh PageUnit v PageScale x lý c c chuyn i trang Lp ny cng cung cp c c thuc tớnh

Ngày đăng: 02/11/2016, 00:41

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Anders Hejlsberg, Scott Wiltamuth; C# Language Reference; Microsoft press [2] Adrian Turtschi ; C# . N ET Developer’s Guide; Syngress Sách, tạp chí
Tiêu đề: Anders Hejlsberg, Scott Wiltamuth"; C# Language Reference; Microsoft press[2] "Adrian Turtschi
[3] Eric Gunnerson; A Programmer's Introduction to C#; Apress Sách, tạp chí
Tiêu đề: Eric Gunnerson
[4] Evangelos Petroutsos; Mastering Visual Basic .Net Multithreading Tutorial;Sybex Sách, tạp chí
Tiêu đề: Evangelos Petroutsos
[5] Jesse Liberty; Programming C#; O'Reilly Sách, tạp chí
Tiêu đề: Jesse Liberty
[6] Larry O Brien, Bruce ’ Eckel; Thingking in C#; Prentice Hall [7] MSDN Library; Microsoft press Sách, tạp chí
Tiêu đề: Larry O Brien, Bruce
[10] R. Allen Wyke; XML programming; Microsoft press Sách, tạp chí
Tiêu đề: R. Allen Wyke

TỪ KHÓA LIÊN QUAN

w