Mục tiêu học ngành công nghệ thông tin
Trang 1 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.
1LT Windows 1 _ C#
Trang 3Bài 1 Microsoft NET
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#.
2 Biên dịch và MSIL Thời gian: 0,5h
3 Ngôn ngữ C# Thời gian: 0,5h
3LT Windows 1 _ C#
Trang 4.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
Trang 5Next Generation Internet
Web site
Web site
Web site
Backend App
Mega Service
Backend App
Mega Service
coupled, services connected by XML-based messages and contracts,
Loosely-written in many languages
Service Device
msgs Service Service Service
XML-5
Trang 6Microsoft 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
Trang 7.NET Infrastructure and Tools
NET Enterprise Servers
Trang 8.NET Framework
8
Trang 9.NET Framework
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
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
Trang 10The NET Framework
Base Class Library Common Language Specification
Common Language Runtime
ADO.NET: Data and XML
Windows Forms
10
Trang 11Common 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
Trang 12 Một “runtime” chung cho tất cả các ngôn ngữ NET
Oberon, Oz, Pascal, APL, CAML, Scheme, etc
Common Language Runtime (CLR)
12
Trang 13Common 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
Trang 14Intermediate Language (IL)
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 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
Trang 15Common 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
Trang 16Common Language Runtime (CLR)
interoperability
Compact framework for small devices
Designed for multi-processor servers
16
Trang 17CLR: Execution Model
VB
Source code
Compiler
C++
C#
Compiler Compiler
Operating System Services
Common Language Runtime
JIT Compiler
Native Code
Managed code
Unmanaged Component
17
Trang 18Managed Code
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
Trang 19 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
Trang 20Just-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
Trang 21.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
Trang 22.NET Framework Libraries
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
Trang 23 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
Trang 24Visual Studio.NET
24
Trang 25Visual Studio.NET
• Many language enhancements
• Inheritance, Overloading, Free Threading
• Integration with NET Framework with managed extensions (classes)
• New development language
• Based on C/C++ with Garbage Collection/Memory Management
Visual J++ has been removed from the Visual Studio suite.
25
Trang 26Các đặc điểm của VS.NET
Event Viewer, Message Queues, Services
SQL Databases, Data Connection, Etc.
Trang 27Ngôn ngữ C#
27
Trang 28Giới thiệu C#
Được phát triển bởi đội ngũ kỹ sư của
Microsoft Dẫn đầu là : Anders Hejlsberg
Trang 29Giới thiệu C#
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ó đầ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…
Trang 30 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…
Trang 31Giới thiệu C#
C# có ít từ khoá :
Trang 32Thank You !
32
LT Windows 1 _ C#