如何启用web.NET库

如何启用web.NET库,.net,rest,ironruby,.net,Rest,Ironruby,我希望将现有的.NET库公开到intranet 随着许多人转向RESTful服务,这看起来很诱人。 同样的道理,我也在和你玩 我主要在寻找3点: 1) 您使用什么向web公开现有的代码库? 2) 您的方法如何使其易于实现 3) 你的方法安全吗?我个人使用WCF公开我的.NET库。它支持不同的传输协议和绑定。我相信你会找到适合你需要的。它还允许您实现通信。我个人使用WCF公开我的.NET库。它支持不同的传输协议和绑定。我相信你会找到适合你需要的。它还允许您实现通信。我认为,如果您的库不是设计用于接

我希望将现有的.NET库公开到intranet

随着许多人转向RESTful服务,这看起来很诱人。 同样的道理,我也在和你玩

我主要在寻找3点:
1) 您使用什么向web公开现有的代码库?
2) 您的方法如何使其易于实现

3) 你的方法安全吗?

我个人使用WCF公开我的.NET库。它支持不同的传输协议和绑定。我相信你会找到适合你需要的。它还允许您实现通信。

我个人使用WCF公开我的.NET库。它支持不同的传输协议和绑定。我相信你会找到适合你需要的。它还允许您实现通信。

我认为,如果您的库不是设计用于接触互联网的,那么这样做是一个坏主意

此外,如果您的库不处理在HTTP意义上作为资源有意义的东西,那么使用REST接口公开它们不是一个好主意


对于评论,“为什么?”

我想这是一个设计精良的图书馆。我想你在设计图书馆的时候一定有一些要求;某些用例和场景;您甚至可能已经编写了使用该库的示例,只是为了确保它易于使用。因此,该库满足了所有这些要求,可以称为设计良好的库

但是您似乎没有在您的需求或用例中包含“暴露于互联网”。您似乎也没有包括“通过REST接口公开”。很可能,为满足一组需求而精心设计的库不会为满足另外两组需求而精心设计,除非这是偶然的

其余方面尤其如此。库公开的对象不太可能满足REST所基于的“资源”的HTTP定义。试图将它们扭曲成正确的形状只会很痛苦

我的建议是收集一组新的需求,将库的功能作为一组设计良好的服务公开。这些服务将通过调用您的库来实现


在理想情况下,这个过程将产生一个与您最初设计的RESTAPI完全相同的RESTAPI。但是它可能会导致一些完全不同的结果。

我认为,如果你的图书馆不是设计用来接触互联网的,那么这样做是个坏主意

此外,如果您的库不处理在HTTP意义上作为资源有意义的东西,那么使用REST接口公开它们不是一个好主意


对于评论,“为什么?”

我想这是一个设计精良的图书馆。我想你在设计图书馆的时候一定有一些要求;某些用例和场景;您甚至可能已经编写了使用该库的示例,只是为了确保它易于使用。因此,该库满足了所有这些要求,可以称为设计良好的库

但是您似乎没有在您的需求或用例中包含“暴露于互联网”。您似乎也没有包括“通过REST接口公开”。很可能,为满足一组需求而精心设计的库不会为满足另外两组需求而精心设计,除非这是偶然的

其余方面尤其如此。库公开的对象不太可能满足REST所基于的“资源”的HTTP定义。试图将它们扭曲成正确的形状只会很痛苦

我的建议是收集一组新的需求,将库的功能作为一组设计良好的服务公开。这些服务将通过调用您的库来实现


在理想情况下,这个过程将产生一个与您最初设计的RESTAPI完全相同的RESTAPI。但这可能会导致完全不同的结果。

达雷尔,约翰,为什么?似乎对于一个设计良好的库,一般来说,无论如何,您都应该追求简单/安全的输出,而不是暴露不安全的代码内部,彻底检查您的输入以避免安全风险。这似乎很适合休息。当然,为REST从头开始设计的界面显然是最佳的,但我在这里试图假设,我们正在尝试首先构建行为合理、负责任的库。John,感谢您的详细阐述,这非常有帮助,我的问题的第一个答案似乎有点像“您没有!”。您想要塑造/设计一个适合REST的界面,这似乎是直观的或几乎是隐含的(而不是试图将1对1的方法对应关系硬塞进REST)。就像你制作的任何界面一样。不过我还是很好奇,一旦你仔细考虑了这个接口,你是如何公开它的?我不想让这个问题与技术无关,因为解决方案的简单性/优雅性对我来说很重要。我会使用WCF的灵活性。该接口可以公开为REST、SOAP或使用TCP/IP或消息队列,代码很少或没有变化。在.NET中没有更好的方法了。嗯,是的,在.NET中有很多更好的方法。OpenRasta rocks for http,传输独立性承诺失败了很多次,这已经不再有趣了。Darrel,John,为什么?似乎对于一个设计良好的库,一般来说,无论如何,您都应该追求简单/安全的输出,而不是暴露不安全的代码内部,彻底检查您的输入以避免安全风险。这似乎很适合休息。当然,一个为REST从头开始设计的界面显然是最佳的,但我试着假设他