May 2006 - Posts

FaceBook Scenario List

Well, I have the environment up and running. My Team Foundation Server is snorring away and so I finally could create the scenario list.

Here it is, in the TFS scenario excel sheet:
 

Now I will create the tasks for these scenario's and then writing can begin!

Posted by Rene Schrieken | with no comments

FaceBook: The Dev Schedule

This is the dev schedule for creating the FaceBook. I will have three iterations Iteration 0: 8 hours Setup: environemnt Setup: Create project structure Setup: Build Create Vision Statement Create Personas Define Iteration length Create test approach sheet Brainstorm/Prioritize Scenario list Brainstorm/Prioritize QOS Create Iteration Plan 1 Iteration 1: 8 hours Create solution architecture Iteration 2: 8 hours rework solution architecture Release the product Now that looks like a lot of fun, especially brainstorming with myself. Next will be the scenario's , persona's and the initial prototype.
Posted by Rene Schrieken | with no comments

Mini project: The FaceBook

As the weather is not that good I decided to pick up my FaceBook project again. During this mini project I will use the Service Factory and the Smart Client Software Factory to get some experience, find omissions etc. These days it is considered modern if you do Agile/TDD so I will. First some definition: The FaceBook is used by groups of people who needs to know each other without having the possibility to interact very often with each other. Examples are: Colleagues in your division, Participants in a training, Members of a community. To kick off I have dreamed up some requirements:
  • The FaceBook is available online, offline and in hardcopy.
  • A FaceBook stores data of persons and their relation to each other.
  • From each person at least a Picture and the name is stored.
  • The FaceBook data is stored either in a central location or local to the user.
  • The central store is accessible by different clients.
  • The FaceBook can use existing stores of Person data.
  • Each Person can access/update or delete his data.
  • Each Person can access the to his identity published FaceBook
  • A Forager can change all data for a FaceBook
  • A Requester can access FaceBooks issued by him/her
  • A Requester can issue the creation of a FaceBook
  • A Forager can access the list of creation requests
The following roles are using the FaceBook:
  • The Requester: Person who issued the request for a FaceBook
  • The Forager: Person who manages/gathers the data for the requested FaceBook
  • The Person: Person which has to submit/update his Photo and other information
Tomorrow I will post the dev schedule.
Posted by Rene Schrieken | with no comments

BAT/SF/GAT

Last week I attended a private workshop at Microsoft (Building 40) together with Edward.

The workshop addressed the Service Factory, which can be used in/as a Software Factory. As you might expect, the Service Factory handles much of the plumbing code needed when you create a service oriented architecture application. In the public download you will find a setup that will add project templates, new menu-items, code snippets and documentation to your VS2005 environment.

During the workshop we discussed a lot of things, for example how the ASMX services and the upcoming WCF services should be supported. The service factory wil probably have a sort capability to 'convert'  an existing asmx service contract to a WCF contract.

As some of us had some time to spare on friday we also had an introduction on Smart Client Software Factory. This tooling does a lot of the plumbing for mainly the Composite UI application Block, in creating Modues, Views and Presenters.

Besides this two mentioned SF's there will be also Guidance Automation Packages for Web clients and Mobile clients.

So keep an eye on those technologies as they will add some very usefull stuff to the VS2005 experience

 

 

Posted by Rene Schrieken | with no comments

Is my type too safe?

Today I struggled with a minor problem which made me wonder: "Is this type too safe?".

So here is the code frament and the nice popup-box:

The first inspection with the debugger showed that this.Value was really a DateTime, and value.Value was also really a DateTime. Why are the DateTime types complaining about an invalid Value.

As value is really a Nullable<DateTime> a small thought popped up that maybe a DateTime created from a Nullable type is something completely different. But value.Value looked ok: The debugger was also convinced that it was a DateTime.

So then what is this.Value doing in its setter? Ooh yeah, hold on, this class is inherited from DateTimePicker. The Value property is its strongly typed member that sets or get the date to be presented in the DateTimePicker control. It shouldn't be that it can't represent a valid DateTime?

It does. It has a business rule of its own and checks the DateTime in its setter code against DateTimePicker.MinDate and DateTimePicker.MaxDate. Trying to store a new DateTime() into the Value property of the DateTimePicker is not going to succeed because the default MinDate is 1-1-1753 (which is the start of the Gregorian calendar?) . Luckily MinDate and Maxdate are runtime setable so you can fiddle with that, I opted for some coding to bypass the Value setter of the base class and set the Checked to false when my incoming Date is below the base.MinDate.

 (UPDATE: Some comments indicated that this architect made a mistake :-) )