将Web应用转换为控制台应用程序?

3
我正在处理一个小型Web应用程序(1页),由他人构建,在按下Web页面上的按钮后执行特定任务。
现在要求略有改变,我们需要将其自动化,每周运行而无需用户干预。
如何才能最大限度地减少对代码所做的更改?
我想向项目添加控制台应用程序,然后在内部引用Web应用程序,但似乎这并不起作用。
或者将Web应用程序转换为控制台应用程序,如果实际上是可能的话?
是否有任何简单直接的方法来完成这个任务?
谢谢。
2个回答

1
首先,确保“特定任务”从Web应用程序中分离出来,以便它位于自己的.NET项目中。即使此项目仅包含一个类,您也可以在基于Web的UI和任务本身之间“分离关注点”。
然后,您可以创建另一个“包装器项目”来调用此新项目,如您所愿。控制台应用程序可能很好地完成工作 - 您可以使用计划任务运行它 - 或者您可能更喜欢使用Windows服务。

0

这真的取决于现有代码的结构如何。一种常见的方法是将业务逻辑与表示层分离。在VS中,通常通过创建一个类库项目并将所有业务逻辑放在其中来实现。然后,Web应用程序项目只需实例化业务逻辑类并运行它们的方法。

如果是这样做的话,你只需要引用类库项目即可。另一方面,如果你把所有逻辑都放在Web应用程序项目中,可能没有快速的方法可以做到这一点,因为你不应该手动实例化页面类(当然,你也可以这样做,但这很笨拙,不建议这样做)。

因此,在这种情况下,你应该创建一个类库项目,并将所有需要在控制台应用程序中使用的逻辑移动到那里。我想这需要进行相当多的重构。


是的,这正是我所思考并试图避免的,但看起来没有其他办法。也许将其转换为 Web 服务并从控制台应用程序调用它? - user441365
Web服务听起来有点过头了。我认为你需要做至少同样数量的更改才能使其正常工作。最好用类库的正确方式来尝试实现它。 - Dmytro Shevchenko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接