Microsoft Cloud Authors: Janakiram MSV, Yeshim Deniz, David H Deans, Andreas Grabner, Stackify Blog

Related Topics: PowerBuilder, Microsoft Cloud

PowerBuilder: Product Review

Visual Studio 2008 Integration with SCM Tools

Makes securing and controlling Visual Studio 2008 objects for source code management an easy task

I am presently the administrator of SCM AllFusion Harvest. SCM AllFusion Harvest is a process-based software configuration management (SCM) tool for managing application source code. I manage 121 applications housed in SCM AllFusion Harvest and support 180 users using the product. The development tools we currently use are PowerBuilder PBV8, PBV11, Visual Studio 2003, 2005, 2008, Java, and Visual Basic.

As software configuration manager, I provide the administration of the source code management tools. This includes the entire infrastructure of the environment for development, from developing the lifecycles, to providing the best practices, procedures, processes, maintaining build machines, and training of all the developers on proper source code management using the development tools in our development environment.

This article describes the integration between the SCM AllFusion Harvest Version Control Interface (VCI) and Microsoft Visual Studio 2008 for version control. It will show how to make the necessary connections using the interface, demonstrate check-outs and check-ins, how to delete files in proper order using SCM tools, demonstrate file comparison and how to exclude files, add new files, load the initial baseline via the Visual Studio IDE and promote the Change Request (CR) Package in SCM AllFusion Harvest through the entire lifecycle leaving the initial baseline footprint across all SCM AllFusion Harvest states. Regardless of the SCM tool you use the integration process is very similar tool to tool. The same menus exist whether you're using Microsoft's Visual Source Safe, IBM's ClearCase, or CA's SCM AllFusion Harvest.

In Visual Studio 2003 and 2005 the Version Control Interface (VCI) and SCC API calls worked, but they were clunky at best. The overwhelming problem I found was binding issues with source to the IDE. However, as Microsoft has opened up its product to other SCM tools/vendors it's been evolving and getting much better at managing source code assets via interfaces in the IDE. I think the one noticeable aspect that has changed is that binding source to the IDE is becoming easier and less of an issue.

I recall being anxious when the binding was broken for any reason because error messages were almost non-existent and it was very difficult to figure out what happened and how to fix it. When you have a $20 million project on an accelerated schedule you don't really have time for these kinds of complicated issues. If there are problems, you want to be able to resolve them quickly to move forward and get everyone back to work with as little downtime as possible.

I also found that even when there were error messages they were cryptic at best and weren't always very helpful in determining the problems that occurred when the binding of the source code was lost. I have noticed a great deal of improvement in Visual Studio 2008 in terms of a more seamless integration not only with SCM AllFusion Harvest in relation to connectivity but with other SCM tools as well. As tools in general continue to evolve the importance of integrating SCM tools with development tools is getting more focus with every new release.

I wasn't all that pleased with the results at times, specifically the binding issues in past releases of both SCM AllFusion Harvest and Visual Studio. If your source code was unbound from the integration for any reason from the SCM tool you were using, it could be quite complicated to figure out what occurred and how to rebind the source code. It appears as though that problem has not cropped up in the new releases of Visual Studio 2008 or SCM AllFusion Harvest R12. At least during my evaluation I didn't see the issue occur.

In the latest version of SCM AllFusion Harvest R12 there is also a work area that is new to this version and lets you make the changes in the SCM AllFusion Harvest tool versus the IDE. I've also noticed this with other development tools as well. For example, the Eclipse plug-ins let you change code in either the SCM tool or the IDE. The choice is yours wherever you feel more comfortable using it. This in my opinion expedites development and streamlines processes to mirror your daily work lifecycle.

Here I will also provide valuable screen prints (figures) that should help you configure and load your source code into the SCM tool to begin making the necessary modifications to your application. Every software configuration management tool is different in terms of functionality. However, they all have common threads of functionality. Common activities include checking out, checking in, adding files, deleting files, obsoleting files, and loading an initial baseline. The way these task are done is different from tool to tool but all the SCM tools do these basics.

You'll forgive me if, for this article, I focus on CA's SCM AllFusion Harvest SCM tool because this is the product I prefer mainly because of the canned processes and lifecycles associated with it. I find it easy to use and integrate with other development products. I'll say this, though, that many of the SCM tools being developed today are robust and provide good integration with development tools.

However, I still favor the process-based software life cycle management tools because when you're a large organization like the state of New Hampshire, process-based management tools allow one individual to manage hundreds of applications. All processes are canned, and lifecycles and an environment can be tailored and set up quickly. Many of these process-based management tools have databases behind them that make storage and retrieval efficient, secure, and easier to control. It also provides wonderful exporting for disaster recovery purposes. In my professional opinion any tool where you have to build the environment with triggers for processes, use SQL command line or write Perl for the environment to do basic SCM activities is too much overhead for large shops to take on.

For this article I'll be integrating CA SCM Harvest R12 with Visual Studio 2008. The first thing we're going to have to do is go to the Tools menu and select Options. This is where we'll do all the source code set-up activities. I found this screen to be quite informative and useful because once you save this you don't need to do it again.

Go to Tools/Options. Once the "Option" menu is selected the following screen will appear ( see Figure 1), which provides many set-up opportunities. However, in this case we are only concerned with the "Source Control" option. Click on the Source Control option to progress in the set-up of the SCM tool.

The first choice in this option is to select the VCI plug-in for SCM AllFusion Harvest. The current source plug-in is not yet selected and reflects "none." If you use the drop-down you'll see a selection for the SCM. Once the option has been selected other options will become available related to the integration of the two products.

Figure 2 reflects the SCM selection available.

Once the VCI plug-in is selected the "Environment" and "Plug-in Settings" become available for configuration. For this example I selected "Custom" under Source Control Environment Settings and I set the flag to "Get everything when opening a solution or project." There are other selections that may be applicable to your environment that can also be checked. Due to the fact that I set the flag for "Get everything when opening a solution or project"; when Visual Studio opens, I get prompted for my SCM tool login at that time. What's happening is that because the VCI is connected to the IDE it's automatically pulling the source code from the SCM tool when Visual Studio 2008 is opened, prompting a user name and password login to the SCM tool to complete this activity.

Once the environment has been set up, you can now set the Plug-in Settings to "Custom" and place your user name login in the Login ID (SCM) field. Once this is all set up it's time to move on to settings in the "Advanced" tab.

Figure 3 shows the "Advanced" screen and there are a number of tabs that can be selected and set. The first tab deals with setting the "Broker name." In this example I have set the broker name field to the server name where our SCM tool and database reside and the HarWeb server name is set to an open port. I have set two flags below; the second one is the more important of the two. "Always bind old VCI projects" is quite important, especially if you are migrating from one version of Visual Studio to another. You want to have the bindings preserved from one version to another should you upgrade.

On the "Advanced Tab" screen the only other tab to be concerned with is making sure that files are compared by version data and that when a writable file is replaced the user is prompted. All the other defaults on other tabs are acceptable as is.

When everything is set up as it should be you can click on the "About" tab and see the tool reflected along with the version of the plug-in ready for use. In this example the figure reflects "CA SCM Plug-in for Visual Studio" version 12.0.0 Build 56. Should you get to this screen and not have anything representative of your SCM tool then you know that somewhere along the line the set-up, the VCI plug-in patch, or product install didn't go as expected. I would reinstall the SCM tool again and see if you get different results.

As I was writing this article and navigating through Visual Studio, I noticed that some of the Version Control Interface menus were not available and I had to reinstall the VCI plug-in for the menus to appear.

This completes the set-up of your SCM tool in the IDE. With these tasks behind us we can now add a Solution and Project to the SCM AllFusion Harvest tool for what I call the "Initial Baseline Load." This will create a version zero in the SCM tool in a repository housed on the server and stored in an Oracle database that will become our protected baseline forever. This allows complete traceability back to the original loaded baseline regardless of whether there are five changes or 5,000 to files. If we go back to the top menu and select "File," "Source Control" we can now begin to load the Solution or Project to an already existing environment and repository in the SCM AllFusion Harvest tool.

Once you click on File, Source Control you are then prompted to place your SCM AllFusion Harvest credentials in the sign-on field placing your user name, password, and broker name. When the credentials have been satisfied you will get the context screen, which allows you to begin the set-up of your project just prior to the actual loading of files. Figure 4 for the login and context screen. It has several fields that get populated with information important to the project set-up.

First you'll need to select and populate the following fields with information required for the set-up: 1. Project Name, 2. SCM State, 3. Change Request Package, 4. Check Out Process, 5. Check In Process, 6. Select mode for each of the two processes, 7. Set Refactor Flag, 8. View Path, and 9. Local Path. Figure 5 illustrates how the fields are populated. When the fields have been completed set the context of the project by clicking on the context button.

The Mode for the "Check Out Process" is set to Synchronize and the Mode for "Check In Process" is set to Update and Release. Based on the Project, Package, View Path, and Local Path the initial baseline will be loaded. When the Project has been bound to the SCM tool via a Solution the Change Source Control screen reflects the bindings that have been anchored with the initial baseline load.

Figure 6 illustrates the binding connections once secured by the IDE.

Once the environment has been secured under source control via the IDE and your SCM tool, you can then go to file, source control, CA SCM Properties and view the status of the package and initial baseline load.

Once the Solution/Project has been bound you can then go to Tools on the top menu in Visual Studio select "Add-In Manager" and the Add-in Manager screen will appear. In this screen you can set the flag for Startup and click on VCI Add-In R12.0.0 and the tool bar will reflect the CA SCM VCI when this tool bar is invoked there are a number of features available that allow functionality from the SCM tool to exist in the IDE without having to go and launch your SCM tool. Now I don't know if all tools have this functionality but CA SCM AllFusion Harvest R12 certainly does.

The tool bar for the CA SCM VCI interface allows additional functionality. For example, you can change the package you were originally using to a different package for additional check-outs and check-ins by changing the Current Context. In fact, using the Edit button on any one of the options presented on this screen lets you modify the context of all the project information.

The Package Explorer shows all packages in the SCM AllFusion Harvest R12 environment by Package Name, State, and User. You can also create a new package in the Explorer view, which will be reflected in your SCM tool.

There is also a separate function on the tool bar for creating a new Change Request Package.

The context view lets you switch packages from the original package you were using to do your check-outs and check-ins. By using the down arrow you can select a different package to use for check-out providing the package was created in the SCM AllFusion Harvest tool.

Once the Solution and Project information have been bound and the initial baseline promoted through the SCM AllFusion Harvest R12 lifecycle as the footprint of version zero, you will see a lock on the files that means the file(s) are now under source control and ready for modifications. To check out a file do a right mouse-click and select "Check Out for Edit" and the file will be checked out and reserved in SCM AllFusion Harvest. No one can modify this file until it's been checked back in to SCM AllFusion and the lock has been released. When the file has been checked out there will be a checkmark on the file as illustrated in Figure 7. In SCM AllFusion Harvest the file will reflect the letter "R" for reserved.

When the check-out is occurring if there are dependencies or inheritances in the file being checked out then all associated files will also be checked out for update as well. Click on the "Check Out" button and you'll see the file(s) bearing a checkmark. The checkmark indicates the file is checked out and reserved and not available to anyone else until the file is checked back in.

If you right-click on the file(s) after it's checked out you can view its properties. For example, the Process in this case is Update, the package name, the item(s) checked out, and the version of the file checked out for update.

Figure 7 illustrates a checkmark on the file that has been checked out for update (testclass.cs).

Once your changes have been made to the file(s) you can then do a right mouse-click on the file and use the "Check In" process now available. Once the file is checked back in the changes are recorded in SCM AllFusion Harvest using the Version Control Interface (VCI) and a new version is assigned. Figure 8 illustrates not only the process available but also the file(s) associated with this file as dependencies.

Click on the "Check In" button and the lock is released (reserve tag) and the file is then available again for others to check out for update. Prior to this "Check In" the file is locked in the SCM AllFusion Harvest tool and cannot be modified until the lock is released.

Once the "Check In" is complete you can do a right mouse-click and view the history of the file in terms of activity.

There is also a compare utility available under the Source Control menu view. Figure 9 and Figure 10 illustrates the screen that is available.

Our Experience
We develop and maintain a variety of applications at the state of New Hampshire's Department of Office of Information Technology (DoIT). The applications are used extensively in our welfare and health services delivery agencies. Example applications are for childcare licensing and managing adult and elderly care. Throughout the state the programs are used by hundreds of users.

Using SCM AllFusion Harvest R12 with Visual Studio 2008 has made securing and controlling Visual Studio 2008 objects for source code management an easy task. My synopsis and review of SCM AllFusion Harvest R12 and Visual Studio 2008 goes as follows: SCM AllFusion Harvest R12 and Visual Studio 2008 from environment use, processes built into the products, interfacing capabilities, and ease of use make for a seamless integration. If you are in an environment where you require products that encompass the best seamless interfacing capability with Visual Studio 2008 for source code management then you shouldn't be without SCM AllFusion Harvest R12 with Visual Studio managing your assets.

More Stories By Al Soucy

Al Soucy is software configuration manager at the State of New Hampshire's Department of Information Technology (DoIT). In that role Al manages software configuration for dozens of PowerBuilder applications as well as applications written in Java, .NET, and COBOL (yes, COBOL). Al plays bass guitar, acoustic guitar, electric rhythm/lead guitar, drums, mandolin, keyboard; he sings lead and back up vocals and he has released 8 CDs.

Comments (1) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.

Most Recent Comments
Subhasis Khatua 07/17/09 11:30:00 PM EDT

The article will really help to understand end-users how and why should they use CA Software Change Manager and its plug-in for Visual Studio. Also, as a developer for next generation plug-in for Visual Studio, it will help them to realize the hidden potential of the current plug-in.

Nice article for everyone to go through.

@ThingsExpo Stories
"Cloud Academy is an enterprise training platform for the cloud, specifically public clouds. We offer guided learning experiences on AWS, Azure, Google Cloud and all the surrounding methodologies and technologies that you need to know and your teams need to know in order to leverage the full benefits of the cloud," explained Alex Brower, VP of Marketing at Cloud Academy, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clar...
In his session at 21st Cloud Expo, Carl J. Levine, Senior Technical Evangelist for NS1, will objectively discuss how DNS is used to solve Digital Transformation challenges in large SaaS applications, CDNs, AdTech platforms, and other demanding use cases. Carl J. Levine is the Senior Technical Evangelist for NS1. A veteran of the Internet Infrastructure space, he has over a decade of experience with startups, networking protocols and Internet infrastructure, combined with the unique ability to it...
"IBM is really all in on blockchain. We take a look at sort of the history of blockchain ledger technologies. It started out with bitcoin, Ethereum, and IBM evaluated these particular blockchain technologies and found they were anonymous and permissionless and that many companies were looking for permissioned blockchain," stated René Bostic, Technical VP of the IBM Cloud Unit in North America, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Conventi...
Gemini is Yahoo’s native and search advertising platform. To ensure the quality of a complex distributed system that spans multiple products and components and across various desktop websites and mobile app and web experiences – both Yahoo owned and operated and third-party syndication (supply), with complex interaction with more than a billion users and numerous advertisers globally (demand) – it becomes imperative to automate a set of end-to-end tests 24x7 to detect bugs and regression. In th...
Widespread fragmentation is stalling the growth of the IIoT and making it difficult for partners to work together. The number of software platforms, apps, hardware and connectivity standards is creating paralysis among businesses that are afraid of being locked into a solution. EdgeX Foundry is unifying the community around a common IoT edge framework and an ecosystem of interoperable components.
"MobiDev is a software development company and we do complex, custom software development for everybody from entrepreneurs to large enterprises," explained Alan Winters, U.S. Head of Business Development at MobiDev, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
Large industrial manufacturing organizations are adopting the agile principles of cloud software companies. The industrial manufacturing development process has not scaled over time. Now that design CAD teams are geographically distributed, centralizing their work is key. With large multi-gigabyte projects, outdated tools have stifled industrial team agility, time-to-market milestones, and impacted P&L stakeholders.
"Space Monkey by Vivent Smart Home is a product that is a distributed cloud-based edge storage network. Vivent Smart Home, our parent company, is a smart home provider that places a lot of hard drives across homes in North America," explained JT Olds, Director of Engineering, and Brandon Crowfeather, Product Manager, at Vivint Smart Home, in this SYS-CON.tv interview at @ThingsExpo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
"Akvelon is a software development company and we also provide consultancy services to folks who are looking to scale or accelerate their engineering roadmaps," explained Jeremiah Mothersell, Marketing Manager at Akvelon, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
Coca-Cola’s Google powered digital signage system lays the groundwork for a more valuable connection between Coke and its customers. Digital signs pair software with high-resolution displays so that a message can be changed instantly based on what the operator wants to communicate or sell. In their Day 3 Keynote at 21st Cloud Expo, Greg Chambers, Global Group Director, Digital Innovation, Coca-Cola, and Vidya Nagarajan, a Senior Product Manager at Google, discussed how from store operations and ...
"There's plenty of bandwidth out there but it's never in the right place. So what Cedexis does is uses data to work out the best pathways to get data from the origin to the person who wants to get it," explained Simon Jones, Evangelist and Head of Marketing at Cedexis, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
SYS-CON Events announced today that CrowdReviews.com has been named “Media Sponsor” of SYS-CON's 22nd International Cloud Expo, which will take place on June 5–7, 2018, at the Javits Center in New York City, NY. CrowdReviews.com is a transparent online platform for determining which products and services are the best based on the opinion of the crowd. The crowd consists of Internet users that have experienced products and services first-hand and have an interest in letting other potential buye...
SYS-CON Events announced today that Telecom Reseller has been named “Media Sponsor” of SYS-CON's 22nd International Cloud Expo, which will take place on June 5-7, 2018, at the Javits Center in New York, NY. Telecom Reseller reports on Unified Communications, UCaaS, BPaaS for enterprise and SMBs. They report extensively on both customer premises based solutions such as IP-PBX as well as cloud based and hosted platforms.
It is of utmost importance for the future success of WebRTC to ensure that interoperability is operational between web browsers and any WebRTC-compliant client. To be guaranteed as operational and effective, interoperability must be tested extensively by establishing WebRTC data and media connections between different web browsers running on different devices and operating systems. In his session at WebRTC Summit at @ThingsExpo, Dr. Alex Gouaillard, CEO and Founder of CoSMo Software, presented ...
WebRTC is great technology to build your own communication tools. It will be even more exciting experience it with advanced devices, such as a 360 Camera, 360 microphone, and a depth sensor camera. In his session at @ThingsExpo, Masashi Ganeko, a manager at INFOCOM Corporation, introduced two experimental projects from his team and what they learned from them. "Shotoku Tamago" uses the robot audition software HARK to track speakers in 360 video of a remote party. "Virtual Teleport" uses a multip...
A strange thing is happening along the way to the Internet of Things, namely far too many devices to work with and manage. It has become clear that we'll need much higher efficiency user experiences that can allow us to more easily and scalably work with the thousands of devices that will soon be in each of our lives. Enter the conversational interface revolution, combining bots we can literally talk with, gesture to, and even direct with our thoughts, with embedded artificial intelligence, whic...
SYS-CON Events announced today that Evatronix will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Evatronix SA offers comprehensive solutions in the design and implementation of electronic systems, in CAD / CAM deployment, and also is a designer and manufacturer of advanced 3D scanners for professional applications.
Leading companies, from the Global Fortune 500 to the smallest companies, are adopting hybrid cloud as the path to business advantage. Hybrid cloud depends on cloud services and on-premises infrastructure working in unison. Successful implementations require new levels of data mobility, enabled by an automated and seamless flow across on-premises and cloud resources. In his general session at 21st Cloud Expo, Greg Tevis, an IBM Storage Software Technical Strategist and Customer Solution Architec...
To get the most out of their data, successful companies are not focusing on queries and data lakes, they are actively integrating analytics into their operations with a data-first application development approach. Real-time adjustments to improve revenues, reduce costs, or mitigate risk rely on applications that minimize latency on a variety of data sources. In his session at @BigDataExpo, Jack Norris, Senior Vice President, Data and Applications at MapR Technologies, reviewed best practices to ...
An increasing number of companies are creating products that combine data with analytical capabilities. Running interactive queries on Big Data requires complex architectures to store and query data effectively, typically involving data streams, an choosing efficient file format/database and multiple independent systems that are tied together through custom-engineered pipelines. In his session at @BigDataExpo at @ThingsExpo, Tomer Levi, a senior software engineer at Intel’s Advanced Analytics gr...