如果这个问题很密集,请原谅我.
背景:我们有几个内部应用程序集成在数据库中.我们正在研究如何突破这一点,似乎转向一种架构,其中每个应用程序通过服务公开其功能,而不是调用其他应用程序的数据库,这是最有意义的.这对我来说似乎是一种面向服务的架构.当我浏览有关开始使用面向服务的体系结构的信息时,我看到很多关于本文的讨论:SOA已经死了; 长期服务.我也从Martin Fowler和Jim Webber那里看到了这一点:我的公共汽车在这方面看起来很大吗?.
题:
在ASP.Net MVC中是否存在RESTful Web服务的动态文档的现有框架或示例?
我在ASP.Net MVC项目中有一堆Web服务,我想要记录.对于每个服务,我想显示允许的动词,网址模板,示例请求和响应消息.如果帮助页面还有一个用于测试服务的表单而不必启动Fiddler来测试它,那将是非常好的.
这样的事情是否已经存在,或者如果我想将它添加到我的ASP.Net MVC Web服务项目中,我会从头开始吗?
我正在使用Fluent NHibernate,我有两个表:
BusinessPlan [Id, Year, CustomerCode]
PreviousYearData [Id, Year, CustomerCode, MoreFieldsForData]
Run Code Online (Sandbox Code Playgroud)
在我的域中,我想将PreviousYearData加入BusinessPlan,使实体成为这样的:
public class BusinessPlan {
public Guid Id { get; set; }
public int Year { get; set; }
public string CustomerCode { get; set; }
public PreviousYearData PreviousYearData {get; set;}
}
public class PreviousYearData {
public Guid Id { get; set; }
public int Year { get; set; }
public string CustomerCode { get; set; }
// many more fields
}
Run Code Online (Sandbox Code Playgroud)
PreviousYearData表中的数据在创建BusinessPlans之前的年初预先填充,因此我不知道BusinessPlan的Id将是什么,并且无法创建正常的外键.我想我想要做的是根据Year和CustomerCode这两个列将PreviousYearData加入BusinessPlan.这可能与Fluent NHibernate一起使用吗?还有另一种方法可以解决这个问题吗?
在工作中,我们在集中式SQL服务器中有几个数据库应用程序.每当一个应用程序需要处理来自另一个应用程序的数据时,它只是查询它或通过数据库更新它.我相信这是"企业集成模式"一书(Hohpe&Woolf)中描述的"共享数据库"模式.
这些跨数据库依赖性正在给我们带来许多令人头疼的问题.现在最大的问题是我们在SQL服务器上遇到性能问题,并且由于跨数据库依赖性而无法扩展.我认为我们应该做的是从共享数据库模式转向EIP手册中描述的消息传递系统.每个应用程序都将负责所有自己的数据,而其他想要访问该数据的应用程序将通过服务(在消息传递总线上?)获取它.