SlideShare ist ein Scribd-Unternehmen logo
1 von 7
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
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”
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
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 )
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.
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
 http://www.hanselman.com/blog/IntegratingASPNETMVC3IntoExistingUpgrade
dASPNET4WebFormsApplications.aspx

Weitere ähnliche Inhalte

Was ist angesagt?

Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Hướng dẫn lập trình với SCSF phần I (smart client software factory)Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Hướng dẫn lập trình với SCSF phần I (smart client software factory)Minh Tri Lam
 
Migrate mailbox từ exchange server 2007 2010 sang exchange server 2013 phần 2
Migrate mailbox từ exchange server 2007 2010 sang exchange server 2013 phần 2Migrate mailbox từ exchange server 2007 2010 sang exchange server 2013 phần 2
Migrate mailbox từ exchange server 2007 2010 sang exchange server 2013 phần 2laonap166
 
ASP.NET basic
ASP.NET basicASP.NET basic
ASP.NET basicmeocon21
 
Cài đặt exchange server 2013 cùng domain với exchange server 2007
Cài đặt exchange server 2013 cùng domain với exchange server 2007Cài đặt exchange server 2013 cùng domain với exchange server 2007
Cài đặt exchange server 2013 cùng domain với exchange server 2007laonap166
 
Báo cáo thực tập hàng tuần
Báo cáo thực tập hàng tuầnBáo cáo thực tập hàng tuần
Báo cáo thực tập hàng tuầnlan huynh
 
Báo cáo thực tập Tuần 1
Báo cáo thực tập Tuần 1Báo cáo thực tập Tuần 1
Báo cáo thực tập Tuần 1vuhosking
 
Giao trinh asp.ne_tvoi_csharp
Giao trinh asp.ne_tvoi_csharpGiao trinh asp.ne_tvoi_csharp
Giao trinh asp.ne_tvoi_csharpngohanty13
 
SQL SERVER BUSINESS INTELLIGENCE & WINDOWS SERVICE
SQL SERVER BUSINESS INTELLIGENCE  & WINDOWS SERVICESQL SERVER BUSINESS INTELLIGENCE  & WINDOWS SERVICE
SQL SERVER BUSINESS INTELLIGENCE & WINDOWS SERVICEMinh Tri Lam
 
Lập trình web asp.net MVC
Lập trình web asp.net MVCLập trình web asp.net MVC
Lập trình web asp.net MVCMasterCode.vn
 
Mô hình MVC trong lập trình web với Java
Mô hình MVC trong lập trình web với JavaMô hình MVC trong lập trình web với Java
Mô hình MVC trong lập trình web với JavaHuy Vũ
 
Cài đặt exchange 2013 trên windows server 2008 r2
Cài đặt exchange 2013 trên windows server 2008 r2Cài đặt exchange 2013 trên windows server 2008 r2
Cài đặt exchange 2013 trên windows server 2008 r2laonap166
 
Mô hình mvc trong ASP
Mô hình mvc trong ASPMô hình mvc trong ASP
Mô hình mvc trong ASPHannie Mia
 
Bao cao thuc tap tuan 5
Bao cao thuc tap tuan 5Bao cao thuc tap tuan 5
Bao cao thuc tap tuan 5Thanh Tuan Ngo
 
Quản trị exchange server 2010 phan 3
Quản trị exchange server 2010 phan 3Quản trị exchange server 2010 phan 3
Quản trị exchange server 2010 phan 3laonap166
 
Cài đặt exchange server 2013
Cài đặt exchange server 2013Cài đặt exchange server 2013
Cài đặt exchange server 2013laonap166
 
Quản trị exchange server 2010 phan 4
Quản trị exchange server 2010 phan 4Quản trị exchange server 2010 phan 4
Quản trị exchange server 2010 phan 4laonap166
 
Quản trị exchange server 2010 phan 1
Quản trị exchange server 2010 phan 1Quản trị exchange server 2010 phan 1
Quản trị exchange server 2010 phan 1laonap166
 

Was ist angesagt? (20)

Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Hướng dẫn lập trình với SCSF phần I (smart client software factory)Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Hướng dẫn lập trình với SCSF phần I (smart client software factory)
 
Migrate mailbox từ exchange server 2007 2010 sang exchange server 2013 phần 2
Migrate mailbox từ exchange server 2007 2010 sang exchange server 2013 phần 2Migrate mailbox từ exchange server 2007 2010 sang exchange server 2013 phần 2
Migrate mailbox từ exchange server 2007 2010 sang exchange server 2013 phần 2
 
ASP.NET basic
ASP.NET basicASP.NET basic
ASP.NET basic
 
Cài đặt exchange server 2013 cùng domain với exchange server 2007
Cài đặt exchange server 2013 cùng domain với exchange server 2007Cài đặt exchange server 2013 cùng domain với exchange server 2007
Cài đặt exchange server 2013 cùng domain với exchange server 2007
 
Mvc 3
Mvc 3Mvc 3
Mvc 3
 
Báo cáo thực tập hàng tuần
Báo cáo thực tập hàng tuầnBáo cáo thực tập hàng tuần
Báo cáo thực tập hàng tuần
 
access
accessaccess
access
 
Báo cáo thực tập Tuần 1
Báo cáo thực tập Tuần 1Báo cáo thực tập Tuần 1
Báo cáo thực tập Tuần 1
 
Giao trinh asp.ne_tvoi_csharp
Giao trinh asp.ne_tvoi_csharpGiao trinh asp.ne_tvoi_csharp
Giao trinh asp.ne_tvoi_csharp
 
SQL SERVER BUSINESS INTELLIGENCE & WINDOWS SERVICE
SQL SERVER BUSINESS INTELLIGENCE  & WINDOWS SERVICESQL SERVER BUSINESS INTELLIGENCE  & WINDOWS SERVICE
SQL SERVER BUSINESS INTELLIGENCE & WINDOWS SERVICE
 
Lập trình web asp.net MVC
Lập trình web asp.net MVCLập trình web asp.net MVC
Lập trình web asp.net MVC
 
Mô hình MVC trong lập trình web với Java
Mô hình MVC trong lập trình web với JavaMô hình MVC trong lập trình web với Java
Mô hình MVC trong lập trình web với Java
 
Cài đặt exchange 2013 trên windows server 2008 r2
Cài đặt exchange 2013 trên windows server 2008 r2Cài đặt exchange 2013 trên windows server 2008 r2
Cài đặt exchange 2013 trên windows server 2008 r2
 
Mô hình mvc trong ASP
Mô hình mvc trong ASPMô hình mvc trong ASP
Mô hình mvc trong ASP
 
Bao cao thuc tap tuan 5
Bao cao thuc tap tuan 5Bao cao thuc tap tuan 5
Bao cao thuc tap tuan 5
 
Tu hoc SQL 2000
Tu hoc SQL 2000Tu hoc SQL 2000
Tu hoc SQL 2000
 
Quản trị exchange server 2010 phan 3
Quản trị exchange server 2010 phan 3Quản trị exchange server 2010 phan 3
Quản trị exchange server 2010 phan 3
 
Cài đặt exchange server 2013
Cài đặt exchange server 2013Cài đặt exchange server 2013
Cài đặt exchange server 2013
 
Quản trị exchange server 2010 phan 4
Quản trị exchange server 2010 phan 4Quản trị exchange server 2010 phan 4
Quản trị exchange server 2010 phan 4
 
Quản trị exchange server 2010 phan 1
Quản trị exchange server 2010 phan 1Quản trị exchange server 2010 phan 1
Quản trị exchange server 2010 phan 1
 

Andere mochten auch

ADO .NET Entity framework
ADO .NET Entity frameworkADO .NET Entity framework
ADO .NET Entity frameworkMinh Tri Lam
 
KHẢO SÁT NHU CẦU QUẢN LÝ SỬ DỤNG VÀ CHIA SẺ TÀI NGUYÊN SỐ
KHẢO SÁT NHU CẦU QUẢN LÝ SỬ DỤNG VÀ CHIA SẺ TÀI NGUYÊN SỐKHẢO SÁT NHU CẦU QUẢN LÝ SỬ DỤNG VÀ CHIA SẺ TÀI NGUYÊN SỐ
KHẢO SÁT NHU CẦU QUẢN LÝ SỬ DỤNG VÀ CHIA SẺ TÀI NGUYÊN SỐMinh Tri Lam
 
Jenkins (Continuous Integration System with Jenkins)
Jenkins (Continuous Integration System with Jenkins)Jenkins (Continuous Integration System with Jenkins)
Jenkins (Continuous Integration System with Jenkins)Minh Tri Lam
 
Vai trò của Jenkins trong mô hình phát triển phần mềm Agile
Vai trò của Jenkins trong mô hình phát triển phần mềm AgileVai trò của Jenkins trong mô hình phát triển phần mềm Agile
Vai trò của Jenkins trong mô hình phát triển phần mềm AgileMinh Tri Lam
 
Digital library opensource
Digital library opensourceDigital library opensource
Digital library opensourceMinh Tri Lam
 
Secure coding guide lines (Web Sercurity)
Secure coding guide lines (Web Sercurity)Secure coding guide lines (Web Sercurity)
Secure coding guide lines (Web Sercurity)Minh Tri Lam
 
Joomla CMS framework (1.6 - Old version)
Joomla CMS framework (1.6 - Old version) Joomla CMS framework (1.6 - Old version)
Joomla CMS framework (1.6 - Old version) Minh Tri Lam
 
Digital library standard and technology
Digital library standard and technologyDigital library standard and technology
Digital library standard and technologyMinh Tri Lam
 
SINGLE SIGN ON (SSO) WITH SECURITY ASSERTION MAKUP LANGUAGE (SAML)
SINGLE SIGN ON (SSO)  WITH SECURITY ASSERTION  MAKUP LANGUAGE (SAML)SINGLE SIGN ON (SSO)  WITH SECURITY ASSERTION  MAKUP LANGUAGE (SAML)
SINGLE SIGN ON (SSO) WITH SECURITY ASSERTION MAKUP LANGUAGE (SAML)Minh Tri Lam
 
Rail Transportation Of Ethanol: Will There Be Enough Capacity?
Rail Transportation Of Ethanol: Will There Be Enough Capacity?Rail Transportation Of Ethanol: Will There Be Enough Capacity?
Rail Transportation Of Ethanol: Will There Be Enough Capacity?John Schmitter
 
Mole nikh
Mole nikhMole nikh
Mole nikhnirap61
 
Luke Sanford " A Closer Look In How Luke Communication" 2010
Luke Sanford " A Closer Look In How Luke Communication" 2010 Luke Sanford " A Closer Look In How Luke Communication" 2010
Luke Sanford " A Closer Look In How Luke Communication" 2010 LukeFinlaySanford
 
Reglamento inspecciones vehiculares_version_final (1)
Reglamento inspecciones vehiculares_version_final (1)Reglamento inspecciones vehiculares_version_final (1)
Reglamento inspecciones vehiculares_version_final (1)Naida Labra
 
Rural urban Fringe Presentation to Malmo
Rural urban Fringe Presentation to Malmo Rural urban Fringe Presentation to Malmo
Rural urban Fringe Presentation to Malmo ruralfringe
 
Estadística i pensament crític a la vida diària
Estadística i pensament crític a la vida diàriaEstadística i pensament crític a la vida diària
Estadística i pensament crític a la vida diàriaUniversitat de Barcelona
 

Andere mochten auch (20)

ADO .NET Entity framework
ADO .NET Entity frameworkADO .NET Entity framework
ADO .NET Entity framework
 
KHẢO SÁT NHU CẦU QUẢN LÝ SỬ DỤNG VÀ CHIA SẺ TÀI NGUYÊN SỐ
KHẢO SÁT NHU CẦU QUẢN LÝ SỬ DỤNG VÀ CHIA SẺ TÀI NGUYÊN SỐKHẢO SÁT NHU CẦU QUẢN LÝ SỬ DỤNG VÀ CHIA SẺ TÀI NGUYÊN SỐ
KHẢO SÁT NHU CẦU QUẢN LÝ SỬ DỤNG VÀ CHIA SẺ TÀI NGUYÊN SỐ
 
Jenkins (Continuous Integration System with Jenkins)
Jenkins (Continuous Integration System with Jenkins)Jenkins (Continuous Integration System with Jenkins)
Jenkins (Continuous Integration System with Jenkins)
 
Vai trò của Jenkins trong mô hình phát triển phần mềm Agile
Vai trò của Jenkins trong mô hình phát triển phần mềm AgileVai trò của Jenkins trong mô hình phát triển phần mềm Agile
Vai trò của Jenkins trong mô hình phát triển phần mềm Agile
 
Digital library opensource
Digital library opensourceDigital library opensource
Digital library opensource
 
Secure coding guide lines (Web Sercurity)
Secure coding guide lines (Web Sercurity)Secure coding guide lines (Web Sercurity)
Secure coding guide lines (Web Sercurity)
 
Joomla CMS framework (1.6 - Old version)
Joomla CMS framework (1.6 - Old version) Joomla CMS framework (1.6 - Old version)
Joomla CMS framework (1.6 - Old version)
 
Digital library standard and technology
Digital library standard and technologyDigital library standard and technology
Digital library standard and technology
 
SINGLE SIGN ON (SSO) WITH SECURITY ASSERTION MAKUP LANGUAGE (SAML)
SINGLE SIGN ON (SSO)  WITH SECURITY ASSERTION  MAKUP LANGUAGE (SAML)SINGLE SIGN ON (SSO)  WITH SECURITY ASSERTION  MAKUP LANGUAGE (SAML)
SINGLE SIGN ON (SSO) WITH SECURITY ASSERTION MAKUP LANGUAGE (SAML)
 
Rail Transportation Of Ethanol: Will There Be Enough Capacity?
Rail Transportation Of Ethanol: Will There Be Enough Capacity?Rail Transportation Of Ethanol: Will There Be Enough Capacity?
Rail Transportation Of Ethanol: Will There Be Enough Capacity?
 
Glb varshets-nasko
Glb varshets-naskoGlb varshets-nasko
Glb varshets-nasko
 
Folhas anatomia
Folhas   anatomiaFolhas   anatomia
Folhas anatomia
 
Mole nikh
Mole nikhMole nikh
Mole nikh
 
Ciao
CiaoCiao
Ciao
 
Luke Sanford " A Closer Look In How Luke Communication" 2010
Luke Sanford " A Closer Look In How Luke Communication" 2010 Luke Sanford " A Closer Look In How Luke Communication" 2010
Luke Sanford " A Closer Look In How Luke Communication" 2010
 
Reglamento inspecciones vehiculares_version_final (1)
Reglamento inspecciones vehiculares_version_final (1)Reglamento inspecciones vehiculares_version_final (1)
Reglamento inspecciones vehiculares_version_final (1)
 
Rural urban Fringe Presentation to Malmo
Rural urban Fringe Presentation to Malmo Rural urban Fringe Presentation to Malmo
Rural urban Fringe Presentation to Malmo
 
Bash script final
Bash script finalBash script final
Bash script final
 
Glb varshets-nasko
Glb varshets-naskoGlb varshets-nasko
Glb varshets-nasko
 
Estadística i pensament crític a la vida diària
Estadística i pensament crític a la vida diàriaEstadística i pensament crític a la vida diària
Estadística i pensament crític a la vida diària
 

Ähnlich wie Mixing asp.net mvc & web form into hybrid project

[Athena] Nguyễn Nhật Nguyên - Báo cáo thực tập
[Athena] Nguyễn Nhật Nguyên - Báo cáo thực tập[Athena] Nguyễn Nhật Nguyên - Báo cáo thực tập
[Athena] Nguyễn Nhật Nguyên - Báo cáo thực tậpnnn4194a
 
Devexpress cho asp.net
Devexpress cho asp.netDevexpress cho asp.net
Devexpress cho asp.netthichxoidau
 
Asp net mvc3 music store egroups vn
Asp net mvc3 music store   egroups vnAsp net mvc3 music store   egroups vn
Asp net mvc3 music store egroups vnNguyen Van Hung
 
01 chuong01tongquanveasp netmvc5
01 chuong01tongquanveasp netmvc501 chuong01tongquanveasp netmvc5
01 chuong01tongquanveasp netmvc5Thanh Nguyen
 
Jdeveloper12c
Jdeveloper12cJdeveloper12c
Jdeveloper12cle larry
 
Control builder
Control builderControl builder
Control builderquanglocbp
 
Bai giangvb.net
Bai giangvb.netBai giangvb.net
Bai giangvb.netvvpcdsptin
 
Giao trinh autodesk inventor 2014
Giao trinh autodesk inventor 2014Giao trinh autodesk inventor 2014
Giao trinh autodesk inventor 2014Phi Phi
 
Giao trinh autodesk inventor 2014
Giao trinh autodesk inventor 2014Giao trinh autodesk inventor 2014
Giao trinh autodesk inventor 2014Đức Lưu
 
Về Visual Basic 20 5
Về Visual Basic 20 5Về Visual Basic 20 5
Về Visual Basic 20 5Phong Lữ
 
Giáo trình tổng quan về Vb
Giáo trình tổng quan về VbGiáo trình tổng quan về Vb
Giáo trình tổng quan về VbSun Down
 
Hướng dẫn lập trình với visual basic
Hướng dẫn lập trình với visual basicHướng dẫn lập trình với visual basic
Hướng dẫn lập trình với visual basicnataliej4
 
Change password user ad 2k8r2 by web
Change password user ad 2k8r2 by webChange password user ad 2k8r2 by web
Change password user ad 2k8r2 by weblaonap166
 
My sql part 2 - manager mysql server - backup & restore database
My sql   part 2 - manager mysql server - backup & restore databaseMy sql   part 2 - manager mysql server - backup & restore database
My sql part 2 - manager mysql server - backup & restore databaselaonap166
 
MVC
MVCMVC
MVCtkot
 
Part 14 software deloyment -www.key4_vip.info
Part 14   software deloyment -www.key4_vip.infoPart 14   software deloyment -www.key4_vip.info
Part 14 software deloyment -www.key4_vip.infolaonap166
 
Giáo trình Borland C++ Builder - Lê Xuân Thạch_965931.pdf
Giáo trình Borland C++ Builder - Lê Xuân Thạch_965931.pdfGiáo trình Borland C++ Builder - Lê Xuân Thạch_965931.pdf
Giáo trình Borland C++ Builder - Lê Xuân Thạch_965931.pdfHoio3
 

Ähnlich wie Mixing asp.net mvc & web form into hybrid project (20)

[Athena] Nguyễn Nhật Nguyên - Báo cáo thực tập
[Athena] Nguyễn Nhật Nguyên - Báo cáo thực tập[Athena] Nguyễn Nhật Nguyên - Báo cáo thực tập
[Athena] Nguyễn Nhật Nguyên - Báo cáo thực tập
 
Devexpress cho asp.net
Devexpress cho asp.netDevexpress cho asp.net
Devexpress cho asp.net
 
Asp net mvc3 music store egroups vn
Asp net mvc3 music store   egroups vnAsp net mvc3 music store   egroups vn
Asp net mvc3 music store egroups vn
 
01 chuong01tongquanveasp netmvc5
01 chuong01tongquanveasp netmvc501 chuong01tongquanveasp netmvc5
01 chuong01tongquanveasp netmvc5
 
Jdeveloper12c
Jdeveloper12cJdeveloper12c
Jdeveloper12c
 
Asp.net 3.5 _7
Asp.net 3.5 _7Asp.net 3.5 _7
Asp.net 3.5 _7
 
Control builder
Control builderControl builder
Control builder
 
Asp.net 3.5 _8
Asp.net 3.5 _8Asp.net 3.5 _8
Asp.net 3.5 _8
 
Bai giangvb.net
Bai giangvb.netBai giangvb.net
Bai giangvb.net
 
Giao trinh autodesk inventor 2014
Giao trinh autodesk inventor 2014Giao trinh autodesk inventor 2014
Giao trinh autodesk inventor 2014
 
Giao trinh autodesk inventor 2014
Giao trinh autodesk inventor 2014Giao trinh autodesk inventor 2014
Giao trinh autodesk inventor 2014
 
Về Visual Basic 20 5
Về Visual Basic 20 5Về Visual Basic 20 5
Về Visual Basic 20 5
 
Giáo trình tổng quan về Vb
Giáo trình tổng quan về VbGiáo trình tổng quan về Vb
Giáo trình tổng quan về Vb
 
Hướng dẫn lập trình với visual basic
Hướng dẫn lập trình với visual basicHướng dẫn lập trình với visual basic
Hướng dẫn lập trình với visual basic
 
Change password user ad 2k8r2 by web
Change password user ad 2k8r2 by webChange password user ad 2k8r2 by web
Change password user ad 2k8r2 by web
 
Chuong3
Chuong3Chuong3
Chuong3
 
My sql part 2 - manager mysql server - backup & restore database
My sql   part 2 - manager mysql server - backup & restore databaseMy sql   part 2 - manager mysql server - backup & restore database
My sql part 2 - manager mysql server - backup & restore database
 
MVC
MVCMVC
MVC
 
Part 14 software deloyment -www.key4_vip.info
Part 14   software deloyment -www.key4_vip.infoPart 14   software deloyment -www.key4_vip.info
Part 14 software deloyment -www.key4_vip.info
 
Giáo trình Borland C++ Builder - Lê Xuân Thạch_965931.pdf
Giáo trình Borland C++ Builder - Lê Xuân Thạch_965931.pdfGiáo trình Borland C++ Builder - Lê Xuân Thạch_965931.pdf
Giáo trình Borland C++ Builder - Lê Xuân Thạch_965931.pdf
 

Mixing asp.net mvc & web form into hybrid project

  • 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. 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. 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. 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. 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. 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