Asp.net2.0

摘要: asp.net2.0相比asp.net1.1提供了更多的使用javascript的方式 在1.1中,通常使用在页面中使用Page.RegisterStartupScript 或 the Page.RegisterClientScriptBlock注册script来实现所需的功能,在2.0中更加简洁了。阅读全文
posted @ 2007-09-11 23:45 jecray 阅读(600) | 评论 (0) 编辑
摘要: 如果文件是静态的,浏览器默认是自动完成文件的缓存 只要文件不被修改或浏览器没清空临时文件,则会一直缓存下去。如果文件需要动态输出,为了进行缓存,也可以通过程序添加http header的cache信息使文件变得可以缓存。

浏览器缓存的作用还是有限,面对现在大多都是动态的个性化的页面,不能很好的满足,需要利用服务器端缓存来提高性能了,我们熟悉的asp.net页面缓存及片段缓存还有应用程序级缓存等就是服务器端缓存的具体实现。阅读全文
posted @ 2007-09-09 15:50 jecray 阅读(559) | 评论 (0) 编辑
摘要: 浏览器缓存将文件保存在客户端,好的缓存策略可以减少对网络带宽的占用,可以提高访问速度,提高用户的体验,还可以减轻服务器的负担。因此我们有必要了解它的实现原理,用来提高网站的性能。阅读全文
posted @ 2007-09-09 13:53 jecray 阅读(2227) | 评论 (2) 编辑
摘要: 现在浏览器一般都支持gzip,deflate压缩协议 , 也就是说当服务器返回的是用gzip或deflate协议进行压缩过的内容, 浏览器将自动的进行解压缩 . 这样做可以节省大量的网络带宽,负面影响是加重了服务器的负担. 我们只是对aspx页面进行压缩 ,当然也可以压缩js和css . 但你也想用来对图片也进行压缩的话就错了 ,效果和用winzip压缩图片一样, 只能增大体积.阅读全文
posted @ 2007-09-06 21:43 jecray 阅读(863) | 评论 (5) 编辑
摘要: 介绍如何使用HttpModule和asp.net自带的form验证实现自定义的身份及权限认证模块
主要步骤:
1.创建一个User类实现IIdentity接口
2.创建一个自定义的Principal类实现IPrincipal接口
3.创建一个AuthenticationModule类IHttpModule接口
阅读全文
posted @ 2007-08-31 03:42 jecray 阅读(2091) | 评论 (2) 编辑
摘要: 这个问题早在几年前就被解决了, .但还是记录一下 .来自Cyahoga阅读全文
posted @ 2007-08-30 20:36 jecray 阅读(304) | 评论 (0) 编辑
摘要: 我们可以在页面的input里写上onkeydown="javascript:fnTrapKD('Login')"类似的代码 ,然后嵌入或链接一段fnTrapKD函数的js代码完成这种效果 ,但这样应用的页面多了就会造成代码的混乱 , 因此有必要把他们封装起来. 在后台调用一个静态函数就可以达到效果,更加灵活.

步骤如下:
1.编写注册TextBox和Button的静态方法
2.编写js 函数 ,文件名DefaultButton.s 放在网站根目录的js文件夹下
3.使用方法 在cs页面调用上面的静态方法 如:DefaultButton.SetDefault(this.Page, this.txtSearchQuery, this.btnSearch)阅读全文
posted @ 2007-08-29 00:41 jecray 阅读(1480) | 评论 (5) 编辑
摘要: 我们经常使用:RewritePath(string path);来实现URL重写 ,它还具有3个参数的重载形式RewritePath(string filePath, string pathInfo, string queryString);其中filePath是重写路径 , queryString是查询字符串, pathInfo参数是指附加到filePath的信息. 可以在请求页面使用Request.PathInfo获取该参数的值.

通过pathInfo可以将URL的参数分为两个部分, 一部分是path+querystring , 一部分是pathInfo .

这种方式对于基于模块构建的系统就非常有用. 系统的主干部分用path+querystring参数 , 子模块用pathInfo参数 . 这样可以在子模块中处理关于自己的URL参数,添加子模块时不需要在系统的web.config 中添加子模块的URL重写规则.

具体可以看以下的URL重写片段代码阅读全文
posted @ 2007-08-28 22:56 jecray 阅读(745) | 评论 (0) 编辑
摘要: 来自Cuyahoga 使用自定义的PageHandler处理所有的aspx页面 获取页面的执行时间阅读全文
posted @ 2007-08-28 00:31 jecray 阅读(427) | 评论 (1) 编辑
摘要: 越来越多的地方用到了xml,如何便捷的操作xml是每个程序员需要掌握的技术,XPath就是用来查询xml文档内容的语言。阅读全文
posted @ 2007-05-28 11:11 jecray 阅读(167) | 评论 (0) 编辑
摘要: 介绍一下如何在asp.net中使用http moudle创建自定义的安全认证阅读全文
posted @ 2007-05-27 12:24 jecray 阅读(197) | 评论 (0) 编辑
摘要: 1.将debug设置为false 2.关掉页面跟踪 3.关闭session 4.在编译最终发布版本时选择release模式 5.禁用不必要的viewstate 6.避免经常访问数据库....阅读全文
posted @ 2007-05-27 11:34 jecray 阅读(213) | 评论 (0) 编辑
摘要: Castle是针对.NET平台的一个开源项目,从数据访问框架ORM到IOC容器,再到WEB层的MVC框架、AOP,基本包括了整个开发过程中的所有东西,为我们快速的构建企业级的应用程序提供了很好的服务。4月份以来,Terrylee写了一系列的Castle的文章,这里做一下总结,后续还有Facility系列等,本部分内容会不断的更新。阅读全文
posted @ 2007-05-27 01:26 jecray 阅读(170) | 评论 (0) 编辑
摘要: session介绍
asp.net支持的session模式
“只要关闭浏览器,session就消失了”这种看法是错误的。
sesson cookie和persistent cookie的区别
session cookie在某些情况下可以跨浏览器页面共享阅读全文
posted @ 2007-05-24 20:20 jecray 阅读(645) | 评论 (0) 编辑
摘要: 可以方便的验证正则表达式的执行结果,带有智能感知功能。帮助文档是一个很好的学习正则的入门教程,也可以当作参考手册。基本上就全了,同时进行学习和实践。
还有生成c# or vb.net代码等附加功能。 阅读全文
posted @ 2007-05-06 22:19 jecray 阅读(1630) | 评论 (2) 编辑
摘要: 有了这个工具,你可以使用它筛选访问你想要的网站页面,甚至可以下载文件。这个工具的源代码在这里:http://www.codeproject.com/useritems/asproxy.asp 并有详细介绍
将程序文件上传到支持asp.net 2.0的主机站点,然后就可也以当前主机作为代理服务器,访问其他的web站点了。阅读全文
posted @ 2007-05-04 22:37 jecray 阅读(380) | 评论 (0) 编辑
摘要: 下载SmartCode,结果还没编译就出现几个 GacUtil exited with code 1 错误 ,原来是因为没有安装WebDeployment插件的缘故。
VS 2005 Web Deployment Projects的特性
1.方便地控制预编译web项目生成的程序集,例如为整个项目生成一个程序集,或为每个目录生成一个程序集。
2. 利用MSBuild自定义编译过程,在Visual Studio 2005 Command Prompt命令行中切换到项目文件夹,然后运行msbuild进行编译,没装VS 2005 Web Deployment时,在IDE下就会出现GacUtil exited with code 1 错误,只能通过msbuild编译。VS 2005 Web Deployment项目存储了所有的MSBuild设置。阅读全文
posted @ 2007-05-04 12:14 jecray 阅读(269) | 评论 (0) 编辑
摘要: 有好久一段时间,我经常使用.net 1.1开发程序,发现.net 1.1缺少类似c++中的模板功能。这种支持类型参数的功能可以使我们设计一个有泛型的类,在运行时检测实际的类型。

这样意味着用一个泛型参数T,你可以写一个MyList类,在使用MyList, MyList 或 MyList时不需要担心在运行时进行转换或装箱操作。

.NET 2.0引入了一个新的名字空间 System.Collections.Generic,他包括了支持泛型的类,例如:List, Queue, Stack, LinkedList。利用他们可以使你的程序更加有效率。阅读全文
posted @ 2007-04-15 14:31 jecray 阅读(147) | 评论 (0) 编辑
摘要: 在项目经常会遇到这么一种情况,要在弹出的窗口里面修改父页面中的数据。本文以模式窗口为例,说明如何在更新模式窗口页面之后刷新父窗口的内容。
在一般的情况下,模式窗口的关闭并不会刷新父窗口,我们需要在打开模式窗口的javascript中添加额外的脚本来刷新他的父窗口。阅读全文
posted @ 2007-04-15 14:31 jecray 阅读(1499) | 评论 (0) 编辑
摘要: 有时候为了美观和直观经常需要这样自动编号的列
下面提供了2种实现方式阅读全文
posted @ 2007-04-15 14:30 jecray 阅读(147) | 评论 (0) 编辑
摘要: 介绍如何在页面中使用Ado.net事务阅读全文
posted @ 2007-04-15 14:30 jecray 阅读(216) | 评论 (0) 编辑
摘要: 使用window.showModalDialog进行信息的提示,相当方便,也容易控制外观和布局。但是存在一个严重的问题,就是Session丢失。当在A页面进行showModalDialog时,弹出的模态窗口open新页面或new dialog()时,会得不到A页面中的Session,这样就严重地限制了他的使用范围。阅读全文
posted @ 2007-04-15 14:29 jecray 阅读(800) | 评论 (2) 编辑
摘要: 什么是ViewState?viewstate是如何工作的? 启用和禁止ViewState 性能问题 安全问题 viewstate容易出错的地方阅读全文
posted @ 2007-04-15 14:28 jecray 阅读(355) | 评论 (0) 编辑
摘要: 在asp.net中时常需要调用js代码,如果js写在asp.net中,一般是不会出现乱码的问题。因为他们具有相同的编码。
如果需要引用外部的javascript代码就会有乱码的风险了。一般情况下Asp.net和Javascript的页面编码不是GB2312就是Utf-8 ,如果两者的编码不一致就会产生乱码。解决方法就是想两者的编码进行统一。
由于一般情况下Asp.net接受发送请求的编码是Utf-8的,javascript编码默认是Gb2312,故容易出现问题。阅读全文
posted @ 2007-04-15 14:28 jecray 阅读(355) | 评论 (0) 编辑
摘要: 下面的图片直观的解释了DIV ,Body的各种定位属性 如offsetWidth,clientWidth,scrollHeight等
看了这幅图片就会对布局定位有很清晰的认识阅读全文
posted @ 2007-04-15 14:27 jecray 阅读(164) | 评论 (0) 编辑
摘要: c#中的委托像c/c++中的函数指针.一个多重委托可以订阅多个方法.一个委托可以在用来调用函数,具体调用哪个函数在运行的时候被确定.
委托是c#中类型安全的,可以订阅一个或多个具有相同签名方法的 函数指针.委托在c#中是引用类型.委托的必须和所指向的方法具有相同的签名.
C#在System名字空间有个Delegate类,他提供了对委托的支持.委托有两种类型:单一委托和多重委托
单一委托只能订阅一个方法,而多重委托可以订阅多个具有相同签名的方法.阅读全文
posted @ 2007-04-15 14:27 jecray 阅读(130) | 评论 (0) 编辑
摘要: vs2005已经实现了Iterator类型,但是2003中只有简单的IEnumerator。不能将声明iterator为IEnumerator类型,否则会出问题。IEnumerator提供的Current,MoveNext,Reset并不好用。Java中的hasNext,next方法易用多了。另外要把java程序转换成C#版的时候,最好模拟一个java迭代器,这样工作量会少很多。阅读全文
posted @ 2007-04-15 14:26 jecray 阅读(72) | 评论 (0) 编辑
摘要: web版MSNtoGoogleTools 暂时放在:http://web17637.s17.webcontrol.cn/index.aspx 自己的.net空间已经过期了,只好采取临时试用的方式来放程序.
windows application 版本(需要.net 1.1支持) 下载地址:http://jecyang.googlepages.com/MSNtoGoogleTools.rar.rar 阅读全文
posted @ 2007-04-15 14:24 jecray 阅读(167) | 评论 (0) 编辑
摘要: MSNtoGoogleTools 主要包含两个版本,都是基于.net平台 一个是web版 一个是application版前者需要服务器空间支持 后者需要客户端有.net framework 1.1 . application版支持代理服务器功能,这就意味着在公司内通过代理服务器上网的机器也能顺利运行,只需要设置代理服务器,用户名和密码.阅读全文
posted @ 2007-04-15 14:22 jecray 阅读(53) | 评论 (0) 编辑
摘要: 当每个开发者创建全球化的产品和程序时,全球化和本地化是两个重要的步骤.阅读全文
posted @ 2007-04-15 14:20 jecray 阅读(147) | 评论 (0) 编辑
摘要: 主题用来为web页面定义视觉样式.主题有一系列元素组成:skins,Css,images还有其他资源.主体可以应用在程序,页面或服务器控件级别.
我们可以创建主题通过在解决方案中添加App_Themes文件夹.我们也可以通过添加skin文件达到目的.阅读全文
posted @ 2007-04-15 14:18 jecray 阅读(152) | 评论 (0) 编辑
摘要: Log4net是一个开源的组件.可以使.net程序记录日志并输出成各种格式.阅读全文
posted @ 2007-04-15 14:18 jecray 阅读(406) | 评论 (0) 编辑
摘要: 发邮件是非常简单的,不管用System.web.mail [ASP.NET 1.1]或System.Net.mail [ASP.NET 2.0],但是还是有其他第三方组件可以被使用,比如DotNetOpenMail.他可以使你用最少的代码创建文本,html和带附件的邮件通过 smtp服务器发送.阅读全文
posted @ 2007-04-15 14:17 jecray 阅读(710) | 评论 (0) 编辑
摘要: SharpZipLib是一个开源的用C#编写的Zip,GZip,Tar and BZip2库,用于C#的开发.可以在http://www.icsharpcode.net/OpenSource/SharpZipLib/得到.阅读全文
posted @ 2007-04-15 14:14 jecray 阅读(623) | 评论 (1) 编辑
摘要: Subversion是一个开源的版本控制工具,这意味这你可用免费的使用它.
安装Subversion是非常容易的,可以从website得到.在这篇文章里,使用windows版本的svn-1.3.0-setup.exe阅读全文
posted @ 2007-04-15 14:14 jecray 阅读(121) | 评论 (0) 编辑
摘要: HTTP Modules是一个程序集,对程序的每个请求时,都会调用它.HTTP Modules是asp.net请求管道的一部分,且在能在请求的整个生命周期里存取事件.因此HTTP Modules给你一个检查到达请求和采取行动的机会.他们也提供了检查外来请求和修改请求的机会.
asp.net HTTP Modules和ISAPI过滤器很像,他们都可获得所有请求.然而,他们是用托管代码编写且完全集成在asp.net程序的生命周期里. 阅读全文
posted @ 2007-04-15 14:13 jecray 阅读(97) | 评论 (0) 编辑
摘要: 1 在windows xp下配置IIS
2 安装visual studio.net 2003
3 配置Apache 2.0
4 配置Subsersion
5.让apache识别subversion仓库
6 设置TortoiseSVN
7 用TortoiseSVN创建subversion阅读全文
posted @ 2007-04-15 14:13 jecray 阅读(430) | 评论 (0) 编辑
摘要: asp.net http handlers是在对程序请求进行响应时的处理进行.最常见的handler是处理.aspx文件的asp.net page handler.当用户请求一个.aspx文件,这个请求被page handler处理.
page handler仅仅是handler的一种.asp.net还有其他内建handler如web service handler是处理.asmx文件的
当你想要处理特定扩展名的文件时,可以创建自定义的http handler.阅读全文
posted @ 2007-04-15 14:12 jecray 阅读(84) | 评论 (0) 编辑
摘要: 在mojoprotal 中定义了IIndexableContent接口,这个接口只包好一个自定义的事件ContentChangedEventHandler。 HtmlContent,CalendarEvent,Blog,SharedFile,Link,GalleryImage,ForumThread类都实现了该接口,作用是用来索引内容,方便搜索。
下面以对blog内容的删除为例,解释其中的事件和委托是如何工作的。在mojoPortal.Business中定义ContentChangedEventHandler委托和自定义事件参数。阅读全文
posted @ 2007-04-15 14:09 jecray 阅读(254) | 评论 (0) 编辑
摘要: 首先把varshop做完,这是一个对现有网上商城进行功能加强的系统,总体感觉来说还是不困难的,框架已经有了,页面不需要设计,主要实现业务逻辑和Ajax显示数据。阅读全文
posted @ 2007-04-15 14:07 jecray 阅读(110) | 评论 (0) 编辑
摘要: 用anthem.net 框架来开发无刷新系统,相当容易,他的控件多了autoCallback和UpdateAfterCallBack属性。前者相当于 autoPostBack,后者使用在服务器段代码中,使控件无刷新更新自己的状态。用了这套控件后就不好调试了,需要手动跟踪代码。

写存储过程时,在拼凑sql语句时容易出现错误,在sqlserver中没有通用的转义字符,在字符串的处理中需要转义的也只有单引号,输入两个单引号就转义成一个了,当SET QUOTED_IDENTIFIER OFF时,"是字符串边界符,字符串中的"必须用两个"表示。字符串不能和日期时间类型之间相加,需要用convert()函数将日期时间型转换为字符串。阅读全文
posted @ 2007-04-15 14:06 jecray 阅读(104) | 评论 (0) 编辑
摘要: 用asp.net不好实现实时的无刷新进度条,服务器控件中的代码里面不能直接调用Js代码,只能通过控件本身的事件来触发js函数。用原生的xmlhttp容易判断页面是否加载完毕,不过要实现复杂的逻辑就麻烦了。
今天看到一个构思巧妙的无刷新的Loading页面,javascript的威力真是大。阅读全文
posted @ 2007-04-15 14:04 jecray 阅读(1557) | 评论 (2) 编辑
摘要: Anthem.Net真是个好东西,不但开源而且使用简单,可以便捷地创建各种Ajax应用。
需要的代码量很少,首先在控件的服务器事件中写入逻辑,然后添加一句控件ID.UpdateAfterCallBack = true;就可以自动回调更新这个控件了。还对有AutoPostBack属性的控件提供AutoCallBack属性。有了这两个属性,于是控件具有了无刷新更新和传递数据的功能。
Anthem.Net还提供了Anthem.Manager.AddScriptForClientSideEval()方法,可以随时随地在服务器端执行javascript函数,这个方法的作用是巨大的。阅读全文
posted @ 2007-04-15 14:03 jecray 阅读(753) | 评论 (0) 编辑
摘要: 格式化字符串
DataFormatString="{0:P}" //自动转换为百分数
DataFormatString="{0:#.##}"//保留两位小数
在DataGrid里面查找控件
databound事件中使用e.Item.Cells[i].Controls[j] ,e.Item.FindControl(""))
ItemCommand事件中同上 或者使用DataGrid1.Items[0].Cells[0].Controls[0]); 注意都要强制转换制定控件类型.
e.Item.Cells[0].Text只能取到boundcolumn的值,且在ItemCommand里面取不到值. 阅读全文
posted @ 2007-04-15 14:03 jecray 阅读(243) | 评论 (0) 编辑