2010-09-16 41 views
1

有人告诉我做一个可插入的Web应用程序。与webforms。这个想法是有一个基本的Web应用程序与一个插件主机,将加载任何插件,并与他们的网页相关。ASP.Net webforms应用程序与可插拔的体系结构问题

作为一个例子,我有我的MyHostApplication与母版页和default.aspx文件。在编译时,基本上该项目将在主目录中有Site.MasterDefault.aspx和“bin /”dir中的MyHostApplication.dll。所有插件都可以在目录“插件/”中说。 然后,我创建计算器插件作为一个新项目,其网页Calc.aspx在这个direcotry和程序集Calculator.dll中的目录“bin /”...或与web.config我可能会移动它的某个地方。 我可以使用LoadAssembly在宿主应用程序中加载程序集,并获取主类(我作为基类和所有插件基类继承此类),并从属性中获取一些信息,如名称,版本,位置菜单等

现在的问题 - 当我浏览到/plugins/Calculator.aspx(让从我插件主机已建成的工具菜单说),它加载它的组装和不知道关于主要的主机应用程序。但它必须成为主要应用。另外它应该是最好的,如果不知何故我可以使用插件页面的主应用程序的母版页。

可以给我一些帮助提示吗?提前致谢。

回答

0

感谢您的回复!最后,我得到了我在找的东西:) ...我看到了一个教程,只是为了我的案例,这是用MVC v.2解决的,完全适合我的想法。

它可以被发现here。这是非常基本的,但它解决了插件页面和母版页的使用问题,我们也可以很容易地管理插件和版本的许可证。另一件事是,我喜欢与它密切使用的jQuery,所以这个想法对我有用:)

0

不是直接回答你的问题,但有你探索MEF

它是基于相同的原则,可以帮助你得到一个头在你想达到什么样的开始。

+0

感谢这个想法,我尝试过使用MEF,但是当涉及页面或多页时作为插件的一部分。我使用.Net MVC2平台提供了一个解决方案,我提出了这个问题的答案。 – 2010-09-20 08:20:55

0

Attributes作为集成机制可能非常有用。

该方法非常简单,基本上我们要识别webforms,以便我们可以动态地找到它们;使用属性和反射为解决方案细节提供了很多灵活性。

首先,您需要设计(在纸上/白板/在您的头上)一组属性,这些属性将会给您以后的内容 - 您是否只想使用属性来“查找”Web表单 - 或者你想用它们来提供其他有用的元数据吗?

之后:

  • 开发系统中的某个适当的实际属性(可能osme类型的公共库)。
  • 装饰与属性
  • 每个web窗体开发uses reflection到定位类的装饰用适当的属性(一个或多个)
  • 使用反射来构建导航期间提取的数据(web表单)的成分。

如果您是属性新手,this tutorial可能会有所帮助。

+0

我在纸上做过所有的事情,所以我很清楚要做什么。对于我来说,问题在于,有了webforms的想法,当我们请求使用插件复制的一些网页时,它将如何识别基本应用程序,因为它将运行它的组件,更多...检查许可证以及是否记录用户可以使用这个插件。使用母版页也很棘手。 – 2010-09-20 08:26:20