在Silverlight和ASP.NET之间混合应用程序模块

时间:2010-05-05 20:02:45

标签: .net asp.net silverlight

背景
我在一组ASP.NET应用程序中工作,这些应用程序有几个不同的“模块”。应用程序都共享一个主菜单,因此它们都相互链接。这些模块是应用程序的高级领域。因此,例如,它可能是付款,订单,客户,产品等。付款和订单在一个应用程序中,产品和客户在另一个应用程序中。其中一些菜单链接是“深层链接”,例如它可能是指向Customers模块中特定页面的链接,例如“创建新客户”。

问题:
我们即将启动一个项目,将为该套件添加更多模块,可能作为一个新的.NET应用程序。我正在考虑在Silverlight中执行这些新模块(由于各种原因而不是问题的重要原因)。如果我这样做,我需要使菜单看起来与ASP.NET中的菜单相同,因为用户仍然需要感觉他们在一个“应用程序”中。

我的问题:

  • 我应该如何组织Silverlight项目,以便我可以从ASP.NET页面“深层链接”到Silverlight应用程序中的特定模块?
  • 创建这些不同的Silverlight“模块”甚至是最好的想法?如果我有一些可能是ASP.NET中的页面(例如 - 创建客户),那么每个应该是一个单独的Silverlight应用程序吗?或者它应该是一个单独的用户控件?或其他什么?
  • 我应该重用我们的共享ASP.NET菜单,还是在新应用程序中深入链接到不同的Silverlight“模块”?或者我应该重新实现Silverlight中的菜单以在应用程序中导航?
  • Silverlight的菜单控件是否与ASP.NET菜单类似(在本例中为flyout子菜单)?我甚至可以在它们之间共享一个SiteMap XML文件吗?

修改
看了一下之后,似乎PRISM可能是我的一些问题的答案。这将允许我模块化我拥有的不同的Silverlight块。它允许我在Silverlight中定义一个“母版页”,我可以在其中托管菜单。我有这个权利吗?

1 个答案:

答案 0 :(得分:1)

好吧,因为我没有得到任何答案,我想我会自己回答。

  • 您可以使用Silverlight导航应用程序“深度链接”到Silverlight项目中,Silverlight导航应用程序是Silverlight Toolkit附带的VS 2010的项目类型。
  • 您可以使用Prism(a.k.a。复合应用程序块)或MEF(托管扩展性框架)模块化Silverlight应用程序。两个框架都有不同的优缺点和不同的东西,他们做得很好。

我还没有决定如何在ASP.NET或Silverlight中实现菜单。但是上面的构建块都具有必要的功能。