Giáo trình sử dụng một số quy ước như sau: Các thuật ngữ được giới thiệu lần đầu tiên sẽ in nghiêng. Mã nguồn của chương trình minh họa dùng font Verdana -10. Các từ khóa của C# dùng font Verdana-10, đậm hoặc Verdana-10, bình thường. Tên namspace, lớp, đối tượng, phương thức, thuộc tính, sự kiện... dùng font Verdana10. Kết quả của chương trình xuất ra màn hình
h a n g e Vi e N y to k lic c Tham Khảo Giáo trình “Ngơn ngữ Lập trình C#” biên dịch tổng hợp từ: Programming C#, Jesse Liberty, O’Reilly C# in 21 Days, Bradley L.Jones, SAMS Windows Forms Programming with C#, Erik Brown, Manning MSDN Library – April 2002 Quy ước Giáo trình sử dụng số quy ước sau: Các thuật ngữ giới thiệu lần in nghiêng Mã nguồn chương trình minh họa dùng font Verdana -10 Các từ khóa C# dùng font Verdana-10, đậm Verdana-10, bình thường Tên namspace, lớp, đối tượng, phương thức, thuộc tính, kiện dùng font Verdana10 Kết chương trình xuất hình console dùng font Courier New-10 d o m o o c u -tr a c k C w w w d o m C lic k to Ngôn Ngữ Lập Trình C# w w w w bu bu y N O W ! XC er O W F- w PD h a n g e Vi e ! XC er PD F- c u -tr a c k c h a n g e Vi e N y to k lic c Chương MICROSOFT NET Tình hình trước MS.NET đời Nguồn gốc NET Microsoft NET Tổng quan Kiến trúc NET Framework Common Language Runtime (CLR) Thư viện NET Framework Phát triển ứng dụng client Biên dịch MSIL Ngơn ngữ C# Tình hình trước MS.NET đời Trong lĩnh vực công nghệ thông tin giới ngày nay, với phát triển liên tục đa dạng phần mềm, hệ điều hành, môi trường phát triển, ứng dụng liên tục đời Tuy nhiên, việc phát triển không đồng lợi ích khác công ty phần mềm lớn làm ảnh hưởng đến người xây dựng phần mềm Cách vài năm Java Sun viết ra, có sức mạnh đáng kể, hướng tới việc chạy nhiều hệ điều hành khác nhau, độc lập với xử lý (Intel, Risc,…) Đặc biệt Java thích hợp cho việc viết ứng dụng Internet Tuy nhiên, Java lại có hạn chế mặt tốc độ thực tế chưa thịnh hành Mặc dù Sun Corporation IBM có đẩy mạnh Java, Microsoft dùng ASP để làm giảm khả ảnh hưởng Java Để lập trình Web, lâu người ta dùng CGI-Perl gần PHP, ngôn ngữ giống Perl tốc độ chạy nhanh Ta triển khai Perl Unix/Linux hay MS Windows Tuy nhiên có nhiều người khơng thích dùng thân ngơn ngữ hay qui ước khác thường Perl không phát triển thống nhất, công cụ xây dựng cho Perl mạnh nhiều nhóm phát triển người ta khơng đảm bảo tương lai ngày tốt đẹp Microsoft NET d o m o o c u -tr a c k C w w w d o m C lic k to Ngôn Ngữ Lập Trình C# w w w w bu bu y N O W ! XC er O W F- w PD h a n g e Vi e ! XC er PD F- c u -tr a c k c h a n g e Vi e N y to k lic c Trong giới phát triển ứng dụng Windows ta viết ứng dụng Visual C++, Delphi hay Visual Basic, số công cụ phổ biến mạnh Trong Visual C++ ngơn ngữ mạnh khó sử dụng Visual Basic đơn giản dễ học, dễ dùng nên thơng dụng Lý Visual Basic giúp viết chương trình Windows dễ dàng mà không cần thiết phải biết nhiều cách thức MS Windows hoạt động, ta cần biết số kiến thức tối thiểu MS Windows lập trình Do theo quan điểm Visual Basic nên liên kết với Windows điều tự nhiên dễ hiểu, hạn chế Visual Basic ngôn ngữ hướng đối tượng (Object Oriented) Delphi hậu duệ Turbo Pascal Borland Nó giống tương đối dễ dùng Visual Basic Delphi ngôn ngữ hướng đối tượng Các điều khiển dùng Form Delphi tự động khởi tạo mã nguồn Tuy nhiên, chức khởi động mã nguồn Delphi gặp rắc rối có can thiệp người dùng vào Sau công ty Borland bị bán chuyên gia xây dựng nên Delphi chạy qua bên Microsoft, Delphi khơng cịn phát triển tốt nữa, người ta không dám đầu tư triển khai phần mềm vào Delphi Công ty sau phát triển dịng sản phẩm Jbuilder (dùng Java) khơng cịn quan tâm đến Delphi Tuy Visual Basic bền không cần phải khởi tạo mã nguồn Form thiết kế Visual Basic có nhiều khuyết điểm : Không hỗ trợ thiết kế hướng đối tượng, khả thừa kế (inheritance) Giới hạn việc chạy nhiều tiểu trình ứng dụng, ví dụ ta khơng thể dùng Visual Basic để viết Service kiểu NT Khả xử lý lỗi yếu, khơng thích hợp mơi trường Multi- tier Khó dùng chung với ngơn ngữ khác C++ Khơng có User Interface thích hợp cho Internet Do Visual Basic khơng thích hợp cho viết ứng Web Server nên Microsoft tạo ASP (Active Server Page) Các trang ASP vừa có tag HTML vừa chứa đoạn script (VBScript, JavaScript) nằm lẫn lộn Khi xử lý trang ASP, tag HTML gởi thẳng qua Browser, cịn script chuyển thành dòng HTML gởi đi, ngoại trừ function hay sub ASP vị trí script khác quan trọng Khi số chức viết tốt người ta dịch thành ActiveX đưa vào Web Server Tuy nhiên lý bảo mật nên ISP (Internet Service Provider) làm máy chủ cho Web site thường dè đặt cài ActiveX lạ máy họ Ngoài việc tháo gỡ phiên ActiveX cơng việc khó, thường xun làm cho Administrator nhức đầu Những người quản lý version DLL Windows điều than phiền phải đăng ký DLL đăng ký phiên DLL mà Và từ “DLL Hell” xuất tức địa ngục DLL… Microsoft NET d o m o o c u -tr a c k C w w w d o m C lic k to Ngơn Ngữ Lập Trình C# w w w w bu bu y N O W ! XC er O W F- w PD h a n g e Vi e ! XC er PD F- c u -tr a c k c h a n g e Vi e N y to k lic c Sau để giúp cho việc lập trình ASP nhanh cơng cụ Visual InterDev, IDE (Integrated Development Environment) đời Visual InterDev tạo Design Time Controls cho việc thiết kế điều khiển web,… Tiếc thay Visual InterDev không bền vững nên sau thời gian nhà phát triển rời bỏ Tóm lại thân ASP cịn số khuyết điểm quan trọng, chạy Internet Information Server với Windows NT 4, ASP không đáng tin cậy Tóm lại giới lập trình theo Microsoft việc lập trình desktop lập trình hệ phân tán hay web khơng nhịp nhàng cho Để chuyển từ lập trình client hay desktop đến lập trình web chặng đường dài Nguồn gốc NET Đầu năm 1998, sau hoàn tất phiên Version Internet Information Server (IIS), đội ngũ lập trình Microsoft nhận thấy họ cịn nhiều sáng kiến để kiện tồn IIS Họ bắt đầu xây dựng kiến trúc tảng ý tưởng đặt tên Next Generation Windows Services (NGWS) Sau Visual Basic trình làng vào cuối 1998, dự án mang tên Visual Studio xác nhập vào NGWS Đội ngũ COM+/MTS góp vào universal runtime cho tất ngơn ngữ lập trình chung Visual Studio, tham vọng họ cung cấp cho ngơn ngữ lập trình công ty khác dùng chung Công việc xúc tiến cách hồn tồn bí mật hội nghị Professional Developers’ Conference Orlado vào tháng 7/2000 Đến tháng 11/2000 Microsoft phát hành Beta NET gồm đĩa CD Tính đến lúc Microsoft làm việc với NET gần năm rồi, Beta tương đối vững .NET mang dáng dấp sáng kiến áp dụng trước p-code UCSD Pascal Java Virtual Machine Có điều Microsoft góp nhặt sáng kiến người khác, kết hợp với sáng kiến để làm nên sản phẩm hoàn chỉnh từ bên lẫn bên ngồi Hiện Microsoft cơng bố phiên release NET Thật Microsoft đặt cược vào NET theo thơng tin cơng ty, tập trung 80% sức mạnh Microsoft để nghiên cứu triển khai NET (bao gồm nhân lực tài ?), tất sản phẩm Microsoft chuyển qua NET Microsoft NET Tổng quan Microsoft NET gồm phần : Framework Integrated Development Environment (IDE) Framework cung cấp cần thiết bản, chữ Framework có nghĩa khung hay khung cảnh ta dùng hạ tầng sở theo qui ước định để công việc trôi chảy IDE cung cấp mơi trường giúp triển khai dễ dàng, nhanh chóng ứng dụng dựa tảng NET Nếu khơng có IDE 10 Microsoft NET d o m o o c u -tr a c k C w w w d o m C lic k to Ngơn Ngữ Lập Trình C# w w w w bu bu y N O W ! XC er O W F- w PD h a n g e Vi e ! XC er PD F- c u -tr a c k c h a n g e Vi e N y to k lic c dùng trình soạn thảo ví Notepad hay trình soạn thảo văn sử dụng command line để biên dịch thực thi, nhiên việc nhiều thời gian Tốt dùng IDE phát triển ứng dụng, cách dễ sử dụng Thành phần Framework quan trọng NET cốt lõi tinh hoa mơi trường, cịn IDE công cụ để phát triển dựa tảng thơi Trong NET tồn ngơn ngữ C#, Visual C++ hay Visual Basic.NET dùng IDE Tóm lại Microsoft NET tảng cho việc xây dựng thực thi ứng dụng phân tán hệ Bao gồm ứng dụng từ client đến server dịch vụ khác Một số tính Microsoft NET cho phép nhà phát triển sử dụng sau: Một mơ hình lập trình cho phép nhà phát triển xây dựng ứng dụng dịch vụ web ứng dụng client với Extensible Markup Language (XML) Tập hợp dịch vụ XML Web, Microsoft NET My Services cho phép nhà phát triển đơn giản tích hợp người dùng kinh nghiệm Cung cấp server phục vụ bao gồm: Windows 2000, SQL Server, BizTalk Server, tất điều tích hợp, hoạt động, quản lý dịch vụ XML Web ứng dụng Các phần mềm client Windows XP Windows CE giúp người phát triển phân phối sâu thuyết phục người dùng kinh nghiệm thông qua dịng thiết bị Nhiều cơng cụ hỗ trợ Visual Studio NET, để phát triển dịch vụ Web XML, ứng dụng Windows hay web cách dể dàng hiệu Kiến trúc NET Framework NET Framework platform làm đơn giản việc phát triển ứng dụng môi trường phân tán Internet .NET Framework thiết kế đầy đủ để đáp ứng theo quan điểm sau: Để cung cấp mơi trường lập trình hướng đối tượng vững chắc, mã nguồn đối tượng lưu trữ thực thi cách cục Thực thi cục phân tán Internet, thực thi từ xa Để cung cấp môi trường thực thi mã nguồn mà tối thiểu việc đóng gói phần mềm tranh chấp phiên Để cung cấp môi trường thực thi mã nguồn mà đảm bảo việc thực thi an toàn mã nguồn, bao gồm việc mã nguồn tạo hãng thứ ba hay hãng mà tuân thủ theo kiến trúc NET Để cung cấp môi trường thực thi mã nguồn mà loại bỏ lỗi thực script hay môi trường thông dịch Để làm cho người phát triển có kinh nghiệm vững nắm vững nhiều kiểu ứng dụng khác Như từ ứng dụng Windows đến ứng dụng dựa web 11 Microsoft NET d o m o o c u -tr a c k C w w w d o m C lic k to Ngơn Ngữ Lập Trình C# w w w w bu bu y N O W ! XC er O W F- w PD h a n g e Vi e ! XC er PD F- c u -tr a c k c ... đồng lợi ích khác công ty phần mềm lớn làm ảnh hưởng đến người xây dựng phần mềm Cách vài năm Java Sun viết ra, có sức mạnh đáng kể, hướng tới việc chạy nhiều hệ điều hành khác nhau, độc lập... tin cậy Tóm lại giới lập trình theo Microsoft việc lập trình desktop lập trình hệ phân tán hay web không nhịp nhàng cho Để chuyển từ lập trình client hay desktop đến lập trình web chặng đường dài... c dùng trình soạn thảo ví Notepad hay trình soạn thảo văn sử dụng command line để biên dịch thực thi, nhiên việc nhiều thời gian Tốt dùng IDE phát triển ứng dụng, cách dễ sử dụng Thành phần Framework