Blog

Trong quá trình học tập và nghiên cứu chúng ta thường gặp những ngôn ngữ lập trình web phổ biến như PHP, Javascript, ASP.NET…Mỗi ngôn ngữ đều có một ưu nhược điểm riêng, ngoài ra còn có những framework hỗ trợ chúng ta lập trình,  hôm nay thiết kế web chuyên nghiệp OTVINA xin giới thiệu tới các bạn loạt bài về Framework ASP.NET MVC 5. Nội dung đầu tiên chúng ta tìm hiểu là  Putting ASP.NET MVC in Context.

1.Tổng quan về ASP.NET MVC

ASP.NET MVC là một framework để phát triển web do hãng Microsoft cung cấp. Ưu điểm nổi trội là sự kết hợp hiệu quả và gọn gàng của kiến trúc model – view – controller (MVC).

Vậy tại sao có nền tảng ASP.NET rồi nhưng Microsoft vẫn tạo ra ASP.NET MVC, chúng có điểm gì khác nhau, những điểm mới trong ASP.NET MVC là gì?

Trước hết thiết kế website giá rẻ mời các bạn xem lịch sự của ASP.NET.

Lịch sử phát triển của ASP.NET_Công ty thiết kế website chuyên nghiệp OTVINA

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

Với Web Forms, MS hướng tới sự che dấu HTTP ( giao thức nội tại khi phát triển) và HTML( lúc bấy giờ còn rất mới lạ đối với các nhà phát triển) của mô hình UI – đây là một hệ thống phân cấp các đối tượng được kiểm soát về phía máy chủ (severs-side).

Mỗi một control sẽ lưu giữ trạng thái khi nhận các yêu cầu thông qua các View State, khi cần thiết HTML sẽ tự động kết nối với các sự kiện phía client (ví dụ như button click) gửi đến máy chủ để xử lý mã sự kiện tương ứng. Trong thực tế, Web Forms là một lớp trừu tượng khổng lồ được thiết kế để cung cấp một giao diện cổ điển (bassic) hướng sư kiện người dùng đồ họa trên web (GUI).

Tư tưởng hướng tới chính là làm cho phát triển web gần giống như phát triển các ứng dụng Windows Forms. Hạn chế tối đa kiểu làm việc với các yêu cầu cũng như hồi đáp ( request, response) độc lập với các HTTP, thay vào đó là các trạng thái của giao diện người dùng và MS sẽ tạo nên một thế giới mới của các ứng dụng web trong mắt các nhà phát triển ứng dụng windows desktop.

2. Sư khác nhau của ASP.NET MVC và ASP.NET Web Forms.

ASP.NET Web Forms là phương pháp phát triển web truyền thống, ra đời trước ASP.NET MVC nhưng trên thực tế đã chứng minh có nhiều sự phức tạp.

Thứ nhất, View State khá nặng: Cơ chế View State nhằm mục đích duy trì trạng thái của cá yêu cầu dẫn đến một khối lượng dữ liệu lớn phải chuyển giao giữa các máy  khách và máy chủ. Những thông tin phải chuyển giao có thể lên đến hàng trăm kilobyte, chứa nhiều yêu cầu dẫn đến thời gian đáp ứng các yêu cầu đó chậm hơn bình thường, sự ngốn băng thông của máy chủ qua nhiều chu kỳ càng lớn, dẫn đến cơ chế xử lý lại phức tạp hơn.

Thứ hai, chu kỳ sống của trang: Cơ chế để kết nối sự kiện phía client với server là thông qua các mã xử lý sự kiện đó là một phần của page life cycle. Rất ít các nhà phát triển trong quá trình thực thi của hệ thống có thể kiểm soát thành công thời gian chạy mà không bị lỗi. Hơn nữa các  View State không thể xử lý một số sự kiện bí ẩn (event handlers).

Thứ ba, suy  nghĩ sai lầm khi tách biệt những thứ có mối liên hệ: ASP.NET Web Forms cung cấp mô hình code-behind để lấy các mã ứng dụng (code application) ra khỏi ngôn ngữ đánh dấu HTML. Điều này được sử dụng phổ biến để phân tích logic và trình bày, nhưng trong thực tế các nhà phát triển khuyến khích sự kết hợp giữ trình bày và logic (ví dụ thao tác cơ sở dữ liệu) trong cùng một lớp code-behind. Việc này dẫn đến sự khó hiểu trong chương trình của họ.

Thứ tư, hạn chế điều khiển trong HTML: Các control máy chủ có thể thể hiện như HTML nhưng không nhất thiết phải sử dụng HTML. Trong phiên bản đầu tiên của ASP.NET, HTML không thể đáp ứng được các tiêu chuẩn W3C cũng như không thể tận dụng tối đa CSS, các control cũng khó truy cập để sử dụng JavaScript nếu như có những ID không thể đoán trước và khá phức tạp. Những vấn đề này lại có nhiều cải thiện trong phiên bản Web Forms gần đây, tuy nhiên chưa khắc phục được khó khăn để có được mã HTML như mong đợi.

Thứ năm, thoát ra khỏi sự trừu tượng: Web Forms luôn cố gắng giấy HTML và HTTP bất cứ nơi nào có thể. Khi bạn có gắng để thực hiện hành vi tùy chỉnh, bạn thường xuyện bị thoát ra khỏi sự trừu tượng, mà buộc bạn phải đảo ngược cơ chế postback hoặc thực hiện các hành vi từ đó để sinh ra HTML như mong muốn. Thêm vào đó, tất cả các khái niệm trừu tượng “abstraction” có thể hoạt động như một rào cản gây khó khăn cho những nahf phát triển web.

Thứ sáu, khả năng kiểm tra phát hiện lỗi chậm: Các nhà thiết kế của Web Forms không thể dự đoán rằng kiểm tra tự động sẽ trở thành một thành phần thiết yếu của phát triển phần mềm. Điều đó dễ hiểu bởi kiến trúc chặc chẽ họ thiết kế không phù hợp với việc kiểm tra đơn vị. Tích hợp thử nghiệm đôi khi có thể là một thách thức quá lớn.

Tuy có những hạn chế trên, nhưng không có nghĩa là Web Form không có ưu điểm, MS đã đặt rất nhiều nỗi lực vào việc cải thiện sự tuân thủ các tiêu chuẩn, đơn giản hóa quá trình phát triển và thậm chí có một só tính năng từ ASP.NET MVC. Web Forms có ưu thế khi cần một kết quả nhanh chóng có ứng dựng web phức tạp một cách hợp lý và chạy trong vòng 1 ngày. Nhưng trong quá trình phát triển, bạn sẽ nhận thấy rằng các ứng dụng bạn tạo ra khó để kiểm tra và duy trì.

(Còn tiếp)

Mời các bạn theo dõi phần tiếp theo trong loạt  bài về ASP.NET MVC 5 trên website của thiết kế web chuẩn SEO OTVINA.

OTVINA Team.