在IE浏览器中使用Windows窗体控件(一)
2024-07-21 02:16:23
供稿:网友
中国最大的web开发资源网站及技术社区,
在ie浏览器中使用windows窗体控件(一)
作者::thiru thangarathinam
翻译:秋枫
引言
在过去,web程序员经常在他们的web程序中使用activex控件来实现一些胖客户端才具有的功能。不过现在开发者可以很容易的通过microsoft.net framework来简洁和安全的建立对象,并且方便的在ie浏览器中切入使用。通过在ie浏览器中创建windows窗体控件,开发者可以实现丰富的web客户端。在这篇文章中,我们将会知道怎样创建windows窗体控件并且在ie中使用。在浏览器中使用窗体控件过程中,我们会演示怎样通过窗体控件来提供丰富的web客户端显示,而窗体控件用来调用远程web service获取数据。与此同时,我们也会知道怎样利用.net安全模型来为我们的窗体控件提供一个安全的运行环境。
如果你有过用java开发web程序的经验,那你会很熟悉java applets。它是一个运行在浏览器中的一个小程序。当浏览器打开包含有applet 标签的html文档时,java applets就会运行。windows窗体在web页里的工作方式同java applets很相似。在这个实现中,你创建窗体控件,并为他加上丰富的windows窗体控件样式,接着切入到web页面中。在浏览器加载该web页面的时候,windows控件所包含的代码也会被执行。在局域网或者扩展的网络程序中这个将会是很有用的。比如想开发一个企业使用的具有胖客户端特性的基与web的程序。
.net的一个重要特征就是跟ie紧密结合。比如,我们可以在ie中使用windows窗体控件,而不需要通知用户需要加另外的东西。这个不需要注册什么.net clr就会提供代码安全访问的能力。
当你创建windows窗体控件,你会有窗体类层次提供的特征。比如,你可以使用windows窗体控件验证技术来验证输入数据的准确性。同样的,你甚至可以在你的窗体控件中调用web service。通过这些技术使用,你可以创建基与.net平台的丰富的、健壮的、动态应用程序。
备注:按照原文重写了代码,把载图替换成了中文,运行环境:操作系统windows2003,.net framework 1.1.这里讲几点:调试过程中打开浏览器输入完整地址。如果以文件方式打开将不会显示窗体控件;另外对于进程的调试,可以是单个源文件。不过我运行的是debug版本下生成的组件,不是release的,有兴趣读者可以试试。
执行
在这节,我们就会明白怎样创建windows窗体控件并在ie中使用。下面列出了五个步骤来完成这一过程。
1.创建windows窗体控件
2.创建一个带有object 标签的html文档,该标签用来标识windows控件
3.配置控件的虚拟路径
4.设置代码访问权限
5.运行控件
接下来让我们来看看上面的各个步骤。
1.创建一个windows窗体控件
在这一步中,我们创建一个简单的windows窗体控件。控件实现的功能是显示”hello world”给用户。我们先来建立一个windows 控件库项目取名为helloworldcontrol,修改默认的用户控件为helloworldctl。接着在控件中加入一个label,取名为lbldisplaymessage,同时增加了一个按钮btnclick。当用户点击按钮时,将会执行下面的代码用来显示消息给用户。
private void btnclick_click(object sender, system.eventargs e)
{
this.lbldisplaymessage.text = "hello world";
}
接着就是编译他生成一个assembly。
2.创建html页
在这一步中,我们将创建一个html文档并在里面插入object标签。整个文档看起来如下:
<html>
<body>
<p>hello world control
<object id="helloworldcontrol1" height="300" width="300" classid="http:helloworldcontrol.dll#helloworldcontrol.helloworldctl"
viewastext>
</object>
<br>
</p>
</body>
</html>
在这个标签的classid 属性中,我们指定第一步创建的那个组件的路径以及组件完整限定名。整个完整名称包括命名空间和整个类名。我们可以在上面的代码中清楚的看到组件名和限定名用#分割。这两部分参数组合在一起用来标识控件的唯一性。当然可以通过取名唯一id为helloworldcontrol1来编写客户端脚本。
3.配置虚拟路径
有了html页面,现在来建立一个helloworldcontrolhost的虚拟目录,实际目录在d:/my programs/hellpworldhost,该目录包含了helloworldcontrol.dll和hellpworld.htm文件。当设置虚拟目录的时候,需要注意的是设置执行权限为“纯脚本”。如果设置成“脚本和可执行脚本”的权限。那控件可能不会正常工作(我在iis6下设置成“脚本和可执行脚本”,不正常)。你可以打开虚拟目录的属性来确认设置,设置窗口如下:
4.设置代码访问权限
如果这个web在局域网中访问,他会正常工作。如果该web是通过internet来访问,那你需要设置internet explorer,修改安全属性以允许他运行。你可以把主页加入到受信任的站点。如果需要设置可以通过ie的工具菜单―>internet选项->安全->受信任的站点,点击上面的站点按钮把你的网站加入其中。接下去,当你打开浏览器查看,就会看到正确执行。
5.运行控件
要运行这个控件,我们在浏览器中查看包含了控件的那个html页面。假如你在页面上点击这个按钮,那么控件就会显示“hellp world”信息,执行页面如下:
在这个例子中,我们实现了怎样创建件一个windows窗体控件然后在ie浏览器中显示。在下一节中我们来实现在客户端浏览器上通过窗体控件来访问web service。