.NET
文章平均质量分 58
nchen123
这个作者很懒,什么都没留下…
展开
-
服务器控件是否必须在 runat=server 的 Form 内?
对这个概念很多人有误解。以为凡是 WebControl 都必须放在 里面。比如:http://community.csdn.net/Expert/topic/3848/3848189.xml?temp=.1163141先让我们来做几个试验。(为了说明方便,以下仅列出 aspx 文件中 body 里的内容。)1,form id="Form1" method="post" runat原创 2005-03-22 16:22:00 · 432 阅读 · 0 评论 -
扩展 IronPython for ASP.NET:编写自定义属性注入器
IronPython for ASP.NET 的属性注入器机制可以使得一些代码的语法变得简单(详细了解参考我的这一篇),但是默认的支持似乎现在还很不完备。我反编译了 Microsoft.Web.IronPython.dll,在其中增加了对 RepeaterItem 和 Session (HttpSessionState) 的属性注入支持。对 RepeaterItem 的支持很简单,因为本身原创 2006-12-17 18:18:00 · 379 阅读 · 0 评论 -
Anthem.NET 的 "BAD RESPONSE" 问题的脚本调试技巧小结
今天解决了一位朋友使用 Anthem.NET 遇到的问题。他的代码在 Windows XP 的开发机器上反应正常,而部署到 2003 Server 的服务器上就提示 "BADRESPONSE".这个问题产生的原因是,Anthem 在客户端 js 中调用服务器时,会返回一个表示 js 对象的文本,在得到后,通过 eval 方式将这个对象还原。其中包括了服务器需要返回给客户端的各种信息,比如脚原创 2006-12-16 18:18:00 · 878 阅读 · 0 评论 -
IronPython for ASP.NET 部署注意事项
用 IronPython for ASP.NET 开发的网站,在部署时,除了发布 bin 目录下的 IronPython.dll, IronMath.dll, Microsoft.Web.IronPython.dll 之外,还需要在服务器上运行一下 IronPython for ASP.NET 的安装包。原因是这个安装包对 System.Web 的 dll 打了一个 hotfix. 其中比原创 2006-12-14 17:18:00 · 384 阅读 · 0 评论 -
IronPython for ASP.NET 的原理分析(一):如何在 CLR 类型上实现动态性
如何在 CLR 类型上实现 IronPython 语言的动态特性,简单的讲,可以通过 ICustomAttributes 接口来实现。ICustomAttributes 接口是在 IronPython 引擎中定义的 。其成员是给 CLR 类型附加自定义属性的一些操作,一旦定义了这些附加的属性,IronPython 的脚本就通过引擎来访问它们。需要注意的是,这里所谓的属性是 Python 概原创 2006-12-10 16:18:00 · 535 阅读 · 0 评论 -
工作流和 WF 文章收藏
Hello, WF!工作流管理在ERP系统中的应用原创 2006-12-08 18:18:00 · 292 阅读 · 0 评论 -
SetRenderMethodDelegate 方法
今天看代码发现一个有趣的方法。System.Web.UI.Control 类的 SetRenderMethodDelegate() 这个方法允许控件接受一个委托来定制自身的 Render 行为,这样,在子控件里就可以重新定义父控件的 Render 方法,很灵活。IronPython for ASP.NET 的实现就利用到这个特性了。例子:public class SnippetCont原创 2006-12-06 18:18:00 · 861 阅读 · 0 评论 -
在 ASP.NET 中用匿名委托简单模拟 AOP 做异常和日志处理
这两天写 ASP.NET 写晕了,老想偷点懒。由于在后台的代码里几乎每个方法里都要 try..catch 这么来一遍,感觉很烦琐。又联想到 AOP, 但 AOP 的做法相对比较复杂,做法也很多。比如用 Dynamic Proxy, Attribute, 或者 Emit 等。我忽然联想到了 C# 2.0 的新特性匿名委托,觉得这个虽然丑一点。。。不过其实也可以比较轻量级的简单模拟 AOP 的原创 2006-11-16 02:18:00 · 339 阅读 · 0 评论 -
用 C# 开发 SQL Server 2005 的自定义聚合函数
在 SQL 中,经常需要对数据按组进行自定义的聚合操作,比如用逗号连接一系列表示 ID 的数字,但默认只有 SUM, MAX, MIN, AVG 等聚合函数。在 SQL Server 2005 中提供了编写 CLR 的托管代码的支持,我们可以用来写自定义的聚合函数。比如对于如下数据:AgeName20张三21李四20王二22原创 2006-11-15 18:19:00 · 415 阅读 · 0 评论 -
使用 Castle ActiveRecord 开发发现的一些问题
Castle ActiveRecord 内部用的是 NHibernate 来做 O/R Mapping, 在最近完成的一个项目中,我发现了它有不少问题。1. Blob 字段的数据会被截断,但没有运行时异常。这个是 NHibernate 的一个 bug,但是也有解决办法,就是在 Blob 字段上设置如下标签:[Property(ColumnType="StringClob")]publi原创 2006-11-15 18:19:00 · 390 阅读 · 0 评论 -
关注一下 IronPython Community Edition
FePy 是一个开源项目,其目标是对 IronPython 语言的进行扩展,以补充 CPython 的标准库中有,而 IronPython 没有的一些特性。当前这个扩展甚至包括了对 CherryPy 3 的支持。其主页在 http://fepy.sourceforge.net/IronPython Community Edition (IPCE) 是包括了 FePy 库,以及其他一些第三方原创 2006-12-18 18:18:00 · 556 阅读 · 0 评论 -
Error while trying to run project: Unable to start debugging 绑定句柄无效
Visual Studio 2005 编写的项目可以编译,但不能调试,错误信息:Error while trying to run project: Unable to start debugging 绑定句柄无效可以这样解决:1、打开项目属性,在“Debug”一项里,把“Enable the Visual Studio hosting process”前的钩去掉。2、打开计算机管理,原创 2007-01-02 21:18:00 · 1202 阅读 · 0 评论 -
CodeProject 文章收藏 (2007-1-3)
Forms 身份验证的原理剖析DataSet Watch 2.0一个高级的 DataSet 监视器(帮助调试)。加密和解密字符串很基础的知识。用 C# 操作 Excel 文档 (利用 COM 对象 Microsoft Excel 11.0 Object Library)在 SQL Server 2005 中用 CLR 扩展函数压缩/解压 Blob/Clob 字段 SQL S原创 2007-01-03 16:18:00 · 287 阅读 · 0 评论 -
Master Page 的原理分析, IParserAccessor.AddParsedSubObject 方法
当一个 ASP.NET 页面的请求发生时,Page 对象初始化的次序是constructor -> AddParsedSubObject -> ...可见 AddParsedSubObject 这个方法会较早被调用。System.Web.UI.Control 类实现了 IParserAccessor 接口,它对此接口实现如下:(通过 Reflector 看到的)void IPars原创 2005-03-22 01:22:00 · 344 阅读 · 0 评论 -
ASP.NET 中 DataGrid 导出到 Excel 的封装实现
最近的项目中要大量用到 DataGrid 中的数据导出到 Excel 的方法,且数据量比较大。针对这个我做了一个导出 Excel 的帮助类。 之前在网上我搜索到很多导出 Excel 的代码,但是都不尽如人意。一般有下列几种方法: 1. 用 Excel.Application 对象逐单元格的填充数据。 这个办法由于是操作 COM 组件来进行,而 .NET 调用 COM 是要经原创 2005-02-02 00:22:00 · 452 阅读 · 0 评论 -
Easier programming asynchronous calls
Asynchronous calls can improve scalability, however, its always more difficult for us to do programming jobs under an asynchronous calling manner. The main reason is, asynchronous calls need call原创 2009-01-18 11:14:00 · 546 阅读 · 0 评论 -
ASP.NET Ajax 中 'Sys' 未定义脚本错误解决方法总结
这是很常见的一个错误。网上搜到了几个总结的帖子:http://www.dudo.org/article.asp?id=116http://forums.asp.net/p/1040236/1446560.aspx但是有时候会发现试过这些方法仍然不行。其实最简单的办法,是新建一个 ASP.NET AJAX 的网站,然后将 web.config 的内容跟出错网站的 web.config 对比修原创 2008-10-31 00:15:00 · 476 阅读 · 0 评论 -
在 VS 中查找替换时使用正则表达式的语法
完整的语法参考在这里:http://msdn.microsoft.com/zh-cn/library/2k3te2cs.aspx 例如,可以设置 查找: /k__BackingField 替换为: ___/1 这样可以把类似 k__BackingField 这样的字段名改成 ___Field1 (注:这个是 Reflector 里的 FileDissembler 产生的有问题的标志符,原创 2008-09-12 23:15:00 · 475 阅读 · 0 评论 -
几个微软产品组的团队网站地址
微软产品组一直以来非常重视MVP对于微软产品的反馈信息,现邀请MVP对于相关网页进行预览并提出您对于相关网页的宝贵意见。同时,您也可以将以下网页网址放在您的Blog中,与其他IT同仁一同分享,让更多的人了解微软产品和技术的最新资讯。 具体网页信息如下:1. 微软中国研发集团服务器与开发工具事业部: http://blogs.msdn.com/stbcblog作为原创 2008-07-30 15:15:00 · 648 阅读 · 0 评论 -
Linq to SQL 中保存大值数据类型
假如我们需要在数据库中保存文件的二进制内容,以往的做法是在 SQL Server 中使用 image 字段类型来存放。按照我上篇帖子里提到的 Model -> DB 的开发方式,如果我们在 dbml 的设计视图中设置一个类属性的数据类型是 byte[] (CLR 类型)。那么,db.CreateDatabase() 自动生成的数据库 schema 中,对应的数据库字段类型将是 varbin原创 2008-05-15 12:16:00 · 494 阅读 · 0 评论 -
利用 Linq to SQL 的数据访问层开发方式讨论
为了较好的开发体验,在开发阶段,我喜欢用 Model -> DB 的次序来进行。也就是说,先在程序中创建一个 Linq to SQL Data Classes 类,在设计视图上设计好类图。然后,程序中执行一下如下的代码来生成数据库:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeH原创 2008-05-15 12:16:00 · 600 阅读 · 0 评论 -
CodeFileBaseClass 属性
asp.net 2.0 中,今天遇到了一个错误:Make sure that the class defined in this code file matches the inherits attribute, and that it extends the correct base class (e.g. Page or UserControl)原因是我的 CodeBehind 类原创 2007-07-13 03:17:00 · 982 阅读 · 0 评论 -
.NET Framework 3.0 和 Windows SDK
貌似好像 .NET Framework 3.0 和 Windows SDK 以及一些新鲜玩意的正式版本发布了:http://msdn.microsoft.com/windowsvista/downloads/products/default.aspx疯狂下载ing...原创 2006-11-11 11:19:00 · 439 阅读 · 0 评论 -
关于 IE 模态对话框的两个问题
showModalDialog 打开的模态对话框有不少经典的缺陷,在这里不再冗述,我只谈谈最近碰到的几个问题以及解决办法。问题1. showModalDialog 打开一个 aspx 页面时,如果该页面在之前已经打开过一次,则自动会加载缓存中的页面,而不能显示最新数据。解决的办法有两种:(1). 在打开模态框时,给 url 后面多加一个随机参数,来避免页面被缓存:var url =原创 2006-11-01 01:19:00 · 577 阅读 · 0 评论 -
IronPython 源码剖析系列(1):IronPython 编译器
自 IronPython 正式发布以来,由于对 Python 语言的喜爱所驱使,同时我想藉此去了解一下编程语言的编译器,分析器等程序是什么原理,如何运作的,所以我开始了对 IronPython 源代码的学习过程。但代码也看了有一段时间了,之前是看一些实现细节,结果越看越糊涂。现在我发现需要改变一下策略了,因为我们了解一个系统总是从对它的使用方法去开始了解,如果直接去了解底层的运作原理,则可原创 2006-10-09 18:19:00 · 1366 阅读 · 0 评论 -
ASP.NET 小技巧:重写 ViewState 的存储目的地,以提高页面性能
在 ASP.NET 中,ViewState 因为在客户端的 HTML 里占据大量的空间,并随着页面的 PostBack 反复传递于网络中,一直为人垢病。但是实际上 ViewState 可以存储到数据库、缓存等任意地方,从而避免频繁将冗长的 base64 字符串发送到客户端。这样做不但可以显著提高性能(大幅度减少了网络传输的字节数),而且如果其中的内容也不会被轻易解密和破解。因此这个方法是很原创 2006-02-26 22:20:00 · 333 阅读 · 0 评论 -
Janc 学习摘要
1. IE 中,window 对象的 onbeforeunload 和 onunload 事件的异同,分别的作用。2. Janc 的原理。 同步调用,异步调用,同步调用时的异常处理,异步调用时的异常处理。 序列化(客户端,服务器端都有)。 CreateCall 返回方法调用对象,提供方法调用的上下文。 类型系统的映射。 自定义 HttpHandler 处理 Janc.a原创 2006-01-23 20:20:00 · 633 阅读 · 0 评论 -
Page 的生命周期学习小结
(以前我在 csdn 写的翻译文章,现在转到这里来。)Page 的生命周期学习小结原文链接:Page Events: Order and PostBack作者:Paul Wilson翻译:木野狐初始化(Initialization)页面被请求时,第一个被执行的总是构造函数(constructor). 你可以在这里初始化很多自定义属性或对象。不过这里有一些限制,因为 page原创 2006-01-19 11:20:00 · 269 阅读 · 0 评论 -
也谈 ASP.NET 1.1 中 QueryString 的安全获取写法
刚才读到这个帖子:http://www.cnblogs.com/arielyang/archive/2006/01/16/318044.html?Pending=true#Post作者利用反射的方法,并且结合页面基类的做法,实现了一种 QueryString 的方便的读取方法。然而,在我看来,这种做法有些太重了。而我通常采用的做法如下叙述如下。在一个公共的方法类里面这样写,public原创 2006-01-16 22:20:00 · 367 阅读 · 0 评论 -
ASP.NET 中基于角色的窗体身份验证的研究
基本概念:IPrincipal:定义用户对象的基本功能实现者:GenericPrinciple 类属性: Identity: GenericIdentity方法: IsInRole()WindowsPrincipal 类GenericIdentity 类:表示一般用户。代表特定用户的标识对象,代码当前即以该用户的名义运行。属性: Authenticatio原创 2005-12-31 15:21:00 · 224 阅读 · 0 评论 -
dotText: 一个代码级别的重构及疑惑
以下是我在阅读 dotText 过程中碰到的一个小问题。(博客园发布版本的代码,原版我不了解)下面这个类:namespace Dottext.Framework.EntryHandling{ using System.Threading; using Dottext.Framework.Components; using Dottext.Framework.Util;原创 2005-10-05 00:21:00 · 430 阅读 · 0 评论 -
如何在 Windows 服务中正确使用 log4net
前几天写了一个 Windows 服务程序,其中使用 log4net 却总是失败。不论 log4net 的配置写在 app.config 里,还是独立的 config 文件里,都是一样。今天终于发现原来是在服务里不能正确定位到这个配置文件所致。于是经过尝试之后,发现关键在于如下代码中获取当前 exe 所在目录并用于得到 config 文件的路径。按这个写法就可以正确输出日志了:pub原创 2005-08-18 16:21:00 · 2800 阅读 · 3 评论 -
实现 IStateManager 接口的服务器控件在设定属性时的注意点
设定属性后,要添加一句ViewState.SetItemDirty() 的调用,这样在后续的阶段,StateBag.SaveViewState() 方法被调用时,才会保存该属性的值。例子如下: public virtual ImageAlign RightImageAlign { get {原创 2005-08-01 10:21:00 · 349 阅读 · 0 评论 -
C#2.0 : partial 关键字及 winform 体验
开始用 2.0 设计一个 winform 程序。当切换到代码里时,发现异乎寻常的干净。以前设计器生成的一堆代码不见了。在 Form1 的构造函数里,只有简单的一句:InitializeComponent();仔细查看发现设计器生成的代码现在跑到 Form1.Designer.cs 中去了。同样是一个 Form1 类, C# 2.0 利用 partial 关键字加在 class 的前原创 2005-06-28 01:22:00 · 662 阅读 · 0 评论 -
VB.NET 笔记1
为了看懂 dnn,今天开始学习一点 VB.NET.先写了个简单的代码:Imports System 定义一个模块Public Module Module1 Public Sub Hello() Console.WriteLine("Hello World!") End SubEnd ModulePublic Class Test 主程序入口点原创 2006-03-13 02:20:00 · 343 阅读 · 0 评论 -
ASP.NET 2.0 之 Master Page 学习笔记
如何使用 MasterPage 1. 创建 MasterPage,后缀名 .master, 如 x.master. 其中用 定义空位。如: 2. 创建内容页面。 在 NewItem 对话框里选择 "select master page", 选择上一步创建的 MasterPage. 产生的代码里,原创 2006-03-22 18:20:00 · 660 阅读 · 0 评论 -
ADO.NET 2.0 学习
ADO.NET 2.0 学习 一些改进: 1. SqlCommand: 增加的方法: ExecuteRow() 返回 SqlRecord 类的实例。 2. DataReader DataTable 互转换 myDataTable.Load(myReader); DataTableReader reader = table.Crea原创 2006-03-23 17:20:00 · 279 阅读 · 0 评论 -
TreeViewVisitor: 一个快捷访问 TreeView 控件节点的帮助类
Web 开发中经常用到 TreeView 控件,一个很常见的操作就是遍历所有的节点。但是该控件本身并未提供此功能,每次都要手工写递归访问的函数,非常烦琐。所以我写了一个简单的帮助类来解决这个问题,这样就不需要每次用递归来访问了:using System;using System.Data;using System.Configuration;using System.Web;using原创 2006-09-28 18:19:00 · 274 阅读 · 0 评论 -
CSS 控件适配器工具包对事件处理的 Bug 以及修正办法
今天做一个东西,用了最近刚出来的 CSS 控件适配器工具包,对我的 TreeView 进行定制,结果发现 OnSelectedNodeChanged 事件不工作。下面是该 TreeView 的简单的 Markup:asp:TreeView ID="tvCategories" runat="server" CssSelectorClass="SimpleEntertainmentT原创 2006-09-26 18:19:00 · 233 阅读 · 0 评论 -
Anthem.NET 的回调流程图
下面用一个最简单的 anthem:Button 回调作为例子,理清回调过程中执行函数的次序。代码如下:@ Page Language="C#" AutoEventWireup="true" CodeFile="Test.aspx.cs" Inherits="Test" %>@ Register TagPrefix="anthem" Assembly="Anthem" Namespace原创 2006-09-12 14:19:00 · 578 阅读 · 0 评论