上一页 1 2 3 4 5 6 7 8 9 ··· 11 下一页
  2011年7月18日
摘要: 有一天,我想带全家一起去旅游。我拿起手机,按了几个键,说“查一下丽江的旅游路线”。顿时一幅巨大的图画,出现在面前的面前原来看上去平淡无奇的白墙上。我用手指点丽江地图的一个个景点,秀丽山水的照片和视频也随之显示在旁边,就好像我们已经身临其境一般。参考着Twitter的点评,我选择了一条路线,以及住宿的宾馆。然后又按了两个键,这条路线就被发送到了我的汽车里。我知道在旅途中,全家只管玩在线游戏,还有探讨未来生活就好了,自驾卫星导航仪会直接把车开到我们预订的丽江宾馆。 这是个美好,但并不空洞,甚至也不遥远的未来。我断言最多二十年后,我们一定可以做到。问题是这二十年中,谁帮我们一步步达成心愿,谁来... 阅读全文
posted @ 2011-07-18 10:53 小城故事 阅读(9785) 评论(65) 推荐(24) 编辑
  2011年6月23日
摘要: .Net中对象之间的相等比较,是看似简单,实际上有点儿复杂。这和现实世界的情况差不多,无论人或物,现实中没有两个绝对相等,只有相对的属性一致或同属某个类别,这学问细究下去无穷无尽,一辈子也未必参得透。而.Net中的相等,没有那么捉摸不透,却也值得品味一番。 说到相等,新手上来,先学到的就是相等操作符==(有的.Net语言中是单=),这个很自然,问题是有不少人工作了一两年,提到相等还是只想到操作符,就太片面了。 在这里,茴香豆的茴字有四种写法,.Net中也主要有四种相等比较,分别是:==操作符、Object.Equals方法、Object.ReferenceEquals方法、对象实例的E... 阅读全文
posted @ 2011-06-23 17:50 小城故事 阅读(2830) 评论(10) 推荐(6) 编辑
  2011年5月31日
摘要: 2011年初开始做一个项目,开始体验使用微软网站发布工具来发布网站。在服务器端安装发布服务后,可以在Visual Studio界面中右键点击Web项目,再点发布,第一次填好发布设置,以后就可以实现一键发布,虽然还有不少高级功能没有用到,不过已经方便得不敢相信了。敏捷开发的一个要素不就是每日构建吗,开发过程中,每天下班前Check In代码(Visual Studio装了Anksvn插件),再发布到服务器上,连一分钟都不用。 具体步骤这里不介绍了,大家有兴趣可以看下Scott Guhire的博客。顺便说一下,那个WebPlatform Installer要比我当时逐个网上搜索下载方便多了,... 阅读全文
posted @ 2011-05-31 01:00 小城故事 阅读(5228) 评论(11) 推荐(9) 编辑
  2011年4月14日
摘要: 上一文中讲了带编号(或说是路径)的树状目录结构基本操作。谢谢有朋友提醒SQL Server2008以上版本可以采用HierarchyId类型字段,也很希望能看到阐述这方面最佳实践的文章。 理论联系实践,再提高理论认识,这是我一直追求的一个良性循环。本文将目录结构在实践中的一个应用,其实和结构存储方式倒没直接关系。 先请大家看个截图,这是一个部门选择菜单控件。 这是一个纯CSS实现的多层级下拉菜单,相对来说在网页上较少见。当点击选择一个部门时,旁边的文本框会显示该部门的各层级名称,并将该部门编号记录到一个隐藏域中,用于提交查询。 这个控件和遍历目录下的文件一样,用递归方式写入HTML... 阅读全文
posted @ 2011-04-14 14:16 小城故事 阅读(3397) 评论(1) 推荐(3) 编辑
  2011年4月13日
摘要: 刚学编程不久时,曾参加了一个短期培训。培训结束时,和毕业设计一样,要做一个模拟项目,几个人一起的。我选的是一个在线音乐网站,当时觉得自己水平已经不错了,虽然小组其他人比较菜,做出来应该问题不大。但在一个音乐收藏夹目录的数据库设计上,我和我们老师有一次可以说比较激烈的争吵。 我的想法是,每个目录应该包含多个子目录,但最多只有一个父目录,应该只有一种最简单、最合理选择:每个目录有唯一主键及父目录主键。 我的想法却被指导老师否定了,他当时讲的理由是什么,我几乎全忘了,可能根本没在听。我坚决地维护自己观点,辩论中举出二叉树、数据库范式等种种理论。我并不需要什么证书,不怕得罪谁,我的数据库系... 阅读全文
posted @ 2011-04-13 21:55 小城故事 阅读(4754) 评论(22) 推荐(4) 编辑
  2011年4月11日
摘要: 上一篇文章中,曾经讲在Asp.Net中采用ADO.Net Entity做缓存的处理方式,就是继承默认的ObjectContext,在保存更新时,Detach所有被Attach过的实体。曾经认为是天衣无缝,其实根本没考虑到在附加实体后,保存更新前,这中间如果出现异常的情况。比如有一个页面有这样的语句:var DB = new DBContext(); //实体上下文var person = EmployeeHelper.GetPersonByID(id); //从缓存中取数据DB.Attach(person);person.Name = "流川枫";person.JoinDa 阅读全文
posted @ 2011-04-11 00:30 小城故事 阅读(934) 评论(0) 推荐(2) 编辑
  2011年3月9日
摘要: 通过一段时间对Ado.Net Entity Framework的使用,感受到它的便利同时,也受到了一些困扰。其中最大的困扰,是源自AEF的设计理念,并不完全符合Web开发,以及有并发访问要求的系统。 最明显的一点体现在缓存上。使用缓存是提高系统数据交互性能最简捷有效的途径,但如果想缓存Ado.Net Entity的话,并不是想像中那么简单,比如:var db = new DBEntities();HttpContext.Current.Cache["product"] = db.Products.ToList(); 如果你这样写了,那恭喜你,如果你试图在另一个上下文环境中修 阅读全文
posted @ 2011-03-09 16:45 小城故事 阅读(4018) 评论(19) 推荐(3) 编辑
  2011年2月20日
摘要: Ado.Net Entity Framework一如微软其它产品,用起来相当方便,基本可以无师自通。可“自通”背后也隐藏了不少陷阱,比如它正常情况下的更新模式就是如此:var db = new DBEntities(); //Ado.net Entitesvar section= db.Sections.First(s => s.SectionNo.Equals(sectionNo));section.Name = "人事";db.SaveChanges(): 这会导致每次更新一条记录,必须先将其查询出来。看SQL Profiler后,发现一个简单的更新要进行两次数据 阅读全文
posted @ 2011-02-20 14:04 小城故事 阅读(3766) 评论(14) 推荐(2) 编辑
  2011年2月19日
摘要: 业务逻辑(BLL)层的组织,长期以来一直是个困惑。打从开始引入ORM后,BLL层不再出现SQL语句和存储过程,感觉思路清晰了不少,现在自己对BLL结构认识大致上定型,一般根据不同方面的业务逻辑,对应不同的命名空间,亦即不同的文件夹,每个文件夹下可能有多个Helper类。对于缓存、日志、邮件等通Helper类,放在Common目录下。 这是传统的三层架构,如果使用SOA的话,可能多一个服务层,一般来说,项目分层不要超过四层。 下面说说创建Helper基类的目的,因为各个Helper类,尤其是在Web开发中,都面临一些类似的问题: 1、如何和数据打交道。有了ORM不能替代我们对性能的思考... 阅读全文
posted @ 2011-02-19 20:57 小城故事 阅读(1311) 评论(0) 推荐(0) 编辑
  2010年12月31日
摘要: 回顾2010 收获:新的工作,学到许多新的知识。方面包括XSLT/XPath/InfoPath/TFS/Reporting Service,编程基础和理解也深入了许多。 博客:参加了微软社区精英活动,自己博客经过一年,浏览量总算突破了10万。 生活:没什么变化,勤快了一点点。 职场:不好不坏吧。 情感:像风中的蜡烛。 感悟:修身齐家治国平天下。展望2011 方向:突袭Silverlight/WP7,强攻WCF,清剿Asp.Net。 任务:整理回顾所有的知识代码。 愿望:2011年,可以一身轻松地做自己想做的事,要是能再提高些效率更好。 预测:从人生阶段看,这必将是转变的一年... 阅读全文
posted @ 2010-12-31 09:58 小城故事 阅读(542) 评论(4) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 11 下一页