General .NET (RSS)

Most of the topics fall into this category for now. Later on I might move posts around when I can find a good grouping

Goodbye DNJ

Well,after 3 years here its time to say goodbye to DNJ. Im moving to Wordpress and the new link is http://santoshbenjamin.wordpress.com I've had some great conversations here but im getting rather tied down by the poor editing facilities etc as i've said on many an occasion. I've also decided that its time for a change to befit my new status in life as i have explained on the wordpress site. Anyway, im leaving the posts here as an archive (and also because i cant find any tools to move the content across. if you do know of any, do let me know). I will be visiting the aggregate site cos theres still some great content here. Hope to see some of you at my wordpress site. cheers, benjy
with 0 Comments

Backdoors,Hacks and the TD.NET saga

So by now most people would have heard about the ruckus that's going on in the blogosphere regarding Microsoft and Jamie Cansdale's TestDriven.NET tool. In case you haven't heard, the issue, as I read it, is that Jamie found a way to make the TD.NET add-in run inside VS Express and Microsoft sent him a formal letter asking him to stop making this available. The issue Microsoft has is not with TD.NET as an add-in or whether its a free or commercial tool but the fact that it is being used with Express and that's something they don't want to encourage and have said that extensibility is disabled by default in Express.

Predictably, this issue raised a lot of hackles in the community and many people took this as an opportunity to aim more broadsides at Microsoft. There were some good points in some blogs (check out one here and look for some of the posts and comments on Oren Eini's blog here and also Dan Fernandez's blog -one of the posts being this and Jamie himself lists the communications here) but amongst those pearls I was disappointed (but not surprised) to find just loads of vitriol. Some people see it as a hack and some as a legitimate back-door and some say that if there is an API on the machine, they are going to use it and MS cannot stop them. (By that logic, you could be releasing any additions to windows that were unsupported just because the system DLLs are on c:\ drive, and expect MS to sit back and smile indulgently)

Now let me state first of all that I really appreciate Jamie's add-in. I cut my teeth on unit testing and TDD with that tool (nowadays i use JetBrains UnitRun), and it was very useful indeed. I can see how using this in express will open up the world of TDD to hobbyist developers and others who don't use the higher end editions, and this can only be good for the programming community in general. However, i can also see Microsoft's points. I have written a couple of small add-ins for my team and find VS Extensibility quite easy and the possibilities are almost limitless. If MS were to allow Jamie's tool, lots of other tool developers will jump on the bandwagon and write add-ins for Express and pretty soon it will become a little Eclipse-like ecosystem on its own. If that happens, where will that leave VS Standard and higher end editions?  (Yes, there is an argument for supporting unit testing in express and exposing newbie's and non-pro dev's to good programming practices, but how do you draw the line?)

This is just plain business considerations folks. Microsoft is not running a charity. Sure, there are good groups in MS like PAG who want to make things easier for architects and developers and are producing a ton of free stuff that helps us get better at what we do (yeah, so some people don't like the patterns and the wizards, but there's a rather large part of the .net world that does), but MS is first and foremost a business and profit is primary and there's nothing wrong with that. How will they sell Visual Studio commercial editions if Express could be used to do everything that, say, Team System does? Of course, not all third party add-ins are going to be free and ISV's are bound to continue the tradition of having some free editions and some paid for 'rich functionality' editions, but there are some top notch developers in the open source community who could whistle up some free add-ins that trump the commercial ones. So where will that leave MS? What about all the hard work the IDE team is putting into Orcas and Rosario and whatever comes after? Does it have to be free? (Okay, so I benefit from a corporate MSDN subscription and should i ever have to pay for the tool myself then shelling out for VS,especially some features of VSTS,  would burn a rather large hole in my pocket, but that's another story).

Express is Microsoft's entry point into the non-pro developer world. They could have engineered a completely new locked down product where there were no DLLs in the GAC or anything for people to tap into, but perhaps that would have cost more than just stripping out some functionality and making a "lite" edition like Express is. As someone pointed out (cant remember where), this could well result in MS pulling the express line completely and that wouldn't be good at all.

Anyway, that's my two cents worth (and no, I'm not getting paid to write this !!). In summary I'd say to these parties , "Jamie, well done with TD.NET and well done on getting a huge groundswell of support especially from some of the more articulate developers around", "Microsoft, there are folks who understand your position, but it could be made a bit more clear without bringing in lawyers against well meaning developers" and to the general community "Folks, there's always a wide audience for well written comments no matter whose side they are on. Make a clear stand and stop the sniping and broadsides just because MS is a huge,obvious target.".

Ciao!!

 

with 0 Comments

Superhero and SuperVillain

I dont usually take these polls and quizzes but i couldnt resist it and heres what i got for superhero personality and supervillain personality (theres a little bit of both in each of us isnt there?) . check it out....

SUPER-HERO

You are Hulk
Hulk
90%
Superman
80%
Spider-Man
80%
Robin
70%
Green Lantern
70%
Batman
55%
The Flash
50%
Iron Man
40%
Supergirl
30%
Wonder Woman
20%
Catwoman
10%
You are a wanderer with
amazing strength.
Click here to take the Superhero Personality Quiz

SUPER-VILLAIN

You are Venom
Venom
69%
Mr. Freeze
68%
Dr. Doom
64%
Lex Luthor
64%
The Joker
48%
Apocalypse
43%
Green Goblin
40%
Two-Face
40%
Magneto
34%
Kingpin
34%
Riddler
32%
Dark Phoenix
32%
Mystique
28%
Juggernaut
24%
Poison Ivy
21%
Catwoman
18%
Strength, disguise and adrenaline are your greatest weapons.
Click here to take the Supervillain Personality Quiz
with 0 Comments

Misadventures in the Orcas world

For some reason i got bitten by the Orcas bug and downloaded the CTP. Curiosity got the better of me. I should have kept quiet and stayed with my R&D into VS2005. So what were the problems?

First thing is that the Orcas CTP (September) is a differencing disk and the instructions for use are for VPC and not Virtual Server so if you use VServer (R2) like me, it can stop you for a while. It turns out that VPC prompts one for the location of the base disk whereas with VS you have to use the INSPECT option and then it gives you the chance to correct the location of the "missing base disk". You also have to set the base VHD to read only otherwise VS throws some nasty error message about not being able to use it. To read some posts of mine on the whole sordid tale, look here.

Oh and before i forget, for people in the UK please note that the keyboard settings are US which means that to get the password p@ssw0rd correct you have to use SHIFT -F2 for the @symbol. This is the area where i got stuck with the TFS VPC several months ago and at that time no one told me about this so i had to forget about testing the VPC for that product as i could never log in successfully.

Once thats done, in theory you should have no problems, but unfortunately in my case, the VM simply threw core dumps all over the place when i started it up. I tried with a fresh download of the CTP and again no joy. Im going to have to try it with VPC now and find a workstation where i can test that out. Or perhaps i wont bother. After all theres so much to learn in Whidbey and theyve got a brand new SDK out with the full version of the DSL kit etc so that should be enough to keep me amused for a while.

with 0 Comments

VBUG 2006

Just got back from this years VBUG conference. It was pretty good two days, completely sold out and all that. Decent topic coverage too. For me personally there werent many new things cos i had the opportunity to go to the MSDN roadshow recently where we spent a whole day on WPF, WCF and WF with much longer and deeper sessions but hats off to the VBUG organisers for sorting out good speakers and topics (well, i cant speak for myself , i presented an Introduction to Biztalk, but i heard it went down well and the other chaps were a knowledgeable bunch.

There were a few glitches in the demos, but thats always the case at conferences. Even at mine, i ran out of time and abandoned the demo about 75% of the way through cos there were a lot of "lessons" that i need to share with the attendees and the demo was a simple file mapping one in any case. (Its the standard Biztalk demo, but it does show the abstraction at the heart of Biztalk so it suffices in most introductory talks). I stayed up late the previous night preparing some more comprehensive stuff including consuming web services etc, but couldnt show that. Still, i think we managed to cover a lot of ground in that one hour. I could probably start writing some articles based on the slides and some of my thoughts on using Biztalk with the other products in the MS Connected Systems strategy.

Its funny how perspectives change in a short time. There was a demo of PowerDesigner by a chap from Sybase. It was a good talk and he showed a lot of the features of the tool such as looking at the model round-tripping from UML to DB to code and back and things on requirements traceability, integration with VSTS etc. A few years ago i would have been on my feet cheering him on , but this time while i appreciated what he showed, i couldnt help thinking "its not TDD is it?"  and "how can we make this work with TDD? test, model, generate code, refactor, reverse engineer?nah.. too much work" which is rather ironic for me personally cos i used to be really hot on database modelling and code generation etc.  I'm still all for models and IMO you absolutely need the blueprint before you build the house, but the key point is how much of the blueprint do you really need before you can start delivering working code (and its different strokes for different folks).

I'm going to focus a lot on software factories and DSL's and i believe theres tremendous payoff in that field and it can do wonders for productivity. More on this discussion of modelling and TDD later.

with 0 Comments

Installing SQL2000 on XP via RD

I found a real strange problem a couple of days ago. I was building a set of standalone/workgroup VMs (mainly for playing with Biztalk 04 and 06 . I tried TFS, but its a monster to install and i gave up halfway).

I first had an existing SQL2000 VM that didnt have any SPs on it and i connected up and tried to patch it with SP3a. But SP3a just hung at the validating user stage. I then built a new XPSP2 VM and tried to install SQL. This time it got to the 'configuring the server ' stage and hung. I even left it overnight, but it didnt complete. This happened when i used the 'local system account' to configure the services. I tried using the Administrator account and it said that it could not validate the account. I took a copy of the old SQL VM and decided to apply old SPs one after the other. I got as far as SP1 but SP2 timed out (the SCM couldnt start the service and it gave me an error code number 1460).

Left me stumped for a while since i had successfully created VMs of Win2003 in this way (and even got Biztalk 04 to install correctly the very first time on a Win2003 box) - so it was crazy that good ol SQLServer should be giving probs.

Finally I found an article that states you cannot install MSDE or SQL on XP via remote desktop. You need a local session. In my case, since i was using Virtual Server, it meant i had to use the browser based window of the target machine and perform the installation instead of enabling remote access and RDPing to the IP address. This worked like a charm. I now have the boxes all built and ready. 

Curious eh ? Does anyone know why this happens?

with 0 Comments

Book Review 1 (coming soon) - BPEL Cookbook

One of the things I've been meaning to do for a long time is to get into some book reviews. I have a rather extensive library of tech books and loads of them are in the "to-be-read" queue and it seems that the best way to cover them is to put up a review. Another thing which i can do is review stuff directly from the publisher which would help fellow readers.

So I've started on the latter approach for now and the first book I'm going to review is the

BPEL Cookbook: Best Practices for SOA-based integration and composite applications development

The publishers are sending me a copy of the book soon and i plan to get through it as soon as possible. My main aim is to understand how SOA applications are done in different technologies and although my main focus is Biztalk and .NET development , SOA transcends platform and im sure i can pick up quite a few tips to apply to my integration project as well.

I've also got quite a few books loaded up into my DevX Safari bookshelf dealing with SOA. They are

(1) Enterprise Service Bus by Dave Chappell

(2) Enterprise SOA: Designing IT for Business Innovation - By Thomas Mattern, Dan Woods

(3) Enterprise SOA: Service-Oriented Architecture Best Practices - By Dirk Krafzig, Karl Banke, Dirk Slama

The third one has got rave reviews on Amazon and i'm looking forward to getting into it , well, as soon as i finish the BPELCookbook. I must say, the Safari bookshelf is really useful and its caused me to buy even more books cos i dislike reading online!

Anyway, I hope these reviews will help you choose the books that you want to buy. Watch this space for the first review.

with 0 Comments

Is the VB vs C# war still going on?

Just came across this post on the subject. Thought it had already been done to death. I' d say one thing though. Its very easy for most VB (pre .NET) folks to continue doing procedural programming when they move to VB.NET since they have a largely familiar environment. Note, this does not apply to good programmers and those who understand and appropriately apply OO. Getting VB programmers to move to C# shakes some of them up a bit and causes them to get a little more into the OO world which, within the service boundary, is still a great way of designing maintainable programs. If I had a choice in the matter, when working with a team of existing VB programmers, I would plump for moving to C#.

with 0 Comments

DNUG - FIT, NMock and Python

In yesterdays DNUG meeting we discussed FIT, NMock and Python. Ian Cooper presented FIT, Nick Hines did NMock and Stephen Turner spoke on Python. 20 or so out of 25 who signed up actually turned up which is pretty good.

FIT : I finally understood what FIT is all about. At first impression I thought it was just a means of letting customers provide test data which i reckoned could be done by rustling up a Windows/Web Form and writing the test data to an XML File which could then be read by the NUnit Harness. So i struggled to understand how it was different from NUnit but then Ian explained that we dont need to write the parsers that run over the word/html documents. The Word/HTML is also more free-form and will save us developers a lot of work. Looks like it will take some time and practice for me to more fully understand and leverage the benefits of this.

As Hitesh Khatri pointed out, the whole premise of this is that your customer cares. If all they want is the finished product and only care about a set of screens where they can click buttons, then all this is of no use (except to us developers, that is).

NMock: Excellent presentation. For a long time (some months ago) I couldnt get my head round Mock Objects and some folk here sent me some good links. At the office Steve Meyfroidt (our chief Software Architect) gave a good presentation using some examples in Java and i got to understand some more. Now Nick Hines gave the ultimate explanation worth its weight in gold. I wish this presentation was done a year ago!! I could have saved myself so much grief in my TDD attempts.

Python: Looks cool but i couldnt help thinking "So what?". I guess different languages are just sutable for different things and lend themselves more easily to specific kinds of programming challenges. My question regarding Python is - What is it that I can do in Python that i cant do in C#?  Python isnt OO (from what I gathered, although everything is an object) which may or may not be good depending on your view of the software world. One thing Python has going for itself is that PLONE is a really powerful CMS written in Python so this language must be good for something eh? :-) Its also interesting that MS is working hard on IronPython. Can someone please enlighten me why I might need to learn this language?

Speaking of 'new' languages, what about Ruby? Whats that good for?

 

 

Blog Hacks

Its quite strange really. In an effort to combat comment spam I decided to disable comments for all the old posts since the conversations really are dormant now. Since I had to do this one by one, I missed a couple here and there and whaddya know, a flood of spam enters through those little 'gates'. It did help identify the posts where i missed turning off the comments flag so now there should be less. It does appear that occasionally these dirty people are able to hack into the system even when comments are turned off, but only i get to see those comments in the Feedback panel and in the email.

Still keeping the last couple of posts open (in a rolling forward fashion) since there are some good comments that i've received.

 

DeveloperDeveloperDeveloper

Looks like quite a few bloggers have already posted their thoughts on the Developer day event at Reading last Saturday. I'm last off the block now cos I was tied up at a client site (not literally :-) ) with no email for the early part of this week.

Overall I would say I was only 40% satisfied with the event. There were too many tracks and too many sessions in each track to do any justice to the topics. There could have been 3 2-hour sessions in each track. Some of the presenters visibly struggled with trying to finish up in time and skipped some good slides leaving us to go pick them up from the site when they become available. (No blame attached - i would have done that myself- still , its quite a pity). So here are my thoughts on the sessions i attended.

ClickOnce Deployment - I arrived late for the event so i missed the first half of the session. But the part i caught seemed interesting enough and well presented.

Custom Attributes: This was the most disappointing session - for my expectations that is. I attended the same topic presented by Jim Cooper at DDUG a few months ago which was quite interesting. At that session we had closed with a brief look at AOP and a pointer to the Advanced Attributes book. This time, when i read the abstract, it promised to deal with AOP so i decided to attend (even though i am generally familiar with the whole concept). But there was absolutely nothing (except a pointer to the book again). The chap next to me who was from a C++ background drifted off into a short nap. Jim could have explained even the WebMethod and the Serializable attributes and what they do to give newbies some context, but he didnt. Jim is a likable chap but this session didnt show him at his best.

FxCop: Talk about deflating a balloon. I never knew how hard it would be to write custom rules in FxCop. I really like the tool and wanted to see how they have improved it in Whidbey but we didnt get that far. I expected that we could use the CodeDOM and iterate through code using regEx to identify non standard patterns, but no joy. FxCop works at the IL level so you need to write code that can handle that level. It does help that there are some VISIT methods that can be overriden (that is if you fancy learning about 200 different overrides) but i dont think that i want to go down that route. And why didnt MS release some good documentation about it? Heaven knows!! My enthusiasm is somewhat tempered, but it doesnt mean i cant use the tools and enable/disable the existing rules as appropriate.

Web Services: Contrary to many peoples' opinion, I thought Benjamin Mitchells session was really good. The session has to be understood in context. A vast amount of advancements in .NET relating to Web Services is in the WSE stack. Ben was dealing with the improvements in the .NET framework core which obviously is less flashy than what they are doing with WSE. The summary slide is something I can make use of at work in a future knowledge sharing session in my company.

Scrum and Iterative development: Fairly good stuff. Interesting that they used sprints of 30 days. IMO 3-4 weeks is better than the XP style 2 weeks.

Career Development: Very interactive session since it was about the job market and CV /interview tips. Didnt mean much to me personally since im quite comfortably esconced in my current job, but the other attendees seemed to love it.

Would have liked to attend Ian Coopers session on Data Access Patterns, but then i was late anyway.

Todays DNUG session on FIT, NMock and Python promises to be interesting. Lets see how it turns out. 

VS 2005 DVDs - Of Scarcity and Abundance

I will never understand MS and their ideas on software distribution. I have an MSDN Universal Subscription which usually means that you get all the goodies on DVD regularly. For a while i was content to download stuff occasionally and only when VS 2005 came out did i decide to change my media pack to DVD hoping to get my hands on Whidbey. Unfortunately, Yukon beta 2 was available but no sign of Whidbey. So i steeled myself and setup a download process on a spare workstation. The wretched thing took 3 or 4 days to complete and kept getting interrupted. Thankfully one of my colleagues helped me out by restarting it whenever he saw it had failed cos I was away on the BTS training course. It was a grand total of 3.75 Gigs. DOnt know what happened to our network either. When i downloaded a 76MB Office 2003 SP recently it took just a few seconds early in the morning for all 76 MB, but this proceeeded at 21 KB per second or something (for VS).

Anyway, heres the irony. I then went on Saturday for the DeveloperDeveloper event in Reading and what do I find but hundreds of DVDs kicking about.(By this time I had also ordered the DVD while waiting for the download to complete). So i happily helped myself to it.

This is what I dont understand, if Yukon beta can be distributed on MSDN and VS 2005 so freely at an event, why not send the VS 2005 DVD as part of MSDN ? I guess part of the reason maybe that we now have a MSDN Premium Subscription to consume VS 2005 and hence with a Universal subscription you dont get it (but I do recall reading about getting upgraded easily to Premium). Anyway, it doesnt matter now, but MS could have saved us a whole load of grief.

To make things worse, an acquaintance just emailed me to let me know that in his office the workstations do not recognise the DVD set given out at the Developer event !! :-( . Bah! humbug! so much for free DVDs. Let me see what happens on my workstation.

 

No Comment - just a little (biz)talk

A declaration thats very popular among politicians these days. Nothing so fancy here though. I've just had to remove the comments option for all my posts to date to avoid the comment spam. I'm waiting for Sahil Malik to send me the utility to bulk migrate my posts to CodeBetter as that seems to be a decent blog site. But then again I could probably just create an account and start posting there and leave this dormant.

One thing about CAPTCHA is that it can be tricky when you post genuine comments. I was trying to reply to a post on the new CMS 2002 book and i