.NET代码生成器有助于快速应用程序开发

你可以完全用自己开发的代码(也可能还有来自MSDN的部分程序模块)来建立一个支持快速应用程序开发(rapid application development,RAD)的环境。但是我认为作为一名.NET开发者,如果你不去考虑现有的第三方代码生成器的话,那么你就是在欺骗你自己以及你的公司。

使用代码生成器(code generator,CG),你就可以从一组简单的设定或者数据库设计中获得几百、几千行代码。如果不采用这项技术的话,开发者就不得不花上几个小时或者几天的时间来手工编写这些代码。许多开发工作室要么让它们的初级程序员创建这些“grunt code”、要么把它外包给国外的程序员以节省开销。CG有着这两种方法所没有的好处,即一致性。

代码生成器是如何工作的

从模板生成的所有代码的命名规则、文件编制、访问机制等都是相同。任何两个开发员各自开发的代码都无法保证这一点(甚至同一个开发员在不同时间所开发的代码也不能保证)。CG有两种工作方式:自顶向下(top down)和自下向上(bottom up)。

使用top-down CG,你可以通过定义系统的对象以及对象之间的关系来定义该系统,CG还创建了事务对象(business object)以及底层数据库大纲(schema)。Bottom-up CG按照你的数据库设计来创建一套数据类以及事务类(依据数据之间的关系)。你可以按照自己的情况来决定采用CG这两种工作方式的某一种。

如果你必须与其它系统的数据库交互且该系统仍将使用其数据库数据,那么你最好采用bottom-up CG,这样可以简化所需产生的数据类,这也就加快了你的开发过程。不过,我一般更喜欢采用top-down CG,因为它要求设计者在事务层次上预定义关系,而且在创建事务类这一工作上它做的比bottom-up CG好很多,你可以继承这些事务类并扩展你的设计。

DeKlarit:一个不错的top-down CG工具

如果你还没有用过top-down CG,那么我强烈建议你下载DeKlarit工具的试用版。自打我开始使用这个工具已经有好几个月的时间了,但是我还是常常对它的强大功能感到吃惊。你只需定义描述系统的数据元素以及它们之间的关系,DeKlarit就会产生一个完整的事务框架(包括事务类和数据类)以及底层数据库。DeKlarit可以用C#或者VB.NET来生成事务框架,用SQL Server或者Oracle来生成数据库。

DeKlarit有三个优点,这三个优点使它成为系统设计者的利器。首先,你只需设计数据元素之间的关系,DeKlarit就会产生结构良好的、标准化的数据库大纲。其次,如果你修改了事务框架,DeKlarit会重新生成代码并在保留数据的同时重新产生与大纲相匹配的数据库。最后,DeKlarit可以产生测试装具模块(test harness),有了这个模块,你就可以通过用ASP.NET或者Windows窗体插入、更新数据的方式来检查事务框架。尽管市面上CG工具并非只有DeKlarit,但是它的确是所有我在进行.NET开发时所用过的top-down CG工具中最出色的。

何时使用代码生成器

许多开发者强调他们在生产环境中不会使用CG所生成的代码,因为他们对最终产品中存在自己所没有碰过的代码而感到不放心。尽管我理解这种担心,但我仍然认为这是没有必要的。退一步来说,即使在最终产品中不采用CG所生成的代码,CG也是为客户开发详细原型的好工具。如果让CG来产生事务类、数据类和数据库大纲的原型,那么你就可以在这个框架的基础上建立你自己的表示类,这样你就可以快速创建种类众多的功能。至少,通过提供一个完整的原型,CG技术可以帮助你快速的发掘出系统潜在的隐患。如果CG所产生的代码可以让你放心的使用,那么它可以帮你节省数周乃至数月的最终开发和测试时间。

时间: 2024-09-20 06:08:33

.NET代码生成器有助于快速应用程序开发的相关文章

《Abaqus GUI程序开发指南(Python语言)》——第二章 Python语言基础2.1 Python语言的特点

第二章 Python语言基础 Abaqus GUI程序开发指南(Python语言)Python语言是一种动态解释型编程语言,其功能强大,简单易学,支持面向对象编程(object-oriented programming),虽然由于其动态性致使程序解释执行速度比编译语言慢,但是随着Python语言的不断优化以及计算机硬件的迅猛发展,Python语言将会受到越来越多用户的关注.Python具有开源.自由等特征.它的简洁性和易用性使程序的开发过程变得简单,特别适用于快速应用程序开发. 本章将简要介绍P

甲骨文推出两款数据库应用程序开发工具

甲骨文股份有限公司是全球大型数据库软件公司,成为全球仅次于微软的全球第二大软件公司,总部位于美国加州的红木滩,现时行政总裁为公司创办人罗伦斯·艾利森(Lawrence J. Ellison).甲骨文1977年硅谷由3人合制,最初一年赚不够百万美金,在10年间迅速冒起,2004年市值达640亿美元. 约在2000年前后,微软的数据库产品,只集中在中小企市场,但微软推出MS SQL 7数据库后,技术上突破,抢占高档软件市场.IBM亦以DB2数据库,高姿态抢攻市场,令甲骨文面临庞大挑战.在制定反击策略

ios-老程序员如何快速掌握iOS开发,请推荐相关图书和在线视频

问题描述 老程序员如何快速掌握iOS开发,请推荐相关图书和在线视频 作为一名对C++十分熟悉的老程序员,如何快速掌握iOS开发, 斯坦福的iOS在线课程很有名http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-fall 还有这套课程 http://www.xcelme.com/courses.php 教师Gary Bennett写过两本iPhone的书for Apress Books: iPhone Cool Pr

Java 开发 2.0: 使用 Google App Engine--利用 Groovy、Eclipse 和 JDO 进行快速 Web 应用程序开发

开源解决方案和外来基础设施改变了 Java 开发的特征,使您能够以更低的成本.更快的速度交付更好的软件.Andrew Glover 发明了 Java 开发 2.0 这一术语,使用它概括了所有这些现象体现出来的强大力量.他推出了一个全新的系列,主要介绍有关 Java 开发 2.0 的工具和技术.本系列的第一期文章将宣布 Java 开发 2.0 的到来,并解释了如何使用 Google 的 App Engine for Java 迅速实现这些概念. Java 世界如同一个丰富的生态系统,涉及开发人员.

使用微信小程序开发前端【快速入门】_javascript技巧

前言 2016年9月22日凌晨,微信官方通过"微信公开课"公众号发布了关于微信小程序(微信应用号)的内测通知.整个朋友圈瞬间便像炸开了锅似的,各种揣测.介绍性文章在一夜里诞生.而真正收到内测邀请的公众号据说只有200个. 虽然内测名额十分稀少,但依赖中国广大开发者的破解和分享精神,在网络上很快出现了开发工具的破解版本和API文档.然而可能是微信的妥协或者早已预料,9月24日微信官方发布了不需要破解就可以使用的微信小程序开发者工具和文档,对于费劲心思破解完的开发者来说应该瞬间整个人都不好

Mac 应用程序开发的绝佳起点

  你是否想要开发 Mac 应用程序却又不知道从哪里入手?本路线图提供了 Mac 应用程序开发的绝佳起点,即使你已经是一个 iOS 开发专家,本路线图对你依然适用.Apple让开发应用程序和提交应用程序到 Mac App Store 变得简单.遵循本路线图以了解如何取得开发工具,理解主要概念及最佳实践,并学会查找更多信息.   继续遵循此路线图,你将使用到 Xcode(Apple 提供的集成开发工具)来开发 Mac 应用程序.你将了解 Objective-C(驱动所有Mac应用程序和框架的程序设

Visual Studio Whidbey——Web应用程序开发新功能预览

visual|web|程序 摘要:本文介绍了代号为"Whidbey"的Microsoft Visual Studio中一些能够加快和便于数据驱动Web应用程序开发的新功能.这些新功能包括:更好的HTML源代码编辑器,更好的IntelliSense,改进的数据访问支持,以及完全支持XHTML标准等.      内容:   ·更好的HTML源代码编辑器   ·更好的可视化设计器   ·更好的Web项目管理   ·更好的数据访问支持   ·更好的标准支持   ·总结      即将发布的产品

《微信公众平台开发:从零基础到ThinkPHP5高性能框架实践》——2.2 程序开发基础

2.2 程序开发基础 PHP(超文本预处理器,Hypertext Preprocessor)于1994年由Rasmus Lerdorf创建,他也被称为"PHP之父".PHP是一种通用开源脚本语言.其语法吸收了C语言.Java和Perl的特点,便于学习,使用广泛,主要适用于Web开发领域.PHP是最受欢迎的Web开发语言之一,也是微信公众平台开发使用最广泛的语言. SQL是结构化查询语言(Structured Query Language)的简称,它是一种数据库查询和程序设计语言,用于存

针对InfoSphere BigInsights的基于Eclipse工具加快应用程序开发

如果您刚接触大数据应用程序开发并且想要快速进行开发,那么您可能希望了解 IBM InfoSphere BigInsights Enterprise Edition(一个基于开源 Apache Hadoop 项目的平台)提供的工具.BigInsights Eclipse 工具包括向导.代码生成器.上下文相关的帮助,以及一种简化开发工作的测试环境.使用这些工具,您可以在 BigInsights 基于 Web 的目录中快速 "发布" 应用程序.然后,您可以使用 BigInsights Web