2011-12-15 45 views
5

Tôi đã đọc rất nhiều câu hỏi và bài viết nói rằng chuyển đổi từ ASP.NET Webforms sang MVC là gần đủ không thể. Tuy nhiên, tôi nghĩ rằng kịch bản của tôi là khác nhau.Di chuyển từ ASP.NET WebForms sang MVC

Tôi ngu ngốc bắt đầu làm việc một dự án khoảng một năm trước trong Webforms, nhưng cách tiếp cận tôi đã thực hiện (theo như tôi hiểu) rất giống MVC. Tôi đã vô hiệu hóa các hình thức xác nhận, không sử dụng bất kỳ postbacks, sử dụng URL viết lại và tất cả các thay đổi trang là yêu cầu AJAX tải nội dung trang của ContentPlaceHolders (bằng cách sử dụng một hack nhỏ, trọng các phương pháp RenderControl). Tôi cũng đã sử dụng ORM và RESTful Service API của riêng mình trong các dự án riêng biệt, được tham chiếu trong trang web.

Bây giờ hệ thống hoạt động thực sự tốt, các trang được làm mới một phần và url được thay đổi khi các cuộc gọi ajax được thực hiện, vì vậy khi trang được làm mới, nó trông giống hệt nhau.

Bây giờ tôi đã được thông báo rằng tôi cần học MVC cho một dự án lớn mới (nhưng trước tiên tôi phải hoàn thành một dự án khác), nhưng tôi đã đọc một chút về chủ đề này và bắt đầu một vài Hello World ứng dụng và dường như ý tưởng về ASP.NET MVC là khá chính xác những gì tôi đã tạo.

StackOverflow có nên đề xuất không chuyển đổi ứng dụng Biểu mẫu web thành MVC không? Có lợi ích nào khác khi chuyển đổi sang MVC, ngoài các phương pháp hay nhất?

+0

Bạn chắc chắn có thể "chuyển đổi" WebForms thành MVC, nhưng quá trình này sẽ liên quan đến nhiều bản sao/dán/ghi đè. – jrummell

+0

Dường như với tôi câu hỏi "Có lợi ích nào khác khi chuyển đổi sang MVC, ngoài thực hành tốt nhất?" là một loại đậu hoàn toàn khác từ phần còn lại của câu hỏi này. –

+5

Nếu nó hoạt động tốt như vậy, đừng viết lại nó. – Erix

Trả lời

3

Tôi có một ứng dụng ASP.NET WebForms rất lớn và cũ (được viết ban đầu cho .NET 1.1!) Và đã cho phép MVC hoạt động trong đó, song song. Tôi đã viết các tính năng mới bằng cách sử dụng MVC, và chuyển đổi các tính năng WebForms cũ sang các bộ điều khiển và khung nhìn MVC.

Tôi đã gặp phải một số vấn đề nhỏ liên quan đến ủy quyền URL và chạy trong chế độ tích hợp IIS, nhưng một khi tôi đã hiểu các vấn đề mà chúng khá dễ làm việc. Vậy gần như không thể? Chắc chắn không!

Tôi không thể nói cho bạn biết nó có xứng đáng với thời gian của bạn để chuyển đổi không, vì tôi không biết kích thước, phạm vi hoặc tính chất của ứng dụng của bạn hoặc bất kỳ ràng buộc kinh doanh nào. Tuy nhiên, việc chuyển sang MVC đã là một lợi ích đáng kể để dễ dàng phát triển và chất lượng (vì nó dễ dàng hơn để compartmentalize và kiểm tra đơn vị). Chưa kể, các tính năng tôi đã viết (hoặc viết lại) trong MVC là sạch hơn, nhanh hơn và đáp ứng tốt hơn các tương đương WebForms.

Tôi rất vui khi di chuyển từ MVC v2 sang v3 và chuyển sang chế độ xem Dao cạo. Vì vậy, tôi sẽ? Tôi nếu tôi là bạn và tôi đã có thời gian, tôi sẽ làm điều đó.

Đây là câu hỏi tôi đã đăng để phác thảo quy trình và một trong những vấn đề quan trọng hơn tôi có trong chuyển đổi. Migrating legacy ASP.NET to MVC 2 (RC): HttpApplication events not firing, User principal is null

+0

Dự án này là một dự án cá nhân là một mạng lưới khá lớn, là đường cong học tập lớn nhất trong sự nghiệp của tôi. Tất cả mọi thứ tôi đã học được tại nơi làm việc, tôi đã về nhà và thực hiện hoặc thậm chí thiết kế lại dự án này để được tốt hơn. Thời gian không phải là một vấn đề về điều này vì không có thời hạn, cũng như tôi không được trả tiền cho nó. Một điều mà (một lần!) Dường như mang lại lợi ích cho tôi ở đây là tôi có xu hướng thích viết lại bánh xe - vì vậy tôi sử dụng ORM của riêng mình (đây sẽ là mô hình?), UserControls (Chế độ xem và Bộ điều khiển?), Đăng nhập/Khung đăng ký, khung API RESTful. – Connell

+1

Bạn sẽ thích làm việc với MVC, tôi nghĩ vậy. Đó là một vụ nổ nghiêm trọng. Tôi ghét WebForms ngay từ đầu (nhưng lại yêu thích kiến ​​trúc của ASP.NET), và tôi cảm thấy bạn đang làm điều "tái phát minh ra bánh xe". – HackedByChinese

3

Gần đây tôi đã chuyển đổi dự án có kích thước trung bình từ WebForms sang MVC. Tôi sẽ không khuyên bạn nên làm điều đó trên dự án MVC đầu tiên của bạn, nhưng một khi bạn nhận được hang của nó có thực sự là không có gì ngăn cản bạn từ (dần dần) chuyển đổi một ứng dụng WebForms để MVC.

Một trong những lợi ích chính mà tôi nhận thấy là tốc độ. Bằng cách ném ra khỏi viewstate, databinding và kiểm soát web weirdness bạn sẽ kết thúc với một ứng dụng nhanh hơn nhiều.

Tất nhiên, cũng có những lợi ích nổi tiếng hơn như kiểm tra và kiểm soát hoàn toàn html được tạo.

WebForms và MVC chia sẻ cùng một nền tảng ASP.NET cơ bản, vì vậy chúng thực sự không tương thích như bạn đã đọc.

+0

Kiểm soát hoàn toàn người dùng đối với HTML được tạo sẽ rất tuyệt. Tôi bị bệnh khi đưa vào 'chuỗi ghi đè ClientID {get {return ID; }} 'trong UserControls của tôi! – Connell

Các vấn đề liên quan