高效使用使用SQL缓存依赖
ASP.NET Framework新增的一个非常强大的功能是SQL缓存依赖。该功能允许底层数据库中的数据修改时,自动地重新载入缓存的数据。
在使用绝对缓存过期策略或者弹性缓存过期策略时有一个权衡,对于性能和陈旧数据的权衡。例如,如果在内存中缓存数据20秒,则这20秒内显示的数据可能是过期的。
对于大多数应用程序来说,就算显示过期数据也没什么关系。例如,如果我们构建一个论坛讨论区,则每个用户都能接受新的主题可能不是实时显示的。
然而,某些类型的应用程序则绝对不能有陈旧数据。例如,如果我们创建一个股票交易网站或者拍卖网站,那么每一秒的数据都很关键。
ASP.NET Framework支持的SQL缓存依赖使得使用缓存时可以充分利用缓存,并且最小化陈旧数据。当使用SQL缓存依赖时,可以自动监测底层数据库中的数据是否变更,并刷新缓存中的数据。
ASP.NET Framework支持两种类型的SQL缓存依赖:轮询和推。可以对任何最近版本的Microsoft SQL Server,包括Microsoft SQL Server 2005 Express、Microsoft SQL Server 2000和Microsoft SQL Server 7.0,使用轮询SQL缓存依赖。第二种类型的缓存依赖——推SQL缓存依赖则只能用 ......
此处提供的代码用来实现当asp.net页面中的某个Button被点击后disable掉该页面中所有的Button,从而防止提交延时导致的多次提交。基于之前的onceclickbutton脚本.
//ASP.NET中防止页面多次提交的代码:javascript< script language="javascript"> < !-- function disableOtherSubmit() {
var obj = event.srcElement;
var objs = document.getElementsByTagName('INPUT');
for(var i=0; i< objs.length; i++)
{
if(objs[i].type.toLowerCase() == 'submit')
{
objs[i].disabled = true;
}
}
} //--> < /script>//ASP.NET中防止页面多次提交的代码:asp.netpublic class PreventMultiClick : System.Web.UI.Page {
protected System.Web.UI.WebControls.Button Button1; protected System.Web.UI.WebControls.Button Button2;
protected System.Web.UI.WebControls.LinkButton LinkButton1; protected System.Web.UI.WebControls.Button Button3; private void Page_Load(object sender, System.EventArgs e)
{
this.GetPostBackEventReference(this.Button3);
//保证 __doPostBack(eventTarget, eventArgument) 正确注册 if ......
由于其致力于在一个单独页面上面提供功能,Ajax web 门户都是 Ajax 技术的杰作。在页面上提供众多的功能,同时又有服务器端和客户端良好的性能,对于架构是一个非常大的挑战。一些挑战只有在整合众多特性的 web 应用程序或者聚合其他网站内用的程序上面才有的。
本章解释了 Dropthings 的架构,你也可以在你的应用程序使用这样的架构。我们将检测一系列的架构挑战,包括怎样在一个页面中运行多个 widget ,快速的加载一个 web 门户,处理安全问题(DOS 攻击),处理用户数据等等。
任何 web 门户的核心都是支持 widget,这是一种能够使得用户定制他们自己起始页的机制,并且通过它,能够使得提供者使得其服务有效,不论是在一个公司的部门还是一个第三方组织,像路透社。
在一个像我们本书中使用的 ASPNET 实现中,default.aspx 是首页,它显示了 widget 并能够添加,删除,移动,定制 widget 不容任何刷新或者回发就能完成。
这个应用程序会记住用户的动作和定制,所以,在下次访问的时候,他将会看到和他上次离开时相同的 widget 和配置。web 门户也代表性的允许匿名用户来使用很多的特性,包括添加,编辑,删除 widget,以及创建多页面,不用注册情况下进行偏好设定。
......
FormExtensions类
FormExtensions类是一个静态类,定义了3种类型的扩展方法:BeginForm、BeginRouteForm、EndForm;在实际开发中,也可以使用using语句,而不需要写EndForm扩展方法。
InputExtensions类
InputExtensions类定义了5种类型的扩展方法:CheckBox,Hidden,Password,RadioButton,TextBox.
<fieldset>
<legend>CheckBoxlegend>
<label for="checkbox1">XieTilabel>
<label for="checkbox2">HeiTilabel>
<br/><br/>
<input type="submit" value="submit" />
</fieldset>
看看运行后的网页源代码吧:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head><title>
TestPage
title>head>
<body>
<div>
<form action="/Study/Index" method="post">System.Web.Mvc.Html.MvcForm
<fie ......
一、下载 dotnetfx.exe 安装
二、注册asp.net C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -i
三、修改ASPX扩展指向 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
启动站点 就可以了 ......
ASP.Net邮件发送类
本文转自:http://www.pcstu.com/program/Asp_net/sl/20070706/52523.html
说明:本文没有测试,但看起来似乎不能用于发送附件,如要发送附件,可参考:http://blog.csdn.net/lff642/archive/2008/07/15/2654346.aspx
using System;
using System.Text;
using System.IO;
using System.Net;
using System.Net.Sockets;
namespace OSLeagueForumXP.Components
{
/// <summary>
/// TcpClient派生类,用来进行SMTP服务器的连接工作
/// </summary>
public class SMTPClient : TcpClient
{
/// <summary>
/// 进行SMTP服务器的连接
/// </summary>
public SMTPClient()
{
}
/// <sum ......