我是C#/ .NET的新手
答案 0 :(得分:1)
为什么ASP.NET有这么多不同的项目选择? (Web应用程序,Web API,Web站点,MVC等)。我只是想听一个tcp端口,以及一种发送响应的方法。等...
因为每个项目都有自己的目的。 如果你想只是在TCP端口上听,那么你可以去学习微软 Katana OWIN (但我很怀疑这是否是你想要的)。 Katana OWIN
简要介绍每个项目目的:
为什么我需要IIS?
IIS 用于提供.NET应用程序。 没有它,服务.NET应用程序将非常困难。
答案 1 :(得分:1)
我将从 2 开始,然后转到第一个问题。 IIS将运行您需要的任何.NET Web服务,无论是怪异的WCF服务,ASP.NET应用程序还是最基本的http处理程序。
据我所知,ISS是使用.NET Web服务最直接的方式。如果您习惯使用PHP,它基本上是LAMP或WAMP for .NET,这意味着它是必要的。 Mike Goodwin指出,还有其他选择,但我不得不承认我对这些第三方并不熟悉。因为将一层替换为另一层并不意味着什么,我会坚持"正常"过程
由于您不希望框架为您执行大量操作,您最好的选择可能就是这样:
当然,如果您不想打扰IIS配置,您需要有人在IIS上设置URL并将其映射到您的处理程序存储库。
修改强>: "抽象层"这将是框架的定义,无论好坏,所以你一直坚持它。
现在,既然你有一个低级别的背景,那么使用.NET Web服务的不那么干扰的方式可能就是我之前建议的三个步骤。尽管如此,您仍然坚持使用IIS,以便处理通信(即管理套接字/请求)。这就是框架的运作方式。
仍然有希望。如果您完全控制您的服务器(不我的情况,其他一些IT团队管理Web服务器),您当然可以构建一个监听某个套接字并相应地处理请求的Windows服务。如果您想要提供网页,这是一个最不寻常的解决方案,但如果您只想通过http请求推送一些数据,那么它会运行得相当好。如果你沿着这条路走下去,我建议你看一下System.Net命名空间,你会发现一些像" Socket"那里。结合控制台应用程序或Windows服务,您可以解决一些问题。
我的一位同事是前微控制器设计师,我确切地知道你对.NET框架有什么样的感觉。你有时会经历一些挫折,但大多数时候都有工作。如果您需要,请随时索取更多详细信息。
答案 2 :(得分:1)
首先以相反的顺序处理您的积分,首先 - 为什么我需要IIS?
答案是,也许你没有。如果您正在做一个不会暴露给公共互联网的简单监听器,那么您就不需要它了。
如果您正在进行需要扩展的Web应用程序,那么它应该可靠且易于管理,它可以帮助您:
简而言之,它是一个工业实力,真实世界的Web服务器,可以使您的应用程序在恶意的世界中可靠地运行,并随着应用程序的增长而扩展。如果您不需要这种规模/高可用性/管理功能,对某些情况来说肯定是过度的。在这些情况下,您可以选择在Windows服务甚至控制台应用程序中自行托管ASP.Net。这可能听起来很复杂,但OWIN - .Net的开放Web界面已经变得非常简单。这是Asp.Net用于与其托管服务器通信的接口的抽象。
这里有一个关于如何在控制台应用程序中自我托管Web API的非常好的教程
http://www.asp.net/web-api/overview/hosting-aspnet-web-api/use-owin-to-self-host-web-api
它完全符合您的评论要求:
关于ASP.Net的第二点 - 它是一个经历了大量演变的框架,试图跟上Web开发世界的快速变化。这意味着它有点臃肿并失去了一些连贯性,但最近开发人员一直致力于使其更轻巧,更模块化和更简单。 Scott Guthrie在他的博客中总结了这一点: