Đặc điểm của ứng dụng .NET6 Chạy trên nền .NET framework Mã nguồn được biên dịch qua MSIL MSIL được thông dịch qua mã máy lúc thực thi nhờ vào CLR Độc lập nền tảng Install .NET
Trang 1TỔNG QUAN NET NGÔN NGỮ C#
Trang 3C# VB.NET J# C++ …
XML Web Service
Web Forms
Windows Forms
ASP.NET
Trang 4.NET Framework - Architechture
Common Language Infrastructure (CLI)
language-neutral platform for application development and execution
4
Trang 5.NET Framework
5
.NET 1.1 (Apr-2003)
VS NET 2003 Default: Server 2003
.NET 3.5 (Nov-2007) VS.NET 2008
Default: Windows 7
.NET 3.0 (Nov-2006) Default: Windows Vista, Server 2008
.NET 2.0 (Nov-2005) VS.NET 2005
NET 1.0
Trang 6Đặc điểm của ứng dụng NET
6
Chạy trên nền (.NET framework)
Mã nguồn được biên dịch qua MSIL
MSIL được thông dịch qua mã máy lúc thực thi nhờ vào CLR
Độc lập nền tảng
Install NET Framework redistribute packadge
Trang 7Đặc điểm của ứng dụng NET
CT C#.NET
CT VB.NET
CT C++.NET
CT J#.NET
VB NET Compiler
1011010 1011010 1011010
Programmer
Trang 9.NET Framework - CTS
9
Common Type System (CTS):
Định nghĩa kiểu dữ liệu tiền định và có sẵn trong IL:
Tất cả ngôn ngữ NET sẽ được sinh ra mã cuối trên cơ sở kiểu
dữ liệu này
… Integer
…
… Integer
…
… Int32
…
… Int32
…
… int
…
… int
…
Trang 11NET Framework - CLS
11
Common Language Specification:
Có thể viết mã non-CLS nhưng sẽ ko đảm bảo thực thi chéo
IL phân biệt loại ký tự, VB.NET ko phân biệt, CLS báo rằng
ko cho phép 2 định danh chỉ khác nhau về kiểu ký tự, do đó VB.NET có thể hoạt động trong CLS
Trang 12MS Intermediate Language
12
IL
máy nhanh hơn
CLR chuyển IL thành mã máy lúc runtime
JIT compiling
Trang 13Common Language Runtime -
Sourc
e Code
Trang 14 Managed Modules
Chứa resource, metadata…
Portable Executable (PE)
Trang 15Managed Code
15
Phần mềm được viết để sử dụng trong NET Framework
PM khác thì gọi là Unmanaged code
“Managed”: do chạy dưới sự giám sát của cơ chế thực thi (CLR)
Windows (OS khác)
Legacy Software (unmanaged code)
Legacy Software (unmanaged code)
Common Language Runtime
Managed Executable
Trang 16Garbage collection
16
class myClass{
void Method(){
variable v1;
variable v2;
do{
…
} }
class myClass{
void Method(){
variable v1;
variable v2;
do{
…
} }
B
E C
A
D
Managed Heap
Trang 1818
tên namespace
Namespace CS1
Class A Class B Class C
Class A Class B
Class A Class A
Trang 1919
Hầu hết các lớp cơ sở chung của NET đều thuộc namespace System
NET đề nghị tất cả kiểu do user định nghĩa phải nằm trong 1 namespace
Customer Personel
CompanyName
Tên lớp Tên
namespace
Trang 21Các lớp NET Framework
21
Thư viện lớp cơ sở NET là managed code
Khá đa dạng & đầy đủ:
Bao bọc tất cả các hàm API
Trang 22Các lớp NET Framework
22
Các lớp NET bao gồm các vấn đề
Trang 23Framework (Base) Class Library
Thư viện nền tảng cho NET Framework
Các namespace cơ bản của FCL/BCL
23
Namespace Description
System Chứa lớp toán học, chuyển đổi dữ liệu System.IO Các lớp cho thao tác Input và Output System.Net Các lớp liên quan đến network protocol System.Collectio
ns
Chức các lớp liên quan đến xử lý tập hợp
System.Data Các lớp của ADO.NET System.Drawing Các lớp thực thi chức năng GUI System.Threadi
ng
Các lớp lập trình MultiThread System.Web Các lớp liên quan đến HTTP protocol
Trang 24Run NET App from Client
Required MS NET Framework compatible
Trang 25 Cho phép thực thi chéo giữa các ngôn ngữ
Khái niệm Managed Code
Cơ chế thu gom vùng nhớ tự động
Các lớp thư viện NET phong phú & mạnh mẽ
Namespace giúp tổ chức tốt mã nguồn
Trang 2626
Trang 28Ngôn ngữ C#
28
Mọi thứ trong C# đều Object oriented
Chỉ cho phép đơn kế thừa
Lớp Object là cha của tất cả các lớp
Trang 29 Bổ sung khái niệm "property property" cho các lớp
Khái niệm delegate & event
Trang 30C# - mạnh mẽ & bền vững
30
Garbage Collector
Kiểm soát và xử lý ngoại lệ exception
Type – safe
Versioning
Trang 31Vai trò C# trong NET Framework
31
NET runtime sẽ phổ biến và được cài trong máy client
phần NET
C# tạo cơ hội cho tổ chức xây dựng các App Client/Server n-tier
Kết nối ADO.NET cho phép truy cập nhanh chóng &
dễ dàng với SQL Server, Oracle…
Trang 32Vai trò C# trong NET Framework
32
Cách tổ chức NET cho phép hạn chế những vấn đề phiên bản
ASP.NET viết bằng C#
Trang 33Quá trình dịch CT C#
33
Mã nguồn C# (tập tin *.cs) được biên dịch qua MSIL
MSIL: tập tin exe hoặc dll
MSIL được CLR thông dịch qua mã máy
Dùng kỹ thuật JIT (just-in-time) để tăng tốc độ
Trang 34CLR trên Window s
CLR trên Window s
Thực thi trên Windows
Thực thi trên Windows
CLR trên Linux
CLR trên Linux
Thực thi trên Linux
Thực thi trên Linux
Thực thi trên MacOS
CLR trên MacOS MSIL
Trang 35Các loại ứng dụng C#
35
Chương trình Console (TUI)
Chương trình Windows Form
Chương trình Web Form
(underlying code)
Trang 36Ứng dụng Console
36
Trang 37UD WinForm và Web Form
37
Trang 38Tạo UD Console
38
Trang 41Câu lệnh
41
Các câu lệnh được viết trong thân của phương thức (ở đây là phương thức Main)
Thực hiện một công việc nào đó
Kết thúc bởi dấu chấm phẩy (;)
namespace HelloWorld {
class Program {
static void Main(string[] args) {
Console.Write("Hello World!");
Console.ReadLine();
} } }
Các câu lệnh
Phương thức Main
Trang 42class Program {
static void Main(string[] args)
Trang 43Chú thích
43
Chú thích (comment) được dùng để giải thích về chương trình và các câu lệnh
Giúp cho chương trình dễ hiểu hơn
Được bỏ qua khi biên dịch
Không ảnh hưởng tới kết quả thực thi của chương trình
Có thể phát sinh ra documentation của chương trình qua chú thích XML
Trang 44Hai cách tạo chú thích cơ bản
44
Gõ phần chú thích sau cặp ký tự //
Gõ phần chú thích giữa cặp ký tự /* và */
/* Chương trình C# đầu tiên
In ra câu chào "Hello World" */
using System;
namespace HelloWorld {
class Program {
static void Main(string[] args) {
Trang 45XML Comment
Cho phép phát sinh ra sưu liệu dạng XML
Thích hợp cho việc viết sưu liệu của dự án lớn
Chú thích XML bắt đầu với triple slash (“///”) và các tag của XML
Chú thích XML dùng cho
Class, delegate, enum and struct
45
Trang 47XML Comment
Comment for class
Comment for method
47
public static int CelsiusToFahrenheit( int degreesCelsius)
Trang 49Tóm tắt
49
C# là một ngôn ngữ lập trình của NET
Có ba loại chương trình C#
Tạo ra một chương trình C# đơn giản
Trang 5050