Chạy theo .NET???? (Phần 2)

Trong Entry trước đã có nói về các Foundation của .NET 3.0 trở lên là WPF – Windows Presentation Foundation, WCF – Windows Communication Foundation, WF – Windows Workflow Foundation , Windows CardSpace.

Entry này sẽ đi sâu hơn những khác biệt trong các .NET framework, từ 1.x, 2.0, 3.0 và 3.5 (beta)

Dưới đây là bảng so sánh một cách khái quát giữa các framework và các tính năng.

.NET 1.1

.NET 2.0

.NET 3.0

.NET 3.5

CLR Version

CLR 1.1

CLR 2.0

CLR 2.0

CLR 3.0

C#-version

C# 1.0

C# 2.0

C# 2.0

C# 3.0

Pre-installed on OS

Windows Server 2003

Windows Server 2003 R2

Windows Vista

Windows Server 2008

Foundations

N/A

N/A

WPF
WCF
WF
WCS

WPF
WCF
WF
WCS

ADO

ADO.NET

ADO.NET 2.0

ADO.NET 2.0

ADO.NET vNext= LINQ

Special editions

.NET Compact Framework 1.0 .NET Compact Framework 2.0
  • .NET Compact Framework 2.0
  • .NET Micro Framework 2.0
  • .NET Compact Framework 3.5
  • Silverlight 1.1
  • .NET Micro Framework 2.0

Từ bảng trên, có thể thấy một số điểm sau đây:

  • Từ 1.x lên 2.0 đã có sự thay đổi cơ bản về cấu trúc bên dưới của .NET framework (CLR 1.0 –> CLR 2.0)
  • Từ 2.0 lên 3.0 về cơ bản thì không có gì thay đổi nhiều trừ các Foundation được đưa vào. Như vậy, những ứng dụng đã được viết để chạy trên .NET 2.0 hoàn toàn có thể chạy được trên nền 3.0. Từ đó, nếu bạn đang sử dụng .NET 1.x, và bạn muốn nâng cấp lên, tốt nhất là nâng cấp lên 3.0 luôn mà ko cần phải cài .NET 2.0. Ngay cả trong lập trình C#, thì C# vẫn là 2.0. Do đó, nếu đang cài .NET 2.0, và bạn chưa cần phải sử dụng các Foundation mới, thì việc cài đặt 3.0 là không cần thiết.
    Như vậy, nếu để đưa ra một lời khuyên cho bạn nên cài .NET framework nào, thì .NET 3.0 vẫn được prefer hơn cả vì nó bao gồm cả 2.0 và .NET 3.5 thì chưa được ổn định (beta)
  • .NET 3.0 có chứa 1 compiler mới để xử lý các new features và để xử lý LINQ

Các tính năng mới trong .NET 3.5

Thực thi bên dưới Framework nhanh hơn

  1. Bộ thu dọn “Rác” trong bộ nhớ làm việc nhanh hơn
  2. Quá trình NGen nhanh hơn, “thông minh” hơn đồng thời cũng yêu cầu ít bộ nhớ hơn.
  3. Cải thiện các tính năng hỗ trợ CPU 64 bit
  4. Nâng cao performance cuả ThreadPool
  5. Security check caching trong quá trình thực thi NGen.

Base Class Library – Các class mới

  1. Thêm các kiểu dữ liệu mới: BigInteger, HashSet và DateTime2
  2. NSA Suite ”B” and FIPs compliant cryptography
  3. Lightweight Reader/Writer Lock Classes
  4. Anonymous and Named Pipes IO Classes
  5. Tích hợp với Event Tracing for Windows
  6. New Addin hosting model for extensibility

Language Integrated Query (LINQ)

  1. Đưa LINQ vào ngôn ngữ lập trình (C# và VB .NET) và cả trong framework

Workflow Enabled Services – Process and Messaging together

  1. Sử dụng Workflow để tạo ra các Services có khả năng chạy trong thời gian lâu dài và ổn định. Công cụ mới là WF activities and new programming model classes cũng đã được thêm vào để đơn giản hoá quá trình tạo ra các Service có Workflow được ứng dụng sử dụng WF và WCF. Tính năng này cho phép các lập trình viên có thể phát triển các business logic cho các Service sử dụng WF đồng thời gởi message từ Service đó thông qua WCF, điều này cho phép đưa ra những chiến lược tốt hơn và giảm thời gian viết code so với trước đó.

Web 2.0 Friendly and AJAX Enabled WCF Services

Visual Studio Developer Tools for WF, WCF and in Visual Studio “Orcas”

More WS-* Standards Support

  1. Implementation in WCF of the latest OASIS specifications Web Services Atomic Transaction (WS-AtomicTransaction) 1.1, WS-ReliableMessaging 1.1, WS-SecureCOnversation and Web Services Coordination (WS-Coordination) 1.1.

RSS and ATOM Syndication API

  1. Trong .NET 3.5 hỗ trợ các tính năng có thể sinh ra các RSS và ATOM Syndication một cách dễ dàng hơn.

Partial Trust Support for WCF Hosting

  1. Partial trust on the client is provided for ASMX parity focussing mainly on partially
    trusted WCF applications deployed through click-once. Support is provided for basic HTTP binding provided that the application runs in the Internet zone permissions and have granted the apropriate WebPermission. Secure communication is possible through transport security only. All other features are not available to partially trusted applications including hosting services, duplex communications, non-HTTP transports, WS-* protocols and any WF use.

Rules Data Improvements

  1. The rules engine in WF is improved to add support for C# 3.0 extension methods, and for operator overloading . Also the ”new” operator is added to compete the base set of expression types.

Built-in WPF tools for Visual Studio “Orcas”

  1. The Visual Studio designer for WPF was previously released as a CTP. It is not integrated into the development environment and is significantly improved.

Additional WPF Features and Improved Performance

  1. WPF has smoother animations, faster startup and better overall performance. There are also new data types available for data binding with LINQ. Better integration support is now provided for with codename “WPF/E”.

Trên đây là 1 số tính năng mới bên trong .NET framework 3.5 và Visual Studio .NET Orcas (beta).

Chú thích NGen:

NGen là từ viết tắt của Native Image Generator. Đây là 1 công cụ được đưa vào từ .NET 1.x dùng để tạo 1 “native image” cho 1 assembly. Trong .NET, CLR thực thi các mã IL là mã trung gian của .NET (không phải mã nhị phân). Để máy có thể hiểu được, thì nó cần phải được dịch sang mã máy (mã nhị phân). CLR Excution Engine có chứa 1 bộ biên dịch gọi là JIT (Just In Time) để mà chuyển mã IL này sang mã dạng nhị phân (native code) trong lúc chạy. Tuy nhiên, mã nhị phân này sẽ không được lưu lại trên các thiết bị lưu trữ permanant mà nó chỉ được lưu trên bộ nhớ trong Process lifetime. Khi application được restart thì bộ biên dịch JIT phải compile lại các mã IL sang mã native lại.

Bộ NGen này cho phép tạo 1 cái “Native Image” (như là chụp lại cái đoạn mã máy đã được biên dịch) và lưu trên thiết bị lưu trữ trong 1 vùng đặc biệt gọi là NGen CacheNative Image Cache.

Qua các .NET framework khác nhau, bộ NGen này được tối ưu hóa nhiều hơn với những giải thuật tốt hơn. Nếu gõ vào Start > Run… %windir%\assembly thì có thể thấy thư mục NGen Cache này

Phần tiếp theo: Những cái mới trong C# 3.0

One thought on “Chạy theo .NET???? (Phần 2)

Để lại phản hồi