随笔分类 -  .NET

Operation is not valid due to the current state of the object
摘要:在一个 asp.net webform 的程序 postback 时,碰到了这个异常,而且无法调试。Google 了一下,发现原因原来是 asp.net 对一个 form post 的字段数有限制,在打过最新的安全更新后,这个限制的数目是1000个,超过了就会报这个异常。解决的办法是在 web.config 里面加一个设置,增大这个限制值:<appSettings><addkey="aspnet:MaxHttpCollectionKeys"value="2001"/></appSettings>而为什么会有这么多 fi 阅读全文

posted @ 2012-04-28 18:17 NeilChen 阅读(1321) 评论(0) 推荐(0) 编辑

Irony - 一个 .NET 语言实现工具包
摘要:Irony 可以用来实现一个你自己设计的 .NET 语言,通过这个工具包,不需要自己写词法、语法编译程序。只要将目标语言的语法用 C# 语句进行定义即可。 Irony 通过 C# 运算符重载实现了利用 C# 定义语法规则的功能。比如定义 SQL 语言的语法,通过 Irony 写出来的甚至比 BNF 还要短。利用这个东西可以方便的定义自己的 DSL. 有空关注一下。 http://www.han... 阅读全文

posted @ 2011-10-18 13:28 NeilChen 阅读(895) 评论(0) 推荐(0) 编辑

ASP.NET 4: 允许对URL中的特殊字符串放宽要求
摘要:在做 URL Rewrite 时可能遇到这类问题,即想要使用的 Rewrite 后的目标 URL 中会含有特殊字符,或者说不能直接映射到操作系统的文件系统允许的文件名格式,比如以 “.” 结尾等等。如果不做特殊处理的话则 ASP.NET 引擎会报 "CheckSuspiciousPhysicalPath” 的错误。解决办法:1. ASP.NET 版本小于4.0的情况,可以在 Global.asax.cs 中处理 PreSendRequestHeaders 事件,例如:protected void Application_PreSendRequestHeaders(object sen 阅读全文

posted @ 2011-04-12 15:54 NeilChen 阅读(838) 评论(0) 推荐(1) 编辑

Linq to SQL bug: Char(1) maps to System.Char
摘要:如果数据库里有 char(1) 字段,利用 Linq to SQL 设计器拖过来之后,自动产生的映射的类型是 System.Char. 需要手工修改为 System.String, 否则程序可能会报错。 VS 2008 中存在这个 bug. VS 2010 尚未测试,不明。 阅读全文

posted @ 2011-03-12 02:09 NeilChen 阅读(343) 评论(0) 推荐(0) 编辑

Telerik RadComboBox 多列下拉框第一项无法触发 SelectedIndexChanged 事件
摘要:原因:没有正确设置 DataTextField. 分析:RadComboBox 控件的客户端 js 代码中,会判断选择的项和当前选项是否相等,如果不同,才会触发 SelectedIndexChanged 事件。 开始的时候不知道这个怪异的行为,仅仅设置了 DataValueField 字段。 但实际上单凭这个 telerik 的 js 代码还无法区分两个 item 是否相等。 所以,要“正确设置 ... 阅读全文

posted @ 2011-03-12 02:06 NeilChen 阅读(1777) 评论(0) 推荐(0) 编辑

Razor 越来越像 Rails 了
摘要:随着 ASP.NET MVC 3 发布了 Razor 视图引擎。这个引擎使得编写页面模板的语法更加简洁和精炼了,也更加 "DRY”. 可以参考 Scott Gu 的帖子: ASP.NET MVC3: 通过Razor实现布局 其特色有: 支持类似 Rails 里面的 layout 文件定义(取代了 ASP.NET 视图引擎里面的 master page 机制)。 支持对所有视图应用统一的 lay... 阅读全文

posted @ 2011-01-27 23:29 NeilChen 阅读(617) 评论(0) 推荐(1) 编辑

Razor 也可说是一个模板引擎,用不着学习 T4 了
摘要:Razor 是 ASP.NET MVC 3.0 支持的一个新的视图引擎,但只要你愿意,也可以摆脱 MVC 框架,而把它用作普通的文本模板引擎。这样也许我们不用学习流行的 T4 了?参见思归的博客: 怎么在ASP.NET WebForm中使用Razor视图引擎 阅读全文

posted @ 2011-01-27 23:05 NeilChen 阅读(829) 评论(0) 推荐(0) 编辑

SynchronizationContext 学习
摘要:(CLR via C# 3rd Edition) 在 GUI 程序中 (winform / wpf / silverlight),如果启动新的线程池线程,则在此线程中将不能直接更新 UI. 在 asp.net 中,在处理 client request 的线程中,同时会根据客户端的情况关联相应的 System.Globalization.CultureInfo, 以便服务器端能够使用客户相关的 c... 阅读全文

posted @ 2010-09-05 18:17 NeilChen 阅读(2640) 评论(0) 推荐(1) 编辑

使用 AppDomain 让不支持线程安全的代码轻松支持线程安全
摘要:Jeffrey Richter 的 blog 讲述了一种改写遗留代码的办法,可以让原先不是线程安全的代码运行在不同的 AppDomain 中,从而支持在多个线程中使用。 http://www.wintellect.com/CS/blogs/jeffreyr/archive/2010/09/01/using-appdomains-to-make-non-threadsafe-code-thread... 阅读全文

posted @ 2010-09-05 14:42 NeilChen 阅读(451) 评论(0) 推荐(0) 编辑

用 C# 简单模拟 Google Go 语言中的 Channel 和 goroutine 机制
摘要:前段时间尝试了一点 Google 的 Go 语言,感觉其很多特性还是不错的。Go 语言旨在结合传统编译型的静态语言和解释型的动态语言的优点,在其中找到一个平衡。从而打造一个既快速(编译执行),又方便编程的语言(动态语言往往语法简单快捷)。同时,Go 语言还具备丰富的特性以支持并发编程,这在现在多核非常普及的情况下,是很重要和强大的一个功能。 Go 语言的并发特性主要有 goroutine, ch... 阅读全文

posted @ 2010-08-25 19:07 NeilChen 阅读(3052) 评论(3) 推荐(4) 编辑

非确定性计算引擎转化为C#版本并重构
摘要:这是之前我写的原始的 VB.NET 版本:http://www.cnblogs.com/RChen/archive/2010/05/17/1737587.html转化为 C# 版本后,还进行了一些重构。包括修改成了强类型,以及使用了 Parallel.ForEach,但是发现没有收到预期的效果。性能提升比较少。研究后发现,其实问题的关键在于要通过某种方式对遍历的可能性进行剪枝,这样才能减少遍历次数... 阅读全文

posted @ 2010-07-06 23:50 NeilChen 阅读(795) 评论(0) 推荐(0) 编辑

Parallel.ForEach 的具体应用技巧,性能加速
摘要:.NET 4.0 有了 Parallel.ForEach(), Parallel.For(), PLINQ 等非常有用的并行相关的支持。但是,并不是简单的利用这些方法的简单形式就可以了,很多时候根据 source list 的不同类型,以及每次循环时所需要调用的处理方法执行时间的长短不同,要想达到最高性能,则必须对 Parallel 相关特性进行详细的了解。大致上,Parallel.ForEach... 阅读全文

posted @ 2010-06-27 05:36 NeilChen 阅读(3561) 评论(4) 推荐(2) 编辑

初学者应该怎样学习 Linq to SQL 框架
摘要:虽然说现在有了 ADO.NET Entity Framework, 不过真正在企业开发中用的比较多的还是 Linq to SQL. 而且,对于固定在 SQL Server 数据库平台上的应用而言,这个框架还是非常好用的。对于想学习 Linq to SQL 的初学者,可以按照我下面画的这张图上列出的次序,由浅入深逐步了解以下列出的所有语言特性(以C#为例):关于详细的文档和示例,可以在以下 MSDN... 阅读全文

posted @ 2010-06-13 13:42 NeilChen 阅读(3067) 评论(25) 推荐(6) 编辑

用 VB.NET 实现的非确定性计算例子
摘要:读 SICP 时,一直对非确定性计算比较感兴趣,今天终于有时间做了一个例子。发现用自动回溯的思想是可以很简单的实现的,呵呵。这个解法的代码还不完备,有很多缺陷,但是基本上可以说明问题了。所谓的非确定性计算的典型例子是“爱因斯坦谜题”,比如这个:贝克、库伯、弗莱舍、米勒和斯麦尔住在一个五层公寓楼的不同层,贝克不住在顶层,库伯不住在底层,弗莱舍不住在顶层也不住在底层。米勒住的比... 阅读全文

posted @ 2010-05-17 18:12 NeilChen 阅读(2128) 评论(4) 推荐(4) 编辑

研究 asp.net mvc2 ajax 原理
摘要:首先,System.Web.Mvc.Ajax 名称空间下,有一个静态辅助类,叫做 AjaxExtensions.他有一系列 ActionLink 方法的重载形式,已供在 html 里使用,方便的生成各种 ajax 链接.最终,这些链接都生成类似下面的一个 js 调用:(其中 {0} 的位置是传入的叫做 ajaxOptions 的 JSON 格式的参数集合)Sys.Mvc.AsyncHyperlin... 阅读全文

posted @ 2010-02-03 17:37 NeilChen 阅读(1378) 评论(0) 推荐(0) 编辑

简单分析一下 RIA Services 的数据绑定原理
摘要:简单分析一下 RIA Services 的数据绑定原理.Neil Chen, 11/25/2009==================================================================利用 RIA Services 的项目模板创建了一个 solution,其中包含一个 Silverlight App 和一个 ASP.NET Web App.名称分别是 ... 阅读全文

posted @ 2009-11-25 14:50 NeilChen 阅读(1846) 评论(0) 推荐(1) 编辑

Gestalt - 在浏览器里用 python/ruby 写客户端脚本
摘要:Gestalt 是 Mix Online Lab 创造出来的一个框架,利用它我们可以在浏览器里用 python/ruby 写脚本来操纵 DHTML 的各种对象,其作用就跟 javascript 类似。一个例子:[代码]还可以将脚本写在独立的文件中,像这样:[代码]其内部实现是利用了 Silverlight 中实现的 DLR 引擎对 IronPython /IronRuby 的支持,不过,这个东西目... 阅读全文

posted @ 2009-07-24 11:41 NeilChen 阅读(1766) 评论(2) 推荐(0) 编辑

Easier programming asynchronous calls
摘要:Asynchronous calls can improve scalability, however, it's always moredifficult for us to do programming jobs under an asynchronous calling manner. The main reason is, asynchronous calls need callbacks... 阅读全文

posted @ 2009-01-18 11:45 NeilChen 阅读(1948) 评论(2) 推荐(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 对比修正。这个... 阅读全文

posted @ 2008-10-31 00:52 NeilChen 阅读(728) 评论(0) 推荐(0) 编辑

Error: The project file ' ' has been renamed or is no longer in the solution
摘要:Solution:Check each project in the solution to see if there are any referenced projects marked with 'unavailable'. If it's true, just remove the reference and add it again later. 阅读全文

posted @ 2008-10-30 15:01 NeilChen 阅读(1234) 评论(2) 推荐(0) 编辑

导航