【问题标题】:Using .dll pre-compiled(deployable) web applications with a website将 .dll 预编译(可部署)的 Web 应用程序与网站一起使用
【发布时间】:2012-08-14 23:17:24
【问题描述】:

我想创建一个门户网站,为用户提供基本功能、用户授权、统计等。但在较低级别上提供各种功能的应用程序。

通过研究和大量的谷歌,我认为最好的方法是为门户网站制作一个网页项目,并且为了便于源代码控制、低耦合和可维护性,要求所有底层应用程序都是可部署的依赖项门户网站。因此!他们都在发布网站时自动编译和上传!这看起来很棒!但是我一生都无法弄清楚如何从.dll(可部署程序集)下调用底层网页。

这甚至可能吗?这似乎是我可以收集到的,因为您可以将整个网站(aspx 和所有)编译为 .dll。那么如何调用 .dll 中的网页/应用程序呢?

例如,我希望做这样的事情: www.webpage.com/Default.aspx(根和门户网站) www.webpage.com/bin/application.dll/Default.aspx(没有路由的预编译web应用)

谢谢!

编辑: 我想澄清这个想法是,一个开发组可以维护 Web 门户,而其他开发组可以构建单独的独立应用程序,这些应用程序将在该门户下运行。必须在编译时包含单独的项目。也许这个功能是不可能的? 旧式网站项目的目的是因为该项目已在一段时间前启动,并且是该项目的资源。如果项目类型引入了限制,当且仅当它实现了我如上所述的希望时,将其更改为更新的项目类型(ASP Web 应用程序)是可行的。

我认为这有点骇人听闻,但我可以在 .dll 中添加一个控制器,该控制器仅提供实用程序以根据需要返回整个 aspx 或 ascx web ui 组件以发送到客户端。不过一定有更好的方法吗?

【问题讨论】:

  • “ASP.NET 网站”是在 VS2005 中引入的,但现在已经不是什么话题了;看来我们都在使用 VS2002 中引入的原始“ASP.NET 应用程序”项目模型。但是,您的问题文本表明您对 ASP.NET 的工作原理缺乏了解。我建议你还是使用 ASP.NET MVC 而不是 WebForms。
  • Web 表单仍然是构建网页的有效用途。基于设计的优缺点,我为该项目使用了 Web 表单。我确实喜欢 MVC 并考虑过。如果这是实现问题中描述的功能的唯一方法,那么花时间将我的项目切换到 MVC 是值得的。

标签: c# asp.net webforms


【解决方案1】:

我会建议以下...

1 个解决方案和 2 个项目。 - 一个网站(不是网络应用程序) - 一个类库

类库(最终编译成 DLL)将成为您网站中的项目引用,它将处理大部分代码。该网站将具有 UI 和一些基本逻辑,当然会决定网站的结构,但将依赖类库来完成繁重的工作。

这种设置的美妙之处在于集中式代码和易于扩展。我的一个解决方案有 3 个网站和一个 Web 服务,它们共享相同的代码库。

【讨论】:

  • 这会起作用,但会改变我的设计意图,允许在网站项目(门户网站)下构建单独的应用程序,并且只需添加对网站项目的引用即可将其添加到门户网站。是否不可能实现从 .dll 交付网站的 UI?还是 .dll 只能具有实用功能?这让我感到困惑,因为 MSDN 文档暗示将整个 Web 应用程序(.aspx、ascx 和所有)编译成 .dll。
  • 我对 Web 应用程序的体验是所有的 逻辑 都被编译成 DLL,但 UI 仍然是单独的 .aspx 文件。您可以在代码中构建 UI,但这将是一项重大任务,并且根据您网站的交互性,您可能会遇到回发问题(通过代码添加的控件必须在每次回发时重新添加 - 这可能导致表单提交的主要问题)。您可以稍微作弊,并使用 URL 路由和路由控制器(因为没有更好的术语)将所有 URL 移动到单个处理位置。不确定这是否有意义。
  • 我认为现在 .Net 框架不支持我正在努力做的事情。虽然它可能是可行的,但它也可能因此变得非常痛苦!我认为 TrueDevelopment 在这里有最好的答案。
猜你喜欢
  • 2014-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-09
  • 1970-01-01
  • 2017-01-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多