ReTread the Old Coder's Head ??

I would like your advice on how I should get started on writing some significant software that will run in the WIN-XP environment.

I've done a lot of coding and electronics design over many years, various assemblers, Pascal, 'C', BASIC. But I have never written anything in the new (to me) world of WIN-XP, .NET, XML and All That.

I have been working for some time on a collaborative project (on BoatDesign.Net) to define and prototype a "Multi-Purpose Onboard Computer System" for use on boats. This will be a Mini-ITX system with something like TinyXP, and quite a bit of external hardware. Take a look at: http://www.boatdesign.net/forums/showthread.php?t=19458
if you're interested in the gory details. And there's a quick look at the proposed layout for the boat helmsman at the end of this post.

There are 2 parts here: The part inside the dashed line is a 19" LCD display, and the 3 sides are hardware panels. The NAV software is stock OziExplorer. I need to do the right side and lower sections in display software that is now non-existent! This will include interfacing to the boat sensors and controls via USB, and creating Meters and Dials etc.
The hardware panels have capacitive touch switches that end up coming in as USB keyboard keystrokes. I Think...

So, I AM confused. Where to start? Should I use VB.NET? Java?? Delphi? 'C' or 'C#' in another environment? What would support good graphics for dials and meters without coding it all myself? How do I force exact positioning of windows on the screen and not allow them to be covered up? Who's on First?

I just got VB Studio Express Edition. Could that work for this stuff?

I'm am willing and eager to spend the next 100 hours or more learning the software tools to do this. I've survived everything from System 7 Assembler on punch cards to OS/2 graphics, but it's time to retread the old head and get started.

What would you do? Where would you start?

Any suggestions, pointers to resources, comments appreciated!

Regards, Terry King ..On the South China Sea in Shekou[email protected]
(Originally and Finally from Vermont, USA)

I vote for C# over VB.Net, just because the syntax is aimed more toward people with a background in C (even more so C++) whereas VB.Net has its roots in a language that was designed to get non-programmers into programming. However it's true that both C# and VB.Net are equally expressive and capable.

A book or three on C# (the language), .Net (class library and virtual machine), WinForms (the UI library) will almost certainly be very helpful. You'll need to acquire a fair amount of 'background knowledge' before your productivity really ramps up but once you get moving I think you'll find that coding with C# and .Net is still just coding, only you have a really great infrastructure that helps you get more done in less time.

Also consider reading up on "unit testing" and "test driven development." They are just strategies for delivering higher-quality software with less effort. It takes discipline but once you get into the habit of developing with automated testing you'll see the rewards and you'll never want to go back. NUnit is a free tool to help with this, and the commercial versions of Visual Studio include test automation as well.

Thanks!

Originally Posted by NSFW

I vote for C# over VB.Net..(snip).. A book or three on C# (the language), .Net (class library and virtual machine), WinForms (the UI library) will almost certainly be very helpful. ..(snip).. Also consider reading up on "unit testing" and "test driven development."

Thanks for the perspectives. I'm leaning towards C / C# also, partly because I've written quite a lot in C and I am writing firmware for PIC 24F in C. I get confused a bit when switching languages every day. Then there's the English-Mandarin thing.

Any suggestions about the 'best' C# book? I see quite a few CS books in a big bookstore in Hong Kong, and I'll be back in the USA at Christmas for a while.