Integrating SourceAnywhere into Sparx Systems Enterprise Architect

Sparx Systems EnterPrise Architect is a high-performance modeling, visualization and design platform based on the Object Management Group (OMG)’s Unified Modeling Language (UML). It provides full life cycle modeling for business, software, and systems. In this tutorial, I’d like to share how to configure the version control software – SourceAnywhere – for Sparx Systems Enterprise Architect.

SourceAnywhere Downloads & Installation

Version Control Software Configuration

  1. Launch Sparx Systems Enterprise Architect and create a new project.
  2. Right-click the project root to show the context menu. Select Package Control, and click Version Control Settings.Start Version Control Settings Read more

SourceAnywhere Brings Fully Version Control Support for Visual Studio 2012

vs12 n saws

I am happy to announce that the latest SourceAnywhere release (from ver. 4.2) brings fully support for Visual Studio 2012.

Visual Studio is one of the first and most important IDEs that SourceAnywhere series support and integrate with ever since 2003.

VS 2012 comes with more colors in the main UI and the flexibility to adjust it according to your taste. For instance, color theme, fonts and colors for different display items, fully customizable toolbars and commands. It has 5 editions: Ultimate, Premium, Professional, Test Professional and Express. Moreover, Team Foundation Server 2012 is shipped with VS 2012.

Comparing with TFS, SourceAnywhere (we call it SAW for short)is a truly agile source control software designed for local and remote development teams. If you’re experiencing inefficiency – exceptionally large amount of time cost while doing the essential source control operations like get, check in or check out, using it locally or over the internet, with developers located worldwide, then SAW is the best source control product that you should try. It focuses on security, speed, team collaboration, usability, and integration with IDEs especially Visual Studio, Eclipse and Dreamweaver. It is a pure, simple and easy-to-use source control tool, which does it should does and without hassles, complexity or costly user training.

SAWS4.2About

When I look back to the progresses we have made on SAW in this very year of 2012. We successively rolled out several major updates to it, SAW 4.0, SAW 4.1 and SAW 4.2 which was brought out 2 weeks ago(11/26/2012). Particularly in SAW 4.2, we upgraded SourceAnywhere Add-in to support Visual Studio 2012. It makes the performance of SAW, when working with Visual Studio 2012, faster, smoother and more efficient.

After installing SAW 4.2, you can enable it at VS 2012 menu Tools/Add-in Manager.

add-in manager

By far we have received quite a few positive feedbacks as well as some constructive suggestions from SAW users. These are the powers that motivate our R&D team to keep evolving our products, especially SAW series.

How to choose a better TFS hosting service?

Microsoft Visual Studio Team Foundation Server is the collaboration platform at the core of Microsoft’s application lifecycle management (ALM) solution. It automates the software delivery process and gives you the tools you need to effectively manage software development projects throughout the IT lifecycle.

Due to the high cost of setting up TFS internally and the increasing maturity of hosting services, many of these companies now include TFS hosting. Now the question pops up: how to choose a TFS hosting service that can suite the team better? I list off some factors below, and hope the information helps.

 

Good customer service adds value

During one of our weekly training events a question was asked:  When we talk with our customers, they always tell us …? One of our team members answered the question immediately with: Good Customer Service.  True.  When a lot of companies announce themselves as customer oriented, not many of them really help their customers find the right solution, either because their product/service lines are too large and/or spread out, or they’re overloaded with their customers needs … sometimes that is just reality, but it is also an excuse!

I was happy to hear my coworker’s answer. That is what we are focusing on – Good Customer Experiences. I’m also very proud to show you our Customer page, which includes our existing customers as well as their feedback on our services.

 

Whether your data is in good hands

Before you make the decision, it’s critical to learn the security features provided by the vendor:

  1. Details of the data center, including its location and the service level.
  2. Database backup plans as well as the frequency.
  3. Whether you can download the database from the vendor (anytime).
Company Data Center Database Backup Database Downloadable Price
Dynamsoft VancouverSAS70 and CICA5970 certified Onsite: every 15 minutesOffsite: daily One per month at no cost From $20 /user/month
DiscountASP.NET US / UK Daily One per month at no cost;Need to pay for each additional backup. From $20 /user/month
Phase 2 International Hawaii 5 days’ worth of full backup One per month From $ 129.99 /user/month
PRAKTIK Hosting Seattle, WA USASAS 70 Certified From $25 /user/month
SaaS Made Easy, LLC IndianaSAS 70 Type II compliant UPS & power backup From $15.00 /user/month
TeamDevCentral Nightly backups $500.00 ~ $12,000.00 (CAD) setup fee + $150.00 ~ $200.00 (CAD) /user/month
TFS Server Hosting $25 /user/month

 

To learn more about these corporations and their services, please go to: TFS Hosting Service Providers

 

Database migration from VSS

If you were using Visual SourceSafe, it’s ideal and necessary to migrate all your VSS data to the new system. Both Dynamsoft and DiscountASP.NET provide FREE database migration for customers.

 

Available add-ons

In cooperation with Pyxis, most TFS hosting companies provide the Urban Turtle add-on to prioritize your backlog, plan your work and deliver software. Currently, Microsoft doesn’t provide the add-on for TFS Azure.

 

Learn the company history

Dynamsoft has 8 years of experience in developing source control and bug tracking software. Thus, our team has better understanding of version control and bug tracking, which helps in providing better services to our customers. July 04, 2010 was the fifth anniversary of the launch of SourceAnywhere Hosted, Dynamsoft’s first SaaS solution for source control. Over the past few years, the online rate of our server has been (and continues to be) as high as 99.9x%. Learn More >>

DiscountASP.NET is focused on hosting .net software, including TFS, SQL Server, etc. Learn More>>

PRAKTIK Hosting as well as some other companies specializes in TFS hosting.

It’s a big decision to start using a new system and service. If you have any other suggestions for other users, please feel free to share your comments below. You can also email me at kgao@dynamsoft.com.

Version Control with Eclipse

1.     Importance of Version Control

 

Version control is a technology that has been essential for programmers for decades, and different technology is always emerging that makes version control even better. If you don’t already know why you should use version control in your Eclipse projects, maybe these reasons will convince you.

  • Version control facilitates collaboration

    Working together is not easy, but version control makes it so. Different programmer’s contributions can be tracked, changed, or even reverted.

  • Version control protects your work

    Losing valuable work means losing money, and version control is a natural way to back up source code. Your code and all its versions are all stored safely on the server.

  • Version control keeps things organized

    Without version control, code might end up being stored in a labyrinth of folders on some programmer’s computer. Version control stores everything in a centralized location, with a structure that all the contributors agree upon.

2.     Solutions for Eclipse

 

Eclipse has some basic support for version control, which can be seen through the Team part of the right-click context menu, particularly when clicking on projects in the Package Explorer. By default, Eclipse supports the legacy version control system CVS, which can be seen through the Share Project dialog. A good add-on will follow these standards, and integrate into the Eclipse environment naturally.

This post will focus on the SourceAnywhere Hosted version control add-on for Eclipse, and focus on its usability as well as its performance speed. Focus will also be given to how it integrates into the Eclipse environment and its intuitiveness for programmers.

3.     SourceAnywhere Hosted in Eclipse

1.      Usability

 

After installing the SourceAnywhere Hosted add-on through Eclipse’s Install New Software dialog, it is easy to set up a project with the Share Project dialog. After a project has been setup, files can be added to version control.

SourceAnywhere Hosted Eclipse

For users who aren’t familiar with version control, SourceAnywhere is very intuitive. It contains features to enforce proper use of version control. If a user checks-in a file and tries to edit it, SourceAnywhere will ask if the user wants to check it out first. This prevents desynchronization between the remote and local versions of files.

SourceAnywhere Hosted Eclipse Checkout

All the features of version control are available within Eclipse, and can be accessed through the SAW Hosted menu, or right-click context menu on files. A full history viewer is included along with the ability to add labels and change properties. The Eclipse add-on for SourceAnywhere Hosted is just as complete as the full application.

SourceAnywhere Hosted Eclipse Checkout

One of the things that makes a good version control solution is transparency; it should fit in nicely with everything so that the programmer hardly even notices they are using it. SourceAnywhere aims for strong integration with Eclipse, and intuitiveness to make it very easy to adapt to.

2.      Speed and Efficiency

 

The Eclipse add-on works just as efficiently as the full application. Check-ins and check-outs work smoothly, and all operations have progress bars that are useful when working with large files, depending on your connection speed.

SourceAnywhere Hosted Eclipse Checkin

One feature that sets SourceAnywhere Hosted apart is its caching technology. In a workplace, a SourceAnywhere Hosted Cache Server can be set up, acting as a buffer between users on the local network and the main servers. Every time a file is requested from the main servers, it is also stored on the local cache server, and subsequent requests no longer need to access the main server. The cache server is secure, easy to install and maintain, and allows files to be transferred at lightning-fast LAN speeds.

Dynamsoft’s hosted applications use servers located in a data center in Vancouver, Canada that are very well connected with the rest of the world. Even on the opposite side of the planet the response times are fast. Speed is important to ensure that using version control improves efficiency rather than impedes it.

3.      Conclusion

 

SourceAnywhere Hosted aims to combine usability and efficiency, and those philosophies were employed in the creation of the Eclipse add-on. Regardless of whether your development environment is Eclipse, Visual Studio, or something else, SourceAnywhere can be used to add efficiency and safety to your development cycle. The 30-day free trial is available to anyone, and can be downloaded from Dynamsoft’s website.

How to use the SVNBridge to get TortoiseSVN working with SourceAnywhere

It’s so exciting that SVNBridge is available for SourceAnywhere now. The project allows you to access SourceAnywhere database from TortoiseSVN (a Subversion client). Users will benefit from combining these two products to enjoy nice features from both SourceAnywhere and SVN.

  • Enjoy the robust management provided by SourceAnywhere Server, such as enhanced security, user and database management.
  • If you’ve used SVN, it’s not necessary for you to abandon SVN in order to get the above benefits. It’s flexible for you to choose TortoiseSVN or SourceAnywhere as a client.
  • Wider IDE integration. Integration with XCode, Dreamweaver on Mac and more will be supported. (I will blog the integrations later.)

In this article, I’ll share with you how to integrate SVNBridge with SourceAnywhere.

Read more

New VSS Import Tool: Faster than Ever

SourceAnywhere

SQL server-based version control software. Supports integration with Visual Studio, Eclipse, Dreamweaver and other IDEs; cross-platform access; unique caching mechanism for remote performance.

It offers special optimizations for VSS users. Familiar UI and working style makes developers feel right at home, while Import Tool ensures effortless data migration from VSS.

Download

VSSImportTool New Design

During the past months, we received quite a few feedbacks regarding our VSS Import Tool. Knowing how important the history of source code in VSS and easy migration to SourceAnywhere means to our customers, we decided to improve the VSS Import Tool to better serve our users.

After several weeks’ effort, we finally worked out an impressive version. According to one of our users, “I’m very pleased by great acceleration of importing (from 10 days to 8 hours)”.

Main improvements of VSS Import Tool:

* Greatly fastened the import speed by introducing multi-threading technology
* Enabled users work normally while import is in the process. Users are able to access/edit the data once the latest versions of files/projects have been imported
* Added support of importing the data from the error point if the process fails
* Optimized the import of Label
* Optimized the project selection. Refreshing the projects is much faster now.

Background

Visual SourceSafe uses file system to store the source code, while Dynamsoft SourceAnywhere puts the data in SQL Server for enhanced security and integrity. With a VSS Import tool, users can easily migrate all their data histories from VSS to SourceAnywhere.

The pain is that, most users have been using VSS for many years and have quite large VSS DBs. Plus, VSS API doesn’t provide full interfaces to interact with VSS database. So migration away from Visual SourceSafe in an accurate and fast way is not easy.

The previous versions of SourceAnywhere offered a VSS Import Tool, but the old version has its glitches. Our team decided to re-design VSS Import tool for a better user experience.

Problems in the old version of VSS Import tool

1. The “label” import was not so smooth. Too much time is spent on importing the labels and this process has a high error probability. Usually there are many labels in a VSS database.

2. The tool is single threaded, so it cannot take advantage of multi-CPU systems.

3. The import can be time-consuming sometimes for a big VSS DB. And users can only start using/evaluating SourceAnywhere after the whole import process is done.

4. Once an error occurs during the import, the whole process needs to be started from scratch.

SourceAnywhere features:

1. Data is compressed before storing in SQL Server.

2. SourceAnywhere calculates the data delta and performs compression before checking-in data to the SQL Server.

3. In SQL Server, item histories (table) and file content (table) are in reference relationship. They are stored separately so the content of files can be updated separately.

4. When performing Check In or Check Out on the latest version of an item, only the content of the latest version and the nearest full version (Full version is in contrast to Delta. Every several versions, a full version is created as a base. Latest version = nearest full version + delta.) are needed.

5. Label, as a tag/collection on the existing histories, doesn’t modify any items. Thus it doesn’t affect user operations.

In view of above considerations, we redesign the import tool in the new version.

Import Steps

The new VSS import tool separates the whole import process into 5 modules. Each module uses a separate thread.

(modules in VSS import tool)

1. Import Monitor: Monitors the whole import process and lists the ongoing steps and their statuses. A dialog box prompts to notify the user a successful import.

2. Import Item: Imports anything about an item (name, location in a project tree, history version info, etc.) but the label/pin info and file content. A corresponding Import File Content (Module 3) thread will be fired once an item is imported. This way, items and file content can be imported simultaneously. A new import process is needed if crash, cancel or fatal error occurs during this step.

3. Import File Content: Imports the content of all files. This step runs in two concurrent threads.

First the module scans for items that have been imported and then starts importing the according file content.

The content import consists of the following 4 parts in sequence: import the latest version of an item; import the nearest full version; scan and see if there are any items that are ready (If yes, import their latest versions and according full versions. Otherwise, continue to the next part.); import the old versions of items.
four parts in Import File Content

(Steps in Import File Content)

Once an item’s nearest full version is imported successfully, you can perform version control operations, such as Check Out, Get, Check In, Undo Check out, on its latest version.

If your machine doesn’t have enough resources to run 2 concurrent threads, you can cancel/pause the content import. It’ll be triggered automatically when there is another item imported or you can manually start the tool. Also, you don’t need to worry if some errors occur during the content import. With break-point transmission applied to the new design, restarting the import tool will restore to the last interruption point.

4. Import Pin: Imports all files’ Pin status. This step will take place only after Import File Content completes successfully. So if an error or a cancel occurs in this step, it will start from this step next time rather than importing all the content from the beginning. However, the status of the current step won’t be kept. Thus, you may find error messages in the log file saying some Pin statuses have already been imported but it’s OK.

5. Import Label: Imports selected Labels. Arriving here, you can begin using SourceAnywhere at ease since Label won’t update existing items in the repository. You can select the labels to be imported or the tool will import all the labels by default. You can click Pause or Cancel during the process and re-select the labels. Interruptions during the Label import can only be restored to the beginning of this part. This case, you may find errors like the label already exists but it’s fine.

You can click “Complete” button to finish the whole import.

Import Selected SourceSafe Projects

With previous versions of VSS Import Tool, during the initialization of Select SourceSafe project, the whole directory tree will be displayed before you’re able to perform the next step. When the directory tree is large, the process can be really time-consuming. You have to wait for the whole directory tree to be listed even when you only want to import $/ or a subdirectory under $/. Obviously, the old design is inconvenient and not so user friendly.

In the new version, the operation of unfolding directory tree is performed in a separate thread. The directory tree is expanded layer by layer. First it expands the subfolders under $/ and then expands each subfolder recursively. This way, it’ll be much faster for users to select $/ or a subfolder under $/. Once a directory is selected, you can carry on importing without further waiting and the thread listing the directory tree will be ceased automatically.

SourceAnywhere V.S. Subversion

SourceAnywhere: A SQL Server-based version control software designed to be a replacement of Microsoft Visual SourceSafe (VSS). It is developed for both local and geographically distributed development teams.

SourceAnywhere Hosted: Sign Up

SourceAnywhere Standalone: Free Trial Download

Subversion (SVN): An open-source revision control system, which aims to be a compelling replacement for CVS.

Both SourceAnywhere and Subversion are great version control products. So which one is the right product for you?

SourceAnywhere is THE ONE for Experienced VSS Users.

If you are an experienced Visual SourceSafe user, SourceAnywhere is definitely the right choice. First, all your source code history can be easily imported to SourceAnywhere. Second, the resembling user interface makes developers’ learning curve almost zero.

Otherwise, it depends on which working mode you prefer. Typical working flow in SourceAnywhere is “(multi) check-out — edit — (merge) check-in”, while typical working flow in SubVersion is “edit local copy — (merge) commit to server”. In another word, with SourceAnywhere, when you edit a file, you know whether other people is also editing it. With SubVersion, you don’t know.

More detailed comparison follows. I will try to be unbiased in the comparison. Comments which disagree with me are well welcomed. :)

Where Subversion is better than SourceAnywhere

If any of the following situations apply to you, I recommend Subversion:

  • Command Line SubVersion Command Line is suitable for auto scripting. Although SourceAnywhere provides Command Line Client as well as Java GUI Client, SourceAnywhere’s main focus is for IDE integration on Windows platforms. If you are working on OS X, Subversion command line provides better flexibility.
  • Open Source Project SubVersion suites well for personal and open source projects. Subversion, released under an Apache-style license, is an open source system. People can get a version control system with no regard to cost.
  • Integration with Windows Explorer Subversion supports integration with Windows Explorer while SourceAnywhere does not.
  • Third Party SupportSVN is better supported among third party tools. For example, Hudson and Redmine.

Where SourceAnywhere is better than Subversion

If any of the following situations apply to you, I recommend SourceAnywhere Standalone:

  • Tech Support Dynamsoft provides phone, email, forum, and 16 hours per weekday online chatting support. For the difficult issues, an online meeting session will be scheduled. A developer from the R&D team is involved when necessary.And, all the tech support is free.
  • Microsoft Platform Support Dynamsoft is a Microsoft Gold Certified Partner. SourceAnywhere passed Optimized for Microsoft Visual Studio, Certified for Windows Vista, and Certified for Windows Server. SourceAnywhere offers better integration with Microsoft products than Subversion.
  • Security Powered with SSL Protocol, Sophisticated Password Policy, Database Encryption, IP & MAC Filter Rules and other security tactics, SourceAnywhere Hosted online source control is designed to be more secure than most in-house deployment.For more information about security features, please refer to the white paper: Secure Your Source Code.
  • Web development Besides of Dreamweaver integration and cross-platform access, SourceAnywhere offers a unique feature, Web Deployment through FTP. SourceAnywhere can automatically detect which files are changed, and only transfer the changed/added files.

Where SourceAnywhere and Subversion are different

  • User Interface SourceAnywhere has VSS style UI. There is virtually no learning curve for developers who know Visual SourceSafe already.
  • Server Setup and Maintenance SourceAnywhere Server requires Microsoft SQL Server (Express). For SVN, you need to set up either Apache2 or an “svnserve” server.
  • Distributed team Both Subversion and SourceAnywhere are designed for local and distributed team. SourceAnywhere takes a step further. Its cache server can greatly improve distributed team’s productivity.
  • Product integration SourceAnywhere comes with GUI client, command client, SDK, Eclipse plug-in, Visual Studio integration, Dreamweaver/flash integration, cross-platform client. All are in one product.

    Subversion comes only with core product. For IDE integration, cross-platform access and other tools integration, you need to deal with several independent sources.

Version Control and Visual Studio 2010

All editions of Visual Studio 2010 support the source control integration feature but the Express Edition. In this article, I will demonstrate how to use version control in Visual Studio 2010. For ease of the screenshots and article writing, I take SourceAnywhere Hosted, an online version control tool, as the example. Other MSSCCI compatible or VSPackage solutions should work in a similar way.

 
Before everything else, we need to put our project under source control.

 

The first developer adds a project to Source Control

Adding a new or existing project to source control is easy:

1. Start Visual Studio 2010, and click menu Tools -> Options -> Source Control.
2. Choose your favorite in the Current source control plug-in combo box.
3. Open your project/Create a new project, and then add the project to source control by right-clicking the solution in Solution Explorer and selecting the content menu Add Solution to Source Control.

add-to-source-control

4.  Input the credentials for login and choose a server path. And the project will be added to source control successfully.

Now you can perform the basic version control operations in the right-click content menu in Solution Explorer. More commands, such as Properties, Change Source Control, etc, can be found under the menu File->Source Control.

version control in Solution Explorer

Other developers retrieve the project from server

Most of today’s projects need the collaboration of a team. Therefore, after the first developer adds the project to source control, other developers working on the same project need to retrieve these files from server to local and possibly upload some local files to server.

To retrieve files from server, we can click menu File -> Source Control -> Open from Source Control in Visual Studio 2010. After inputting the login info, the Get Project from Dynamsoft SAW Hosted to Local dialog box is displayed. In the text box, type the desired local path or click the ellipses (…) to browse for one.

Open from Source Control

If a developer has been working on the project for some time and thus has a local project folder, I suggest he chooses a different project path other than the existing folder.

For files exist locally but not on server, we need to decide whether to share the files with other team members. If yes, we can add the files to Solution Explorer using Add | Existing Item. A yellow plus icon is displayed before the file name, and we can perform Check In to commit the files to the server.

add-an-existing-item

Simultaneous development

Most of the times, developers don’t need to work on the same file at the same time. But there are situations where parallel development is needed.

Multiple check-outs
In Solution Explore, files checked out by others appear with a human glyph while files checked out by ourselves appear with a green check mark. If a file is checked out by two developers, merge happens when the second check-in is performed.
Depending on whether there are conflicts, visual merge or auto merge occurs. About how merge works for a file, you may read File Merge.

 

Branch

Branch can be used for many purposes, such as, a branch for a minor feature or bug, tailoring program behavior in several files for two clients who have the virtually identical needs, etc. More information can be found in Branch.

Some version control solutions, such as SCM Anywhere, support Folder Merge.

SAK and SCC (source code control) info in Visual Studio 2010

After adding a project/solution to source control in Visual Studio 2010, where is the binding info stored? The behavior depends on the design of SCC plug-ins. Some put the info within the .sln/.prj files and others write it to external MSSCCPRJ.SCC files.

Take Microsoft Visual SourceSafe for example. In older versions (previous to version 6.0c) of VSS, the binding information was stored directly in the .sln and .proj files. Since VSS 6.0c, all binding information is kept locally in MSSCCPRJ.SCC on each developer’s machine.

Most MSSCCI compatible version control solutions use the second design. When the source control binding is established, some lines similar to the followings are added to the .sln files.

GlobalSection(SourceCodeControl) = preSolution

 

 

SccNumberOfProjects = 2
SccLocalPath0 = .
SccProjectUniqueName1 = FormsApplication1\\FormsApplication1.csproj
SccLocalPath1 = .
SccProjectFilePathRelativizedFromConnection1 = FormsApplication1\\

EndGlobalSection

And the following lines are added to the .prj files. The “SAK” might stand for Should Already Know.

<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>

Meanwhile, a local, client-side MSSCCPRJ.SCC file is generated by the plug-in for every directory that contains source-controlled files.