65.9K
CodeProject 正在变化。 阅读更多。
Home

将版本控制集成到您的 ECM 应用程序中

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2013年3月26日

CPOL

3分钟阅读

viewsIcon

19613

将版本控制集成到您的 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 天免费试用版。

SourceAnywhere 30天免费试用

您也可以使用在线演示。

SourceAnywhere 指南 & 在线演示

© . All rights reserved.