I downloaded the correct version of Team Foundation Server Beta 3 Refresh overnight and installed it in about 40 minutes this morning - client and server - and it seems to be working very sweetly so far. Here's what I've found to make the install go smoothly (after 7 unsmooth attempts!). This is for a single server install.
- Make sure you have the correct versions of everything - RTM SQL Standard, RTM VS Team Suite, Sharepoint with SP 2 and TFS Beta 3 REFRESH.
- Read through the TFS Install Guide as thoroughly as you can.
- Reformat your server, install Windows 2003 Server with SP1, IIS etc as per the TFS Install guide.
- Make sure your server is joined to the domain and the network configuration is correct (my Compaq DL 380 has dual Nic with separate IP's so I had to create a "Team" using the HP tool and set this as a fixed IP so that Windows Update would work (we block this normally)).
- Do all the windows updates you can - 18 critical updates for me.
- Create the 3 required accounts and add them to the machines Administrator group and add your own domain account to this group too (you can remove it later if you have to).
- Login to the server as TFS Setup.
- Install SQL, Sharepoint and TFS EXACTLY as the Install Guide says - don't trust your memory, read and follow the instructions a step at a time.
The only variation I made to the install was to change the data directories for SQL & Analysis Servers. Oh yeah, I also installed the SQL Workstation Tools so I could setup backup and so other maintenance (and play a little with SQL 2005).
I'm sure you can get this to work without having to reformat the server but it's a lot easier to start over when you know you can delete stuff without worry.
For the client, the first part is to get VS.Net working correctly. If you have had Beta 2 or RC on your workstation then you should make sure you uninstall this correctly. I didn't and had to do it the hard way. Read this! Once you have it working then install the Team Explorer from the TFS install. This is a separate install now rather than being included in Team Suite.
Because you added yourself to the servers admin group, you should be able to get into your system and configure security and groups, create projects etc.
For user permissions, I'm going to do everything in Active Directory. I'm creating a structure like this:
- OU: Our Team System
- OU: Service Accounts
- TFSService
- TFSSetup
- TFSReports
- Group: TS Administrators
- MyLogin
- MyBossesLogin
- OurITPeople Group
- Group: TS Users
- Group: All Developers Group
- OU: TS Projects
- OU: Some Big Project
- Group: Some Big Project Administrators
- MyLogin
- MyBossesLogin
- etc
- Group: Some Big Project Contributors
- Group: Some Big Project Readers
Well, that's the theory at this stage. We control our AD pretty tightly here so without IT delegating me some rights to manage the OU it's going to be a pain but hopefully they'll allow this.
Now on with exploring the changes...
I think the source of all the problems with my Team Foundation Server install stem from the fact that I was using Beta 3, not Beta 3 Refresh. I'm very red faced - but in my defence, I must say that the download option from TAP was not that obivous - it is now, but when I downloaded it the only clue was a folder called "vstf.b3.rtm". Anyways, I'm downloading the correct version now so by this time tommorow it should be working. .. (famous last words?).
On the up side, I'm getting very good at installing SQL Server!
Class designer won't load in Visual Studio
I spent last
week getting trained on Software Testing. The course was run by Software
Education and led by Don Mills. I haven't yet decided if I liked this
course or not. Don certainly knows the subject well - he has an
amazing memory for dates, names, authors, standards codes etc. I
picked up many useful techniques, tips and facts, e.g:
- Inspection provides
the biggest return of all other testing and QC techniques
- Decision Tables are a great tool for creating specifications
as well as tests.
- Test early, test
often
- If you don't know
how to test it then don't start building it
- 70% of software
faults are the result of poor specification - only 7% are genuine code
defects.
- Half of all
software project are delivered unfinished.
However, the course
syllabus is very centered around the standards and passing the qualification
exam and I would have preferred more practical examples.
The real problem
with testing is the lack of management commitment to doing it. My current
employer is much more aware of the need for this - they sent me on the course
after all - but previous employers have been unwilling or unaware of how
important proper testing is and my feeling is that this is a very common
situation for most New Zealand companies
doing software development. Given the clear cost savings that can be
made by engaging in proper testing practices and the appalling rate of failure
of software projects, this is a real concern for the future of software
development in New Zealand.
So what as
programmers can we do to make this situation
better?
If your an MSDN
Subscriber you can now download Visual Studio 2005 and SQL Server 2005
RTM.
Expect a
looooonnnnnnngggggg download!
I've been planning
an upgrade to the NZ .Net site for the end of the year so I
thought I should take a look at DotNetNuke 3 again. The last time I looked
was about, oh, 5 months ago. It's now on version 3.1.1 and wow! It
has progressed a lot in that time.
Installation
The installation
doesn't appear to have altered very much. As usual, I tried a complex
install and failed, then did the basic install - when will I ever learn! I
was trying to get the ASP.Net membership database installed separately from DNN
but the DNN installer runs all the scripts in the DNN database. I'm sure I
can run the scripts manually and get this working.
I want to do this so
I can test the integration with Community Server 1.2 when it's available but
with some of the new modules now in DNN, I'm not sure how much of CS we will
use.
Skins
There's a couple of
new skins in the default package, but nothing much to write home about. I
(or someone else) will still need to create a new skin.
Blogs
NewBlog is the new
default blog module for DNN but you have to download this (and all other non
core modules) separately. I suppose this makes the installation
simpler.
NewBlog has most of
the standard features you'd expect. You can create as many blogs as you like and
categories them. You can create posts online but I'm not sure if
there is an API for posting.
Forums
The new forum module
is a vast improvement over the old discussions module. This looks and
feels similar to CS forums, but without a lot of the advanced features.
It's more than adequate for most purposes though.
The forums in CS
still look a better option, mainly becuase of the new listserv functionality
coming with CS 1.2, but also because it's a more focused application that will
most likely handle the traffic better. But, skinning CS is a real
pain.
That's as far as
I've progressed today. My next step is to try and separate the ASP Membership schema
so I can test the CS integration. In theory, it might be possible to
integrate with CS 1.1 and if I'm feeling ambitious then I'll give that a
spin but I suspect I'll need to wait a couple of weeks for CS
1.2.
To upgrade the NZ
.Net site I'll need to figure out what to do with user accounts and permissions
- I'm not sure I can upgrade these from DNN 212. A manual import of these may be
possible. And then there's all the existing content. The last time I
tried an automatic upgrade to DNN 3 from DNN 212 it was less than
useful.
There's a couple of
custom modules in the existing site and some 3rd party controls. I have
XMod for DNN 3 so that covers a lot of the customisation, but there are a few
things that will probably get thrown out and replaced with standard
modules.
I thought yesterday
was going to be boring, but, OMG, was I wrong! We had a whole day
looking at upcoming and possible future features for Visual Studio - Orcas and
beyond. Basically, some of the stuff they are thinking about for the next
5 years and more. We sat through scenario demonstrations and voted on the various
elements.
Unfortunately, I can't tell you anything
interesting about any of these new features so this is just a big teaser really,
but I can say that life as a programmer over the next few years is likely to
change radically.
The really
impressive part of this day that I can talk about was the openness and trust
shown to us by Microsoft. This is the first time they have solicited
feedback at such an early stage in the design process from non-employees.
They did have some worries about doing this of course - i.e., would we knock
down something they thought was really cool - but overall, I couldn't find
anything that was bad or wrong. There were a few things I didn't care
about, but I'm sure others did.
We did have a look
at some less secret tools and technologies too. For example
Atlas. Tim: I'm sorry for not paying more attention to your Ajax
blogverstation. I can now see how cool Ajax/Atlas will be. My
impression is that I will finally be able to write web applications that behave
as well as windows applications. If you didn't know, you can get Atlas now
and it will be released soon (?) after VS2005.
One more thing,
Workflow is EVERYWHERE. Get to know it now. Start thinking about how
you can use it in ALL your applications. Download the beta from http://msdn.microsoft.om/workflow.
Get Paul's book and
read his blog for more links.
I'm certain we will be seeing some demos of this in NZ soon and probably a user
group session or two.
One more morning of
sessions and then a barbecue and the summit is over. Half a day for
shopping and then I'm on my way home. Hopefully, no more long trips this
year!
Well, here I am, schluming it in Seattle for the MVP Global Summit with 1499 other MVP's from around the globe, including a few from NZ. Yesterday was registration and the regional dinners. Today was the first real day of stuff, which started with the executive presentations by Steve Balmer (CEO), Jim Alchin (VP of Platforms) and others.
I hadn't seen Steve Balmer present (in person) before so it was a treat for me. He lived up to my expectations. There was a good Q&A session at the end of his usual lively speech, and he fielded a few tough questions and gave good answers. There was also the obligatory funny video featuring a couple of dweebs - I found it embarrassing because I think Bill G can dance better than me. Oh well, better stick to my day job.
Jim Alchin provided a great demo of Vista, which I also hadn't seen since the 1st preview. It was awesome. I may try installing it on a spare PC I have at home (Nic - found a use for it!).
In the afternoon we split into our product groups and I saw YABPOTS (Yet another bloody demonstration of Team System) plus another funny video. And then Don Box and Dharma Shukla re-presented their PDC session on WinFx, including the W*F stuff - Windows Presentation/Communication/Workflow Foundations. Don Box is hilarious and it was a great session.
Prediction: WinFx (and the Workflow Foundation in particular) is going to fundamentally change the way you write applications. But, you don't need to worry about it for a little while yet.
There was a few announcements of new services and products, but NDA prevents me giving any details. However, I think it's ok to say that Microsoft are listening very closely to feedback from the community - via things like the Product Feedback site and MVP's - and you will soon see some great innovations that will improve your life as a developer. If you have a message for Microsoft, use your MVP's to get it through - that's what we are here for!
My hotel is great, the people are great, Seattle is lovely (although weather looks like its going to pack up) and being in the company of so many "famous" people is slightly daunting.
Overall, I'd say the 1st day and a half has been pretty good. Tomorrow also looks interesting, with a couple more sessions and another party. It's tough, but I'll struggle through :}
I'm in Frankfurt
today. I was walking around town, wondering where to go and found myself
following a large group of people all heading in the same direction. I
ended up at the IAA (?) Auto show.
All I can say is
wow! Iv'e never done one of these before but always wanted to.
Darryl/Sean/Nigel, if your listening - the next TechEd should be more like a car
show! Especially the girls everywhere :}
Anyway, I found
several cars that would do nicely as my next car, but I think this is the best
one:
The first person to
tell me what it is wins it! Yeah you wish.
There was also lots
of cars like these ones:
and:
and some weird and
wonderful stuff:
I'm off for a trip
today. First stop, a week in Johannesburg to install the first cut of our
.Net 2.0 system for the customer, and to do some training. Then an
overnight stopover in Frankfurt and 5 nights in Seattle where I'll be attending
the MVP Global Summit.
The system I'm
delivering to our South African equivalent, ATNS, is a fairly standard 3
tier app, using SQL 2K, a web service wrapper around the data tier and a winform
front end. The system is not quite complete yet, but this will be our
first roll-out of a .Net application. I'm not expecting any nasty surprises, but
just in case, I'm traveling with 2 notebooks and copies of the source code and
binaries on each and CD, plus all the tools I might ever need - MSDN disks,
RedGate tools, VS05 beta 2 and August CTP, 12 pairs of socks etc etc. On
the way over I need to complete the training documentation - it's a 20 hour
flight via Singapore so as long as I can power either of the notebooks on the
flight, I should be ok.
I wasn't so sure
about the MVP Summit. I first thought this might be a bit of a talk-fest
but given some of the recent announcements at PDC, I now think it will actually
be very interesting. Paul Andrew has old me he is presenting a session,
not doubt on WWF and there's a bunch of Aussies and other Kiwis also
attending. I've also arranged to meet with my TAP contact on Team System
product group. I don't think I'll be bored!
Now all I need is
a connection so I can update my blog. The AirNZ Lounge at
Christchurch doesn't have any visible connections - wired or otherwise -so I
suspect I'll have to update in Singapore.
Here's a small review of some tools I've been using lately for SQL Server work.
RedGate SQL Bundle Developer Addition
RedGate produce a number of must have tool for any serious SQL Server developer or DBA. These come seperately or in bundles. I purchased the Developer bundle. With this you get SQL Compare, SQL Data Compare, SQL Packager, DTS Compare and the API to use these tools programatically.
SQL Compare
For my current project I have 2 copies of the database, 1 for day to day development and the other for testers. When I release a new version for testing, the test database needs to be updated but the testers get snarky if I drop and replace it as they lose all there lovely test data. This is where SQL Compare comes in.
SQL Compare lets you select 2 databases and compare the schema and other objects. After you select the relevant databases it compares the 2 versions and displays the differences.
With this window you can see the differences for each object and even the scripts necessary to synchronise from one to the other. Object types include tables, procs, functions, users & roles. You can synchronise all selected objects directly to the database or via Query Analyser.
SQL Compare works very well in most cases but I did have one problem with a table that I added a non-null column to. The generated update script was unable to add this column to the destination table as there was already existing records. It was easy enough to fix this problem myself but I would have hoped it could ask me for a default value for the column.
Overall, SQL Compare is a tool I use several times a week. If I was a DBA or specialist SQL developer I imagine I'd be using it much more. My advice is if you do any serious SQL Server work then you MUST have this.
SQL Data Compare
SQL Data Compare performs a similar job as SQL Compare except on table data. After selecting the 2 databases, you select the tables and columns to compare. You can also select the comparison key to use.
After comparison you can view the record differences and scipts.
You can then synchronise the selected tables directoy to the database or to a script.
I use this tool to make sure our deployed database it setup correctly but it's also great for debugging data issues. If I was a DBA or had to manage a large application database then I'm sure I'd use it a lot more. Either way, this is another MUST have tool.
SQL Packager
SQL Packager is used to create an installation program for your database. It generates a .Net executable or C# project that will create a new database or upgrade an existing one. I'm more than happy with the executable it spits out as we don't need to create a shrink wrapped setup, so I haven't looked at the code it generates. The executable lets you select the database server and other creation options for the database, but the UI is a little basic and bland. However, this is much more preferable than using a script or creating your own installer from scratch.
Summary
I haven't had a chance to look at the DTS Compare or the API yet and it's not likely I ever will. Overall, I'd say that this is a great set of tools for anyone using SQL Server for application developement or support. If any part of your job entails DBA type work then you simply MUST have them.
The price of the tools seems a little expensive to me but I suspect I will be getting lots of use from it. The Developer Bundle cost us $US1238 including 12 months support and upgrades. You can purchase the normal bundle minus SQL Packager and the API or other bundles or individual tools.
The secret project that Paul Andrew has been working on is Windows Workflow Foundation. It was announced at PDC yesturday. This could be a very cool technology - I will certainly be using it for a few applications. I just wish it was not so far away from full release.
I created my own worklow engine a couple of times and on the face of it I wasn't too far off what MS have done. However I didn't have a team of hundreds so there was no nice designers or languages behind it.
Looks like Paul is busy these days with something new and exciting. Checkout his post on PDC & some upcoming MSDN Web Casts. This also explains Chris's hectic schedule over the next month. I sense an announcement or two coming out of PDC. :}
It's great to see some local talent on a global platform. Show your support and watch the web casts (live at 3am probably!)
I have a large dataset that is exposed to the client via a web service. At the server end I have extended the dataset to include methods that fill it via TableAdapters, e.g:
namespace MyWebService.MyDataSet {
public partial class MyDataSet : DataSet {
public void FillEmployees() {
EmployeeTableAdapter eta = new EmployeeTableAdapter();
eta.Fill(this.Employee);
}
}
}
On the client side I have extended the proxy version of the dataset to add methods to rows and tables to manipulated data contained therein.
namespace MyProxy.MyDataSet {
public partial class MyDataSet : DataSet {
public List<MyDataSet.SomeRow> GetListOfEmployeesByName(string name) {
// blah
}
}
}
I have a few methods that I need at the client and server end. It would be nice to have this code in a shared library and just wrap this in the dataset partial class, e.g:
// ws version
using MyDataSet.Shared;
namespace MyWebService.MyDataSet {
public partial class MyDataSet : DataSet {
public List<MyDataSet.SomeRow> GetListOfEmployeesByName(string name) {
MyDataSetHelper helper = new MyDataSetHelper();
return helper.GetListOfEmployeesByName(this, name);
} }
}
// proxy version
using MyDataSet.Shared;
namespace MyProxy.MyDataSet {
public partial class MyDataSet : DataSet {
public List<MyDataSet.SomeRow> GetListOfEmployeesByName(string name) {
MyDataSetHelper helper = new MyDataSetHelper();
return helper.GetListOfEmployeesByName(this, name);
}
}
}
// shared code
namespace MyDataSet.Shared {
public class MyDataSetHelper {
public List<MyDataSet.SomeRow> GetListOfEmployeesByName(MyDataSet ds, string name) {
// blah
}
}
}
But this wont work because of the the different name spaces. What I really need it a generic helper:
// shared code
namespace MyDataSet.Shared {
public class MyDataSetHelper {
public List<R> GetListOfEmployeesByName<T,R>(T ds, string name) {
// blah
}
}
}
And I use this in the proxy and server code thus:
// ws version
using MyDataSet.Shared;
namespace MyWebService.MyDataSet {
public partial class MyDataSet : DataSet {
public List<MyDataSet.SomeRow> GetListOfEmployeesByName(string name) {
MyDataSetHelper helper = new MyDataSetHelper();
return MyDataSetHelper.GetListOfEmployeesByName<MyDataSet, MyDataSet.SomeRow>(this, name);
} }
}
// proxy version
using MyDataSet.Shared;
namespace MyProxy.MyDataSet {
public partial class MyDataSet : DataSet {
public List<MyDataSet.SomeRow> GetListOfEmployeesByName(string name) {
return MyDataSetHelper.GetListOfEmployeesByName<MyDataSet, MyDataSet.SomeRow>(this, name); }
}
}
In some simple scenarios this might actually work, but if MyDataSetHelper.GetListOfEmployeesByName() needs to manipulate MyDataSet properties then I need to have a constraint on the generic so it knows what members it has, e.g:
namespace MyDataSet.Shared {
public class MyDataSetHelper {
public List<R> GetListOfEmployeesByName<T,R>(T ds, string name) where T : MyDataSet {
// blah
}
}
}
But then we are screwed again because MyDataSet is in 2 different namespace and you can only have a constraint on a single base class. I could however set the constraint on DataSet, e.g:
namespace MyDataSet.Shared {
public class MyDataSetHelper {
public List<R> GetListOfEmployeesByName<T,R>(T ds, string name) where T : DataSet {
// blah
}
}
}
And then I'd have to use untyped methods on the dataset within the helper method and I wouldn't be able to use typed methods.
So, basically, the only solution is to include all the methods on the server dataset and create my own proxy to used a shared library where this is implemented.
Or maybe you have another solution? Or maybe I've just confused you more than I confused myself?
I found and logged a bug with the new WebDev.WebServer (Cassini) in VS05. I even inlcuded a simple repro for the issue. However, it looks like MS have shut up shop for fixing new issues and I guess this is not as important as other things - like shipping. I should have logged it earlier.
Basically the problem is that it stops responding after 30 seconds of inactivity. Has anyone else got the same issue and found a workaround - other than switching back to IIS?
Day 3 was great. I got in a few good sessions and picked up a couple of useful tips plus some extra insights into some stuff I already knew about.
Sessions
Sam Spencer presented an excellent session on ASP.Net 2.0 Membership, Profiles & Roles. This is where I learned about AzMan - a priority for me to investigate now I'm back at work. I've been to a few similar sessions on this stuff now and the one thing I can say for sure, Microsoft have done a fantastic job with ASP.Net. The quantity of code you DON'T have to write is just amazing.
The next session was by Nigel Watson on System.Transaction. I've had an attempt at using the new transaction model in VS05 but foir some reason it wouldn't work. I'm not exactly sure why but I suspect it's something to do with DTC. Nigel did demonstrated that when using SQL 2K, you don't get the new LTM (Lightweight Transaction Monitor) - all transactions are automatically promoted to DTC. With SQL 05 you do get the LTM. This is a bit of a bummer. I'll see if I can get it to work easily but for my current project the old style transactions will probably be sufficient.
Derek Watson then presented on C# Internals. Again, I'd already seen this material a few times (from Dr Nigel Perry and others) so it wasn't anything surprising but I did pickup a couple of useful tidbits. 1) .Net 2.0 Fx has a StopWatch class for timing processes and 2) there has been a late change to the CLR for handling nullable types in regard to boxing - don't ask me to explain it now, I'll see if I can find a reference.
And that was it for the day. We had to bug-out early to catch a flight home so missed out on the drinkies.
Summary
Overall, I think TechEd 05 was a great success and the crew at MS did a great job. The venue was good, if a little cramped at times, the catering was excellent except at TechFest - if I ate one more mini-Mac I would have barfed.
All of the presenters I saw were very professional and knew there subjects very well. A few of the demos or slides crapped out in places, but everyone recovered very well and it didn't cause any problems.
I guess my only complaint is VS05 and Team System and SQL 05 have been coming for such a long time that a lot of the content was getting a bit tired. I see a lot of this stuff repeated so while I did pickup a few new things I shouild probably have done some sessions on stuff that was new for me, but I didn't want to get distracted from my current focus.
Will I go next year? Maybe. Every second year is usually enough but if there's something new to see, then I'll be there.
Back to work.
Here's a pic from TechFest. I took more but this is the only one that looks any good.
AzMan by peter@jonesie.net.nz
This is why you go
to TechEd.
I just did a session
on ASP.Net Roles and Membership stuff. Sam Spencer was taking about
providers for Roles and mentioned AzMan
- Authorization Manager. It turns out this has been around for a
little while now. It works on 2003 & 2000 Server and even XP and gives
you a way of storeing and managing application user roles in your own
applications.
Geeze I wish I new
about this a year ago. There's a good blog post here.
Yay! I can
post to dasBlog using email. It works really well. I can now use
Outlook to compose posts so expect images and better spelling in future
posts.
See, it
worx!
The second day of TechEd was just as good as the first - but longer. I'm going to need a brain vacation by the end of Wednesday.
Sessions
One of my favorite speakers and all-round nice guy Adam Cogan presented 15 Rules for better code. Here's a great quote from Adam:
"Code never rusts"
Which means, don't re-write for the sake of it. I should print this in a large font and stick it to my desk! This was the best session so far for me. Adam is never afraid of expressing his opinion which is quite refreshing. Some of his ideas are unconventional but actually make a lot of sense - like including menu options so customers can execute unit tests in shipped applications.
I'm definitely going to get a copy of his Code Auditor. It's like FxCop in some ways but it runs on the source code and you can look for things like correct Font usage, button size, form styles etc. [Adam - next time you want to do a session in Christchurch you can do any subject you like].
Fellow NZ.Netter Chris Auld presented an interesting session on Office Solutions. I didn't realize there were so many ways of interacting with Office and Office data files. It's quite a mess really. Hopefully things will improve with VSTO 2005. It did give me an idea on how I could re-write an application using InfoPath and a custom Task Pane - but then I'd be breaking my new "Code never rusts" mantra.
Jay Roxe presented another great session on ClickOnce deployment. He did lots of demos of the basic stuff we have all(?) seen before but he also answered lots of great questions and talked about how to extend ClickOnce using the System.Deployment namespace and Mageui.exe. I do like ClickOnce and it provides some great features over NoTouch deployment, but I'm not exactly sure how to use it when delivering applications off-site. At work, we don't create shrink wrapped solutions - they need us to install and configure - but we do need to be able to deliver updates in a way that anyone can install them. I was hoping I could do this with ClickOnce but essentially I need ClickOnce to deliver a ClickOnce deployment. Jay asked my to email the details to him which I will do once I'm back at work.
Ulrich Roxburg did a good overview of the SOA designers in Team System Architect Edition, and showed some new stuff I hadn't seen before (and I'm not talking about the 4398 error messages!). There's a new tool, Narrator, that give you an interactive view of your model. I found a MSDN Download for this, I think.
To finish the sessions for the day, I attended Nic Wise's session on Mobilising Smart Client Apps. This was a great nuts and bolts session on using a low level API (the name of which has slipped my mind) to detect network status changes and other information. I can see myself using this in normally connected desktop apps.
The Party
Normally, the idea of party with hundreds of geeks would be a frightening prospect. But throw in copious quantities of alcoholic beverages, loud music and degenerate comedians and you get a great event. This year TechFest was at the St. James theatre. I hadn't been there before and it was certainly an interesting venue, if a little cramped at times. Ewen Gilmore gave 3 routines that had me in stitches at times - he's certainly not for those that are easily offended. Then the Feelers rounded off the night. I snuck off early to bed so I could get up and blog this. I expect to see quite a few red eyes this morning.
I have a few photos from the session but for some reason I can't get the memory sticks to work in my notebook. I also noticed my wireless lan card has an interesting curve in it. Time for a service I think.
More tomorrow.
Day 1 went fairly smoothly at TechEd. A few of the sessions were jammed so had to be repeated at the end of the day - JB's SQL session in particular.
The food is excellent, the venue is ok and doesn't seem to packed. A couple of the rooms - particularly at the Crown Plaza could do with some more oxygen - especially after lunch! I noticed a few nodding heads at one session (including my own).
Keynote
Ross Peat (MS MD NZ) introduced the day and did the usual speel. He did announce a new incubator sponsorship for 100 small companies of $NZ 3.5M.
Ian McDonald and friends did a quick overview of new stuff coming soon - SQL05, VS05 yada yada.
The best thing about the keynote? It was short. Only 1 hour. I much prefer this format - no glitz or glam, just the facts.
Sessions
I had planned to attend a lot of Architecture sessions and I did the first one on Team System with Michael Leworthy on internals and configuration. Michael certainly knows his stuff - as you would hope - and the session gave me a bit more confidence to fiddle with methodology schemas. There will be a new tool available at RTM to make this easier but at the moment it's notepad.
Michael was also using a later release of VSTS than Beta 2. Some of the new stuff may be in the the last CTP (June/July?) which I'm note yet using. I particularly like the new Team Build output page. This is a big improvement over Beta 2.
I also went to the start of the second TFS session presented by Prashant Sridaran but left after 10 minutes. It was an overview of VSTS which I have seen a million times already - bad choice.
I then attended a session on Windows Communication Foundation (Indigo) with Ari Bixhorn. Ari is a great speaker and is always very popular. Indigo is something I know I will use but I've been avoiding it as much as possible as I know it will be a big distraction. However, a couple of my colleagues also attended this session and are very keen to do something with it so it looks like I'll probably make the leap and risk a few more bleeding edge wounds. For my next project...
I also did a session on ASP.Net Themes, Master Pages etc. I've seen some of this before but the demos were excellent and glued the whole thing together very well.
People
The best part of TechEd is always all the interesting people you meet. So far I've bumped into (shamless name dropping in no particular order) Alex James, Dave Dunstan, Brent Clark, Greg Low, Adam Cogan, Rod Drury (and yes, I tried the Segway), Nic Wise, Chris Auld, Kirk Jackson, Kurt Mudford, Lukas Svoboda... um, probably lots of others I can't recall right now.
Tuesday is party day so I'll try and pace myself, but don't expect a great post afterwards.
I've been trying to use different tools to post to this blog. Others have reccommended BlogJet, which I have tried on 2 machines at work (and get Access Violations or proxy problems) and my notebook.
It works fine from my notebook but I really want to be able to post images and BlogJet uses FTP to do this. Problem is, it always tries to create the directory and can't. It won't seem to use an existing directory.
Has anyone else got this working with dasBlog or can reccommend something else that works? I don't mind paying (unusual for me!)
I've upgraded to dasBlog 1.8. Wasn't too painful and it seems to be working well enough. Not exactly sure what has changed yet but it hasn't fixed one small bug I have. When I click Add Entry, I always get an error on the first click and it always works the second time.
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
|