Jar*_*d S 5 c# asp.net webforms code-behind
我们当前的Web门户是一个来自经典ASP代码库的端口.目前,我们项目中的所有页面扩展了一个Page名为的自定义类PortalPage.它处理登录/注销,为User当前经过身份验证的用户提供对公共对象的访问,并将标准页眉和页脚添加到我们的所有页面.
我们网站中的每个页面都是100%在代码隐藏中设计的.根本不使用ASPX页面.每个div,img和文本块都被分配为一个对象并从C#函数中添加,即使它是完全静态的内容(我们有相当数量).
页眉的示例:
HtmlGenericControl wrapperDiv = new HtmlGeneric("div");
HtmlAnchor bannerLink = new HtmlAnchor();
HtmlImage banner = new HtmlImage();
bannerLink.HRef = "index.aspx";
banner.Src = "mybanner.png";
banner.Alt = "My Site";
bannerLink.Controls.Add(banner);
wrapperDiv.Controls.Add(bannerLink);
this.Page.Controls.Add(wrapperDiv);
Run Code Online (Sandbox Code Playgroud)
更糟糕的是,所有Javascript都被添加到页面中,作为字符串连接的巨大混乱:
ClientScript.RegisterClientScriptBlock(this.GetType(), "javascript", @"
<script language='javascript'>
fullUrl = '" + ConfigurationManager.AppSettings["fullUrl"].ToString() + @"';
function showModule()
{
$('#" + this.userModule.ClientID + @"').css('display','block');
$('#" + this.groupModule.ClientID + @"').css('display','none');
$('#" + this.listsModule.ClientID + @"').css('display','none');
$('#" + this.labelsModule.ClientID + @"').css('display','none');
}
Run Code Online (Sandbox Code Playgroud)
目前,我的一位同事正在争辩说,在代码隐藏中分配每个对象比使用我看到的每个其他Web应用程序使用的ASPX w/Codebehind方法快数百倍.这违背了我的直觉,因为它实际上是添加runat="server"到页面上的每一段HTML.
他还说所有专业商店都以这种方式编写代码,从不使用ASPX页面.他说,所有教科书和示例代码都使用ASPX页面,因为新手编程人员更容易理解.这是真的吗,还是我们只是为了传统而以极其低效的方式写作?
为了让我们切换到编写Web窗体的"标准"方式,我需要提供一些来源来证明他是错的.
我的问题是,我从来没有听说过其他人在代码隐藏中编写所有内容.我见过的每个例子都使用ASPX页面作为用户界面,并使用代码隐藏逻辑,数据库调用等.
总而言之:
1)ASPX页面是否真的比100%代码隐藏慢得多?
2)专业店实际上是否使用100%代码隐藏?
3)如果ASPX w/codebehind是要走的路,有没有人有任何可以帮助支持我的可信链接?
Ode*_*ded 12
.aspx被应用程序启动时加载一次,解析一次..aspx.测试此方法的一种方法是运行性能测试,其中两个.aspx页面完全相同.除了.aspx(解析和编译)可能的短启动延迟之外,我怀疑是否会检测到任何显着差异.
使用背后的所有代码是一种错过的方法:
我甚至不知道从哪里开始.
我不能谈论性能问题 - 但我已经研究了几十个和几十个WebForms应用程序,而且没有一个问题存在性能瓶颈与使用aspx页面有关的问题.
这听起来像是一场彻头彻尾的噩梦.
演示内容包含在aspx中.
事件处理程序进入代码隐藏
业务逻辑完全属于一个单独的类.
| 归档时间: |
|
| 查看次数: |
387 次 |
| 最近记录: |