请问用代码生成器生成的三层架构和手工建立的三层有什么区别?
今天经历让建一个三层框架出来,我就用动软代码生成器,生成了一个简单三层出来。但是经理说这个不行,自己建一个。
我感觉两种都是一样的?有什么区别呢非要手工建立一个????
请各位架构大神给点建议吧
[解决办法]
如果你手工建的和机器建的一样,那你真不行。管你三顿饭比交点电费贵多了。
[解决办法]
kao ,一个框架那么容易写出来嘛
抽象数据层,你用sqlserver,那么你sqlserver继承抽象数据层,写自己的数据层,扩展sqlserver数据层
抽象逻辑层,sqlserver的逻辑层继承抽象逻辑层,写成自己的逻辑层
模型层,这个可以用工具生成
前两个你必须手动写好 ,然后在让工具生成才能用,直接用工具生成的,你在自己扩展,那不行,你每个项目都要扩展吗。
最后还要有自己的一个常用工具函数库。比如缓存,字符,类型转换,xml操作等,写到一个函数库里,用的时候直接调用
[解决办法]
其实生成的还是能用的 我当初也用过动软代码生成器
但现在给我选择 我会选择codesmith 因为可以自己写模版 确定自己要生成什么代码~
如果你明白了三层的好处和如何搭建的 代码生成工具只是可以减少我们敲那种没营养的代码
如果你没有用过三层 现在也不了解 那么三层和代码生成工具都挺吓你的~
[解决办法]
动软生成的三层,其实就是简单的数据访问层,业务逻辑,界面,说白了它生成的只是一个业务的传递,任何一个稍微复杂点的系统根本不适合使用哪种模式,简单的系统会觉得那个三层有点多余。一个系统架构的设计需要首先去了解业务需求。如果说任何系统我们都用动软的代码生成器,那么架构师就失业了。
我的建议是你先去了解一下你将要做的系统的需求。搞明白了再想想从技术的角度你该怎么处理,任何一个刚毕业的人做项目都会迷茫。一般都是从修改小的功能点开始入手然后逐步扩大可处理的范围,比如到一个模块,再到多个模块。所以有点惊讶你们经理的这个决定真实的意图是什么。
[解决办法]
你必须要用代码生成器,codesmith,dsl T4 模板等。
如果十几个表,几十个表,都要写实体类,你估计会吐血的,
码生成器 开发框架,是解放程序员双手的工具,在你建立项目后,基本的搭建,都是框架,代码生成干的
最后逻辑开发,扩展才是你做的,就是生成逻辑层也是基本实现,比如实体获取,列表绑定,增删改查,这些基本操作都一样,不用一个个的写。
但是业务逻辑不是框架,代码生成器所能解决的,所以得靠程序员的大脑,思考,写出稳健,可靠,高效的商业业务逻辑。
你要想弄一个框架也不是一时半会,就能搞定的。你多查查资料三层的实现吧
[解决办法]
代码生成需要先有通用解决方案的代码,然后才是有模板。生成的代码不是用来被改的,是用来被扩展的。有新的需求,要改也是改模版,甚至扩展模版。所以生成的代码与手写的代码,不存在谁好谁坏,因为生成代码的好坏是模版决定的,而模版就是手写的代码。
代码生成ORM,个人认为最佳实践是由实体类映射生成数据库,不是由数据库结构映射生成实体类。
很多人把代码生成与ORM划等号,其实ORM只是代码生成的一个小案例而已,也许因为ORM经常被提到。
只是说真的,这事不应该是现阶段的你做的,除非你经理只是个挂牌的。
[解决办法]
楼主,看你这种情况,是因为基础缺乏,而这些基础是[程序如何设计、软件体系结构、设计模式、软件工程、...]
建议你在公司做项目的同时,自己也在家用C/C++或者Java写一些本地的小程序,顺便深入下软件工程、软件体系结构那些方面的知识。
楼主的困境在于对“设计”方面的知道的太少,而程序设计,最重要的就是“设计”,有良好的“设计”,才有良好的软件。编写只是其中一个必要的过程,仅仅是一个实现的过程。“设计”才是最根据的。
要学好“设计”,就需要大量学习计算机方面的知识,不管是搞WEB的还是本地的,都没有理由不学习计算机基础知识,这些知识有:“操作系统、编译原理、数据结构、软件工程、...”
不光是大量的知识,还要有自己的经验,经常写一些自己的软件,不是盲目写,而是有目的的写。在写之前设计好程序的结构,或者在网络上搜索已有的结构、方式。如果你坚持,那么每成功设计一个小程序,你就提升了一点经验。
[解决办法]
各种生成器里面需要自己修改很多东西。。
实体类这样的如果你能确定不再修改数据库的话,能生成就生成吧。。
至于数据访问和业务逻辑还是要自己写的。。
[解决办法]
生产方式落后的开发组织中,
程序员基本上都是在一遍一遍的实现相似的甚至相同的业务逻辑,
代码生成器生成的也就是这样类似的代码,
所以无论是复制粘贴还是自动生成,都没有基于"好的设计"去实现,
[解决办法]
2.易用性,我想用过Moon.ORM的应该可以知道这点.配置简单,智能感知,代码生成器的辅助,会sql就可会用Moon.
3.多数据库多数据源支持.在同一个项目中我们需要处理这种情况时,Moon.ORM是你最好的选择.如你系统默认为MSSQL,现在要同时使用 MYSQL,你只需要实例化一个引擎就可以.DBFactory.GetEntity<Person> (pjy_AdminRoleTable.RoleID.BiggerThan(0),new MYSQL("连接字符串"));当然你可以把引擎做成全局的.
4.语法糖功能.个人使用的结果是大概能满足我实际需求的70%以上的功能.
5..NET 2.0原生支持,这个就不用说了.
6.数据库转变问题,如果你发现你有一天你的数据库需要从mysql转变到mssql,你只需要转变你的配置文件即可.(当然sql语法差异的问题,你需要自己注意了,如果你在用原生的sql进行操作时).
http://www.cnblogs.com/humble/archive/2012/05/20/2510756.html