September 2004 - Posts
Rocky raises an eyebrow at the idea some folk at MS would like to have their own nDoc tool in VS.NET. I don’t see this as a crushing open source thing, more it’s giving customers a better integrated experience. Having the tool in the box makes things simpler, more standardized, and easier to synchronize with MSDN documentation to name just a few.
Of course that doesn’t mean they have to compete, instead they could co-operate. MS did this with obfuscation for .NET, which in my opinion was actually selling its customers short. In this case the co-operation means that out of the box you only get the “community edition” and have to pay more for full obfuscation. There co-operation means that a more powerful better integration solution from MS is probably long off (please let me be wrong there <g>)
Likewise with Rational, MS has co-operated with them for years. Interestingly enough SQL reporting services sounds a new direction there.
With open Source software though, who does MS make the “deal” with? Added to that, it can’t be an OSS license that requires MS’s software to be open source also. So is OSS its own worse enemy when it comes to MS, making it difficult if not impossible for MS to integrate that into package solutions?
As for nDoc, I can understand why MS would wan to create their own solution as there are a number of major wholes in documentation and solution management that nDoc doesn’t address. Sorry, can’t say more on that yet …..
Another entry from Duncan’s blog has some tips on doing a command line compile using vbc.exe.
Another approach you can take is if you have Visual Studio on the machine, use Devenv.exe. This allows you to easily build multiple projects as defined in a solution (.sln file) It also takes advantage of the information stored in .vbproj files that list the relevant references. The syntax is incredibly simple, eg:
Devenv.exe MySolution.sln /build Release
Note how you can specify which build configuration to build (typically Debug or Release)
So, even if you are generating the code files, you might want to generate the vbproj files as well rather than the focus on the vbc command line command. That way the project can be easily opened in VS.NET as well as easily compiled from the command line.
Hopefully one day in the not too distant future they will release a vbproj pre-processor that passes the info off to vbc.exe, hence allowing simple command line compiling without the need for VS.NET on the machine
In a recent blog entry, Duncan pointed out a way to create a shell link (shortcut) using windows scripting host. If you ask me though, that is a pretty chunky approach as it means you have a COM wrapper for WSH, and WSH itself is just wrappers for the calls to the underlying system API. So, it’s layer upon layer upon layer. That’s good if it’s a toblerone, but not so good for efficient code.
A much cooler approach is to use the very nice .NET wrapper classes Mattias Sjögren provided a few years back. The wrappers and samples are written in both VB.NET and C#.
And the even better news is that in Whidbey, the COMImport attribute bug has been fixed so the work-arounds Mattias used in VB.NET such as Activator.CreateInstance won’t be needed.
In any case, it’s great code, grab it today (oh and avoid using WSH for this)
As part of MS’s new push into digital rights, ipod, online music, the development teams are starting to get in tune. Don Box let part of the new code names slip in his recent chanel 9 video. Well here, straight from the department of disinformation is the scoop. The new Microsoft Muscials.
The first implementation is DohRayMe ….
Doh – the sound MS’s security team makes
Ray – Avalon vector graphics
Me – the VB team
Far – the C++ team
So – Service Orientated has to be Indigo
La – ????
Ti – SQL Yukon
The big question of course is what is La ? Well our under cover agents have dug up what could be a bug hint. Apparently Marry Poppins said La was what comes after So. So maybe LA is the next version of service based communication after indigo. Does La stand for “latency adjusting” ? the complete abstraction of both remoting and services that is dynamically adaptable ?
Okay I read this somewhere else (sorry forget where) and then I finally sat down and listened to Don Box on Chanel9.
Talk about “SO” !! In a half hour video I think Don started his sentence with “So” 60 or 70 times !!! That’s a “So ..” every thirty seconds, and that’s not even counting the other people’s speak <bg>
I mean sure, we know,… SO == “Service Orientated”
I sometimes travel a lot, and lose track of which season is which and where. Well without doubt it’s spring here down under, and I’ll make a note here just in case the old grey matter forgets ?
August was a great month. The first two weeks we had lots of rain, over 5 inches, which is about the monthly average (eat your heart out Seattle-onians) . Then the next two weeks were way above average temperatures, absolutely beautiful days with the temp in the 20’s (Celsius) , with just a couple of days rain.
Plumcots flowered early this year, mid August, no doubt because of the warm temps. Frosts have stayed away, so damage to the early blossoms should be minimal. Early leave buds are now open. Most of the orchard is also in blossom, except the chestnuts of course <g>
This year I decided to catch up on my native plantings, and bought in 250 seedlings (see list below). Most are planted now, although I still have about 50 which need to go out this weekend. I planted them the hard way, digging bucket size holes and mixing in compost, then guarding them. The Eucalypts got milk carton tree guards instead of the plastic guards, so the old horse holding yard where I planted the Euc’s looks like the works of a mad dairy farmer trying to grow milk <g>
All the seedlings are doing really well, and most have new growth on them already. The late planting looks like it will be a success, although I dare say I will be getting weekly exercise bucketing water to them if the rain doesn’t come regularly.
So, here’s the list. Some are indigenous, most are native, and the leucadendrons and proteas, well hey, I just can’t stop myself around them <g> Oh, and if you are from California well look away now as most of these are probably classified as weeds over there.
Acacia baileyana 5
Acacia elata 5
Acacia floribunda 5
Acacia iteaphylla 5
Acacia melanoxylon 10
Acacia pravissima 5
Acacia retinodes 5
Banksia ericifolia 5
Banksia giant candles 5
Banksia marginata 5
Banksia occidentalis 10
Banksia Serrata 5
Callistemon salignus var. Roseus 5
Callistemon viminalis 5
Casuarina glauca 5
Eucalyptus aromaphloia 5
Eucalyptus bicostata 10
Eucalyptus botryoides 10
Eucalyptus globulus 10
Eucalyptus gomphocephala 10
Eucalyptus macrorhyncha 10
Eucalyptus maculata 5
Eucalyptus obliqua 10
Eucalyptus ovata 10
Eucalyptus viminalis 10
Hakea laurina 10
Hakea saligna 5
Leptospermum copper glow 5
Leptospermum petersonii 10
Leucadendron lancelot 5
leucadendron oriental blush 5
Leucadendron red countess 5
Melaleuca sp. 15
Melaleuca stypheldes 5
Protea clark's red 5
Protea coronet 5
Oh, and it’s amazing to see how easy it is to search on google for pictures of most of these plants that just ten years ago would have been difficult to find any reference to without having to go to a well stocked library in person.
A: When it’s not! <g>
I was reading Duncan’s blog, and he pointed to a discussion on shareware with .NET. Sure, Nick does present a true scenario that companies like Bank’s are not so phased about rolling out .NET. Nor should they be.
Problem with that argument is it is misleading though. That is not about shareware! It is true, but is also totally irrelevant. Sometimes it’s funny to watch how discussions like that can become more political, rather than focusing on what is a real hurdle for shareware authors.
Mitch asks why doesn’t List(Of T) raise events when items are added or removed. The answer of course is because List(Of T) is the basic low level list. It’s the engine on a minimal chassis, designed much like a formula one car. Sure you could add things to it, but then it quickly becomes like an RV, kitchen sink and all.
Instead, if you want a “rich” collection, that is designed for UI notification when items are added or removed, then use the BindingList(Of T), and keep List(Of T) for those cases when you want just the bare minimum J