ASP.NET MVC扩展库
很多同学都读过这篇文章吧 ASP.NET MVC中你必须知道的13个扩展点,今天给大家介绍一个ASP.NET MVC的扩展库,主要就是针对这些扩展点进行。这个项目的核心是IOC容器,包括Ninject, StructureMap, Unity ,Windsor和Autofac。如果你和我一样喜欢使用IOC,这个库值得你关注,这些IOC我都用过了,现在比较喜欢使用Autofac。
ASP.NET MVC扩展库的网站地址是http://www.mvcextension.com/,基于Ms-PL协议的开源库,5.11发布了1.0版本,下面介绍一下他的特性:
这个库的核心是IOC,却可以让你的代码和IOC无关,你的代码却可以使用强大的IOC。
多个IOC库的适配器:所有.NET上流行的IOC容器都由适配器。
Bootstrapping:不用在各个项目中写类似的代码了,处理你的Controller/Controller Factory/Model Binders/View Engines/Action Filters/Custom Dependencies的注册。
PerRequestTask:类似于HttpModule处理自定义的业务逻辑,还可以控制执行的顺序。
Model Binder:通过构造函数注入你的Model Binder的自定义的依赖。
Action Filter Fluent Registration:支持构造函数方式注入流贯的注册你的Action Filter。
ModelMetadata Fluent Configuration:支持复合ModelMetadata provider, 默认使用DataAnnotationsModelMetadataProvider,还支持EF Code First 和 Fluent NHibernate.
各种ActionResults:包含通用的ActionResults,其中包括XmlResult,ExtendedJsonResult(支持JsonConverters),Adaptive PRG (PostRedirectGet) results。
各种通用的Route 变量:包括Range, Positive Int/Long, Guid, Enum, RegEx等等
各种其他的实用方法和助手类。
这个库的实际应用的例子可以看这个项目Shrinkr,作者在博客上有几篇文章介绍:
MvcExtensions – Bootstrapping Wednesday, May 12, 2010
Announcing the RTM of MvcExtensions (aka System.Web.Mvc.Extensibility) Tuesday, May 11, 2010
相关文档:
如果测试的url地址是http : //www.test.com/testweb/default.aspx, 结果如下:
Request.ApplicationPath: /testweb
Request.CurrentExecutionFilePath: /testweb/default.aspx
Request.FilePath: /testweb/default.aspx
Request.Path: /testweb/default.aspx
Request.PhysicalApplicationPath: E:\WWW\testwebReq ......
• 不要使用不必要的Session,和ASP中一样,在不必要的时候不要使用Session
• 不使用不必要的Server Control
• 不使用不必要的ViewState
• 不要用Excepti ......
Asp.Net 备份和恢复SQL SERVER 数据库
我们通常备份数据库时,需要登录数据库服务器去备份和恢复,这样很不方便,其实SQL SERVER自带的命令可能让我们很简单地实现远程通过Asp.Net备份和恢复数据库。
BACKUP DATABASE '被备份的数据库名' TO DISK = '备份文件路径';
ALTER DATABASE '被恢复的数据库名' ......
如何运用 Form 表单认证
ASP.NET 的安全认证,共有“Windows”“Form”“Passport”“None”四种验证模式。“Windows”与“None”没有起到保护的作用,不推荐使用;“Passport”我又没用过,唉……所以我只好讲讲“Form”认 ......
1. 打开新的窗口并传送参数:
传送参数:
response.write("<script>window.open(’*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+"’)</script>")
接收参数:
string a = Request.QueryString("id");
string b = Request.QueryString("id1");
2.为按钮添加对话框
Button1 ......