随着时间的推移,我学到并编写在我的company...many中使用的一些最佳实践主要适用于WebForms而不是MVC。
- 不要在您的ASPX标记中直接编写.NET代码(除非是用于数据绑定,即Evals)。如果后面有代码,这会将页面的代码放置在多个地方,从而降低代码的可管理性。将所有.NET代码放入代码隐藏中。
- SessionPageStatePersister可以与ViewState一起使用,使ViewState在不增加页面大小的情况下很有用。用新的PageStatePersister重写页面的SessionPageStatePersister将在内存中存储所有ViewState数据,并且只在客户端存储加密密钥。
- 创建一个页面可以继承的BasePage,以便重用页面之间的通用代码。为您的页面创建一个用于视觉继承的MasterPage。视觉样式迥异的页面应该使用不同的MasterPage。
- 在通过URL传入的每个WebForm上创建页面参数键名的枚举,以设置强类型的页面参数。这防止了硬编码页面参数键字符串及其可能的错误类型的需要,以及允许其他页面进行强类型参数访问的需要。
- 利用ASP.NET缓存来缓存数据库中经常使用的信息。构建(或从另一个项目中重用)一个将包装ASP.NET缓存的通用缓存层。
- 在页面上使用属性包装ViewState对象,以避免在引用来自ViewState集合的项时出现拼写等方面的开发错误。
- 避免在ViewState中放置大型对象和对象图,主要用于存储ID或非常简单的DTO对象。
- 将ASP.NET会话包装为SessionManager,以避免在引用会话中的项时出现拼写等方面的开发错误。
- 广泛使用web.config中的web.config键/值配置值--用一个类包装Configuration.ApplicationSettings,该类可以方便地检索配置设置,而不必记住来自web.config的键。
- 避免在UI控件上设置显示属性的简单性,而使用CSS样式和类-这将使您的样式更易于管理。
- 在应用程序中创建UserControls,以便在整个页面中重用通用UI功能。例如,如果包含类别集合的下拉列表将在站点的许多地方使用--创建一个CategoryPicker控件,该控件将在加载页面时绑定自己。
- 使用UserControls上的属性设置默认值、页面间的不同显示等。值类型属性可以在UserControls上定义,然后通过在UserControls上使用类级属性在ASP.NET标记中设置。
- 使用ASP.NET验证控件执行简单验证,或使用CustomValidator执行复杂验证。
- 创建一个可重定向到网站内发生未处理异常时的错误处理页面。重定向可以通过页面中的Page_Error事件、Global.asax中的Application_Error事件或web.config中的部分进行。
- 当使用使用高度动态数据驱动显示的页面时,使用第三方(免费) DynamicControlsPlaceholder控件来简化保存回发之间动态添加控件的状态所需的代码。