32
Mục tiêu môn học Hiểu được các kiến thức về nền tảng Microsoft .NET. Có kiến thức và kỹ năng về lập trình hướng đối tượng trên C#. Có kiến thức và kỹ năng về giao diện trong C#. Có kiến thức và kỹ năng xử lý mảng, chuỗi. Có kiến thức và kỹ năng về cơ chế ủy quyền. Có kiến thức và kỹ năng sử dụng các lớp cơ sở của .NET. 1 LT Windows 1 _ C#

Mục tiêu môn học

Embed Size (px)

DESCRIPTION

Mục tiêu môn học. Hiểu được các kiến thức về nền tảng Microsoft .NET. Có kiến thức và kỹ năng về lập trình hướng đối tượng trên C#. Có kiến thức và kỹ năng về giao diện trong C#. Có kiến thức và kỹ năng xử lý mảng, chuỗi. Có kiến thức và kỹ năng về cơ chế ủy quyền. - PowerPoint PPT Presentation

Citation preview

Page 1: Mục tiêu môn học

LT Windows 1 _ C# 1

Mục tiêu môn học

Hiểu được các kiến thức về nền tảng Microsoft .NET.

Có kiến thức và kỹ năng về lập trình hướng đối tượng trên C#.

Có kiến thức và kỹ năng về giao diện trong C#.

Có kiến thức và kỹ năng xử lý mảng, chuỗi.Có kiến thức và kỹ năng về cơ chế ủy

quyền.Có kiến thức và kỹ năng sử dụng các lớp cơ

sở của .NET.

Page 2: Mục tiêu môn học

LT Windows 1 _ C# 2

Microsoft .NET(02 tiết)

Microsoft .NET(02 tiết)

GVHD: Nguyễn Thị Thu DựEmail: [email protected]

[email protected]

LẬP TRÌNH WINDOWS 1

BÀI 1

Page 3: Mục tiêu môn học

LT Windows 1 _ C# 3

Bài 1. Microsoft .NET

Mục tiêu của bài: Nhằm trang bị cho người học các kiến thức về: Nền tảng Microsoft .NET Trình biên dịch và MSIL. Lý do và lịch sử về sự ra đời của ngôn ngữ C#.

Nội dung của bài:  1. Microsoft .NET Thời gian: 1h2. Biên dịch và MSIL Thời gian: 0,5h 3. Ngôn ngữ C# Thời gian: 0,5h

Page 4: Mục tiêu môn học

.NET là gì?

.NET là đại diện cho một thế hệ phần mềm tiến bộ mới đó là Next Generation Internet. Mục đích của nó là lấy thông tin sẵn có bất kỳ lúc nào, bất kỳ ở đâu và trên bất kỳ thiết bị nào.

.NET là một sáng kiến để tích hợp tất cả các sản phẩm của Microsoft với “Next Generation” web.

4

Page 5: Mục tiêu môn học

Next Generation Internet

Web site

Web site

Web site

BackendApp

MegaService

BackendApp

MegaService

Loosely-coupled, services connected by XML-based messages and contracts, written in many languages

ServiceDevice

XML-msgs

Service

Service Service

5

Page 6: Mục tiêu môn học

Microsoft .NET là gì?

Các thành phần cốt lõi trong .NET là: .NET Infrastructure and Tools .NET Services

• Một tập hợp kết hợp từ các dịch vụ khối kiến trúc cho thế hệ Internet mới bao gồm: Passport.NET (dùng để xác thực người dùng), và các dịch vụ cho việc lưu trữ tập tin, quản lý độ ưu tiên người dùng, quản lý lập lịch, …

.NET User Experience• Rộng rãi hơn, có khả năng thích nghi hơn.• Thông tin được phân phát theo các hướng khác nhau trên các thiết bị

khác nhau.

.NET Device Software• Có khả năng tạo ra các thiết bị Internet thông minh mới có tác dụng làm

đòn bẩy cho các dịch vụ Web.6

Page 7: Mục tiêu môn học

.NET Infrastructure and Tools

.NET Enterprise Servers SQL 2000 Exchange 2000 ISA 2000 Host Integration Server 2000 Application Center 2000 BizTalk Server 2000 Commerce Server 2000

Visual Studio.NET.NET FrameworkWindows.NET

“Whistler” (Windows XP)7

Page 8: Mục tiêu môn học

.NET Framework.NET Framework

8

Page 9: Mục tiêu môn học

.NET Framework

.NET Framework bao gồm 3 thành phần chính sau: Common Language Runtime – CLR: Quản lý việc thi hành

chương trình - khởi động chương trình, cấp phép hoạt động, cấp phát nhật ký lưu trữ dữ liệu làm việc, hỗ trợ việc thu hồi tài nguyên (resource)....

Framework Classes/Libraries: cho phép thực hiện vô số tác vụ trên Windows, chứa tập hợp các kiểu của CLR.

ASP.NET Nói tóm lại .NET giữ hai vai trò: quản lý việc thi

hành chương trình và cung cấp những dịch vụ mà chương trình cần đến. Là một môi trường an toàn cho việc quản lý, thực thi và phát triển ứng dụng.

9

Page 10: Mục tiêu môn học

The .NET Framework

Base Class Library

Common Language Specification

Common Language Runtime

ADO.NET: Data and XML

VB C++ C#V

isual S

tud

io.N

ETASP.NET: Web Services

and Web Forms

JScript …

WindowsForms

WindowsForms

10

Page 11: Mục tiêu môn học

Common Language Runtime (CLR)

Là bộ phận quản lý việc thi hành đoạn mã: nạp chương trình, cho chạy đoạn mã trên các luồng (thread) nhất định, cũng như quản lý các luồng này và cung cấp tất cả các dịch vụ hỗ trợ.

CLR bao gồm một "cỗ máy ảo" (virtual machine) tương tự như Java virtual machine (JVM). Ở cấp cao, CLR cho biên dịch các đối tượng, tiến hành những kiểm tra an toàn đối với các đối tượng này, cấp phát tài nguyên và thực thi chúng; thu hồi tài nguyên mà chúng chiếm dụng trong thời gian "tại chức". Nói tóm lại CLR được xem như là linh hồn của kiến trúc .NET. 11

Page 12: Mục tiêu môn học

Một “runtime” chung cho tất cả các ngôn ngữ .NET Common type system Common metadata Intermediate Language (IL) - Ngôn ngữ trung gian. Common Language Specification Thực thi và bảo mật code.

Hơn 15 ngôn ngữ đã được hỗ trợ như: C#, VB, Jscript, Visual C++ from Microsoft Perl, Python, Smalltalk, Cobol, Haskell, Mercury, Eiffel,

Oberon, Oz, Pascal, APL, CAML, Scheme, etc.

Common Language Runtime (CLR)

12

Page 13: Mục tiêu môn học

Common Type System (CTS)

Common Type System - Đặc tả kiểu dữ liệu chung: Để có thể thực hiện việc liên thông giữa ngôn ngữ

(language interoperability), nghĩa là các ngôn ngữ khác nhau có thể hiểu nhau, để từ đó có thể chuẩn hóa tất cả các ngôn ngữ.

CTS còn cung cấp những quy tắc định nghĩa những lớp tùy biến (custom class). Ví dụ, trên .NET mọi thứ đều là một đối tượng của một lớp đặc trưng nào đó và lớp này được dẫn xuất từ lớp gốc mang tên System.Object.

CTS hỗ trợ khái niệm chung về các lớp, giao diện (interface), ủy quyền (delegate), kiểu tham chiếu (reference type) và kiểu tham trị (value type).

13

Page 14: Mục tiêu môn học

Intermediate Language (IL)

Intermediate Language - Ngôn ngữ trung gian: Các chương trình .NET không được biên dịch thành tập

tin thực thi (executable, .EXE), mà lại được biên dịch thành tập tin IL. Khi biên dịch thì trình biên dịch sẽ cho ra IL, rồi CLR sẽ biên dịch thành tập tin thực thi. IL được thiết kế có khả năng biên dịch nhanh ra ngôn ngữ máy nguyên sinh (native machine code), trong khi vẫn hỗ trợ những chức năng của .NET.

Tập tin IL được tạo ra đối với C# cũng tương tự như các tập tin IL được tạo ra với các ngôn ngữ khác J# hoặc VB.NET bởi CLR. Điểm chủ yếu ở đây là CLR hỗ trợ C# cũng như VB.NET giống như nhau, không "phân biệt đối xử".

14

Page 15: Mục tiêu môn học

Common Language Specification (CLS)

CLS - Đặc tả ngôn ngữ chung: Đây là một tập hợp các quy tắc để bảo đảm

đoạn mã này có thể được truy xuất bất cứ ngôn ngữ nào, cho phép liên thông giữa các ngôn ngữ. Từ ngữ .NET-aware dùng để chỉ loại ngôn ngữ chung này.

Nhìn chung, các trình biên dịch nào tuân theo quy tắc CLS (.NET-aware) sẽ tạo ra các đối tượng có thể hoạt động liên thông với các trình biên dịch khác nhau.

15

Page 16: Mục tiêu môn học

Common Language Runtime (CLR)

Enables cross-language interoperability

Language/Hardware/OS Independent Compact framework for small devices

Industrial strength Garbage collector Designed for multi-processor servers

16

Page 17: Mục tiêu môn học

CLR: Execution Model

VBSource code

Compiler

C++C#

CompilerCompiler

AssemblyIL Code

AssemblyIL Code

AssemblyIL Code

Operating System Services

Common Language Runtime

JIT Compiler

Native Code

Managedcode

UnmanagedComponent

17

Page 18: Mục tiêu môn học

Managed Code

Managed Code (đoạn mã được quản lý): bất cứ đoạn mã nào được thiết kế để chạy trên môi trường .NET được gọi là đoạn mã được quản lý. Những đoạn mã khác, đơn giản chạy trên Windows, ngoài môi trường .NET, thì được gọi là unmanaged code (đoạn mã vô quản). CLR chỉ là một lớp phần mềm nằm giữa hệ điều hành Windows và các ứng dụng. Dĩ nhiên những ứng dụng unmanaged vẫn tiếp tục làm việc với Windows, cũng như trực tiếp với Windows APIs giống như trước kia. 18

Page 19: Mục tiêu môn học

Assembly

Một assembly là một đơn vị, theo đó đoạn managed code sẽ được trữ trong đó. Assembly có chứa một loại dữ liệu được gọi là metadata, cho biết thông tin chi tiết của assembly cũng như tất cả các kiểu dữ liệu, phương thức (method), ... được định nghĩa trong assembly.

Một assembly có thể là private (riêng tư, chỉ được truy xuất bởi ứng dụng mà thôi) hoặc shared (được chia sẻ sử dụng, được truy xuất bới bất cứ ứng dụng nào trên Windows).

19

Page 20: Mục tiêu môn học

Just-in-Time (JIT) compilation

Đây là trình biên dịch (thường được gọi là JITing) thực hiện giai đoạn cuối cùng, biên dịch từ IL qua mã máy nguyên sinh (native machine code). Kết quả của JITing là một mã máy có thể được thi hành bởi bộ xử lý (processor) của máy.

Trình biên dịch JIT chuẩn sẽ chạy theo yêu cầu. Khi một phương thức (method) được triệu gọi, JIT compiler sẽ phân tích IL và cho ra một đoạn mã máy có hiệu quả để thực thi.

JIT complier khá thông minh để có thể biết là đoạn mã nào đã được biên dịch, nên việc biên dịch chỉ xãy ra khi nào cần thiết. Do đó, khi các ứng dụng .NET chạy thì chúng chạy ngày càng nhanh khi có những đoạn mã đã biên dịch sẵn được dùng đi dùng lại.

20

Page 21: Mục tiêu môn học

.NET Framework Libraries

Tập hợp các thư viện lớp hướng đối tượng thích hợp để có thể xây dựng các ứng dụng web (Unified Classed).

Các thư viện được xây dựng bằng cách sử dụng các lớp đã được cải biên thông qua kiến trúc không gian tên hợp lý. Ví dụ: System.Data.SQL

Làm việc với tất cả các ngôn ngữ CLR.

21

Page 22: Mục tiêu môn học

.NET Framework Libraries

Unified Classes

Web Classes (ASP.NET)

XML Classes

System Classes

Drawing Classes

Windows FormsData (ADO.NET)

Controls, Caching, Security, Session, Configuration etc

Collections, Diagnostics, Globalization, IO, Security,Threading Serialization, Reflection, Messaging etc

ADO, SQL,Types etc

Drawing, Imaging, Text, etc

Design, Cmpnt Model etc

XSLT, Path, Serialization etc

22

Page 23: Mục tiêu môn học

ASP.NET

ASP.NET là một ngôn ngữ lập trình framework mới được thiết kế để tạo ra các ứng dụng web dễ dàng hơn khi: Build, Deploy, Run

Các tiến triển cơ bản của ASP Hỗ trợ nhiều ngôn ngữ lập trình hơn:

• Visual Basic.NET, Jscript.NET, C#, …

Mô hình lập trình theo trang dễ dàng hơn• Namespaces

Các đặc tính XML, việc triển khai Xcopy/FTP, XCopy/FTP deployment Đáng tin cậy hơn và dễ khôi phục hơn. …

23

Page 24: Mục tiêu môn học

Visual Studio.NETVisual Studio.NET

24

Page 25: Mục tiêu môn học

Visual Studio.NET

Integrated Development Environment Visual Basic.NET

• Many language enhancements• Inheritance, Overloading, Free Threading

Visual C++• Integration with .NET Framework with managed

extensions (classes)

C#• New development language• Based on C/C++ with Garbage Collection/Memory

Management

JUMP (Java User Migration Path) to .NET (1/25/01)

Visual J++ has been removed from the Visual Studio suite. 25

Page 26: Mục tiêu môn học

Các đặc điểm của VS.NET

Single IDE for all Languages Server Explorer

Event Viewer, Message Queues, Services SQL Databases, Data Connection, Etc.

Integrated IE Browser HTML/XML Editors Macros/Macro Explorer Solution Explorer Tabbed Documents Dynamic Help Common Forms Editor

VB.NET, C++, and C#

26

Page 27: Mục tiêu môn học

Ngôn ngữ C#Ngôn ngữ C#

27

Page 28: Mục tiêu môn học

Giới thiệu C#

Được phát triển bởi đội ngũ kỹ sư của Microsoft. Dẫn đầu là : Anders Hejlsberg và Scott Wiltamuth

C# là một ngôn ngữ : Đơn giản Hiện đại Hướng đối tượng Mạnh mẽ & Mềm dẻo Ít từ khoá

Page 29: Mục tiêu môn học

Giới thiệu C#

C# là một ngôn ngữ đơn giản : Loại bỏ những phức tạp có trong Java hay C++

như macro , template , đa kế thừa , virtual base class

Giống về diện mạo cú pháp C và C++ nhưng được cải tiến đơn giản hơn (Ví dụ : “:: , . , ” chỉ còn “.”

C# là một ngôn ngữ hiện đại : Có đầy đủ các tính năng : Xử lý ngoại lệ , thu

gom bộ nhớ tự động , kiểu dữ liệu an toàn, bảo mật mã nguồn…

Page 30: Mục tiêu môn học

Giới thiệu C#

C# là ngôn ngữ hướng đối tượng : Đóng gói (encapsulation) Kế thừa (inheritance) Đa hình (polymorphism)

C# là một ngôn ngữ mạnh mẽ và mềm dẻo : Tuỳ thuộc vào bản thân người dùng.

Không có giới hạn ở bản chất ngôn ngữ. Tạo các ứng dụng đồ hoạ, bàn tính, xử lý

văn bản, trình biên dịch cho các ngôn ngữ khác v.v…

Page 31: Mục tiêu môn học

Giới thiệu C#

C# có ít từ khoá :

Page 32: Mục tiêu môn học

LT Windows 1 _ C# 32