DCSIMG

 Subscribe in a reader

May 2007 - Posts - Guy kolbis

May 2007 - Posts

Open your calendars and write it down:

Mr. Brent Carlson arrives to Israel for one lecture on:

"New methodologies and governance in SOA implementation"

It is open for everyone (free :))!!!

Here are the details:

Date:          4/6/07 (that's Monday)

Time:         18:00

Location:    Yes planet, teature 8.

Please confirm your arrival first at:  cs@srl.co.il.

 

I created a tutorial about working with the database project.

For those of you who did not use the database project before and for those who want to learn a bit more, I recommend checking it out.

The tutorial is attached to this post.

 

Enjoy :)

 

Here is a bug I encountered during renaming operation in a database project. I had a procedure named sp_app_GetUser and I tried to rename it to sp_App_GetUser. Notice that the only different is with the capital 'A' at the app.

Well, the IDE refused to accept it! It turns out that it does not recognize any change in the name when only changing lower case to upper case.

The work around was to rename it to sp_AApp_GetUser and then renames it again to sp_App_GetUser which is what I wanted to begin with.

I was trying to understand if renaming stored procedure in the schema of the DBDude is affecting the entire solution.

Let me explain it. Let’s say that in you solution you have a data access layer and a database project. The data access layer project references the names of the stored procedures that are defined in the database schema.

I expected that renaming the name of a stored procedure using the refactor in the DBDude menu will result in renaming all the references inside the solution.

This is not the case. I posted a question in the database professional forum and the answer I got was:

"With V1, we do not enable this functionality, refactoring is only scoped to the database project and not the VS solution. We are investigating how/if we can do this in a future release."

Hopefully, it will be possible and we will see it in the next release.

There are several keywords that I use frequently when talking about architecture and software development. There are times that I feel that those whom I talk to do not really understand the meaning of those words. So, I decided to post the definitions for those keywords. This is definitely not a complete list, but it is a good starting position.

Scalability

Scalable computing involves using a computer system or software that can adapt to the need for more powerful computing capabilities.

In terms of software, scalability is the ability and flexibility of an application to meet growth requirements of an organization and continue to function well as it is changed in size or volume.

In terms of hardware, a scalable computer system may begin with one node, but more nodes can be added as and when there is a need for more computing capabilities.

Availability

The property of a system or a system resource that ensures it is accessible and usable upon demand by an authorized system user. With any IT system it is desirable that the system and its components (be they hardware or software) are up and running and fully functional for as long as possible, at their highest availability.

Redundancy

The ability of a system to keep functioning normally in the event of a component failure, by having backup components that perform duplicate functions.

Clusters

A computer cluster is a group of tightly coupled computers that work together closely so that in many respects they can be viewed as though they are a single computer. There are several categories for clusters:

  • High-availability (HA) clusters - are implemented primarily for the purpose of improving the availability of services which the cluster provides.
  • Load-balancing clusters - operate by having all workload come through one or more load-balancing front ends, which then distribute it to a collection of back end servers.
  • High-performance computing (HPC) clusters - are implemented primarily to provide increased performance by splitting a computational task across many different nodes in the cluster, and are most commonly used in scientific computing.

The dollar has reached a new lower, so we figured a new startup is in order, new line of shops in the USA:

"Everything for a SHEKEL"

What do you think? :)

kolbis כתב בתאריך Tuesday, May 15, 2007 7:30 PM
תגים:

Today I got an email from a college blogger Adlai Maschiach. He asked me to write a post about the VSTS Guidance on CodePlex. 

SRLTeam has published couple of months ago a post about it, however it was recently updated. Here is a list of all the new entries that have been added to the guidance.

The guidance contains useful information about team system related issues.

You can find white papers, videos, links and much more.

I encourage you all to check it and contribute as possible ;)

In one of my projects I had to initiate the deploy operation on my database project during the team build.

Here is an article that describes how to just that.

An important comment I would like to add is the fact that we need to manually change the .proj file. The link contains information about it, however to further emphasize it, here is the explanation:

"The target connection and database are stored in the ProjectName.dbproj.user file, which is user specific and not typically checked in to version control. You require those settings to deploy your database. Therefore, you must modify the ProjectName.dbproj file manually to specify the target connection and database."

By default all requests inside a web test will be executed no matter of the results. In other words, if you got 2 requests inside your web test and the first request fails, the web test will continue to the second request and will execute it.

Sometimes, we do not want to continue running the following requests upon a failure. To do so, we can choose to code our web test or to create a WebTestRequestPlugIn.

Coded web tests are to be avoided as possible and there are only three cases where I would consider using one:

  1. Branching - An IF...Else
  2. Looping
  3. Javascript / ActiveX

I am not going to elaborate about coded web tests in this post.

The second option is to use a WebTestRequestPlugIn. Here is a sample code that will help you understand how to stop a web test upon a validation error:

public class StopTestPlugin : WebTestRequestPlugin
{
public override void PostRequest(object sender, PostRequestEventArgs e)
{

}

void Request_ValidateResponse(object sender, ValidationEventArgs e)
{
ValidationRuleFindText ft = new ValidationRuleFindText();
ft.FindText = "The test to find";
ft.IgnoreCase = true;
ft.PassIfTextFound = true;
ft.Validate(sender, e);

if (!e.IsValid)
{
e.WebTest.Stop();
}
}

public override void PreRequest(object sender, PreRequestEventArgs e)
{
e.Request.ValidateResponse += new EventHandler<ValidationEventArgs>(Request_ValidateResponse);
}
}

You can take this code snippet and extend it for your own needs. Enjoy!

I published the Code Review Add-In to CodePlex as a new project and to the CodeProject.

You can download the sources here.

You can read an "HOWTO" and "About" article for the Add-In here.

I would love to know if there is some functionality that you would like to add to the Add-In and I would really love for anyone to help me contribute and improve the Add-In.

Here is a question that I have been asked a lot.

"How can you simulate a scenario where a user logon once to the web site and performs several tests?"

Let me explain the problem. If your web site uses authentication such as Form authentication, the user must logon to the site before he can perform any actions. That means that any test you create will have to logon to the site before performing the actual test case. The issue about it is that for each test case you create, you continue testing the logon process.

There is a work-around for this problem. You can choose one of the two options:

  • Using Plug-In
  • Using Coded Web test

You can find an excellent article about it here. The article gives a detailed example and a walkthrough.

Here is a new add-in for Visual Studio 2005 I have been working on. The Code Review Add-In helps the process of reviewing code and publishing the results as work items to the Team System Server for team members to review them.

I attached the installation file and "howto" document. At the moment I am not adding the source code, however let me know if you want it.

It is free to use and download.

I hope you will find it useful :)

Previously I wrote some posts for my company's blog here at Microsoft blogs.

Here are couples of my favorite posts:

How to configure your load test environment

Wrap your NUnit unit test with VS Generic test

I hope you'll agree :)

If you have worked with Team System for Testers and you have tried to create a manual test, you probably noticed that every time you need to customize the text or the word document that was generated for you.

You can actually customize the template or you can create new templates for manual tests.

Customize the manual test template

The manual test file is stored in the project item template, which is located in Program Files\Microsoft Visual Studio 8\Common7\IDE\ItemTemplates\CSharp\1033\ManualTestWordFormat.zip.

Once you open it you can customize it as you like.

I do not think that this is the best option since you do not want only one manual test template.

Create new manual test templates

As mentioned before, rather than changing this template, I think you're better off adding new manual test item templates for each word template you want. You can also add new manual test by adding new item templates.

Here is a well guided tutorial for creating custom manual test template.