|
|
1
4
虽然“官方”的答案是使用WCF将服务推送到Silverlight,但我认为任何使用MySQL的人都可能不会使用完整的ASP。NET解决方案。我的解决方案是构建一个PHP Web服务(就像Rob建议的那样)来与MySQL数据库交互,并让Silverlight以RESTful方式访问它。 以下是使用Silverlight通过PHP web服务访问MySQL数据库的三部分教程的开始: |
|
|
2
5
做你想做的事情的最简单方法(现在已经通读了你的编辑:)将是公开可以使用的服务。微软现在真正推动的模式是公开WCF服务,但事实是,你的Silverlight客户端可以使用WCF来使用许多不同类型的服务。 现在对你来说最简单的方法可能是使用。NET服务或PHP REST服务,然后将Silverlight应用程序指向该服务。通过这样做,您不仅可以保护您的数据库免受人们窥探,更重要的是,您可以限制人们对您的数据库所做的操作。如果你的数据应该是只读的,而你的服务合同只允许读取操作,那么你就设置好了。或者,您的服务也可以通过WCF设置凭据来协商会话。 WCF可以是仅客户端、仅服务器或客户端-服务器连接器平台。您的选择将影响您编写的代码,但这一切都将独立于您的数据库。您的代码可以进行结构化,使其与数据库表一一对应,也可以更抽象(如果您选择,可以设置表示完整逻辑视图的类)。 |
|
|
3
3
Silverlight没有任何直接访问数据库服务器的能力。您可以通过web服务(ASMX或WCF,甚至非.NET!)公开数据库操作,并使用Silverlight访问这些服务。 |
|
|
4
3
我刚刚开始做这件事;ASP。NET4网站,Linux Ubuntu 10/Apache2服务器上有Silverlight4内容。内容是使用Visual Studio 2010开发的。VS2008也应该运行良好。 服务器:
Visual Studio:
使用MySQL访问设置站点: 以下是我觉得有用的指南: Step By Step Guide to WCF RIA enabled SL4 application with Entity Framework
测试: 让我们将MySQL中的数据导入Silverlight。假设有一个名为“persons”的表,列名为“name”,我们可以绑定一个列表框来显示人员的姓名。 首先添加一个Silverlight页面,比如“主页”。 在Home.xaml中添加:
在Home.xaml.cs文件中添加:
在这里,我们假设您将域服务命名为“FooDomain”,这将生成所使用的“FooDmainContext”类。 希望,如果所有设置都正确,您现在可以在运行Silverlight项目时看到一个人名列表。 编辑: ASP。NET不是可选的,但对于我的示例中使用的WCF RIA web服务来说是必需的。 |
|
|
5
2
从客户端直接将数据库连接到服务器通常是一个坏主意。我不知道反编译Silverlight应用程序有多容易,但我想这在某种程度上是可能的。然后,你基本上是在向用户提供你的数据库凭据。 |
|
|
6
1
您可以使用Web Services从MySQL获取数据。 演练: 步骤1:创建Web服务 步骤2:向Silverlight添加服务引用
步骤1:创建Web服务 添加新的Silverlight项目。
创建新的Web服务。右键单击web项目>添加>新项目
选择“Web服务”。
新Web服务的初始代码。
为了使Web服务能够连接到MySQL,我们需要添加MySQL的引用。数据。将DLL添加到web项目中,并在web服务类顶部添加Using语句:
你好世界 是Visual Studio创建的初始示例方法。您可能想删除它,因为它不需要。我将创建2个简单的方法来演示如何使用Web服务在SilverLight和MySQL之间进行通信。 第一种方法: 执行标量() 这种方法很简单。从MySQL获取单个对象。
第二种方法: 执行非查询() 用于单SQL执行。SQL类型示例:INSERT、UPDATE、DELETE。
添加上述两种方法后,Web服务的外观如下:
你会注意到一个属性 [网络方法] 添加到方法中。 重建项目,让Web服务为下一步做好准备。
Web服务访问权限 请注意,默认情况下,Web服务只允许与Web服务托管在同一域中的Silverlight访问。如果Silverlight应用程序托管在另一个网站/域上,Web服务将拒绝通信。因此,我们必须配置Silverlight访问Web服务的权限,Silverlight托管在不同的域中。 您必须创建两个附加文件: 客户端访问策略.xml 和 跨域访问 . 这些文件必须放在承载Web服务的域的根目录下。
例子:
客户端访问策略.xml
如果您只想允许特定域访问Web服务(例如:www.myanotherwebsite.com),可以在其中添加它。例子:
跨域访问
要了解更多信息,请阅读: Making a Service Available Across Domain Boundaries (MSDN) 步骤2:向Silverlight添加服务引用 向Silverlight添加服务引用。
键入Web服务的地址,然后按[Go]。 地址示例: http://www.mywebsite.com/MyCoolWebService.asmx 根据您的喜好更改命名空间,然后按[确定]。
Visual Studio将分析Web服务,进行数据绑定并创建类。 在继续编码之前,让我们看看在新创建的类中可以使用哪些方法。在新类上单击鼠标右键,然后选择[在对象浏览器中查看]。
我们要使用的类是WebService1SoapClient(在本例中)。命名基于服务名称。如果我们将服务类命名为MyCoolWebService,那么在Silverlight中,MyCoolWebServiceSoapClient将被选为类的名称。在右侧面板中,突出显示了两个方法和两个事件。这些是用于调用Web服务的方法。
让我们通过添加一个文本框和两个按钮来创建一个简单的Silverlight应用程序。 在这个例子中,用户将直接在文本框中键入SQL查询。 [ExecuteScalar]按钮将向Web服务发送SQL并检索数据。(选择、显示等) [ExecuteNonQuery]按钮将把SQL发送到Web服务以供执行。(插入、更新、删除等)
这是MainPage.xaml的初始代码:
现在,我们在这里要做的是:
按[F5],运行并测试Silverlight应用程序。
再加上你的创造力,我相信你现在可以做更多的事情。微笑|:) 如果您对Web服务进行了任何更改,可能是添加了新的服务(新的Web方法),则必须更新Silverlight上的服务引用以重新绑定服务。如果您将文件上载到其他虚拟主机,则可能需要更新Web服务地址。
快乐编码。 阅读更多: |