(把时间回到昨天中午)刚吃完午饭,吃边边在想早上下载的最新版本的CodeSmith(5.2),看它生成的CSLA框架代码的情况,搞了一阵子,出现很多异常,还以为是软件出毛病了,逛了他们的E文说明才发现比2.0多了很多步骤,最后还是搞定了,令自己大吃一惊,新版本(3.8)中的东西比2.0里面多了很多,这里是指代码生成时的代码量多了很多!!类也成了嵌套式的了,把业务、属性、数据门户等通过部部分类的形式分开了,而且附加了很多零碎操作,比如OnFetching这种的部分方法,或许是因为现在的客户端技术太多了,反而显得框架有些零散,不过如果普通使用的话删掉还是可以。

  原本以为2.0的思想会搬到3.6/3.8里面,确实是搬了,不过看框架源码里面改动的挺大,更智能化了,特别是对于属性的操作,封装的真是厉害,跟踪了好几次才搞明白,没有2.0里面那样简洁了,突然感觉不如2.0里面爽...

  经过开发药品管理这个小系统,突然发现思想被束缚了,与刚开始接触petshop式的普通三层那个时期一个感觉,好像找到了最好的思想,最为理想的解决方案,对于csla来说,无论是它对“客户”开放的接口量,还是对于业务处理的思想,对于属性getter,setter的充分利用,业务验证的创建到业务的CheckRules的过程,数据门户的封装与处理,通过配置方式配置多台机器的分布式方式,还有好多好多的功能,很强大,不过对于业务对象的设计来说好像有一点问题,或者没有想出好的解决方案,对象里面存在继承关系,对于这个框架里面不知道如何来解决这种继承,不过对象组合是没有问题,典型的就是父子关系(无论是单对象还是集合对象),父对象有责任对子对象进行数据加载(也就是说子对象的数据来源于父对象提供),也拥有对子对象进行跟踪的权力...

  刚想到个问题,出于DDD思想,一般情况下它提出业务数据操作与数据库数据操作的分离,也就是说,业务数据与关系数据不会一一对应,更狠点说业务对象不关心数据是怎样处理的,这些处理都委托给基础设施层来搞定,这里就存在一个问题,就是业务对象的数据与关系数据的映射,通常情况下我们实现时是通过SQL查询或者LINQ2SQL、EF等来实现,查询出来后就直接映射到实体上,而要解决这种不对应关系就要通过map来把关系数据再次映射到业务数据,这么一来,数据的中转过程多了一步,无论是数据的读取还是更新操作,性能问题会怎样呢?对应到CSLA里面也是如此,没有测试过,只是担心,尽管数据操作会通过移动对象的方式放在服务器来处理,或者说这点根本不算是性能耗费,还是说这也是一种性能与扩展之间的平衡选择呢。。

  当然,对于某个框架或者某项技术来说说肯定是要把它放在一种,或者说是一类应用领域中,与设计模式那样,用在了正确的地方才显得出它的优势。

  (文章内容没有"科学依据",仅是自己的随想)

转载于:https://www.cnblogs.com/quluqi/archive/2010/06/30/1768059.html

关于CodeSmith生成CSLA代码的联想相关推荐

  1. CodeSmith实用技巧(八):生成的代码输出到文件中

    在CodeSmith中,要把生成的代码文件输出到文件中,你需要在自己的模版中继承OutputFileCodeTemplate类.<?xml:namespace prefix = o ns = & ...

  2. python 自动生成C++代码 (代码生成器)

    python 代码自动生成的方法 (代码生成器) 遇到的问题 工作中遇到这么一个事,需要写很多C++的底层数据库类,但这些类大同小异,无非是增删改查,如果人工来写代码,既费力又容易出错:而借用pyth ...

  3. 【工具软件】webstorm如何使用快捷键生成固定代码

    我们写前端页面时会有很多的机械重复代码,每写一个文件都要重新写一遍,枯燥且浪费时间,有没有一个方法可以快速生成这些代码呢?有!webstorm替我们考虑到了这个问题,提供了解决方案,接下来让我们一起看 ...

  4. AI 生成的代码可信吗?编写的代码有 Bug 吗?

    编译 | 禾木木 出品 | AI科技大本营(ID:rgznai100) 即使是帮助开发人员编写软件的工具也会产生类似的bug. 目前,大部分的软件开发人员会让 AI 帮助开发者们编写代码,但是开发人员 ...

  5. AI生成的代码你敢用吗?

    选自gist.github 作者:0xabad1dea 机器之心编译 编辑:Panda 近日,GitHub 推出了一款利用人工智能生成模型来合成代码的工具--Copilot,但发布之后却饱受争议,包括 ...

  6. vue文件快速生成模板代码

    vue文件快速生成模板代码 输入 vue 按 tab 键

  7. AI生成的代码你敢用吗?有人给最近走红的Copilot做了个“风险评估”

    来源:机器之心本文约5100字,建议阅读10分钟 本文为你介绍一款利用人工智能生成模型来合成代码的工具-Copilot. 近日,GitHub 推出了一款利用人工智能生成模型来合成代码的工具--Copi ...

  8. powerdesigner生成php代码,让powerdesigner生成的sql语句在mysql上成功执行

    花了大概半天的时间学习了下powerdesigner的用法,等我生成sql语句时,发现在生成的sql语句根本不能在mysql中执行,当然我的dbms是设置了mysql的. 在网上搜索一通,也没有什么好 ...

  9. CXF wsdl2java 生成java代码供客户端使用

    CXF wsdl2java 生成java代码供客户端使用 环境配置: 1.下载apache-cxf-2.6.2在环境变量中配置CXF_HOME 值为E:\gavin\cxf\apache-cxf-3. ...

最新文章

  1. android中设置ListView的选中的Item的背景颜色(附源码)
  2. mysql子查询为什么不走索引_解决MySQL中IN子查询会导致无法使用索引问题
  3. Lintcode107 Word Break solution 题解
  4. MySQLSyntaxErrorException: Specified key was too long; max key length is 767 bytes
  5. 从python开始学编程pdf 解压密码_从Python开始学编程PDF高清完整版网盘免费分享...
  6. hive olap 数据仓库_数据仓库系统的实现和使用(含OLAP重点讲解)
  7. mysql数据库属性_mysql - 数据库操作和数据属性
  8. mybatis oracle trim,Mybatis trim标签
  9. LeetCode-Sum Root to Leaf Numbers
  10. SpringBoot的搭建
  11. unity3d多个版本共存
  12. 2.2 BubbleSort
  13. CAXA_三维电子图板v2
  14. Android开发关于调用摄像头黑屏没反应的问题
  15. 如果你没有钱,没有能力,没有人脉,你就这样干!
  16. XP下IIS相关问题
  17. 【游戏开发渲染】Unity ShaderGraph使用教程与各种特效案例:Unity2022(持续更新)
  18. 教你给大量视频快速调整色调的方法
  19. 完美云主机购买小技巧分享
  20. 云模型的介绍及python简单实现

热门文章

  1. Leviathan系列4-7
  2. 系统状态检测 及进程控制
  3. Cacti+Nagios安装后按自己的相关要求修改相关信息
  4. IBM X3650 M4 服务器
  5. java http get_「面小易-面经12」阿里巴巴Java方向面试题汇总(含答案)
  6. 关于SqlServer导入access数据库,十进制字段的精度过小的问题
  7. 助力南京打造创新名城 第三届未来网络发展大会将召开
  8. c++矩阵运算库Eigen简介
  9. PowerShell 导出SharePoint管理中心解决方式
  10. SplObserver观察者模式