代码改变世界

随笔分类 -  .NET

Jumony Milestone 1 发布

2010-08-29 01:56 by Ivony..., 3468 阅读, 收藏, 编辑
摘要: Jumony项目Jumony(一)从扩展方法到流畅的程序体验Jumony(二)jQuery的设计艺术和选择器Jumony(三)第一个公开预览版,在.NET里玩转jQuery选择器!Jumony(外一)HTML和数据,同时发布第一个CTP源代码。其实并没有发布所谓Milestone的计划,但是因为我即将离开北京到深圳生活,Jumony的开发必然会要停滞一段相对较长的时间。所以赶在这之前把一些已经构思清楚的功能全面实现,对已知的小Bug进行修复,然后发布了这个版本。在这个版本中大家可以测试我之前发布的那个小范例的代码了。简单的介绍下这个版本中都包含了哪些内容吧。现在可以直接修改HTML文档结构了新 阅读全文

Jumony(外一)HTML和数据,同时发布第一个CTP源代码。

2010-08-18 12:22 by Ivony..., 3749 阅读, 收藏, 编辑
摘要: Jumony(一)从扩展方法到流畅的程序体验Jumony(二)jQuery的设计艺术和选择器Jumony(三)第一个公开预览版,在.NET里玩转jQuery选择器!首先是兑现诺言,上一篇文章中曾经说到源代码会随下一篇文章的发布一同发布。其实我早已打包好了,现在提供下载地址:http://files.cnblogs.com/Ivony/Jumony_CTP(20100802)_Source.rar有... 阅读全文

Jumony(三)第一个公开预览版,在.NET里玩转jQuery选择器!

2010-08-09 18:49 by Ivony..., 3674 阅读, 收藏, 编辑
摘要: Jumony(一)从扩展方法到流畅的程序体验Jumony(二)jQuery的设计艺术和选择器在用ASP.NET做网站页面的时候,最常见和最麻烦的需求便是页面的数据绑定。对于大多数内容网站而言,动态页面和静态页面的的区别仅在于是否有动态数据绑定在上面。然而随着Web前端技术的发展,我们所面对的页面也越来越复杂,譬如说这种页面或是这种页面,在ASP.NET传统的技术下,就很麻烦。最近几年一直在做ASP... 阅读全文

Jumony(二)jQuery的设计艺术和选择器

2010-08-01 02:43 by Ivony..., 3373 阅读, 收藏, 编辑
摘要: 这篇文章的同系列上一篇文章是Jumony(一)从扩展方法到流畅的程序体验,这是Jumony引擎的介绍系列文章第二篇。jQuery是一个了不起的轻量级的JavaScript框架,事实上在jQuery发布之前,就已经有无数功能强大得多的JavaScript框架在流行。从功能列表上来说,jQuery在JavaScript框架中只能算是很不起眼的小弟。但这个小弟在短短的时间内,就成为了最流行的JavaSc... 阅读全文

Jumony(一)从扩展方法到流畅的程序体验

2010-07-24 02:38 by Ivony..., 7011 阅读, 收藏, 编辑
摘要: 今天让公司的程序员试用了一下还在开发中的代号为"Jumony"的HTML数据绑定引擎,开发人员的一句评价被我视为最高的褒奖。“感觉这个框架就是,你想到什么就写什么。”想到什么就写什么,在这个越来越强调快速开发的时代,这一点变得越来越重要。我最近经常戏言:“natural code才是王道”,当然,不是说我们要用中文去编程,而是程序应该成为越来越自然的... 阅读全文

当dynamic遭遇匿名对象所造成的问题初步研究结论。

2010-05-21 03:22 by Ivony..., 3071 阅读, 收藏, 编辑
摘要: 问题是在老赵的博客上看到的:当类型为dynamic的视图模型遭遇匿名对象看到问题后,我的直觉的第一反应觉得这个问题一定是某种特定条件下必然会触发的Bug,与ASP.NET MVC没啥关系。但当时比较懒,做了几次试验后就暂且搁下了。后来swanky.wu同学推进了一把问题的研究,指出:“当用dynamic在某个程序集中定义动态类型后,然后使用匿名类型对象对其赋值,再然后在另一个程序集访问... 阅读全文

LINQ本质 外篇 - JOIN补遗

2009-07-31 23:48 by Ivony..., 7876 阅读, 收藏, 编辑
摘要: 这是对“LINQ本质(再版)第二篇 运算”一文的补遗,主要讲述C#的LINQ表达式如何表示JOIN操作。 阅读全文

XCommunity权限控制和配置体系

2009-06-28 19:46 by Ivony..., 750 阅读, 收藏, 编辑
摘要: 1、问题我们知到一般说到权限管理配置,最常见的就是这样的形式:in:某人、某事out:允许或拒绝。更强大一些无非加入用户组的概念,某用户组的人,某事。但实际上,在稍微复杂的系统中,这样的模式是很糟糕的,比如说论坛。比如说,我要定义一个这样的权限:用户可以在自己发起的话题中修改自己发布的回复。这里的某人是针对任何人的,而某事是:“在自己发起的话题中修改自己发布的回复”,最后控... 阅读全文

线程冲突详解

2009-05-14 19:03 by Ivony..., 10217 阅读, 收藏, 编辑
摘要: 今天被朋友问到一个问题,某个函数在多线程环境中,会不会有冲突。在帮他解答这个问题的过程中,发现很多人对线程冲突和线程安全的理解并不是很全面,所以萌发了写这么一篇文章的想法,也算是对朋友的问题的一个完整的解答。水平有限,如有错漏指出敬请指出。一、什么是线程冲突线程冲突其实就是指,两个或以上的线程同时对... 阅读全文

LINQ本质(再版)第二篇 运算

2008-10-14 19:54 by Ivony..., 3438 阅读, 收藏, 编辑
摘要: 从上一篇文章的论述中我们可以知道,.NET Framework使用IEnumerable<T>表示一个关系(集合),但反之不然。不过IEnumerable<T>的本质是一个序列枚举器,所以IEnumerable<T>本身就具备三重特性,集合、关系、序列。.NET Framework定义了一个扩展类Enumerable用于对IEnumerable进行运算扩展,主要... 阅读全文

C#关于参数为null(空值)的方法调用,重载顺序选择彻底研究

2008-09-24 13:43 by Ivony..., 5984 阅读, 收藏, 编辑
摘要: 其实这是一个很老的问题了,很久以前就在园子里看到有人对此迷惑,当时也没太在意,觉得哪会有人那么写代码。直到最近丁学君的这篇文章:“关于参数为可空值类型的多个重载的优先级”才让我对这个问题重新有了兴趣。并且做出了一个大胆的猜想,现在这个猜想已经被我验证了。 所有具备单向隐式类型转换或者存在继承关系的类型的方法重载,当使用null值调用时,将会使用隐式类型转换的方向来确定调用哪个方法。 简而言... 阅读全文

LINQ本质(再版)第一篇 关系

2008-08-28 14:35 by Ivony..., 3331 阅读, 收藏, 编辑
摘要: 这篇文章主要探讨LINQ所面对的是什么?什么是LINQ技术可以操纵的数据?什么不是?LINQ所面对的数据与关系型数据库有什么关系?关系到底是个什么东西? 在这一篇文章里,我不打算探讨任何LINQ的使用技巧或者实现方法,因为这些,有太多太多的资料。我只打算用一篇文章简单的对LINQ的设计思想做一些阐述…… 阅读全文

LINQ本质(一) 映射

2008-08-18 18:27 by Ivony..., 4733 阅读, 收藏, 编辑
摘要: 在这一篇文章里,我不打算探讨任何LINQ的使用技巧或者实现方法,因为这些,有太多太多的资料。我只打算用一篇文章简单的对LINQ的设计思想做一些阐述。 这是一篇晦涩难懂的文章,因为这是一篇对LINQ技术进行深层次分析的文章,我并没有打算用通俗语言来讨论一个这么沉重的话题,也没有这个能力。 如果您在阅读之前能了解一些集合论的知识,会很有帮助。 阅读全文

从面向对象到关系型数据的设计(一) 后篇 用兼容并包的思想应对变更

2008-08-15 23:13 by Ivony..., 2853 阅读, 收藏, 编辑
摘要: 倒不是我想把一篇文章拆成两部分来赚取人气,不过是希望在这之间,能够给大家一点儿思考的时间。 在上一篇文章中我们提出了一个问题“到底是什么束缚了我们的思想”。 先来看一下上一篇文章的一个回复: “序列化实例? 有没有想过啊,要是某一天需求变了,你的类有所变动了,数据库里面的成千上万的数量都废了啊” ——月の树 这是很有代表性的一个问题, 冗余的数据真... 阅读全文

从面向对象到关系型数据的设计(一) 是什么束缚了我们的思想

2008-08-14 23:36 by Ivony..., 3823 阅读, 收藏, 编辑
摘要: 最近在园子里看到一篇文章,其中作者提出了一个普遍而又有趣的问题: “打个比方我们要设计一个网络书店,经过分析我们决定建立一个表,Book来存储书的信息,里面有ISBN啊,书名等信息。结果等我们做到一半,客户突然说,好像不同的书要存储的属性不大一样,幼儿图书需要标明适合阅读的年龄层次,科技类图书需要标明相关的技术类型。这个时候你是不是要抓狂?这个时候就是对系统模型要进行就改了。错误在哪里呢?也许就是... 阅读全文

DbUtility alpha1版本发布

2007-06-10 20:37 by Ivony..., 4187 阅读, 收藏, 编辑
摘要: 运行环境:.NET Framework 2.0授权方式:GPL下载地址:http://files.cnblogs.com/Ivony/DbUtility.zip其实没打算发布这个半成品的。但是微软也忒快了,.NET Framework 3.5的正式发布将对所有数据访问的Helper产生冲击,显然我的也不会例外。看完了LINQ后,我觉得我这个懒人是不会有那么勤快在.NET Framework 2.0... 阅读全文

正则表达式详解(一)正则表达式初步

2006-10-31 14:40 by Ivony..., 1425 阅读, 收藏, 编辑
摘要: 正则表达式详解(一)正则表达式初步 —— by Ivony... 转载请声明出处 正则表达式的作用是从一个字符串中捕获符合要求的字符串。 先看一个最简单的捕获: “a123b”匹配: “aaab12bb13123c”如果一个字符串中存在至少一个捕获,就算这个正则表达式匹配此字符串。如果只存在一个捕获,而且此捕获是整个字符串,则... 阅读全文

关于ref和out的详细区别。

2006-07-07 15:31 by Ivony..., 1007 阅读, 收藏, 编辑
摘要: ref和out都是C#中的关键字,所实现的功能也差不多,都是指定一个参数按照引用传递。对于编译后的程序而言,它们之间没有任何区别,也就是说它们只有语法区别。总结起来,他们有如下语法区别:1、ref传进去的参数必须在调用前初始化,out不必,即: 1int i;2SomeMethod( ref i );//语法错误3SomeMethod( out i );//通过 2、ref传进去的参数在函数内部可... 阅读全文

关于静态方法和实例方法的一些误区。

2006-06-30 11:10 by Ivony..., 5015 阅读, 收藏, 编辑
摘要: 一、 静态方法常驻内存,实例方法不是,所以静态方法效率高但占内存。 事实上,方法都是一样的,在加载时机和占用内存上,静态方法和实例方法是一样的,在类型第一次被使用时加载。调用的速度基本上没有差别。 二、 静态方法在堆上分配内存,实例方法在堆栈上。 事实上所有的方法都不可能在堆或者堆栈上分配内存,方法作为代码是被加载到特殊的代码内存区域,这个内存区域是不可... 阅读全文

ExecuteScaler的三种返回值。

2006-05-16 10:29 by Ivony..., 1637 阅读, 收藏, 编辑
摘要: DbCommand.ExecuteScaler在执行的时候,有三种可能的返回值:1、返回一个object对象,表示有结果,返回的是第一个结果集的首航首列。2、返回一个DBNull对象,表示有结果,但第一个结果集的首航首列是NULL。3、返回null,表示没有任何结果。明白了这一点,很多时候代码可以简单些,比如说我们判断某条记录是否存在一般要这样写: 1SqlCommand command = ne... 阅读全文