不必对术语“架构”望而生畏。架构只不过是一种包含某些规则的 XML
文件,这些规则用来定义 XML
数据文件中能包含哪些内容,不能包含哪些内容。架构文件通常使用 .xsd
文件扩展名,而 XML 数据文件使用 .xml 扩展名。

您可能听 IT 部门的人员说过“标准格式”的 XML。标准格式的 XML
文件遵循一组管理 XML 的、非常严格的规则。如果文件不遵循这些规则,XML
就会停止运行。例如,在上面的代码示例中,每一个开始标记都有对应的结束标记,因此该示例遵循一种标准格式的规则。如果您删除一个标记,然后尝试在一个
Office
程序中打开该文件,您将会看到一条错误消息,并且该程序会阻止您使用该文件。

最近接触到了TVML,平时也会使用过XML。在这里也整理XML简易语法规则以便回顾查阅。文章主要介绍
XML 文档的基础结构,以及创建构造良好的 XML
需要遵循的规则,包括命名约定、正确的标记嵌套、属性规则、声明和实体。

每个开发人员现在应该下载的十种必备工具

发布日期: 7/20/2004 | 更新日期:
7/20/2004

本文自发布以来已经增加了新信息。

请参阅下面的编辑更新。

本文讨论:

用于编写单元测试的 NUnit

用于创建代码文档资料的 NDoc

用于生成解决方案的 NAnt

用于生成代码的 CodeSmith

用于监视代码的 FxCop

用于编译少量代码的 Snippet Compiler

两种不同的转换器工具:ASP.NET 版本转换器和 Visual Studio .NET 项目转换器

用于生成正则表达式的 Regulator

用于分析程序集的 .NET Reflector

本文使用了下列技术:

.NET、C# 或 Visual Basic .NET、Visual Studio .NET

除非您使用能够获得的最佳工具,否则您无法期望生成一流的应用程序。除了像
Visual Studio®.NET 这样的著名工具以外,还可以从 .NET
社区获得许多小型的、不太为人所知的工具。在本文中,我将向您介绍一些目前可以获得的、面向
.NET
开发的最佳免费工具。我将引导您完成一个有关如何使用其中每种工具的快速教程

一些工具在许多时候可以使您节约一分钟,而另一些工具则可能彻底改变您编写代码的方式。因为我要在本篇文章中介绍如此之多的不同工具,所以我无法详尽讨论其中每种工具,但您应该了解到有关每种工具的足够信息,以便判断哪些工具对您的项目有用。

欧博国际网站 1

程序可以使用架构来验证数据。架构为数据提供了结构框架,可以帮助创建者和任何其他用户理解数据。例如,如果用户输入无效数据,程序就会提示用户输入正确的数据。只要
XML 文件中的数据遵循给定架构中的规则,任何支持 XML
的程序都可以使用该架构读取、解释和处理这些数据。例如,如下图所示,Excel
和 Word 都可以根据 CAT 架构来验证 数据。

您不必了解创建标准格式 XML 的规则,但确实需要记住:只有在 XML
数据采用了标准格式的情况下,才可以在程序和系统之间共享该数据。如果某个
XML 文件无法打开,则该文件很可能不是标准格式的。


本页内容
Snippet Compiler
Regulator
CodeSmith
生成自定义模板
NUnit
编写 NUnit 测试
FxCop
Lutz Roeder 的 .NET Reflector
NDoc
NAnt
实际运行的 NAnt
转换工具
小结

欧博国际网站 2

XML 还不受平台的限制,这意味着,无论硬件或操作系统是什么,为使用 XML
而构建的任何程序都可以读取和处理 XML 数据。例如,利用正确的 XML
标记,就可以使用桌面程序打开和处理大型机中的数据。另外,无论是谁创建了
XML 数据体,您都可以通过若干 Microsoft Office 2003 和 Microsoft Office
专业版 2007 程序(包括 Microsoft Office Access 2007、Microsoft Office
Word 2007、Microsoft Office InfoPath 2007 和 Microsoft Office Excel
2007)处理相同的数据。由于 XML
具有可移植性,它已成为用于在数据库和用户桌面之间交换数据的最受欢迎的技术之一。

XMLHTML

标记语言从早期的私有公司和政府制定形式逐渐演变成标准通用标记语言(Standard
Generalized Markup Language,SGML)、超文本标记语言(Hypertext Markup
Language,HTML),并且最终演变成 XML。SGML
比较复杂,HTML(实际上仅是一组元素集)在识别信息方面不够强大。XML
则是一种易于使用和易于扩展的标记语言。

总之,我们可以使用 XML 创建自己的元素,从而能够更精确地表示自己的信息。


Snippet Compiler

Snippet Compiler 是一个基于 Windows®
的小型应用程序,您可以通过它来编写、编译和运行代码。如果您具有较小的代码段,并且您不希望为其创建完整的
Visual Studio .NET 项目(以及伴随该项目的所有文件),则该工具将很有用。

例如,假设我希望向您说明如何从 Microsoft?.NET
框架中启动另一个应用程序。在 Snippet Compiler
中,我将通过新建一个能够创建小型控制台应用程序的文件开始。可以在该控制台应用程序的
Main
方法内部创建代码片段,而这正是我要在这里做的事情。下面的代码片段演示了如何从
.NET 框架中创建记事本实例:

System.Diagnostics.Process proc = new System.Diagnostics.Process();proc.StartInfo.FileName= "notepad.exe";proc.Start();proc.WaitForExit();

当然该代码片段本身无法编译,而这正是 Snippet Compiler 的用武之地。图 1
显示了 Snippet Compiler 中的这一代码示例。

欧博国际网站 3

1 Snippet Compiler

要测试该代码片段,只须按
play(运行)按钮(绿色三角形),它就会在调试模式下运行。该代码片段将生成一个弹出式控制台应用程序,并且将显示记事本。当您关闭记事本时,该控制台应用程序也将关闭。

就我个人而言,我是在尝试为某位向我求助的人士创建一个小型示例时,才发现
Snippet Compiler 是如此宝贵的 —
如果不使用该工具,则我通常必须新建一个项目,确保每个部分都能编译通过,然后将代码片段发送给求助者,并删除该项目。Snippet
Compiler 使得这一过程变得更加容易、更加愉快。

Snippet Compiler 由 Jeff Key 编写,并且可以从
下载。

欧博国际网站 4返回页首

架构可能非常复杂,教您怎样创建架构并不属于本文的范畴。(另外,IT
部门人员应该知道如何创建架构。)不过,了解架构的外观还是有用的。下面的架构定义了
… 标记集的规则。

欧博国际网站 5

构建 XML

XML 文件由 内容标记 组成。通常,标记包围内容。


Regulator

Regulator
是最后一个添加到我的头等工具清单中的。它是一种很有特色的工具,能够使生成和测试正则表达式变得很容易。人们对正则表达式重新产生了兴趣,因为它们在
.NET
框架中受到很好的支持。正则表达式用来基于字符、频率和字符顺序定义字符串中的模式。它们最常见的用途是作为验证用户输入有效性的手段或者作为在较大字符串中查找字符串的方法
— 例如,在 Web 页上查找 URL 或电子邮件地址。

Regulator
使您可以输入一个正则表达式以及一些针对其运行该表达式的输入内容。这样,在应用程序中实现该正则表达式之前,您可以了解它将产生什么效果以及它将返回哪些种类的匹配项。图
2
显示了带有简单正则表达式的 Regulator。

文档中包含该正则表达式 — 在该示例中,它是
[0-9]*,应该匹配一行中任意数量的数字。右下侧的框中含有针对该正则表达式的输入,而左下侧的框显示了该正则表达式在输入内容中找到的匹配项。在这样的单独应用程序中编写和测试正则表达式,要比尝试在您的应用程序中处理它们容易得多。

Regulator 中的最佳功能之一是能够在 regexlib.com
搜索联机正则表达式库。例如,如果您在搜索框中输入字符串“phone”,您将找到
20
种以上能够匹配各种电话号码的不同的正则表达式,包括用于英国、澳大利亚的表达式以及其他许多电话号码。Regulator
由 Roy Osherove 编写,并且可以在
下载。

欧博国际网站 6返回页首

如果不理解上面示例中的内容,不必担心。只需要记住以下事项:

除了使用标准格式的标记数据之外,XML
系统通常还使用其他两种组件:架构和转换。以下部分将介绍这两种组件的工作方式。

创建 XML 文件

XML 文档的第一行通常是一个 XML 声明。
形式:<?xml version="1.0" encoding="utf-8"?>
作用:将文件识别为 XML 文件,有助于工具和人类识别 XML(不会误认为是 SGML
或其他标记)。
PS:什么情况下通常忽略这个可选信息?打算将多个小的 XML 文件合并为一个大
XML 文件。

CodeSmith

CodeSmith 是一种基于模板的代码生成工具,它使用类似于 ASP.NET
的语法来生成任意类型的代码或文本。与其他许多代码生成工具不同,CodeSmith
不要求您订阅特定的应用程序设计或体系结构。使用
CodeSmith,可以生成包括简单的强类型集合和完整应用程序在内的任何东西。

当您生成应用程序时,您经常需要重复完成某些特定的任务,例如编写数据访问代码或者生成自定义集合。CodeSmith
在这些时候特别有用,因为您可以编写模板自动完成这些任务,从而不仅提高您的工作效率,而且能够自动完成那些最为乏味的任务。CodeSmith
附带了许多模板,包括对应于所有 .NET
集合类型的模板以及用于生成存储过程的模板,但该工具的真正威力在于能够创建自定义模板。为了使您能够入门,我将快速介绍一下如何生成自定义模板。

欧博国际网站 7返回页首

Author

发表评论

电子邮件地址不会被公开。 必填项已用*标注