Xem mẫu

  1. MỤC LỤC LỜI NÓI ĐẦU .................................................................................................................... 4 CHƢƠNG 1: TỔNG QUAN VỀ ASP.NET..................................................................... 5 1.1. Giới thiệu tổng quan về công nghệ .NET ............................................................... 5 1.1.1. Sự ra đời của .NET ........................................................................................... 5 1.1.2. .NET Framework .............................................................................................. 5 1.1.3. Ƣu điểm chính của .NET Framework .............................................................. 7 1.2. Giới thiệu về ASP.NET .......................................................................................... 8 1.3. Cài đặt Visual Studio.NET ..................................................................................... 8 1.3.1. Các phiên bản .NET ......................................................................................... 8 1.3.2. Cài đặt Visual Studio.NET ............................................................................... 8 1.3.3. Giao diện Visual Studio.NET .......................................................................... 9 1.4. Xây dựng ứng dụng Web ...................................................................................... 11 1.4.1. Tạo mới ứng dụng Web ................................................................................. 11 1.4.2. Lƣu ứng dụng Web ........................................................................................ 12 1.4.3. Chạy ứng dụng Web ....................................................................................... 12 1.5. Bài tập ................................................................................................................... 13 CHƢƠNG 2: NGÔN NGỮ LẬP TRÌNH C# ................................................................ 14 2.1. Giới thiệu về ngôn ngữ lập trình C# ........................................................................ 14 2.2. Cấu trúc một chƣơng trình C# ................................................................................. 15 2.3. Các kiểu dữ liệu ....................................................................................................... 15 2.3.1. Kiểu dữ liệu xây dựng sẵn.............................................................................. 16 2.3.2. Chọn kiểu dữ liệu ........................................................................................... 17 2.3.3. Chuyển đổi kiểu dữ liệu ................................................................................. 18 2.3.4. Kiểu dữ liệu mảng .......................................................................................... 18 2.3.5. Kiểu dữ liệu xâu ............................................................................................. 20 2.4. Biến và hằng ............................................................................................................ 20 2.5. Biểu thức và toán tử ................................................................................................. 21 2.6. Các lệnh điều khiển.................................................................................................. 22 2.6.1. Các câu lệnh rẽ nhánh .................................................................................... 22 2.6.2. Các câu lệnh lặp ................................................................................................ 27 2.7. Xây dựng lớp và đối tƣợng ...................................................................................... 31 2.7.1. Xây dựng lớp .................................................................................................. 31 2.7.2. Tạo đối tƣợng ................................................................................................. 35 2.8. Xử lý ngoại lệ........................................................................................................... 36 2.8.1. Câu lệnh throw ............................................................................................... 37 2.8.2. Câu lệnh catch ................................................................................................ 38 2.8.3. Câu lệnh finally .............................................................................................. 43
  2. 2.9. Bài tập ...................................................................................................................... 45 CHƢƠNG 3: LÀM VIỆC VỚI WEB FORM ............................................................... 51 3.1. ASP.NET và Web Form ....................................................................................... 51 3.1.1. Mô hình lập trình phía máy chủ ..................................................................... 51 3.1.2. Giới thiệu về ASP.NET .................................................................................. 52 3.1.3. Cơ chế xử lý file ASP.NET phía máy chủ ..................................................... 54 3.1.4. Web Form trong ASP.NET ............................................................................ 58 3.1.5. Tìm hiểu cấu trúc trang ASP.NET ................................................................. 58 3.1.6. Các phƣơng pháp viết mã trong ASP.NET .................................................... 60 3.1.7. ASP.NET Server Control ............................................................................... 62 3.1.7. Điều khiển Validation Controls ................................................................... 119 3.2. Tạo và sử dụng Custom Control ......................................................................... 135 3.2.1. Giới thiệu User Custom Control .................................................................. 135 3.2.2. Các bƣớc tạo User Custom Control ............................................................. 135 3.2.3. Thêm các thuộc tính, phƣơng thức và sự kiện vào UCC ............................. 137 3.2.4. Truy cập thuộc tính, phƣơng thức của các phần tử con trong UCC ............ 139 3.3. Các đối tƣợng cơ bản trong ASP.NET................................................................ 143 3.3.1. Đối tƣợng Request........................................................................................ 144 3.3.2. Đối tƣợng Response ..................................................................................... 147 3.3.3. Đối tƣợng Server .......................................................................................... 150 3.3.4. Đối tƣợng Session ........................................................................................ 151 3.3.5. Đối tƣợng Application ................................................................................. 153 3.3.6. Đối tƣợng Cookies ....................................................................................... 155 3.4. Tệp tin quản lí và cấu hình ứng dụng ................................................................. 158 3.4.1. Tệp tin Global.asax ...................................................................................... 158 3.4.2. Tệp tin Web.config....................................................................................... 160 3.5. Làm việc với giao diện Web ............................................................................... 163 3.5.1. Master Page .................................................................................................. 163 3.5.2. Cascading Style Sheets - CSS ...................................................................... 167 3.5.3. Theme và Skin .............................................................................................. 172 3.5.4. Navigation Controls ..................................................................................... 176 3.6. Bài tập ................................................................................................................. 186 CHƢƠNG 4: TRUY NHẬP CƠ SỞ DỮ LIỆU........................................................... 195 4.1. Giới thiệu chung .............................................................................................. 195 4.2. Kiến trúc của ADO.NET ................................................................................. 196 4.3. Tìm hiểu trình cung cấp dữ liệu của ADO.NET ............................................. 197 4.4. Các namespace của ADO.NET ....................................................................... 199 4.5. Các lớp thao tác với cơ sở dữ liệu ................................................................... 204 4.5.1. Lớp Connection ............................................................................................ 204 4.5.2. Lớp Command .............................................................................................. 209 4.5.3. Lớp DataReader ........................................................................................... 218 4.5.4. Lớp DataAdapter .......................................................................................... 222
  3. 4.5.5. Lớp DataSet .................................................................................................. 223 4.5.6. Lớp DataColumns ........................................................................................ 224 4.5.7. Lớp DataRow ............................................................................................... 227 4.5.8. Lớp DataTable .............................................................................................. 227 4.6. Data Binding ....................................................................................................... 228 4.6.1. Giới thiệu DataBinding ................................................................................ 228 4.6.2. Data Binding ................................................................................................ 229 4.6.3. Các điều khiển Data Source ......................................................................... 232 4.7. Các điều khiển liên kết dữ liệu ........................................................................... 237 4.7.1. Điều khiển GridView ................................................................................... 237 4.7.2. Điều khiển DataList ..................................................................................... 253 4.7.3. Điều khiển Repeater ..................................................................................... 254 4.7.4. DetailView ................................................................................................... 255 4.7.5. FormView..................................................................................................... 256 4.7.6. ListView ....................................................................................................... 257 4.8. Bài tập ................................................................................................................. 257 CHƢƠNG 5: WEB SERVICES ................................................................................... 266 5.1. Giới thiệu về Web Services ................................................................................ 266 5.2. Kiến trúc và các thành phần Web Services ......................................................... 266 5.3. Tạo Web Services ............................................................................................... 270 5.4. Kiểm tra Web Services ....................................................................................... 271 5.5. Sử dụng Web Services ........................................................................................ 272 5.5.1. Sử dụng Web Services do mình tạo .................................................................... 272 5.5.2. Sử dụng Web Services đƣợc cung cấp trên mạng .............................................. 276 5.6. Bài tập ................................................................................................................. 279 TÀI LIỆU THAM KHẢO............................................................................................. 281
  4. LỜI NÓI ĐẦU Ngày nay việc sử dụng Internet và các dịch vụ trên Internet là một phần tất yếu của cuộc sống. Công nghệ Internet và các ứng dụng phát triển trên nền Web và Internet đã và đang làm cho đời sống của chung ta thay đổi. Internet là một nguồn thông tin quý giá phục vụ cho việc học tập, nghiên cứu, kinh doanh, giải trí. Vì vậy ngày càng có nhiều ứng dụng trên Internet sử dụng giao diện Web. Các công nghệ phát triển trên Internet ngày một hoàn thiện. Trên cơ sở đó, môn học Lập trình trên nền Web đã đƣợc đƣa vào giảng dạy và nghiên cứu tại các khoa, ngành tin học, toán tin, thƣơng mại điện tử hay các ngành có liên quan khác trong các trƣờng đại học. Môn học này sẽ là tiền đề cung cấp cho sinh viên và các nhà nghiên cứu các lý thuyết từ cơ sở cho đến ứng dụng nhằm xây dựng và xử lý thông tin dƣới dạng trang Web, nhờ đó cho phép họ tiếp cận dễ dàng hơn với các kỹ thuật lập trình hiệu quả các ứng dụng trên nền Web và Internet. Tập bài giảng này nghiên cứu về công nghệ phổ biến và tiên tiến nhất đƣợc dùng đề tạo các ứng dụng chạy trên nền Web của MicroSoft là ASP.NET, ngôn ngữ lập trình C#, truy xuất dữ liệu qua ADO.NET và Web Services đáp ứng đƣợc việc học tập và nghiên cứu của sinh viên Đại học, Cao đẳng ngành Công nghệ thông tin và Khoa học máy tính Trƣờng Đại học Sƣ phạm kỹ thuật Nam Định. Tập bài giảng gồm 5 chƣơng Chƣơng 1: Tổng quan về ASP.NET Chƣơng 2: Ngôn ngữ lập trình C# Chƣơng 3: Làm việc với Web Form Chƣơng 4: Truy nhập cơ sở dữ liệu Chƣơng 5: Web Services Nội dung các chƣơng cung cấp kiến thức về thiết kế và lập trình xử lý dữ liệu Web dựa trên công cụ Visul Studio .Net. Sau mỗi phần có các ví dụ giúp sinh viên dễ tiếp cận và nắm bắt vấn đề. Cuối mỗi chƣơng đều có bài tập giúp cho sinh viên ôn tập và hệ thống kiến thức môn học. Trong quá trình biên soạn nhóm chúng tôi đã bám sát chƣơng trình môn học đƣợc nhà trƣờng ban hành, đã cố gắng thể hiện nội dung cơ bản, hiện đại gắn gắn với yêu cầu thực tế. Tuy nhiên do khả năng có hạn, hạn chế về thời gian nên không tránh khỏi sai sót. Rất mong nhận đƣợc sự đóng góp chân thành của đồng nghiệp và bạn đọc để tập bài giảng ngày càng hoàn thiện hơn. NHÓM TÁC GIẢ
  5. CHƢƠNG 1: TỔNG QUAN VỀ ASP.NET 1.1. Giới thiệu tổng quan về công nghệ .NET 1.1.1. Sự ra đời của .NET Trong lĩnh vực phát triển phần mềm có rất nhiều ngôn ngữ lâp trình đƣợc sử dụng để phát triển (nhƣ Delphi, Ada, Cobol, Fortran, Basic, LISP, Prolog, Foxpro, Java, Pascal, C/C++, VB.NET, VC++, C#...). Mỗi ngôn ngữ đều có những ƣu và nhƣợc điểm riêng. Những ƣu điểm có tính đặc thù của từng ngôn ngữ là điều đã đƣợc khẳng định. Tuy nhiên, rất khó để có thể tận dụng đƣợc sức mạnh của tất cả các ngôn ngữ lập trình trong một dự án phần mềm, chẳng hạn không thể hoặc rất khó khăn để viết một ứng dụng có sử dụng đồng thời cả ngôn ngữ Visual Basic và Java hay Foxpro với Delphi v.v… Nói cách khác, việc “liên thông” giữa các ngôn ngữ là gần nhƣ không thể. Cũng do sự khác biệt giữa các ngôn ngữ lập trình mà việc tiếp cận hay chuyển đổi sang ngôn ngữ lập trình mới sẽ tốn rất nhiều thời gian. Vì vậy, khi các dự án sử dụng ngôn ngữ lập trình khác nhau thì chi phí cho chuyển đổi sẽ là rất lớn gây lãng phí thời gian không cần thiết và chất lƣợng phần mềm chắc chắn không cao. Từ những hạn chế trong quá trình phát triển phần mềm nhƣ đã nêu, đòi hỏi phải có một cách tiếp cận sao cho tối ƣu nhất, vừa đảm bảo tốn ít chi phí chuyển đổi vừa đảm bảo nhiều ngƣời có thể tham gia cùng một dự án mà không nhất thiết phải viết trên cùng một ngôn ngữ lập trình, đồng thời ứng dụng phải hoạt động tốt trong môi trƣờng mạng Internet. Đó chính là lý do để Microsoft cho ra công nghệ phát triển phần mềm mới .NET. 1.1.2. .NET Framework Thông thƣờng, mỗi ngôn ngữ lập trình đều có một tập các thƣ viện riêng, chẳng hạn: VC++ thì có thƣ viện chính là msvcrt.dll; Visual Basic thì có svbvm60.dll …Các thƣ viện này chứa các hàm, thủ tục cơ bản của mỗi ngôn ngữ. Tất cả đều có ý nghĩa logic giống nhau nhƣng về cách sử dụng hay cú pháp thì hầu nhƣ là khác nhau. Ý tƣởng của Microsoft là không xây dựng một tập thƣ viện riêng biệt cho từng ngôn ngữ lập trình mà sẽ xây dựng một bộ thƣ viện dùng chung. Tập thƣ viện dùng chung này hình thành nên một bộ khung (Framework). Bộ Khung này thực chất là một tập các thƣ viện đƣợc xây dựng sẵn, đáp ứng mọi nhu cầu phát triển các ứng dụng Desktop, Network, Mobile, Web…
  6. Hình 1.1. Mô hình xây dựng phần mềm bằng ngôn ngữ truyền thống Các thành phần và chức năng chính trong .NET Framework. Common Language Runtime (trình thực thi ngôn ngữ chung): Sau khi ứng dụng đƣợc biên dịch ra file “exe”. Nội dung của file exe này tuân theo một chuẩn/ngôn ngữ chung, dù là viết bằng C# hay VB.NET. Ngôn ngữ này gọi là ngôn ngữ chung), tiếp theo để file exe trung gian này có thể chạy đƣợc trên máy hiện hành thì cần phải đƣợc biên dịch ra mã máy tƣơng ứng. Việc biên dịch và chạy đƣợc là nhờ chƣơng trình thực thi ngôn ngữ chung – CLR (Common Language Runtime). Hình 1.2. Kiến trúc của .NET Framework Base Class Library: Là tập các thƣ viện chứa các lớp cơ bản để sử dụng trong tất cả các ngôn ngữ .NET. Ví dụ các lớp xử lý xâu, xử lý toán học… ADO.NET: Là tập các thƣ viện chuyên dành cho thao tác với cơ sở dữ liệu. ASP.NET: Các thƣ viện dành cho phát triển các ứng dụng Web (Web Form). Windows Forms: Các thƣ viện dành cho phát triển các ứng dụng Windows
  7. Common Language Specification: Phần này có nhiệm vụ đặc tả ngôn ngữ chung để các chƣơng trình viết trên các ngôn ngữ lập trình khác nhau phải tuân theo. Nói cách khác, biên dịch các chƣơng trình viết trên các ngôn ngữ lập trình khác nhau về một ngôn ngữ thống nhất chung (Common Language). Các ngôn ngữ lập trình. Hình 1.3. Mô hình biên dịch và thực thi chƣơng trình ứng dụng .NET 1.1.3. Ƣu điểm chính của .NET Framework - Tất cả các ngôn ngữ đều thừa hƣởng một thƣ viện thống nhất. Khi sửa chữa hay nâng cấp thƣ viện này thì chỉ phải thực hiện một lần. - Cách thức phát triển ứng dụng nhất quán và tƣơng tự nhau giữa các ngôn ngữ lập trình. Có thể chuyển đổi sang ngôn ngữ lập trình .NET khác nhau một cách dễ dàng. - Viết các ứng dụng Web Form không khác nhiều so với ứng dụng Win Form. - Cung cấp một tập thƣ viện truy xuất CSDL thống nhất (ADO.NET) cho mọi ngôn ngữ .NET. - Hỗ trợ cơ chế “Write one – Run everywhere” (ciết một lần chạy mọi nơi). Một ứng dụng viết bằng .NET có thể chạy trên bất cứ hệ điều hành nào mà không cần phải sửa lại code, miễn là máy đó có cài .NET framework. - Cung cấp hệ thống kiểu chung (Common Type), do vậy đảm bảo tính thống nhất về kiểu dữ liệu giữa các ngôn ngữ lập trình. - Cho phép sử dụng nhiều ngôn ngữ lập trình trong cùng một dự án. - Kết thừa và sử dụng chéo giữa các ngôn ngữ lập trình dễ dàng nhƣ trên cùng một ngôn ngữ (có thể viết một class trên C#, sau đó kế thừa trong VB.NET và ngƣợc lại).
  8. - Việc triển khai (Deploy) các ứng dụng dễ dàng. Chỉ cần Copy-and-run (copy là chạy). Không cần cài đặt và tránh đƣợc “các lỗi DLL” nhƣ trƣớc đây. 1.2. Giới thiệu về ASP.NET - ASP.NET là công nghệ phát triển các ứng dụng trên nền Web, thế hệ kế tiếp của ASP (Active Server Page – Trang Web đƣợc xử lý bên phía máy chủ). ASP.NET là một thành phần nội tại (có sẵn) của .NET Framework. Vì vậy nó tận dụng đƣợc sức mạnh của .NET Framework. ASP.NET có một số ƣu điểm chính: - Có thể sử dụng để phát triển các ứng dụng Web đủ mọi kích cỡ, từ ứng dụng nhỏ nhất cho đến ứng dụng toàn doanh nghiệp (Enterprise). - Ứng dụng viết bằng ASP.NET dễ dàng tƣơng thích với nhiều loại trình duyệt khác nhau. Nhà phát triển không cần phải quan tâm nhiều đến trình duyệt nào đƣợc sử dụng để duyệt Website, điều này sẽ đƣợc framework tự render ra mã tƣơng ứng. - Khi sử dụng bộ IDE của Visual Studio, cách thức lập trình sẽ giống nhƣ lập trình Win Form. - Truy xuất dữ liệu bằng công nghệ ADO.NET có sẵn của .NET Framework. - Chạy ứng dụng cực nhanh bởi cơ chế biên dịch và Cached. - Có thể tăng tốc ứng dụng bằng cách Cache các điều khiển, các trang. - Bảo mật vƣợt trội. - Tốn ít dòng lệnh hơn so với ASP/PHP/Perl khi thực hiện cùng một công việc. - Dễ dàng bảo trì và dễ đọc hơn bởi Code và Giao diện đƣợc tách biệt. Điều này cũng giúp cho tính chuyên biệt hóa cao hơn (một ngƣời chỉ lo code phần xử lý nghiệp vụ, ngƣời khác thì chỉ lo code phần giao diện v.v…). - ASP.NET sử dụng ngôn ngữ lập trình VB.NET hoặc C# để phát triển ứng dụng. 1.3. Cài đặt Visual Studio.NET 1.3.1. Các phiên bản .NET Có nhiều phiên bản .NET Framework khác nhau đƣợc phát hành qua từng giai đoạn. - .NET Framework 1.0 phát hành vào năm 2002 - .NET Framework 1.1 phát hành vào năm 2003 - .NET Framework 2.0 phát hành vào năm 2005 - .NET Framework 3.0 phát hành vào năm 2006 - .NET Framework 3.5 phát hành vào năm 2007 - .NET Framework 4 phát hành trong năm 2010 - .NET Framework 4.5 phát hành vào năm 2012 1.3.2. Cài đặt Visual Studio.NET
  9. Việc cài đặt các phiên bản Visual Studio.Net có nhiều lựa chọn khác nhau về cơ bản ta tiến hành nhƣ sau: - Chuẩn bị đĩa chƣơng trình Visual Studio.Net và mã bản quyền sử dụng phần mềm - Đọc tệp tin yêu cầu phần cứng trƣớc khi cài đặt. - Chạy tệp tin setup.exe làm theo hƣớng đẫn trên màn hình trong quá trình cài đặt. 1.3.3. Giao diện Visual Studio.NET Visual Studio sử dụng IDE chung cho toàn bộ ngôn ngữ lập trình (ASP.NET, VB.NET, C#,…). Điều này đảm bảo tính nhất quán cho các ngôn ngữ trên nền .NET. Hình 1.4. Giao diện chính của môi trƣờng phát triển - Tab Design để hiển thị trang Web ở chế độ Design, tức là cho phép sửa chữa nội dung trang Web trực quan. Hình 1.5. Mở trang ở chế độ Design - Tab Source: Mở trang ở chế độ mã nguồn HTML. Tại đây ngƣời dùng có thể soạn thảo trực tiếp các thẻ HTML.
  10. Hình 1.6. Mở trang ở chế độ Source - Tab Split: Cho phép xem trang Web đồng thời ở cả hai chế độ. Hình 1.7. Mở trang ở 2 chế độ Design và Source
  11. Chuyển chế độ Design Chuyển chế độ Code Copy website lên server Hình 1.8. Mở cửa sổ soạn Code - Ngoài thao tác trực tiếp thông qua hệ thống menu, nút lệnh, ngƣời dùng còn có thể sử dụng tổ hợp các phím tắt. Ví dụ: Shift+F7 để xem ở chế độ Design, F7 xem ở chế độ Code, F4 Focus tới Properties…. Menu bar Tool bar Vùng duyện các web form và code fille Các điều khiển Các thuộc tính của Các thuộc điều khiển Các chế độ xem Hình 1.9. Giao diện IDE của Visual Studio 1.4. Xây dựng ứng dụng Web 1.4.1. Tạo mới ứng dụng Web Vào menu File -> New Website hoặc biểu tƣợng trên thanh công cụ cửa sổ New Website xuất hiện.
  12. Hình 1.10. Các thành phần để tạo mới ứng dụng web 1.4.2. Lƣu ứng dụng Web - Nhấn Ctrl-S để lƣu trang hiện tại - Nhấn Ctrl-Shift-S để lƣu toàn bộ các trang. 1.4.3. Chạy ứng dụng Web Đối với ASP.NET, toàn bộ ứng dụng Web có thể biên dịch thành file nhị phân để chạy. Tuy nhiên ASP.NET cũng cho phép ngƣời dùng chạy từng trang riêng biệt. - Nhấn F5 (Hoặc biểu tƣợng trên thanh công cụ) để chạy ứng dụng và cho phép Debug trên trình duyệt. - Nhấn Ctrl-F5 để chạy ứng dụng nhƣng không cho Debug trên trình duyệt. - Trong trƣờng hợp muốn chạy chƣơng trình và gỡ rối ở mức dòng lệnh/ thủ tục thì có thể nhấn F8, Shift-F8. - Ngƣời dùng có thể chạy (Browse) trang Web bất kỳ bằng cách chọn, sau đó click chuột phải và chọn mục View In Browser (hoặc nhấn tổ hợp phím Ctrl- Shift-W). Trong trƣờng hợp có nhiều trình duyệt trong máy thì có thể chọn trình duyệt mặc định khi View In Browser bằng cách click chuột phải lên trang và chọn Browse With nhƣ hình dƣới.
  13. Hình 1.11. Chọn trình duyệt 1.5. Bài tập 1. Khi .NET ra đời đã đem lại những thuận lợi gì cho ngƣời lập trình ứng dụng? 2. Chỉ ra điểm giống và khác nhau giữa xây dựng phần mềm bằng ngôn ngữ truyền thống và .NET. 3. Trình bày các thành phần trong kiến trúc của .NET Framework. 4. Nêu các ƣu điểm chính của .NET Framework. 5. Kể tên các phiên bản .NET hiện có. 6. Nêu các bƣớc cài đặt Visual Studio.NET. 7. Kể tên và nêu ý nghĩa các thành phần trong giao diện Visual Studio.NET. 8. Nêu các bƣớc xây dựng ứng dụng Web.
  14. CHƢƠNG 2: NGÔN NGỮ LẬP TRÌNH C# 2.1. Giới thiệu về ngôn ngữ lập trình C# Ngôn ngữ C# là một ngôn ngữ đƣợc dẫn xuất từ C và C++, nhƣng nó đƣợc tạo từ nền tảng phát triển hơn. Microsoft thêm vào những đặc tính mới để làm cho ngôn ngữ này dễ sử dụng hơn, nhiều trong số những đặc tính này khá giống với những đặc tính có trong ngôn ngữ Java. Nó có một số đặc điểm cơ bản sau: - C# là ngôn ngữ đơn giản Trong C# không có sự phức tạp của những ngôn ngữ nhƣ Java và C++, bao gồm việc loại bỏ macro, template, đa kế thừa và lớp cơ sở ảo (virtual base class). Ngôn ngữ C# đơn giản nó dựa trên nền tảng C và C++ bởi C# khá giống về cú pháp, biểu thức, toán tử và những chức năng khác đƣợc lấy trực tiếp từ ngôn ngữ C và C++, nhƣng đã đƣợc cải tiến để làm cho ngôn ngữ đơn giản hơn. Một trong các cải tiến là loại bỏ các dƣ thừa, thêm những cú pháp thay đổi. - C# là ngôn ngữ hiện đại Những đặc tính nhƣ xử lý ngoại lệ, thu gom bộ nhớ tự động, những kiểu dữ liệu mở rộng và bảo mật mã nguồn là những đặc tính đƣợc mong đợi trong một ngôn ngữ hiện đại. C# chứa tất cả những đặc tính trên. - C# là ngôn ngữ hƣớng đối tƣợng Những đặc tính nhƣ xử lý ngoại lệ, thu gom bộ nhớ tự động, những kiểu dữ liệu mở rộng và bảo mật mã nguồn là những đặc tính đƣợc mong đợi trong một ngôn ngữ hiện đại. C# chứa tất cả những đặc tính trên. - C# là ngôn ngữ mạnh mẽ và mềm dẻo Ngôn ngữ C# đƣợc sử dụng cho nhiều công việc khác nhau nhƣ là tạo ra ứng dụng xử lý văn bản, ứng dụng đồ họa, hay những trình biên dịch cho các ngôn ngữ khác. - C# là ngôn ngữ ít từ khóa C# là ngôn ngữ sử dụng giới hạn những từ khóa. Phần lớn các từ khóa đƣợc sử dụng để mô tả thông tin. Bảng sau liệt kê các từ khóa của ngôn ngữ C# abstract default foreach object sizeof unsafe as delegate goto operator stackalloc ushort base do if out static using bool double implicit override string virtual
  15. break else in params struct volatile byte enum int private switch void case event interface protected this while catch explicit internal public throw char extern is readonly true checked false lock ref try class finally long return typeof const fixed namespace sbyte uint continue float new sealed ulong decimal for null short unchecked - C# là ngôn ngữ hƣớng module Mã nguồn C# có thể đƣợc viết trong những phần đƣợc gọi là những lớp, những lớp này chứa các phƣơng thức thành viên của nó. Những lớp và phƣơng thức có thể đƣợc sử dụng lại trong ứng dụng hay các chƣơng trình khác. Bằng cách truyền các mẫu thông tin đến những lớp hay phƣơng thức để tạo ra những mã nguồn dùng lại có hiệu quả. 2.2. Cấu trúc một chƣơng trình C# Cách tạo một project trong C#: New >> Project >> Visual C# >> Windows >> Console Application >> đặt tên và nơi lƣu; nếu check vào create directory for solution thì Visual Studio sẽ tạo ra thƣ mục chứa project. Một chƣơng trình C# đơn giản: using System; using System.Collections.Generic; using System.Text; namespace Hello { class Program { static void Main(string[] args) { Console.WriteLine("Xin chao"); Console.Read(); } } } 2.3. Các kiểu dữ liệu C# là ngôn ngữ lập trình mạnh về kiểu dữ liệu, một ngôn ngữ mạnh về kiểu dữ liệu là phải khai báo kiểu của mỗi đối tƣợng khi tạo (kiểu số nguyên, số thực, kiểu chuỗi, kiểu
  16. điều khiển...) và trình biên dịch giúp cho ngƣời lập trình không bị lỗi khi chỉ cho phép một loại kiểu dữ liệu có thể đƣợc gán cho các kiểu dữ liệu khác. Kiểu dữ liệu của một đối tƣợng là một tín hiệu để trình biên dịch nhận biết kích thƣớc của một đối tƣợng (kiểu int có kích thƣớc là 4 byte) và khả năng của nó (nhƣ một đối tƣợng button có thể vẽ, phản ứng khi nhấn,...). Tƣơng tự nhƣ C++ hay Java, C# chia thành hai tập hợp kiểu dữ liệu chính: Kiểu xây dựng sẵn (built- in) mà ngôn ngữ cung cấp cho ngƣời lập trình và kiểu đƣợc ngƣời dùng định nghĩa (user-defined) do ngƣời lập trình tạo ra. 2.3.1. Kiểu dữ liệu xây dựng sẵn Ngôn ngữ C# đƣa ra các kiểu dữ liệu xây dựng sẵn phù hợp với một ngôn ngữ lập trình hiện đại, mỗi kiểu dữ liệu đƣợc ánh xạ đến một kiểu dữ liệu đƣợc hỗ trợ bởi hệ thống xác nhận ngôn ngữ chung (Common Language Specification: CLS) trong MS.NET. Việc ánh xạ các kiểu dữ liệu nguyên thuỷ của C# đến các kiểu dữ liệu của .NET sẽ đảm bảo các đối tƣợng đƣợc tạo ra trong C# có thể đƣợc sử dụng đồng thời với các đối tƣợng đƣợc tạo bởi bất cứ ngôn ngữ khác đƣợc biên dịch bởi .NET, nhƣ VB.NET. Mỗi kiểu dữ liệu có một sự xác nhận và kích thƣớc không thay đổi, không giống nhƣ C++, int trong C# luôn có kích thƣớc là 4 byte bởi vì nó đƣợc ánh xạ từ kiểu Int32 trong .NET. Bảng sau sẽ mô tả một số các kiểu dữ liệu đƣợc xây dựng sẵn Kiểu C# Số byte Kiểu .NET Mô tả byte 1 Byte Số nguyên dƣơng không dấu từ 0-255 char 2 Char Ký tự Unicode bool 1 Boolean Giá trị logic true/ false sbyte 1 Sbyte Số nguyên có dấu ( từ -128 đến 127) short 2 Int16 Số nguyên có dấu giá trị từ -32768 đến 32767. ushort 2 Uịnt16 Số nguyên không dấu 0 – 65.535 int 4 Int32 Số nguyên có dấu –2.147.483.647 và 2.147.483.647 uint 4 Uint32 Số nguyên không dấu 0 – 4.294.967.295 float 4 Single Kiểu dấu chấm động, giá trị xấp xỉ từ 3,4E- 38 đến 3,4E+38, với 7 chữ số có nghĩa..
  17. double 8 Double Kiểu dấu chấm động có độ chính xác gấp đôi, giá trị xấp xỉ từ 1,7E-308 đến 1,7E+308, với 15,16 chữ số có nghĩa. decimal 8 Decimal Có độ chính xác đến 28 con số và giá trị thập phân, đƣợc dùng trong tính toán tài chính, kiểu này đòi hỏi phải có hậu tố “m” hay “M” theo sau giá trị. long 8 Int64 Kiểu số nguyên có dấu có giá trị trong khoảng : -9.223.370.036.854.775.808 đến 9.223.372.036.854.775.807 ulong 8 Uint64 Số nguyên không dấu từ 0 đến 0xffffffffffffffff 2.3.2. Chọn kiểu dữ liệu Thông thƣờng để chọn một kiểu dữ liệu nguyên để sử dụng nhƣ short, int hay long thƣờng dựa vào độ lớn của giá trị muốn sử dụng. Ví dụ, một biến ushort có thể lƣu giữ giá trịtừ 0 đến 65.535, trong khi biến ulong có thể lƣu giữ giá trị từ 0 đến 4.294.967.295, do đó tùy vào miền giá trị của phạm vi sử dụng biến mà chọn các kiểu dữ liệu thích hợp nhất. Kiểu dữ liệu int thƣờng đƣợc sử dụng nhiều nhất trong lập trình vì với kích thƣớc 4 byte của nó cũng đủ để lƣu các giá trị nguyên cần thiết. Kiểu float, double và decimal đƣa ra nhiều mức độ khác nhau về kích thƣớc cũng nhƣ độ chính xác. Với thao tác trên các phân số nhỏ thì kiểu float là thích hợp nhất. Tuy nhiên lƣu ý rằng trình biên dịch luôn luôn hiểu bất cứ một số thực nào cũng là một số kiểu double trừ khi khai báo rõ ràng. Để gán một số kiểu float thì số phải có ký tự f theo sau. float soFloat = 24f; Kiểu dữ liệu ký tự thể hiện các ký tự Unicode, bao gồm các ký tự đơn giản, ký tự theo mã Unicode và các ký tự thoát khác đƣợc bao trong những dấu nháy đơn. Ví dụ, A là một ký tự đơn giản trong khi \u0041 là một ký tự Unicode. Ký tự thoát là những ký tự đặc biệt bao gồm hai ký tự liên tiếp trong đó ký tự đầu tiên là dấu chéo „\‟. Ví dụ, \t là dấu tab. Bảng sau trình bày các ký tự đặc biệt. Ký tự Ý nghĩa \‟ Dấu nháy đơn „ \” Dấu nháy kép
  18. \\ Dấu chéo \0 Ký tự null \a Alert \b Backspace \f Sang trang form feed \n Dòng mới \r Đầu dòng \t Tab ngang \v Tab dọc 2.3.3. Chuyển đổi kiểu dữ liệu Những đối tƣợng của một kiểu dữ liệu này có thể đƣợc chuyển sang những đối tƣợng của một kiểu dữ liệu khác thông qua cơ chế chuyển đổi tƣờng minh hay ngầm định. Chuyển đổi ngầm định đƣợc thực hiện một cách tự động, trình biên dịch sẽ thực hiện công việc này. Còn chuyển đổi tƣờng minh diễn ra khi gán ép một giá trị cho kiểu dữ liệu khác. Việc chuyển đổi giá trị ngầm định đƣợc thực hiện một cách tự động và đảm bảo là không mất thông tin. Ví dụ, có thể gán ngầm định một số kiểu short (2 byte) vào một số kiểu int (4 byte) một cách ngầm định. Sau khi gán hoàn toàn không mất dữ liệu vì bất cứ giá trị nào của short cũng thuộc về int: short x = 10; int y = x; // chuyển đổi ngầm định Tuy nhiên, nếu thực hiện chuyển đổi ngƣợc lại, chắc chắn sẽ bị mất thông tin. Nếu giá trị của số nguyên đó lớn hơn 32.767 thì nó sẽ bị cắt khi chuyển đổi. Trình biên dịch sẽ không thực hiện việc chuyển đổi ngầm định từ số kiểu int sang số kiểu short: short x; int y = 100; x = y; // Không biên dịch, lỗi Để không bị lỗi dùng lệnh gán tƣờng minh, đoạn mã trên đƣợc viết lại nhƣ sau: short x; int y = 500; x = (short) y; // Ép kiểu tường minh, trình biên dịch không báo lỗi 2.3.4. Kiểu dữ liệu mảng Mảng là một tập hợp có thứ tự của những đối tƣợng, tất cả các đối tƣợng này cùng một kiểu. Mảng trong ngôn ngữ C# có một vài sự khác biệt so với mảng trong
  19. ngôn ngữ C++ và một số ngôn ngữ khác, bởi vì chúng là những đối tƣợng. Điều này sẽ cung cấp cho mảng sử dụng các phƣơng thức và những thuộc tính. Ngôn ngữ C# cung cấp cú pháp chuẩn cho việc khai báo những đối tƣợng Array. Tuy nhiên, cái thật sự đƣợc tạo ra là đối tƣợng của kiểu System.Array. Mảng trong ngôn ngữ C# kết hợp cú pháp khai báo mảng theo kiểu ngôn ngữ C và kết hợp với định nghĩa lớp do đó thể hiện của mảng có thể truy cập những phƣơng thức và thuộc tính của System.Array. Để khai báo một mảng trong C# sử dụng cú pháp nhƣ sau: [] Trong đó: DataType: kiểu dữ liệu như int, float…. ArrayName: tên mảng [ ]: cặp dấu ngoặc vuông chỉ ra cho trình biên dịch biết đang khai báo một mảng. Ví dụ: Khai báo mảng số nguyên int[] x; Khởi tạo giá trị cho mảng: Cách 1: Khai báo và chỉ ra số phần tử của mảng Cú pháp: [DataType] [ ] [ArrayName] = new [DataType] [number of elements]; Trong đó: number of elements: số phần tử của mảng. Ví dụ: Khai báo một mảng số nguyên lƣu trữ 5 phần tử. int[] a = new int[5] Cách 2: Khai báo sau đó mới khởi tạo số phần tử của mảng. Cú pháp: [DataType] [ ] [ArrayName]; [ArrayName] = new [DataType] [number of elements]; Ví dụ: Khai báo một mảng số nguyên lƣu trữ 5 phần tử. int[] a; a = new int[5]; Cách 3: Khai báo, chỉ ra số lƣợng các phần tử mảng và gán các giá trị ban đầu cho các phần tử mảng. Cú pháp: [DataType] [ ] [ArrayName]= new [DataType] [number of elements]{value}; Ví dụ khai báo mảng int[] a = new int[5] {1, -1, 3, 4, 5}; Cách 4: Khai báo, không chỉ ra số lƣợng các phần tử mảng và gán giá trị cho các phần tử của mảng. Truy cập các phần tử mảng: Một mảng là một danh sách các phần tử có cùng kiểu dữ liệu, các phần tử đó đƣợc đánh số thứ tự bắt đầu từ 0 đến n-1 (trong đó n là số phần tử
  20. của mảng). Nhƣ vậy để truy cập đến 1 phần tử của mảng thì ta sử dụng một số nguyên để chỉ ra số thứ tự của phần tử đó trong mảng, phần tử nguyên này đƣợc gọi là chỉ số (index). Cú pháp tổng quát để truy cập đến phần tử thứ i của mảng là: [tên mảng] [i-1]; Ví dụ: Gán giá trị 5 cho phần tử thứ 3 của mảng a[2] = 5; Duyệt qua các phần tử mảng: Mảng là một tập hợp hữu hạn phần tử do đó để duyệt qua các phần tử mảng thƣờng sử dụng vòng lặp for. Ví dụ: In danh sách các phần tử của mảng a ở trên. Console.WriteLine("Danh sach cac phan tu trong mang:"); for (int i = 0; i < 5; i++) Console.Write(a[i] + "\t"); 2.3.5. Kiểu dữ liệu xâu Kiểu dữ liệu xâu lƣu giữ một mảng những ký tự. Để khai báo một xâu ta sử dụng từ khoá string tƣơng tự nhƣ cách tạo một thể hiện của bất cứ đối tƣợng nào: string str; Một hằng xâu đƣợc tạo bằng cách đặt các xâu trong dấu nháy đôi: “Xin chao” Đây là cách để khởi tạo một xâu ký tự với giá trị hằng: string chuoi = “Xin chao” 2.4. Biến và hằng Một biến là một vùng lƣu trữ với một kiểu dữ liệu. Biến có thể đƣợc gán giá trị và cũng có thể thay đổi giá trị khi thực hiện các lệnh trong chƣơng trình. Để tạo một biến ta phải khai báo kiểu của biến và gán cho biến một tên duy nhất. Biến có thể đƣợc khởi tạo giá trị ngay khi đƣợc khai báo hoặc có thể đƣợc gán một giá trị mới vào bất cứ lúc nào trong chƣơng trình. - Khai báo biến Cú pháp: ; Hoặc: = ; Ví dụ về khai báo biến class MinhHoaBien { static void Main() { int bien1 = 9; Console.WriteLine(“Sau khi khoi tao: bien1 =”, bien1); bien1 = 15; Console.WriteLine(“Sau khi gan: bien1 =”, bien1); } }
nguon tai.lieu . vn