Asp.net MVC2 使用经验,性能优化建议
1.关于缓存
缓存上,数据层上的缓存是必须的,这点不必多说了。
另一个很重要的是:视图片段缓存。
我参考了老赵的写的三篇关于片段缓存的文章:
适合ASP.NET MVC的视图片断缓存方式(上):起步
适合ASP.NET MVC的视图片断缓存方式(中):更实用的API
适合ASP.NET MVC的视图片断缓存方式(下):页面输出原则
本想用老赵的了,但是我发现Asp.net MVC2 的有一个新功能: Html.Partial可以返回生成的HTML, 返回的类型是:MvcHtmlString. 虽然要利用Partial View才能生成Html片段,但是我想这个已经够我用的了,所以我做了一个这样一个Helper,主要是将生成的HTML片段缓存到Memcached里。代码如下:
public static class MvcHtmlHelper
{
public static MvcHtmlString MemcacheHtmlPartial(this HtmlHelper htmlHelper,int duration, string partialViewName, object model, ViewDataDictionary viewData)
{
object obaear = htmlHelper.ViewContext.RouteData.DataTokens["area"];
string area=string.Empty;
if (obaear != null) area = obaear.ToString();
string key = string.Format("MemcacheHtmlPartial_{0}{1}", area, partialViewName);
object ob = DistCache.Get(key);
if (ob == null)
{
MvcHtmlString mstr = htmlHelper.Partial(partialViewName, model, viewData);
DistCache.Add(key, mstr.ToString(), TimeSpan.fromSeconds(duration));
相关文档:
在页面间跳转,会涉及到值和数据的传递问题.特用本文将我知道的一些方法归纳一下.
1.带参数传递
优点:使用方便
缺点:安全性低,适合传递简单类型的对象,比如数字.字符.但对对象.数组等不合适传递.
应用:
a.安全性不高,应对方式:对传递的值进行加密.
b.传递简单类型的对象.应对方式:在传递页通过简单类型对象给出标识,在 ......
写了一个创建虚拟目录的 WebService 程序,在测试运行时可以成功创建,但其它程序调用时,提示没有权限创建。
查了一些资料,在web.config里面的<system.web>后加上配置:
<identity impersonate="true" userName="操作系统用户名" password="用户对应的密码" />
问题解决。特此记录,权 ......
+++ 规定缓存项的键值就可以从缓存中检索缓存项的数据。然而,因为保存在缓存中的数据是不稳定的,可能会被ASP.NET移除,所以,推荐的开发方式为应该先确定缓存项是否存在,如果不存在,应该先添加该缓存项到缓存,然后再检索该缓存项。
+++ 检索缓存项
下面的例子演示,确定名为“CacheItem”的缓存项是否存在 ......
+++ 事实上,将数据集绑定到.NET控件,就是将数据库的表或表中某个字段读到内存的某个结构里,比如DataTable,然后把这个数据结构绑定到.NET控件。
+++ 如果你以前使用过C++ Builder或是Delphi,那么你一定记得,绑定数据库控件与一般控件是分开的,这两种控件在不同的包中。而现在的.NET控件就非常灵活,它既可以作为一般 ......
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace zhixiaojia.Webctr.WebControls
{
[DefaultProperty("Text")]
[ToolboxData("&l ......