I've been very slack with my posting lately but hopefully that will all change next week. I'm off to Auckland tommorow for TechEd on Monday and I hope to be able to post details of the sessions I'm attending as often as possible - or at least a summary at the end of each day.
I don't have to earn my keep this year so I'll be doing as many sessions as I can handle. I've picked mostly Architecture sessions but also a few developer sessions. I'm particularly interested in Team System (surprise surprise!), SQL 05 and Indigo.
If you happen to be attending too then make sure you pop into the MSDN Connection Lounge and say hi. I'll be there as often as I can, along with fellow NZ .Netters such as Kurt, Kirk, Chris, Nic and others.
I don't like politicians. Especially at election time. My normal approach is that, within reason, it makes f-all difference who is in power so vote as irrationally/emotionally as you like - you get screwed either way.
However, after looking www.taxcuts.co.nz, I figure I'd be $10k a year better off with National than Labour.
Flip-flop-Don is not such a bad chap really - he's just a little indecisive. But aren't we all?
I'm using the new ToolStrip and ToolStripContainer in our VS05 application and it looks hot! However, I've had a lot of trouble getting the toolstips to behave and stay where I want them in design mode.
This morning I discovered that using the Document Outline works really well for moving stuff around on your winforms. Now it all looks sweet.
A word of warning. In VS 05, if you REMOVE a project from a solution, it actually get's deleted from disk and Team System Source Control. Thank [insert your devine being here] for Undo Pending Changes!
The NZ .Net User Groups have launched a competition for the Blog of the Year. See details here: http://www.dot.net.nz/Default.aspx?tabid=78. But, you can't vote for me - that would be dodgy - as I'm counting the votes!

Update: Voting is going pretty well - there was close to 400 votes last night, but only 150 unique votes - hitting the vote link 77 times in a row is sort of obivous!
This is one of those Friday afternoon problems.
In my 2005 Winforms client I have a nice fancy splash screen that displays the current version - 3.0.0.0 (yes, this is the 3rd version but the 1st .Net version) - which it retrieves from Application.ProductVersion. Under the covers, ProductVersion is actually just AssemblyFileVersion from assemblyinfo.vb/cs.
Now, I wanted to have this auto increment the build number. In VS03, you do something like this: [assembly: AssemblyFileVersion("3.0.0.*")] and the asterix is replaced with the next version on each build. Well this didn't work. All I got was "Version 3.0.0.*" in the splash screen.
Ok, fair enough, probably a beta issue or there is another way of doing it I'm not aware of.
HOWEVER, when I tried to exit the app, it crashed trying to save Properties.Settings.Default. It said there was an invalid character in the file path. Of course, there was an hour between these two issues so it took me a few minutes but eventually I figured that the version number is used in the settings file name. Removing the asterix solved this problem.
FYI
I don't want to burst anyones bubble here, but I think there's a lot of people under the impression that SQL 05 & VS 05 are going to be released on November 7th. From everything I've seen announced, this is the LAUNCH date, not the RELEASE date - they could be quite seperate things. At the very least, I wouldn't expect to see DVD's/CD's in your mail box before December.
But then, I could be wrong... and it wouldn't be the first time.
I have a DataGridView where I allow users to type in cell values, but I only want upper case. To do this, you need to capture the control as it's being created and assign a KeyPress handler. E.g:
private void MyGrid_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { if (e.Control is DataGridViewTextBoxEditingControl) { e.Control.KeyPress += new KeyPressEventHandler(Control_KeyPress); } }
void Control_KeyPress(object sender, KeyPressEventArgs e) { e.KeyChar = e.KeyChar.ToString().ToUpper()[0]; }
Of course, you can extend this further to do all sort of things, but if your requirements are complex then it's probably advisable to create your own custom column.
I like IE7, it's clean and fast and seems pretty stable. HOWEVER, Work Item Tracking in Visual Studio 2005 Team Suite does not like it. It causes VS to crash.
Luckily it uninstalls nicely and restores IE 6 as it was, so no harm done.
Last week I had a small disaster with the source control in Team System. I managed to overwrite 3 files and lost about 2 weeks work. The files has not been checked in correctly since mid June. This was not a nice thing to happen :{
For some reason known only to - pick your God here - I mucked around with the file attributes on these files and then did a "Get Latest", which of course, overwrote the local versions with the old server versions. Yes, that was a stupid thing to do! However, I still haven't a clue why the files where not getting checked in correctly. It may have something to do with the readonly file attributes being out of sync or something else.
So, a word of warning, don't get too comfortable with the Source Control yet - IT'S A BETA !!! Go and check now that all your files are being checked in correctly and before doing a Get Latest, backup your local versions.
Roll on beta 3...
I'm not the most efficient coder. Things like Resharper are a waste of time for me. I prefer to repeat myself 4 million times rather than learn 23,000 keyboard shortcuts. I think it's something to do with creative flow.
However, sometime you see things that are so easy and quick to use that you just adopt them without thinking. Snippets are one of these. David reminded me of this.
So, here's a custom snippet I created for inserting properties. This is pretty much the same as the default prop snippet, but I've added summary comments and I like my member vars to have a leading underscore: <?xml version="1.0" encoding="utf-8" ?> <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <Title>jprop</Title> <Shortcut>jprop</Shortcut> <Description>Code snippet for property and backing field</Description> <Author>Peter G Jones (modified version of prop from Microsoft Corporation)</Author> <SnippetTypes> <SnippetType>Expansion</SnippetType> </SnippetTypes> </Header> <Snippet> <Declarations> <Literal> <ID>type</ID> <ToolTip>Property type</ToolTip> <Default>int</Default> </Literal> <Literal> <ID>property</ID> <ToolTip>Property name</ToolTip> <Default>MyProperty</Default> </Literal> <Literal> <ID>field</ID> <ToolTip>The variable backing this property</ToolTip> <Default>_myVar</Default> </Literal> </Declarations> <Code Language="csharp"> <![CDATA[/// <summary> /// Backing variable for property $property$ /// </summary> private $type$ $field$; /// <summary> /// Property $property$ /// </summary> public $type$ $property$ { get { return $field$;} set { $field$ = value;} } $end$]]> </Code> </Snippet> </CodeSnippet> </CodeSnippets>
I can see that creating more elaborate snippets is pretty easy. I wonder if it would be possible to have CodeSmith snippets? That would be really cool!
We recently had a minor incident with our visa cards - someone who shall remain nameless lost HER purse. After much searching we decided to do the right thing and cancel our joint visa card. Ten minutes after doing this, the purse rematerialised. Joy.
Wev'e been waiting for nearly 2 weeks to get replacements (they are made about 2 minutes walk from where I work) and during that time Telecom tried to charge us. It failed of course, becuase I don't have the new card number to give them.
Today, we had a call at home from an automated service. It said to call 128. Fair enough I guess, their staff must get a lot of abuse so why not have a machine do it. So, I dialled 128 and was given a choice of 5 different options, none of which matched my circumstances, so I picked 'you have been contacted by a collection agency'. Then I was given another menu with 5 options - I can't remember what that was but I selected something close enough. Then I had to select whether I was calling from the phone concerned or another phone. I was calling from work so I selected option 2. Then I had to enter my home phone number. Then it wanted the last five digits of my account number - which I didn't have. Phone home, get the lad to give me the number, repeat. Got back to where I left off and enter the last 5 digits. She says "That's Great!". Yeah right. But first, I need to enter a pin number. Arrrrrrrrrgggggggg!! Or select 0 to speak to a person. Yay! Finally.
But here's the lovely part, the lady I finally got to speak with did not have my account details in front of her so all that time I wasted entering phone numbers & account numbers was completely pointless.
Grrrrrrr.
Sean has posted about the new pricing of MSDN Universal in NZ. A 48% price drop is pretty bloody fantastic!
If you are in the unfortunate position of having to pay for this yourself - or you have to convince a penny pinching boss - then now is the best time ever to get MSDN. I'd like to know the full retail value of all the software you get in MSDN (plus the free support!) - I'm guessing it's pushing $50k but it could be a lot more. ~$3500 is a complete steal!
Darryl posted about an interview with Steve Balmer and the subsequent flood of slashdot abuse.
I watched the video. It's nice to actually see Mr Balmer speaking - albeit for such a short interview. It's gratifying to witness his obvious devotion to developers. It gave me a brief warm fuzzy feeling.
However, I also read some of the crap that slashdot posters said about his comments on open source and innovation. There's no point to replying on slashdot, no point at all, so I'm doing it here.
Open Source is good. MS knows this. They are a significant provider of open source code - just look at MSDN for a while, what about www.ASP.Net, www.GotDotNet.com, www.WinForms.net? To say that MS doesn't understand or 'get it' is just plain silly.
From a business point of view, GPL and it's ilk are the devils spawn and stiffle innovation. MS also knows this. As a large (or small) company it would be extremely unwise to use any code that is covered by GPL. For MS, this is a huge threat. There are squillions of eager lawyers just waiting for the smallest infringement.
I'm trying to format contents of a cell in a DataGridView using the following code: private void RosterGrid_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { ShiftCell sc = e.Value as ShiftCell; if (sc != null && sc.RosteredShiftRow != null) { if (!sc.RosteredShiftRow.ShiftRow.IsForegroundColorNull()) e.CellStyle.ForeColor = Color.FromArgb(sc.RosteredShiftRow.ShiftRow.ForegroundColor); if (!sc.RosteredShiftRow.ShiftRow.IsBackGroundColorNull()) e.CellStyle.BackColor = Color.FromArgb(sc.RosteredShiftRow.ShiftRow.BackGroundColor); e.Value = sc.ToString(); //e.FormattingApplied = true; // tried this and it make no diff } }
This should set the current cell colours for some cells only.
However the result is crap:

Anyone got any ideas?
Update: I fixed this by making sure I set the background colour to something valid. Sometimes is was being set to 0 and other times it was not being set at all. Now I either set both colours or none and it works really well.
I'm not normally one to blog on political, racial or religious issues, but some things are just too incredible to resist. I refer of course to this: http://news.bbc.co.uk/2/hi/americas/4631421.stm. Ronald Regan was voted the Greatest American of all time. The rest of the list of top 10 also looks decidedly dodgy.
This survey polled over 2 million citizens so you would like to think it's pretty representative - at least amongst Discovery Channel viewers and AOL users - so this is a huge worry. Surely the intelligence level has not dropped so far? Now I'm certainly no expert on American history but off the top of my head, I can think of one or two American's who I think are greater. e.g. Henry Ford.
I wonder if New Zealand could come up with a better list or would it look something like this:
- Robert Muldoon
- Russell Crowe
- Sean Fitzpatrick
- Judy Bailey
- Micheal Campbell
- Lana Cocroft
- Edmund Hillary
- Tama Iti
- Neil Finn
- Gandi
Rob Caron has posted that the June CTP of Team System is available for download.
I've got too much on at present to bother with this and we were also asked not to upgrade or patch past Beta 2 as part of some programs we are on with Microsoft.
I'd really like a new cut of Visual Studio though. Some of the bugs drive me nuts.
Wow! My boss found this yesturday - I think it's a new feature in VS05 because I've never seen it before. I'll be really annoyed if it's been in VS03 and I just never found it.
When you create a winform user control you normally need some container to test it in. In the past I've always just done this as part of the larger application. Now, when you have a control library project in VS, you can hit F5 and it will launch the UserControl Test Container:

Even better, you can load froms from any dll or exe:

Very cool! This is a lot like the old ActiveX test container - but way nicer to use.
How to retrieve multiple results sets from a stored procedure into a dataset with a DataAdapter.
Tim linked to a discussion on David Burkes blog about using Paul Wilson's O/R Mapper in a distributed environment. In this, Paul said:
"which in the end brings you back to the fact that distributed systems are not 'hard' but there are a lot of choices"
I certainly aggree that there are a lot of choices, but the only product I've found so far that is not hard is Alex's Base4 - which is not an O/R Mapper - but can be used to achieve the same result.
Maybe I need to have yet another look at Paul Wilson's mapper (which I will have to do soon for a small side project :) but my feeling is that if this was simple, I'd be doing it already.
I need to start working to my mantra - 'less is more, simple is better'. To me O/R Mappers are a stop gap measure until somebody comes up with a real OO solution that provides all of the distributed functionality I require in an easy to use package. So far, Base4 is the closest things I've found. deKlarit is another option that I've used in the past and it does come a lot closer to the ideal solution for me, but again, it's not simple and requires a large time investment to learn.
Maybe this stuff is never going to be simple enough for me?
|
Copyright © 2012 Peter G Jones. All rights reserved.
DasBlog 'Portal' theme by Johnny Hughes.
Pick a theme:
|
|