Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Mixing asp.net mvc & web form into hybrid project

817 views

Published on

Running asp.net mvc & asp.net web form in one project
.net hybrid project, hybrid project, mixing asp.net mvc, web form, all in one asp.net, lap trinh asp.net, hybrid web application

Published in: Software
  • Be the first to comment

Mixing asp.net mvc & web form into hybrid project

  1. 1. MIXING ASP.NET MVC & WEB FORM (minhtri.itp@gmail.com) I. MỤC ĐÍCH............................................................................................................................. 2 II. CÀI ĐẶT ................................................................................................................................ 2 A. YÊU CẦU HỆ THỐNG ............................................................................................... 2 B. CÀI ĐẶT & CẤU HÌNH.............................................................................................. 2 III. VẤN ĐỀ KHI TÍCH HỢP................................................................................................... 6 IV. THAM KHẢO ..................................................................................................................... 6
  2. 2. I. MỤC ĐÍCH  Bạn đã có một ứng dụng web đang chạy tốt trên nền tảng ASP.NET Webform của Microsoft. Bạn muốn phát triển những tính năng mới cho ứng dụng này với công nghệ mới hơn đó là ASP.NET MVC? Vấn đề gặp phải là bạn không thể bỏ đi tất cả source code đã có từ ứng dụng Webform (vì ứng dụng đang chạy ổn định và phải mất rất nhiều thời gian và công sức thì mới có thể xây dựng lại một ứng dụng tương tự như vậy ngay từ đầu với công nghệ ASP.NET MVC, đó là chưa kể đến việc bạn đã sử dụng một số component (dll) chỉ tương thích cho webform và không thể nào được trên ASP.NET MVC)  Tài liệu này sẽ hướng dẫn cách tích hợp ứng dụng web với 2 công nghệ ASP.NET webform và ASP.NET MVC trong cùng một projecthybrid (lai) có thể chạy được cả hai công nghệ này trong một ứng dụng web.  Mục đích tái sử dụng code từ các ứng dụng web có sẳn. II. CÀI ĐẶT A. YÊU CẦU HỆ THỐNG  Visual Studio 2010 SP1  Net Framework 4.0 +  ASP.NET MVC3 B. CÀI ĐẶT& CẤU HÌNH  Để thực hiện cài đặt trước hết cần phải cài đặt trước các ứng dụng theo yêu cầu hệ thống ở trên. 1. Tại solution chứa source của ASP.Net Webform Tạo ASP.Net 4.0 empty project Copy toàn bộ source của webform vào project vừa tạo Include tất cả các file mới copy vào project Reference các dll sử dụng của webform vào project mới(lưu ý đối với các dll của thư viện netoffice chúng ta cần phải set lại thuộc tính Embed Interop Types = false) Convert code vừa include vào sang Web Application bằng cách click chuột phải vào project và chọn “Convert to Web Application”
  3. 3. Sau khi Convert xong build lại project và giải quyết các lỗi nếu có (EX: remove design code file đã được định nghĩa trước, thiếu reference,..) Đổi class ReportCommonExport (Worksheets to Worksheet) Thêm vào file Web.config các dòng sau bên trong thẻ <system.web> <pages> <namespaces> <add namespace="System.Web.Helpers" /> <add namespace="System.Web.Mvc" /> <add namespace="System.Web.Mvc.Ajax" /> <add namespace="System.Web.Mvc.Html" /> <add namespace="System.Web.Routing" /> <add namespace="System.Web.WebPages"/> </namespaces> < /pages> Mở của sổ package library lên và thực hiện cài đặt 2 gói AddMvc3ToWebForms và TelerikMvcExtensions
  4. 4. Chúng ta sẽ mở của sổ Package Manager Console để tiến hành cài đặt AddMvc3ToWebForms. Tiếp theo chọn menu tool->Library Package Manager -> Package Manager Console. Thực hiện theo hình minh họa sau (Hình minh họa chọn Package Manager Console để cài đặt AddMvc3ToWebForms) Sau khi cửa sổ Package Manager Console được mở chúng ta chọn project cần cài đạt Nunit gõ lệnh PM> Install-Package AddMvc3ToWebForms để tiến hành cài đặt NUnit (Hình minh họa cài đặt AddMvc3ToWebForms )
  5. 5. Việc cài đặt TelerikMvcExtensions được thực hiện tương tự. 2. Hiệu chỉnh file Global.asax. Do file Global.asax. của project cũ không đúng cấu trúc nên chúng ta phải tạo lại file Global.asax bằng cách sau: Đổi tên file Global.asax cũ. Tạo mới file Global.asax Copy nội dung trong file Global.asax cũ vào file Global.asax mới. Tiếp theo reference mvc vào file Global.asax (using System.Web.Mvc;using System.Web.Routing;) Tiếp theo chúng ta cần đăng ký route và filter trong file Global.asax bằng cách thêm vào phương thức sau: public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defa ults ); } Tiếp theo tìm đến phương thức void Application_Start(object sender, EventArgs e) và copy nội dung file nội dung trong phương thức này trong mvc project vào project mới. 3. Hiệu chỉnh project vừa tạo sang mvc project. Để tạo mới được các view, model, controller trong project vừa tạo chúng ta cần chuyển loại project sang mvc bằng cách click chuột phải vào project chọn Unload. Tiếp theo đó click chuột phải vào project vừa unload project chọn edit. Tìm đến tag ProjectGuid và thay thế bằng đoạn code sau đây: <ProjectGuid>{0A185973-711F-4E45-8341-5738AFEB9195}</ProjectGuid> <ProjectTypeGuids>{E53F8FEA-EAE0-44A6-8774-FFD645390401};{349c5851-65df-11da-9384- 00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids> Tiếp theo click chuột phải vào project và chọn Reload project.
  6. 6. 4. Copy source từ MVC solution sang WebForm solution Click chuột phải vào WebForm solution (mix solution) chọn add Existing Project tiếp theo đó chọn project cần add từ MVC solution qua. Add reference các dll còn thiếu như (AutoMap, EntityFramework, …) Remove các file design từ App_Reource vì WebForm solution sẽ không dịch được các file này khi chép từ MVC solution vào. Sau khi hoàn thành hết các bước trên thực hiện build lại project và sửa các lỗi xung đột code nếu có. Đến bước này việc tích hợp các chức năng từ MVC solution vào WebForm solution đã hoàn thành. Hãy thưởng thức thành quả của việc tích hợp! III. VẤN ĐỀ KHI TÍCH HỢP Phải reference lại các webservices của WebForm solution Hiệu chỉnh lại layout của MVC solution cho tương thích với WebForm solution. Hiệu chỉnh lại luồng kiểm tra quyền cho tương thích giữa WebForm solution và MVC solution . Hiệu chỉnh cấu trúc link trên menu theo từng chức năng sử dụng webform hoặc sử dụng MVC. IV. THAM KHẢO  http://geekswithblogs.net/ranganh/archive/2011/03/24/adding-mvc-3-features-to- an-existing-asp.net-web-forms-again.aspx  http://www.hanselman.com/blog/CreatingANuGetPackageIn7EasyStepsPlusUsin gNuGetToIntegrateASPNETMVC3IntoExistingWebFormsApplications.aspx  http://www.packtpub.com/article/mixing-asp.net-webforms-and-asp.net-mvc  http://www.britishdeveloper.co.uk/2011/05/convert-web-forms-mvc3-how- to.html
  7. 7.  http://www.hanselman.com/blog/IntegratingASPNETMVC3IntoExistingUpgrade dASPNET4WebFormsApplications.aspx

×