代码改变世界

艾伟:为什么微软要推 ADO.NET Data Services Framework

2011-08-29 00:02 by 狼人:-), 199 阅读, 0 推荐, 收藏,
摘要:微软在 .NET 3.5 SP1 平台上,推了一组新的数据访问 Framework,叫做 ADO.NET Data Services。微软怕程序员太闲吗?为什么要创造 ADO.NET Data Services?Web Service 和 WCF 不就很好用了吗?本帖整理一些研讨会及网络上大内高手的观点,并提供一个可在 VS 2008 SP1 上执行的示例给大家下载参考;但本帖不提供 step by step 实作教学,因为网络上已经有一堆这种文章了 (参考本帖最下面的「参考文件」第 6、第 7 点的文章,照着用 VS 2008 + SP1 操作,即可达成本帖提供下载的示例)。 .... 阅读全文

艾伟:F4何去何从 --- 大视野观察Framework 4.0

2011-08-29 00:02 by 狼人:-), 192 阅读, 0 推荐, 收藏,
摘要:Framework 4.0 CTP版发布一个多月了,在此期间稍有闲暇就打开来试试,尝试一下这个新东东。总体感觉微软现在技术大爆炸,一下子往F4里塞了好多东西,有的确实不错, 不过有的还是感觉有点粗糙,还经不起实战考验。那以下我会简单和大家过一遍这个新的框架,一起来聊聊F4的前景。 简单回顾下历史,F1.1其实是个试验品,.Net Framework真正走向成熟其实从F2开始的,之后的F3,F3.5其实都是基于F2的扩充,我个人感觉应该定义为F2.1,F2.2。没想到微软喜欢搞大跃进,随便加点东西就变个新版本。 F3+F3SP1除了修正了一些F2的bug之外,主要的扩展是加了3W框架,分别是W. 阅读全文

艾伟:WPF中的Style(风格,样式)

2011-08-29 00:01 by 狼人:-), 213 阅读, 0 推荐, 收藏,
摘要:在WPF中我们可以使用Style来设置控件的某些属性值,并使该设置影响到指定范围内的所有该类控件或影响指定的某一控件,比如说我们想将窗口中的所有按钮都保持某一种风格,那么我们可以设置一个Style,而不必分别设置每个按钮的风格。Style是作为一种资源被保存下来的. 看下面的例子: <Window.Resources><StyleTargetType="Button"><SetterProperty="Foreground"Value="Blue"/><SetterProperty=" 阅读全文

艾伟:为WPF项目创建单元测试

2011-08-29 00:01 by 狼人:-), 197 阅读, 0 推荐, 收藏,
摘要:可能你已发现一个问题,我们无法使用VS对WPF项目创建单元测试(VS2005不行,VS2008我没试过,但据说也不行),这让人很郁闷,这里将介绍如何使用NUnit来对WPF项目创建单元测试并解决其中的难题(但利用NUnit来对WPF创建单元测试时并不会像针对.Net2.0一样容易,可能会出现一些小问题).1,对普通类(非WPF UI组件)进行测试:这和在.Net2.0中使用NUnit进行测试时一样,不会出现任何问题,参考下面的代码: [TestFixture]publicclassClassTest{[Test]publicvoidTestRun(){ClassLibrary1.Class1o 阅读全文

艾伟:闲话WPF之一(WPF的结构)

2011-08-29 00:01 by 狼人:-), 219 阅读, 0 推荐, 收藏,
摘要:WPF进入我们的生活已经很多年。(写这句话让我想起来了“我不做大哥好多年”。) 个人认为在UI的实践中,用户需要的是易于操作的,更加绚丽的界面。这两个应该是最基本、也是最重要的宗旨。而对于开发人员就是要用最简单的方法开发出尽可能漂亮的界面,并且效率也不能太差。(要求是不是有些过分啦!)除了在一些Web开发和特殊的应用中,很少有开发组配备单独的美工,至少目前是这样吧!根据自己目前对WPF的了解程度,感觉WPF在其中某些方面确实有超强的震撼力。 客观上讲,Vista操作系统确实给我们带来了无可比拟的视觉效果。我自己深有体会,在近2个月的时间里每天都是在Vista下的开发,回家后看到XP系统,始终有 阅读全文

艾伟:WPF简介

2011-08-29 00:01 by 狼人:-), 229 阅读, 0 推荐, 收藏,
摘要:WPF简介WPF的全称是Windows Presentation Foundation,是微软新发布的Vista操作系统的三大核心开发库之一,其主要负责的是图形显示,所以叫Presentation(呈现)。 作为新的图形引擎,WPF是基于DirectX的,当然增加了很多新的功能。其2D和3D引擎的强大看看Vista的界面就明白了,再加上其对Aero图形引擎的支持,更加让你刚到神奇。顺便提一下,Aero是专门为3D桌面开发的引擎,可以让桌面实现神奇的3D翻转,这绝对是操作系统有史以来的一次神奇尝试,虽然对硬件配置的要求也是惊人的,此前已有相关报道称,Vista对显卡十分挑剔就是出于运行Aero的 阅读全文

艾伟:Tip:自定义UpdatePanelTrigger

2011-08-29 00:01 by 狼人:-), 173 阅读, 0 推荐, 收藏,
摘要:大家在使用UpdatePanel的时候有没有遇到过这种情况呢? 页面上放置着3到4的UpdatePanel,它们互相独立,并且UpdateMode都是Condition,这意味着没有哪个UpdatePanel每次都会更新。大多数UpdatePanel都是由某个控件回发而更新,但是其中的一个例外。它没有哪个控件来触发它,它有自己的一套逻辑来判断是否更新。这段逻辑独立于其他控件。 理论上,这段逻辑可以放在页面的某个生命周期里进行判断,例如OnLoad。但是如果,这个判断甚至必须放在PreRenderComplete之后呢?再者,如果我们真的很想把判断是否更新的逻辑给独立与页面的生命周期... 阅读全文

艾伟:手工打造运算符重载过程

2011-08-29 00:01 by 狼人:-), 130 阅读, 0 推荐, 收藏,
摘要:除了J#外,所有微软支持的.NET开发语言现在均支持运算符重载,因此纯粹为C#简化写法一样特性现已成为一种.NET开发中值得研究的一项重要语言特性。有人认为运算符重载其实就是简化写法,满足模拟基本类型操作的小功能,没有必要深究。但我觉得要多思考一层,为什么我们总希望模拟基本类型的操作?因为运算符重载能够将操作中缀化,能够自动推测静态过程的主体。 首先是操作中缀化。函数调用其实是一种前缀操作,函数(代表操作)总是在参数(代表操作数)之前写出。这样执行序列操作时运行的顺序其实和书写的顺序相反: H(x,y)G(H(x, y), z)F(G(H(x, y), z), w) 序列运行的顺序是H-> 阅读全文

艾伟:Ajax基石脚本异步并发调用参数传递

2011-08-29 00:01 by 狼人:-), 173 阅读, 0 推荐, 收藏,
摘要:在Ajax开发框架中,最基本的划分是服务器端和客户端。服务器端相对来说比较简单,只要是可以开发动态网页的语言都可以胜任;客户端浏览器就是JScript/JavaScript的天下了,好像没有看到有VBScript做的Ajax客户端库,就算它只支持IE。由于客户端依赖于脚本并运行在浏览器中,似乎比服务器端的可实现和可管理性还要差些。 这里我说一下Ajax中的A, Asynchronous调用的一些问题。如果我们在异步调用时不为方法传递任何的参数,那么这个问题也就简单甚至不存在了。但是事实上,我们开发一些稍微复杂些的功能时,对于"脚本异步并发调用参数传递"这个功能是很需要的。说 阅读全文

艾伟:在Mono平台开发前你应该知道

2011-08-29 00:01 by 狼人:-), 174 阅读, 0 推荐, 收藏,
摘要:在Mono平台开发前应该做的第一个事情就是,调整好心情,降低期望值: 对于Linux本地C程序员而言,由于习惯了疯狂和有魔力的本地C程序员开发,因此对于Mono提供的诸多限制可能不太满意。大体而言,Mono和.Net程序一样,属于框架开发的范畴,对于框架开发,最好在框架规定的范围内工作,否则会陷入孤立无缘的境地。Mono没有C开发那些唾手可得的工具,也不能对系统进行无限的挖掘,Mono关注的是应用软件开发,不是系统软件(Mono 可以支持本地服务开发)。Mono支持两重类型软件开发,以WEB为中心的软件和以本地为中心的开发。WEB包括常规以上的应用型网站开发,也包括基于服务的模型开发。... 阅读全文

艾伟:Private 访问控制符的准确意义

2011-08-29 00:01 by 狼人:-), 195 阅读, 0 推荐, 收藏,
摘要:假设我写了一个类,代码如下 namespaceXXXXXXX{publicclassA{privateintAdd(inta,intb){returna+b;}}} 如果要单元测试A的Add 方法的话, 由于Add 是private 的, 单元测试代码无法直接访问,这时候,我们可以利用反射来作. 微软很多的bug也多数通过反射,访问private 属性或者字段可以fixVS 2005 自动生成的单元测试代码 [DeploymentItem("XXXXXXX.exe")][TestMethod()]publicvoidAddTest(){Atarget=newA();Test 阅读全文

艾伟:.NET实现可交互的WINDOWS服务

2011-08-29 00:01 by 狼人:-), 210 阅读, 0 推荐, 收藏,
摘要:这几天想做个文件监控服务,看了一下网上的关于WINDOWS服务的文章,数量都不少,都只讲了如何做一个最基本的服务,却没有讲述如何与用户进行交互。查看了MSDN,看一下关于服务的描述: Windows 服务应用程序在不同于登录用户的交互区域的窗口区域中运行。窗口区域是包含剪贴板、一组全局原子和一组桌面对象的安全对象。由于 Windows 服务的区域不是交互区域,因此 Windows 服务应用程序中引发的对话框将是不可见的,并且可能导致程序停止响应。同样,错误信息应记录在 Windows 事件日志中,而不是在用户界面中引发。 .NET Framework 支持的 Windows... 阅读全文

艾伟:重提URL Rewrite(3):在URL Rewrite后保持PostBack地址

2011-08-29 00:01 by 狼人:-), 180 阅读, 0 推荐, 收藏,
摘要:在进行了URL Rewrite之后,经常会遇到的问题就是页面中PostBack的目标地址并非客户端请求的地址,而是URL Rewrite之后的地址。以上一篇文章中的重写为例: <rewriter> <rewrite url="^/User/(\d+)$" to="~/User.aspx?id=$1" processing="stop" /> <rewrite url="^/User/(\w+)$" to="~/User.aspx?name=$1" processin 阅读全文

艾伟:如何实现用返回值重载

2011-08-29 00:01 by 狼人:-), 185 阅读, 0 推荐, 收藏,
摘要:今天[ IceSharK - PP.Poet ]很清纯地提出了一个问题,如何能做到函数返回值重载?简单的说,就是如何实现 stringTest() {...} int Test() {...} 然后通过接受方的上下文自动选取重载: int i = Test(); string s = Test(); 当然VB或者C#都是不允许这样写的。不过IL并没有禁止这一写法,事实上在VB或C#中有一种语法结构允许按照返回值选取相应的重载,那就是隐式类型转换运算符(implicit operator或者Widening Operator CType)。通过辅助类的隐式类型转换运算符,我们可以实现上述要求的语 阅读全文

艾伟:重提URL Rewrite(2):使用已有组件进行URL Rewrite

2011-08-29 00:01 by 狼人:-), 147 阅读, 0 推荐, 收藏,
摘要:可能已经没有人会使用上一篇文章中的方法进行URL Rewrite了,因为提供URL Rewrite的组件早已铺天盖地了。 ASP.NET级别的URL Rewrite组件的原理很简单,其实只是监听BeginRequest事件,并且根据配置来决定目标URL。在我之前接触过的项目中,发现使用URLRewriter作为URL Rewrite组件的频率非常高,我想可能是因为那是微软提供的东西吧。 如果要使用URLRewriter,首先自然就是在web.config中配置一个HttpModule: <httpModules> <add name="ModuleRewriter& 阅读全文
上一页 1 ··· 287 288 289 290 291 292 293 294 295 ··· 312 下一页