Archive for the ‘Uncategorized’ Category

How to Subscribe to TFS Alerts

Friday, May 7th, 2010

Microsoft Team Foundation Server (TFS) contains a collection of services including version control, work item tracking, and the EventService service. EventService exposes a set of events that performs actions such as sending e-mail or a SOAP-based Web service call.

In this blog, I’ll examine TFS capabilities to create and manage subscriptions. While I will be using Visual Studio 2008 and TFS 2008, most of this column applies equally to TFS 2005.

Built In Alerts

Alerts are notifications in e-mail when certain events occur in your team project. You can subscribe to alerts for yourself or for others, and can select to receive alert messages in either HTML or Plain Text format. However, Team Explorer has 4 different built-in alerts:

Project Alerts

Using TFS Exposed Events

Alert subscriptions are stored on the server by team project, and you can add different alerts for each team project that you have permission to open. If you want to get notified for all new workitems, regardless of who they get assigned to, you will want a custom subscription. 

There are a couple of techniques you can use to achieve this.

(more…)

Visual Studio 2010 RC – What’s new in Coded UI Test

Friday, April 2nd, 2010

The Release Candidate (RC) version of Visual Studio 2010 has been released by Microsoft and is now available for download. From a tester’s point of view, Visual Studio 2010 Beta is a revolutionary step from Microsoft with a bunch of new stuff in Coded UI test for automation testers.

Visual Studio 2010 RC made some significant improvements of which I chose following:

Pause playback to wait for certain event

This capability was not available in VS 2010 Beta 2 and it was noticeably lacking. For example, it was impossible to wait for the form, message, progress bar to disappear etc.

This was accomplished with a modification of the UITestControl class. In the RC, you can use the appropriate UITestControl methods from the list.

1. WaitForControlReady() – This waits for the control to be ready to accept mouse/keyboard input.
2. WaitForControlEnabled() – This waits for the control to be enabled.
3. WaitForControlExist() – This waits for the control to exist on the UI.
4. WaitForControlNotExist() – This waits until the control ceases to exist on the UI.
5. WaitForControlPropertyEqual(string propertyName, object propertyValue) – This waits for the specified property of the control to have the given value.
6. WaitForControlPropertyNotEqual(string propertyName, object propertyValue) – This waits for the specified property of the control to not have the given value.
7. WaitForControlCondition(Predicate conditionEvaluator) – This waits until the specified predicate returns true.

 

(more…)

The Benefits of Offshore Development and Local Project Management: Diversified Engineers

Monday, March 22nd, 2010

Continuing our series, The Benefits of Offshore Development and Local Project Management, we would now like to discuss the benefit of access to a diversified team of highly skilled professionals.

When you utilize Merit Solutions Development Services, you have direct access to a highly-skilled team with proven technical, functional and domain expertise. Our 15+ software engineers work under 4 separate Team Leaders (Technical Team Lead, Development Team Lead, QA Team Lead, and SharePoint / CRM Team Lead). Each Belgrade-based Team Lead is managed in a very hands-on way by our US-based Director of Development, a top-notch programmer from Serbia who was instrumental in structuring our development division. In most cases, a project will blend consultants and engineers from the U.S. (analysis) with team members in Belgrade (design, coding, testing). So, our overall costs include a blend of both of these engineering locations. As mentioned before, each software engineer is English fluent, and capable of communicating directly with all of our clients.

This direct access to developers leverages our strong project management expertise, reducing the risks of miscommunication and ensuring the highest possible software development quality.

The Benefits of Offshore Development and Local Project Management: 24/7 Operations

Thursday, March 11th, 2010

We are back for our next installment of “The Benefits of Offshore Development and Local Project Management.”

In our previous posts, we have discussed the benefits of our “nearshore location” in Eastern Europe, and the ability to take advantage of our scalable resources. In this article, we will discuss the benefits of our 24/7 virtual operations.

There is a natural time differential of 7 hours between our onshore (Chicago) and offshore (Belgrade) locations. This development model translates into a virtual 24/7 kind of operation for our projects. Leveraging our distributed resources in both locations, we are able to provide clients with maximum visibility into our software development lifecycle. We also ensure that team members, regardless of location, have overlapped work timings for day-to-day communication. We utilize video conferencing, instant messaging, web portals, and other online collaboration tools to maximize internal productivity. This enables fast and efficient client communication.

Microsoft Office 2007 Problem

Wednesday, February 17th, 2010

I have Microsoft Office 2007 on Windows Vista Enterprise and a few days ago, the mouse just stopped working in Word, so I could not select, copy, paste, edit. The reason was an automatic update for Word 2007 on Windows Vista-based computer.

Microsoft has confirmed that this is a problem in the Microsoft products and published resolution for this problem on their support site:

 http://support.microsoft.com/default.aspx?scid=kb;en-us;940791

Dynamics AX 2009 Workflow Setup

Wednesday, January 20th, 2010

Microsoft Dynamics AX 2009 WorkFlow can cause an error when setting up a workflow on Win2008R2.

If you receive this error when you run Workflow infrastructure configuration wizard:

The request failed with HTTP status 405: Method Not Allowed.

Then you should change the Application pool for your workflow (which is by default MicrosoftDynamicsAXWorkflow50) to enable 32 bit applications:

Problems with a Focus on a Window

Tuesday, December 8th, 2009

Recently I received a request from a customer to join a transferring order to an invoice and print a packing slip form after transferring the order to the invoice on the SOP Entry form. This form has already been modified and some processes have been added to it through triggers. At first, it looked like a small request, but after the first testing process I realized that it worked correctly only in simple situations. The main problem was that the original print button of the Dynamics GP window needed to be in focus before it is called. When a few operations which call different windows are joined, the focus can be lost because of the delay of opening windows or printing reports. There are also some unexpected windows which pop up and stay open, disturbing some of the following operations.

Another problem appeared when I tried to debug the code I wrote. During debugging process it worked worse than in the previous situation. Using the debugger, the focus is always kept on the debug script and none of the focuses can be reached, which means that none of the reports can be printed.

The main problem was printing reports from different forms. We needed the possibility to join one printing report from one form to another printing report from a different one. There is a small delay between the moment when options for printing are chosen and the moment of printing the report, especially if the screen is chosen for report destination. In that case, the second window already gets a focus on the print button when the first report starts to be printed. Focus on the second window is lost so the printing and processes added to that window through triggers would not be done completely.

In such situations, the only way I found to be efficient is good knowledge about processes we are working with. We need to count every possible situation which can happen during the process we need to implement, which is in most situations pretty complicated and sometimes impossible.

Microsoft Office 2010 Beta Available for Download

Monday, November 23rd, 2009

A couple of days ago, Microsoft announced that Microsoft Office 2010 Beta is available for download.
In order to get started you need to first visit this link where you will find a option to get it. Since this is a Microsoft Product you will be asked to first login to your live account, after which you will need to confirm your personal details following which you will get a 25 digit MAK Product Key which will activate your product.

After you register, a new window will open with a download service within it which will start downloading the files from the Microsoft Server. It supports resumed downloads, so you can safely start it and walk away from it. If your download gets interrupted, it will restart where it left off. The total download size is 684.48Mb and it contains the complete MS Office 2010 Package on your PC. This includes Word, OneNote, InfoPath, PowerPoint, Access, SharePoint Workspace, Outlook, Publisher, Communicator & Excel. There are two activation options for the 2010 Microsoft Office products. The MAK key described above is one activation method. Another activation option for an IT administrator is to set up a Key Management Server (KMS). Just choose the version (Microsoft recommends 32-bit which runs great on both 32-bit and 64-bit versions of Windows) and pick your software language to download the Beta software. Downloading the Office Professional Plus 2010 Beta can take an hour or more. The exact time will depend on your provider, bandwidth, and traffic.

Once the download is complete, launch the downloaded file and follow the set up instructions.

After you have installed Microsoft Office Professional Plus 2010 Beta, please follow these steps:

  1. Open Microsoft Word 2010 Beta and click on the “File” tab. This will take you to the Backstage view. Next click “Help” in the set of tabs on the left.
  2. Click “Change Product Key” on the right side of the screen.
  3. Enter the Multiple Activation Key (MAK). Check the box to activate automatically or restart the app to activate using the activation dialog box.
  4. That’s all you need to do. Entering the MAK key in Microsoft Word 2010 Beta automatically activates all the Office Professional Plus 2010 Beta applications. Click on the “File” tab to return to the Document view.

That’s it!

InfoPath and MOSS Web Services

Friday, September 11th, 2009

InfoPath form templates in MOSS are widely used because there are many reasons that empower both servers.

The most common situation is that you need to pick-up some user information from MOSS and show / manipulate it on an InfoPath form. There are a few possible ways to make it work, with or without coding. The most powerful thing is by using web services provided by MOSS.

To be able to use web services in InfoPath, you should create a new Data Connection (Tools-> Data Connection). When the wizard starts, define what you would like to do with the data: submit or receive. Select Web services as a source of data and define the web service’s location. For getting user profile information (email, phone number, preferred name, etc) use MOSS services located at http://MOSSServerName/_vti_bin/UserProfileService.asmx.

  • This service is not available if you are using Windows Share Point Services but only Microsoft Offices SharePoint Server.
  • Some of available public methods are listed below:
    • AddColleague
    • AddLink
    • AddMembership
    • AddPinnedLink
    • CreateMemberGroup
    • CreateUserProfileByAccountName
    • GetCommonColleagues
    • GetCommonManager
    • GetUserLinks
    • GetUserProfileByGuid
    • GetUserProfileByIndex
    • GetUserProfileByName
    • ModifyUserPropertyByAccountName
    • RemoveMembership
    • UpdatePinnedLink, etc.

Moving forward, you can take the profile data for any current or other MOSS user. For users currently logged on, you should be able to pick-up some profile info when the form is loading. For non-current users, you have a lot different cases and you can pick data on the field value changed or drop down list value selected or something else.

If you need to handle some of the available events, you should have VSTA installed (Visual Studio Tools for Applications). If you do not have it, you will not be able to create event handlers at all. To enable it, find Microsoft Office in list of Add/Remove programs. Select Change option and add find those tools for InfoPath. Select the option to install it.

Now you can create event handlers by selecting a control, right click on it, then Programming and selecting the desired event. The most interesting case is if you have a drop down list with a few names and you would like to send an email to the selected one. Before we continue, just to note that the drop down list item has a Value and a Display Name. This can give us the possibility to hide non user-friendly data. So, if you decide to get email defined in MOSS for selected user, assign the Account Name as Value for each item in the drop down. Display value can be as you wish…

When VSTA is running, add reference to UserProfileService and name it. Code in the event handler should look like:

XPathNavigator XPathNav = MainDataSource.CreateNavigator();

 

ServiceReferenceName.UserProfileService profile = new ServiceReferenceName.UserProfileService();

   profile.UseDefaultCredentials = true

   profile.PropertyData[] userProperties = null;

 

    try {

              userProperties = profile.GetUserProfileByName(SelectedDDLValue);

    }

    catch { }

 

    if (userProperties == null || userProperties.Length == 0) {

        return;

    }

    for (int i = 0; i < userProperties.Length; i++) {

        XPathNavigator node = null;       

            case “workemail”:

                node = XPathNav.SelectSingleNode(“/my:emailField/my:userEmail”, NamespaceManager);

                break;

            default:

                continue;

        }

       ServiceReferenceName.ValueData[] values = userProps[i].Values;

        if (values.Length > 0) {

            if (node != null && string.IsNullOrEmpty(node.Value)) {

                node.SetValue(values[0].Value.ToString());

            }…

The email field can be hidden or visible, it depends on what information you would like to share with the user.

  • In some cases, you can experience that drop down list events do not react as you expect. Try to avoid this by setting “Always Postback” option on drop down list property.

Naming Convention for Tables and Fields in Dynamics GP

Friday, August 14th, 2009

I found a useful link for getting into naming conventions for physical names in Dynamics GP. There is a good explanation how table and field names are created in the Dynamics GP original code and we should use the same rules for new ones. You can find the article on MSDN:

 Understanding How Microsoft Dynamics GP Works With Microsoft SQL Server Continued