C# 将.dll预编译(可部署)web应用程序与网站一起使用

C# 将.dll预编译(可部署)web应用程序与网站一起使用,c#,asp.net,webforms,C#,Asp.net,Webforms,我想创建一个web门户,提供用户基本功能、用户授权、统计信息等,但在较低级别上提供各种功能的应用程序 通过研究和大量的Google,我认为最好的方法是为web门户创建一个web页面项目,为了便于源代码控制、低耦合和可维护性,所有底层应用程序都需要是web门户的可部署依赖项。因此他们都是在网站发布时自动编译和上传的!这看起来很棒!但我一辈子都搞不懂如何从.dll(可部署程序集)下调用底层网页 这可能吗?这似乎是我所能收集到的,因为你可以将整个网站(aspx和所有)编译成.dll。那么如何在.dll

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

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

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

例如,我希望这样做: www.webpage.com/Default.aspx(根目录和web门户) www.webpage.com/bin/application.dll/Default.aspx(不带路由的预编译web应用程序)

谢谢

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


我认为这有点黑客行为,但我可以在.dll中添加一个控制器,该控制器只提供实用程序,根据需要返回整个aspx或ASCXWebUI组件以发送到客户端。不过一定有更好的办法吗?

我建议如下

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

类库(最终编译成DLL)将是您网站中的项目引用,它将处理大部分代码。该网站将有用户界面和一些基本的逻辑,当然会规定网站的结构,但将依靠类库的繁重工作


此设置的优点是集中的代码和易于扩展。我的一个解决方案有3个网站和一个共享相同代码库的web服务

“ASP.NET网站”是在VS2005中引入的,但现在已经不是什么热门话题了;看起来我们都在使用VS2002中引入的原始“ASP.NET应用程序”项目模型。然而,您的问题文本表明您对ASP.NET的工作原理缺乏了解。我建议您使用ASP.NET MVC而不是WebForms。Web Forms仍然是构建网页的有效方法。基于这些设计的优缺点,我为这个项目选择了web表单。我确实喜欢MVC,并且已经考虑过了。如果这是实现问题中描述的功能的唯一途径,那么花时间将我的项目切换到MVC是值得的。这会起作用,但会改变我的设计意图,允许在网站项目(web门户)下构建单独的应用程序并简单地添加到门户,即添加对web站点项目的引用。是否不可能实现从.dll交付网站的UI?或者.dll只能具有实用功能?这让我感到困惑,因为MSDN文档暗示将整个web应用程序(.aspx、ascx和all)编译成.dll。我对web应用程序的经验是,所有逻辑都编译成dll,但UI仍然是单独的.aspx文件。您可以用代码构建UI,但这将是一项重大任务,并且取决于您的站点的交互程度,您可能会遇到回发问题(通过代码添加的控件必须在每次回发时重新添加,这可能会导致表单提交方面的严重问题)。您可能会有点作弊,并使用URL路由和路由控制器(缺少更好的术语)将所有URL移动到单个处理位置。我不确定这是否有意义。我认为现在.Net框架不支持我正在努力做好的事情。虽然这可能是可行的,但也可能因此变得相当痛苦!我认为TrueDevelopment在这里有最好的答案。