第一点:
在ASP.NET 5一般来说,路由默认都是很不错的,应在配置的方式工作开箱没有太多。您可以在应用程序中使用配置和/或属性基于路由(尽管详细概述了here),但我个人的偏好适用于属性方法。只要你有你的Startup.cs文件以下行(你应该有一个新的项目):
app.UseMvc();
,你应该能够将请求路由到您的API控制器所需的方式(即“/ API/...“)简单地通过使用〔路线]属性作为下方(例如,从)
[Route("api/[controller]")]
public class ValuesController : Controller
{
[HttpGet]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
}
产生ASP.NET 5的Web应用程序的API标准的上面的示例将路由任何GET请求作出采取”/API /值”。
虽然此方法可用于处理对您的api所做的请求,但为了提供您的前端JavaScript应用程序/单页应用程序所需的文件,您需要启用静态文件服务。如果您添加以下的配置方法,在您的Startup.cs类:
app.UseStaticFiles();
这将使您的应用程序服务的静态文件 - 默认情况下,这些都是从“wwwroot文件”文件夹服务,虽然这可以如果需要,可以在project.json文件中进行更改。然后应该将您的前端应用程序所需的文件添加到此文件夹中。有关提供静态文件的教程可以是found here。
第二点:
在我的经验,这将不会是当您发布的网站的一个问题 - 只要你的服务器设置正确,你将不再需要包括制作请求时的端口 - 导航到[yourwebsitename]/api/...就足够了。
第三点:
在我看来,这完全取决于项目有多大可能会增长,虽然喜好和意见会有所不同,从开发到开发者。一般而言,如果项目的范围仍然很小,那么将两者都保存在一个项目中是完全可以的,因为不必要的复杂性会降低。然而,正如你所指出的那样,它也非常有用,以保持项目之间的关注点分离。因此,除了您的方法的组织优势之外,两个项目的相关依存关系也将保持分开。