我有一个长期运行的web项目(3-4岁),它基于ASP.NET MVC 5,我也有一个用TypeScript编写的大型客户端代码库。由于以前的约定,TypeScript源代码是MVC 5 csproj项目的一部分,因此它与后端一起编译。
由于种种原因,这种结构是非常不幸的。主要有以下几个方面:违反SRP,强耦合到后端,无法单独维护和构建后端,无法单独维护和构建前端等。
我想将客户端代码库分离到一个新的Visual项目中,但是,我不知道最好的方法是什么,因为Visual没有提供一种拥有干净的TypeScript项目的方法(至少据我所知)。
我将Visual 2015与TypeScript 2.0结合使用。我有什么选择?
发布于 2017-01-03 12:18:26
首先,如果客户端代码( TypeScript应用程序)不需要它自己的Web.config文件--也就是说,您不需要配置IIS授权、重定向等等--您可以简单地在Visual 中使用 "HTML TypeScript" 项目类型。
但是,如果您的客户端和服务器代码都需要自己的Web.config,并且它们被部署到同一个IIS网站上,那么拥有两个单独的ASP.NET项目就变得更加困难了,因为其中一个需要合并两个Web.config文件…。这是不可能的AFAIK。
我也面临着类似的问题,但在我的例子中,我有一个用TypeScript编写的基于AngularJS的web应用程序和一个ASP.NET Web后端。
到目前为止,我所能想到的不需要任何额外的构建步骤的最好方法是不将TypeScript代码移动到单独的项目中,而是移动Web / MVC代码而不是。客户端TypeScript在ASP.NET web项目中结束,Web进入类库。
剩下的两个痛点是共享的Web.config和通过Global.asax引导Web,这最终导致了“错误”项目。关于Web.config,可以通过.config机制将Web配置进一步提取到一个单独的configSource文件中。我看不出有什么方法可以让Global.asax中的Web引导从(否则只有客户端的代码) ASP.NET项目中获得。
发布于 2017-01-03 12:41:24
IMO,像javascript或css这样的客户端代码应该与您的“后端”代码一起使用,后端代码并不意味着您的整个后端代码,它应该是一个只处理http请求和服务器端呈现的瘦控制器层应用程序。
您可以将您的单片应用程序划分为多个service layer和一个frontend layer,后者只处理httprequest和呈现
仅将javascript和css分离到单个项目的问题是
https://stackoverflow.com/questions/41443297
复制相似问题