我正在尝试在我的夜晚和周末引导微型ISV。我有一个应用程序在很早的开发阶段。它是用C#编写的,主要由表示问题域的类集合组成。此时,没有UI或数据持久性。 (我甚至还没有选择.NET平台。它足够早,我可以改为Java或本机可执行文件)
我对此应用程序的目标是它将是混合单用户/偶尔连接的多用户应用程序。单个用户部分将使用嵌入式数据库进行本地存储。这是我熟悉的开发模型。
多用户部分是我之前没有经验的地方。我知道每个用户都需要两件事:
基于IP的公共互联网远程服务器通信
用户身份验证和远程数据存储
我知道我希望这个服务器提供哪些服务(信息查找和用户到用户的事务),但除此之外我不在我的元素中。服务器需要由第三方托管,因为我没有资源来运行我自己的服务器。请记住,在可预见的未来,我将成为该项目的唯一开发人员:
哪种技术是实现上述两件事的最简单方法?直接访问数据存储区/数据库还是更好地隔离它?我应该实施网络服务吗?如果是这样,SOAP还是REST?
迁移到多用户应用程序时还需要考虑哪些其他事项? 我知道安全性是多用户应用程序中的一个更大问题。特别是当你处理任何类型的银行信息时(我会)。处理远程连接和大量用户时,性能可能是一个问题。还有什么我忽视的吗?
答案 0 :(得分:2)
关于迁移到多用户应用程序,集中数据当然是第一步,实现它的最简单方法通常是使用基于云的数据库,例如Amazon SimpleDB或MS Azure。您通常会获得一个访问密钥和一个用于身份验证的长“秘密”。
如果您的数据不是高度关系型的,您可能需要考虑使用Amazon SimpleDB。大多数语言都有SDK,它允许简单的代码在世界任何地方使用密钥和秘密在SimpleDB数据库中存储/检索数据。您根据数据存储和流量支付服务费用,因此进入门槛非常低,尤其是在开发过程中。它还可以从一个小型的家庭应用程序扩展到amazon.com的大小。
如果你确实选择实现自己的数据库服务器,你应该记住两件关键的事情:
关于REST / SOAP等问题,关键考虑因素应该是您想要使用哪种平台/设备连接到数据库服务器。例如,如果您在.NET中实现服务器,则可能会考虑使用WCF来实现Web服务。但是,如果您以后想要使用非.NET客户端,则可能会带来困难。 SOAP是一种用于Web服务的成熟技术,但实现起来相当繁琐,并且包含SOAP调用处理的库可能不一定适用于给定的客户端平台。 REST很容易实现(如果你在服务器上使用ASP.NET MVC,很容易),任何可以处理HTTP POST / GET而不需要库的客户端都可以访问,并且易于测试,所以REST将是我的首选技术
答案 1 :(得分:1)
如果您坚持使用.net(我的个人偏好),我会通过WCF公开数据访问调用。 WCF配置非常灵活,非常容易上传,您可能希望将数据库隐藏在服务层之后。
答案 2 :(得分:0)
1.直接访问db是最简单的,也是最差的。想想你如何授权db访问...我只想编写一个带有可序列化参数的远程API,并担心以后连接哪些方法(Web服务,IIOP,无论如何) - 通信详细信息都包装好了无论如何都是隐藏的。
2.none