当前位置:  开发笔记 > 编程语言 > 正文

构建ASP.NET应用程序 - 最佳实践

如何解决《构建ASP.NET应用程序-最佳实践》经验,为你挑选了3个好方法。

我们正在构建一个ASP.NET应用程序,并希望遵循最佳实践.一些最佳实践是:


服务器端代码:

使用catch块来捕获和记录低级错误.

使用Cache对象填充下拉列表等,我们不希望在底层数据/数据库中进行更改.

如果出现错误记录框架,请提供电子邮件警报以及记录错误.


HTML代码: - 不要编写内联CSS. - 将JavaScript代码(如果页面需要)放在页面末尾,除非页面需要加载时间操作.


现在谈到这一点,如果您已经有完整的清单,请分享这些最佳实践点吗?



1> 小智..:

我随着时间的推移学到了一些最好的实践,并在我的公司中使用...很多主要适用于WebForms而不是MVC.

不要直接在ASPX标记中编写.NET代码(除非是用于数据绑定,即Evals).如果您有一个代码,这会将页面的代码放在多个位置,并使代码更易于管理.将所有.NET代码放在代码隐藏中.

SessionPageStatePersister可以与ViewState结合使用,以使ViewState有用,而不会增加页面大小.使用新的SessionPageStatePersister覆盖Page的PageStatePersister会将所有ViewState数据存储在内存中,并且只会在客户端存储加密的密钥.

创建页面可以继承的BasePage,以便重用页面之间的公共代码.为您的页面创建一个MasterPage以进行可视继承.具有完全不同视觉样式的页面应使用不同的MasterPage.

在通过URL传入的每个WebForm上创建页面参数键名称的枚举,以设置强类型页面参数.这可以防止需要硬编码的页面参数键字符串及其可能的错误输入,以及允许从其他页面进行强类型参数访问.

使用ASP.NET缓存来缓存数据库中经常使用的信息.构建(或从另一个项目重用)一个包装ASP.NET缓存的通用缓存层.

在页面上使用"属性"包装ViewState对象,以避免在引用ViewState集合中的项目时出现拼写等方面的开发错误.

避免在ViewState中放置大对象和对象图,主要用于存储ID或非常简单的DTO对象.

使用SessionManager包装ASP.NET会话,以避免在引用Session中的项目时出现拼写等方面的开发错误.

在web.config中广泛使用applicationSettings键/值配置值 - 使用可用于轻松检索配置设置的类包装Configuration.ApplicationSettings,而无需记住web.config中的键.

避免在UI控件上设置显示属性的容易性,而是使用CSS样式和类 - 这将使您的样式更易于管理.

在应用程序中创建UserControl,以便在整个页面中重用常用的UI功能.例如,如果包含类别集合的下拉列表将在站点中的许多位置使用 - 创建一个CategoryPicker控件,该控件将在加载页面时将数据绑定到自身.

使用UserControls上的Properties设置默认值,页面之间的不同显示等.可以在UserControls上定义值类型属性,然后使用UserControls上的类级别属性在ASP.NET标记中设置.

使用ASP.NET验证控件执行简单验证,或使用CustomValidator执行复杂验证.

创建一个错误处理页面,可以在您的网站中发生未处理的异常时重定向到该页面.重定向可以通过Page中的Page_Error事件,Global.asax中的Application_Error事件或web.config中的部分进行.

处理使用高度动态数据驱动显示的页面时,请使用第三方(免费)DynamicControlsPlaceholder控件来简化在回发之间保存动态添加控件的状态所需的代码.



2> this. __curi..:

    为您的所有asp.net页面创建一个基页.此页面将派生自System.Web.UI.Page,您可以将其放在YourApp.Web.UI中.让所有的asp.net页面都来自YourApp.Web.UI.Page类.这可以减少很多痛苦.

    使用Application_OnError处理程序可以正常处理任何错误或异常.您应该记录关键异常,并将异常的详细信息以及客户端的日期时间和IP发送到管理员电子邮件ID.是的ELMAH肯定是要走的路.

    使用ASP.NET主题.许多开发人员不使用它.使用它们 - 它们很棒.

    使用MembershipProvider和RoleProvider.而不要使用内置ProfileProvider -他们都储存在普通的字符串.在执行R/W时,它会大大降低性能

    使用Firebug进行客户端调试.尝试遵循Web应用程序的YSlow标准.对FireBug 使用YSlow扩展.

    使用jQuery进行客户端脚本编写.

    切勿在会话中存储用户身份验证信息,或者不使用会话来判断用户是否已登录.仅在会话中存储最少的必要信息.

    看看PostSharp.可以提高代码的可维护性并提高工作效率.

    永远不要在生产的调试配置下部署asp.net应用程序.在这里找出scottgu对此有何看法.

    用户Web部署项目.它可以转换web.config部分并替换为生产服务器设置.它将所有已编译的代码隐藏类合并为一个单独的程序集,这是一个很大的问题.

    使用无Cookie域来提供静态资源,如图像,脚本,样式等.每个客户端请求都与一大堆cookie一起发送,在提供图片或脚本时不需要cookie.因此,在无cookie的域上托管这些资源.

    从服务器中缩小脚本,样式表和HTML响应.删除不必要的换行符和空格可以改善加载时间和带宽优化.



3> Greg..:

形式:

    设置Page.Form.DefaultFocusPage.Form.DefaultButton改善用户体验

    Page.IsValid在继续之前检查" 保存"按钮处理程序.

一般:

    理解并实现" TRULY Understanding ViewState "一 文中的技巧

    在页面事件中使用Page.IsPostBack可以阻止代码不必要地运行.

    尽可能使用超链接而不是发布和使用Response.Redirect.

    一个.理解并使用Response.Redirect的第二个参数(它"表示当前页面的执行是否应该终止")

    正确使用Page Lifecycle.

    在有意义的地方使用Per-Request缓存(HttpContext.Items)而不是Cache.

Web.Config中:

    部署用

    在web.config级别而不是页面级别(即@Register)注册控件.

主题:

    使用主题时,也将静态图像放在主题中.

    一个.不要直接从标记链接到图像,而是从主题中的皮肤文件或css文件链接到它们.

    例如:

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有