01 gioi thieu microsoft.net

31
Chương 1: Giới thiệu về Microsoft .Net Lập Trình Web Lập Trình Web 1 Lập trình Web

Upload: nguyen-ngoc-lieu

Post on 29-Nov-2015

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 01 Gioi Thieu Microsoft.net

Chương 1:

Giới thiệu về Microsoft .Net

Lập Trình WebLập Trình Web

1 Lập trình Web

Page 2: 01 Gioi Thieu Microsoft.net

Nội dungNội dung

Giới thiệuMicrosoft.NET

Giới thiệu ngôn ngữ C#

Lập trình Web 2

Page 3: 01 Gioi Thieu Microsoft.net

Phần 1:Phần 1:Giới thiệu Microsoft.NET

Giới thiệu Kiến trúc của .NET FrameworkCommon Language Runtime.NET Framework Class LibraryBiên dịch và Ngôn ngữ trung gian (MSIL)

Lập trình Web 3

Page 4: 01 Gioi Thieu Microsoft.net

Giới thiệuGiới thiệuMicrosoft .NET được công bố lần đầu tiên vào 7/2000 tại

hội nghị Professional Developers’ Conference ở Orlado.Microsoft .NET gồm hai phần chính là Framework và

Integrated Development Environment (IDE).Framework là cốt lõi và là tinh hoa của .NET, là nền tảng

mà các ứng dụng .NET chạy trên đó.IDE cung cấp một môi trường giúp triển khai và nhanh

chóng các ứng dụng trên .NET.Trong .NET, các ngôn ngữ C#, Visual C++, VB.NET đều

dùng cùng một IDE.

Lập trình Web 4

Page 5: 01 Gioi Thieu Microsoft.net

Kiến trúc của .NET PlatformKiến trúc của .NET Platform

Operating system on servers, desktops, and devices

Operating system on servers, desktops, and devices

.NET Enterprise Servers

.NET Enterprise Servers

.NET Framework

.NET Framework

.NET Building Block Service.NET Building Block Service

Visual Studio.NETVisual Studio.NET• Application Center• Biz talk Server• Exchance server• ISA Server• SQL Server• Mobile information server

•Calendar service•Passport service•Contacts service• ……

Kiến trúc của .NET Platform

5Lập trình Web

Page 6: 01 Gioi Thieu Microsoft.net

Mục đích thiết kế của .NET Mục đích thiết kế của .NET Framework (1)Framework (1)Đơn giản hoá việc phát triển:

FCL cũng cấp lượng lớn các lớp để người lập trình sử dụng chứ không cần phải viết lại.

Tích hợp đa ngôn ngữ:Tất cả các ngôn ngữ .NET đều được biên dịch thành IL nên

các lớp viết bằng ngôn ngữ này có thể được dùng trong ngôn ngữ khác.

Dễ dàng triển khaiCLR cho phép triển khai phần mềm một cách nhanh chóng,

đơn giản và giải quyết được tranh chấp giữa các phiên bản phần mềm.

6 Lập trình Web

Page 7: 01 Gioi Thieu Microsoft.net

Mục đích thiết kế của .NET Mục đích thiết kế của .NET Framework (2)Framework (2)Cung cấp một môi trường thực thi mã nguồn đảm bảo

việc thực thi mã nguồn một cách an toàn.

Cho phép những người phát triển kinh nghiệm có thể làm việc với kiểu ứng dụng khác nhau từ các ứng dụng windows tới các ứng dụng web.

Cung cấp một môi trường lập trình hướng đối tượng, mà mã nguồn đối tượng được lưu trữ cục bộ nhưng có thể được thực thi cục bộ hay từ xa hay phân phối qua internet.

7Lập trình Web

Page 8: 01 Gioi Thieu Microsoft.net

Kiến trúc của .Net FrameworkKiến trúc của .Net Framework

Lập trình Web 8

Windows LINUX

Common Language Runtime

Framework Class Library

Common Language Specification

Microsoft Visual Basic®

.NET C++ C# Microsoft JScript® … M

icroso

ft Visu

al S

tud

io

® .NE

T

Page 9: 01 Gioi Thieu Microsoft.net

Các thành phần chính của .NETCác thành phần chính của .NET FrameworkFramework

.NET Framework gồm 2 thành phần chính Common Language Runtime (CLR)

Framework Class Library (FCL) Thư viện các lớp dựng sẵn để viết các ứng dụng:

ASP.NET, Web Services, ADO.NET, Windows Forms, IO, XML, etc.

9Lập trình Web

Page 10: 01 Gioi Thieu Microsoft.net

Common Language RuntimeCommon Language RuntimeLà thành phần quan trọng nhất của .NET Framework

Quản lý và thực thi các managed code và là nền tảng của kiến trúc .NET.

Quản lý bộ nhớ, quản lý tiến trình (thread), kiểm tra security....

CLR được thiết kế để làm tăng hiệu xuất thực hiện.

Gần giống như Java Virtual Machine (JVM)

Lập trình Web 10

Page 11: 01 Gioi Thieu Microsoft.net

Bên trong CLRBên trong CLR

Lập trình Web 11

Common Language RuntimeCommon Language Runtime

Common Type System

Common Type System

LoaderLoader HostingHosting

Garbage CollectionGarbage

CollectionSecurity

ManagementSecurity

Management

ExceptionsExceptions

Interoperability (Native, COM)

Interoperability (Native, COM)

DebuggingDebugging

Just-in-Time Native Compilation

Just-in-Time Native Compilation

Page 12: 01 Gioi Thieu Microsoft.net

.NET Framework Class Library.NET Framework Class LibraryLà tập hợp các kiểu dữ liệu được xây dựng sẵn, có thể sử

dụng lại và được kết hợp chặt chẽ với CLR.

FCL chứa những kiểu dữ liệu hỗ trợ cho những kịch bản phát triển các ứng dụng chuyên biệt như:Ứng dụng Console.Ứng dụng GUI.Ứng dụng ASP.NETDịch vụ Web.Dịch vụ Windows.

Lập trình Web 12

Page 13: 01 Gioi Thieu Microsoft.net

Bên trong .NET FCLBên trong .NET FCL

Base Class LibraryBase Class Library

ADO.NET and XMLADO.NET and XML

Web Forms Web ServicesWeb Forms Web ServicesMobile Internet ToolkitMobile Internet Toolkit

WindowsWindowsFormsForms

ASP.NETASP.NET

Các kiểu cơ sở chung nhất như: I/O, Collection,

String,...

Các kiểu hỗ trợ làm việc với cơ sở dữ liệu và

XML

Các kiểu sử dụng trong các kịch bản phát triển ứng dụng như: Winform,

Webform, WebServices

13Lập trình Web

Page 14: 01 Gioi Thieu Microsoft.net

Biên dịch và MSILBiên dịch và MSILNgôn ngữ trung gian (MSIL)MSIL, Just Intime Compiler, CLRBiên dịch và thực thi trong .NET

Lập trình Web14

Page 15: 01 Gioi Thieu Microsoft.net

Ngôn ngữ trung gian (MSIL)Ngôn ngữ trung gian (MSIL)Các ngôn ngữ .NET như C#, VB.NET,... không được biên

dịch thành file thực thi mà được biên dịch thành file mã trung gian MSIL (Microsoft Intermediate Language).

Khi thực thi, MSIL mới được trình biên dịch Just In Time (JIT) biên dịch thành mã thực thi.

Vì tất cả các ngôn ngữ trong .NET đều được biên dịch thành MSIL nên các ngôn ngữ có thể giao tiếp và sử dụng lại mã nguồn của nhau.

Lập trình Web 15

Page 16: 01 Gioi Thieu Microsoft.net

Microsoft Intermediate Language (MSIL)Microsoft Intermediate Language (MSIL)

Common Language SpecificationCommon Language Specification

VBVB C++C++ C#C# JScriptJScript J#J#

Common Language Runtime (CLR)Common Language Runtime (CLR)

Just In-Time Compiler (JIT)Just In-Time Compiler (JIT)

Operating SystemOperating System

MSIL, JIT và CLRMSIL, JIT và CLR

16Lập trình Web

Page 17: 01 Gioi Thieu Microsoft.net

C#Code

C#Compiler

Visual BasicCode

Visual BasicCompiler

COBOLCode

COBOLCompiler

ILJIT

Compiler

NativeCode

Biên dịch và Thực thi các chương Biên dịch và Thực thi các chương trình .NETtrình .NET

17Lập trình Web

Page 18: 01 Gioi Thieu Microsoft.net

.NET source

code

Lang

uage

Com

pile

r MSIL+

Metadata

Machinecode

Code executedC

LR

1st Compilation

2nd Compilation

Biên dịch và Thực thi các chương Biên dịch và Thực thi các chương trình .NETtrình .NET

18Lập trình Web

Page 19: 01 Gioi Thieu Microsoft.net

.NET source

codeLa

ngua

geC

ompi

ler MSIL

+Metadata

Machinecode

Code executedC

LRMSILGiúp tích hợp đa ngôn ngữ

IL không phải bytecode nhưng gần giống như nó, do đó việc chuyển từ mã IL sang mã máy rất nhanh

IL được chuyển thành mã thực thi đối với từng CPU cụ thể bởi CLR

Không phụ thuộc vào cấu trúc CPU

Microsoft Intermediate LanguageMicrosoft Intermediate Language

19Lập trình Web

Page 20: 01 Gioi Thieu Microsoft.net

.NET source

codeLa

ngua

geC

ompi

ler MSIL

+Metadat

a

Machinecode

Code executedC

LRCLR

Quản lý bộ nhớ, quản lý code

Giúp dễ dàng thiết kế các thành phần và các ứng dụng bằng nhiều ngôn ngữ khác nhau.

Cho phép các ngôn ngữ khác nhau có thể giao tiếp và tích hợp với nhau.

Biên dịch một lần và có thể chạy trên mọi CPU và OS hỗ trợ runtime.

Common Language RuntimeCommon Language Runtime

20Lập trình Web

Page 21: 01 Gioi Thieu Microsoft.net

Phần 2: Giới thiệu ngôn ngữ Phần 2: Giới thiệu ngôn ngữ C#C#Giới thiệu ngôn ngữ C#Một chương trình C# đơn giản.Cấu trúc tổng quát của một chương trình C#

Lập trình Web21

Page 22: 01 Gioi Thieu Microsoft.net

Ngôn ngữ C#Ngôn ngữ C#Được phát triển bởi Microsoft do nhóm Anders

Hejlsberg và Scott Wiltamuth sáng tác.Ngôn ngữ lập trình trực quan, hướng sự kiện, hướng

đối tượng.Dựa theo ý tưởng các ngôn ngữ khác : C,C++, Java

và Visual Basic.Hổ trợ đầy đủ bởi .Net Platform.Compiler hiệu quả nhất trong .Net family.Khả năng thay thế cho C++.Hạn chế sử dụng con trỏ.

Lập trình Web 22

Page 23: 01 Gioi Thieu Microsoft.net

Một chương trình C# đơn giảnMột chương trình C# đơn giản

Lập trình Web 23

/*This is the Hello World Program in C#*/

using System; // khai báo sử dụng namespaceclass SampleCSharp{ static void Main(string[] args) //duy nhất

{ Console.WriteLine("Hello world");}

}

Commends:// Commend trên 1 dòng/* */ commend trên một khối

Hàm Main: Một chương trình bắt buộc phải có 1 hàm Main tĩnh duy nhất, đây là hàm đầu tiên được gọi khi thực thi chương trình.Hàm Main bắt buộc phải đặt trong một Class hoặc một Struct.Hàm Main có thể trả về kiểu Void hoặc kiểu intHàm Main có thể không có một tham số hoặc có tham số kiểu String[]

Page 24: 01 Gioi Thieu Microsoft.net

Cấu trúc tổng quát của một chương Cấu trúc tổng quát của một chương trình C#trình C#Một chương trình C# có thể gồm 1 hoặc nhiều file.

Mỗi file có thể không có hoặc có nhiều namespace.

Mỗi namespace có thể chứa các kiểu như class, struct, interface, enum, delegate và có thể chứa namespace khác.

Lập trình Web 24

Page 25: 01 Gioi Thieu Microsoft.net

Cấu trúc tổng quát của một chương Cấu trúc tổng quát của một chương trình C#trình C#

Lập trình Web 25

// A skeleton of a C# program using System;namespace YourNamespace{ class YourClass{} struct YourStruct{} interface IYourInterface{} delegate int YourDelegate(); enum YourEnum{} namespace YourNestedNamespace{ struct YourStruct{} } class YourMainClass{ static void Main(string[] args){ //Your program starts here... } }}

Khung của một chương trình C# chứa tất cả các thành phần.

Page 26: 01 Gioi Thieu Microsoft.net

Hàm Main() và tham số dòng lệnhHàm Main() và tham số dòng lệnh

Lập trình Web 26

class Program{ static void Main(string[] args) { Console.WriteLine("So tham so: {0}", args.Length); for (int i = 0; i < args.Length; i++) { Console.WriteLine("args[{0}] = {1}", i, args[i]); } } }

Page 27: 01 Gioi Thieu Microsoft.net

Biên dịch và thực thi chương trình Biên dịch và thực thi chương trình C# trên VS.2005C# trên VS.2005

Lập trình Web 27

Recent Project: Chứa ds các project hiện tại

Page 28: 01 Gioi Thieu Microsoft.net

Biên dịch và thực thi chương trình Biên dịch và thực thi chương trình C# trên VS.2005 – (tiếp)C# trên VS.2005 – (tiếp)Click Menu File -> New Project mở cửa sổ tạo mới

project.Chọn Visual C# trong Project Type, rồi chọn Console

Application trong danh sách các template phía bên phải.Điền tên của project, điền tên Solution và chọn nơi lưu

project rồi nhấn OK.

Lập trình Web 28

Page 29: 01 Gioi Thieu Microsoft.net

Lập trình Web 29

Page 30: 01 Gioi Thieu Microsoft.net

Lập trình Web 30

Page 31: 01 Gioi Thieu Microsoft.net

Biên dịch và thực thi chương trình Biên dịch và thực thi chương trình C# trên VS.2005 – (tiếp)C# trên VS.2005 – (tiếp)Chọn menu Build -> Build Solution để biên dịch

Chọn menu Debug -> Start Debug để chạy debug

Chọn menu Debug -> Start Without Debugging để chạy không debug.

Lập trình Web 31