我有由ServiceStack后端的解决方案,与常规设置(APPHOST,serviceInterface等和ServiceModel),两者WinForms应用程序和iOS应用使用服务。
现在,我想提出一个网络管理员,并正在寻找咨询如何构建这个 。 我想保持APPHOST项目小,如SS文件说
理想情况下,根级APPHOST项目应保持轻量和自由实现的。
所以我想有网络管理员在一个单独的项目 ,所有的.cshtml和内容,这一切。
这可能吗? 不建议? 有任何想法吗?
我能想到的一些替代品
- 单页的应用程序,让少数
cshtml
文件住在APPHOST项目。 这是值得学习曲线? - 有单独的项目调用Web服务。 那不是很无效的,考虑到他们生活在同一个Web服务器上? 还是应认为是有利的,因为它使一切松耦合?
看看文档使用编译剃刀意见和ServiceStack.Gap如何创建使用编译剃刀查看嵌入式解决方案ServiceStack GitHub的仓库。
我想为初学者提供一个更完整的答案:
为Web站点的项目,必须启用剃须刀。 它必须有一个参考ServiceStack.Razor
例如,所以.cshtml
将编译。
正如@mythz指出,加ServiceStack.Razor.BuildTask
预编译剃刀文件。 这是必要的,让他们包括LoadFromAssemblies
参数
在主APPHOST,指定剃刀文件到其他组件,可以找到LoadFromAssemblies
例如:
this.Plugins.Add(new RazorFormat { LoadFromAssemblies = { typeof(ActivityServer.Admin.AdminServices).Assembly } });
到目前为止,它一直都是关于剃刀.cshtml文件。 也包括更为复杂的观点的服务,例如,只需添加这到AppHost() : base(...)
或者如果你想有一个前缀,这些服务使用AppHost.RegisterService。
有一点需要指出的是,有在外部DLL文件剃刀没有单独的命名空间,所以“hello.cshtml”在外部DLL与主APPHOST的同名文件冲突。 通过将(在外部DLL)中的所有文件CSHTML一个子文件夹下,这将帮助,因为该文件夹将是URL的一部分。