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

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

Đ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

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

◦ 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

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

phần mới (component-oriented)

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

oVisual Basic NET: Version mới của Visual Basic, có nhiều đổi mới oJScript NET: Version mới của Jscript, tăng cường sự thực thi

oJ# NET: Ngôn ngữ Java cho NET

oNgô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 127byte System.Byte Integer between 0 and 255

short System.Int16 Integer between -32768 and 32767ushort 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 2147483647 uint System.UInt32 Integer between 0 and 4294967295long System.Int64 Integer between -9223372036854775808 and

9223372036854775807ulong 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 falsestring 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:

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

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

Trang 52

2.4 Kiểu dữ liệu

ToInt16Chuyển đổi một kiểu thành một 16-bit integerToInt32Chuyển đổi một kiểu thành một 32-bit integerToInt64Chuyển đổi một kiểu thành một 64-bit integerToSbyteChuyển đổi một kiểu thành một kiểu signed byte

ToSingleChuyển đổi một kiểu thành một số small floating pointToStringChuyển đổi một kiểu thành một string

ToByteChuyển đổi một kiểu thành một kiểu đã xác địnhToUInt16Chuyển đổi một kiểu thành một kiểu unsigned intToUInt32Chuyển đổi một kiểu thành một kiểu unsigned longToUInt64Chuyển đổi một kiểu thành một unsigned big integer

Trang 54

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áiC += A  C = C

Trang 58

2.5 Toán tử

oToán tử điều kiện (ternary) gồm 3 toán hạng, thường được sử dụng để thay thế câu lệnh if else đơn giản

variable = (condition) ? expressionTrue : 

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

oTê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

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:

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

using System;

using first_namespace;using second_namespace;

oCó thể lồng không gian tên và truy cập các thành viên của các namespace được lồng vào nhau này bởi sử dụng toán tử dot (.) trong C#, như sau:

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à

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

Trang 64

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

oCâ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

Trang 65

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

- Giá trị expression của lệnh switch được so sánh với mỗi giá trị của case (x)

- Nếu phù hợp thì khối lệnh tương ứng được thực thi

- 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

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

oCâu lệnh foreach, được sử dụng để duyệt các phần tử của

oVí 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

oCâ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

Trang 76

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

oCâ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)

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

oVí 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]);}

Trang 81

2.8 Mảng (Array)

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

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

foreach (string i in xe)

Trang 82

2.8 Mảng (Array)

oTrong không gian tên System.Linq, có nhiều phương thức xử lý mảng như Min, Max và Sum

oVí dụ, myArray khai báo không gian tên using System.Linq, để sử dụng phương thức:

int[] munbers = {14, 3, 25, 9, 21};

Console.WriteLine("Gia tri lon nhat:"+ numbers.Max());       Console.WriteLine("Gia tri nho nhat:"+ numbers.Min());       Console.WriteLine("Tong gia tri:"+ numbers.Sum());

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

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan