.NET framework – lịch sử hình thành và phát triển
Thứ Năm, 22 tháng 3, 2012
.NET Framework của Microsoft là một nền tảng lập trình tập hợp các
thư viện lập trình có thể được cài thêm hoặc đã có sẵn trong các hệ điều
hành Windows. Nó cung cấp những giải pháp thiết yếu cho những yêu cầu
thông thường của các chương trình điện toán như lập trình giao diện
người dùng, truy cập dữ liệu, kết nối cơ sở dữ liệu, ứng dụng web, các
giải thuật số học và giao tiếp mạng. Ngoài ra,
.NET Framework quản lý
việc thực thi các chương trình được viết dựa trên .NET Framework do đó
người dùng cần phải cài .NET Framework để có thể chạy các chương trình
được viết trên nền .NET.
.NET FRAMEWORK
Về chức năng, .NET Framework có 3 khối chức năng là: Trình diễn (Presentation); Dữ liệu (Data); Giao tiếp (Communication).
Về kỹ thuật, hiện tại Microsoft giới thiệu 4 kỹ thuật mới và nổi bật
nhất là: Windows CardSpace (InfoCard), Windows Presentation Foundation
(Avalon), Windows Communication Foundation (Indigo), Windows Workflow
Foundation (Workflow).
Article I. CẤU TRÚC .NET FRAMEWORK
.NET Framework bao gồm ba phần là bộ thực thi ngôn ngữ chung (Common
Language Runtime), các lớp lập trình hợp nhất hay còn gọi là các thư
viện lớp cơ sở (Base Class Libraries) và một phiên bản cấu thành của
Microsoft Active Server Pages gọi là Microsoft ASP.NET. Trên thực tế,
ASP.NET và Windows Forms là hai thành phần nằm trong Base Class
Libraries, nên có thể xem .NET Framework bao gồm 2 phần chính là Common
Language Runtime (CLR) và .NET Framework Class Library (FCL). Một trong
các thành phần này đều có vai trò cực kỳ quan trọng trong việc phát
triển các dịch vụ và các ứng dụng .NET.
1. COMMON LANGUAGE RUNTIME
Như các bạn đã biết, các ngôn ngữ lập trình khác nhau đều cung cấp
một runtime (bộ thực thi) và .NET Framework không phải là một ngoại lệ.
Tuy vậy bạn sẽ thấy bộ runtime này là khá đặc biệt so với phần lớn các
runtime chúng ta vẫn sử dụng.
Common Language Runtime (gọi tắt là bộ thực thi – CRL) được xây dựng
trên các dịch vụ hệ điều hành. CLR là nền tảng của .NET Framework, nó
đảm nhận các công việc sau:
- Là công cụ thực thi mã trung gian (tựa JVM)
- Biên dịch (Just-in-time compiler)
- Thực thi mã nguồn
- Quản lý bộ nhớ
- Thực thi luồng (Thread execution)
- Xử lý lỗi (Error-handling)
- Xác nhận mã nguồn an toàn và các hình thức khác của việc chính xác mã nguồn (managed code).
CLR đã được phát triển ở tầm cao hơn so với các runtime trước đây như
VB-runtime chẳng hạn, bởi nó đạt được những khả nǎng như tích hợp các
ngôn ngữ, bảo mật truy cập mã, quản lý thời gian sống của đối tượng và
hỗ trợ gỡ lỗi.
Mã được biên dịch và hướng tới CLR có tên “managed code”. “Managed
code” cung cấp siêu dữ liệu (metadata) cần thiết cho CLR để cung cấp các
dịch vụ hỗ trợ đa ngôn ngữ, bảo mật mã, quản lý thời gian sống của đối
tượng và quản lý bộ nhớ.
Nếu .NET Framework tồn tại (và đã được cài đặt) trên một nền tảng,
thì nền tảng đó có thể chạy bất kỳ chương trình .NET nào. Khả năng của
một chương trình có thể chạy (không có sửa đổi) trên nhiều nền tảng được
gọi là sự độc lập về nền tảng. Code được viết một lần có thể được sử
dụng trên mọi loại máy tính mà không sửa đổi, tiết kiệm cả thời gian và
tiền bạc.
.NET Framework cũng cung cấp mức độ tương tác cao giữa các ngôn ngữ.
Chương trình viết bằng các ngôn ngữ khác nhau đều được biên dịch thành
các phần MSIL khác nhau có thể được kết hợp để tạo ra một chương trình
thống nhất. MSIL cho phép .NET Framework trở thành ngôn ngữ không phụ
thuộc, bởi vì các chương trình .NET không gắn với một ngôn ngữ lập trình
cụ thể nào cả. Bất cứ ngôn ngữ nào có thể được biên dịch sang MSIL được
gọi là ngôn ngữ tương thích với .NET. Danh sách các ngôn ngữ lập trình
khả dụng với .NET được liệt kê trong bảng sau:
.NET programming languages
APL
Mondrian
C#
Oberon
COBOL
Oz
Component Pascal
Pascal
Curriculum
Perl
Eiffel
Python
Forth
RPG
Fortran
Scheme
Haskell
Smalltalk
Java
Standard ML
JScript
Visual Basic
Mercury
Visual C++
Common Language Infrastructure (CLI)
Mục đích của Common Language Infrastructure (CLI) là cung cấp một nền
tảng ngôn ngữ trung lập để phát triển và thực thi ứng dụng, bao gồm cả
chức năng để xử lý các lỗi, thu gom rác thải (garbage collection), bảo
mật và khả năng tương tác. Bằng cách thực hiện những khía cạnh cốt lõi
của .NET Framework trong phạm vi của mình, CLI sẽ không được gắn với một
ngôn ngữ duy nhất mà sẽ có mặt trên nhiều ngôn ngữ được hỗ trợ bởi .NET
framework.
Biên dịch trong .NET
Common Language Runtime (CLR) là một phần trung tâm của .NET Frameworkit thực hiện các chương trình .NET.
Chương trình được biên dịch vào các hướng dẫn-cụ thể
(machine-specific) của máy theo hai bước. Đầu tiên, chương trình được
dịch thành Microsoft Intermediate Language (MSIL), trong đó xác định các
hướng dẫn cho các CLR. Code được chuyển đổi thành MSIL từ các ngôn ngữ
khác và các nguồn có thể được kết hợp với nhau bằng CLR. Các MSIL cho
các thành phần của một ứng dụng được đặt vào file thực thi của ứng dụng
(được gọi là assembly). Khi ứng dụng thực thi, trình biên dịch (được gọi
là biên dịch just-in-time hoặc biên dịch JIT) CLR phiên dịch MSIL trong
file thực thi vào mã máy (đối với một nền tảng cụ thể), sau đó mã máy
được thực thi trên nền tảng đó. Ghi chú: MSIL là ngôn ngữ trung gian, là
một giải pháp để giúp cho các lập trình viên không cần quan tâm đến
việc lập trình bằng ngôn ngữ nào trong bộ .NET.
Ví dụ: thực tế, trong 1 nhóm lập trình, có người sử dụng VB.NET, có
người dùng C#, có người dùng J#,… nhưng họ vẫn có thể hợp tác làm ra sản
phẩm, dùng ngôn ngữ quen thuộc của họ để lập trình, không nhất thiết 1
group chỉ gồm những người lập trình duy nhất 1 ngôn ngữ xác định.
Việc biên dịch chương trình sang MSIL giúp chương trình đó có thể chạy trên nhiều máy, nhiều nền tảng khác nhau.
Tại sao phải biên dịch 2 lần:
Độc lập với phần cứng
.NET framewwork có thể cài đặt trên nhiều platform
Các chương trình
.NET được thực hiện mà không có thay đổi code nào (viết 1 lần, chạy mọi nơi)
Độc lập về ngôn ngữ
Các chương trình .NET không bị trói buộc vào một ngôn ngữ cụ thể nào cả
Các chương trình trong .NET có thể được viết bới các ngôn ngữ trong .NET
2. .NET FRAMEWORK CLASS LIBRARY (FCL) – Thư viện lớp.NET Framework
Có thể bạn đã nghe qua về MFC và JFC. Microsoft Foundation Class
(MFC) là bộ thư viện mà lập trình viên Visual C++ sử dụng trong khi Java
Foundation Class (JFC) là bộ thư viện dành cho các lập trình viên Java.
Bạn có thể xem .NET Framework Class Library (FCL) là bộ thư viện dành
cho các lập trình viên .NET.
Với hơn 80000 lớp đối tượng (với .NET 4.0) để gọi thực hiện đủ các
loại dịch vụ từ hệ điều hành, bạn có thể bắt đầu xây dựng ứng dụng bằng
Notepad.exe. Nhiều người lầm tưởng rằng các môi trường phát triển phần
mềm như Visual Studio 98 hay Visual Studio .NET là tất cả những gì cần
để viết chương trình. Thực ra, chúng là những phần mềm dùng làm vỏ bọc
bên ngoài. Với chúng, bạn sẽ viết được các đoạn lệnh đủ các màu xanh,
đỏ; lỗi cú pháp báo ngay khi đang gõ lệnh; thuộc tính của các đối tượng
được đặt ngay cửa sổ properties, giao diện được thiết kế theo phong cách
trực quan…
Hầu hết các lớp được gom vào một namespace (không gian tên) gọi là system.
3. SƠ LƯỢC VỀ NAMESPACE
.NET Framework được tạo bởi từ hàng trǎm lớp (class). Nhiều ứng dụng
mà bạn xây dựng trong .NET đang tận dụng các lớp này theo cách này hay
cách khác. Vì số lượng các lớp là quá lớn, .NET Framework tổ chức các
lớp này vào một cấu trúc lớp được gọi là một namespace. Một namespace có
thể là con của một namespace lớn hơn. Namespace lớn nhất trong .NET
Framework là System. System là một Namespace cơ sở trong .NET Framework.
Tất cả các namespace được cung cấp trong .NET framework bắt đầu với
namespace cơ sở này. Ví dụ, những lớp phục vụ việc truy cập và thao tác
dữ liệu được tìm thấy trong namespace System.Data. Những ví dụ khác bao
gồm System.IO, System.XML, System.Collections, System.Drawing và .v.v..
Lợi điểm của namespace là phân nhóm các lớp đối tượng, giúp người
dùng dễ nhận biết và sử dụng. Ngoài ra, namespace tránh việc các lớp đối
tượng có tên trùng với nhau không sử dụng được. .NET Framework cho phép
bạn tạo ra các lớp đối tượng và các namespace của riêng mình. Với hơn
80000 tên có sẵn, việc đặt trùng tên lớp của mình với một lớp đối tượng
đã có là điều khó tránh khỏi. Namespace cho phép việc này xảy ra bằng
cách sử dụng một tên đầy đủ để nói đến một lớp đối tượng. Ví dụ, nếu
muốn dùng lớp WebControls, bạn có thể dùng tên tắt của nó là WebControls
hay tên đầy đủ là System.Web.UI.WebControls.
Article II. CÁC PHIÊN BẢN CỦA .NET
+ .NET framework 1.0 – 2002
+ .NET framework 1.1 – 2003
+ .NET framework 2.0 – 2005
+ .NET framework 3.5 – 2008
+ .NET framework 4.0 – 2010
Ver 1.0 – phát hành năm 2002
Ngày 12/2/2002 đánh dấu bước quan trọng đầu tiên trong “cuộc đời” của
.NET Framework, khi phiên bản 1.0 cùng với Visual Studio.NET 2002 được
chính thức ra mắt. Chính .NET Framework 1.0 là điểm nhấn đáng chú ý nhất
và làm cho Visual Studio. NET 2002 khác biệt hẳn với Visual Studio 6.0
đã phát hành năm 1998. Lần đầu tiên, Microsoft giới thiệu về “lập trình
hợp nhất”, với việc lấy .NET Framework làm nền tảng.
Ver 1.1 – phát hành năm 2003
Một năm sau ngày .NET Framework 1.0 ra đời, ngày 24/4/2003, Microsoft đã
có ngay bản cập nhật 1.1 ra mắt cùng với Visual Studio.NET 2003. Không
có nhiều nâng cấp đáng chú ý trong lần ra mắt này, đáng kể nhất là sự ra
đời của .NET Compact Framework, phiên bản thu gọn của .NET Framework
cho các thiết bị di động. Điều đáng tiếc là mặc dù có nền tảng rất tốt,
cùng với sự hỗ trợ mạnh mẽ từ Microsoft, cho đến nay, .NET Compact
Framework vẫn chưa phát triển như “lẽ ra nó phải thế”. Hiện nay số thiết
bị di động chạy Windows Mobile/Windows Phone khá khiêm tốn so với các
hệ điều hành (HĐH) còn lại.
.NET Framework 1.1 cũng mở ra một “truyền thống” là kể từ đây, các
HĐH Windows đều được cài đặt sẵn phiên bản .NET Framework mới nhất.
Windows Server 2003 tiên phong với phiên bản 1.1, sau đó là Windows
Vista với .NET 3.0, và gần đây nhất là Windows 7/Server 2008 với .NET
3.5 SP1.
Ver 2.0 phát hành năm 2005
Microsoft mất đến hơn 2 năm để phát triển .NET Framework 2.0 và Visual
Studio 2005, và thời gian bỏ ra là thật sự đáng giá. Tháng 11/2005, hai
sản phẩm này ra mắt với hàng loạt tính năng mới, trong đó đáng kể nhất
là việc hỗ trợ hoàn toàn cho tính toán 64-bit, .NET Micro Framework, bổ
sung và nâng cấp nhiều control của ASP.NET và đặc biệt là hỗ trợ
Generics. .NET 2.0 hoàn toàn khác biệt so với các phiên bản trước.
Generic cho phép chúng ta định kiểu an toàn (type safety). Chúng cho
phép ta tạo ra một cấu trúc dữ liệu mà không cần phải xác định đó là
kiểu dữ liệu gì. Tuy nhiên khi cấu trúc dữ liệu này được sử dụng, trình
biên dịch phải đảm bảo rằng kiểu dữ liệu được sử dụng với nó là kiểu an
toàn. Generic cũng tương đương vơi Template trong C++ tuy nhiên việc sử
dụng Generic trong .NET dễ dàng hơn nhiều so với Template.
Phiên bản 1.0 và 1.1 của .NET Framework không hỗ trợ generics. Thay
vào đó, lập trình viên sử dụng lớp Object với các tham số và thành viên
sẽ phải chuyển đổi tới các lớp khác dựa trên lớp Object. Generics mang
đến hai tính năng cải tiến đáng kể đối với việc sử dụng lớp Object: Giảm
bớt lỗi vận hành (Reduced run-time errors), Hiệu suất được cải thiện
(Improved performance).
Ver 3.0 & Ver 3.5 (phát hành năm 2008)
Nếu như 3 phiên bản trước đó, .NET Framwork đều gắn liền với một phiên
bản Visual Studio nào đó, thì.NET Framework 3.0 đã “phá” truyền thống
này khi ra mắt cùng với hệ điều hành Windows Vista vào cuối năm 2006. Ba
“điểm nhấn” trong lần nâng cấp này là thành phần được kỳ vọng thay thế
Winform – Windows Presentation Foundation – WPF, Windows Communitcation
Foundation – WCF, Windows Workflow Foundation – WF, và Windows Card
Space.
.NET Framework 3.0 không phải là một phiên bản mới hoàn toàn, thực tế
là một bản nâng cấp của .NET 2.0, hay đúng hơn là một bản nâng cấp cho
thư viện của .NET 2.0.
Chính vì không có Visual Studio “đi kèm”, mà .NET 3.0 đành phải “ký
gửi” vào Visual Studio 2005 với một bộ công cụ mở rộng. Người dùng phải
đợi đến tháng 11 năm 2007 mới được sử dụng một phiên bản Visual Studio
hỗ trợ đầy đủ và toàn diện cho .NET 3.0, và hơn thế nữa. Vâng, chúng ta
đang nói đến VS 2008 và .NET Frame work 3.5. Cũng như phiên bản 3.0,
.NET 3.5, là một mở rộng trên nền .NET 2.0.
LINQ [LINQ: Language Integrated Query - đây là thư viện mở rộng cho các ngôn ngữ lập trình C# và Visual
Basic.NET (có thể mở rộng cho các ngôn ngữ khác) cung cấp khả năng truy vấn trực tiếp dữ liệu đối tượng,
CSDL và XML] là phần nổi bật và đáng chú ý nhất trong .NET 3.5.
Ver 4.0 – phát hành năm 2010
Ngày 12/4 vừa qua, Microsoft lại nâng cấp .NET Framework và Visual Studio.
Đây là phiên bản đầu tiên sau .NET 2.0 kể từ 2005, có một CLR hoàn
toàn mới: CLR 4.0. Cũng cần nhắc lại là cả .NET 3.0 và 3.5 đều sử dụng
CLR 2.0, và không có CLR 3.0. Việc Microsoft chuyển thẳng lên 4.0 không
chỉ để “đồng bộ” phiên bản, mà còn nhằm khẳng định đây là một bước tiến
lớn.
.NET Framework 4 giới thiệu một model an ninh được cải thiện.
Các tính năng mới và cải tiến trong .NET Framework 4 là:
• Application Compatibility and Deployment
(Khả năng tương thích ứng dụng và triển khai)
• Core New Features and Improvements
(Các tính năng mới và cải tiến của phần nhân)
• Managed Extensibility Framework
(Quản lý mở rộng Framework)
• Parallel Computing (Điện toán song song)
• Networking
• Web
• Client
• Data
• Windows Communication Foundation (WCF)
• Windows Workflow Foundation (WF)
—————————————-
WCF là công nghệ nền tảng nhằm thống nhất nhiều mô hình lập trình giao tiếp được hỗ trợ trong .NET 2.0
thành một mô hình duy nhất.
WF: Windows Workflow Foundation – workflow (luồng công việc)
Một workflow (luồng công việc) là thứ tự các bước, tác vụ, sự kiện hoặc
tương tác làm nên một quy trình để thực hiện một công việc nào đó. Quy
trình này có thể có nhiều bộ phận, cá nhân tham gia. Nguồn gốc luồng
công việc có lẽ bắt nguồn từ công tác xử lý văn bản: văn bản cần phải
được di chuyển từ nơi này sang nơi khác để thực hiện các công việc khác
nhau (đọc, sửa đổi, góp ý, xem lại, phê chuẩn…). Windows Workflow
Foundation (WF) là một công nghệ của Microsoft cho phép định nghĩa, thực
thi và quản lý các workflow. Công nghệ này được ra đời vào tháng 11 năm
2006 như là một phần của nền tảng
.NET framework 3.0 (còn gọi là
WinFX).
Tags:
.NET,
framework,
Lập Trình,
lich su hinh thanh,
phat trien
Ý kiến bạn đọc [ 0 ]
Ý kiến của bạn