我想编写一个新的REST样式API并查看ServiceStack并且非常喜欢它.但是,我已经看到Microsoft已经发布了ASP.Net Web API项目,作为新MVC 4 beta的一部分.有没有人看过新的Web API项目?你能给出每个系统的优缺点吗?
我使用EXE项目(azure应用程序的启动任务)使用我的服务堆栈,因为我已将以下服务堆栈的DLL和一些Azure的DLL复制到EXE项目中.

当我构建这个EXE项目时,Azure DLL将与我的EXE捆绑在一起但服务堆栈的DLL不会与EXE捆绑在一起,因为要在任何机器上运行我的EXE,我需要手动复制所有服务堆栈的DLL.
我已经使用了这个服务栈的dll来使用
JsonServiceClient client = new JsonServiceClient(servicepath);
Run Code Online (Sandbox Code Playgroud)
我应该怎么做才能将所有这些DLL捆绑到我的EXE中?
我正在尝试找出构建API的最佳方法; 我们在标准REST结构中设置了评论(列表一,列出所有,创建,更新等).在不完全符合示例的情况下:每个评论可以链接到一个或多个其他类型,例如事件,位置或事物.
我的想法是网址将是:/ event/reviews /(或相反的例如/ reviews/event /)/ location/reviews// thing/reviews /
然而,我可以看到的问题是每个这样的"GET"应该返回父对象,即一个事件.
那么使用ServiceStack,处理这种情况的最佳方法是什么?是为每个数据请求创建一个自定义服务而不是滥用开箱即用的REST设置还是我错过了一些更基本的东西?
我想做这个:
string template = "Hello @Model.Name! Welcome to Razor!";
string result = Razor.Parse(template, new { Name = "World" });
Run Code Online (Sandbox Code Playgroud)
似乎http://razorengine.codeplex.com是完美的,除了它已经一岁了.
编辑:事实证明RazorEngine已经转移到GitHub并在几个月前提交了一个提交:https://github.com/Antaris/RazorEngine
我注意到Service Stack有一些Razor自托管,但是这里有一个很长的页面http://razor.servicestack.net没有"你好世界,你可以从控制台完全做到这一点."
从控制台应用程序中的ASP.NET Razor模板生成HTML的当前最佳解决方案是什么?
在ServiceStack网站上列出,它表明ServiceStack可以在Mono上运行:
这些不同的配置是什么,哪些是Mono上的Web服务的首选?
任何人都知道servicestack框架是否可用于创建CORS REST服务?
我几天来一直在抨击WCF REST的东西 - 完全没用.
谢谢
我做了一个包管理器update-package命令来将我们的项目更新为最新的二进制文件.我几乎发布它,因为它通过了所有测试,直到幸运地我发现了一个需要更多调试的问题.
当我突然看到这条异常信息时,我的嘴巴张开了:
已达到"每小时6000次Redis请求"的免费配额限制.请参阅https://servicestack.net以升级到商业许可证.
如果我发布这个网站怎么办?像这样的做法简直令人反感!没有控制台警告或没有任何许可证.这就像是将一个"开源"特洛伊木马传播到你的项目中.
servicestack有什么好的替代品吗?
编辑:阅读所有评论我想我的第一反应有点强烈.Nuget自动从v3更新到v4,虽然我没有发现任何重大变化,但阅读发行说明本来是正确的做法,而不是抨击一个好的产品.话虽这么说,我认为人们会在这个例外上焚烧,因为6000个请求足以通过测试并发布这是灾难性的.
我正在建立一个库存管理系统,我正忙着设计(思考)API和我的REST实现.
我有以下资源,您可以在资源上执行许多操作/操作.每个操作都将修改资源,并在某些情况下创建新资源并创建历史记录或事务.
我正在寻找专家关于URL和资源设计的可用性和可接受性的一些意见.陷阱和现实世界的例子,任何意见或批评欢迎.
我担心的是整个应用程序可能围绕这一大资源开发?我的后端堆栈将是C#和servicestack框架,对于前端,我将使用HTML和AngularJS.并不是说它有所作为.
场景1.典型操作将是:
POST /inventory/{id}/move
POST /inventory/{id}/scrap
PUT /inventory/{id}/takeon
POST /inventory/{id}/pick
PUT /inventory/{id}/receive
POST /inventory/{id}/hold
POST /inventory/{id}/release
POST /inventory/{id}/transfer
POST /inventory/{id}/return
POST /inventory/{id}/adjustment
{
"userID": "", //who is doing the actions (all)
"tolocationID": "", //new location for inventory (move/takeon/pick/receive/transfer/return)
"qty": "", //qty (pick/receive/takeon/transfer/return)
"comment": "", //optional for transaction (all)
"serial": "", //(takeon/receive)
"batch": "", //(takeon/receive)
"expirydate": "", //(takeon/receive)
"itemCode": "", //(takeon/receive)
"documentID": "", //(pick/receive/return/transfer)
"reference" :"", //(all)
"UOM" :"", //(all)
"reference" :"", //(all)
}
Run Code Online (Sandbox Code Playgroud)
这在标准方面是否可以接受.另一种方法可能是.
情景2.
POST /inventory/{id}/move …Run Code Online (Sandbox Code Playgroud) 我的团队决定通过ServiceStack.net Redis Client与Redis合作,作为我们正在开发的新的高容量网站的底层存储库.我不确定在哪里查找这个问题的文档(对于一般的Redis文档或特定的ServiceStack.Net文档或两者) - 实际上是否有关于如何通过ServiceStack.Net实现Redis的文档的权威来源,包括您需要了解Redis概念和ServiceStack.Net概念,还是需要分别整合两个方面的文档才能全面了解?
我正在努力解决如何在模型的对象图中存储相关对象.这是一个我想要使用的简单场景:
系统中有两个对象:User和Feed.在RDBMS术语中,这两个对象具有一对多关系,即a User具有Feed对象集合,而feed只能属于一个User.Redis将始终通过用户访问Feed,但有时我们会希望通过Feed实例访问用户.
所以我的问题是我们是应该将相关对象存储为属性还是应该存储Id相关对象的值?为了显示:
方法A:
public class User
{
public User()
{
Feeds = new List<Feed>();
}
public int Id { get; set; }
public List<Feed> Feeds { get; set; }
// Other properties
}
public class Feed
{
public long Id { get; set; }
public User User { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
方法B:
public class User
{
public User()
{ …Run Code Online (Sandbox Code Playgroud) servicestack ×10
c# ×6
api ×2
redis ×2
rest ×2
.net ×1
architecture ×1
asp.net ×1
asp.net-mvc ×1
assemblies ×1
cors ×1
exe ×1
ilmerge ×1
javascript ×1
licensing ×1
linux ×1
mod-fastcgi ×1
mono ×1
razor ×1
requirejs ×1