设为首页 收藏本站
查看: 1228|回复: 0

[经验分享] [笔记]实战Silverlight+WebService+OleDB+Oracle

[复制链接]

尚未签到

发表于 2016-7-27 09:13:27 | 显示全部楼层 |阅读模式
  一、引言
  Silverlight是Microsoft推出的RIA应用框架。近几年,Adobe的RIA产品Flex越来越流行,逐渐成为很多J2EE应用的前端界面技术框架。
  Adobe的RIA,是指Rich Internet Application,即丰富互联网应用,她突破以往Web的应用都是基于页面而造成的界面单一、交互能力弱等限制,为客户提供一个图形化的、美观而交互能力丰富的应用,从而有效提高客户的体验。
  微软的RIA,是指Rich InteractiveApplication,即丰富交互应用。其实与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,安装好 VisualStudioSilverlight Tools Beta1工具,当然,还需要有一个Oracle数据库(也可以采用其他数据库,但是下面的操作步骤中一些相关的内容需要适当修改)。
  
  二、实战目标
  本次实战,主要通过创建前台基于Silverlight,通过调用中间层提供的 SOAPWebService访问、操作后台的数据库信息,实现简单的业务功能。在理解了本例子后,你可以进一步扩展,在此思路、实现方式的基础上进一步实现更加复杂的基于Silverlight、SOAP WebService、OleDB和数据库的组合应用。
  本次实战目标是创建一个Web应用,可以往数据库中指定的数据实体添加新的记录。至于查询、删除数据记录,则留给读者自行扩展。
  三、架构
  本文涉及的架构如下:
  
http://hiphotos.baidu.com/panqf/pic/item/b3291f3fec4217f854e723ed.jpg

  
  Silverlight与后台数据交互,可以有多种方式,例如可以利用.net 3.5新特性LinQ to SQL,也可以利用WebService。本例则专门针对通过Web Service。关于LinQ to SQL 的例子,在以后的文章中再详述。
  
  四、实战过程
  
  (一)创建项目:
  1、点击菜单“文件”--“新建项目”,在“新建项目”对话窗中,选择“Silverlight”项目类型,选择“Silverlight Application”项目模板,输入项目名称为“JobDemo”,如下图:
  
http://hiphotos.baidu.com/panqf/pic/item/bb85f5ef3c472722acafd5ef.jpg

  
  然后点击“确定”按钮。
  接着,在“Add Silverlight Application”对话窗中选择第一项选择项,然后点击“确定”,如下图:
  
http://hiphotos.baidu.com/panqf/pic/item/e8f8c90395dbccf808fa93f5.jpg

  
  稍后,默认的Silverlight项目创建完毕。如图:
  
http://hiphotos.baidu.com/panqf/pic/item/93f0823e35605fee828b13f6.jpg

  
  (二)、创建SOAP WebService:
  1、在“解决方案资源管理器”视图中,鼠标右键点击“JobDEmo_Web”项目,选择弹出菜单中的“添加新项”,如下图:
  
http://hiphotos.baidu.com/panqf/pic/item/9fe608d3e56eda143af3cff0.jpg

  
  
  2、在“添加新项”对话窗中,选择“WEB 服务”项目,在“名称”处输入:JobManageService.asmx,点击“添加”按钮。如下图:
  
http://hiphotos.baidu.com/panqf/pic/item/1870ef09cf86f096d1581bf1.jpg

  
  点击“JobDemo_Web”项目后,在“属性窗口”修改Web服务的属性,其中“使用动态端口”改为False,“端口号”改为:65520.如下图:
  
http://hiphotos.baidu.com/panqf/pic/item/af37abca5e91cb92c91768f2.jpg

  
  
  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服务器并启动它。屏幕右下角将看到小图标,如下图红色框:
  
http://hiphotos.baidu.com/panqf/pic/item/08a3981e2088910b413417fc.jpg

  
  (三)加入Web服务引用:在“解决方案资源管理器”视图中,鼠标右键点击“JobDemo”项目,选择弹出菜单中的“添加Web服务引用”,如下图:
  
http://hiphotos.baidu.com/panqf/pic/item/2746e3c4ff86eddf39db49fd.jpg

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

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

  
  最后编辑形成的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属性,点击鼠标右键,在弹出的窗口中选择“导航到时间处理程序”,如下图:
  
http://hiphotos.baidu.com/panqf/pic/item/2b6c93341de3dea3d0a2d3fa.jpg

  
  编辑修改事件处理代码为:
    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表,看看是否增加成功。
  
  【完毕】

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-249993-1-1.html 上篇帖子: Oracle和SQL Server分析挖掘函数 下篇帖子: Oracle function : to_date and to_char
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表