Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当我可以创建基于web的RESTful端点时,为什么要将OWIN用于基于服务的API?_Rest_Azure_Owin_C# 5.0 - Fatal编程技术网

当我可以创建基于web的RESTful端点时,为什么要将OWIN用于基于服务的API?

当我可以创建基于web的RESTful端点时,为什么要将OWIN用于基于服务的API?,rest,azure,owin,c#-5.0,Rest,Azure,Owin,C# 5.0,我正在重写现有应用程序的体系结构,该应用程序将托管在Azure上,并且至少有两个API—一个是公共的,另一个是私有的,用于内部RESTful相关的CRUD调用 主要技术栈是ODATA、WebAPI2、C、MVC5、EF、AngularJS。我的想法是,RESTful端点都将通过Azure Web角色公开,就像其他URL一样 在阅读更多关于它的内容时,它看起来完全是一样的,但作为一种服务 走这种OWIN路线有什么好处吗?想想看,我甚至可以编写一个WCF服务来做同样的事情,而不是基于web的REST

我正在重写现有应用程序的体系结构,该应用程序将托管在Azure上,并且至少有两个API—一个是公共的,另一个是私有的,用于内部RESTful相关的CRUD调用

主要技术栈是ODATA、WebAPI2、C、MVC5、EF、AngularJS。我的想法是,RESTful端点都将通过Azure Web角色公开,就像其他URL一样

在阅读更多关于它的内容时,它看起来完全是一样的,但作为一种服务

走这种OWIN路线有什么好处吗?想想看,我甚至可以编写一个WCF服务来做同样的事情,而不是基于web的RESTful API调用

我正在寻找一些理由,为什么我应该进行迁移到基于服务的API的练习。

从技术角度讲

对于您的公共API,我建议以RESTful方式使用Owin。这将为您的内部系统创建一个门面

在内部,WCF将提供更好的性能

专业人士

有了一个好的计划,维护就容易多了。由于其分散设计,重构带来的风险包含在特定的上下文中。维护就是最小化和控制与变更相关的风险。 这些链接更多地是关于SOA的,但我相信您可以从中提取所需的信息:

缺点

不过你应该知道,因为它也有缺点。您将需要可靠的单元测试、日志记录和版本控制策略

希望这有点帮助。我尽量只保留要点,因为这个问题的完整答案可以作为一本书出版