2013-12-14 23 views
1

我试图使用silverlight创建一个简单的考勤系统。应用程序将拍摄用户的照片并将其存储在服务器上。从Silverlight应用程序修改数据库是不是个好主意

我已经想出了如何激活网络摄像机并将图像转换为可写入的位图。但是,我还没有解决将用户标识和当前日期从asp.net框架传递给silverlight应用程序,然后执行一组SQL查询以将数据存储在SQL服务器中并将网络摄像头图像保存在服务器。

然而,从性能和安全的角度来看,从silverlight内部执行sql查询是一个坏主意吗?

+1

如何从Silverlight获取数据库?您可以从Silverlight访问哪种数据库? – Gabe

回答

4

是的,这是一个非常糟糕的主意。

SilverLight在浏览器内执行。您不想将数据库打开到世界上的每个浏览器。

而是使用Web服务。所有的浏览器都会调用你的服务,并且服务器上运行的服务将访问数据库(运行在不同的服务器上)。

+0

在阅读了这个问题之后,似乎人们似乎建议使用服务来访问数据库。那么我可以使用该服务来执行像SELECT和INSERT这样的查询吗?此外,我认为它应该是一个简单的实施,以保存从服务器上的网络摄像头拍摄的图像。我仍然需要使用服务吗?你知道特别是涵盖这方面的任何链接吗?迄今为止我的搜索没有太多成果。 – WackStr

+0

除了使用服务之外,您认为您会用什么技术从Silverlight写入数据库? –

+0

我想我可以将一些连接字符串传递给silverlight,然后从其中执行查询。但现在我知道更好。 我现在的问题是如何将Silverlight中的图片传输到服务器? 从我读过的WCF中,我了解到我可以向silverlight应用程序公开某些方法和对象。但似乎我需要一个服务,从Silverlight的字节数组,并将其传递到服务器。 看起来像一个共同的任务,但我找不到任何写得很好的文章,所以我来这里寻求帮助。你怎么看? – WackStr

2

坏主意。浏览器中的Silverlight是客户端。我会写一个像WCF这样的后端服务来处理这些问题。保持Silverlight清洁和轻便。

0

我不同意另外两个答案,这是一个坏主意。首先,Silverlight不一定在浏览器中运行(参见浏览器外浏览模式),然后也与此无关:

这对于运行在WPF浏览器应用程序中是完全合法的企业内部网访问该内部网中托管的SQL Server。

在这种情况下使用Silverlight并没有什么不同 - 而Intranet业务线应用程序是Silverlight最流行的用例,因此这种情况不过是人为设计的。

但是,由于该方案不受支持,因此难度很大。理论上Silverlight可以连接到一个本地的sql server,但是你必须重新实现sql server协议(如果这个协议完全公开的话,我不知道),然后推测将实体框架移植到Silverlight。

由于这是非常困难的,你不打算这样做,并确实运行与其他答案的建议和访问一些Web服务。您的应用程序至少有三层:Silverlight客户端,Web服务和数据库。

这被称为3层架构,这是您通常用Silverlight应用程序所做的。

我意识到这个答案有点多余,但我想让提问者放心,他的想法并不一定是坏的,除非它不会成果丰硕。

相关问题