当前位置: 首页 > 编程日记 > 正文

详解.NET的RAD功能

作者:中国计算机报

Visual Studio.NET 拥有开发者建立一个成功而强大的中间层应用服务所需要的所有开发工具,利用这些工具,开发者可以:

1.保障消息传播和利用微软消息队列(MSMQ)跨平台的通讯;
2.将应用程序的错误信息记录到共享的应用程序事件日志,并且可以设定一个组件去唤醒预先定义的任务;
3.可以知道网络中的任何一台计算机的性能特征;
4.可以编写在文件系统改变时被唤醒和执行的组件;
5.可以直接拖拽功能模块到应用程序当中。
使开发者专注于业务上的问题,而不是繁琐的劳动。

下面,让我们来深入了解RAD开发的几个方面:

服务器浏览器

写一个中间层的组件去发现企业网络上有哪些服务器可以提供什么样的服务。这在以前开发时是一个非常大的挑战,即使发现了,我们也很难将之整合到应用程序当中。

而在Visual Studio.NET里,服务器浏览器(Server Explorer)可以显示出整个计算机上的信息,包括数据库、消息队列和所有已安装的服务器基本元素。

你可以从Server Explorer中增加资源到Visual Studio 设计器当中去。当你增加一个资源到你的设计器后,Visual Studio会参照你所选的资源自动地建立一个组件。

与窗体设计器能够快速地建立客户端的应用程序一样,Server Explorer也提供了一种快速的、图形化的方式来建立服务器端的组件。组件设计器将基于窗体的快速应用程序开发概念引用到建立中间层对象,即采用一种可视化的方式来构建不可视的组件。我们不用写大量的服务器端的编码,只需通过拖拽服务器组件来设计服务器的框架,并将它和属性浏览器联系起来,双击它就可以打开这个对象的代码。

服务器资源

利用服务器资源,我们可以实现以下功能:

保障消息传播和跨平台的通讯

微软消息队列(MSMQ)使得开发者可以很轻易地实现在应用程序之间快速地、可靠地和异步地收发消息。

开发者需要能够发送和接受消息,创建和删除消息队列和管理这些队列,而在Visual Studio.NET里,Server Explorer 和MSMQ组件可以简单化这些任务。

通过从Server Explorer中拖拽一个消息队列到一个组件,消息队列和消息的缺省值允许开发者用一行代码发送或接收一个简单的消息。

在Visual Studio.NET MSMQ编程过程中,开发者有两个可选项:

1.发送消息时,你需要将一个消息和消息队列绑定在一起。这个对象允许开发者和队列直接对话,从而尽可能高效地发送消息。

2.开始编程之前,简单地拖拽一个已存在的队列到一个组件或者直接在Visual Studio中建立、删除或改名队列。

选择两个选项中的一项后,下一步是提供要发送的数据。用户可以调用消息队列的send方法,数据便会发送到指定的队列。

Dim mq as new MessageQueue ("//MyMachine /Queue1")
mq.Send "This is the message"
mq.Send 7
mq.Send myOrder


消息队列组件将从参数中获取数据,在消息中保存,并把消息发送到指定的队列里。

将应用程序的错误信息记录到共享的应用程序事件日志

事件日志为Windows和应用程序记录重要的软件和硬件的事件提供了标准的、集中化的方式。
在Visual Studio.NET中,开发者能够从Server Explorer拖拽一个事件日志到一个组件,然后写针对不同应用程序的代码以便读写事件日志。
在预订的时间点,用定时任务唤醒组件

在预定的时间运行组件对企业用户来说是非常重要的需求。业务的展开需要有进度、工作簿需要在每一个工作日的最后关闭、每月都要执行审计、每天早上详细的报告要用于分析,这些都是安排任务让任务自动运行的例子。

现在,Visual Studio允许你能够创建应用程序和组件,让其在预先安排的时间和间隔内自动运行。

读取网络中的任何一台计算机的性能特征

性能监视器是一个捕捉和分析性能数据的进程,它可以确定应用程序、服务和驱动程序性能的瓶颈在哪里,Windows 2000和Windows NT提供了通过性能计数器监视系统性能的方法。

Visual Studio.NET 将提供一个组件来方便地创建新的计数器,并读写任何一个性能计数器。使用性能计数器组件时,我们只需简单地把它从Server Explorer拖拽到一个组件,然后双击就可以写应用代码了。

建立和部署基于服务器应用程序

公司的管理员经常面对的挑战是部署一个分布式应用程序的每个元素,并且在程序的整个生命周期里管理它们。组件开发者和解决方案的设计者有一个重要的任务就是给管理员和相关的应用程序配置的开发者以足够的信息。

在一个分布式的应用程序模型里,一个重要的目标就是简单有效地提供足够的信息给管理员。部署服务器的目标是可以方便地从一个多样性的平台到另一个多样性的平台传递任何大小和结构的解决方案和项目。Visual Studio.NET可以通过多样的平台和计算机执行这些配置。它可以多层部署(例如,可以部署到一台以上目标机),也可以简单地部署到Web服务器和COM+服务器。

建立跨越多层次的安装程序

很多开发者要安装部署一个分布式应用程序的所有三层体系。在下一个版本的Visual Studio中将提供一个全新的部署安装工具,使用它可以轻松地部署多层的应用程序。
在部署中使用定制的安装器建立服务器资源

中间层的应用服务在功能性上有其独立性。例如一个开发者创建了一个组件,通过工具栏拖拽一个消息队列到一个类,这个消息队列存在于开发者的计算机上。然而,当程序发布时,如果这个消息队列不存在的话,这个消息队列就需要被建立。Visual Studio.NET 包括自定义的安装器可以确保基于服务器的资源在发布的时候被建立。

用实时跟踪器调试已部署的程序

跟踪是一个允许开发者调整指导的应用程序。这种调整指导允许开发者和管理者监视部署好的应用程序的状态,这点与debugger不同,有时候debugger反而隐藏了错误,淡化了性能和线程问题。Visual Studio.NET中的实时跟踪器是一个在分布式和多层应用程序中重要的监视调试工具,可以发现应用程序在系统高负荷或无序的环境状态时产生的问题。

在建立Web应用程序的时候,有一个非常普遍的问题是如何改变应用程序的行为而不关闭站点。

Visual Studio.NET 提供了可以在应用程序部署后改变应用程序行为的动态属性。这些属性值不用写入代码中,而是通过扩展标记语言(XML)文件来读取。开发者可以轻易地修改这些文件更改应用程序的行为,而不需要重新改写、编译和部署新的代码。

动态属性值可以在应用程序部署后运行状态下更改,你可以使用Visual Studio.NET 内建的编辑器或像记事本一样的工具来编辑这些属性值,连接数据库的connection string便是一个例子。如果将connect string放在应用程序当中,当应用程序从开发环境移动到测试环境的时候,开发者需要重新编译这个应用程序,如果将这个属性动态化,这个connection string可以在应用程序部署后修改。那么,应用程序运行的时候,新的值将被使用,将应用程序连接到另一个数据库也不需要更改源代码,动态属性的设置可以被一个项目中的多个属性共享。

Visual Studio.NET 提供了在一个企业网络寻找XML网络服务、数据库、消息队列、事件日志、性能计数器和其他服务器资源的机制。另外,它还提供了让开发者可以简单地通过拖拽服务器资源的可视化方式来进行编程,这意味着Visual Studio.NET 使服务器快速开发成为可能。

相关文章:

Java初学者如何自学和自己定位解决问题

注: OneCoder 即本人苦逼Coder 今天群里(Java Coder群:91513074)的朋友,问我该如何看帮助文档,或者说在遇到问题的时候如何解决。希望我能介绍一下我的方法。 这个OneCoder其实没有资格高谈阔论,只能说说个人的习惯和…

仅用 4 小时,吃透“百度太行”背后硬科技!

我们正处于一个 AI 生万物,万物生 AI 的时代,云与 AI 也如共同体,水乳相容不可分割。无论是企业还是政府机构、社会团体,上云已然成为一个不可抗的趋势,尤其是 AI 的发展,更是离不开强大、灵活、便捷的云计…

(转)java 中的try catch finally 语句中含有return语句的执行情况(总结版)

原处:http://blog.csdn.net/ns_code/article/details/17485221在这里看到了try catch finally块中含有return语句时程序执行的几种情况,但其实总结的并不全,而且分析的比较含糊。但有一点是可以肯定的,finally块中的内容会先于try…

希捷携全线企业级解决方案出席ODCC,Exos X18与Exos 2X14硬盘斩获两项大奖

2020年9月15日,数据存储与管理解决方案提供商希捷科技公司亮相2020开放数据中心(ODCC)峰会,并发表了以“数据新视界”为主题的演讲。希捷银河(Exos)18TB硬盘与希捷银河(Exos)2X14 MA…

动态装载和使用类型

作者:微软Reflection提供诸如Microsoft Visual Basic.NET和JScript语言编译器使用的底层结构来实施隐性后绑定。绑定是定位与某一特定类型相对应的声明的过程。当这个过程发生在运行的时候,而不是编译的时候,它被称为后绑定。Visual Basic.NE…

求1 + 2 + 3...+ n的和

题目&#xff1a;求1 2 3 ... n 的和 要求&#xff1a;不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C) 答&#xff1a; #include "stdafx.h" #include <iostream>using namespace std;//1、函数查找表法 typedef in…

Debussy的安装

下载完成后对软件安装包进行解压缩&#xff0c;得到安装文件和破解文件。 双击Debussy-54v9-NT.exe进行安装&#xff0c;出现以下界面&#xff0c;选择安装的路径。 选择安装类型&#xff0c;最好选择typical类型。 选择相关配置。 进行安装。 选择Yes继续&#xff0c;dont dis…

如何调试你的C#程序

作者&#xff1a;龙山文化 文章来源&#xff1a;ASPCool.com欢迎来到C#的奇妙天空&#xff0c;在这里&#xff0c;希望你能获得你想获得的东西&#xff0c;.我们真诚希望能给你带来巨大的帮助&#xff0c;带你进入另外一个广阔的空间。 Come on. Follow me and then U can W…

SSAS使用时间智能解决本年累计、同比、环比【转载】

通常&#xff0c;我们需要使用MDX来定义本年累计、同比、环比等一系列基于时间维度的计算指标。但是这样有一个麻烦的地方就是比如我有50个基础指标&#xff0c;每个指标都需要本年累计&#xff0c;那我就需要写50遍下面的语句&#xff1a;create member CURRENTCUBE.[MEASURES…

良心贴!没想到 Google 排名第一的编程语言,可以这么简单!

作为最近几年最火的编程语言&#xff0c;Python&#xff08;没有之一&#xff09;已经走过了20多个年头。也难怪&#xff0c;作为大数据时代和人工智能时代的必备语言&#xff0c;Python 的优点太多了&#xff0c;语言简洁、易学、开发效率高、可移植性强......不过它火起来的主…

报错 org.springframework.beans.factory.BeanCreationException

2019独角兽企业重金招聘Python工程师标准>>> 一.问题背景&#xff1a; spring mvc eclipse启动报错&#xff1a;org.springframework.beans.factory.BeanCreationException 二.分析 1.写了一个名为“User”的 实体bean&#xff0c;然后写了有参构造函数&#xff0c;…

醉没醉,带上智能手机走两步就知道

来源 | HyperAI超神经场景描述&#xff1a;斯坦福大学和匹兹堡大学的研究小组&#xff0c;最近发表了一项用智能手机检测醉酒状态的研究&#xff0c;可利用步态特征检测相应的血液和呼吸酒精浓度。以后喝没喝多&#xff0c;用你的手机测一测就知道。关键词&#xff1a;智能手机…

Linux编程常见问题

错误提示&#xff1a;Makefile:2: *** 遗漏分隔符 。 停止。原因makefile中 gcc语句前 缺少一个 tab分割符错误提示&#xff1a; bash: ./makefile: 权限不够原因 makefile 是文本文件不可执行&#xff0c;即使是root&#xff0c;也会权限不够我们应该在命令行下使用make&#…

网络工程师转售前的条件

昨天出差回来的时候已是凌晨四点&#xff0c;辛勤工作的早餐已经开始忙碌了。你走之后的第一周&#xff0c;房子空荡荡的&#xff0c;就剩下你的头发和发髻&#xff0c;还有你留下的信。真的很对不起你&#xff0c;从参加工作开始&#xff0c;我们总是聚少离多&#xff0c;很多…

python流程控制:while循环

python编程中whihe语句用于循环执行程序&#xff0c;即在某条件下&#xff0c;循环执行某段程序&#xff0c;以处理需要重复处理的相同任务。 while循环语句格式&#xff1a; while <判断条件>&#xff1a;执行语句 count 0 while (count <9):print("The count …

阿里动物园再添新丁,小蛮驴搞定物流最后三公里

作者 | 硬核云顶宫责编 | 李雪敬头图 | CSDN 下载自视觉中国今天的云栖大会上&#xff0c;阿里动物园再添新丁&#xff0c;不再这个新加入的动物既不是骡子也不是马&#xff0c;而是小蛮驴&#xff0c;这是一个专门解决物流最后三公里的AI机器人。今天的云栖大会&#xff0c;阿…

C语言中的CONST使用

C中的CONST使用 const是一个C语言的关键字&#xff0c;它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性。 const的使用是c语言中一个比较微妙的地方&#xff0c;请看下面几个问题。 问题&#xff1a;const变量 和 常量 为什么下面的例子在…

一个项目可以有多个源代码路径

这样我们就建立了一个新的代码路径~~

x-http-wrapper: 如何解决每次发版时,修改http相关代码造成的错误!(Android、iOS、h5)...

其实是我做了个开源工具(^__^)&#xff0c;拿出来给大家鉴赏下&#xff0c;欢迎大家提意见项目&#xff1a;github.com/xuyt11/x-ht… 欢迎关注和star 。功能&#xff1a;这是一个http相关代码的创建工具。 现在我们每一次发版&#xff0c;基本上都会涉及到http相关的修改&…

设计一款编程语言有多难?

作者 | DAVID CASSEL译者 | 弯月&#xff0c;责编 | 郑丽媛题图 | 自视觉中国来源 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;最近&#xff0c;Ruby编程语言的创始人兼主设计师、云平台即服务公司Heroku的Ruby首席架构师松本行弘在一次演讲中表示&#xff0c;由松本…

在 DW 中插入 Flash 的参数详解

作者&#xff1a;macromedia 文章来源&#xff1a; 蓝色理想 在Dreamweaver中插入FLASH后还可以有很多的控制参数&#xff0c;点属性面板右下的参数钮&#xff0c;就会有参数和值的加入。大家可以自由的控制&#xff0c; 以下内容摘自 Flash MX 2004 帮助文档 参数和属性下…

C语言中文件的读写(fputc和fgetc)(putchar和getchar)

文件打开之后就可以对文件进行读写了。 1、fputc(ch,fp); 将字符ch输出到&#xff08;即写到&#xff09;fp所指向的文件中。如果输出成功&#xff0c;返回字符ch的值&#xff0c;否则返回EOF&#xff08;-1&#xff09; putchar(c) 是从fputc中派生出来的&#xff0c;在stdio.…

转 微博 linux中ctime,mtime,atime的区别

http://blog.sina.com.cn/s/blog_67178440010101gr.html 当你同熟练的UNIX用户进行交谈时&#xff0c;你经常会听到他们傲慢地讲出术语“改变时间(change time)”和“修改时间(modification time)”。对于许多人(和许多字典而言),改变和修改是相同的。这里会有什么不同那&#…

WEB 打印的相关技术分析

文/谢康 做Web开发的人员一定都会面临一个共同的难题&#xff0c;那就是打印。的确&#xff0c;相对于Windows桌面应用程序来讲&#xff0c;Web应用程序的打印有种种限制&#xff0c;技术人员在项目开发过程中经常会遇到用户这样或那样的需求. 做过桌面应用开发的人都会非常熟悉…

jquery validate使用

一、用前必备 官方网站&#xff1a;http://bassistance.de/jquery-plugins/jquery-plugin-validation/ API: http://jquery.bassistance.de/api-browser/plugins.html 当前版本&#xff1a;1.5.5 需要JQuery版本&#xff1a;1.2.6, 兼容 1.3.2 <script src"../js/jquer…

Python程序员的“避坑”指南

结合我最近这些年的Python学习、开发经验&#xff0c;发现90%的人在学Python时都会遇到下面这些问题&#xff1a;1. 没什么经验根本不知道从何学起&#xff0c;而且应用方向太多了根本不知道该选择什么方向...2. 基础入门看似简单&#xff0c;但是进阶实战就举步维艰&#xff0…

java web项目流程小结

java web项目从发出请求到返回结果流程整理&#xff1a;客户发出请求&#xff0c;通过web.xml 中配置的DispatchServlet接收请求并调用 handlerMapping 将请求分发到对应的Controller,Controller调service&#xff0c;service调dao,dao层根据方法名对应到sql.xml&#xff0c;通…

snmp在企业网中的应用

一.snmp简介 snmp概念 SNMP(Simple Network Management Protocol,简单网络管理协议)的前身是简单网关监控协议(SGMP)&#xff0c;用来对通信线路进行管理。随后&#xff0c;人们对SGMP进行了很大的修改&#xff0c;特别是加入了符合Internet定义的SMI和MIB&#xff1a;体系结构…

浅谈在ASP.NET中数据有效性校验的方法

作者&#xff1a;未知作为一名程序员&#xff0c;一定要对自己编写的程序的健壮性负责&#xff0c;因此数据的校验无论在商业逻辑还是系统实现都是必不可少的部分。我这里总结了一种自认为比较不错的asp.net&#xff08;C#&#xff09;的数据校验方法&#xff0c;如大家探讨。主…

关于Python 3.9,那些你不知道的事

作者 | Ayushi Rawat编译 | 高卫华题图 | 视觉中国Python一直在满足社区需求&#xff0c;并且将成为未来使用最多的语言。Python的下一个版本带来了更快速的进程释放&#xff0c;性能的提升&#xff0c;简便的新字符串函数&#xff0c;字典并集运算符以及更兼容稳定的内部API。…