2009-03-25 40 views
8

Tôi có một ứng dụng mà tôi muốn (cuối cùng) chuyển đổi sang ASP.NET MVC. Tôi muốn thực hiện nâng cấp dịch vụ toàn bộ (lên ASP.NET) nhưng muốn sử dụng công cụ asp hiện tại để chạy các chức năng hiện tại để tôi có thể nâng cấp các phần nhỏ trong khi thực hiện các nâng cấp gia tăng cho khung công tác mới. Trang web này phụ thuộc nhiều vào một DLL VB6 mà không phải là rất trưởng thành, vì vậy chúng tôi cũng sẽ muốn nâng cấp này cuối cùng quá, có khả năng thay thế các chức năng hiện tại với các dịch vụ web. Có sửa chữa nhanh hay nhiệm vụ này là nhiệm vụ 3 tháng + không? Ngoài ra, tôi chắc chắn nó đã được nghĩ đến trước, vẻ đẹp của MVC là tôi sẽ nghĩ rằng có một cách để giải quyết điều này, mặc dù tôi không chắc chắn về nơi để bắt đầu. Điều gì sẽ là cách nhanh nhất để chuyển đổi ứng dụng này (trong 40 hoặc hơn giờ), nơi tôi chỉ có thể thực hiện thay đổi cấu hình nhỏ và có làm việc này trong ASP.NET MVC?ASP cổ điển trong ASP.NET MVC (C#)

Trả lời

7

Câu trả lời ngắn gọn là ... Bạn không thể. Sự khác biệt giữa asp cổ điển và asp.net khá quyết liệt không chỉ bằng cú pháp mà còn trong thiết kế tổng thể. MVC không chỉ là một sự thực hiện tương tự với asp cổ điển mặc dù nó có thể trông như vậy. Mọi chuyển đổi sẽ mất thời gian, suy nghĩ và nỗ lực để làm cho nó hoàn toàn hoạt động.

Tin tốt là bạn có thể chạy chúng SxS để bạn có thể thực sự có mã asp cổ điển chạy dưới một trang được thiết lập dưới dạng trang ASP.NET MVC hoặc ASP.NET. Vì vậy, với một số băng keo bạn có thể cùng nhau chia sẻ phần giải pháp nâng cấp của bạn một phần.

+0

Tôi không muốn ngụ ý rằng tôi nghĩ chúng giống nhau bằng bất kỳ phương tiện nào. Cảm ơn bạn. Tôi có thể hỏi, ở bên cạnh tùy chọn, là có một cách mà chúng tôi có thể ngừng đăng ký DLL VB6 và làm cho nó nóng triển khai. –

+0

Theo như tôi biết bạn vẫn sẽ cần phải đăng ký DLL trừ khi bạn viết lại nó (ít nhất là xa như mã VB cổ điển là có liên quan). Với .NET, bạn có thể thoát khỏi việc tạo ra một interop và tham chiếu nó cục bộ mặc dù điều đó sẽ không giúp mã cổ điển phụ thuộc vào nó. –

3

Viết lại DLL VB6 của bạn dưới dạng hội đồng COM có thể gọi được. Sau đó, bạn có thể tham khảo cả hai từ ASP và ASP.NET.

Hy vọng rằng, phần lớn việc nâng hạng nặng nằm trong các DLL VB6. Nếu vậy, bạn có thể bắt đầu di chuyển các trang qua ASP.NET MVC như bạn muốn. Bạn phải chú ý đến việc truyền thông giữa các trang - những thứ như Session và Cookies. Cookies sẽ hoạt động khá nhiều, nhưng bạn sẽ cần phải chuyển Session sang thứ gì đó có thể chia sẻ giữa MVC và ASP như Sql Server. Thật không may, điều đó đòi hỏi phải viết lại các cuộc gọi Session của bạn trong ASP để một cái gì đó khác (có thể là một wrapper COM xung quanh thành phần .NET một lần nữa). Tuy nhiên, tìm kiếm và thay thế nên thực hiện thủ thuật.

Đối với dòng thời gian và số lượng công việc này đòi hỏi - đó là ngữ cảnh khá phụ thuộc vào số lượng spaghetti trong ứng dụng hiện tại của bạn, số lượng logic trong DLL so với ASP và số trang bạn đang di chuyển.

Tôi không nghĩ rằng 40 giờ là một khoảng thời gian hợp lý để tăng tốc với .NET, MVC và viết lại - mặc dù tôi nghĩ có thể là 2-3 tháng.

+0

tùy thuộc vào nhà phát triển, loại tài nguyên đào tạo họ có và cách "tăng tốc" mà họ cần để có được. tôi sẽ đẩy giới hạn trên lên 6-8 tháng –

2

Tôi đã làm việc trên một dự án tương tự trong một thời gian dài; Chúng tôi đã có một ứng dụng ASP cổ điển và muốn chuyển nó sang ASP.Net (sử dụng WebForms). Chúng tôi làm điều đó một mảnh tại một thời điểm, nếu chúng tôi đang thêm một trang mới, chúng tôi làm điều đó trong. Net và chỉ chuyển hướng người dùng giữa các tập tin .asp và .aspx. Làm việc với MVC sẽ không khác nhau.

Vấn đề lớn nhất mà chúng tôi gặp phải là bảo mật; Trang web yêu cầu đăng nhập và phiên này dĩ nhiên không được chia sẻ giữa hai trang. Chúng tôi xử lý điều này bằng cách kiên trì các bit của phiên mà chúng tôi quan tâm đến một bảng trong cơ sở dữ liệu và chuyển GUID qua chuỗi truy vấn (chúng tôi chỉ thực hiện lần này khi đăng nhập, sau đó xóa bản ghi khỏi cơ sở dữ liệu để giảm rủi ro bảo mật).

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