Clean Web.Config Files (VS 2010 and .NET 4.0 Series)


Đây là bài đầu tiên trong loạt bài về VS 2010 và .NET 4.0.

Có thể bài viết này hơi ngắn, nhưng đây là một thay đổi hay, thay đổi đầu tiên sẽ đến với bản ASP.NET 4.0 là: file web.config đơn giản, sáng sủa hơn.

Bạn sẽ thấy ngay điều này ngay khi tạo một dự án ASP.NET 4.0 mới (đó là lý do tại sao tôi chọn bài này là bài đầu tiên).

Các fileWeb.config trong .NET 3.0 và 3.5

Trong 2 phiên bản vừa rồi, file web.config trong các dự án ASP.NET cứ tăng kích thước dần. Ví dụ: file web.config mặc nhiên được thêm vào dữ án mới trong VS 2008 SP1 có 126 dòng, chứa tất cả mọi thứ từ định nghĩa thẻ cho đến các handler và module được thêm vào ASP.NET Http pipeline.

Điều này làm tăng kích thước bởi vì .NET 3.0 và .NET 3.5 dùng cùng CLR và machine.config giống như trong .NET 2.0 – và đơn giản là thêm vào và cập nhật các assembly khi nó được cài đặt. Để tránh rủi ro khi vô tình ghi đè các thiết đặt trong file machine.config của bản 2.0, chúng tôi đã không đăng ký thêm các tag, handler và module có trong bản .NET 3.0 hay 3.5. Thay vào đó, chúng tôi đã mặc nhiên bắt các project mới phải đăng ký các cài đặt đó bên trong file web.config riêng. Điều này an toàn hơn, nhưng bù lại các file web.config trở nên lớn và khó đọc hơn.

File Web.config trong .NET 4

.NET 4.0 bao gồm một phiên bản mới của CLR, và một file machine.config riêng cho bản 4.0 (nó được cài đặt side-by-side với các file được dùng trong bản .NET 2, .NET 3 và .NET 3.5).

File machine.config có trong .NET 4.0 sẽ tự động đăng ký tất cả các ASP.NET tag section, handler và module mà chúng tôi đã thêm vào trong nhiều năm qua, bao gồm cả cho:

  • ASP.NET AJAX
  • ASP.NET Dynamic Data
  • ASP.NET Routing (có thể dùng cho cả ASP.NET WebForms và ASP.NET MVC)
  • ASP.NET Chart Control (sẽ được đóng gói cùng ASP.NET V4)

Có nghĩa là khi bạn tạo một project “Empty ASP.NET application” mới trong VS 2010, bẹn sẽ thấy rằng file web.config mới rõ ràng và sáng sủa hơn:

Phần cấu hình đầu tiên ở trên chỉ đơn giản nói với ASP.NET bật chế độ debug, và chỉ ra phiên bản của .NET mà VS phải dùng khi cung cấp intellisense (VS 2010 hỗ trợ xây dựng ứng dụng cho các phiên bản khác nhau – và intellisense bên trong IDE sẽ tự động điều chỉnh theo phiên bản của .NET mà bạn đang hướng đến).

Phần thứ hai chỉ ra bạn sẽ dùng chế độ “integrated” khi chạy ASP.NET bên trong IIS7 – nó sẽ kiểm soát việc có chạy các HttpModules cho tất cả các request bên trong ứng dụng hay chỉ cho các URL cụ thể nào đó. Chúng tôi đã mặc nhiên bật tính năng này cho các project mới – lý do là để tương thích, IIS7 mặc nhiên chỉ chạy các module với các ASP.NET URL.

Tổng kết

Việc đơn giản hóa file web.config trong .NET 4 thực sự chỉ là một thay đổi nhỏ – nhưng dù sao nó cũng là một cái hay, và là cái giúp cho các ứng dung ASP.NET mới sáng sủa và dễ tiếp cận hơn.

Trong các bài viết kế tiếp, tôi dự định sẽ đào sâu vào nhiều các cải tiến quan trọng có trong ASP.NET 4 (cũng như một số các “small but nice tweaks”).

Hope this helps,

Scott

6 thoughts on “Clean Web.Config Files (VS 2010 and .NET 4.0 Series)

  1. bạn ơi có theercho mình hỏi là mình tạo 1 new project bên vs 2010 nhưng dù mình đã chọn cho nó là .Net3.5 rùi nhưng khi đem cái solution đó sang ben vs 2008 thì nó không thể chạy được do nó báo là bản này thuộc version mới hơn. Vậy có cách nào để cho solution bên VS 2010 có thể chạy bên VS 2008 được không bạn cũng như MS Office 2010 vẫn chạy ngon lành bên MS Office 2003 được vậy bạn. Mong nhận được thư trả lời của bạn. Cám ơn bạn nhiều.

  2. Lỗi bạn nói là do cấu trúc/nội dung file Project trong VS 2010 và 2008 là khác nhau, có một vài cách để sửa lại bằng tay, nhưng chắc ăn nhất là bạn tạo một project mới trong VS 2008 rồi add các file đã tạo vào lại. Ngay cả trong trường hợp này nếu bạn dùng VS 2010 để mở thì nó cũng sẽ yêu cầu convert lại, nói chung là một project chỉ có thể mở bằng VS 2010 hay VS 2008 mà thôi.

  3. Chào anh Nam,

    Bài này rất hay, cho em hỏi là anh dịch ra từ blog của Scott ạ? Trình độ dịch bài của anh rất tuyệt, có thể cho em hỏi bí quyết không ạ?

    Thanks,

    Quỳnh

  4. He he, cảm ơn em!
    Bí quyết thì cũng không có gì, đơn giản là em dịch nhiều, đọc nhiều, khi dịch xong phải đọc đi đọc lại cẩn thận… dần dần sẽ tốt hơn.

  5. anh nam oi khi dung vs2010 ma de mo bang 2008 thi minh tao 1 project moi roi add file vao.neu nhu add vao nhu the thi cac form va du lieu co vao khong anh.neu add thi add nhu the nao.anh chi giup em voi.

  6. Cách an toàn nhất là tạo một project mới trong VS 2008, rồi add tất cả các file bên project cũ sang là xong, nếu trong project em không dùng cái gì mới của .NET 4 thì chắc sẽ chạy được luôn.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s