2010-01-07 60 views
0

我在Visual Studio中开始一个新的Silverlight 3的项目2010年我的计划是有一个项目,每一个这些:
我是否需要为服务,类,网站和Silverlight应用程序提供单独的Visual Studio 2010项目?

Silverlight应用程序
托管Web应用程序
WCF服务

这最后一个也将包含一个类型化的数据集(将作为我的数据逻辑层)和一些类来做我的业务逻辑。 WCF服务方法将把类型化的数据返回给Silverlight。

我只是想知道是否有任何令人信服的理由将BLL组件分离出WCF服务项目。当然也欢迎任何关于组织项目的其他意见。有一件事我不会乐意使用一些像N-Hibernate这样的ORM。整个解决方案需要使用Visual Studio附带的功能强大的工具来构建。谢谢!

+0

我只是好奇这里 - 为什么排除第三方工具?哲学原因? – Sapph 2010-01-07 19:47:53

+0

排除ORM也排除了EntityFramework或LinqToSQL,这两者都可以让你的项目变得非常容易。 您是否考虑过使用ADO.NET Data Services或WCF RIA Services? – 2010-01-07 21:37:39

+0

是的,我猜想是哲学的。 ORM工具似乎只能解决问题,而不能解决问题。他们很胖,依靠供应商不会失业或被收购,可能在各地引入多个版本和DLL副本等。对于数据库中只有20-30个表的应用程序,它似乎并不值得增加复杂性,但我可能是错的。我会考虑LinqToSQL,如果它解决了所有的开发问题,但从我所看到的,缓存/性能不如手动滚动和手动控制什么和没有缓存。简单和维护是我的首要任务。 – Wade 2010-01-07 22:21:45

回答

0

您绝对需要将Silverlight应用程序放在单独的项目中。

至于从WCF服务项目中提取BLL类到单独的一个,这仅取决于应用程序的性质,选择的体系结构和未来可预见的可扩展性。就我所知,在Silverlight 3中,您不能共享Silverlight和其他类型的项目的DLL。所以从他们自己的项目中提取BLL类在这个意义上对你没有任何好处。

我通常提取单独的项目类时

  • 要么,我用在其他多个项目
  • 或者,我要确保一些类不使用其他的DLL,所以我孤立他们通过将他们移动到一个项目中

因此,最后,我不能说有多个项目有任何令人信服的理由。

...只是我的想法。希望他们帮助。

+0

以下是我所用的: 1.Silverlight Web项目来托管应用程序和WCF服务; 2.服务参照2的光源项目; 3. BO项目的类由1引用; 项目2从WCF引用中获取所有类的def信息。我的新挑战是如何在2(本地存储)中实现数据缓存而不将所有代码放入MainPage代码隐藏中。尽管这看起来像是唯一的方式,但是对于WCF的回调是异步的,我不能想象如何在客户端辅助类中做到这一点。 – Wade 2010-01-08 21:49:30

1

我在工作中工作的项目有单独的业务组件项目。我真的认为这取决于项目的规模。在大型项目中这样做可能很有意义,特别是如果项目的多个部分将共享相同的BLL。

+0

我明白你在说什么。如果我有客户端应用程序需要的业务逻辑(并且数据层没有),那么这些可能是放置到单独的项目/库中的好候选者。我可以肯定地重用这些。我可以从Silverlight的外部引用Silverlight类库,这样可以正常工作。谢谢。 – Wade 2010-01-07 22:08:48

0

您是否考虑过WCF RIA服务?这不是对你的问题的直接回答,但如果你这样做,它会改变这个问题。

+0

我的理解是Visual Studio 2010和Silverlight 3不支持RIA Services。至少,在2010年尝试添加项目时,我没有在任何地方看到它们。另外,RIA仅处于测试阶段,对吧?我不想使用测试版软件进行生产。 MS可能需要很长时间才能将其带出beta版。 – Wade 2010-01-07 22:01:32

+0

仙女Nuff。它只是在测试版(但有一个上线许可证)。有一个2010年的下载,但也许是SL4。 – serialhobbyist 2010-01-08 15:02:43

相关问题