Sunday, August 19, 2018

Lịch sử phát triển của .NET Framework

Giới thiệu 

.NET Framework là một nền tảng lập trình chạy trên hệ điều hành Windows của Microsoft. 
.NET Framework bao gồm tập 2 phần chính là các thư viện lập trình (library) và trình thực thi ứng dụng (common language runtime).
.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.

Các phiên bản


Phiên bản
Số hiệu phiên bản
Ngày phát hành
Visual Studio
Được phát hành kèm theo
1.0
1.0.3705.0
13 tháng 2 năm 2002
Visual Studio.NET
Windows XP Tablet and Media Center Editions[1]
1.1
1.1.4322.573
24 tháng 4 năm 2003
Visual Studio.NET 2003
Windows Server 2003
2.0
2.0.50727.42
7 tháng 11 năm 2005
Visual Studio 2005
Windows Server 2003 R2
3.0
3.0.4506.30
6 tháng 11 năm 2006
Windows Vista, Windows Server 2008
3.5
3.5.21022.8
19 tháng 11 năm 2007
Visual Studio 2008
Windows 7, Windows Server 2008 R2
4.0
4.0.30319.1
12 tháng 4 năm 2010
Visual Studio 2010
4.5
4.5.50709
15 tháng 8 năm 2012
Visual Studio 2012
Windows 8, Windows Server 2012
4.6
20 tháng 7 năm 2015
Visual Studio 2015
Windows 10

Lịch sử phát triển

.NET Framework 1.0
Là bước quan trọng đầu tiên trong cuộc đời .Net Framework, khi phiên bản 1.1 ra đời cùng với Visual Studio.NET 2002 chính thức ra mắt. Lần đầu tiên Microsoft giới thiệu về lập trình hợp nhất, lấy .NET framework làm nền tảng

.NET Framework 1.1
Một năm sau ngày .NET framework 1.0 ra đời, 1.1 là phiên bản cập nhậtt cùng Visual Studio.NET 2003. Nâng cấp không nhiều, đáng kể là sự ra đời của .NET compact Framework, có .NET framework trên các thiết bị di động, nó là nền tảng cho các hệ điều hành trên các thiết bị cầm tay sau này. Nhưng nó chưa được phát triển đúng như tiềm năng của nó.Nó đặt nên truyền thống là các HDH Windows đều được cài đặt sẵn phiên bản framework mới nhất
· 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
Sự ra đời .NET framework và Visual studio 2005, với hang loạt tính năng mới, nó hỗ trợ tính toán 64nit, .NET Micro Framework, nó 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).

.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.

· 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

.NET Framework 4.0

Đâ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 được Microsoft bổ sung trong.NET 4:
· Dynamic Language Runtime
· Code Contracts
· Managed Extensibility Framework
· Hỗ trợ các tập tin ánh xạ bộ nhớ (memory-mapped files)
· Mô hình lập trình mới cho các ứng dụng đa luồng (multithreaded) và bất đồng bộ (asynchronous)
· Cải thiện hiệu năng, các mô hình workflow.

.NET Framework 4.5

Những thông tin đầu tiên của.NET 4.5 được Microsoft công bố vào 14/9/2011 tại BUILD Windows Conference, và nó chính thức được ra mắt vào 15/8/2012.

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.

Lịch sử phát triển của ngôn ngữ lập trình C#


Giới thiệu

C# (đọc là "C thăng" hay "C sharp") là một ngôn ngữ lập trình hướng đối tượng được phát triển bởi Microsoft, là phần khởi đầu cho kế hoạch .NET của họ. C# được miêu tả là ngôn ngữ có được sự cân bằng giữa C++, Visual Basic, Delphi và Java.

C# được thiết kế chủ yếu bởi Anders Hejlsberg kiến trúc sư phần mềm nổi tiếng với các sản phẩm Turbo Pascal, Delphi, J++, WFC.

Các phiên bản của C#


Phiên bản
Ngày phát hành
.NET Framework
Visual Studio
C# 1.0
Tháng 1 năm 2002
.NET Framework 1.0
Visual Studio .NET 2002

C# 1.1
C# 1.2
Tháng 4 năm 2003
.NET Framework 1.1
Visual Studio .NET 2003

C# 2.0
Tháng 11 năm 2005
.NET Framework 2.0
Visual Studio 2005

C# 3.0
Tháng 11 năm 2007
.NET Framework 2.0
.NET Framework 3.0
.NET Framework 3.5
Visual Studio 2008
Visual Studio 2010

C# 4.0
Tháng 4 năm 2010
.NET Framework 4
Visual Studio 2010

C# 5.0
Tháng 8 năm 2012
.NET Framework 4.5
Visual Studio 2012
Visual Studio 2013

C# 6.0
Tháng 7 năm 2015
.NET Framework 4.6
Visual Studio 2015

C# 7.0
Tháng 3 năm 2017
.NET Framework 4.6.2
Visual Studio 2017

Các tính năng mới trong từng phiên bản

C# 2.0

  • Generics
  • Partial types
  • Hàm Anonymous
  • Iterators
  • Các kiểu Nullable
  • Khả năng tiếp cận getter/setter riêng biệt
  • Phương pháp nhóm chuyển đổi (delegate)
  • Co- và Contra-variance cho các delegates (delegate)
  • Các lớp static
  • Delegate inference

C# 3.0

  • LINQ
  • Cải tiến trong việc khởi tạo đối tượng: Customer c = new Customer(); c.Name="James"; có thể viết là Customer c = new Customer { Name="James" };
  • Các biểu thức lambda: listOfFoo.Where(delegate(Foo x) { return x.size>10;}) trở thành listOfFoo.Where(x => x.size>10);
  • Mặc định gõ các biến cục bộ, ví dụ var x = "hello"; có thể hoán đổi với string x = "hello";
  • Các property được tự động hiện thực hóa
  • Các kiểu anonymous
  • Các hàm extension
  • Cây biểu thức
  • Các hàm dạng partial

C# 4.0

  • Dynamic binding
  • Đối số được đặt tên và tùy chọn
  • Co- và contravariance dạng generic
  • Các kiểu interop nhúng ("NoPIA")

C# 5.0

  • Các hàm asynchronous
  • Tìm thông tin thành phần gọi hàm

C# 6.0

  • Compiler-as-a-service (Roslyn)
  • Nhập các thành viên kiểu static vào không gian tên.
  • Exception filters
  • Await trong các khối catch/finally
  • Tự động cài đặt property
  • Các thành viên trong thân biểu thức
  • Toán tử kiểm tra null
  • Chuỗi nội suy
  • Toán tử nameof

C# 7.0

  • Các biến out
  • Pattern matching
  • Tuple
  • Deconstruction
  • Các hàm cục bộ
  • Kiểu ValueTask
  • Constructor and finalizer trong thân biểu thức
  • Getter và setter trong thân biểu thức
  • Throw cũng có thể được dùng làm biểu thức

Hiện tại thì C# vẫn được tiếp tục cải tiến và phát triển, cho đến thời điểm viết bài thì C# đang được cập nhật tới phiên bản 7.3 với một số tính năng nổi bật như:
  • Async main
  • Tuple type

Với cú pháp đơn giản, cấu trúc và đầy sự mạnh mẽ của C#, chúng ta hãy cùng hy vọng C# sẽ trở thành một ngôn ngữ phổ biến nhất trong thế giới lập trình viên.

Tuyệt chiêu tránh khỏi sự chậm chạm của Entity Framework

Nhìn chung mà nói, tôi chả lo lắng gì nhiều về câu lệnh LINQ của tôi khi làm việc với Entity Fra...