自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

全面介紹開發(fā)ASP.NET

開發(fā) 后端
本文全面介紹開發(fā)ASP.NET,很多人說C++無法開發(fā)ASP.NET,ANSI C++的確不能,但C++/CLI則可以,事實(shí)上,任何.NET下的語言都可以開發(fā)ASP.NET。

在Visual Studio .NET 2002剛出來時,我就曾經(jīng)聽過同事說過他用C++寫過ASP.NET,不過由于當(dāng)時才剛剛學(xué)C#,還不會C++,所以也沒問他是怎么寫的,一直到最近開始學(xué)C++,發(fā)現(xiàn)在Visual Studio 2005可以用C++/CLI開發(fā)Windows Form,但卻無法開發(fā)ASP.NET,實(shí)在令人遺憾。在網(wǎng)路上也只在Code Project談到在Visual Studio .NET 2002下用Managed C++寫ASP.NET(ASP.NET with Managed C++),但Managed C++和C++/CLI的語法不太一樣,原本的范例無法compile成功,經(jīng)過一段研究之后,終于找到了用C++/CLI撰寫ASP.NET的方式。在這篇文章中,我將一步步的介紹如何用C++/CLI開發(fā)ASP.NET程式。

Step 1:
建立Web Site
首先,建立一個新的Web Site,由于Visual Studio 2005在ASP.NET沒支持C++,所以建立Web Site時,先隨便選一個語言建立。

建立Web Site 

Step 2:
建立Web Form
建立一個Web Form名為HelloWorld.aspx,請不要選擇Place code in separate file,這樣Visual Studio 2005會將Event Handler放在aspx檔中,可以讓aspx.cpp省掉event宣告的程式。

建立Web Form 


Step 3:
加入GUI
使用Web Form Designer做出以下的介面。

使用Web Form Designer 

Step 4:
修改HelloWorld.aspx
在Page Directive部分,將Language=”C#”刪除,加上AutoEventWireup="true" Inherits="HelloWorld",HelloWord為C++的Class名稱。也要將<script runat="server"></script>部分刪除。

  1. <%@ Page AutoEventWireup="true" Inherits="HelloWorld" %> 
  2.  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
    > 
  4. <html xmlns="http://www.w3.org/1999/xhtml"> 
  5. <head runat="server"> 
  6. <title>Untitled Page</title> 
  7. </head> 
  8. <body> 
  9. <form id="form1" runat="server"> 
  10. <div> 
  11. Using C++/CLI in ASP.NET<br /> 
  12. <br /> 
  13. <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" /> 
  14. <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label></div> 
  15. </form> 
  16. </body> 
  17. </html> 

Step 5:
建立C++ project
在左側(cè)選擇CLR,此為.NET platform的Project,右側(cè)選擇CLR Empty Project即可,切記不要選擇Class Library,這樣會多出很多我們不需要的檔案,而且***我們也不會用Visual Studio 2005來compile ,會使用Command Prompt的方式compile。

選擇CLREmptyProject


Step 6:
建立HelloWorld.aspx.cpp。
左側(cè)選擇Code,右側(cè)選擇C++ File(.cpp)

建立HelloWorld 

Step 7:
加入C++/CLI程序
C++/CLI對ANSI C++做了些擴(kuò)充,為了和C++內(nèi)建的型別與Class做區(qū)別,Managed的Class需加上ref modifier,而Managed的Object要加上^。最重要的,IDE支援Intellisense方式寫ASP.NET。

C++/CLI / HelloWorld.aspx.cpp

  1. #using <system.dll> 
  2. #using <mscorlib.dll> 
  3. #using <system.web.dll> 
  4.    
  5. using namespace System;  
  6. using namespace System::Web::UI::WebControls;  
  7.    
  8. public ref class HelloWorld : public System::Web::UI::Page {  
  9. protected:  
  10. Button ^Button1;  
  11. Label ^Label1;  
  12.  
  13. public:  
  14. void Button1_Click(Object ^sender, EventArgs ^e) {  
  15. this->Label1->Text = "Hello World";  
  16. return;  
  17. }  
  18. }; 

Step 8:
編譯程式
使用Visual Studio 2005 Command Prompt編譯C++/CLI。

編譯C++/CLI

Step 9:
Deploymemt
***只要將HelloWorld.aspx放到c:\Inetpub\wwwroot\下,HelloWorld.dll放到c:\Inetpub\wwwroot\bin\下,就完成deployment。

Conclusion
很多人說C++無法開發(fā)ASP.NET,ISO C++的確不能,但C++/CLI則可以,事實(shí)上,任何.NET下的語言都可以開發(fā)ASP.NET,雖然Visual Studio 2005工具不見的支援,但只要透過一些小技巧,你依然可以用妳喜歡的.NET語言開發(fā)ASP.NET。

(01/27/2007更新)
這篇文章得到很大的回響,大概因?yàn)檫@是世界上***篇使用C++/CLI開發(fā)ASP.NET的討論,不過回到現(xiàn)實(shí),真的該用C++開發(fā)ASP.NET嗎?

老實(shí)說,C++/CLI開發(fā)ASP.NET真的比較麻煩,而且用C++/CLI在執(zhí)行速度也不會比C#快多少,實(shí)務(wù)上還是建議使用C#開發(fā)Web應(yīng)用程式,用C++開發(fā)系統(tǒng)程式(驅(qū)動程式,kernel..),畢竟兩者定位不同。

若你真的還是很堅(jiān)持非用C++不可,以下是我的建議:
采用多層式架構(gòu)
1.Presentation Layer : ASP.NET部分用C#寫,主要是Visual Studio 2005工具支援完整。
2.Business Layer / Data Access Layer:這里可以用C++/CLI寫,這里不牽涉到UI,只牽涉到邏輯和資料,你可以在這里盡情的發(fā)揮C++在OOP,STL,GP上的優(yōu)勢。
3.Database :這里還是要用SQL Server或Oracle。

我這篇文章,主要也是證明C++還是可以寫ASP.NET,但并沒有推薦大家一定要這樣寫,主要還是Visual Studio 2005的支援度不夠,寫起來不方便,若下一個版本Microsoft愿意讓Visual Studio直接支援C++/CLI開發(fā)ASP.NET,若你又是C++忠實(shí)信徒,那就真的推薦用C++開發(fā)ASP.NET了。

另外直得一題的是,C++要開發(fā)ASP.NET,用的是C++/CLI而非ISO C++,雖然C++/CLI包含了所有ISO C++,但還有一些闊充的語法,如pointer變成^, reference變成%...等,當(dāng)然C++/CLI也是相當(dāng)有趣的主題,值得一學(xué)。

【編輯推薦】

  1. ASP.NET開發(fā)技巧之Theme功能淺析
  2. 詳解ASP.NET動態(tài)編譯
  3. Apache支持ASP.NET方法淺析
  4. 淺談ASP.NET服務(wù)器標(biāo)準(zhǔn)控件
  5. ASP.NET中SQL Server數(shù)據(jù)庫備份恢復(fù)淺析
責(zé)任編輯:佚名 來源: 中國IT實(shí)驗(yàn)室
相關(guān)推薦

2009-07-29 10:35:51

ASP.NET緩存

2009-08-04 15:58:06

ASP.NET動態(tài)控件

2009-07-21 13:30:59

JSP技術(shù)ASP.NET

2012-09-18 11:02:10

ASP.NETC#Web Forms

2009-07-29 10:02:49

ASP.NET上傳

2009-07-29 09:14:36

ASP.NET網(wǎng)站

2009-07-21 10:40:36

ASP.NET Pro

2009-07-29 17:26:39

ASP.NET頁面

2009-07-23 14:17:41

2009-09-10 14:02:08

LINQ ASP.NE

2009-07-20 16:12:21

ASP.NET Fra

2009-07-27 17:00:29

ASP.NET主機(jī)

2009-07-28 17:41:54

ASP.NET工具

2009-08-19 09:23:40

ASP.NET Rou

2009-07-29 17:23:17

ASP.NET表單

2009-07-22 16:05:34

ASP.NET AJA

2009-08-03 17:35:07

ASP.NET WebASP.NET編程工具

2009-07-29 09:53:24

ASP.NET異常管理

2009-07-24 13:39:03

ASP.NET彈出窗口

2009-07-21 15:11:14

ASP.NET Rou
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號