DCSIMG

 Subscribe in a reader

October 2007 - Posts - Guy kolbis

October 2007 - Posts

A while ago I wrote this post:

Sandboxed Applications Can’t Elevate Their Own Permissions that is related to CAS.

Microsoft is actually considering to allow .NET EXEs to run off a network share.

Brad Abrams published a poll that you can all vote in.

What do you think?

kolbis כתב בתאריך Sunday, October 28, 2007 11:18 PM
תגים:,

CodePlex has turned green...

What do you think about the makeover?

Code Project announced a Visual Studio 2008 competition.

What do you need to do?

Download the Beta, install it, play with it, and then write a great article with some code. Submit that article to The Code Project and tag it as VS 2008 and you’re automatically entered into the contest. Your article should focus one or more of the following new technologies:

  • The .NET Framework 3.5
  • Language Integrated Query (LINQ)
  • Visual Studio Team System and/or Team Foundation Server (TFS)
  • Visual Studio Tools for Office (VSTO)
  • Microsoft Silverlight
  • Windows Server 2008
  • SQL Server 2008

You can read more about it here.

Good luck!!!

I guess you all know by now, that Developer Academy is right around the corner (27/11/07).

I expect it to be a great event, that should target the developers as implied by its title.

All the best lecturers will be there, and me too.

The title I want to use for my presentation is PDD by example.

This is not a miss type, I did not meant TDD, rather PDD, which means Performance Driven Development.

We all forget sometimes that Performance is also a requirement! However, developers always think write code first optimize later (way way later). With this lecture I will try to convince you otherwise and I will supply the tools to implement this methodology and tools to solve applications bottlenecks and bad code practices.

Since this methodology is not well known, I would like to perform a small survey that include two questions:

  1. Have you ever heard about PDD? 
  2. Would you like to hear more about it?

You can leave your answers as comments to this post :-).

Definition

TDD by now is a well known buzzword that has been around for some time.

TDD is a deferent way to start your coding tasks. The idea is to write tests before implementations.

Don’t write code without having a failing automated test.

Process

So the process of TDD generally speaking is:

  1. Write the test code.
  2. Compile the test code (it should fail).
  3. Implement just enough to compile.
  4. Run the test and see it fail.
  5. Implement just enough to make the test pass.
  6. Run the test and see it pass.
  7. Improve the code for both the tests and the implementation code.
  8. Repeat from the top.

Basics

It is important to state that TDD’s main objective is not testing software! This is merely just a side effect.

There are couples important issues related to TDD:

1) Simple design

Because the tests define the requirements, your job when writing the code should be to satisfy the requirements no less and no more.

Everyone understands no less (the program would not work otherwise), but not everyone understands no more. What is meant by no more? Think back to a time when someone asked you to add a feature to an existing system, and you said “No problem; I thought this was going to happen and put additional code in for this specific purpose.” You were viewed as a hero because you anticipated the requirement and had already implemented the solution.

Now remember a time when you added complexity in the form of additional functions, abstract classes, and so on that nobody ever asked for. This additional code has to be maintained along with the rest of the useful software. In fact, the maintenance burden of this software is worse because it is not supported by real usage. So you should always strive to do no more and no less, as follows:

The code is appropriate for the intended audience.

The code passes all the tests.

The code communicates everything it needs to.

The code has the smallest number of classes.

The code has the smallest number of methods.

2) Break it down

My mom told me that if I will cut my chicken *** into small pieces, it will be much easier for me to swallow. The same goes here.

Solving big problems is hard and solving them all at once is harder. Thus by breaking the task into smaller tasks, it will be much easier to implement and verify that correctness of the code and putting them all together, we will get the entire task.

Summary

So, some of you may have used it some of you may just heard of it. The bottom line is that this is exciting development methodology that has become more commonly used. You write you tests and then you implement the required code. The tests verify that the code in term of functionality aspects works as expected. My way of looking at the tests as to the TDD, is as “Functionality and behavioral tests’.

Over a year ago, SRLTeam has released a free addin for Microsoft Outlook, that supports editions 2000, 2003 and 2007.

If you  are not familiar with it, I recommend you to check it out here and here.

Yesterday, I received a mail from a company named Ekobit that created addin for Outlook 2007. It is not free, but it has some nice features such as:

  • Searching Work Items
  • Work Item list grouping and filtering
  • Navigation through TFS Servers, Projects, Queries and Work Items
  • Adding Query folders to the Favorite Folders list
  • Background synchronization / Cancel synchronization
  • Creating new Work Items
  • Creating new Work Items out of e-mail
  • E-mail attaching to Work Items
  • Entering Work Item ID and opening Work Items quickly
  • Creating new e-mails out of Work Items
  • Creating new appointments out of Work Items
  • Accessing the project portal
  • Connection to multiple Team Foundation Servers
  • Send to OneNote action
  • You can see more here.

    Microsoft has just released the Tester Center on MSDN.

    Up to now, MSDN was intended for developers and development issues, however testing is a major aspect in the development cycle, yet no real repository was available. With the release of the Tester Center, all rated XXX testing questions can now be answered.

    Jeff Beehler did a great post that summaries the features that will be focused there. 

    You can check it yourself here.

    kolbis כתב בתאריך Monday, October 22, 2007 10:45 PM
    תגים: