代码改变世界

被神化的架构和被夸大的CTRL+C、CTRL+V

2013-03-23 21:40 by 麦舒, 2932 阅读, 8 推荐, 收藏, 编辑
摘要:为什么我想谈谈架构,和代码的复制粘贴这两个话题呢,主要是前几天看到一篇文章提到这两个话题,在这里想谈谈我的一些看法。很多新人,都很谈架构,好象贴了架构这个标签就显示高档似的,把设计模式当作圣经,实在可笑。做架构,不是捧着书,然后闭门苦思就能想出来的。架构是做出来的,不是设计出来的架构,说穿了就是解耦,把变化的东西抽离出来,这个是它的本质。一般来说,越接近底层的东西越是稳定,越接近业务层的东西越容易变化。如果想在业务层上作封装,也就是说想作架构设计,必须充分了解业务,没有足够的编码经验是不可能做好的。所以我经常说,架构不是设计出来的,而是做出来的,只要你做完了,整个业务都确定了下来了,了解充分了 阅读全文

一位软件作者的吐嘈——读《Google Reader猝死启示录:互联网无法永远免费》有感

2013-03-22 00:16 by 麦舒, 3987 阅读, 31 推荐, 收藏, 编辑
摘要:夜已夜,躺在床上,翻来覆去,却无法入眠。最近,因为过度疲劳,都成了习惯性失眠了。于是呼从床上爬起,写下了这篇文章。前几天,看到一篇文章,深深地触动自己的内心,这篇文章是《Google Reader猝死启示录:互联网无法永远免费》。给这篇文章打动,主要是文章这几个观点:1、任何软件,无论免费的或者收费的,都必须盈利,没有盈利的产品,终究会消失。2、付费应该得到鼓励,尤其是当你喜欢一款软件的时候,应该为自己所喜欢的软件买单,使得作者继续把这款软件开发下去。作为一个软件开发者,深知开发出一款优秀作品的艰辛,其背后的付出却难以让人所知。前段时间,收到客户的邮件,客户:“ALinq 什么时候能够出新版, 阅读全文

谈谈项目的执行

2013-03-14 11:33 by 麦舒, 1717 阅读, 9 推荐, 收藏, 编辑
摘要:在写完上一篇文章《谈谈项目的开发》后,发现有个地方说漏了,因此有了这篇文章。文章的标题,准备点说应该是项目方案的执行,但读起来觉得有点拗口,所以改成了现在的。任何一个看似完美的方案,在执行的时候都会碰到那样,或者这样的问题。而方案的制定,必须是有利于执行,一个没无执行的方案是没有意义的,切记(切记,是在提醒我自己 ^_^)。在上一篇文章中,我提到了,在制定方案的时候,要详细到每一个类,每一个方法,而且还要在界面上明确标注出来,可能很多朋友会怀疑有没有这样的必要?如此细化,只能用在小项目里吧?有的,非常有必要,因为这样可以确保方案的执行,易于进度的跟踪,下面会展开去谈。我承认,我做的项目的确是小 阅读全文

谈谈项目的开发

2013-03-13 12:30 by 麦舒, 5652 阅读, 21 推荐, 收藏, 编辑
摘要:昨天看了一篇关于做项目方面的文章,也想谈谈自己做项目的经验。本人虽然从事IT行业多年,但是主要从事的工作都是技术研发方面的,比较出名的就是ALinq了,ALinq Dynamic 是最近做的一个,感兴趣的朋友可以看看。 我做的项目不是很多,这方面的经验比较有限,因此,本文的一个目的是希望能够抛砖引玉的作用。熟悉业务开发项目的第一步,就是要熟悉业务了,这个是必须的,只有熟悉业务,才能够了解到客户的需求,从客户的角度去思才问题。否则,开发出来的项目,和客户想要的完全是两码事。具体来说,就是沟通。而和客户沟通,我觉得一个比较有效的手段就是流程图,界面的草图。我现在用的是本子记录,虽然记录方便,但是修 阅读全文

谈谈代码的阅读

2013-03-12 11:32 by 麦舒, 1998 阅读, 7 推荐, 收藏, 编辑
摘要:阅读代码,对于一个程序员来说,是一项很基本而又很重要的能力。我也曾经跟很多新人谈过,“要多看代码,少写代码”,但是,因为阅读代码是件苦差,绝大数的程序员更宁愿写代码。其实写代码,和其它一些行业,也是有相通之处的。比如说,书法或者绘画,都是从临摹开始。写代码其实也是一样,从阅读别人的代码中,提高自己的鉴赏能力,你只有知道,什么是好的代码,什么臭的代码才有可能写出好的代码。而且阅读代码,还可以磨练人的意志和毅力。缺乏毅力的程序员,在这一关中纷纷落马,最后写了好多年的代码,写出的东西还是普普通通。我也知道,很多程序员,一打开项目,看到一大堆的代码,头就大了。其实阅读代码还是有一定的技巧,掌握这些技巧 阅读全文

谈谈技术文档的编写

2013-03-11 14:40 by 麦舒, 6415 阅读, 22 推荐, 收藏, 编辑
摘要:博客园里讨论编程的文章很多,却没有见过谁发表过文档撰写方面的,或者有,是有我不知道呢?但无可否认的是,涉及到到文档方面的极为罕见。这是否与程序员对文档的编写不够重视有关呢。作为一名程序员,我也曾经犯这样的错误,对于文档的编写不够重视。但是长期地和客户接触中,发现文档的撰写极为重要,出色文档绝对可以为你的软件锦上添花,同时,可以减少花在客户身上技术支持的时间。现在,我就谈谈写文档的一些心得。一份文档,应该是由以下几部份组成文档的组成1、软件的简介。这部份内容应该把软件的特点给描述清楚,让用户知道你的软件都有些什么功能、用途。对他们的工作或者生活有些什么帮助。这部份内容,应该是简洁明了,并且描述清 阅读全文

高仿Entity Framework?Linq to SQL也有春天!

2013-03-05 18:06 by 麦舒, 5486 阅读, 23 推荐, 收藏, 编辑
摘要:开发这个框架,主要起源于有很多使用ALinq或者Linq to SQL的用户,经常向我抱怨,它们使用起来的确很爽,但是动态查询太让人纠结了。这个框架主要就是想解决客户碰到的动态查询的问题。至今为至,已经断断续续地写了一年多了,写这个框架,充满了挑战与乐趣。当然,现在更觉得,能把文档写好,更是挑战。大多数的程序员,一直对于写文档这码事,不大重视,我也是其中的一员。但是,长期地与客户打交道,让我认识到,文档是非常地重要的,而且,能把文档写好也不是件容易的事情。这次的发布,更多的精力放在了文档的编写上。所以,在这次的发布包里,你们会看到一份非常用心写的,非常详细的文档。正如你们在标道上看到的,ALi 阅读全文

年度开源力作,博客园首发,回馈广大用户。【Entity SQL for Linq to SQL】

2012-12-03 14:52 by 麦舒, 12154 阅读, 70 推荐, 收藏, 编辑
摘要:好久没有在博客园里抛头露面,距离上一篇博客,想来也有一年了吧。这一年,虽然没有写博客,但是还是一直在关注博客园的。这一年当里,博客园似乎变得更为热闹了,但是,发布作品的似乎比之前少了很多,能够一直坚持下来的更是少。很多用户都问到我,ALinq 很什么时候发布新版,还是已经停止更新了。不止一次说过,只... 阅读全文

在 ALinq 中使用事务

2011-12-04 10:05 by 麦舒, 658 阅读, 6 推荐, 收藏, 编辑
摘要:下面是 ALinq 使用事务的例子,比较简单,直接上代码:var db = new AccessNorthwind("C:/Northwind.mdb") { Log = Console.Out };db.DoTransaction(delegate(){ db.Customers.Update(o => new Customer { CompanyName = "XXXX" }, o => o.CustomerID == "kkkkk"); db.Customers.Delete(o => o.CustomerID 阅读全文

ALinq 常见问题

2011-09-28 15:49 by 麦舒, 3818 阅读, 4 推荐, 收藏, 编辑
摘要:1、使用 ORDesigner 无法生成代码选择当前的 *.admf 文件,在属性窗口中,请确认 Custom Tool 的属性为 ALinqCodeGenerator 。如果该项为空白,请手动输入 ALinqCodeGenerator 。请留言 Error List 窗口提示的错误,然后再报告该错误。如下图所示:2、如何保持表名,字段名称不变?答:选择菜单 Tools -> Options ->ORDesigner ,将 Remove Underscores 设为 false 即可。这个功能主要将字段中的下划线移除,例如:USER_NAME 将变为 UserName 。3、连接 阅读全文

Visual Entity 使用(四)添加、删除属性

2011-09-21 22:40 by 麦舒, 664 阅读, 0 推荐, 收藏, 编辑
摘要:Scalar Properties选择实体类,然后再按 Insert 键即可添加 Scalar Property 。选择相应的属性,再按 Delete 键即可删除。Navigation PropertiesNavigation Property 是在添加链接时候,自动创建的。在链接起端的生成的属性,... 阅读全文

jsData 使用教程

2011-09-06 17:58 by 麦舒, 1099 阅读, 0 推荐, 收藏, 编辑
摘要:简介jsData 是一个采用 JavaScript 编写的数据组件类库,目标是将 Asp.net 中的 GridView,DetailsView,FormView 移植到 JavaScript 中来,并在原有功能的基础上进行扩展,它是为 Asp.net 开发人员而设计。其中 JData.js 文件是用来实现 Asp.Net 中的 GridView,DetailsView, FromView,(FromView 尚未完成),它是基本于 MS AJAX,在使用中需要引用 MS AJAX 。JData.DateTimeField.js,JData.GroupColumn.js …… 等文件是用于对原 阅读全文

NHibernate 快速入门(四)使用 HQL 查询数据

2011-08-26 11:36 by 麦舒, 624 阅读, 0 推荐, 收藏, 编辑
摘要:1、from 子句var db = new NorthwindDataContext();var categories = db.Session.CreateQuery("from Category") .List<Category>();foreach (var category in categories){ Console.WriteLine(category.CategoryName);}2、select 子句var db = new NorthwindDataContext();var categories = db.Sess... 阅读全文

NHibernate 快速入门教程(Visual Entity 初学者必看)

2011-08-24 18:28 by 麦舒, 1427 阅读, 1 推荐, 收藏, 编辑
摘要:前言:本教程主要针对 NHibernate 初学者,让新手快速入门。在这里用到的软件是 Visual Entity ,如果你对 Visual Entity 还不了解。请点击这里软件要求:1、Visual Studio 2008 或 Visual Studio 20102、Visual Entity ... 阅读全文

Visual Entity 使用(三)创建多对多关系

2011-08-24 18:03 by 麦舒, 501 阅读, 0 推荐, 收藏, 编辑
摘要:1、将表 Employees、EmployeeTerritories、Territories 三个表拖放到设计器上。如下图所示:2、右键点击 EmployeeTerritory 实体类,在弹出的菜单中,选择 Convet to M:M Association 菜单项。3、运行代码staticvoid... 阅读全文

Visual Entity 使用(二)创建一对多关系

2011-08-23 18:00 by 麦舒, 734 阅读, 0 推荐, 收藏, 编辑
摘要:1、将 Products 表拖放到设计器上2、Visual Entity 将会自动生成下面的代码DataContext 代码DataContextpublicpartialclass NorthwindDataContext : NHibernate.Linq.NHibernateContext{ ... 阅读全文

Visual Entity 使用(一)创建我的第一个 NHibernate 应用程序

2011-08-23 14:31 by 麦舒, 1330 阅读, 0 推荐, 收藏, 编辑
摘要:1、软件安装1)Visual Studio 2008 with.net Framework 3.5或 Visual Studio2)Visual Entity for VS2008 或 Visual Entity for VS20103)Northwind 数据库(任意一种 Visual Entit... 阅读全文

Visual Entity 手册(二)安装

2011-08-23 14:30 by 麦舒, 902 阅读, 0 推荐, 收藏, 编辑
摘要:到官方网站(http://cn.suremai.com)下载安装包,目前 Visual Entity 支持 VS2008 和 VS2010,大家根据自己的 VS 版本下载不同的安装包。下载完成后,直接安装就行了。然后运行 VS,你会发现一个叫“Visual Entity” 的菜单,点该菜单,然后选择“About Visual Entity”,你会看到有关 Visual Entity 的相关相息,包括版 本,支持的数据库,官方网站等。PS:加载 Visal Entity 插件出现问题?请看看到 Visual Entity FAQ 看看有没有你所需要的答案,如果没有,请给我们留言,或者联系 sup 阅读全文

Visual Entity 手册(一)简介

2011-08-23 14:30 by 麦舒, 1064 阅读, 0 推荐, 收藏, 编辑
摘要:Visual Entity 是一款功能强大的可视实体类代码生成器,整合了建模、代码生成、数据库映射生成等功能。目前支持 Linq to SQL 与 NHibernate 两种 ORM 框架。并且支持多种数据库,当前支持的数据库有 Access、SQLite、MySQL、Firebird、Oracle、SQL Server、SQL CE 等数据库。注意:Linq to SQL 是不支持除了 SQL Server 和 SQL CE 之外的数据库,如果你需要的是 Linq to DB 解决方案,请使用 ALinq 。功能特点:for NHibernate:允许用户从数据库中创建模型,或者直接创建模型 阅读全文

Visual Entity 手册(三)添加 Visual Entity 文件到项目

2011-08-23 14:29 by 麦舒, 702 阅读, 0 推荐, 收藏, 编辑
摘要:使用 Visual Entity 的第一步,便是将 Visal Entity 文件添加到项目中去,当然,你首先得创建一个项目。然后右键点“添加项”菜单,在弹出的对话框中(如下图所示),选择 Data 选项。如果你要使用的是 Linq to SQL 框架,选择 Visual Entity(L2S),如果是 NHibernate 则选择 Visual Entity(NHibernate) 选项。然后点击 "Add" 按钮,将会出现如下图所示的界面。 阅读全文