.NET Framework là một nền tảng lập trình và cũng là một nền tảng thực thi ứng dụng chủ yếu trên hệ điều hành Microsoft Windows được phát triển bởi Microsoft từ năm 2002, kết thúc phát triển vào năm 2022 ở phiên bản 4.8.1. Các chương trình được viết trên nền .NET Framework sẽ được triển khai trong môi trường phần mềm (ngược lại với môi trường phần cứng) được biết đến với tên Common Language Runtime (CLR). Môi trường phần mềm này là một máy ảo trong đó cung cấp các dịch vụ như an ninh phần mềm (security), quản lý bộ nhớ (memory management), và các xử lý lỗi ngoại lệ (exception handling).
.NET Framework bao gồm tập các thư viện lập trình lớn, và những thư viện này hỗ trợ việc xây dựng các chương trình phần mềm như lập trình giao diện; truy cập, kết nối cơ sở dữ liệu; ứng dụng web; các giải thuật, cấu trúc dữ liệu; giao tiếp mạng... CLR cùng với bộ thư viện này là 2 thành phần chính của .NET Framework.
.NET Framework đơn giản hóa việc viết ứng dụng bằng cách cung cấp nhiều thành phần được thiết kế sẵn, người lập trình chỉ cần học cách sử dụng và tùy theo sự sáng tạo mà gắn kết các thành phần đó lại với nhau. Nhiều công cụ được tạo ra để hỗ trợ xây dựng ứng dụng .NET, và IDE (Integrated Developement Environment) được phát triển và hỗ trợ bởi chính Microsoft là Visual Studio.
Lịch sử phát triển
.NET Framework 1.0
Đây là phiên bản đầu tiên của .NET Framework, nó được phát hành vào năm 2002 cho các hệ điều hành Windows 98, NT 4.0, 2000 và XP. Việc hỗ trợ chính thức từ Microsoft cho phiên bản này kết thúc vào 10/7/2007, tuy nhiên thời gian hỗ trợ mở rộng được kéo dài đến 14/7/2009.
.NET Framework 1.1
Phiên bản nâng cấp đầu tiên được phát hành vào 4/2003. Sự hỗ trợ của Microsoft kết thúc vào 14/10/2008, và hỗ trợ mở rộng được định đến 8/10/2013.
Những thay đổi so với phiên bản 1.0:
- Tích hợp hỗ trợ mobile ASP.NET (trước đây chỉ là phần mở rộng tùy chọn)
- Thay đổi về kiến trúc an ninh - sử dụng sandbox khi thực thi các ứng dụng từ Internet.
- Tích hợp hỗ trợ ODBC và cơ sở dữ liệu Oracle
- .NET Compact Framework
- Hỗ trợ IPv6 (Internet Protocol version 6)
- Vài thay đổi khác trong API
.NET Framework 2.0
Kể từ phiên bản này, .NET Framework hỗ trợ đầy đủ nền tảng 64-bit. Ngoài ra, cũng có một số thay đổi trong API; hỗ trợ các kiểu "generic"; bổ sung sự hỗ trợ cho ASP.NET; .NET Micro Framework - một phiên bản .NET framwork có quan hệ với Smart Personal Objects Technology.
.NET Framework 3.0
Đây không phải là một phiên bản mới hoàn toàn, thực tế chỉ là một bản nâng cấp của .NET 2.0. Phiên bản 3.0 này còn có tên gọi khác là WinFX, nó bao gồm nhiều sự thay đổi nhằm hỗ trợ việc phát triển và chuyển đổi (porting) các ứng dụng trên Windows Vista. Tuy nhiên, không có sự xuất hiện của .NET Compact Framework 3.0 trong lần phát hành này.
Bốn thành phần chính trong phiên bản 3.0:
- Windows Presentation Foundation (WPF - tên mã là Avalon): Đây là một công nghệ mới, và là một nỗ lực của Microsoft nhằm thay đổi phương pháp hay cách tiếp cận việc lập trình một ứng dụng sử dụng giao diện đồ họa trên Windows với sự hỗ trợ của ngôn ngữ XAML.
- Windows Communication Foundation (WCF - tên mã là Indigo): Một nền tảng mới cho phép xây dựng các ứng dụng hướng dịch vụ (service-oriented).
- Windows Workflow Foundation (WF): Một kiến trúc hỗ trợ xây dựng các ứng dụng workflow (luồng công việc) một cách dễ dàng hơn. WF cho phép định nghĩa, thực thi và quản lý các workflow từ cả cách nhìn theo hướng kĩ thuật và hướng thương mại.
- Windows CardSpace (tên mã là InfoCard): một kiến trúc để quản lý định danh (identity management) cho các ứng dụng được phân phối.
Ngoài ra Silverlight (hay WPF / E), một phiên bản nhánh.NET Framework hỗ trợ các ứng dụng trên nền web, được Microsoft tạo ra để cạnh tranh với Flash.
Có thể minh họa .NET 3.0 bằng một công thức đơn giản:
.NET 3.0 =.NET 2.0 + WPF + WCF + WF + WCS
.NET Framework 3.5
Được phát hành vào 11/2007, phiên bản này sử dụng CLR 2.0. Đây có thể được xem là tương đương với phiên bản .NET Framework 2.0 SP1 và .NET Framework 3.0 SP1 cộng lại. .NET Compact Framework 3.5 được ra đời cùng với phiên bản .NET Framework này.
Các thay đổi kể từ phiên bản 3.0:
- Các tính năng mới cho ngôn ngữ C# 3.0 và VB.NET 9.0
- Hỗ trợ Expression Tree và Lambda
- Các phương thức mở rộng (Extension methods)
- Các kiểu ẩn danh (Anonymous types)
- LINQ
- Phân trang (paging) cho ADO.NET
- API cho nhập xuất mạng không đồng bộ (asynchronous network I/O)
- Peer Name Resolution Protocol resolver
- Cải thiện WCF và WF
- Tích hợp ASP.NET AJAX
- Namespace mới System.CodeDom
- Microsoft ADO.NET Entity Framework 1.0
Cũng như phiên bản 3.0, có thể minh họa sự thay đổi của.NET 3.5 bằng công thức:
.NET 3.5 =.NET 3.0 + LINQ + ASP.NET 3.5 + REST .
Kể từ phiên bản này, Microsoft bắt đầu cung cấp 2 gói cài đặt riêng biệt, gói đầy đủ và gói giản chức năng client profiles .
👁️
1 | 🔗 | 💖 | ✨ | 🌍 | ⌚
**.NET Framework** là một nền tảng lập trình và cũng là một nền tảng thực thi ứng dụng chủ yếu trên hệ điều hành Microsoft Windows được phát triển bởi Microsoft từ năm 2002, kết
**Entity Framework** (tiết tắt là _EF_), là một trình ánh xạ cơ sở dữ liệu đối tượng mã nguồn mở trên .NET và .NET Framework, bản đầu tiên được xây dựng cho.NET Framework, sau khi
**.NET Foundation** là tổ chức được thành lập vào ngày 31 tháng 3 năm 2014 bởi Microsoft, trong một nỗ lực cải thiện sự hợp tác và phát triển phần mềm nguồn mở dựa trên
**Visual Basic.NET** là một công cụ lập trình hỗ trợ ngôn ngữ lập trình **Visual Basic.NET** trong bộ công cụ lập trình Microsoft Visual Studio 2005. Trong Microsoft Visual Studio 2005, có thể kết hợp
**ASP.NET** là một nền tảng ứng dụng web (_web application framework_) được phát triển và cung cấp bởi Microsoft, cho phép những người lập trình tạo ra những trang web động, những ứng dụng web
**.NET** (trước đây là **.NET Core**) là nền tảng mã nguồn mở miễn phí trên các hệ điều hành Windows, Linux, và macOS. Đây là phiên bản đa nền tảng thừa kế từ .NET Framework.
**C#** (**C Sharp**, đọc là _"xi-sáp"_) là một ngôn ngữ lập trình hướng đối tượng đa năng, mạnh mẽ được phát triển bởi Microsoft, C# là phần khởi đầu cho kế hoạch .NET của họ.
**Windows Runtime** (**WinRT**) là kiến trúc ứng dụng không cần biết nền tảng được giới thiệu lần đầu tiên trong Windows 8 và Windows Server 2012 năm 2012. WinRT hỗ trợ phát triển trong C++/WinRT
Trong .NET Framework của Microsoft, **Hệ thống kiểu dữ liệu dùng chung** (tiếng Anh: Common Type System - CTS) là một tiêu chuẩn xác định cách các định nghĩa kiểu dữ liệu và các giá
**Windows Forms** (WinForms) là thư viện lớp đồ họa (GUI) mã nguồn mở và miễn phí được bao gồm như một phần của Microsoft.NET Framework hoặc Mono Framework, cung cấp nền tảng để viết các
**Ngôn ngữ truy vấn tích hợp** (tiếng Anh: _Language Integrated Query_, viết tắt _LINQ_) là một thành phần của .NET và .NET Framework cung cấp khả năng truy vấn cấp độ ngôn ngữ và cùng
**Microsoft Visual Studio** là một môi trường phát triển tích hợp (IDE) từ Microsoft. Microsoft Visual Studio còn được gọi là "Trình soạn thảo mã nhiều người sử dụng nhất thế giới ", được dùng
**Microsoft Windows SDK** và tiền nhiệm của nó, **Platform SDK** và **.NET Framework SDK** là bộ phát triển phần mềm (SDK) của Microsoft chứa tài liệu, các header file, các thư viện, các mẫu và
**Cơ sở ngôn ngữ dùng chung** hoặc **Cơ sở hạ tầng ngôn ngữ dùng chung** (**Common Language Infrastructure - CLI**) là một tiêu chuẩn kỹ thuật được phát triển bởi Microsoft và được tiêu chuẩn
**Mono** là một dự án tự do nguồn mở nhằm tạo ra một để tạo software framework tương thích .NET Framework tương thích tiêu chuẩn Ecma, bao gồm một trình biên dịch C# và Common
**Windows Presentation Foundation** (viết tắt là WPF) do Microsoft phát triển, là công nghệ kế tiếp Windows Form dùng để xây dựng các ứng dụng dành cho máy trạm chạy hệ điều hành Windows. WPF
nhỏ|phải|Anders Hejlsberg **Anders Hejlsberg**, sinh năm 1960, là một kỹ sư phần mềm tài năng người Đan Mạch. Ông là người tham gia thiết kế nhiều ngôn ngữ lập trình và nhiều công cụ lập
**WebDAV** là viết tắt của cụm từ **Web-based Distributed Authoring and Versioning** (tạm dịch **_hệ thống quản lý chứng thực và phiên bản dựa trên môi trường Web_**) là một trong những sáng chế của
**DotNetNuke** là một hệ thống quản lý nội dung mã nguồn mở viết bằng ngôn ngữ lập trình VB.NET trên nền tảng ASP.NET. Tuy nhiên, các nhà phát triển đã bắt đầu chuyển DotNetNuke core
**Vue.js**, gọi tắt là **Vue** (phát âm là /vjuː/, giống như view trong tiếng Anh), là một framework linh động dùng để xây dựng giao diện người dùng (user interfaces - UI). Khác với các
**SharpDevelop** (còn được viết là **#develop**) là một phần mềm tự do, môi trường phát triển tích hợp trong môi trường .NET. Về giao diện, nó có nhiều điểm tương đồng với Visual Studio, nhưng
**FIle Explorer**, trước đây là **Windows Explorer, **là một ứng dụng quản lý tập tin đi kèm trong tất cả các phiên bản hệ điều hành Windows từ Windows 95 về sau. Nó cung cấp
phải|192|[[Cây nhị phân, một kiểu đơn giản của cấu trúc dữ liệu liên kết rẽ nhánh.]] thumb|right|Bảng băm Trong khoa học máy tính, **cấu trúc dữ liệu** là một cách lưu dữ liệu trong máy
phải|nhỏ|277x277px| Minh họa của một ứng dụng sử dụng libvorbisfile để phát file Ogg Vorbis Trong khoa học máy tính, **thư viện** là tập hợp các tài nguyên không biến động được sử dụng bởi
**Phần mềm máy chủ ứng dụng** (tiếng Anh: _Application Server_) là một phần mềm (software engine) trong cung cấp ứng dụng phần mềm cho các máy trạm hoặc thiết bị, thông thường là qua mạng
**Ngôn ngữ trung gian chung **hoặc **Ngôn ngữ trung gian dùng chung** (**Common Intermediate Language - CLI**), là ngôn ngữ lập trình có thể đọc được của con người ở mức thấp nhất được xác
**Object Pascal** chỉ đến một nhánh của phát sinh hướng đối tượng của Pascal, được biết đến chủ yếu với vai trò ngôn ngữ lập trình chính của Delphi. ## Lịch sử ban đầu tại
**Microsoft Silverlight** là một nền tảng ứng dụng (application framework) để viết và chạy các ứng dụng Internet phong phú với sự nhấn mạnh về đa phương tiện, hình động, và đồ họa, với các
Apache **Log4j** là một trình ghi nhật ký trên nền tảng Java. Ban đầu, Log4j được phát triển bởi Ceki Gülcü và hiện nay là một dự án của Quỹ Phần mềm Apache. Log4j là
Trong khoa học máy tính, **tìm kiếm nhị phân** (), còn gọi là **tìm kiếm nửa khoảng** (_half-interval search_), **tìm kiếm logarit** (_logarithmic search_), hay **chặt nhị phân** (_binary chop_), là một thuật toán tìm
**Windows XP** là một bản phát hành lớn của hệ điều hành Windows NT do Microsoft phát triển, hướng tới các máy tính để bàn dành cho gia đình và doanh nghiệp, máy tính xách
**Nền tảng máy tính**,** Nền tảng điện toán** hoặc **nền tảng** **kỹ thuật số** là môi trường trong đó một phần mềm được thực thi. Nó có thể là phần cứng hoặc hệ điều hành,
**Olive Browser** là một trình duyệt miễn phí chạy trên hệ điều hành Windows. Olive sử dụng công cụ Webkit và cũng sử dụng trình quản lý tải xuống Wget. Tính đến tháng 2 năm
**Windows 98** (tên mã Memphis) hay **Windows 98 FE** (**Windows 98 First Edition**). **Windows 98** bản gốc sở dĩ được đặt tên như vậy để nhằm phân biệt với Windows 98 Second Edition phát hành
**Windows Millennium Edition**, hay **Windows ME** (phát âm, ), là một hệ điều hành giao diện đồ hoạ được phát hành ngày 14 tháng 9 năm 2000 bởi Microsoft và là hệ điều hành cuối
**_Arena Wars_** (tạm dịch: _Vũ đài Chiến tranh_) là trò chơi máy tính thuộc thể loại hành động kiêm chiến lược thời gian thực lấy bối cảnh nhân loại lao vào một cuộc chiến tranh
**Backporting** là hành động lấy các phần từ một phiên bản mới hơn của một hệ thống phần mềm hoặc thành phần phần mềm và port chúng sang một phiên bản cũ hơn của chính
**Thư viện chuẩn**, tiếng Anh: **standard library**, trong lập trình máy tính là thư viện được cung cấp sẵn thông qua các hiện thực của một ngôn ngữ lập trình. Các thư viện này được
**Bộ công cụ phát triển phần mềm** (tiếng Anh: **software development kit**, viết tắt là **SDK**) là một gói các công cụ phát triển phần mềm (software development) trong một gói có thể cài đặt.
1. BSC – Balanced Scorecard (Thẻ điểm cân bằng) Phương pháp quản trị BSC do Tiến sĩ Robert Kaplan và David Norton khởi xướng, sáng lập. Nhiều người nhầm tưởng BSC như một hệ thống
nhỏ|phải|Microsoft Visual C++ 2005, Professional Edition nhỏ|phải|Visual C++ 6.0 **Microsoft Visual C++** (còn được gọi là **MSVC**) là một sản phẩm Môi trường phát triển tích hợp (IDE) cho các ngôn ngữ lập trình C,
**JScript** là một ngôn ngữ kịch bản (_scripting language_) của Microsoft được tạo nên dựa trên chuẩn ECMAScript . JScript chủ yếu được sử dụng ở những ứng dụng có hỗ trợ Windows Script, như
nhỏ|Java 2 **Java 2 Platform, Enterprise Edition** (_Nền tảng Java, phiên bản 2 - phiên bản công nghiệp_ là công nghệ của Sun Microsystems) hay **Java EE** (gọi tắt là J2EE) là một nền lập
**Windows Vista** (tên mã là **Longhorn**) là một hệ điều hành của Microsoft, là một phần của họ hệ điều hành Windows NT. Sử dụng cho máy tính cá nhân, trong đó có máy tính
Một số ngôn ngữ lập trình cung cấp **kiểu dữ liệu phức** để lưu và thực hiện các phép toán số học số phức dưới dạng một kiểu dữ liệu có sẵn (cơ bản). Trong
**Wine** là một lớp tương thích tự do nguồn mở dùng để chạy các phần mềm viết cho Windows trên các hệ điều hành tương tự Unix (Linux, FreeBSD,...). Wine cũng cung cấp một thư
nhỏ|Logo của ActiveX **ActiveX** là một thư viện khung dùng cho việc định nghĩa các thành phần phần mềm tái sử dụng trong một ngôn ngữ lập trình theo cách độc lập. Chương trình ứng
Windows 10 mang đến một lượng lớn thành phần mới, bao gồm cả các tùy chọn cho giao diện tối ưu cho thao tác chạm (gọi là tablet mode) hoặc giao diện cho máy tính
Trong điện toán, **lập trình hướng khía cạnh** (tiếng Anh: _aspect-oriented programming_, viết tắt: _AOP_) là một mẫu hình lập trình nhằm tăng tính mô đun bằng cách cho phép phân tách những mối quan
**Mod** (đọc là _mót_, viết tắt của **modification**, nghĩa đen: _sự sửa đổi_) là một sự thay đổi của người chơi hoặc người hâm mộ của một trò chơi điện tử thay đổi một hoặc