`
gstarwd
  • 浏览: 1511162 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

[笔记]实战Silverlight+WebService+OleDB+Oracle

阅读更多

一、引言

    Silverlight是Microsoft推出的RIA应用框架。近几年,Adobe的RIA产品Flex越来越流行,逐渐成为很多J2EE应用的前端界面技术框架。

    Adobe的RIA,是指Rich Internet Application,即丰富互联网应用,她突破以往Web的应用都是基于页面而造成的界面单一、交互能力弱等限制,为客户提供一个图形化的、美观而交互能力丰富的应用,从而有效提高客户的体验。

    微软的RIA,是指Rich Interactive Application,即丰富交互应用。其实与Adobe的RIA是一个意思,而且产品定位也是相同,都是解决Web应用的界面、交互等的问题,但是 Silverlight依靠Microsoft的.Net框架,将会很快普及开来,所以有人称Silverlight是Flex的“杀手”。

    现在,Silverlight已经推出了第二版的Beta测试版,以及基于Visual Studio 2008 的开发工具。

    本文,将在Visual Studio 2008开发环境中,利用 VisualStudio Silverlight Tools Beta 1工具,开发基于Silverlight 2 Beta的一个应用。

    环境要求:Visual Studio 2008,安装好 Silverlight Runtime,安装好 VisualStudio Silverlight Tools Beta 1工具,当然,还需要有一个Oracle数据库(也可以采用其他数据库,但是下面的操作步骤中一些相关的内容需要适当修改)。

 

二、实战目标

    本次实战,主要通过创建前台基于Silverlight,通过调用中间层提供的 SOAP WebService访问、操作后台的数据库信息,实现简单的业务功能。在理解了本例子后,你可以进一步扩展,在此思路、实现方式的基础上进一步实现更加 复杂的基于Silverlight、SOAP WebService、OleDB和数据库的组合应用。

    本次实战目标是创建一个Web应用,可以往数据库中指定的数据实体添加新的记录。至于查询、删除数据记录,则留给读者自行扩展。

三、架构

    本文涉及的架构如下:

 


 

    Silverlight与后台数据交互,可以有多种方式,例如可以利用.net 3.5新特性LinQ to SQL,也可以利用Web Service。本例则专门针对通过Web Service。关于LinQ to SQL 的例子,在以后的文章中再详述。

 

四、实战过程

 

(一)创建项目:

1、点击菜单“文件 ”--“新建项目 ”,在“新建项目”对话窗中,选择“Silverlight ”项目类型,选择“Silverlight Application ”项目模板,输入项目名称为“JobDemo ”,如下图:

 


 

    然后点击“确定 ”按钮。

    接着,在“Add Silverlight Application”对话窗中选择第一项选择项,然后点击“确定”,如下图:

 


 

    稍后,默认的Silverlight项目创建完毕。如图:

 


 

(二)、创建SOAP WebService:

1、在“解决方案资源管理器”视图中,鼠标右键点击“JobDEmo_Web”项目,选择弹出菜单中的“添加新项”,如下图:

 


 

 

2、在“添加新项”对话窗中,选择“WEB 服务”项目,在“名称”处输入:JobManageService.asmx,点击“添加”按钮。如下图:

 


 

点击“JobDemo_Web”项目后,在“属性窗口”修改Web服务的属性,其中“使用动态端口”改为False,“端口号”改为:65520.如下图:

 


 

 

3、编辑修改Web服务代码:在默认生成的HelloWorld()服务操作后面,增加一个新增Job记录的操作,代码如下:

<WebMethod()> _
Public Function AddJob(ByVal JobID As String, ByVal JobName As String) As Boolean
   Try
     Dim conn As New OleDbConnection()
     conn.ConnectionString = "Provider=MSDAORA;Data Source=o9i;"+ _
                             "Persist Security Info=True;User ID=scott;Password=tiger"
     conn.Open()

     Dim command As OleDbCommand = New OleDbCommand()
     command.Connection = conn
     command.CommandType = Data.CommandType.Text
     command.CommandText = "INSERT INTO JOB(JOB_ID,FUNCTION) VALUES ('" + JobID + "','" + JobName + "')"
     command.ExecuteNonQuery()
     conn.Close()
     Return True
   Catch ex As Exception
     Return False
   End Try
End Function

    代码中,定义了一个Web服务的操作(Operation),名叫AddJob,入口参数有两个,分别是JobID和JobName。操作中,通过 OleDB组件,访问Oralce数据库,将新的Job插入数据库JOB表中,因此,在你的Oracle数据库中必须已经有一个Table,至少含了两个 字段,分别是JOB_ID、FUNCTION,类型分别是整数和字符串。其中,连接数据库的连接串可以根据自己的Oracle数据库的位置进行修改,也可 以修改该连接串从而连接到其他的数据库而不一定是Oracle数据库。

    此外,你还可以参照AddJob操作,增加自己其他的操作,例如删除Job,修改Job等。

    以上代码编辑好后,在“解决方案资源管理器”视图中,鼠标右键点击“JobDemo_Web”项目,选择弹出菜单中的“生成网站”,将Web服务发布到调试Web服务器并启动它。屏幕右下角将看到小图标,如下图红色框:

 


 

(三)加入Web服务引用:在“解决方案资源管理器”视图中,鼠标右键点击“JobDemo”项目,选择弹出菜单中的“添加Web服务引用”,如下图:

 


 

    在弹出的“添加服务引用”窗口中,点击“发现”按钮,稍侯将在“服务”列表中列出本机的Web服务,在“命名空间”处输入“JobManageServiceReference”,点击“确定”按钮,完成Web服务引用。如下图:

 


 

 

(四)设计前端Silverlight页面:双击Page.xaml,打开并编辑,删除默认生成的Grid组件,拖入 Canvas组件,定义相关属性,然后在Canvas组件、上面拖入两个TextBlock和两个TextBox,再拖入一个Button,并定义这些组 件的相关属性,形成如下图的页面:

 


 

最后编辑形成的Page.xaml文件如下:

<UserControl x:Class="JobDemo.Page"
xmlns="http://schemas.microsoft.com/client/200 "
xmlns:x="http://schemas.microsoft.com/winfx/2006/xam "
Width="400" Height="300" >
<Canvas x:Name="canvas1" Canvas.Left="0" Canvas.Top="0" Width="800" Height="600" >
     <TextBlock Text="工种编号:" Canvas.Left="50" Canvas.Top="10" Width="100" Height="24" TextAlignment="Right"></TextBlock>
     <TextBlock Text="工种名称:" Canvas.Left="50" Canvas.Top="38" Width="100" Height="24" TextAlignment="Right"></TextBlock>
     <TextBox x:Name="InputJobID" Text="" Canvas.Left="150" Canvas.Top="10" Width="100" Height="24" ></TextBox>
     <TextBox x:Name="InputJobName" Text="" Canvas.Left="150" Canvas.Top="38" Width="100" Height="24" ></TextBox>
     <Button x:Name="AddButton" Canvas.Left="150" Canvas.Top="70" Width="100" Height="30" Content="增加工种" FontSize="20" Click="AddButton_Click"></Button>
</Canvas>
</UserControl>

(五)编写“增加工种”按钮的单击事件处理程序:在Page.xaml源代码视图中找到按钮的Click属性,点击鼠标右键,在弹出的窗口中选择“导航到时间处理程序”,如下图:

 


 

编辑修改事件处理代码为:

Private Sub AddButton_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
      Dim CallWebService As New JobManagServiceReference.JobManageServiceSoapClient
      CallWebService.AddJobAsync(InputJobID.Text, InputJobName.Text)
End Sub

 

(六)运行并测试程序:输入工种号码和名称,点击“增加工种”按钮,然后打开数据库Job表,看看是否增加成功。

 

【完毕】

分享到:
评论

相关推荐

    Silverlight边学边写之一“Silverlight+Webservice+Dataset”综合应用

    《Silverlight+Webservice+Dataset综合应用》是针对初学者和开发者的一份宝贵教程,旨在帮助他们理解如何在Silverlight应用程序中有效地利用Webservice和Dataset技术。本教程将深入探讨这三个核心组件之间的协同工作...

    silverlight+Linq+webservice+xml留言板

    综合来看,这个“silverlight+Linq+webservice+xml留言板”项目结合了多种核心技术,展示了如何利用Silverlight创建交互式用户界面,通过Web服务实现前后端通信,以及使用LINQ to XML处理XML数据。这为学习和理解...

    js+webservice 样例

    js+webservice 样例js+webservice 样例js+webservice 样例js+webservice 样例js+webservice 样例js+webservice 样例js+webservice 样例js+webservice 样例js+webservice 样例js+webservice 样例js+webservice 样例

    C++课设:基于QT+webservice的天气查询系统.zip

    1、该资源内项目代码经过严格调试,下载即用确保可以运行! 2、该资源适合计算机相关专业(如计科、人工智能、大数据、数学、电子信息等)正在做课程设计、期末大作业和毕设...C++课设:基于QT+webservice的天气查询系统.

    Android+Webservice Oracle

    本文将深入探讨如何使用Android结合Webservice(尤其是C#编写的Web服务)来从Oracle数据库中获取数据,并解决Android 4.0以上版本的多线程问题。 首先,`Android+Webservice Oracle`的标题表明我们将关注的重点是...

    实战Web+Service+with+CXF webservice快速入门

    实战Web+Service+with+CXF webservice快速入门 webservice快速入门

    maven-spring-mybatis-web+webservice

    【标题】"maven-spring-mybatis-web+webservice" 概述 在现代Web开发中,Maven、Spring、MyBatis和Web服务(Webservice)是四个关键的组件,它们共同构建了一个强大且灵活的后端架构。这个项目组合,简称为“mmsw”...

    Struts+Spring+Hibernate+WebService集成架构

    Struts、Spring、Hibernate以及WebService是Java开发中常用的四大框架,它们在企业级应用开发中发挥着关键作用。本文将详细介绍这四大框架的集成架构及其核心功能。 **Struts** Struts是一个开源的MVC(Model-View-...

    java + webservice + sqlserver

    Java与Web服务(Webservice)相结合,通常用于构建可跨平台、跨语言的分布式系统。在本项目中,我们利用MyEclipse作为集成开发环境,它提供了强大的Java Web应用程序开发功能,包括对Webservice的支持。SQLServer是...

    Flex+WebService附件上传下载

    在IT领域,Flex和WebService是两个重要的技术概念,它们经常被用于构建富互联网应用程序(RIA)。本教程将探讨如何利用Flex作为前端客户端,通过WebService进行附件的上传和下载操作。 Flex是一款由Adobe开发的开源...

    eclipse+tomcat+axis+webservice详尽教程(含初高级用法).pdf

    axis+webservice详尽教程(含初高级用法).pdfaxis+webservice详尽教程(含初高级用法).pdfaxis+webservice详尽教程(含初高级用法).pdf

    在IIS上部署Silverlight+WCF项目教程

    "在IIS上部署Silverlight+WCF项目教程" 本教程旨在指导用户如何在IIS上部署Silverlight+WCF项目,并解决可能遇到的问题。 首先,需要在IIS上配置好Silverlight+WCF项目的环境。具体来说,需要在IIS中添加以下MIME...

    pb11+webservice开发分布式三层应用 例程

    在本例程中,我们将深入探讨如何利用PB11结合Web服务(Webservice)技术来构建一个分布式三层应用。 **1. 分布式系统与三层架构** 分布式系统是多个独立计算机通过网络互相协作,共同完成一项任务。三层架构是一种...

    pb11+webservice开发分布式三层应用

    在PB11中,可以通过ADO.NET或OLE DB等数据提供者与Webservice交互,实现数据的读写。 4. Webservice的创建与调用:首先,你需要创建一个Webservice,这可能涉及到WSDL(Web Service Description Language)文件的...

    Spring+SpringMVC+MyBatis+Maven+CXF+WebService之Web项目整合

    蛮简陋的一个项目,适合新手使用。 这是一个包含简单登录和查询的Web项目,内附有一个表sql文件和两个java项目。...WS_Client是客户端,是一个project项目,内部有一个WebService的测试类,用来测试从服务端取得数据

    pb11+webservice

    ### pb11+webservice开发分布式三层应用:深入解析与实践 #### 一、概述 在现代企业级软件开发中,分布式系统设计已成为主流趋势,其中PowerBuilder(PB)结合Web Service技术构建分布式三层架构应用尤为突出。PB...

    Silverlight + webservce 文件断点上传

    【标题】Silverlight + WebService 文件断点上传技术详解 在现代互联网应用中,大文件上传是一项常见的需求,尤其在云存储、视频分享等场景下。"Silverlight + WebService 文件断点上传"是一种有效解决大文件上传...

    axis+webservice教程+帮助文档

    axis+webservice教程+帮助文档

    XSLT+CSS+JQuery+WebService实现网站

    XSLT+CSS+JQuery+WebService实现网站 分离到底!用XML+XSLT+CSS+JQuery+WebService组建Asp.Net网站,数据库采用的是Access(在App_Data下) 使用这种方案建站的人依然寥寥无几,大家还都在抱着Web标准化不撒手,其实...

    spring + struts2 + webService

    自己写的一个测试项目,虽然简单,也完善地使用 spring + struts2 + webService 开发的一个简单的webService 刚入门的朋友 可以略微拿来看下 数据库未附送...mysql写的 表和字段都非常简单 用的话 可以自己完善下...

Global site tag (gtag.js) - Google Analytics