Tôi bắt đầu công việc trong MVC khoảng một năm trước, tôi có cảm hứng nhưng không ấn tượng.
Tôi ghê tởm trạng thái xem và xem nó là gốc rễ của mọi điều xấu xa về mặt ASP.NET. Đây là lý do tại sao tôi không sử dụng nó và thành thật mà nói, tại sao bạn lại muốn?
Về cơ bản, tôi đã lấy khái niệm ASP.NET MVC Framework và xây dựng nó theo cách của riêng tôi. Tôi đã thay đổi một vài thứ. Tôi đã tạo mã gói bộ điều khiển hoặc mã định tuyến URL xung quanh biên dịch lại động.
Bây giờ, tôi muốn nói rằng các ứng dụng ASP.NET MVC sẽ nhanh hơn dựa trên cách bạn sử dụng nó. Nếu bạn hoàn toàn từ bỏ WebForms, bạn sẽ nhanh hơn vì vòng đời của ASP.NET và mô hình đối tượng là rất lớn.
Khi bạn đang viết, bạn đang tạo ra một đội quân ... không chờ đợi, một quân đoàn các đối tượng sẽ tham gia vào việc hiển thị chế độ xem của bạn. Điều này sẽ chậm hơn nếu bạn thể hiện số lượng hành vi tối thiểu trong chính trang ASPX. (Tôi không quan tâm đến tính trừu tượng của công cụ chế độ xem vì hỗ trợ cho các trang ASPX trong Visual Studio là khá tốt, nhưng tôi đã hoàn toàn loại bỏ WebForms như một khái niệm và về cơ bản bất kỳ khung ASP.NET nào do mã bị phình hoặc không thể thay đổi những thứ liên quan đến ứng dụng của tôi).
Tôi đã tìm cách dựa vào biên dịch lại động (System.Reflection.Emit) để tạo ra các đối tượng và mã mục đích đặc biệt bất cứ khi nào cần. Việc thực thi mã này nhanh hơn phản chiếu nhưng ban đầu được xây dựng thông qua dịch vụ phản chiếu. Điều này đã mang lại cho khung công tác có hương vị MVC của tôi hiệu suất tuyệt vời nhưng cũng được nhập rất tĩnh. Tôi không sử dụng chuỗi và bộ sưu tập cặp tên / giá trị. Thay vào đó, các dịch vụ trình biên dịch tùy chỉnh của tôi sẽ viết lại một bài đăng biểu mẫu cho một hành động trình điều khiển được chuyển một kiểu tham chiếu. Đằng sau hậu trường có rất nhiều thứ đang diễn ra nhưng mã này nhanh, nhanh hơn rất nhiều so với WebForms hoặc MVC Framework.
Ngoài ra, tôi không viết URL, tôi viết các biểu thức lambda được dịch thành các URL mà sau này sẽ cho biết hành động điều khiển nào sẽ gọi. Điều này không đặc biệt nhanh nhưng nó đánh bại việc có các URL bị hỏng. Nó giống như nếu bạn có các tài nguyên được nhập tĩnh cũng như các đối tượng được nhập tĩnh. Một ứng dụng web được nhập tĩnh? Đó là thứ mà tôi muốn!
Tôi sẽ khuyến khích nhiều người thử điều này.