công nghệ net tổng quan .net frameword + webform

30
1 Công nghệ NET Tổng quan .NET Frameword + WebForm

Upload: tobias

Post on 09-Jan-2016

71 views

Category:

Documents


2 download

DESCRIPTION

Công nghệ NET Tổng quan .NET Frameword + WebForm. Chương 1: Giới thiệu công nghệ .NET. Nội dung chính. Lịch sử .NET Thành phần của công nghệ .NET Kiến trúc NET Framework Các tính n ă ng mới. .NET Framework. . NET 4.5 (Aug-2012) VS.NET 2012 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Công nghệ NET Tổng quan .NET Frameword + WebForm

1

Công nghệ NET

Tổng quan .NET Frameword + WebForm

Công nghệ NET

Tổng quan .NET Frameword + WebForm

Page 2: Công nghệ NET Tổng quan .NET Frameword + WebForm

Chương 1: Giới thiệu công nghệ .NETChương 1: Giới thiệu công nghệ .NET

Page 3: Công nghệ NET Tổng quan .NET Frameword + WebForm

Nội dung chínhNội dung chính

• Lịch sử .NET• Thành phần của công nghệ .NET• Kiến trúc NET Framework• Các tính năng mới

Page 4: Công nghệ NET Tổng quan .NET Frameword + WebForm

.NET Framework.NET Framework

.NET 1.1 (Apr-2003)VS .NET 2003Default: Server 2003

.NET 3.5 (Nov-2007)VS.NET 2008Default: Windows 7

.NET 3.0 (Nov-2006)Default: Windows Vista, Server 2008

.NET 2.0 (Nov-2005)VS.NET 2005

.NET 1.0 (Feb-2002)

.NET 4.0 (Apr-2010)VS.NET 2010

.NET 4.5 (Aug-2012)VS.NET 2012Default: Windows 8, Windows Server 2012

Page 5: Công nghệ NET Tổng quan .NET Frameword + WebForm

.NET Framework.NET Framework

• Bộ khung phát triển ứng dụng;– Bốn ngôn ngữ chính:C#, VB.NET, C++.NET,

Jscript.NET– Common Language Runtime – CLR (.NET

Runtime): tương tự máy ảo Java– Bộ thư viện Framework Class Library - FCL

Page 6: Công nghệ NET Tổng quan .NET Frameword + WebForm

Kiến trúc .NET FrameworkKiến trúc .NET Framework

Page 7: Công nghệ NET Tổng quan .NET Frameword + WebForm

.NET Framework 4.0.NET Framework 4.0

Page 8: Công nghệ NET Tổng quan .NET Frameword + WebForm

.NET Framework 4.0 Architecture.NET Framework 4.0 Architecture

Page 9: Công nghệ NET Tổng quan .NET Frameword + WebForm

Chương 2: Ngôn ngữ C#Chương 2: Ngôn ngữ C#

Page 10: Công nghệ NET Tổng quan .NET Frameword + WebForm

Nội dung chínhNội dung chính

Nhắc lại & Bổ sung thêm một số kiến thức cần thiết về C#:• Từ khóa var - Anonymous Type• Optional & Named Parameters (Fuction)• Object Initialize, Automatic Properties,

Extension Method (OOP)• Generic (Function, Collection & Class)

Page 11: Công nghệ NET Tổng quan .NET Frameword + WebForm

Từ khóa var - Anonymous TypeTừ khóa var - Anonymous Type• Mục đích: để khai báo biến (trong phạm

vi hàm, phương thức)• Yêu cầu: phải khởi tạo giá trị khi khai báo.• Kiểu dữ liệu: ngầm định kiểu dữ liệu của

biến là kiểu của biểu thức bên phải phép gán.

• Ví dụ:var s = 0;//s kiểu ints = “hienlth”;//báo lỗi, không chuyển từ string sang int được.

Page 12: Công nghệ NET Tổng quan .NET Frameword + WebForm

Optional & Named ParametersOptional & Named Parameters• Optional Parameters: Tham số mặc định

– Dùng trong trường hợp người dùng không truyền tham số (giống C++)

– Phải truyền đúng thứ tự. Tham số mặc định phải truyền từ phải sang trái, liên tục nhau.

• Named Parameters: Tham số được đặt tên– Có thể đổi thứ tự các tham số– Ví dụ: static void Test(int size, string name){ …}

Test(name: "Perl", size: 5);Test(6, "Net");Test(7, name: "Google");

Page 13: Công nghệ NET Tổng quan .NET Frameword + WebForm

Object Initialize, Automatic PropertiesObject Initialize, Automatic Properties• Object Initialize. Ví dụ:

– Diem dinhA = new Diem(); dinhA.X = 10; dinhA.Y = 10;– Diem dinhB = new Diem() { X = 10, Y = 20 };– var dinhC = new { X = 9, Y = 11};

• Automatic Properties:– Tự động tạo ra các private field và những

thao tác get/set mặc định.– Ví dụ:

public string LastName {get; set;

}

Page 14: Công nghệ NET Tổng quan .NET Frameword + WebForm

Extension MethodExtension Method

• Extension Method– phương thức được viết thêm vào một class

static hiện có mà không cần một cấp thừa kế, biên dịch lại, hoặc sửa đổi mã nguồn gốc

– được viết dưới dạng hàm tĩnh (static)•Ví dụ:public static string doisangchuhoa(this string s){

return s.ToUpper();}•//Sử dụng: s.doisangchuhoa();

Page 15: Công nghệ NET Tổng quan .NET Frameword + WebForm

Generics ProblemGenerics Problem

Page 16: Công nghệ NET Tổng quan .NET Frameword + WebForm

Nội dungNội dung• Định nghĩa generic• Phương thức generic• Lớp generic• Ủy nhiệm hàm generic• Giao diện generic• Phép ràng buộc

Page 17: Công nghệ NET Tổng quan .NET Frameword + WebForm

Generic là gì?Generic là gì?• Generics, một tính năng mới đã được thêm

vào từ C# 2005 cho thiết kế các class.

• Tính năng này cho phép tái sử dụng mã lệnh

đặc biệt trong lĩnh vực tập hợp (collection)

Page 18: Công nghệ NET Tổng quan .NET Frameword + WebForm

Phương thức genericPhương thức generic• Sử dụng một hoặc nhiều tham số kiểu tùy ý

sau tên của phương thức. VD:void MyMethod<T>(T var1, T var2,…)

• Tham số kiểu có thể được sử dụng trong các tham số của phương thức hoặc bên trong phần thân của phương thức.

• Ví dụ: phương thức generic hoán đổi 2 biến kiểu T:

void Swap<T>(ref T var1, ref T var2) { T temp; temp = var1; var1= var2; var2= temp;}

Page 19: Công nghệ NET Tổng quan .NET Frameword + WebForm

Lớp genericLớp generic• Cú pháp khai báo một class generic:

class MyClass<T>Trong đó T là tham số kiểu

• Khi thể hiện cụ thể lớp đó, bạn thay thế tham số kiểu bằng một đối số kiểu (type argument)

• Ví dụ:MyClass<string> class1= new

MyClass<string>();MyClass<int> class2= new MyClass<int>();

Page 20: Công nghệ NET Tổng quan .NET Frameword + WebForm

Lớp genericLớp generic• Tham số kiểu có thể được sử dụng bên trong

lớp để định nghĩa các thành viên.public class Couple<T, E> { public T elementA; public E elementB; public Couple(T inA, E inB) { elementA = inA; elementB = inB; } }

Couple<string, int> couple = new Couple<string, int>(”Age”, 29);Khi đó: couple.elementA sẽ có kiểu string nhận giá trị “Age” couple.elementB sẽ có kiểu int nhận giá trị 29.

Page 21: Công nghệ NET Tổng quan .NET Frameword + WebForm

Nạp chồng phương thức genericNạp chồng phương thức generic

• Các phương thức generic có thể được nạp chồng dựa vào chữ ký hoặc số các tham số kiểu trong một phương thức.

• Bạn có thể nạp chồng các phương thức generic và không generic cùng tên nếu các phương thức khác nhau trong các tham số kiểu.

void MyMethod<U>(){…}void MyMethod<U,V>(){…}void MyMethod(){…}

Page 22: Công nghệ NET Tổng quan .NET Frameword + WebForm

Sử dụng từ khóa mặc địnhSử dụng từ khóa mặc định• Nếu không biết trước việc kiểu mà bạn đang tạo sẽ là một kiểu tham chiếu hay tham trị. Khi sử dụng giá trị mặc định sẽ gặp một số vấn đề:

• Giải quyết: sử dụng từ khóa default

void MyMethod<T>(T var) { var =null;}

Báo lỗi

void MyMethod<T>(T var) { var = default(T);}

Page 23: Công nghệ NET Tổng quan .NET Frameword + WebForm

Các phép ràng buộcCác phép ràng buộc

• Khi bạn thể hiện cụ thể class bằng việc sử dụng một đối số kiểu không tuân thủ các quy tắc trình biên dịch sẽ thông báo lỗi.

• Các quy tắc đó được gọi là phép ràng buộc.• Để khai báo ràng buộc, sử dụng từ khóa

Where

Page 24: Công nghệ NET Tổng quan .NET Frameword + WebForm

Các phép ràng buộcCác phép ràng buộcRàng buộc Chú giải

where T: struct T phải là một kiểu giá trị.

where T : class T phải là kiểu tham chiếu (class, interface, delegate, hoặc array)

where T : new() T phải có hàm khởi tạo không tham số public. Khi sử dụng cùng với các ràng buộc khác, new() phải là ràng buộc cuối cùng.

where T : <base class name> T phải hoặc kế thừa từ một lớp cơ sở.

where T : <interface name> T phải thực thi giao diện.

where T : U T phải giống như U hoặc được dẫn xuất từ U.

Page 25: Công nghệ NET Tổng quan .NET Frameword + WebForm

Ủy nhiệm hàm genericỦy nhiệm hàm generic• Có thể tạo ủy nhiệm hàm generic sử dụng

các tham số kiểu riêng của nó. delegate void MyDelegate<T1,T2>(T1 id, T2 name);

• Phương thức được đóng gói có thể là một phương thức không generic

public void MyMethod(int id, string name){…}

• Khi thể hiện cụ thể ủy nhiệm hàm, phải cung cấp các đối số kiểu

MyDelegate<int, string> d = new MyDelegate<int,string> (mc.MyMethod);

Page 26: Công nghệ NET Tổng quan .NET Frameword + WebForm

Ủy nhiệm hàm genericỦy nhiệm hàm generic

• Bạn cũng có thể tạo ủy nhiệm hàm sử dụng các tham số kiểu của class đóng gói.

class MyClass<T1,T2>

{ delegate void MyDelegate<T1,T2>(T1 id, T2 name);

}

//khi thể hiện cụ thể

MyClass<int,string> mc = new MyClass<int, string>();

MyClass<int,string>.MyDelegate d = new MyClass<int,string>.MyDelegate(mc.MyMethod);

Page 27: Công nghệ NET Tổng quan .NET Frameword + WebForm

Giao diện genericGiao diện generic

• Khai báo giao diện generic tương tự như khai báo class generic.

• Khi thực thi giao diện generic bạn phải tuân thủ các quy tắc giống như kế thừa từ class generic

interface MyInterface<T>

interface YourInterface<U>

interface MyInterface<T1,T2>

//Kế thừa giao diện

class MyClass: MyInterfac<double>{…}

Page 28: Công nghệ NET Tổng quan .NET Frameword + WebForm

Ưu điểm của genericƯu điểm của generic

• Các phần tử không cần phải boxing khi được thêm vào hoặc casting khi được truy tìm.

• Loại bỏ nhiều hao phí lập trình.• Mã generic dễ đọc và dễ bảo trì hơn.• Cung cấp một thực thi mã mẫu có thể tái

sử dụng

Page 29: Công nghệ NET Tổng quan .NET Frameword + WebForm

Hạn chế của genericHạn chế của generic

• Không thể sử dụng phương thức Main generic

• Các thuộc tính, indexer và attribute không thể generic

• Không thể sử dụng các kiểu generic trong mã không an toàn

• Các phương thức toán tử không thể là những phương thức generic.

Page 30: Công nghệ NET Tổng quan .NET Frameword + WebForm

THE END