.net 我是否需要为服务、课程、网站和Silverlight应用程序创建一个单独的Visual Studio 2010项目?

.net 我是否需要为服务、课程、网站和Silverlight应用程序创建一个单独的Visual Studio 2010项目?,.net,wcf,silverlight,visual-studio-2010,silverlight-3.0,.net,Wcf,Silverlight,Visual Studio 2010,Silverlight 3.0,我正在VisualStudio2010中启动一个新的Silverlight 3项目。我的计划是为每一个项目制定一个项目: Silverlight应用程序 托管web应用程序 WCF服务 最后一个还将包含一个类型化数据集(将用作我的数据逻辑层)和一些用于执行业务逻辑的类。WCF服务方法将向Silverlight返回类型化数据。 我只是想知道是否有任何令人信服的理由将BLL组件从WCF服务项目中分离出来。当然,对于组织该项目的任何其他意见也欢迎。我不会考虑的一件事是使用像N-Hibernate这样的

我正在VisualStudio2010中启动一个新的Silverlight 3项目。我的计划是为每一个项目制定一个项目:

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

最后一个还将包含一个类型化数据集(将用作我的数据逻辑层)和一些用于执行业务逻辑的类。WCF服务方法将向Silverlight返回类型化数据。


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

我工作的项目有单独的业务组件项目。我真的认为这取决于项目的规模。在大型项目中这样做可能是有意义的,尤其是当项目的多个部分共享同一BLL时

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

您肯定需要在单独的项目中使用Silverlight应用程序

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

通常我会在单独的项目中提取类

  • 或者,我在多个其他项目中使用DLL
  • 或者,我想确保某些类不使用其他类,所以我通过将它们移动到项目中来隔离它们
因此,最后,我不能说拥有多个项目有任何令人信服的理由


。。。只是我的想法。希望他们能有所帮助。

我只是好奇——为什么要排除第三方工具?哲学上的原因?排除ORM也会排除EntityFramework或LinqToSQL,这两者都会让您的项目变得难以置信的简单。您是否考虑过使用ADO.NET数据服务或WCF RIA服务?是的,我想是的。ORM工具似乎只是解决问题,而不是解决问题。他们很胖,依赖于一个不会倒闭或被收购的供应商,可能会到处引入DLL的多个版本和副本,等等。对于一个数据库中只有20-30个表的应用程序来说,这似乎不值得增加复杂性,但我可能错了。我会考虑LinqToSQL,如果它解决了任何DEV问题,但是从我所看到的,缓存/性能不如手动滚动和手动控制什么是和不缓存。简单性和维护是我的优先考虑。至于WCF和ADO.NET数据服务,我认为WCF是首选,因为它的性能和可以传递复杂数据类型的事实。所以,我认为我可以接受这个选择。据我所知,VisualStudio2010和Silverlight3不支持RIA服务。至少,在尝试添加项目时,我看不到任何地方提到它们。。。2010年。另外,RIA只是测试版,对吗?我不想在生产中使用测试版软件。微软可能需要很长时间才能将其推出beta版。它只是测试版(但有上线许可证)。有2010年的下载,但可能是SL4。我明白你的意思。例如,如果我有客户机应用程序需要的业务逻辑(而数据层不需要),那么这些逻辑可能很适合放在单独的项目/库中。我肯定可以重复使用。我可以从Silverlight外部引用Silverlight类库,这样就可以很好地工作。谢谢。以下是我所做的:1.Silverlight web项目托管应用程序和WCF服务;2.Silverlight项目,服务参考2;3.类被1引用的BO项目;项目2从WCF引用获取所有类定义信息。我的新挑战是如何在2(本地存储)中实现数据缓存,而不将所有代码放在主页代码中。这看起来似乎是唯一的方法了,但是,b/c对WCF的回调是异步的,我不知道如何在客户端助手类中实现这一点。