面向服务器的快速应用程序开发(RAD)

发表于:2007-06-30来源:作者:点击数: 标签:
Visual Studio .NET将极大地降低创建网络应用程序的复杂性。创建成功的网络应用程序的关键是将重点放在中间层上。商务逻辑和应用程序的大部份都出现在中间层服务器上。Visual Studio .NET开放系统采用了快速应用程序 开发 (RAD)开年,Visual Basic开发人员已
Visual Studio .NET将极大地降低创建网络应用程序的复杂性。创建成功的网络应用程序的关键是将重点放在中间层上。商务逻辑和应用程序的大部份都出现在中间层服务器上。Visual Studio .NET开放系统采用了快速应用程序开发(RAD)开年,Visual Basic开发人员已经习惯了快速地装配基于Windows的用户界面, 并将它应用于构建中间层对象。关键领域包括:

Visual Studio .NET拥有开发人员成功地创建功能强大的中间层应用程序所需的所有工具。开发人员可以:
  • 利用MSMQ(Microsoft Message Queuing)保证消息的传送和跨平台通信。
  • 将应用程序错误写入到共享的事件日志记录中,或使用计划任务安排某个组件在预定的时间激活。
  • 从网络上的任何一台计算机中读取性能指数。
  • 编写当文件系统变化时激活和执行的组件。
  • 直接将这个功能性拖放到他们的应用程序中,从而使得开发人员可以将重点放在商务问题上,而不是放在组件的组装配合上。

服务器资源管理器 (Server Explorer)
编写中间层组件的最大的一个挑战是发现在企业网络上有哪些可用的应用程序服务。并且一旦被发现,它们将很难集成到你的应用程序中。
在Visual Studio 6.0中,启用了和Oracle数据库的发现功能。此外,Visual Studio可以都这些数据库中的模式和数据进行处理。使用数据视图(Data View)窗口,开发人员可以指向一个数据库,然后将节点以深入研究数据库的结构。Visual Studio还提供了一种修改数据库结构的方法。例如,开发人员可以连接到 SQL Server以查看和修改表格、视图和存储过程。
在Visual Studio的下一个版本中,Server Explorer从今天的数据视图(Data View)又向前走了一大步,可以显示整个计算机,包括数据库、消息队列以及安装在计算机中的所有其他服务器元素。

图1. 服务器资源管理器 (Server Explorer)
你可以将服务器资源管理器 (Server Explorer)中的某些资源添加到Visual Studio设计器中。当你将这些项目中的某个项目添加到自己的设计器中时,Visual Studio将自动创建一个引用你选定的特定资源的组件。例如,你可以选择某个特定的消息队列,然后将其添加到组件设计器(Component Designer)中。Visual Studio将自动创建一个引用这个特定队列的Message Queue组件。
你可以使用服务器资源管理器 (Server Explorer),在自己的Microsoft Windows服务上执行管理任务。这包括启动、停止、暂停和继续服务。服务器旁边的图标将根据该服务的当前状态变化。
默认情况下,服务器资源管理器 (Server Explorer)将把上一次的配置作为你的会话的一部分保存,并在你下一次访问服务器资源管理器 (Server Explorer)时重新打开它。你还可以按名称保存特殊配置,并在它们之间进行切换。例如,你可以为软件开发周期的每个阶段设置一个专用的服务器资源管理器 (Server Explorer)配置。
组件设计器(Component Designer)允许进行拖放式程序设计
与窗体设计器允许快速创建客户端应用程序的方式相同,服务器资源管理器 (Server Explorer)提供了一种快速地、图形化地创建服务器端组件的方法。组件设计器(Component Designer)将RAD基于窗体的程序设计概念应用到了创建中间层对象中-一种用于创建非可视化对象的可视化方法。现在开发人员无需编写大量的服务器端代码,他们可以把将在服务器上运行的服务器组件拖放到设计表面上,再使用属性浏览器将它连接起来,然后双击,接着该对象的代码将被打开。

图2. 组件设计器(Component Designer)
服务器资源(Server Resources)
有保证的消息传递和跨平台通信
Microsoft Message Queuing使得开发人员可以通过发送和接收消息,快速、可靠、同步地与应用程序通信变得很容易。
MSMQ提供了:
  • 与断开连接的用户一起创建应用程序的能力- 如当销售人员在远方工作时。
  • 有保证的传递-例如,对于股票经纪人来说,如果他们的订单输入应用程序即使丢失一份订单,都可能损失上百万美元。
  • 并发执行,处理多个工作请求。
  • 自动将你的活动记入日志,对于保留审计线索和恢复数据很有益。
  • 到IBM MQSeries的连接,实际上它可以在从大型机到AS/400的每个平台上运行。

开发人员需要能够发送和接收消息,创建消息队列,并管理这些消息队列。利用下一版本的Visual Studio,Server Explorer和MSMQ组件可以简化执行任务。
通过将一个消息队列从服务器资源管理器(Server Explorer)拖放到组件中,该消息队列和消息的默认数值允许开发人员使用下面的一行代码发送简单的消息。 mq.Send "Hi Mom"
接收一条消息就像下面一样简单。 message = mq.Receive
当开发人员在Visual Studio .NET中对MSMQ进行编程时,有两种选择:
  1. 要发送一条消息,你需要将该消息与一个消息队列(Message Queue)相关联。这个对象允许开发人员直接与该队列进行对话,并尽可能有效地发送消息。
  2. 简单地将现有的队列拖放到一个组件中,以开始直接针对该组件进行编程。或者直接在Visual Studio中创建、删除和重命名队列。

下一个步骤是提供要发送的数据。用户可以在这个消息队列上调用发送方法,然后数据将发送到指定的队列。 Dim mq as new MessageQueue ("\\MyMachine\Queue1")mq.Send "This is the message"mq.Send 7 mq.Send myOrder
消息队列(Message Queue)组件将从自变量中获取数据,接着将数据加入到消息中,然后将消息发送给指定的队列。
将应用程序错误写入到一个共享的事件日志记录中
用于Microsoft Windows NT和Windows 2000的应用程序定期地将警告和错误写入到事件日志记录(Event Log)中。事件日志记录为Windows和应用程序提供了一个标准地、集中的方法来记录重要的软件和硬件事件。事件日志记录(Event Log)为查看日志记录提供了一个标准的用户界面,并为检查日志记录提供了一个编程接口。
在Visual Studio .NET中,开发人员可以将事件日志记录(Event Log)从服务器资源管理器(Server Explorer)拖放到组件中,然后编写应用程序专用的代码来读写事件日志记录(Event Log)。
还可以创建和编写自定义事件日志记录。要做到这一点,只需从工具箱中拖动一个事件日志记录(Event Log)组件,接着为该日志记录指定一个队列名称,然后日志记录将自动创建。
最后,你可以在一条记录被写入到日志记录时运行代码。例如,当一条错误记录被写入到应用程序日志记录时,将通知管理员。
使用计划任务安排某个组件在预定的时间激活
在预定的时间运行组件对于企业客户来说是一项很重要的需求。企业按计划经营。书店要在每个营业日结束时关闭。查账需要每月进行。需要在每天的早晨提供详细的报告进行分析。这些都是计划任务的例子,这些都是自动处理发生的场合。
多年来,Visual Studio已使得创建在Windows操作系统内部运行的可执行文件和组件变得很容易。现在,Visual Studio允许用户创建可以按预定的时间和间隔运行的应用程序和组件。
例如,一个零售连锁店可能会使用计划组件。在商店关门时,商店数据库的内容必须传送给公司总部。每个商店内在指定时间运行某个计划组件。该计划组件检查这一天的新的销售情况,将它们打包,然后发回总部。 此外,每个商店在凌晨两点进行存货分析。低于某个指定阈值的商品将从经销商那里定购。
要使用计划组件,可以将计划事件(Scheduled Event)组件从工具箱拖放到组件设计器(Component Designer)中。一旦ScheduledEvent成为该组件的一部分,你就可以通过在属性窗口中设置属性来对其进行自定义。双击该组件填充在组件激活时执行的代码: Public Sub SchdEvent1_OnScheduledEventReceive (EventSource as Object, e as ScheduledEvent)    @#User code goes here…End Sub
使用性能计数器(Performance Counters)从任何一台网络计算机中读取性能指数
性能监控是指获取和分析应用程序、服务和驱动程序提供的性能数据,以确定系统的瓶颈,并对系统和应用程序的性能进行调整的过程。Windows 2000和Windows NT提供了通过性能计数器和性能监控器(Performance Monitor)应用程序,对系统性能进行监控的方法。此外,性能监控器(Performance Monitor)可以在达到阈值时对计数器数值进行响应。例如,将事件写入到事件日志记录中或关闭计算机。
Visual Studio .NET将提供一个组件,它可以很容易地创建新的计数器,读写任何性能计算器的数值。这个组件的一个用途就是报告每秒钟处理的订单数。一个商务对象有一个可以在部署后修改的属性,用来打开或关闭对处理每个订单的计时。当负荷很重、吞吐量减少时,管理员可以打开这个工具,如何使用性能监控器(Performance Monitor)来确定应用程序的运行情况。如果管理员发现系统的负荷很重,并且应用程序不能足够快地对订单进行处理,可以对资源进行重新分配以提高性能。
要使用性能计数器(Performance Counter)组件,只需将它从服务器资源管理器(Server Explorer)中拖放到一个组件中,然后双击它编写应用程序专用的代码。
目录监视器(Directory Watcher)在文件系统发生变化时激活
当今使用的一个常见的商用实践是编写长期运行的应用程序,对文件变化进行监控以取消商务过程。利用Visual Studio .NET目录监视器(Directory Watcher)组件创建一个更加有效的方法来完成此项工作非常容易。该组件对系统目录变化通知进行监听,并在目录或目录内的某个文件发生变化是激发事件。
开发人员使用这个组件的一个例子就是FTP(File Transfer Protocol,文件传输协议)。设想有一个基于Web(网络)的新闻网站设立了一个FTP服务器。来自世界各地的新闻记者都可以将他们的题材上载到这个FTP服务器上,目录监视器(Directory Watcher)组件将使用电子邮件通知编辑。
简单地将一个目录监视器(Directory Watcher)组件从工具箱中拖出,然后设置确定该组件何时激活的属性即可。组件可以在目录发生变化、被创建或被删除,以及某个文件被添加、重命名或被删除时激活,然后执行代码。双击该组件编写在文件或目录事件发生时执行的代码。
轻松地设置和部署基于服务器的应用程序
企业管理人员面临着部署分布式应用程序组件,并在它们的生存周期内对它们进行管理的挑战。组件开发商和解决方案集成商承担着向管理员和开发人员提供足够的信息来推动应用程序部署的任务。在分布式应用程序模型中,目标是使组件开发商和集成商能够非常容易地提供部署信息,而不会牺牲管理员的模型的有效性。
部署的目标是很容易地将来自多种平台的解决方案或任意规模的项目或结构传送给其他多种平台。Visual Studio .NET部署通过跨多平台和计算机工作解决了这个问题。它允许进行n层部署(即在.单一操作中,部署到多台目标计算机)。它还使得部署到网络(Web)服务器和COM+服务器变得很轻松。
创建跨越Windows DNA应用程序所有分层的安装应用程序
开发人员常常需要部署一个分布式应用程序的全部3个分层,这些分层通常都是使用多种语言编写的。利用下一个Visual Studio版本中新的部署工具,创建一个多层的安装程序十分容易。
部署过程中使用自定义安装程序(Installer)设置服务器资源
将应用程序服务器功能应用到中间层组件中将会产生对该服务器的依赖性。开发人员可以创建一个组件,然后将一个消息队列(Message Queue)从工具箱拖放到一个类上。这个消息队列(Message Queue)将存在于这个开发人员的计算机上。但是,当部署这个应用程序时,如果这个队列不存在则需要重新创建。Visual Studio .NET包括自定义安装程序,可以确保依赖这些基于服务器的资源可以在部署时创建。

图3. 添加安装程序(Add Installer)
在属性(Properties)窗口中有一个链接,Add Installer,当点击这个链接时,将会向一个包含消息队列安装程序化(Message Queue Installer) 组件的项目中添加一个新类。消息队列安装程序化(Message Queue Installer) 组件知道如何创建一个消息队列的细节。
在应用程序部署后,使用运行时跟踪(Run-Time Tracing)对它们进行调试
跟踪是允许开发人员对应用程序进行测试的一个特性。这样的测试允许开发人员和管理员对所部署的应用程序的健康状况进行监控,而不是运行调试器。(有时使用调试器会隐藏错误,使性能和线程问题变得不明显)。对于分布式的多层的应用程序来说,跟踪是一个非常重要的监控和调试工具。这样的应用程序可能会包含只有在重负荷和实际环境所固有的随机性的情况下才会观察得到。
理想情况下,开发人员可以在它们的生产代码中包括开销最小的(最多影响性能和大小的10-15%)跟踪工具。当系统不能按预期执行时,他们可以在系统运行的同时打开用于生产代码的跟踪功能,然后确定问题。跟踪功能允许开发人员在不打乱运行系统的情况下,将问题隔离,然后修正它们。
部署后使用动态属性改变应用程序的功能性
使用生产网络(Web)应用程序的最常见的一个问题是,开发人员需要在网站运行的同时改变应用程序的行为。Visual Studio .NET 提供了创建动态属性的能力,可以在应用程序部署后对它们进行修改。实际上,这些属性可以在应用程序运行时从XML文件中检索。开发人员可以很容易地修改这个文件,以改变应用程序的行为,而无需编写、编译和部署新代码。
动态属性值可以在应用程序部署和应用程序运行时进行修改。你可以使用工具,入记事本或Visual Studio .NET中内置的XML编辑器,来编辑属性和改变属性值。动态属性的一个例子是到数据库的连接字符串。如果这个应用程序将连接字符串硬编码到应用程序中,那么在将应用程序从开发转到测试再转到生产时,开发人员需要重新编译这个应用程序。通过将这个属性设为"动态",连接字符串值可以在应用程序部署后修改。当下一次应用程序运行时,将使用新的数值,从而将应用程序指向一个不同的数据库而无需修改源代码。动态属性设置可以被项目中的多个属性共享,这样只须在一个位置更新共享的连接字符串。
结论
Visual Studio .NET提供了发现机制来搜索企业网络上的所有XML网络服务(Web service)、数据库、消息队列、事件日志记录、性能计数器和其他服务器资源。 此外,它允许开发人员将这些服务器资源拖放到一个"可视类"上,开始以图形化的方式进行程序设计。非常简单地,这意味着Visual Studio .NET允许为服务器进行快速应用程序开发。
分布式网络应用程序很难进行设置和部署。但是,利用Visual Studio中的新工具,微软公司提供了一个安装工具来分布一个分布式应用程序的所有分层。并且利用Visual Studio .NET中的新功能,开发人员可以将发布-部署调试和功能变化内置到他们的应用程序中。

原文转自:http://www.ltesting.net