[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ajug-members]: GUI prototyping




> Sean Durity said:
> > FYI - the difficulties of Swing and layout managers (and the lack of
> > goodtools like your request) are why we switched to .Net and WinForms...

> I was initially considering .Net and C# but cost was an issue.  Then I
> recently ran across #Develop (http://www.icsharpcode.net/OpenSource/SD/)
> which looks like it might provide a full featured development environ. at
> the right price :).

I have no experience with #Develop, so no help there.
 
> My concern is the cost from a learning standpoint.  It's a small team that
> consists of fairly knowledgeable Java folks.  I could probably stomach a
> month ramp up on .Net and C# but much beyond that and we're toast.

First off, I was never a Java guru by any stretch of the imagination. My colleague is legacy C guy who learned enough Java to do a fairly-large, early servlet project (internal use only).

Here's some points from our .Net experience so far:
- WinForms are *MUCH* easier from a layout/design standpoint. Lots of third party components, like Java, if that matters.
- The C# language is very Java-like in many respects. However, we have found it more developer-friendly in several ways. Some things are as easy as they "should be," like rounding numbers and working with dates. Java over-engineered this stuff for our types of applications (no international, multi-calendar, multi-lingual requirements). (This is assuming you choose C#, the lingua-franca of .Net. J# seems to be the least used.)
- The MSDN on-line help is very good for the framework classes. The examples are occasionally wacky, but you can usually find what you need. I haven't seen anything like this for Java.
- Caveat - .Net does not use checked exceptions (checked by the compiler). Catch 'em if you want to. There are articles out there about this choice. Suffice it to say the main points are that in regular Java usage, checked exceptions are often swallowed. Also checked exceptions are not scalable for large systems. I can't comment on the truth of those - but Bruce Eckel has weighed in on the side of unchecked (like Python). Java seems to be the one language to have experimented with these. Anyway, this is a change in thinking. You have to lookup what exceptions might be thrown.
- ADO.Net != JDBC If you are doing database work, ADO.Net is a different animal. It is a disconnected view of data based on the DataSet object. The DataSet can include relations, child rows, restrictions, etc. It is like a relational database in memory. If done right, it can alleve many roundtrips to the database. We have grown to like ADO.Net's model for what we are doing. (note: much of the ADO.Net literature assumes MS SQL Server)
- .Net IDEs don't match Java ones, yet. I was using JBuilder 7 and it has some great features that I haven't yet seen in any .Net IDE (ok - limited to C# Builder and VS.Net) like the pop-up import help. There are some nice features, like code-folding, and some others, but I think the Java IDEs have 'em beat for now.
- There are open source resources for .Net developing. And "real" developers who use it.
- We took a 4 day individualized training course on C# and .Net application architecture from an instructor who does both Java and .Net. That gave us a good jump start. We are pretty productive, though we haven't tried all the areas, yet. A month is possible, with people who are motivated to learn.

I hope that gives you some ideas.