欢迎来到天天文库
浏览记录
ID:27915746
大小:67.50 KB
页数:4页
时间:2018-12-07
《浅谈基于razor模板引擎的代码生成器》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、浅谈基于Razor模板引擎的代码生成器摘要:目前网络上形形色色的代码生成器很多,但并不适合中小软件企业或个人开发者。使用代码生成器提高工作效率的最好办法是做自己的代码生成器。该文从教学实际项冃经验出发,探讨了利用Razor模板引擎生成基于业务模型的软件代码生成器的使用及实践。这将对中小软件企业的软件开发具有指导与借鉴作用。关键词:代码生成器模板C#Razor屮图分类号:G64文献标识码:A文章编号:1672-3791(2017)01(b)-0042-02现实中,计算机软件开发企业大多有很多优秀项目的积累,且有很多优秀的代码及规范的代码标准。要延续这些规范和标准,最好的方法是
2、使用代码生成器及进行过程控制。但使用别人的代码生成器,并不一定适合自身企业的特点,也很容易受制于其软件版本的升级。1规范的代码在编程中的重要性目前,有一定技术实力的软件公司都有自己成熟的软件框架,有自己的代码规范,有自己的各项技术要求。因为规范的代码能大大提高编程的工作效率,为企业带來更多的经济和社会效益。计算机软件行业人员流动频繁,若没有一定的代码规范,新员工很难接手老员工的程序代码,需耍新员工接受相应培训或由师傅帮带,这无疑增加了企业的运营成本。再者,软件的维护周期内,若没有形成一定的代码规范,不仅增加后期维护的工作量及维护难度,同时也将大大提高维护的成本。对此,无论就
3、企业还是个人而言,形成自己规范的代码是非常重要的。每个程序员都应将自己编码的好习惯、好代码转换为模板,这将大大提高自己的编程效率。如何更好将自己的代码转换为模板呢?这就需要用到代码生成器,代码生成器是将固定不变的代码设计为模板,将变化的部分交给模板引擎去处理。2基于Razor模板引擎的代码生成器的特点目前市场上有很多优秀的代码生成器,如:动软.NET代码自动生成器、Autocoder自动代码生成器等。尽管这些代码生成器软件都很优秀,但并不适合每个公司或每个人。最好的办法是实现自己的代码生成器。基于.net的模板引擎有很多种,如:NVelocity、Razor、StringT
4、emplate等。经过多年的编程实践,笔者推荐使用Razor引擎。Razor是和ASPX一样的另一种视图引擎,Razor是作为一种后起的视图模板被ASP.NETMVC3使用,Razor的特点是界面设计灵活,比ASPX视图引擎更专注于WEB前端页面的设计。因为MVC就是基于WEB开发所诞生的一个设计模式,主旨之一就是将页面和业务逻辑解耦。其具有紧凑、富有表现力和流畅、上手快、可以使用任何文本编辑器编写、有很好的智能感应输入提示、便于单元测试等特点。3基于Razor模板引擎的代码生成器的使用我们来看看最简单的Razor模板用法。该文通过模型类文件和Razor模板文件生成相应的冃
5、标代码文件,方案步骤如下(仅以网站项目为例)。(1)将以往优秀项目的各层,如:表示层、数据访问层、业务逻辑层、控制层、业务(领域)模型层等做成相应的模板(其实所有的文本类型的文件都可以做成模板)。(2)创建业务(领域)模型类,该业务(领域)模型类可以包含属性、特性、注释等。(3)利用正则表达式或反射技术,将业务(领域)模型类解析成模板相对应的动态内容,如以上示例代码中的@Model.Name、@Moclcl.Email等。(4)利用Razor引擎进行解析即可。这样设计的目的是通过模型类的类名、属性名、特性及注释等,结合编辑页、列表页、业务代码等模板生成对应的冃标代码。优秀的
6、代码生成器不是一个代码不用写,而是通过写个性化的代码,生成个性化的目标代码,从而增加灵活性。4基于Razor模板引擎的代码生成器的应川实践?1^者经过多年编程实践,已经利用Razor模板引擎开发出了自己的代码生成器,基于asp.netmvcd技术,可在线生成各类界面、Controller类及业务逻辑类,并可打包下载生成的多个文件。目前该代码生成器已经在笔者的教育系统(市教育局艺术节网上报名系统、学校实习实训平台、学校校园网)等多个团队项目中使用,并取得了良好的经济效益和社会效益。实践证明利用Razor模板引擎技术不仅修改模板方便,生成效率高,而且规范了团队代码编写,大大提高
7、编写代码工作效率和软件质量,同时也产生了良好的经济效益。参考文献[1]Razor模板引攀官网[EB/OL].https://github.com/Antaris/RazorEngine.[2]郭晓民.基于自动代码生成的WEB业务工具[D].西安电子科技大学,2008.[3]王建光.基于模型驱动架构的软件生成技术研究[D].太原理工大学,2007.
此文档下载收益归作者所有