tag:blogger.com,1999:blog-94207062024-03-14T12:49:55.159+10:00chullybun : the mtb coderThe blog of Eric Sibly; focusing on mountain biking, .NET development for the Desktop, Smartphone and PocketPC.chullybunhttp://www.blogger.com/profile/03074086459088907079noreply@blogger.comBlogger152125tag:blogger.com,1999:blog-9420706.post-35326616832149983352008-10-29T11:03:00.001+10:002008-10-29T11:03:15.256+10:00PDC2008 - Day 2...<p>An improvement over <a href="http://chullybun.blogspot.com/2008/10/pdc2008-day-1.html">Day 1</a>. The Keynote was much more about the UX today. It kicked off with Windows 7 which was much more incremental versus radical in terms of change - possibly a good thing. The main UI change demonstrated was around the Start/Task bar and how that operates - looks good. Will it be the compelling reason for everyone to upgrade, probably not. They demonstrated the touch capability, first showing how non-touch aware application were able to function and secondly an application designed to take advantage of the platform. Will it be enough to warrant an upgrade, maybe, I think I want it!</p> <p>The development platform changes look interesting; Visual Studio 2010 is being rewritten in WPF and looks to offer some really cool extensibility. (As an aside the C# compiler is also being rewritten in .NET so that it can be more extensible). Further enhancements to WPF include the Ribbon, DataGrid, Calendar and DateTimePicker (about time). So really impressive WPF applications were demonstrated.</p> <p>Live Services (which builds on <a href="http://www.azure.com">Azure</a>) includes stuff like the Mesh, Contacts, etc. will have an API exposed which looks to offer some interesting possibilities. Some of the Office 14 applications were demonstrated which leverage these services; interesting to note that their also appears to be Web Versions of the Office applications.</p> <p>The sessions I attended today were:</p> <ul> <li>PC24 - Windows 7 Desktop: not too bad, a bit more detail than the keynote.</li> <li>PC46 - WPF roadmap: absolutely terrible session - the presenters sucked. The content was more looking at the past and current versus future roadmap.</li> <li>ES02 - Oslo the language: good presentation skills from Don Box; although I am not sure I fully get Oslo yet?!?</li> </ul> chullybunhttp://www.blogger.com/profile/03074086459088907079noreply@blogger.com1tag:blogger.com,1999:blog-9420706.post-1061978553873147882008-10-28T13:06:00.001+10:002008-10-28T13:06:25.524+10:00PDC2008 - Day 1...<p>I went to an Expression session where the presenter said "first impressions count". If I were to apply that to Day 1 I would say Microsoft missed the mark.</p> <p>The Keynote this morning by Ray Ozzie just missed the mark completely - it was the opportunity to wow the crowd and set the tone for the week. He was a pretty good presenter but seemed to lack emotion and enthusiasm which was needed to help sell the vision for Microsoft <a href="http://www.azure.com/">Azure</a> - the OS for the cloud. I think the platform/OS sounds promising; however, a services based OS with no UI is difficult to wow and that is what today needed to set the tone for the week. The demos were weak and the additional presentations added little.</p> <p>Tomorrow they are set to announce Windows 7 and UX - that had better be something else to make up for today. </p> <p>Also, I do hope they have something for Windows Mobile 7 as there were <a href="http://www.apple.com/iphone/">iPhones</a> galore amongst the attendees. Microsoft are going to get smashed in the mobile space if they don't do something quick smart - Windows Mobile is old, stale and boring. I asked the Windows Mobile team why I should not buy an iPhone and the response was pretty weak. Something along the lines of Windows Mobile has a more open development platform and there are more devices. When quizzed about Mobile 7 it was a big no comment. Zzzzz.</p> <p>The sessions I attended today were (not going to cover in any detail as I am sure there a heaps of other blogs that will, and most sessions have been <a href="http://microsoftpdc.com/">recorded</a> anyway):</p> <ul> <li>ES16 - A lap around cloud services part 1: not good; less information than the keynote.</li> <li>PC47 - Microsoft Expression Blend tips and tricks: ok, nothing startling.</li> <li>TL16 - The future of c#: awesome, Anders is a great speaker. The theme for C# 4.0 is the melding of Dynamic Programming - new keyword "dynamic".</li> <li>PC21 - ASP.NET MVC: not bad content, a good presenter. </li> <li>BB15 - SQL Server Database to data platform: awesome content and speaker - very interesting stuff.</li> </ul> chullybunhttp://www.blogger.com/profile/03074086459088907079noreply@blogger.com0tag:blogger.com,1999:blog-9420706.post-42377249302676277682008-10-27T03:55:00.001+10:002008-10-27T03:55:13.418+10:00The $10 fridge...<p>This is not the worst hotel I have stayed in by any stretch – but it is still a pretty crappy rundown hotel. Anyway, when I stay at a hotel I like to have my own cereal so I keep the milk and other drinks in the fridge ensuring they remain nice and cold. So when I arrive I open the fridge cavity door and am greeted with:</p> <blockquote> <p>Thank you for choosing to stay at the Marriott. The in-room cooler is currently out of service. We would be pleased to offer a refrigerator for your convenience. Simply touch "0" and our At Your Service team will have one delivered to your room. Based on availability. A $10.00 charge applies for the length of your stay.</p> </blockquote> <p>So I am clearly delusional as I had always thought that a hotel room had a standard set of amenities, such as a bed, television, shower, toilet and <strong>fridge</strong>. Clearly I am mistaken; thankfully the remainder of the items in my list have remained. <a href="http://lh6.ggpht.com/chullybun/SQSu_Tq4M0I/AAAAAAAAABQ/U8zUhyuC0RY/s1600-h/PDC08%20049%5B5%5D.jpg"><img style="margin: 5px 0px 5px 5px" height="180" alt="PDC08 049" src="http://lh3.ggpht.com/chullybun/SQSu_zV7OZI/AAAAAAAAABU/ibohNf3gKH8/PDC08%20049_thumb%5B3%5D.jpg?imgmax=800" width="240" align="right" /></a></p> <p>I just love how they apologise and admit the fridge is out of service. So instead of fixing and returning to the room they rip it out and offer a new fridge only if you are willing to pay a further $10. Should they not have offered my room rate at $10 less to start with given the lack of fridge?</p> <p>Anyway, I got the stupid $10 fridge – some dude just wheels it in and dumps it on the floor - classy :-)  </p> chullybunhttp://www.blogger.com/profile/03074086459088907079noreply@blogger.com1tag:blogger.com,1999:blog-9420706.post-81238463384127518372008-10-27T03:28:00.002+10:002008-10-27T03:29:56.976+10:00American taxi-head...<p>What is up with taxis in the US. We jump in a cab at the airport, travel to the hotel and hand over a credit card to pay – I would consider this standard practice. We are then informed that because we had not indicated we would pay using a CC when we got in that he could not accept it; so we were then forced to pay cash?!? There was no reason given and certainly no flexibility shown by the driver in helping tourists – what a w*****! So next time you are in the US and want a cab remember to declare your payment method before getting in – dumb!</p>chullybunhttp://www.blogger.com/profile/03074086459088907079noreply@blogger.com0tag:blogger.com,1999:blog-9420706.post-75441152629826162672007-10-12T14:13:00.000+10:002007-10-12T14:15:59.407+10:00Stock Icons for WPF...A <a href="http://blogs.msdn.com/yvesdolc/archive/2006/10/16/stockicons-for-windows-presentation-framework.aspx">link</a> to code that allows access to the stock icons from WPF.chullybunhttp://www.blogger.com/profile/03074086459088907079noreply@blogger.com0tag:blogger.com,1999:blog-9420706.post-66864258875006334172007-09-06T13:09:00.000+10:002007-09-06T13:12:08.001+10:00WPF vs Windows Forms...I saw this <a href="http://joshsmithonwpf.wordpress.com/2007/09/05/wpf-vs-windows-forms/">post</a> where some dude postulated on WPF vs. Windows Forms, which almost coincided directly with a conversation I had yesterday with an esteemed colleague pretty much discussing this very topic.<br /><br />My take on this is as follows:<br /><br /><strong>Make Obsolete</strong> - Windows Forms has reached the end of its useful life from a Microsoft investment perspective, they should continue to support through the next .NET release, then deprecate (decorate with the ObsoleteAttribute), and finally remove altogether. Support should continue for some time on those versions for those who continue to have applications which need this functionality – they can exist side-by-side with latter versions of the .NET runtime. Reason to remove is two-fold: shows intent and reduces bloat.<br /><br /><strong>Provide Tools</strong> – The tools story around WPF needs to improve, a lot, and fast. These tools, Cider and Expression, need to be out there yesterday, and totally free. Microsoft should look to encourage adoption of the platform and stop looking to try and make money off these tools. There more people who use the tools, the more applications that are created, the greater the demand for the platform – ergo more sales of the OS. Whilst on the subject of the tools, why don’t Microsoft just have a single version of Visual Studio that is free to everyone – it is the hobbyist developers that often create the most ??? applications.<br /><br /><strong>Dog Food It</strong> – Microsoft need to demonstrate that they are serious about WPF and the .NET platform and start to deliver their own applications on the platform (other than Expression). By not doing this they are sending a confusing message in which they see the platform as not being good enough for their own use, and if they don’t fully trust should I? All these Live applications, such as Messenger, Writer, Photos; what about NotePad and Calculator, etc – these should all be WPF apps demonstrating the awesome power of the platform.chullybunhttp://www.blogger.com/profile/03074086459088907079noreply@blogger.com1tag:blogger.com,1999:blog-9420706.post-13353266054589503092007-07-16T12:59:00.000+10:002007-07-16T13:20:23.149+10:00Partial MethodsFinally <a href="http://blogs.msdn.com/wesdyer/archive/2007/05/31/more-on-partial-methods.aspx">Partial Methods</a> have been added that complement <a href="http://msdn2.microsoft.com/en-us/library/wa80x488(vs.80).aspx">Partial Classes</a>; which in turn makes Partial Classes much more interesting and a hell of a lot more flexible.<br /><br />A major challenge with Partial Classes previously as I saw it was where code was generated there was then no flexible opt-in means to hook in additional user code that the generated code would initiate, other than providing virtual or protected methods and subclassing which all just adds another layer of redundancy (and comes with a performance hit).<br /><br />A Partial Method provides similar functionality in that a method interface/template is created and <em>optionally</em> the corresponding implementation can be added within the same class. Where it is not added the compiler is smart enough to ignore – zero performance overhead – nice!<br /><br />There are some limitations and rules - see the first <a href="http://blogs.msdn.com/wesdyer/archive/2007/05/31/more-on-partial-methods.aspx">link</a> for a decent run through.chullybunhttp://www.blogger.com/profile/03074086459088907079noreply@blogger.com0tag:blogger.com,1999:blog-9420706.post-23050155915236947162007-05-02T20:35:00.000+10:002007-05-02T20:50:35.902+10:00Merida 24hr RaceOn the weekend of April 21/22 Fabian and I once <a href="http://chullybun.blogspot.com/2006_04_01_chullybun_archive.html">again</a> did the <a href="http://www.twowheelpromotions.com.au/gallery.html">Merida 24hr Race</a> at the Kooralbyn Resort; again it was a well run event that was largely a lot of fun.<br /><br /><a href="http://2.bp.blogspot.com/_7aA3yoBgXb0/RjhqAoAdAcI/AAAAAAAAAAM/2v6jpuvbC-I/s1600-h/Small_IMAGE_084.jpg"><img id="BLOGGER_PHOTO_ID_5059910740322615746" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_7aA3yoBgXb0/RjhqAoAdAcI/AAAAAAAAAAM/2v6jpuvbC-I/s400/Small_IMAGE_084.jpg" border="0" /></a>We (Ange, boys and me) arrived on Friday just after lunch to give us the opportunity to set up camp the night before to make the morning before race start a bit easy than last year. We checked into our room at the resort, it was ok although the place is starting to look and feel really tired. We then went down to the track and set up our tent, keeping all our gear in the car as you are not allowed to camp overnight except on the night of the race proper. At around 4pm-ish we went over to the resort facilities near race start/finish just before one of the worst storms I have ever seen hit. Over the next 30 odd minutes we had some brutal winds, thunder and lightning, torrential rain, and hail stones about half the size of golf balls. The amount of water that fell in such a short period of time was unbelievable. Once it stopped I went over to check out the tent to make sure it was alright, only to discover that a new river had been created and was flowing quite happily past and through the back end of the tent. It ended up collapsing the back end, breaking one of the poles and leaving us with a couple of inches of water down one end. The next hour of so was then spent cleaning out, fixing and re-setting the tent before we headed off to dinner and sleep.<br /><br /><a href="http://1.bp.blogspot.com/_7aA3yoBgXb0/RjhqlYAdAdI/AAAAAAAAAAU/7Tiv5UTkfJc/s1600-h/Small_Kooralbyn+24hr+007.jpg"><img id="BLOGGER_PHOTO_ID_5059911371682808274" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_7aA3yoBgXb0/RjhqlYAdAdI/AAAAAAAAAAU/7Tiv5UTkfJc/s400/Small_Kooralbyn+24hr+007.jpg" border="0" /></a>The next morning was magnificent sunshine but brutally humid because of the previous days storm. We finished unpacking the car and setting up camp before race start. Even though I had kept my fluids up I ended up being pretty dehydrated with a head ache that lasted the remainder of the day regardless of the number of drinks and Panadol I consumed. We started off doing two laps a piece, and after 3 sets I needed to rest as I was exhausted and the head ache would not stop – needed to have a sleep to try and recover. So at 12:30am I went to sleep whilst Fabian went out and did his next two. When he got back he tried to wake me for my turn but I was out to it and not ready to go again, so he choose to sleep as well. He got up at 5:00am to do another couple, at which point I was up minus the headache to start circulating again. After my next two laps I was feeling better but with the heat coming and still feeling pretty exhausted we switched to single laps. This was a good move as I found my next two single laps the most enjoyable as the timing was such I could go quite hard and it gave me enough time to recover before the next.<br /><br />In the end we completed 24 laps, with twelve each, and came a respectable 8th in the 2 Person Open category – we were pretty happy with that result.<br /><br />In summary, here are my thoughts of the race. The track was largely the same length as the previous year, although the changes resulted in more climbing and more challenging downhill section towards the end which resulted in lap times around ten minutes longer than last year. The extra climbing was ok, the downhill just after was not rewarding at all – it was very rocky with nasty off-camber switchbacks – it would have been much better if it was a much faster more flowing ride back into camp. There was also this silly little section added to the start across a grassy area that didn’t really fit into the feel of the rest of the track that they should look to get rid off for next time.<br /><br /><a href="http://3.bp.blogspot.com/_7aA3yoBgXb0/Rjhq-4AdAeI/AAAAAAAAAAc/jNPaItjHPUQ/s1600-h/Small_Kooralbyn+24hr+006.jpg"><img id="BLOGGER_PHOTO_ID_5059911809769472482" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_7aA3yoBgXb0/Rjhq-4AdAeI/AAAAAAAAAAc/jNPaItjHPUQ/s400/Small_Kooralbyn+24hr+006.jpg" border="0" /></a>The race for me was reasonably uneventful, in that I had a couple of minor tumbles resulting in a few little bruises and scrapes. In fact it was Caleb who had the worst injury of the family after running into a pole playing tag. Apparently, he hit it and flew backwards onto the ground and amazingly did not cry – he is one tough little bugger. Rumours are circulating it was because I hit him – it’s not true :-)<br /><br />Finally, thanks again for Ange and the boys for being there and supporting me through the highs and lows - cheers guys!chullybunhttp://www.blogger.com/profile/03074086459088907079noreply@blogger.com1tag:blogger.com,1999:blog-9420706.post-1156735409789071822006-08-28T13:17:00.000+10:002006-08-28T19:33:32.563+10:00The unknown World Champions...Question: In what recent World Championship did Australia men finish 1st, 3rd, 5th and 6th – that is four in the top 6.<br /><br />Answer: <a href="http://www.2006rotoruamtb.com/english/results_DHI.php?race_id=16">The 2006 UCI World Mountain Bike Championships – Elite Downhill</a><br /><br />So how come we read so little of this in the mainstream press; how many other sports does Australia compete in which they dominate to such a level? So why is there no coverage in the papers or on television, why is not more money being invested in a sport where there is obvious success? For goodness sake Australia invested in and sent a competitor to the winter Olympic to do <a href="http://www.torino.olympics.com.au/news.cfm?ArticleID=6318">luge</a> – what the – this is not even a sport that anyone can participate in locally – so why?<br /><br />Sam Hill and Nathan Rennie should be household names for their achievements!<br /><br />Let’s also see how Australia/NZ went in other categories from a top 10 perspective at the event:<br /><br /><a href="http://www.2006rotoruamtb.com/english/results_DHI.php?race_id=12">Junior Women Downhill</a> – Tracey Hannah (Aus) 1st.<br /><a href="http://www.2006rotoruamtb.com/english/results_DHI.php?race_id=13">Junior Men Downhill</a> – NZ 1st and 2nd, Aus 5th, 7th and 9th.<br /><a href="http://www.2006rotoruamtb.com/english/results_DHI.php?race_id=15">Elite Women Downhill</a> – NZ 7th and 9th.<br /><br />Update: SBS will show highlights on <a href="http://www.sbs.com.au/whatson/index.php3?progdate=10:09:2006">Sunday, September 10 at 11am</a>.chullybunhttp://www.blogger.com/profile/03074086459088907079noreply@blogger.com0tag:blogger.com,1999:blog-9420706.post-1154569831293325712006-08-03T11:29:00.000+10:002006-08-04T09:08:04.213+10:0012hr MTB race...Well, this past weekend was the “<a href="http://www.twowheelpromotions.com.au/events06_12hr.html">RACE FACE 12 HOUR MOUNTAIN BIKE TEAM CHALLENGE</a>” – that is quite the mouthful! Anyway, it was a 12hr MTB endurance race ran out at Kooralbyn Resort, the same venue as the recently completed <a href="http://chullybun.blogspot.com/2006_04_01_chullybun_archive.html">24hr race</a>. Again, <a href="http://www.naturalselect.net/blog/">Fabian</a> and I teamed up and entered as a pair.<br /><br />The <a href="http://chullybun.blogspot.com/2006/07/go-away-rain.html">previous day’s rain</a> had dampened the track, but we arrived to a perfect morning of sunshine which is what we had all day, could not have asked for more. The track was a bit tacky for the first few laps but dried up pretty quickly apart from one large muddy bog in a darkened corner. The track was fairly similar to last time except some additional climbing was added to the end after the switchbacks section so the final stage of the lap got a bit harder before the fun downhill run into the bridge setting up the start/finish straight.<br /><br />We hooked up with the boys from <a href="http://www.ashgrovecycles.com">Ashgrove Cycles</a> again, this time it was Hayden and Andy in the two man category as well. They were going for the win, and were leading the category until about the 9th hour when they both pretty much ran out of gas. They ended up finishing 3rd, which I guess is still a pretty good effort, although they were a little disappointed.<br /><br /><img src="http://tkfiles.storage.msn.com/x1ppfI_5B2bbg43diyuW4FfzMsbhRXWRlIDoQUxL4deBWTZW57joHxBfiPd-vHxHQGx40fu0vQR6q4aTaEbEJ6zAHwsFkc2dkg9zGhcQtAonnNaIMknFay52UPpAqPbOLqnClrG6NYgUvc" border="0" /><br /><br />The race got away right on time at 8am with a ride start versus the standard run to your bike affair. This caused some confusion as a number of us had expected the run and had left our bikes along the start/finish straight and had to go back and collect them. The start was fairly uneventful and we all got away ok. Although, I did hear some dude broke his chain within the first few hundred metres – bummer.<br /><br /><img src="http://tkfiles.storage.msn.com/x1ppfI_5B2bbg43diyuW4FfzMP-XgcE-wXz0Obvh_MUVjeH8TCPO7TEJbXQDsaUnqMr4l3-snr_ERvdnlJoztNJQa9N_Y7PrZ_zrO7WEqkihJlqXQ9bjjIKOdRGxaemrC-lLHMLxgZkG-c" border="0" /><br /><br />I did the first two laps this time round, a 39:10 and 40.08, reasonable time and was feeling pretty good when I came in. Then I chilled out and ate some food whilst Fabian did his set, 40:17 and 41:21.<br /><br /><img src="http://tkfiles.storage.msn.com/x1ppfI_5B2bbg43diyuW4FfzHau4-FhRLq5WB1O2vwqn_KA7qPr_9QgqNoQYrRrCWlop60wg2FLAz95rr-RcVrP7kYvyPeskckqxJzmkuo8FXkwB-VTSU2SMx3Fecf2nb-l" border="0" /><br /><br />Next up, I did another two laps, a 40:29 and 42:08; started feeling it on the last lap from probably going out a little hard on the first. Fabian machined out his next two laps, a 41:14 and 42:58.<br /><br /><img src="http://www.twowheelpromotions.com.au/albums/06-12hr/DSC_0130.jpg" border="0" /><br /><br />Up again. I was feeling really good and set off with the intentions of doing a really good lap, it felt fast and was expecting to be rewarded with a good time, it was a 42:37 – I was really gutted – it really messed with my head and the next lap just sucked, a 47:16. Fabian went out and did his next two, 43:37 and 44:36 – and had some brake problems that he had to fix before his final set in the dark.<br /><br /><img src="http://www.twowheelpromotions.com.au/albums/06-12hr/DSC_0422.jpg" border="0" /><br /><br />The next two were going to be the final two laps, with the last in the dark as the sun was starting to go down. Started out really well and was going along comfortably until I got to that large muddy bog, and I thought I would try the outside line, versus the inside I had done successfully every other time. Well, as luck would have it, the bike slipped out from under me and I went down right into the muddy mess. The only bonus was no one was there to see it and laugh at me – phew! I was now covered in thick mud all down the left hand side, and my glove and grip were super slippery and holding on with that hand became a challenge for the remainder of the lap. I completed the lap a respectable 47:02 considering the unexpected stop. I then stopped on the way back out down the start straight to change gloves and clean the grip to regain some control. It was now dark and it was lights on, I was now starting to feel it in the legs and I slowly crawled around the lap, an almost laughable 55:15. Fabian completed his last two in the dark, with a solid 45:45 and 49:03.<br /><br /><img src="http://tkfiles.storage.msn.com/x1ppfI_5B2bbg43diyuW4FfzPj-nnDjzzx8wMW719v88y0lShIJjJb6L_jlSNg3yd0XvVCZtz1ooZrNIKQEsGYuJ02C-l0G8ZilrM_2drVVfU_CD8qoGpRNcUXDtpjYRPKv8aXm9FpLrh4" border="0" /><br /><br />So we completed a respectable 16 laps in total which was exactly what we had planned prior to the race so that was pleasing, and we can 11th in the two person category out of 19 which we thought was pretty good. So overall we came <a href="http://www.twowheelpromotions.com.au/files/results06/06_12hr_results.pdf">55th out of 104</a> starters/teams – which again we were happy with as that meant we beat a bunch of 3 and 4 person teams. Yeah us!<br /><br />Finally, I would like to thank <a href="http://www.twowheelpromotions.com.au/">Two Wheel Promotions</a> for organising another fantastic event, and Ange for being my support crew again; making up my drinks, getting my food, organising my changes of clothes, putting up with my grumpiness after a bad lap, and looking after the kids.chullybunhttp://www.blogger.com/profile/03074086459088907079noreply@blogger.com0tag:blogger.com,1999:blog-9420706.post-1154041186252595412006-07-28T08:55:00.000+10:002006-07-28T08:59:46.273+10:00Go away rain...So it doesn't rain here in Brisbane for months, then the day before the <a href="http://www.twowheelpromotions.com.au/events06_12hr.html">12hr MTB race</a> it rains - rain, rain, go away, come back another day!chullybunhttp://www.blogger.com/profile/03074086459088907079noreply@blogger.com0tag:blogger.com,1999:blog-9420706.post-1151304007753201382006-06-26T16:32:00.000+10:002006-06-27T16:59:53.613+10:00Windows Workflow (WF) Hosting…My current engagement has me writing a paper (Microsoft Word is my new <a href="http://en.wikipedia.org/wiki/Integrated_development_environment">IDE</a>) on a Lotus Notes to Microsoft application migration. Specifically, targeting SharePoint, InfoPath and custom – from the analysis to date it seems that the new versions of these products (<a href="http://www.microsoft.com/office/preview/servers/sharepointserver/highlights.mspx">SharePoint 2007</a> and <a href="http://www.microsoft.com/office/preview/programs/infopath/highlights.mspx">InfoPath 2007</a>) offer the best fit. Primarily due to the Workflow capability within SharePoint and the forms services within InfoPath (i.e. you no longer need the InfoPath client to run forms; they will run in a browser).<br /><br />To me the most exciting aspect of all of this is the workflow hosting by <a href="http://msdn2.microsoft.com/en-us/library/ms473241.aspx">Windows SharePoint Services V3</a> (a freely downloadable component for Windows). A <a href="http://msdn2.microsoft.com/en-us/library/ms406057.aspx">developer introduction article</a> has been published the highlights the capability; the following extract provides a pretty good summary of the capability.<br /><blockquote>The WF run-time engine provides the services that every workflow application needs, such as sequencing, state management, tracking capabilities, and transaction support. The WF run-time engine serves as a state machine responsible for loading and unloading workflows, as well as managing the current state of any workflows that are running. WF allows any application process or service container to run workflows by hosting WF—that is, loading WF within its process.</blockquote>So does that mean we can use SharePoint Services for hosting all of our workflow where we require the likes of state management, etc.? I am not so sure; maybe someone else can add some more light on the subject – it would be fantastic if you could.chullybunhttp://www.blogger.com/profile/03074086459088907079noreply@blogger.com0tag:blogger.com,1999:blog-9420706.post-1151297077664414322006-06-26T14:33:00.000+10:002006-06-26T14:46:34.493+10:00ADO.NET Entity Framework…Following are some links to some excellent reading on where Microsoft is going with entities with respect to the RDBMS; as <a href="http://chullybun.blogspot.com/2006/03/custom-entity-classes.html">stated previously</a> entities are more often than not the best way to represent data within an application - an entity utilising object-oriented semantics and constructs:<br /><ul><li><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/ADONETEnFrmOvw.asp">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/ADONETEnFrmOvw.asp</a> </li><li><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/nxtgenda.asp">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/nxtgenda.asp</a></li><li><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/ADONET_EDM.asp">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/ADONET_EDM.asp</a> </li></ul>It is great to see Microsoft are looking to make Entities foundational to the next version of ADO.NET, and having them fully integrated with the likes of <a href="http://msdn.microsoft.com/data/ref/linq/">LINQ</a>. Hopefully, this will encourage developers to largely ditch those nasty DataSets as the default mechanism for working with data within a C#/VB.NET application.<br /><br />Some snippets that resonated or sounded interesting:<br /><blockquote>An ideal environment for creation of business applications should allow developers to describe the business logic and state of the problem domain which they are modeling with minimum or no "noise" coming from the underlying representation and the infrastructure that supports it.</blockquote><blockquote>Often, proponents of a particular presentation or programming model will argue that their particular "presentation" view is the one truth. We believe there is no "one proper presentation model"; and that the real value is in making the conceptual level real and then being able to use that model as the basis for mapping to and from various presentation models and other higher level services.</blockquote><blockquote>The Data Platform will include the capabilities of a low-memory footprint, embeddable database engine to enrich the services for applications that need rich middle-tier caching and disconnected programming experiences. The embedded database will include a simple query processor and non-authoritative persistence capabilities to enable large middle-tier data caches.</blockquote><p>It will be interesting to see how some of the other <a href="http://en.wikipedia.org/wiki/Object-relational_mapping">Object-Relational<br />Mapping</a> (ORM) solutions, such as <a href="http://en.wikipedia.org/wiki/NHibernate">NHibernate</a>, perceive this<br />threat?</p><p>Enjoy the reading; and the obligatory wait (months/years) for the goods ;-)</p>chullybunhttp://www.blogger.com/profile/03074086459088907079noreply@blogger.com1tag:blogger.com,1999:blog-9420706.post-1149050995869578332006-05-31T14:46:00.000+10:002006-05-31T14:49:55.890+10:00VSTS / TFS...I have spent the last few weeks on a customer site installing Visual Studio Team System / Team Foundation Server and proving to them that the capability within will meet their requirements. Right of the bat, I think these together are a pretty darn good set of tools, that really do meet the needs of improving the toolset and adding rigour to the methodology – they just need some extra spit and polish.<br /><br />My initial thoughts are as follows:<br /><ul><li>Work Item tracking and integration is awesome; but it totally sucks that there is no web based front end, unless you look at something like <a href="http://www.devbiz.com/teamplain/webaccess/">TeamPlain</a>. This looks like a pretty good solution on the surface; Microsoft should just buy them and integrate.</li><li>Team Build looks a little half baked, there is no built in scheduler or continuous build functionality – these should just be checkbox options. The build itself works and produces some reasonable reporting and automatic source control labelling.</li><li>The Source Control functionality looks great, it absolutely makes VSS look like the silly little product it is. I especially like the check-in policies in that it enforces developers to perform Work Item assignment and other activities such as unit testing prior. It would be nice to see some additional granularity added here, so certain actions happen where certain file types are checked-in, or from specific projects, etc.</li><li>The Check-in Notes functionality is weak; it should be set up so that the reviewer is a role or user. Then the reviewer can either confirm on the check-in persons session by providing user/password authentication versus just free-form text. Where the reviewer is not available it should then send a workflow for them to review prior to allowing check-in.</li><li>The Unit testing provides pretty much the same functionality as with NUnit and is well integrated into the product. I would happily give up NUnit.</li><li>The Coverage testing looks to perform the desired job and provides the appropriate information.</li><li>The Code analysis, FxCop also does it thing – all good.</li><li>The Performance testing looks ok, although the reporting UI could be improved.</li><li>The Web testing and Load testing look good also. The recorded Web tests work well and the automated code generation produces reasonable code – good stuff. What I like most about the Load testing is that you can include Unit tests as well as the Web tests, so functions can be tested under load without UI – very nice!</li><li>Where is the NDoc equivalent? We all need to create good quality documentation and the code comments functionality is awesome – we just need a great tool to help pull it all together nicely.</li></ul>So in summary, Microsoft has done a pretty good job first up – it exceeded my expectations :-)chullybunhttp://www.blogger.com/profile/03074086459088907079noreply@blogger.com0tag:blogger.com,1999:blog-9420706.post-1149046128085281202006-05-31T13:26:00.000+10:002006-05-31T13:28:48.106+10:00A nothing post...This is really a nothing post, a link to an amusing article about <a href="http://australianit.news.com.au/articles/0,7204,19297094%5E15309%5E%5Enbv%5E,00.html">google, sheep and kiwis</a> - I thought others might appreciate it!chullybunhttp://www.blogger.com/profile/03074086459088907079noreply@blogger.com0tag:blogger.com,1999:blog-9420706.post-1145929026280304732006-04-25T11:24:00.000+10:002006-04-28T12:56:26.746+10:00Weekend Warrior 24hr Challenge...This weekend, a mate (<a href="http://www.naturalselect.net/blog/?p=396">Fabian</a>) and <a href="http://www.mtbdirt.com.au/modules/coppermine/albums/userpics/10171/normal_jofly-3.jpg">I</a> teamed up for the Weekend Warrior 24hr Challenge at Kooralbyn Resort, Queensland. It was a very well run event, at a fantastic location - as it was at the resort - this meant that the resort facilities were available to the riders also. Although most chose to sleep in tents, some went for the soft option of a room (with a warm bed and shower – hmm, maybe they are the smart ones). There was a playground for the kids, proper toilet block, foods and drinks from the bar, all separated from the main complex bordering the golf course.<br /><br />The course itself was, in a word, awesome! It was just under 10kms in length and had a good mix of trail type - some interesting single track, some sweet fast and rolling trails, some tough climbs, some technical switchbacks, and plenty of variety of terrain to keep it interesting. It was almost the perfect length, as it meant that you were out there anywhere from around 30-50 minutes depending on your ability; unlike the Mont which is now out to around 17km which results in some ridiculous lap times, especially where batteries for lights barely last that long.<br /><br /><img src="http://tk.files.storage.msn.com/x1ppfI_5B2bbg43diyuW4FfzJecK5kurvj2KNyCjLQcQnxH2LdipjQtSMen5r3-fGD5riV-yeLdG4FzHQDqV-yJgRdOpYxLFoWwHjsgZqEeISmCjCs60jUTHte-DA2Vf-ph2PUuAhdXFc4" border="0" /><br /><br />We (Fabian, Angela and our two boys) hooked up with <a href="http://www.mtbdirt.com.au/modules/coppermine/albums/userpics/10171/normal_jofly-14.jpg">Hayden</a> and <a href="http://www.mtbdirt.com.au/modules/coppermine/albums/userpics/10171/normal_jofly-8.jpg">Mike</a> from <a href="http://www.ashgrovecycles.com/">Ashgrove Cycles</a> who were riding solo. They had scored a top piece of real estate at one end of the start/finish straight, so that the riders would pass by before going into transition and would ride out again a minute or two later. They had erected a couple of sun shelters and there was an area behind for all our tents; so we shared all our kit and helped each other over the next 24+ hours.<br /><br /><img src="http://tk.files.storage.msn.com/x1ppfI_5B2bbg43diyuW4FfzIpg5YGr5HxV_1DzIexbp8vouWyIS3eBNAaOCePnQbESwKcmFuHMzprNQF__sBOEjL9boeeXmtb0OgxyCWdOV8TDZ2l2GORsdtqXO-KKP722" border="0" /><br /><br />The race ended up starting a bit late, so instead of setting off at 12 noon, it ended up being just before 12:30pm. It was the typical le-mans (run to bike) start. Fabian took a leisurely stroll to his bike (no point in injuring yourself before the race has even begun!), then set off on and completed our first lap. Then it was my turn – the main challenge was to not go out too hard and kill myself for later, so I paid very close attention to my heart rate to ensure I kept the max under 95%, and ignored the girls passing me (just let them go!), so when I finished up after 37 minutes I was felling pretty good. The only scare I had was at one of the tricky switchback climbs where I spun out and I almost ending up cramping my left calf.<br /><br />It was time for Fabian to go again, but this time we decided that we would now complete two laps each before changing. He machined out another two laps and I was up again. The first of my two went well, and I completed it again in 37 minutes, so for the second I decided to step it up to see whether I could better the time. All was going well until about 3/4 through the lap when I washed out on one of the straights and crashed out on to the track stopping traffic for a little bit. In crashing, I ended up cramping the left calf and I was in excruciating pain until I could stretch it out, and I also had sprained my right thumb quite badly. The bike, however, was all good once I had re-straightened the handle bars and I limped it back home. My once great lap turned out to be a disappointing 40 minutes.<br /><br /><img src="http://tk.files.storage.msn.com/x1ppfI_5B2bbg43diyuW4FfzGMlNrzLnB-ybUDeIYptq1Ef98HElhiNsp7nJNMxLIW36qGKs_ParceHt6jNglrEq-EPaJQoAZJORCVcEr4ky0M9ea_GQZZ4ZOBA8cFbxsO9AKRqnO7U4N8" border="0" /><br /><br />Once I got back, the calf was really sore and I had to get Ange to give me a massage to see if we make it a bit more comfortable. There was some improvement, but there was still some pain – the thumb, on the other hand (excuse the pun), hurt like hell especially given I would need to use it extensively to change gears. Once Fabian was done with his next two, it was pretty much dark so I had to set up the bike with lights for a couple of dark laps. When Fabian returned he mentioned he too had an off, something about running into a tree (turns out it must have smacked it pretty hard as he had some great grazing on his shoulder and thigh). [As an aside, the worst accident of the weekend went to some poor woman who apparently amputated her finger – how? I am not sure yet?]<br /><br />The next two laps in the dark were hard work, the calf was sore and the thumb was damn sore – when I could I would use the other hand to change gears to give it a rest, and the constant jarring was also causing me some grief. I gritted it out and completed the two laps, the second with a small stop to change one of the batteries. They were around 46 and 47 minutes respectively.<br /><br /><img src="http://tk.files.storage.msn.com/x1ppfI_5B2bbg43diyuW4FfzDkt2M_iZfCaOX3ZpSs3t0e3MoU8BVvp0gBtiLzGji-vIXxIPQTQtsIWEvuc7NlZUMB2vdd8LgKwUkoUXeT_Zn-Xiqq8SzOu8dUzB6nK5zgzuaUHHcN_sbw" border="0" /><br /><br />Fabian then went out and completed another 2 laps, so at around 9pm we had completed 12 laps (Fabian 7 and me 5). It was time to call it a night; and we needed to recharge our batteries for the lights. I had a huge plate of pasta and hit the tent. Fabian did some bike repairs and went to bed later on. I woke up just before 4am and was back on the trail at around 4:15am. They were slow laps out in the cold, but also some of the most enjoyable. There is something special about riding at this time, and with the sun coming up as well, it was just the boost I needed to start the day. The calf was getting better; the thumb was still giving me grief. The lap times were 50 and 48 minutes respectively.<br /><br />Fabian was off again just in time to not need any lights. As I ate breakfast, Ange found some pain killers which I quickly consumed, along with some V for that special pick me up, and a whole bunch of Herbalife supplements that Ange had been plugging all day. I was ready to go! The first of the two was great, my thumb pain was bearable and I could now use it at will. So, as the lap went on, the better I felt and the quicker I decided to go, and I finished at just over 38 minutes feeling on top of the world. All was going pretty well on the second until I chased one of those damn women who had been passing me the whole time (bloody six woman teams!), and then I basically bonked and felt like total crap - turning the legs over became a real chore. I came in at 42 minutes and pretty much collapsed. I think I had run out of energy, so it was a case of stockpiling all the high carb food I could muster before the next set with enough time to allow me to digest it.<br /><br /><img src="http://tk.files.storage.msn.com/x1ppfI_5B2bbg43diyuW4FfzL4MWVGqT1gJrWd3omMqsGhMWMdesPGzgBr0PdvLxhihW6eimdF_3CGbX1VRMZF6h54DXBEuUxDmK9U8F8kicW6tJQKOAQKKi_A2K0JzNw6BJqiM37C0jBY" border="0" /><br /><br />Again, Fabian completed his two laps and I was up again. I was feeling a bit better, although still suffering the effects of the previous laps. The next two were largely uneventful and hurt more than the others, although I did manage to sprint out the last couple of minutes as I knew there was not enough time for me to complete another lap. The times were 45 and 42 minutes respectively. Fabian then completed one final lap and the 24 hours were up. Our team, “insert witty team name here” – yes, that is the team name - had completed 23 laps (Fabian 12 and me 11). We had finished a respectable <a href="http://www.twowheelpromotions.com.au/files/06_24hr-results.pdf">5th</a> in our category (2 person: male).<br /><br />To put our effort into perspective, the leading solo male, <a href="http://www.mtbdirt.com.au/modules/coppermine/albums/userpics/10171/normal_jofly-12.jpg">Andrew Bell</a>, completed 40 laps (400 kms) by himself – unbelievable. He was so keen to do the 40 laps that he completed his 39th lap in 32 minutes so he would have enough time to go out and do one more – amazing. Also, in between circulating he entered the “track stand” competition – is this dude Superman?<br /><br /><img src="http://tk.files.storage.msn.com/x1ppfI_5B2bbg43diyuW4FfzEfwQY9jgvuxW_0h9BPd6_gn_8EUw1nmeG2ex2H49uk6aFSANSk240aApsMem7lrGreSqGl08a-N_OgpTWqSa74KzEC-_NiZdBg75r3JJO0uanrIAZ56rYM" border="0" /><br /><br />In summary, I found the event exceedingly enjoyable, and overall more fun than the Mont 24 in Canberra (it has just gotten too big, and I certainly didn’t miss the -5 degrees Celsius overnight). Would I do it again, you bet ya. Time to step up the training – ah, I love this sport. As an aside, having a full suspension bike was the trick – the Yeti 575 was such a sweet ride. Finally, I think <a href="http://www.twowheelpromotions.com.au/">Two Wheel Promotions</a> should be congratulated for their efforts in organizing the event and my wife did a wonderful job as support crew (thanks Ange).chullybunhttp://www.blogger.com/profile/03074086459088907079noreply@blogger.com11tag:blogger.com,1999:blog-9420706.post-1145333452349125312006-04-18T14:05:00.000+10:002006-04-18T14:10:52.366+10:00Beware the rip…This Easter, the family went on a camping trip to the North Shore, which is just north of Noosa in Queensland. Some friends of ours own some land out there just on the beach. It was the hard-core style camping, no mod-cons, no showers or toilet blocks - grab a spade and dig a hole ;-) The beach was great apart from all the dickhead four wheel drivers who drive along the beach as if it is a motorway (some four year was hit by one further down the beach). We stayed in tents with about five other families, cooked on the camp fire, went surfing, rode bikes, played soccer – it was awesome.<br /><br />The water was amazingly warm and we spent a lot of time swimming and playing around in the waves. At one point I was talking to some others in the surf and when I turned Caleb, our youngest who is six, had drifted down the beach and was caught in a rip and was slowly being dragged out to sea. His older brother who is eight was trying to swim after him to help but was also struggling. So I ended up having to swim over and pull Kyle back to make sure he was ok, then swim out to Caleb. It was just awful looking at Caleb’s face, as he had this look of total fear and helplessness as he was floating out – he did a remarkable job of keeping his head above the water (thank goodness for all those swimming lessons). I managed to swim out and grab hold of him and swim back to a point where I could stand and some others helped us in. In all, it was pretty darn scary and a reminder of how quickly things can go wrong.<br /><br />Lesson learned: Make sure you keep an eye on the kids at all times, and make sure you check for rips ahead of times!chullybunhttp://www.blogger.com/profile/03074086459088907079noreply@blogger.com0tag:blogger.com,1999:blog-9420706.post-1143615092251126352006-03-29T16:43:00.000+10:002006-03-29T16:51:32.283+10:00Custom Entity Classes...I have been a proponent of Custom Entity Classes over DataSets for some time; and fully acknowledge that the latter has value in certain situations, specifically prototyping or basic two tiered applications. Where as the former, offers greater flexibility for some extra effort that really pays dividends within an Enterprise solution.<br /><br />The project that I am currently architecting/managing has implemented this style of Entity; this was a foundational decision and certainly a departure from the way the customer currently chooses DataSets. These have worked out extremely well within our solution and I hope they (Customer) will look at this as an alternative in the future for other future applications.<br /><br />The real benefit I see is that by utilising OO concepts we can realise the benefits of encapsulation and inheritance with our Entities, and we have a clean decoupling from the database (there is in fact no reference to the DB within these whatsoever – data management classes were created for this that lived in an appropriate logical data layer tied directly to the DAL). For a number of our Entities, code generation was used which sped up the creation and also improved the consistency of the code. Typed collections were created that made the experience of using these Entities very natural. Then of course, other Entity specific methods can and were added to these Entities/Collections that offer there own value-add function.<br /><br />So when I discovered this old <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/CustEntCls.asp">article</a> last night I was very pleased to see this very approach promoted. This is an excellent article that articulates the benefits in an easy to read manner, with clear examples, and is an added resource I can now use to help convince future Customers of the benefits of Entities.chullybunhttp://www.blogger.com/profile/03074086459088907079noreply@blogger.com0tag:blogger.com,1999:blog-9420706.post-1143416583424894532006-03-27T09:36:00.000+10:002006-03-27T09:43:03.426+10:00My experiences with VB.NET...For the past four months I been involved in a project where we exclusively developed in VB.NET. This is the most time I have ever spent in this language, and in the end, I would have to say my overall experience was decidedly average.<br /><br />To me C# just seems more natural, it is somewhat simpler and certainly a lot less verbose. There are some really annoying things with VB.NET, the following being my highlights (main peeves):<br /><br /><ul><li>And vs AndAlso and Or vs OrElse – why would you ever want the former, apart from bitwise, yet that is not the default?</li><li>DirectCast(value, type) – versus just casting (type)value; simpler, more obvious.</li><li>Dim – how annoying; it is not even consistent as it is not required for class declarations.</li><li>Public readonly property Name as Type – that’s a mouthful, surely the compiler could determine by looking at whether both a get and set have been defined.</li><li>End – ending everything, bring on the {}.</li><li>Auto formatting – sometimes I want my code to look one way, but “no” the IDE comes along and makes it look another</li><li>Visual basic .NET compiler system error &hc0000005& after a VSS Get Latest - nearly every friggin day! Close VS.NET, cross your fingers, restart and hope for the best – works again first time about 50% of the time.</li><li>VB.NET 1.1 XML comments – why was this missing – hello? Thank you VBCommenter from GotDotNet.</li><li>Nothing vs Null – couldn’t we keep it the same between the languages; so if a parameter is nothing an ArgumentNullException is thrown – huh?</li></ul>I am sure there are more, but that is all I could come up with for now.chullybunhttp://www.blogger.com/profile/03074086459088907079noreply@blogger.com3tag:blogger.com,1999:blog-9420706.post-1143416183313891342006-03-27T09:30:00.000+10:002006-03-27T09:36:23.330+10:00New DbException in .NET 2.0...There was some talk at work the other day about using Enterprise Library, specifically the Data Access stuff that enabled database agnostic code. There is an issue with this in .NET 1.0 and 1.1 in that not all of the database .NET Types support this capability. Here is an excerpt of my response:<br /><blockquote>My point was more targeted at the SqlException versus the OracleException type, more specifically where you want to use the likes of the database error code to perform some sort of conditional business logic. The SqlCommand and SqlDataReader et al, implement the likes of IDbCommand and IDataReader so these can be cast back and generic database agnostic code created – great. The likes of SqlException and OracleException inherit from Exception so you are sort of stuffed from that perspective, there is no consistent means to access this database information other that sticking to the known type – not so great.<br /><br />There is however a happy ending to this story, this has been cleaned up in .NET 2.0. The SqlException and OracleException now both inherit from DbException so this will be possible in the future.<br /></blockquote>chullybunhttp://www.blogger.com/profile/03074086459088907079noreply@blogger.com0tag:blogger.com,1999:blog-9420706.post-1140840223228637132006-02-25T13:55:00.000+10:002006-02-25T14:03:43.256+10:00User interface technology options...Following on from a previous post, <a href="http://chullybun.blogspot.com/2006/01/browser-vs-smart-client.html">Browser vs SmartClient</a>, I thought I would also point to this post from <a href="http://blogs.msdn.com/tims/archive/2006/02/23/538189.aspx">Tim Sneath</a> who does a good job of rounding up the various technologies. Partial extract included as follows:<br /><br /><blockquote><p><strong>Last question. Windows Forms, ASP.NET/Atlas, DirectX, WPF, Win32 - that's five UI technologies to choose between. How do I decide?</strong></p><p>Really the variety of choice isn't such a bad thing - it enables you to pick the best technology for the job rather than having to pick a lowest common denominator that tries to serve all masters and ends up serving none.</p><ul><li>Building a forms-based application and looking for a mature technology to use with good tools and component support? Check out Windows Forms - it's got everything you'll need to turn out a well-designed, service-orientated client application.</li><li>Is platform ubiquity or wireless mobile device support the high order bit? ASP.NET with or without the Atlas extensions is a good technology to choose. (Don't forget about the .NET Compact Framework for rich mobile devices, of course.)</li><li>Want to build a first-person shooter game, a CAD/CAM workstation application or something similar where polygon count is the major technical requirement? DirectX is a natural choice - don't forget that the .NET managed APIs for DirectX are maturing rapidly and starting to be worthy of serious consideration.</li><li>Looking for complex data visualization, superb text flow content rendering or dynamic interactive experiences? WPF should probably be your top choice. I'll be posting in future entries about a few sweet spots that early adopter customers have been exploiting to great business gain.</li><li>Lastly, don't let all this talk of managed code convince you that Win32 is anything other than a vibrant general-purpose way to build applications. There are thousands of new API functions in Windows Vista for Win32 developers to do everything from integrating with the Aero Glass theme to implementing live preview icons and ink-enabled applications. Don't write off Win32, or let others convince you that it's no longer core to Microsoft. It's the platform of choice for tens of thousands of applications. Long may it continue!<br /></li></ul></blockquote>chullybunhttp://www.blogger.com/profile/03074086459088907079noreply@blogger.com0tag:blogger.com,1999:blog-9420706.post-1140493679506854502006-02-21T13:35:00.000+10:002006-02-21T14:14:06.520+10:00SMS Emulation...A <a href="http://blogs.msdn.com/windowsmobile/archive/2004/04/27/121497.aspx">tip</a> provided to me today by none other than Jarrod “BizTalk will deliver my next baby” Jones - the ability to send an SMS to yourself within the Smartphone emulator – very handy!<br /><br />Update: It seems there are more <a href="http://blogs.msdn.com/barrybo/archive/2005/09/17/469702.aspx">magic</a> numbers.chullybunhttp://www.blogger.com/profile/03074086459088907079noreply@blogger.com0tag:blogger.com,1999:blog-9420706.post-1139540810293674172006-02-10T13:04:00.000+10:002006-02-10T13:06:50.313+10:00Automated Unit Testing; it works…I shouldn’t sound so surprised! Previously I have been a casual proponent of Unit Testing in an automated sense, in that I knew it was a good idea, but often did not implement as thoroughly as I should. I was fan, but not quite a convert – this has since changed.<br /><br />On the current project I am managing I decided that automated Unit Testing (using NUnit) was to be a first class deliverable within the development phase due to the complexity of the solution. I have since personally discovered that bugs are often discovered during the construction of the Unit Tests due to extra thought involved in attempting to test the various logic paths, so these are often corrected before the tests are even executed or constructed – nice outcome! Then of course, there is the constant execution of the tests to verify that new code changes have not since broken existing functions – I am pleasantly surprised at the number of times little errors have been picked up quickly and early – very nice :-)<br /><br />I am now a *real* believer!chullybunhttp://www.blogger.com/profile/03074086459088907079noreply@blogger.com0tag:blogger.com,1999:blog-9420706.post-1137992026624831632006-01-23T14:51:00.000+10:002006-01-23T14:53:46.640+10:000x24 - enough said...Well, yesterday marked the passing of yet <a href="http://chullybun.blogspot.com/2005/01/0x23-tomorrow.html">another</a> year :-(chullybunhttp://www.blogger.com/profile/03074086459088907079noreply@blogger.com0tag:blogger.com,1999:blog-9420706.post-1137203927594256452006-01-14T11:44:00.000+10:002006-01-14T12:20:33.560+10:00Browser vs Smart Client...Yesterday, I got into a discussion with a number of my esteemed colleagues at work about my disdain for the likes of AJAX and Web based applications. For the record, I do not have a problem with the technologies per se, more with the way in which they are used and abused. In essence I believe there is a time and place for each type of technology.<br /><br /><blockquote>Just because you can do it doesn’t mean you should!</blockquote><br /><strong>Browser</strong><br /><br />I think that there is a place for browser based Web Applications – specifically where reach is of the up most importance. This is the obvious choice for the likes of organizational <a href="http://www.yeticycles.com/">home pages</a>, <a href="http://news.com.com/">e-zines</a>, <a href="http://www.google.com.au/">search engines</a>, <a href="http://blogs.msdn.com/jensenh/">blogs</a>, <a href="http://www.ebay.com.au/">ebay</a>, or <a href="http://www.amazon.com/">amazon</a> for example.<br /><br />The challenge with these applications can be the browsers themselves, in that they all do not support the same Web standards, and as such there is an additional cost associated with the development depending on the features being targeted for often a small percentage of users. What version of IE, what about Firefox or Opera, etc? Sometimes I believe an organization is better off ignoring a small percentage of users to focus on the majority to provide them with the best possible experience, than provide an average experience to all.<br /><br />My real issue with browser applications is where the applications are targeted behind the corporate firewall. These organizations typically have an SOE rolled out, so hardware and software specifications and versions are controlled and understood. Where these applications have a high user count and are highly interactive, then they are not best served with a browser application – an improved user experience can be provided by a Smart Client.<br /><br />I know a lot of organizations in the past looked at Web applications as a way to solve deployment issues, but with <a href="http://msdn.microsoft.com/smartclient/understanding/windowsforms/2.0/features/clickonce.aspx">Click Once</a> and other related technologies for rolling out updates this point is now largely redundant.<br /><br /><blockquote>Reach and application context should be the driver!</blockquote><br /><strong>AJAX</strong><br /><br />Don’t get me wrong, I think this is cool, and it certainly solves the constant post-backs for updating lists for example, and it can greatly improve the user experience. (I like some of the stuff on <a href="http://www.live.com/">Windows Live</a> for example.)<br /><br />But I fear it could really be abused, where all sorts of little pop-up style windows with right-mouse context menu options are going to scare off the mom & pop user – i.e. the average consumer.<br /><br /><blockquote>Use wisely!</blockquote><br /><strong>Smart Client</strong><br /><br />Where an application has significant user interactions and reach is confined to a specific operating system then a Smart Client application is the best choice. I think OWA is fantastic for checking emails etc. when on the road, but Outlook <a href="http://www.microsoft.com/exchange/evaluation/OutlookVowa_1.mspx">kicks its ass</a> for improved functionality and experience – there is a time and place for each (context)!<br /><br />Smart Client enables us to utilize the power on the users machine, to effectively integrate with their day to day tools such as <a href="http://msdn.microsoft.com/office/understanding/officesystem/gettingstarted/default.aspx?pull=/library/en-us/dno2k3ta/html/office2003overviewdevelopertoolsprograms.asp">Office</a>. Advanced UI controls and application integration can more easily be achieved with <a href="http://www.windowsforms.net/">Windows Forms</a> than ASP.NET controls, state management and caching is simpler as it no longer needs to be managed directly on the server. With <a href="http://msdn.microsoft.com/webservices/webservices/understanding/default.aspx">Web Services</a>, <a href="http://msdn.microsoft.com/webservices/webservices/building/wse/default.aspx">WSE</a> and the <a href="http://msdn.microsoft.com/webservices/indigo/default.aspx">WCF</a> enabler we now also have an effective means of communicating between the client and server. With <a href="http://msdn.microsoft.com/vstudio/express/sql/">SQL Express</a> we have the ability to effectively cache data on the local device.<br /><br />The story for Smart Client applications is continuing to improve, with <a href="http://www.windowsforms.net/FAQs/default.aspx?PageID=1&CategoryID=24&tabindex=2">Click Once</a>, and <a href="http://download.microsoft.com/download/7/c/5/7c51c83b-d873-40ce-9405-7f792927eeca/Why%20WPF%20Will%20Dominate%20Rich%20Client%20Development.pdf">WPF</a> on its way. Deployment is no longer an issue, security is not a problem as the applications run in a <a href="http://www.windowsforms.net/FAQs/default.aspx?PageID=2&ItemID=3&CategoryID=24&tabindex=2">security sandbox</a>, and they can also be set up to run within the <a href="http://www.windowsforms.net/FAQs/default.aspx?PageID=2&ItemID=30&CategoryID=24&tabindex=2">browser</a>. It is with WPF that these applications will really match and surpass the advanced user interface style introduced by the browser providing a rich and immersive experience for users.<br /><br />In the future I think we will see the likes of the standard Amazon web pages, with an enriched shopping experience enabled by WPF - as first eluded to back at <a href="http://www.microsoft.com/presspass/press/2003/oct03/10-27PDC03NextWavePR.mspx">PDC03</a>.<br /><br /><blockquote>Take advantage of the power and flexibility of the user's machine!</blockquote><br /><strong>Conclusion</strong><br /><br />I think it is now time for organizations and technologists to reconsider their choice of application enabling technology, and to look to choose the <em>appropriate</em> technology that <em>best serves</em> the <em>organization</em> and its <em>users</em>.<br /><br />Finally, why invest in these great PCs and Laptops and not really take advantage of their inherent power?chullybunhttp://www.blogger.com/profile/03074086459088907079noreply@blogger.com5