2.08k likes | 2.24k Views
Nội dung học. Tổng quan về .Net FrameWork Sử dụng IDE Giới thiệu NNLT C# ASP.NET LINQ: LINQ TO SQL Xây dựng ứng dụng Web. CHƯƠNG I. Tổng quan về .NET FrameWork. Giới thiệu.
E N D
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Nội dung học • Tổng quan về .Net FrameWork • Sử dụng IDE • Giới thiệu NNLT C# • ASP.NET • LINQ: LINQ TO SQL • Xây dựng ứng dụng Web
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH CHƯƠNG I Tổng quan về .NET FrameWork
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Giới thiệu • .NET Framework là môi trường tích hợp để đơn giản hóa việc phát triển và thực thi các ứng dụng trên Internet, desktop và các thiết bị di động . • Các mục tiêu chính: • Cung cấp một môi trường hướng đối tượng nhất quán cho nhiều loại ứng dụng • Cung cấp một môi trường giảm tối thiểu sự xung đột phiên bản. • Cung cấp một môi trường linh động, dựa trên các chuẩn đã được chứng nhận để có thể chứa trên bất cứ hệ điều hành nào.
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Kiến trúc của .NET Framework
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Kiến trúc của .NET Framework • CLR (Common Language Runtime): Quản lý sự thực thi mã lệnh và tất cả các tác vụ liên quan đến nó: biên dịch, quản lý bộ nhớ, bảo mật, quản lý tuyến đoạn. Mã lệnh thực thi trong CLR chia làm 2 loại: • mã được quản lý • mã không được quản lý là mã lệnh không cài đặt những yêu cầu để thực thi trong CLR – chẳng hạn như COM hoặc các thành phần dựa trên Windows API.
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Kiến trúc của .NET Framework • FCL(Framework Class Library ) là thư viện kiểu dữ liệu có thể tái sử dụng (gồm các class, structure, …) dành cho các ứng dụng thực thi trong .NET. • Tất cả các ngôn ngữ hỗ trợ .NET Framework đều sử dụng thư viện lớp dùng chung này.
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Các bước thực hiện của Ct truyền thống Source Code Compiler Executable Code R U N T I M E Code Executed
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Các bước thực hiện của Ct truyền thống • Các ngôn ngữ trước đây có chương trình dịch riêng và có môi trường chạy riêng của nó. • Trong .NET, chương trình dịch dịch mã nguồn vào một "Intermediate Language (IL)“ và runtime được thay thế bởi CLR (Common Language Runtime).
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Các bước thực hiện của các ct .NET Các chương trình .NET được dịch 2 lần: lần đầu chậm, lần thứ 2 tương đối nhanh hơn.
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Các bước thực hiện của các ct .NET • Chương trình nguồn trước hết sẽ được biên dịch và đóng gói thành một khối gọi là assembly (là tập hợp các thành phần được đóng gói trong file exe hoặc dll). Khối này sẽ chứa các mã lệnh ngôn ngữ trung gian (IL) và các metadata mô tả thông tin cần thiết cho sự hoạt động của khối. • Mỗi khi có yêu cầu thực thi assembly nói trên, CLR sẽ dùng trình biên dịch JIT (Just-in-Time) của môi trường thực thi để chuyển đối IL chứa trong nó sang dạng mã lệnh cụ thể của máy khi ứng dụng thực sự thực thi.
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Các bước thực hiện của các ct .NET
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Các kiểu dữ liệu cơ sở của CTS
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Giới thiệu Visual Studio.NET Chương 2
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Sử dụng IDE Microsoft Visual Studio 2008 Khởi động Microsoft Visual Studio 2008. File New Project để tạo mới một project
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Chia sẻ IDE • VS.NET cung cấp IDE cho tất cả các ngôn ngữ của nó. • Giúp cho người lập trình xây dựng 1 chương trình nhanh chóng và hiệu quả • Khi VS.NET khởi động, thì trang Start Page được hiển thị.
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Chia sẻ IDE [3]
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Design, Split, Source • Design: chế độ thiết kế giao diện • Source: Hiển thị mã HTML tự động phát sinh khi thiết kế
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Solution Explorer • Solution Explorer liệt kê các projects và các file đang hoạt động • Để hiển thị Solution Explorer, nhấn Ctrl+Alt+L (View|Solution Explorer )
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH ToolBox • Bao gồm các điều khiển trên Web form và Win form, ActiveX controls, XML Web services, các thành phần HTML và các đối tượng. • Để hiển thị Toolbox, nhấn Ctrl+Alt+X (View|Toolbox).
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Server Explorer • Server Explorer Lập trình trên CSDL mà không cần sử dụng VS.NET IDE. • Để hiển thị Server Explorer, nhấn Ctrl+Alt+S (View|Server Explorer)
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Class View • Class view hiển thị các lớp, phương thức và thuộc tính đã xây dựng. • Để hiển thị Class View, nhấn Ctrl+Alt+C (View|Class View).
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Properties Window • Properties window để thiết lập các thuộc tính các điều khiển, lớp và projects. • Để hiển thị Properties Window, nhấn F4.
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Kỹ thuật IntelliSense • Thông báo cho người lập trình cú pháp đúng và cho phép hoàn thành tự động 1 câu lệnh
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Sự kiện và đáp ứng sự kiện[1] • Ta có thể tương tác giữa các đối tượng khác nhau bên trong 1ứng dụng, giữa 1 đối tượng và đối tượng bên ngoài thông qua sự kiện và đáp ứng sự kiện. Xử lý sự kiện Sự kiện Đáp ứng sự kiện
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Sự kiện và đáp ứng sự kiện[2] • Để hiển thị tất các các sự kiện của điều khiển: • Chọn điều khiển • Kích vào button Event trên cửa sổ Properties
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Ví dụ xử lý sự kiện Người dùng chọn nút Design: hiển thị bố cục của trang Source: Hiển thị mã tự động phát sinh khi tạo trang Web. Sự kiện Đáp ứng sự kiện
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH CHƯƠNG 3 Giới thiệu NNLT C#
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Nội dung • Giới thiệu • Biến và các kiểu dữ liệu • Các cấu trúc điều khiển: if, switch • Các cấu trúc lặp; for, while, do while, foreach • LIST, File văn bản.
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH GIỚI THIỆU VỀ C# • Là NNLT đơn giản, hiện đại, an toàn và hướng đối tượng • Là ngôn ngữ mạnh nhất trong .NET • Thay thế cho C++ • Có cú pháp giống C++, Java • Sử dụng con trỏ dễ dàng hơn trong C++
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH GIỚI THIỆU VỀ C# • “bài toán” cần giải quyết là một Solution. • Một solution bao gồm một hoặc nhiều project. • Một solution, nếu có nhiều project thì nên được tạo ra trong một thư mục riêng để có thể chứa các project trong nó.
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Cú pháp đơn giản của 1 Project • Using các Namespace [Namespace Ten] { - Tập hợp các lớp }
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Mức truy cập Kiểu Tên biến int public string protected ... private Biến • Khai báo theo cú pháp:
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Tên Kiểu trong CTS Mô tả Vùng biểu diễn (min:max) sbyte System.SByte Số nguyên có dấu 8-bit -27:27-1 short System.Int16 Số nguyên có dấu 16-bit -215:215-1 int System.Int32 Số nguyên có dấu 32-bit -231:231-1 long System.Int64 Số nguyên có dấu 64-bit -263:263-1 byte System.Byte Số nguyên không dấu 8-bit 0:28-1 ushort System.UInt16 Số nguyên không dấu 16-bit 0:216-1 uint System.UInt32 Số nguyên không dấu 32-bit 0:232-1 ulong System.UInt64 Số nguyên không dấu 64-bit 0:264-1 Các kiểu số nguyên
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Kiểu số thực, Boolean, ký tự • Kiểu số thực: float, double • Kiểu Boolean: bool: true|false • Kiểu ký tự: char • Biểu diễn 1 ký tự 16-bit (Unicode) Các hằng kiểu ký tự được gán bằng cách đóng trong cặp dấu nháy đơn, ví dụ 'A'.
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Tên Kiểu CTS Mô tả object System.Object Kiểu dữ liệu gốc, mọi kiểu dữ liệu khác trong CTS đều kế thừa từ đây (kể cả các kiểu dữ liệu giá trị) string System.String Chuỗi ký tự Unicode Kiễu dữ liệu tham chiếu được định nghĩa sẵn
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Ví dụ protected void Page_Load(object sender, EventArgs e) { object t; t = (object) 5; string[] st = new string[2] { "ab","cd" }; object[] t1; t1 = st; Response.Write(t1[1].ToString()); }
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Các phương thức trên chuỗi protected void Page_Load(object sender, EventArgs e) { string st1 = " Nguyen Anh Trung "; string st2 = "le Tien Tang"; st1 = st1.Trim(); Response.Write(string.Format("Chieu dai chuoi la {0}:\n", st1.Length)); Response.Write(string.Format("Ky tu tai chi so thu 3 la {0}", st1[3])); string ten1 = st1.Substring(st1.LastIndexOf(' ') + 1); string ten2 = st2.Substring(st2.LastIndexOf(" ") + 1, st2.Length - st2.LastIndexOf(" ") - 1); Response.Write (string.Format("Ten2=ten1:{0}", ten2.Equals(ten1))); Response.Write(string.Format("so sanh ten1 voi ten 2: {0}", ten1.CompareTo(ten2))); }
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Các phương thức trên chuỗi protected void Page_Load(object sender, EventArgs e) { string st1 = "Nguyen Anh Trung "; Response.Write(string.Format( "Tim chuoi con {0}", st1.Contains("yen"))); st1 = st1.Replace("Nguyen", "Le"); Response.Write(st1); st1 = st1.Remove(0, 3); Response.Write(st1); st1 = "Le nam|tink26|dhkh"; string[] ds = st1.Split('|'); Response.Write(string.Format("ten:{0},lop:{1},truong{2}", ds[0], ds[1], ds[2])); • }
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Loại toán tử Ký hiệu Số học + - * / % Logic && || ! Cộng chuỗi + Tăng và giảm ++ -- Dịch bit << >> So sánh == != < > <= >= Phép gán = += -= *= /= %= &= |= ^= <<= >>= Truy xuất thành phần . Indexing (cho array và các indexers) [] Ép kiểu () Điều kiện ?: Tạo đối tượng new Thông tin về kiểu Sizeof(Kiểu) Điều khiển Overflow exception checked unchecked Các toán tử
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Luồng điều khiển của chương trình • Các câu lệnh rẻ nhánh • if • switch • Các câu lệnh lặp • for • while • do • foreach
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Câu lệnh if int i = 10; if (i<10) { Response.Write("less than 10"); } else { Response.Write("greater or equal to 10"); }
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Câu lệnh Switch ... int i = 2; switch (i) { case 1: Response.Write("one"); break; case 2: Response.Write("two"); break; default: Response.Write("another value"); break; } ...
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH int s = 0; for (int i=1; i<=10; i++) { s+=i; } Response.Write(s); int s = 0; for (int i=1; i<=10; i++) { s+=i; } Response.Write(i);//Error statement Response.Write(s); } Câu lệnh For
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH int i = 1; int s = 0; while (i<=10) { s += i; i++; } Response.Write(s); int i = 1; int s = 0; do { s += i; i++; } while (i<=10); Response.Write(s); Câu lệnh while
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Câu lệnh Foreach int[] a = new int[3]; a[0] = 10; a[1] = 20; a[2] = 30; foreach (var b in a) { Response.Write(b); }
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH ArrayList, LIST • Là mảng động, mỗi phần tử là một object • Namespace: System.Collections.Generic • Khai báo: ArrayList <tenmang> = new ArrayList(); List <Tenmang>=new List() List<Kiểu> <Tenmang>=new List<Kiểu> ()
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Các phương thức trên ArrayList, List • Add(object): Chèn thêm 1 phần tử vào cuối mảng • Clear(): Xoá tất cả các phần tử • Contains(object): Tìm object trong mảng • IndexOf(object): Tìm chỉ số của object trong mảng (-1) • RemoveAt(index): Xoá phần tử thứ index • Thuộc tính: count: cho biết số phần tử trong mảng • …
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Thao tác trên File • Namespace: System.IO; • Các đối tượng thao tác trên File: Stream, StreamReader, StreamWriter, FileStream. • Thao tác trên file văn bản: StreamReader, StreamWriter. • Mở file văn bản để đọc: StreamReader <tênbiến> = new StreamReader(“dd"[,Encoding]); • Mở file văn bản để ghi: StreamWriter <tênbiến> = new StreamWriter (“dd“[, bool append][,Encoding])
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Các phương thức trên StreamReader • Close(): đóng file • Peek(): Trả về ký tự tiếp theo, -1;:EOF • Read(): Đọc ký tự tiếp theo • ReadBlock(…): Đọc dãy các byte • ReadLine(): Đọc 1 dòng • ReadToEnd(): Đọc hết file • …
Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH Các phương thức trên StreamWriter • Close(): đóng file • Write • WriteLine: ghi file Ví dụ: StreamWriter f = new StreamWriter("d:\\tt.txt",true,Encoding.Unicode); f.WriteLine("cộng"); f.Write("abc"); f.Close();