摘要:在一个 asp.net webform 的程序 postback 时,碰到了这个异常,而且无法调试。Google 了一下,发现原因原来是 asp.net 对一个 form post 的字段数有限制,在打过最新的安全更新后,这个限制的数目是1000个,超过了就会报这个异常。解决的办法是在 web.config 里面加一个设置,增大这个限制值:<appSettings><addkey="aspnet:MaxHttpCollectionKeys"value="2001"/></appSettings>而为什么会有这么多 fi
阅读全文
摘要:Irony 可以用来实现一个你自己设计的 .NET 语言,通过这个工具包,不需要自己写词法、语法编译程序。只要将目标语言的语法用 C# 语句进行定义即可。 Irony 通过 C# 运算符重载实现了利用 C# 定义语法规则的功能。比如定义 SQL 语言的语法,通过 Irony 写出来的甚至比 BNF 还要短。利用这个东西可以方便的定义自己的 DSL. 有空关注一下。 http://www.han...
阅读全文
摘要:在做 URL Rewrite 时可能遇到这类问题,即想要使用的 Rewrite 后的目标 URL 中会含有特殊字符,或者说不能直接映射到操作系统的文件系统允许的文件名格式,比如以 “.” 结尾等等。如果不做特殊处理的话则 ASP.NET 引擎会报 "CheckSuspiciousPhysicalPath” 的错误。解决办法:1. ASP.NET 版本小于4.0的情况,可以在 Global.asax.cs 中处理 PreSendRequestHeaders 事件,例如:protected void Application_PreSendRequestHeaders(object sen
阅读全文
摘要:如果数据库里有 char(1) 字段,利用 Linq to SQL 设计器拖过来之后,自动产生的映射的类型是 System.Char. 需要手工修改为 System.String, 否则程序可能会报错。 VS 2008 中存在这个 bug. VS 2010 尚未测试,不明。
阅读全文
摘要:原因:没有正确设置 DataTextField. 分析:RadComboBox 控件的客户端 js 代码中,会判断选择的项和当前选项是否相等,如果不同,才会触发 SelectedIndexChanged 事件。 开始的时候不知道这个怪异的行为,仅仅设置了 DataValueField 字段。 但实际上单凭这个 telerik 的 js 代码还无法区分两个 item 是否相等。 所以,要“正确设置 ...
阅读全文
摘要:随着 ASP.NET MVC 3 发布了 Razor 视图引擎。这个引擎使得编写页面模板的语法更加简洁和精炼了,也更加 "DRY”. 可以参考 Scott Gu 的帖子: ASP.NET MVC3: 通过Razor实现布局 其特色有: 支持类似 Rails 里面的 layout 文件定义(取代了 ASP.NET 视图引擎里面的 master page 机制)。 支持对所有视图应用统一的 lay...
阅读全文
摘要:Razor 是 ASP.NET MVC 3.0 支持的一个新的视图引擎,但只要你愿意,也可以摆脱 MVC 框架,而把它用作普通的文本模板引擎。这样也许我们不用学习流行的 T4 了?参见思归的博客: 怎么在ASP.NET WebForm中使用Razor视图引擎
阅读全文
摘要:(CLR via C# 3rd Edition) 在 GUI 程序中 (winform / wpf / silverlight),如果启动新的线程池线程,则在此线程中将不能直接更新 UI. 在 asp.net 中,在处理 client request 的线程中,同时会根据客户端的情况关联相应的 System.Globalization.CultureInfo, 以便服务器端能够使用客户相关的 c...
阅读全文
摘要:Jeffrey Richter 的 blog 讲述了一种改写遗留代码的办法,可以让原先不是线程安全的代码运行在不同的 AppDomain 中,从而支持在多个线程中使用。 http://www.wintellect.com/CS/blogs/jeffreyr/archive/2010/09/01/using-appdomains-to-make-non-threadsafe-code-thread...
阅读全文
摘要:前段时间尝试了一点 Google 的 Go 语言,感觉其很多特性还是不错的。Go 语言旨在结合传统编译型的静态语言和解释型的动态语言的优点,在其中找到一个平衡。从而打造一个既快速(编译执行),又方便编程的语言(动态语言往往语法简单快捷)。同时,Go 语言还具备丰富的特性以支持并发编程,这在现在多核非常普及的情况下,是很重要和强大的一个功能。 Go 语言的并发特性主要有 goroutine, ch...
阅读全文
摘要:这是之前我写的原始的 VB.NET 版本:http://www.cnblogs.com/RChen/archive/2010/05/17/1737587.html转化为 C# 版本后,还进行了一些重构。包括修改成了强类型,以及使用了 Parallel.ForEach,但是发现没有收到预期的效果。性能提升比较少。研究后发现,其实问题的关键在于要通过某种方式对遍历的可能性进行剪枝,这样才能减少遍历次数...
阅读全文
摘要:.NET 4.0 有了 Parallel.ForEach(), Parallel.For(), PLINQ 等非常有用的并行相关的支持。但是,并不是简单的利用这些方法的简单形式就可以了,很多时候根据 source list 的不同类型,以及每次循环时所需要调用的处理方法执行时间的长短不同,要想达到最高性能,则必须对 Parallel 相关特性进行详细的了解。大致上,Parallel.ForEach...
阅读全文
摘要:虽然说现在有了 ADO.NET Entity Framework, 不过真正在企业开发中用的比较多的还是 Linq to SQL. 而且,对于固定在 SQL Server 数据库平台上的应用而言,这个框架还是非常好用的。对于想学习 Linq to SQL 的初学者,可以按照我下面画的这张图上列出的次序,由浅入深逐步了解以下列出的所有语言特性(以C#为例):关于详细的文档和示例,可以在以下 MSDN...
阅读全文
摘要:读 SICP 时,一直对非确定性计算比较感兴趣,今天终于有时间做了一个例子。发现用自动回溯的思想是可以很简单的实现的,呵呵。这个解法的代码还不完备,有很多缺陷,但是基本上可以说明问题了。所谓的非确定性计算的典型例子是“爱因斯坦谜题”,比如这个:贝克、库伯、弗莱舍、米勒和斯麦尔住在一个五层公寓楼的不同层,贝克不住在顶层,库伯不住在底层,弗莱舍不住在顶层也不住在底层。米勒住的比...
阅读全文
摘要:首先,System.Web.Mvc.Ajax 名称空间下,有一个静态辅助类,叫做 AjaxExtensions.他有一系列 ActionLink 方法的重载形式,已供在 html 里使用,方便的生成各种 ajax 链接.最终,这些链接都生成类似下面的一个 js 调用:(其中 {0} 的位置是传入的叫做 ajaxOptions 的 JSON 格式的参数集合)Sys.Mvc.AsyncHyperlin...
阅读全文
摘要:简单分析一下 RIA Services 的数据绑定原理.Neil Chen, 11/25/2009==================================================================利用 RIA Services 的项目模板创建了一个 solution,其中包含一个 Silverlight App 和一个 ASP.NET Web App.名称分别是 ...
阅读全文
摘要:Gestalt 是 Mix Online Lab 创造出来的一个框架,利用它我们可以在浏览器里用 python/ruby 写脚本来操纵 DHTML 的各种对象,其作用就跟 javascript 类似。一个例子:[代码]还可以将脚本写在独立的文件中,像这样:[代码]其内部实现是利用了 Silverlight 中实现的 DLR 引擎对 IronPython /IronRuby 的支持,不过,这个东西目...
阅读全文
摘要: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...
阅读全文
摘要:这是很常见的一个错误。网上搜到了几个总结的帖子:http://www.dudo.org/article.asp?id=116http://forums.asp.net/p/1040236/1446560.aspx但是有时候会发现试过这些方法仍然不行。其实最简单的办法,是新建一个 ASP.NET AJAX 的网站,然后将 web.config 的内容跟出错网站的 web.config 对比修正。这个...
阅读全文
摘要: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.
阅读全文