Recently I had discussion with a friend about a project he was working on. He said he was converting a J2EE application to a .Net application. Naturally my first question was why ?? I was glad to hear that someone was doing commercial .Net development but I was curious what the ROI would possibly be. If you have already written an application and it works why rewrite it ?
The answer was interesting. The reason they had gone with J2EE was that they thought they wanted to have a thin client and no client install.
However, the users wanted integration with Office and the whole user experience just did not work with them having to go into one application, saving a document and then starting the web application. He said that .Net provided the office integration and a faster development time.
I said why not wrap the existing application and add a new rich client frontend ? He said the problem was the application was poorly written and slow. So instead of trying to put a new face on the existing application they are rewriting it.
I found the whole story very interesting. The fact that is a story of a migration from a Java application to a .Net application is really just a side issue. For me it shows that users still need rich client applications that integrate with their existing applications. Also that bad design and architecture now means that when your users requirements change or you find you have misinterpreted them you may well find yourself back at the drawing board with a lot of explaining to do.
I was speaking with one of my collegues today about XP SP2 and he noticed the security centre and said that he expected that eventually MS will come out with their own anti virus software. He then said,: "Even though I am an MSCE, I would not trust MS and I would still install 3rd party anti virus software." I thought this was an interesting point of view because when you think about it the anti virus software companies have a vested interest that there are lots of viruses, as the more virues there are the more software they sell. On the other hand MS suffers an image problem when ever a virus causes problems. So Microsoft has a vested interest to ensure that the number of virius problems is minimal and the anti viruses companies have an interest that there are more viruses. On that basis why trust MS anti virus software less than software from a 3rd party ?
Silly question, but interesting if you are writing a program and you want to return the months based on the culture of the user.
Instead of having to hand code all the month names all you have to do is write the following piece of code:
string _monthNames = System.Globalization.DateTimeFormatInfo.CurrentInfo.MonthNames;
so question is what is the length of _monthNames ?
You would expect 12 as there are normally 12 months in the year, but you would be wrong it is 13 !!
_monthNames returns a blank string.
This is great if you are simply using _monthNames as a look for the names of the month but a bit of pain if you use it as the data source of a combo box.
I assume there must be cultures out there which have 13 months but why isn't the return string array dimensioned based on the current culture ?
Why is Indigo such a hard sell to a lot of people ?
If you go to a set of presentations on Longhorn, people want to see the stuff about Avalon and Winfs but Indigo seems to a bit too theoretical for people and they are not sure why they would need it. Of course if you look at the very small proportion of the developer community who visit the PDC then they will soak it all up and say great that is what I need. Try and talk about it to a more general audience and you will get a bemused look.
I went to a presentation yesterday by a well known speaker who presented SOA and talked a little bit about Indigo. There were about 60 people in the audience, all of whom were architects for major companies in Switzerland. One reaction I heard was: isn't that stuff already in the framework ? Another comment was if this stuff already works why do I need something new. Ok, it might not be a clean unified model but I don't see why I need it.
People know there is plumbing in their houses but very few people get excited about it. All most people are interested in is that they get a hot shower or bath when they want one.
Maybe a better approach it show a real world problem where using Indigo makes development simpler. First explain the problem you are trying to solve in terms of a business case and then talk about the technology.
The problem is that people only use stuff if they know it exists and understand why to use it and what the benefits are.