1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng lập trình web bằng ASP.NET

207 995 1

Đ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 207
Dung lượng 3,27 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 6Kiến trúc của .NET Framework •FCLFramework 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

Trang 1

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 1

Trang 2

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 2

CHƯƠNG I

Trang 3

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 3

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

Trang 4

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 4

Kiến trúc của NET Framework

Trang 5

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 5

Kiến trúc của NET Framework

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

Trang 6

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 6

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.

Trang 7

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 7

Các bước thực hiện của Ct

Code Executed

R U N T I M E

Trang 8

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 8

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).

Trang 9

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 9

Các bước thực hiện của các ct NET

MSIL + Metadata

code

Code executed

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.

Trang 10

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 10

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

Trang 11

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 11

Các bước thực hiện của các ct NET

Trang 12

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 12

Các kiểu dữ liệu cơ sở của CTS

Trang 13

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 13

Chương 2

Gi i thi u Visual Studio.NET ới thiệu Visual Studio.NET ệu Visual Studio.NET

Gi i thi u Visual Studio.NET ới thiệu Visual Studio.NET ệu Visual Studio.NET

Trang 14

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 14

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

Trang 15

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 15

• Khi VS.NET khởi động, thì trang Start

Page được hiển thị.

Trang 16

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 16

Chia sẻ IDE [3]

Trang 17

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 17

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ế

Trang 18

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 18

Trang 19

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 19

ToolBox

• Bao gồm các điều

khiển trên Web form và

Trang 20

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 20

Trang 21

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 21

Trang 22

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 22

Trang 23

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 23

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

Trang 24

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 24

Sự kiện và đáp ứng sự kiện[1]

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

Trang 25

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 25

Trang 26

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 26

Ví dụ xử lý sự kiện

Sự kiện

Đáp ứng 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

Trang 27

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 27

Trang 28

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 28

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.

Trang 29

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 29

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++

Trang 30

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 30

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ó

Trang 31

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 31

Cú pháp đơn giản của 1 Project

Trang 32

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 32

Biến

• Khai báo theo cú pháp:

public

protected private

int string

Trang 33

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 33

Mô tả

Kiểu trong CTS Tên

Trang 34

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 34

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'

Trang 35

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 35

Kiễu dữ liệu tham chiếu được định nghĩa sẵn

Chuỗi ký tự Unicode System.String

string

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ị)

System.Object

object

Mô tả Kiểu CTS

Tên

Trang 36

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 36

Trang 37

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 37

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";

Trang 38

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 38

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}",

• }

Trang 39

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 39

Các toán tử

checked unchecked Điều khiển Overflow exception

Sizeof(Kiểu) Thông tin về kiểu

new Tạo đối tượng

= += -= *= /= %= &= |= ^= <<= >>= Phép gán

+ Cộng chuỗi

&& || ! Logic

+ - * / %

Số học

Ký hiệu Loại toán tử

Trang 40

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 40

Luồng điều khiển của chương trình

Trang 41

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 41

Trang 42

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 42

Trang 43

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 43

Response Write (i)‏;

//Error statement

Response Write(s )‏;

}

Trang 44

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 44

Trang 45

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 45

Trang 46

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 46

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> ()

Trang 47

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 47

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

• …

Trang 48

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 48

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])

Trang 49

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 49

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

• …

Trang 50

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 50

Các phương thức trên StreamWriter

Trang 51

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 51

Trang 53

Ví dụ về DataTable

protected void Page_Load(object sender, EventArgs e)

{ DataTable dt = new DataTable("Sach");

// tạo ra 2 cột (field) của bảng Sach

dt.Columns.Add("Masach"); // Tạo ra cột MaSach

dt.Columns.Add("Tensach"); // Tạo ra cột TenSach

DataRow dr = dt.NewRow();//Tạo thêm 1 dòng mới

dr["Masach"] = "s1"; //Nhập dữ liệu cho cột mã sách

dr["TenSach"] = "tin";

dt.Rows.Add(dr); //Thêm dòng vào dt

dr = dt.NewRow(); //Tạo thêm 1 dòng mới

Trang 54

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 54

Trang 55

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 55

Trang 56

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 56

Trang 57

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 57

protected

internal

Biến hoặc phương thức chỉ có thể truy xuất từ bên trong kiểu dữ liệu mà nó thuộc về, hoặc các kiểu dữ liệu dẫn xuất

Trang 58

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 58

Class_b t2 = new Class_b();

Class_b.Class_b1 t21 = new Class_b.Class_b1();

Class_b.Class_b2 t22= new Class_b.Class_b2();

}

}

Trang 59

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 59

Hàm dựng (Constructors)

• Là một loại đặc biệt của phương thức trong một lớp

• Được gọi khi một lớp được tạo

• Thường được sử dụng để khởi tạo các giá trị trong một lớp

• Tên trùng với tên lớp

• Không trả về giá trị

• Nếu không tạo ra hàm dựng C# sẽ tạo ra hàm dựng ngầm định

• Một lớp có thể có nhiều hàm dựng nhưng khác nhau

về số lượng hoặc kiểu của tham số

Trang 60

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 60

using System;

public class Person

{

public string Ten,dc=“Khong co” ;

Trang 61

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 61

Trang 62

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 62

Destructor

• Destructors trong C# gọi là bộ thu gom rác

Garbage Collectors.

• Bộ thu gom rác sẽ giải phóng bộ nhớ khi

đối tượng không còn yêu cầu hoặc tham

chiếu.

• Destructors khai báo như sau:

~<tên hàm huỷ>()//giống tên lớp

{

//các cài đặt của người lập trình }

Trang 63

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 63

Các trường (Fields)

• Lưu trữ giá trị

• Cú pháp: <Mứctruycập> <Kiểu> <tênfields>

• Mức truy cập: public, private, protected,

internal, protected internal

• Kiểu:

– Kiểu giá trị được định nghĩa sẳn (int,char …)

– Kiểu tham chiếu: lớp, struct, mảng, chuỗi,…

Trang 64

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 64

{ public string hoten;

private bool GioiTinh;

protected DateTime NgaySinh;

internal float[] DsDiem = new

static void Main(string[] args) {

SinhVien sv = new SinhVien(); sv.hoten = "Nguyen Nam";

//sv.GioiTinh = false;

//sv.NgaySinh = DateTime.Parse("12/10/79"); sv.DsDiem[0] = 5;

}

} }

Trang 65

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 65

Trường tĩnh [1]

• Được khai báo trong 1 lớp

• Khi sử dụng không cần phải tạo ra lớp chứa trường tĩnh

• Khi khai b áo chỉ cần dùng static trước tên biến

• Truy xuất: <tênlớp>.tên trường tĩnh

Trang 66

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 66

Ví dụ trường tĩnh

using System ;

public class List

{

public static int Dem = 0 ;

public List ()‏//H àm dựng: được gọi khi tạo lớp

Response.Write ( List Dem )‏;

List n1 = new List ()‏;

Response.Write ( List Dem )‏;

List n2 = new List ()‏;

Response.Write ( List Dem )‏;

}

}

Trang 67

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 67

Phương thức(method)

• Là tập hợp các câu lệnh

• Được khai báo trong lớp hoặc cấu trúc, phải chỉ rõ mức truy cập, tên, kiểu trả về,danh sách các tham số Nếu không có tham số phải có cặp dấu ngoặc

• Phương thức không trả về giá trị có kiểu trả về là void

• Dùng return để trả về giá trị của phương thức

Trang 68

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 68

Tham chi u ref and out [1] ếu ref and out [1]

Trang 69

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 69

Tham chi u ref and out [2] ếu ref and out [1]

public partial class _Default : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)‏

{

int x = 0 ; //int x; > Error

int y = 0 ; //int y; > Error

Point p = new Point ( 100 , 200 )‏;

Trang 70

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 70

Tham chi u ref and out [3] ếu ref and out [1]

Trang 71

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 71

Tham chi u ref and out [4] ếu ref and out [1]

public partial class _Default : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

int x = 0 ; // int x; > Error

int y = 0; // int y; > Error

Point p = new Point ( 100 , 200 )‏;

p GetPoint ( ref x , ref y )‏;

Trang 72

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 72

Tham chi u ref and out [5] ếu ref and out [1]

Trang 73

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 73

Tham chi u ref and out [6] ếu ref and out [1]

public partial class _Default : System.Web.UI.Page

Point p = new Point ( 100 , 200 )‏;

p GetPoint (out x ,out y )‏;

•Không cần khởi tạo giá trị cho các tham số

•Khi xây dựng và gọi phương thức phải dùng out

Trang 74

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 74

Danh sách các tham số có chiều dài thay đổi [1]

• C# cho phép khai báo 1 tham số nhưng khi gọi phương thức thì số lượng tham số có thể thay đổi

• Ví dụ như WriteLine(…)

• Sử dụng từ khoá params để khai báo tham

số có chiều dài thay đổi.

Trang 75

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 75

class LopCon : LopCha

{ Cai dat lop con}

Trang 76

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 76

Ví dụ về kế thừa [1]

using System ;

public class Person

{

protected string name ; //protected Field

public Person ( string name )‏ //Function as a Constructor {

this name = name ;

Trang 77

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 77

Trang 78

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 78

• Person là lớp cơ sở (lớp cha).

• Employee là lớp dẫn xuất (lớp con) từ lớp

Person , vì thế:

– Nó kế thừa tất cả các dữ liệu và hàm thành

viên của lớp cha (trừ private)

– Constructors không tự động kế thừa lên lớp cha, do đó người sử dụng phải chỉ rõ:

public Employee( string name ) :base ( name ){…}

Trang 79

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 79

Hàm nạp chồng (Overloading )‏

• Hàm nạp chồng là hàm trùng tên trong một lớp nhưng khác nhau về số lượng và kiểu của các tham số

• Không nạp chồng dựa vào tên tham số và kiểu trả

về của các tham số

Trang 80

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 80

Trang 81

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 81

Trang 82

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 82

Hàm ghi đè (Overriding)‏ [1]

 Hàm ghi đè là hàm giống nhau trên cả lớp cha và lớp con.

 Để ghi đè một hàm đã có trên lớp cha:

giống với lớp cha

Trang 83

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 83

Hàm ảo (Virtual Functions) [1]

• Cách xây dựng hàm ảo giống như hàm ghi

đè nhưng sử dụng từ khoá virtual trong hàm của lớp cha và override trong hàm của lớp con

• Khi gọi hàm, trình biên dịch sẽ nhìn vào lớp thực sự được tạo ra và gọi hàm tương ứng trên lớp này

Trang 84

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 84

Giao diện (Interfaces)

• Giao diện giống như lớp trừu tượng

• Chứa các phương thức trừu tượng nhưng không cài đặt.

• Một lớp kế thừa lên 1 giao diện phải cài đặt tất

cả các phương thức trên giao diện đó.

• Một lớp chỉ kế thừa lên 1 lớp khác nhưng có thể

kế thừa trên nhiều giao diện.

Trang 85

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 85

Trang 86

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 86

Trang 87

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 87

Trang 88

Nguyễn Hoàng Hà - Khoa CNTT-ĐHKH 88

Gi ới thiệu [1]

• Thuộc tính trong 1 lớp được sử dụng để lấy

và thay đổi giá trị trong lớp.

• Một thuộc tính thường có 2 khối lệnh:

– Get: trả về một giá trị

– Set: Gán một giá trị mới

– Từ khoá value được sử dụng để xác định giá trị được gán trong khối set

• Giống như hàm thuộc tính có thể dùng bổ từ virtual, override, abstract, static

Ngày đăng: 21/10/2014, 15:13

TỪ KHÓA LIÊN QUAN

w