1. Trang chủ
  2. » Giáo án - Bài giảng

Bài Giảng Lập Trình Trên Desktop ( Combo Full Slide 7 Chương )

545 5 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

Tiêu đề Bài Giảng Lập Trình Trên Desktop
Chuyên ngành Lập Trình
Thể loại Bài giảng
Định dạng
Số trang 545
Dung lượng 9,98 MB
File đính kèm slide.zip (11 MB)

Nội dung

oFCL 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.. Các thành phần của .NET FrameworkoCác loại code trong .NET ◦ Sou

Trang 1

Lập trình trên Desktop

Trang 3

1 Tổng quan về NET Framework

oGiới thiệu NET Platform

oGiới thiệu NET Framework

oCác thành phần của NET Framework

oCác loại ngôn ngữ lập trình trên NET

oCác loại ứng dụng có thể viết với NET

oCác bước phát triển ứng dụng

Trang 4

1.1 Giới thiệu NET Platform

o.NET Platform

ứng dụng Internet

oMục đích của NET Platform

◦ Đơn giản hóa việc phát triển các ứng dụng trong môi trường phân bố của

Internet

Trang 5

1.1 Giới thiệu NET Platform

oCác thành phần của NET Platform

◦ .NET Enterprise Servers

◦ Visual Studio NET

Trang 6

1.1 Giới thiệu NET Platform

oMicrosoft NET Framework là môi trường chung cho việc xây dựng,

triển khai và chạy các ứng dụng

◦ Nhiều tiện ích khác giúp cho việc phát triển các ứng dụng nhanh, hiệu quả

hơn.

Trang 7

1.1 Giới thiệu NET Platform

tin qua Internet Dùng các NET My Service các ứng dụng có thể truyền thông trực tiếp bằng giao thức SOAP và XML

Trang 8

1.1 Giới thiệu NET Platform

o.NET Enterprise Servers, một nhóm các sản phẩm của Microsoft

Mỗi sản phẩm phụ trách một thành phần then chốt cho kiến trúc ứng dụng đang phát triển

oMột số sản phẩm:

◦ Microsoft Biztalk Server

◦ Microsoft Host integration Server

◦ …

Trang 9

1.1 Giới thiệu NET Platform

oVisual Studio NET, là môi trường phát triển để xây dựng các ứng

dụng trên NET Framework

Trang 10

1.2 Giới thiệu NET Framework

oCác mục đích thiết kế NET Framework

◦ Mô hình lập trình thống nhất

◦ Độc lập ngôn ngữ (hỗ trợ nhiều ngôn ngữ lập trình)

Trang 11

1.2 Giới thiệu NET Framework

oCác phiên bản NET Framework

2003; NET Framework 2.0 – Visual Studio 2005 ; NET Framework 3.0 – Visual Studio 2005; NET Framework 3.5 – Visual Studio 2008

◦ …

o.NET Framework có các thành phần chính:

◦ Framework class Library (FCL)

Trang 12

1.2 Giới thiệu NET Framework

Trang 13

1.3 Các thành phần của NET Framework

oCLR làm nhiệm vụ 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, và thực thi an toàn kiểu

oFCL 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 14

1.3 Các thành phần của NET Framework

oCommon Language Runtime (CLR)

◦ CLR là môi trường thực thi cho ngôn ngữ chung và các dịch vụ trong quá trình

Trang 15

1.3 Các thành phần của NET Framework

oBiên dịch và thực thi

Trang 16

1.3 Các thành phần của NET Framework

oBiên dịch và thực thi:

là assembly Khối này sẽ chứa các mã lệnh ngôn ngữ trung gian 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ẽ chuyển đối mã lệnh

ngôn ngữ trung gian trong assembly thành mã lệnh tương thích với CPU cụ thể trước khi có thể thực thi.

Trang 17

1.3 Các thành phần của NET Framework

oCác loại code trong NET

◦ Source code

◦ MSIL là tập các lệnh, mã lệnh cấp thấp do Microsoft sáng tạo ra.

◦ Các source code được viết bằng nhiều loại ngôn ngữ khác nhau đều phải dịch sang MSIL

◦ OptIL: là tập con của MSIL có thể được sinh bằng trình biên dịch tối ưu OptIL

giúp cho việc sinh nhanh native code

Trang 18

1.3 Các thành phần của NET Framework

Trang 19

◦ Một assembly được tạo ra khi trình biên dịch tương thích với NET chuyển

một file chứa mã nguồn thành một file Library assemblies (DLL) hoặc Process

assemblies (EXE)

trình biên dịch cụ thể

lệnh hoặc tài nguyên (như ảnh hoặc dữ liệu XML)

Trang 20

1.3 Các thành phần của NET Framework

oCác thành phần trong assembly

Trang 21

1.3 Các thành phần của NET Framework

oMột assemply chứa nhiều file

Trang 22

1.3 Các thành phần của NET Framework

oManifest:

◦ Là một tập hợp các bảng chứa các metadata trong đó liệt kê tên của tất cả các

file trong assembly, tham chiếu đến các assembly bên ngoài, và các thông tin như tên, phiên bản để định danh assembly đó

◦ Khi một assembly được nạp, nhiệm vụ đầu tiên của CLR là mở file chứa

manifest để có thể định danh các thành viên có trong assembly

Trang 23

1.3 Các thành phần của NET Framework

oMetadata

◦ Metadata là thông tin nhị phân dùng để mô tả IL code

đến nó để khám phá các thông tin về code của chương trình như: các class, các thành viên, thừa kế,

◦ …

Trang 24

1.3 Các thành phần của NET Framework

Trang 25

oJIT Compiler

◦ Trình biên dịch JIT là trình biên dịch lúc thực thi với nhiệm vụ chuyển đổi MSIL

(assemblies) sang native code

◦ Đặc điểm cơ bản của JIT

◦ JIP độc lập ngôn ngữ lập trình; JIT phụ thuộc kiến trúc CPU; JIP biên dịch cho mỗi phương

thức lần đầu tiên chạy; Native code được lưu lại để dùng lại sau này

◦ CLR cung cấp 3 trình biên dịch JIT để chuyển MSIL sang native code:

◦ EconoJIT; JIT; optJIT

Trang 26

1.3 Các thành phần của NET Framework

oFramework Class Library – FCL: Một tập thư viện lớp trong NET

o.Net Framework thay thế phần lớn (mặc dù không phải tất cả) các

tập Windows API bằng thư viện lớp hướng đối tượng và được quản

lý tốt

Trang 27

1.3 Các thành phần của NET Framework

Trang 28

oCác lớp trong FCL có thể được chia thành các loại sau:

console, network và file I/O; và tương tác dễ dàng với các runtime.

◦ Hỗ trợ tương tác cơ sở dữ liệu; dùng và sinh dữ liệu XML; và cấu trúc dữ liệu.

◦ Hỗ trợ xây dựng các ứng dụng web (thin client).

◦ Hỗ trợ xây dựng các ứng dụng desktop (thick client)

Trang 29

1.3 Các thành phần của NET Framework

Trang 33

1.4 Các loại ngôn ngữ trên NET

o C# (C-Sharp) – được thiết kế cho NET: Ngôn ngữ hướng thành

phần mới (component-oriented)

o C++ NET: Các mở rộng code được quản lý cho C++

o Visual Basic NET: Version mới của Visual Basic, có nhiều đổi mới

o JScript NET: Version mới của Jscript, tăng cường sự thực thi

o J# NET: Ngôn ngữ Java cho NET

o Ngôn ngữ hãng thứ ba (Third-party): APL, COBOL, Pascal, Eiffel,

Haskell, ML, Oberon, Perl, Python, Scheme, Smalltalk

Trang 34

1.5 Các loại ứng dụng trên NET

◦ Windows control library

◦ Web control library

Trang 35

oKhi chương trình được chạy trong CLR, JIT sẽ dịch các mã trung gian

sang native code và thực thi

oNative code được thực thi trong ngữ cảnh của CLR

Trang 37

2.1 Chương trình đầu tiên

oTạo chương trình ConsoleApp

oSolution Explorer

oCửa sổ Properties

oCửa sổ Error List

Trang 38

2.2 Biến

oCú pháp: <type> <name>;

oTrong đó:

<type>: kiểu dữ liệu

<name>: tên biến

Trang 39

2.2 Biến

oĐặt tên biến:

◦ Có thể bắt đầu bằng ký tự, dấu gạch dưới.

◦ Không có ký tự trống, dấu gạch giữa, không trùng từ khóa

oVí dụ, đặt tên biến đúng:

myName, x1, _test

oVí dụ, đặt tên biến sai:

1x, namespace, x-1, x 1

Trang 40

2.3 Giá trị Literal

oHằng (Constant) liên quan đến các giá trị cố định không thay đổi khi

thực thi Các giá trị cố định được gọi là Literal

oConstant là một kiểu dữ liệu thay thế cho Literal, còn Literral là thể

hiện chính nó

oVí dụ, const PI = 3.14;

oHằng ở đây là PI, còn Literal là 3.14

Trang 41

2.3 Giá trị Literal

oTrong C#, được phân ra thành giá trị hằng số nguyên, hằng số thực,

hằng ký tự, hằng chuỗi ký tự và Boolean literal (hằng lôgic)

oVí dụ,

const x=5;

const st=“Khoa CNTT”;

Trang 42

2.3 Giá trị Literal

oMột số ký tự khi có ký tự \ đứng trước thì có ý nghĩa đặc biệt, gọi là

escape sequence (dãy thoát)

Trang 44

2.4 Kiểu dữ liệu

oKiểu dữ liệu cơ bản của giá trị được kế thừa từ

lớp System.ValueType, khi khai báo một biến kiểu int, hệ thống cấp phát bộ nhớ để lưu giá trị đó

oĐể lấy kích thước của một kiểu hoặc biến, sử dụng phương thức sizeof

◦ Ví dụ, lấy kích thước của kiểu int viết: sizeof(int)

Trang 45

2.4 Kiểu dữ liệu

oKiểu số nguyên

Tên

sbyte System.SByte Integer between -128 and 127 byte System.Byte Integer between 0 and 255 short System.Int16 Integer between -32768 and 32767 ushort System.UInt16 Integer between 0 and 65535

Trang 46

2.4 Kiểu dữ liệu

oKiểu số nguyên

Tên

int System.Int32 Integer between -2147483648 and 2147483647uint System.UInt32 Integer between 0 and 4294967295

long System.Int64 Integer between -9223372036854775808 and

9223372036854775807 ulong System.UInt64 Integer between 0 and 18446744073709551615

Trang 48

2.4 Kiểu dữ liệu

oKiểu văn bản và lôgic

char System.Char Một ký tự

bool System.Boolean true hoặc false

string System.String Chuỗi các ký tự

Trang 49

2.4 Kiểu dữ liệu

oÉp kiểu, có 2 loại:

dữ liệu lớn hơn  không làm mất thông tin

byte  short int long float double

dữ liệu nhỏ hơn  có thể làm mất thông tin

double float long int short byte

Trang 51

2.4 Kiểu dữ liệu

oMột số phương thức chuyển đổi kiểu có sẵn:

ToBoolean Chuyển đổi một kiểu thành một giá trị Boolean, nếu có thể

ToByte Chuyển đổi một kiểu thành một byte

ToChar Chuyển đổi một kiểu thành một Unicode character, nếu có thể ToDateTime Chuyển đổi một kiểu (kiểu integer hoặc string) thành các cấu

trúc date-time ToDecimal Chuyển đổi một kiểu số thực hoặc số nguyên thành một kiểu

thập phân ToDouble Chuyển đổi một kiểu thành một kiểu double

Trang 52

2.4 Kiểu dữ liệu

ToInt16 Chuyển đổi một kiểu thành một 16-bit integer

ToInt32 Chuyển đổi một kiểu thành một 32-bit integer

ToInt64 Chuyển đổi một kiểu thành một 64-bit integer

ToSbyte Chuyển đổi một kiểu thành một kiểu signed byte

ToSingle Chuyển đổi một kiểu thành một số small floating point ToString Chuyển đổi một kiểu thành một string

ToByte Chuyển đổi một kiểu thành một kiểu đã xác định

ToUInt16 Chuyển đổi một kiểu thành một kiểu unsigned int

ToUInt32 Chuyển đổi một kiểu thành một kiểu unsigned long ToUInt64 Chuyển đổi một kiểu thành một unsigned big integer

Trang 54

% Chia lấy phần dư B % A sẽ cho kết quả là

0 ++ Tăng giá trị toán hạng một đơn vị A++ sẽ cho kết quả là

11 Giảm giá trị toán hạng một đơn

Trang 55

!= Kiểm tra giá trị khác nhau

> Kiểm tra giá trị lớn hơn (A > B)  false

< Kiểm tra giá trị nhỏ hơn (A < B)  true

>= Kiểm tra giá trị lớn hơn hoặc

<= Kiểm tra giá trị nhỏ hơn hoặc

Trang 56

2.5 Toán tử

oToán tử logic Ví dụ, biến A=1, B=0

Toán

&& Toán tử logic AND (và) Nếu cả hai toán tử đều có

giá trị khác 0 thì điều kiện trở lên true. (A && B)  false

|| Được gọi là toán tử logic OR (hoặc) Nếu một trong

hai toán tử khác 0, thì điều kiện là true. (A || B)  true

! Được gọi là toán tử NOT (phủ định) Sử dụng để đảo

ngược lại trạng thái logic của toán hạng đó Nếu điều kiện toán hạng là true thì phủ định nó sẽ là false.

!(A && B)  true

Trang 57

2.5 Toán tử

oToán tử gán

Toán

+= Cộng toán hạng phải với toán hạng trái C += A  C = C

+ A -= Trừ toán hạng phải cho toán hạng trái C -= A  C = C –

A

*= Nhân toán hạng phải với toán hạng trái C *= A C = C *

A /= Chia toán hạng trái cho toán hạng phải C /= A  C = C /

A

%= Lấy dư của phép chia toán hạng trái cho

Trang 59

2.6 Không gian tên

oMột namespace được thiết kế để xác định một tập hợp

các tên phân biệt

o Tên lớp được khai báo trong một namespace không xung đột với cùng tên lớp được khai báo trong namespace khác

o Định nghĩa, bằng từ khóa namespace sau đó tên namespace

namespace tên_namespace

{

//Khai báo code

}

Trang 60

2.6 Không gian tên

oĐể gọi hàm hoặc biến của namespace, cần thêm nó vào sau tên của namespace:

tên_namespace.tên_phần_tử

oVí dụ, namespace1 minh họa về không gian tên

oTừ khóa using được sử dụng khai báo không gian tên Chẳng hạn, khai báo System trong chương trình và lớp Console được định nghĩa trong nó

Trang 61

2.6 Không gian tên

oVí dụ, khai báo sử dụng không gian tên

oVí dụ, namespace2 minh họa về không gian tên

Trang 62

2.7 Cấu trúc điều khiển

oCâu lệnh if, khối lệnh được thực thi, nếu điều kiện là True

    Console.WriteLine("20 lon hon 18.");

}

Trang 63

2.7 Cấu trúc điều khiển

oCâu lệnh if…else…, khối lệnh 1 được thực thi, nếu điều kiện là True, ngược lại khối lệnh 2 được thực thi

    Console.WriteLine("Dat.");

} else {     Console.WriteLine("Khong dat.");

}

Trang 64

2.7 Cấu trúc điều khiển

o Câu lệnh if…else if…else…, khối lệnh 1 thực thi, nếu điều kiện 1 True, khối lệnh 2 thực thi nếu điều kiện 2 True, khối lệnh 3 thực thi nếu điều kiện 1 và điều kiện 2 là False

     Console.WriteLine("Kha Gioi");

} else if (dtb >= 5) {

    Console.WriteLine("Trung binh");

} else {     Console.WriteLine("Yeu");

}

Trang 65

2.7 Cấu trúc điều khiển

- Khi gặp break, thoát khỏi switch và lệnh sau

switch được thực thi

- Nếu không có case phù hợp với expression thì

khối lệnh sau default được thực thi.

Trang 66

2.7 Cấu trúc điều khiển

oVí dụ, in ra màn hình tên của ngày trong tuần

  case 5:

    Console.WriteLine("Friday");     break;

  case 6:

    Console.WriteLine("Saturday");     break;

  case 7:

    Console.WriteLine("Sunday");     break;

}

Trang 67

2.7 Cấu trúc điều khiển

- check_dieu_kien: kiểm tra điều kiện để thực thi khối lệnh.

- tang/giam_bien: được thực thi nhiều lần sau khi khối lệnh được

thực thi.

Trang 68

2.7 Cấu trúc điều khiển

oVí dụ, tăng i lên 2 đơn vị sau mỗi lần lặp:

for (int i = 0; i < 20; i = i+2)

{

    Console.WriteLine(i);

}

Trang 69

2.7 Cấu trúc điều khiển

o Câu lệnh foreach, được sử dụng để duyệt các phần tử của mảng hoặc collection

o Ví dụ, duyệt tất cả các phần tử của mảng cars

string[] cars = { "Honda", "BMW", "Ford", "Mazda" };

foreach (string i in cars)

{

    Console.WriteLine(i);

}

Trang 70

2.7 Cấu trúc điều khiển

oCâu lệnh while, được sử dụng để lặp nếu số lần lặp không được xác định trước

Trang 71

2.7 Cấu trúc điều khiển

Trang 72

2.7 Cấu trúc điều khiển

oCâu lệnh do…while, tương tự như vòng lặp while, ngoại trừ thực hiện lệnh ít nhất một lần ngay cả khi điều kiện là False

Trang 73

2.7 Cấu trúc điều khiển

oVí dụ, tính tổng của 5 số tự nhiên đầu tiên:

Console.WriteLine("Tong tu 1 den 5  la " + sum); 

oNếu điều kiện luôn là True thì vòng lặp sẽ là lặp vô tận

Trang 74

2.7 Cấu trúc điều khiển

oCâu lệnh nhảy goto, nhảy đến một dòng cụ thể trong chương trình, được xác định bằng một nhãn (label)

Trang 75

2.7 Cấu trúc điều khiển

o Câu lệnh nhảy break, được sử dụng trong lệnh switch, hoặc câu lệnh lặp for, foreach, while, do while dùng để nhảy ra khỏi cấu trúc điểu khiển này

Trang 76

2.7 Cấu trúc điều khiển

o Câu lệnh nhảy continue, được sử dụng trong câu lệnh lặp for, foreach, while, do while Thoát ngay lần lặp hiện tại của vòng lặp để bắt đầu lần lặp mới

Trang 77

2.7 Cấu trúc điều khiển

oCâu lệnh nhảy return, dùng để thoát khỏi phương thức của một lớp, trả điều khiển trở về nơi gọi phương thức

◦ Không trả về kiểu dữ liệu gì nếu phương thức là void

◦ Hoặc trả về một giá trị có kiểu dữ liệu thích hợp với kiểu dữ liệu của phương thức

Trang 78

2.8 Mảng (Array)

oMảng là một đối tượng chứa các phần tử có kiểu dữ liệu giống nhau Mảng lưu các phần tử theo chỉ mục, chỉ mục của phần tử đầu tiên là 0

oTạo một mảng, chưa khởi tạo số phần tử:

type[] biếnmảng;

oVí dụ, khai báo biến mảng:

string[] xe = { "Honda" , "Kia" , "Ford" , "Mazda", "Toyota" };

int[] a = {10, 20, 30, 40} ;

Trang 79

2.8 Mảng (Array)

o Truy cập một phần tử mảng bằng cách sử dụng số chỉ mục (index)

o Ví dụ, truy xuất phần tử có chỉ mục là 0 trong mảng:

string [] xe = { "Honda" , "Kia" , "Ford" , "Mazda", "Toyota" };

Console.WriteLine(xe[0]);

oXác định số phần tử một mảng, sử dụng thuộc tính Length:

Console.WriteLine(xe.Length);

Trang 80

2.8 Mảng (Array)

oDuyệt các phần tử trong mảng sử dụng vòng lặp for, foreach

oVí dụ, truy xuất các phần tử bằng for:

string [] cars = { "Honda" , "Kia" , "Ford" , "Mazda", "Toyota" };

for ( int i = 0; i < cars.Length; i++)

{

Console.WriteLine(cars[i]);

}

Ngày đăng: 28/03/2024, 23:21

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN