将版本控制集成到您的 ECM 应用程序中
将版本控制集成到您的 ECM 应用程序中
引言
SourceAnywhere 是一款基于 SQL Server 的版本控制工具。它是一款轻巧但功能强大的工具,专为本地和远程开发团队设计。该工具提供各种类型的客户端,包括 GUI 客户端、IDE 插件和 Java 客户端,以满足各种需求并适应不同的开发环境。
SourceAnywhere 的 SDK 客户端是版本控制客户端之一,它允许您将版本控制功能(如检入、检出、获取、共享、分支等)嵌入到您自己的应用程序中,并将文件版本控制自动集成到您系统的workflow中。 例如,在企业内容管理 (ECM) 系统中,您可以将文档提交到源代码控制数据库,其中将保留文件的历史更改,并且可以根据需要检索特定版本。
如果您对 SourceAnywhere 感兴趣,可以从 Dynamsoft 的网站下载 30 天免费试用版。 COM/Java SDK 以及其他客户端可在下载页面上找到。
主要特点
- 提供各种源代码控制客户端,包括 GUI 客户端、SDK 和 IDE 插件,用于访问和管理您的数据。
- 强大:能够处理 500+ 个全球并发连接。
- 高效:独特的缓存机制可提高版本控制性能。
- 安全:通过 SSL、Blowfish 加密、密码策略和数据库加密,您的数据得到妥善保护。
在本文中,我将向您展示如何将 SourceAnywhere 集成到您自己的应用程序并自定义版本控制操作。
1. 将 SourceAnywhere 嵌入到您的应用程序
让我们以 Visual Studio C# 程序为例。 在解决方案资源管理器中,单击菜单“项目 | 添加引用 | 浏览”,在 SourceAnywhere COM SDK 的安装文件夹中选择“SAWSSDK.dll”,然后单击“确定”。
2. 连接到数据库
调用 ConnectToServer
以连接到远程服务器。 您可以定义目标服务器以及是否通过代理服务器连接。
成功连接到服务器后,您可以在 Login
属性中指定您的用户名、密码以及目标数据库和存储库。
以下示例代码将让您连接并访问 Dynamsoft 提供的演示服务器。 服务器和登录信息如下
服务器:demo.dynamsoft.com
端口:7777用户名:dynamsoft1
密码:saw
您还可以查看 SourceAnywhere 在线演示页面以了解详细信息。
private void Connect_Click(object sender, EventArgs e)
{
string ServerIP = "demo.dynamsoft.com";
int ServerPort = 7777;
bool OnlyTrial;
SAWSSDKLib.Enum_EncryptType EncryptType;
int LeftTrialDays;
bool RealServer;
bool Cancelled;
string ResultDescription;
string DBServerName;
string DBName;
long ResultValue;
ResultValue = sdkObject.ConnectToServer(ServerIP, ServerPort, Enum_ProxyType.Enum_NOPROXY, "", 0, "", "", false, "", out EncryptType, out OnlyTrial, out LeftTrialDays, out RealServer, out DBServerName, out DBName, out Cancelled, out ResultDescription);
if (ResultValue != 0)
MessageBox.Show("Failed to connect to server");
else
{
SAWSSDKLib.SAWSKeyFileSet KeyFileSet = new SAWSKeyFileSet();
bool MustChangePassword;
int DayOfExpiration;
long ResultValue1;
ResultValue1 = sdkObject.Login("dynamsoft1", "saw", "demo.dynamsoft.com", "default", KeyFileSet, out MustChangePassword, out DayOfExpiration, out Cancelled, out ResultDescription);
if (ResultValue1 != 0)
MessageBox.Show("Failed to log in");
else
MessageBox.Show("Log in successfully");
}
}
3. 检出文件
连接到服务器后,以下示例代码使您可以从版本控制工具中检出文件“$/test/local.txt”。 使用 CheckOutFile.LocalFileName
定义检出文件夹。
private void CheckOut_Click(object sender, EventArgs e)
{
SAWSSDKLib.SAWSCheckoutFileSet CheckOutFileSet = new SAWSCheckoutFileSet();
SAWSSDKLib.SAWSDiffMergeParam MergeParam = new SAWSDiffMergeParam();
bool Cancelled;
string ResultDiscription;
SAWSSDKLib.SAWSOperationResultSet OperationResultSet = new SAWSOperationResultSet();
SAWSSDKLib.SAWSCheckoutFile CheckOutFile = new SAWSCheckoutFile();
CheckOutFile.FileToCheckout = "$/test/local.txt";
CheckOutFile.LocalFileName = "D:\\Temp\\1.txt";
CheckOutFileSet.Add(CheckOutFile);
long ResultValue;
ResultValue = sdkObject.CheckoutFiles(CheckOutFileSet, true, "", false, Enum_ModifiedFileHandling.Enum_AskModifiedFile, Enum_EOL.Enum_EOLNative, Enum_CompareFileBy.Enum_CompareFileByChecksum, Enum_SetLocalFileTime.Enum_SetLocalFileTimeModification, MergeParam, out Cancelled, out ResultDiscription, out OperationResultSet);
if (ResultValue != 0)
MessageBox.Show("Check out failed");
else
MessageBox.Show("Check out successfully");
}
4. 检入文件
修改检出的文件后,您可以使用 CheckInFiles 从您的文件夹中检入该文件。
CheckInFile.FileToCheckin
指定计划检入的文件。 CheckInFile.LocalFileName
指定检出文件夹。
private void CheckIn_Click(object sender, EventArgs e)
{
SAWSSDKLib.SAWSCheckinFileSet CheckinFileSet = new SAWSCheckinFileSet();
SAWSSDKLib.SAWSCheckinFile CheckInFile = new SAWSCheckinFile();
CheckInFile.FileToCheckin = "$/test/local.txt";
CheckInFile.LocalFileName = "D:\\temp\\1.txt";
CheckinFileSet.Add(CheckInFile);
SAWSSDKLib.SAWSDiffMergeParam MergeParam = new SAWSDiffMergeParam();
bool Cancelled;
string ResultDescription;
SAWSSDKLib.SAWSOperationResultSet OperationResultSet = new SAWSOperationResultSet();
long ResultValue;
ResultValue = sdkObject.CheckInFiles(CheckinFileSet, false, false, Enum_CompareFileBy.Enum_CompareFileByChecksum, Enum_EOL.Enum_EOLNative, true, false, Enum_SetLocalFileTime.Enum_SetLocalFileTimeModification, Enum_CheckinUnchangedFileHandling.Enum_AskCheckinUnchangedFile, "", MergeParam, out Cancelled, out ResultDescription, out OperationResultSet);
if (ResultValue != 0)
MessageBox.Show("Check in failed");
else
MessageBox.Show("Check in successfully.");
}
除了上面显示的功能外,SourceAnywhere SDK 客户端还支持标签、显示历史记录、共享和分支等操作。 您可以根据自己的要求完全自定义应用程序。
Resource
要自己使用 SDK,您可以从 Dynamsoft 的网站下载 30 天免费试用版。
您也可以使用在线演示。