一、瞎扯框架、架构楼主自从1998年从C语言、MASM、Foxbase开始学计算机开始接触这个行当16年以来,2001年干第一份与程序、软件、然后是各种屌的东西开始,差不多干了13年了,这13年来,用过VF\VC\VB\C#搞过N多N多的项目,记得在2002年、2003年那个疯狂并且操蛋的年代,在整天VB代码与各种SQL、各种Bug、各种需求敲打、各种吐血的需求变更、各种大半夜还坐在医院的小板凳的加班与折磨之中,慢慢的学会去思考,他妈的这是为什么,写了程序那么的折磨人,从那时开始,就接触各种软件工程相关的东西,思考着是否可以发现能解决或者改变这种现关的东西,记得那个时间好像挺流行一本书,叫《银弹》,在那个年龄,也尝试对需求、变更进行控制和管理,但是在野蛮生长的中国软件业,用户这个上帝才是帮一位的,我们也尝试使用VB+COM/COM+进行加载和框架的提练,进行某些代码和架构级别的规范,试图使用那些技术去实现分布式架构的应用,以及通过插件机制去实现对需求的小范围控制,只是基于那些机制的先天不足和营养不良的环境,对项目与企业的现状改变不是多少。 在厌烦了VB开发之后,楼主也接触了Java,只是接触,没有做过多少开发,能大概看明白什么个意思,总体上来说,不是很喜欢基于Java开发,其中的原因第一是楼主在那个年代做的是CS类的MIS类应用,其实就是一直在做医疗行业的应用,Java做CS简直是弱爆了,再一个java IDE也直接太弱爆了,楼主是懒惰的一个人,不喜欢用记事本那种比较装的干法去写高深的代码。 2004年接触VS2003之后发现简直是找到了自己喜欢的东西了,VS2003配置.net1.1,也提供了简单的WebService和.NET Remoting技术,简直让以前在VB时候梦寐以求却难以搞定的机制就非常简单的实现了,.net所提供的反射机制可以实现很简单的插件开发,从那个时间起,楼主就写出了AgileEAS.NET SOA中间件平台的最初始版本,一个简单的winfrom插件平台。 从2004年到2014年,差不多快10年的时间,楼主也像所有的程序员一样,把AgileEAS.NET SOA当自己的宝贝一样的,升级、增加新的东西,早期关注各种IOC、各种AOP、各种ORM、各种通信等基础类的东西,2010年底专职从事咨询服务工具,为各种规模、各种业务的软件商提供框架定义、技术咨询服务、医疗行业业务咨询服务等服务。 也是自2011年之后对什么框架、什么架构、什么应用商店、各种云架构有了更简单的认识,整天没事扯架构、扯框架的人,或许压根就不知道什么是框架、什么是架构,架构、框架不是各种空泛的理论和各种看似华丽的词汇,架构或者框架、平台应该是一类能帮助开发人员、开发商提高效能的东西,好的框架一定是简单好用的,那怕是功能不是很强,也比较单一,但一定要好用,另外一个,框架或者架构一定要配合相应的工具,就比如.NET的种类库如果没有VS开发环境的配合,估计就是一堆废柴。 在很多人看来,能写框架、平台、架构的人都是牛人,实际上这是一个误导,写框架的人不一定是技术上的牛人,一个框架、平台、架构上没有什么多少高深的技术,比如做插件框架的,就一个简单的反射技术,相信一个C#程序员,用一周时间足够搞的很清楚了,再比如ORM框架,也没有什么高深的技术,动态拼接SQL加上动态反射创建实体,所以说从技术层面上来讲,写一个框架、类库不需要多少技术,因为这些东西都 是现成的并且可以你很容易找到。 但是一个好的框架或者平台,一定会有其配合很好的工具,比如对象建模工具、界面设计工具、文档生成工具、代码生成工具,以及相关的配置、管理、通信、监控工具,一个平台或者一个架构的生产力一方面体现在框架所提供的那引起基础类库所建立的规范,另一个很重要的原因是其配置工具所提供的快速开发能力是极其重要的,或者说一个框架是否能被应用的广泛,工具所带来的用处远远大于基础类库所提供的功能。 能写好一个优秀的框架并能提供大量、可用、好用的框架开发才不一定是技术上的牛人,但一定是对软件工程管理、企业软件生产组织模型或者某一业务领域的业务经验一定有其独到的理解,其框架之中所倾注的业务与软件工程管理经验才是框架作者最宝贵的财富,经验需要日积月累,可不是一天两天能练成的,不管在任何行业、经验都是非常值钱的东西。 二、3小时完成一个Northwind案例在最近的一段时间之内,群里的好多朋友都希望我能给大家通过视频展示一下AgileEAS.NET SOA 中间件快速开发的相关技术,以便让更多的朋友学习和参考,但是一直忙于客户的各种项目、各种咨询服务以及家中的一些杂事,给大家拖了好久,拖的实在我都有点不好意思了,所以在上周做了一点准备,原本是想在原DrugShop的案例上进行,但是有朋友建议,在原项目基础上做,可以不一定让大家从头了解和从头开始学习、配置和如何从一个空白建立一个新的项目。 经过一些了解之后我们决定从SQLServer数据库所提供的案例Northwind基础上做一些简化和改动,为什么要使用Northwind案例呢,主要原因是其设计比较规范,了解和熟悉的人也非常的多,便于大于理解其业务需求。 楼主对Northwind做了一些简单的改进,主要是那方面的改进呢:
1)原来的Northwind主要重点再于客户和销售的管理,对采购入库业务处理的不是很好。
2)原来的Northwind对库存管理做的比较弱。
3)简化了原Northwind的客户、和销售管理,删除了对销售订单的区域等参数。
修改完成的Northwind主要提供了以下两大业务模型,采购入库业务:
销售订单业务: Northwind的设计准备是前一天做好的,然后楼主通过YY为大家提供现场的快速开发培训,边讲角边做开发,从生成代码到第一个手工完成业务模块“商品分类”、“商品字典”、使用界面生成器生成了两个业务模块“员工管理”、“客户管理”,一直做到“采购入库”、“采购入库查询”、“库存查询”、“销售订单业务”一共8个模块,涉及数据查询、界面编辑、分层业务模型、输入字典、报表设计、检点控件挑战、输入焦点变色、文本输入验证等大量的工具、控件及相关技术,理论上已经完成了Northwind案例的所有业务,当然如果要完美的话可以增加“收支报表”、“销售订单查询”、以及界面的美化,界面验证的完善。 希望群里和各位朋友Northwind例没有完成的工具去做一做,把他做完,这一定是一个非常不错的项目模板,以下是几个做好的界面: 三、源代码、视频下载在培训过程之中,楼主全程开启录相,录了大概。2.1G的高清视屏,目前已经全部上传在百度网盘和我们的服务器,源代码已经上传到我们的SVN服务器和下载服务器,请大家下载视频和源代码,视频时长4小时,请大家耐性观看。 视频下载地址,百度云:http://pan.baidu.com/s/1qW79ack 官网服务器:1.AgileEASNET SOA 5平台配置.avi 2.AgileEAS.NET SOA 5元数据设计器.avi 源代码下载,源代码请通过AgileEAS.NET SOA 中间件平台官方网站下载,或者通过以下方式下载: 直接下载:AgileEAS.NET SOA 案例(Northwind)源码下载,http://42.121.30.77/downloads/eas/Northwind.rar。 SVN更新:http://42.121.30.77:8080/svn/Northwind,登录用户:eas,密码eas. 四、问题反馈麻烦大家在通过视频进行学习的时候能及时把问题反馈给楼主,或者有什么需要改进的一些建议都请向楼主直接反馈,以下是联系方式: AgileEAS.NET SOA 网站:http://www.smarteas.net 官方博客:http://eastjade.cnblogs.com 楼主QQ:47920381,AgileEAS.NET QQ群:113723486(AgileEAS SOA 平台)/上限1000人 199463175(AgileEAS SOA 交流)/上限1000人 120661978(AgileEAS.NET 平台交流)/上限1000人 邮件:james@agilelab.cn,mail.james@qq.com, 电话:18629261335。 另外,楼主将会不定期的通过YY举办类似本次活动的培训,所以麻烦大家都关注一下YY频道:65011880,也可以加一下楼主YY号:537601972。
|