寻找有关开发专用版本控制系统的指导

时间:2010-08-12 03:46:30

标签: .net svn version-control rpc

我在建筑和建筑行业工作,但目前我花了很多时间做软件开发。在将我的软件项目移动到Subversion存储库之后,我意识到这个行业真正需要一个类似的设计和构建文档系统。我只开发了一年半的软件,所以我没有资格参加这样的项目。但是,如果没有别的学习经验,我仍然有兴趣尝试它。

我想开发一个类似于SubVersion的HTTP运行的服务器客户端系统,而不是管理系统存储架构设计信息的原始文件。对于称为Industry Foundation Classes的此类数据,已存在开放模式规范。然而,目前这种格式的信息始终存储在单独的文件中,编码为STEP或XML,并通过简单的FTP服务器共享。

相反,我想开发一种方法将这些信息存储在数据库中,以便可以轻松查询或更新数据的子集。此外,我想包括类似于subversion的版本控制功能,其中中央数据库跟踪数据的变化作为增量,也可以分支为多个选项。

我不想简单地使用SVN,因为我希望系统知道它包含的数据。例如,用户可能希望能够从服务器查询所有墙。然而,为了使其工作,服务器将需要了解它可能包含墙。

显然,我可以询问一些具体的问题,我应该如何解决这个问题。但首先,我想弄清楚每个层如何工作以及采用何种技术的全貌。

到目前为止,我只开发了独立的应用程序,主要是在C#.Net中。所以我是任何类型的网络/服务器/客户端类型开发的新手。将这样的应用程序开发为连接到SQL Server数据库的.NET Web服务是否有意义?因此,对服务器的请求将通过SOAP进行,然后数据将作为XML返回? SVN做了类似的事情,但通过WebDAV正确吗?见下图。

alt text

我不一定停留在Microsoft / C#/ .NET环境中,但它似乎是最简单的选择,因为我已经非常熟悉它,Visual Studio和.NET WebService将自动创建SOAP功能。是否存在与.NET Web服务等效的Java,我可以专注于对象模型而不是RCP接口?使用除了SOAP之外的RCP(例如XML-RCP,JSON或REST)会有明显的优势吗?

我真的很想听听更有经验的开发人员如何处理这样的项目的其他反馈。

1 个答案:

答案 0 :(得分:1)

这是一个非常大的问题。

我建议以不同的方式看待它;您可以使用git / svn / hg / etc作为内容中立的存储系统,并且有一个您编写的补充系统可以查询内容并对其进行内容感知操作吗?这样您就不必重新解决所有问题,并且可以坚持已经完成和审查的工作,并且已经编写的工具可以用于处理“原始”数据。