2010年10月9日 星期六

Silverlight的應用程式與網站不同的地方

在建立新的Silverlight瀏覽應用程式時,必須要選擇使用ASP.NET Web 應用程式專案或是ASP.NET 網站。我們這邊來比較這兩者有什麼不同的地方。

0001-438x254

.sln ==> ASP.NET 網站 增加以下設定

  1: 	ProjectSection(WebsiteProperties) = preProject
  2: 		TargetFramework = "3.5"
  3: 		Debug.AspNetCompiler.VirtualPath = "/SilverlightWCFDemo.Web"
  4: 		Debug.AspNetCompiler.PhysicalPath = "SilverlightWCFDemo.Web\"
  5: 		Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\SilverlightWCFDemo.Web\"
  6: 		Debug.AspNetCompiler.Updateable = "true"
  7: 		Debug.AspNetCompiler.ForceOverwrite = "true"
  8: 		Debug.AspNetCompiler.FixedNames = "false"
  9: 		Debug.AspNetCompiler.Debug = "True"
 10: 		Release.AspNetCompiler.VirtualPath = "/SilverlightWCFDemo.Web"
 11: 		Release.AspNetCompiler.PhysicalPath = "SilverlightWCFDemo.Web\"
 12: 		Release.AspNetCompiler.TargetPath = "PrecompiledWeb\SilverlightWCFDemo.Web\"
 13: 		Release.AspNetCompiler.Updateable = "true"
 14: 		Release.AspNetCompiler.ForceOverwrite = "true"
 15: 		Release.AspNetCompiler.FixedNames = "false"
 16: 		Release.AspNetCompiler.Debug = "False"
 17: 		VWDPort = "24329"
 18: 		DefaultWebSiteLanguage = "Visual C#"
 19: 		ProjOutputReferences = "{15012D19-EC5F-4E9D-9C93-EF41083152E8}|ClientBin|false;"
 20: 	EndProjectSection

web.config ==> ASP.NET 網站 增加了vb 的設定

  1:     <system.codedom>
  2:       <compilers>
  3:         <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4"
  4:                   type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
  5:           <providerOption name="CompilerVersion" value="v3.5"/>
  6:           <providerOption name="OptionInfer" value="true"/>
  7:           <providerOption name="WarnAsError" value="false"/>
  8:         </compiler>
  9:       </compilers>
 10:     </system.codedom>

Default.aspx ==> 網站用CodeFile;應用程式用CodeBehind,並配合Namespace使用


ASP.NET 網站

  1: <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

ASP.NET Web 應用程式專案

  1: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="SilverlightWCFDemo.Web._Default" %>

Default.aspx.cs


ASP.NET 網站

  1: public partial class _Default : System.Web.UI.Page 
  2: {
  3:     protected void Page_Load(object sender, EventArgs e)
  4:     {
  5: 
  6:     }
  7: }

ASP.NET Web 應用程式專案

  1: namespace SilverlightWCFDemo.Web
  2: {
  3:     public partial class _Default : System.Web.UI.Page
  4:     {
  5:         protected void Page_Load(object sender, EventArgs e)
  6:         {
  7: 
  8:         }
  9:     }
 10: }

結論:


建議以ASP.NET 網站來建置新的Silverlight網站,以獲得完整的設定描述,並運用ASP.NET Web 應用程式專案的繼承方式,以方便對網站做模組化應用。


如果使用MasterPage來建立網站,又沒有使用Namespace的繼承方式,那在使用使用者控制項(User Control)時,就不能夠繼承UserControl類別了。


參考資料:


沒有留言:

張貼留言