C#发现之旅第三讲 使用C#开发基于XSLT的代码生成器(1)

为了让大家更深入的了解和使用C#,我们开始这一系列的主题为“C#发现之旅 ”的技术讲座。考虑到各位大多是进行WEB数据库开发的,而所谓发现就是发现我们所 不熟悉的领域,因此本系列讲座内容将是C#在WEB数据库开发以外的应用。目前规划的主要内 容是图形开发和XML开发,并计划编排了多个课程。在未来的C#发现之旅中,我们按照由浅入 深,循序渐进的步骤,一起探索和发现C#的其他未知的领域,更深入的理解和掌握使用C#进 行软件开发,拓宽我们的视野,增强我们的软件开发综合能力。

本课程说明

经过以前的学习,我们大体上了解了XML/XSLT开发,在本课程中,我们将在ASP.NET中使用C# 开发一个基于XSLT技术的代码生成器。

代码生成器

首先说说什么是代码生成 器。个人认为是一种工具软件,它能根据某种已经固定的信息,使用程序来机械的大批量的 生成有结构上有比较简单规律的源代码,从而减少软件开发人员的编码量。

从广义上 讲,我们写的WEB数据库程序都是代码生成器,它们能根据保存在数据库中的固定数据自动生 成大量的HTML代码。在这里我们限制代码生成器为通用代码生成器。代码生成器主要功能是 帮助程序员自动生成大量的底层代码,这种代码可以是C#或Java的程序源代码,也可以是SQL 语句,或者HTML代码等等,是一种软件开发过程中的辅助工具软件。

我们最常用的代 码生成器是根据数据库结构自动生成能操作数据库记录的程序源代码,SQL语句或其他文档等 等。对于这种代码生成器,其数据信息来源就是数据库的表结构和字段属性等信息,我们可 以分析遍历数据库的系统表来货的表结构和字段信息,也可以从PowerDesigner等数据结构设 计器保存的文档中获得。

针对某个特定的项目,我们可以根据数据库结构临时写一个 代码生成器,使用字符串拼凑来生成源代码,但这种代码生成器不通用,难于用于其他项目 。因此我们更多的是使用通用的代码生成器。

很多通用代码生成器的原理如图

在这个图中,我们看到代码生成器包含了模板库和代码生成器处理引擎,模板库包 含了若干个模板,一个模板一般是纯文本,其中可能包含了脚本代码,或者类似ASP的结构。 生成器引擎加载一个或者多个数据库表结构设计信息,然后调用用户指定的模板,通过某种 操作来自动生成另外一个文本文件,这个文本文件内容可以是纯文本,HTML代码,C#代码或 者其他。

考察这个结构,可以发现这个原理和XSLT原理很相似。我们可以将数据库表 结构设计信息保存在一个XML文档中,代码生成器模板就使用XSLT格式,代码生成器引擎就使 用XSLT转换引擎,这样我们也可以达到代码生成器的功能,从而搞出基于XSLT的代码生成器 。

时间: 2024-11-02 16:56:16

C#发现之旅第三讲 使用C#开发基于XSLT的代码生成器(1)的相关文章

C#发现之旅第三讲 使用C#开发基于XSLT的代码生成器(2)

在本演示程序中,我们只是用程序目录下的一个Access2000数据库作为例子,因此也只调 用了LoadFromAccesss2000这个函数,其他的分析SQLSERVER和ORACLE的函数没用到.在未来 当这个代码生成器经过改善而投入实际应用时,它就能分析SQLSERVER和ORACLE等企业级数据 库了. 在主页面xslcreatecode.aspx中定义了一个GetXMLString函数,它能将一个对象 序列化成一个XML文档.这里的DataBaseInfo,TableInfo和Field

C#发现之旅:WinForm.NET中开发具有固定背景图片的可滚动控件

在WinForm.NET开发中,可以使用一个Panel或UserControl作为一个带滚动条的容器放置 图形或其他控件.我们可以设置控件的BackgroundImage属性来设置控件的背景图片,但这个 背景图片是会随着控件内容的滚动而滚动的,而且还出现背景破碎的不良效果.现笔者在开 发实践中遇到控件的背景图片不随着控件的滚动而滚动. 在B/S开发中,开发者可以 使用"background-attachment:fixed"的CSS样式来固定HTML文档的背景图片, 使之不随着内容的滚

C#发现之旅第十讲 文档对象模型

为了让大家更深入的了解和使用C#,我们将开始这一系列的主题为"C#发现之旅 "的技术讲座.考虑到各位大多是进行WEB数据库开发的,而所谓发现就是发现我们所 不熟悉的领域,因此本系列讲座内容将是C#在WEB数据库开发以外的应用.目前规划的主要内 容是图形开发和XML开发,并计划编排了多个课程.在未来的C#发现之旅中,我们按照由浅入 深,循序渐进的步骤,一起探索和发现C#的其他未知的领域,更深入的理解和掌握使用C#进 行软件开发,拓宽我们的视野,增强我们的软件开发综合能力. 课程说明 本

C#发现之旅第九讲 ASP.NET验证码技术

为了让大家更深入的了解和使用C#,我们将开始这一系列的主题为"C#发现之旅 "的技术讲座.考虑到各位大多是进行WEB数据库开发的,而所谓发现就是发现我们所 不熟悉的领域,因此本系列讲座内容将是C#在WEB数据库开发以外的应用.目前规划的主要内 容是图形开发和XML开发,并计划编排了多个课程.在未来的C#发现之旅中,我们按照由浅入 深,循序渐进的步骤,一起探索和发现C#的其他未知的领域,更深入的理解和掌握使用C#进 行软件开发,拓宽我们的视野,增强我们的软件开发综合能力. 本系列课程配套

C#发现之旅第八讲 ASP.NET图形开发带超链接的饼图

为了让大家更深入的了解和使用C#,我们将开始这一系列的主题为"C#发现之旅 "的技术讲座.考虑到各位大多是进行WEB数据库开发的,而所谓发现就是发现我们所 不熟悉的领域,因此本系列讲座内容将是C#在WEB数据库开发以外的应用.目前规划的主要内 容是图形开发和XML开发,并计划编排了多个课程.在未来的C#发现之旅中,我们按照由浅入 深,循序渐进的步骤,一起探索和发现C#的其他未知的领域,更深入的理解和掌握使用C#进 行软件开发,拓宽我们的视野,增强我们的软件开发综合能力. 本系列课程配套

C#发现之旅第七讲 C#图形开发高级篇

为了让大家更深入的了解和使用C#,我们将开始这一系列的主题为"C#发现之旅 "的技术讲座.考虑到各位大多是进行WEB数据库开发的,而所谓发现就是发现我们所 不熟悉的领域,因此本系列讲座内容将是C#在WEB数据库开发以外的应用.目前规划的主要内 容是图形开发和XML开发,并计划编排了多个课程.在未来的C#发现之旅中,我们按照由浅入 深,循序渐进的步骤,一起探索和发现C#的其他未知的领域,更深入的理解和掌握使用C#进 行软件开发,拓宽我们的视野,增强我们的软件开发综合能力. 本系列课程配套

C#发现之旅第六讲 C#图形开发中级篇

为了让大家更深入的了解和使用C#,我们将开始这一系列的主题为"C#发现之旅 "的技术讲座.考虑到各位大多是进行WEB数据库开发的,而所谓发现就是发现我们所 不熟悉的领域,因此本系列讲座内容将是C#在WEB数据库开发以外的应用.目前规划的主要内 容是图形开发和XML开发,并计划编排了多个课程.在未来的C#发现之旅中,我们按照由浅入 深,循序渐进的步骤,一起探索和发现C#的其他未知的领域,更深入的理解和掌握使用C#进 行软件开发,拓宽我们的视野,增强我们的软件开发综合能力. 本文配套源码,

C#发现之旅第五讲 图形开发基础篇

为了让大家更深入的了解和使用C#,我们将开始这一系列的主题为"C#发现之旅 "的技术讲座.考虑到各位大多是进行WEB数据库开发的,而所谓发现就是发现我们所 不熟悉的领域,因此本系列讲座内容将是C#在WEB数据库开发以外的应用.目前规划的主要内 容是图形开发和XML开发,并计划编排了多个课程.在未来的C#发现之旅中,我们按照由浅入 深,循序渐进的步骤,一起探索和发现C#的其他未知的领域,更深入的理解和掌握使用C#进 行软件开发,拓宽我们的视野,增强我们的软件开发综合能力. 本文配套源码,

C#发现之旅第四讲 Windows图形开发入门

为了让大家更深入的了解和使用C#,我们将开始这一系列的主题为"C#发现之旅 "的技术讲座.考虑到各位大多是进行WEB数据库开发的,而所谓发现就是发现我们所 不熟悉的领域,因此本系列讲座内容将是C#在WEB数据库开发以外的应用.目前规划的主要内 容是图形开发和XML开发,并计划编排了多个课程.在未来的C#发现之旅中,我们按照由浅入 深,循序渐进的步骤,一起探索和发现C#的其他未知的领域,更深入的理解和掌握使用C#进 行软件开发,拓宽我们的视野,增强我们的软件开发综合能力. 本次课程说明