Some getting started questions
-
Hi, I'm a bit of a lurker around here, love reading the articles, but as I'm not a programmer in anything other than the loosest of definitions, am unable to contribute much. I ask your indulgence with the following: My 'programming' until now has been largely in VB (6 and earlier) and mainly done to fill some gap in the OS, or other specific need. I'm actually proud of many of these little utilities as many of them have continued to make my life easier for many years, despite being constructed in something of a spaghetti fashion - copying of other peoples code (leagally!) plus my own. I have my own IT consulting business, supporting several hundred users across many small businesses and some of these programs are still in use. It is becoming obvious though, particularly as we move to Windows 7, that many of these old programs really should be reconstructed in a modern language. Additionally, there is a need for some new types of tools for use in our business. With a lot of help from the code samples on this site, I have even created my first such project - about 2000 lines of VB.Net code. The program works well, but I'm certain that it would seems 'confused' to an experienced eye. I'm keen to get a bit better/more confident/maybe faster at this programming caper and have some basic questions - but I don't want to kick off any religious wars ;-). I'm thinking that the best way to acheive this is to purchase a book and read it, but which book... - VB.Net/C#.Net - I've mostly done VB 6 in the past, but C# code does make some sort of sense to me. - Development environment - Visual Studio Express/Pro/Sharp Develop (why did they drop standard?). I need add-ins, services, probably the ability to create Office Add-Ins. I think that means I need to get VS 2010 Pro, or can Express do this stuff, its just templates, any thoughts? - Winforms/WPF/WCF - I barely understand the differences, I feel I'll mostly use Winforms. How do you decide which is 'best'. Don't believe there will be much need for web based apps. Lastly, this will probably be covered by simply learning the language/environment better, but .Net often has several ways to achieve what seems to be the same result. How do you know the best way, and determine the best layout for a project - this function in module x, that one in module y. I know this is long, I'm sorry. Thanks, Rod
-
Hi, I'm a bit of a lurker around here, love reading the articles, but as I'm not a programmer in anything other than the loosest of definitions, am unable to contribute much. I ask your indulgence with the following: My 'programming' until now has been largely in VB (6 and earlier) and mainly done to fill some gap in the OS, or other specific need. I'm actually proud of many of these little utilities as many of them have continued to make my life easier for many years, despite being constructed in something of a spaghetti fashion - copying of other peoples code (leagally!) plus my own. I have my own IT consulting business, supporting several hundred users across many small businesses and some of these programs are still in use. It is becoming obvious though, particularly as we move to Windows 7, that many of these old programs really should be reconstructed in a modern language. Additionally, there is a need for some new types of tools for use in our business. With a lot of help from the code samples on this site, I have even created my first such project - about 2000 lines of VB.Net code. The program works well, but I'm certain that it would seems 'confused' to an experienced eye. I'm keen to get a bit better/more confident/maybe faster at this programming caper and have some basic questions - but I don't want to kick off any religious wars ;-). I'm thinking that the best way to acheive this is to purchase a book and read it, but which book... - VB.Net/C#.Net - I've mostly done VB 6 in the past, but C# code does make some sort of sense to me. - Development environment - Visual Studio Express/Pro/Sharp Develop (why did they drop standard?). I need add-ins, services, probably the ability to create Office Add-Ins. I think that means I need to get VS 2010 Pro, or can Express do this stuff, its just templates, any thoughts? - Winforms/WPF/WCF - I barely understand the differences, I feel I'll mostly use Winforms. How do you decide which is 'best'. Don't believe there will be much need for web based apps. Lastly, this will probably be covered by simply learning the language/environment better, but .Net often has several ways to achieve what seems to be the same result. How do you know the best way, and determine the best layout for a project - this function in module x, that one in module y. I know this is long, I'm sorry. Thanks, Rod
RodClark wrote:
- VB.Net/C#.Net - I've mostly done VB 6 in the past, but C# code does make some sort of sense to me.
This is largely a matter of preference. But, there are little things that VB.NET does that C# can't (yet) and things that C# does that VB.NET can't do (unsafe code, pointers, ...) The books are going to be language specific but cover the same topics. But for a newbie, I'd tend to lean toward C#.
RodClark wrote:
- Development environment - Visual Studio Express/Pro/Sharp Develop (why did they drop standard?). I need add-ins, services, probably the ability to create Office Add-Ins. I think that means I need to get VS 2010 Pro, or can Express do this stuff, its just templates, any thoughts?
If you're doing Office Addins, plugins, services, ... I'd go with the Pro edition instead of Express. Express has limitations that are not because of an absense of project templates.
RodClark wrote:
- Winforms/WPF/WCF - I barely understand the differences, I feel I'll mostly use Winforms. How do you decide which is 'best'. Don't believe there will be much need for web based apps.
Winforms is pretty much what you've been using in the older versions of VB. WPF is an entirely different way of creating Windows applications that isn't as restricted to the "fill in forms" methodology of Windows apps. WPF lets you create much richer UIs for your apps, but the learning curve is pretty steep. Which one is 'best' is determined by your apps requirements and your choice. The choice is up to you and your project. Most utilities are not going to benefit too much from WPF... WCF is Windows Communication Foundation and it handles communications between applications and services.
RodClark wrote:
Lastly, this will probably be covered by simply learning the language/environment better, but .Net often has several ways to achieve what seems to be the same result. How do you know the best way, and determine the best layout for a project - this function in module x, that one in module y.
You only get this with lots of experience in object oriented design and very good requirements gathering. There is no way for anyone to describe how to determine the 'best' way to solve any one problem. The 'best' method can change with the smallest requirement change in your app. It
-
Hi, I'm a bit of a lurker around here, love reading the articles, but as I'm not a programmer in anything other than the loosest of definitions, am unable to contribute much. I ask your indulgence with the following: My 'programming' until now has been largely in VB (6 and earlier) and mainly done to fill some gap in the OS, or other specific need. I'm actually proud of many of these little utilities as many of them have continued to make my life easier for many years, despite being constructed in something of a spaghetti fashion - copying of other peoples code (leagally!) plus my own. I have my own IT consulting business, supporting several hundred users across many small businesses and some of these programs are still in use. It is becoming obvious though, particularly as we move to Windows 7, that many of these old programs really should be reconstructed in a modern language. Additionally, there is a need for some new types of tools for use in our business. With a lot of help from the code samples on this site, I have even created my first such project - about 2000 lines of VB.Net code. The program works well, but I'm certain that it would seems 'confused' to an experienced eye. I'm keen to get a bit better/more confident/maybe faster at this programming caper and have some basic questions - but I don't want to kick off any religious wars ;-). I'm thinking that the best way to acheive this is to purchase a book and read it, but which book... - VB.Net/C#.Net - I've mostly done VB 6 in the past, but C# code does make some sort of sense to me. - Development environment - Visual Studio Express/Pro/Sharp Develop (why did they drop standard?). I need add-ins, services, probably the ability to create Office Add-Ins. I think that means I need to get VS 2010 Pro, or can Express do this stuff, its just templates, any thoughts? - Winforms/WPF/WCF - I barely understand the differences, I feel I'll mostly use Winforms. How do you decide which is 'best'. Don't believe there will be much need for web based apps. Lastly, this will probably be covered by simply learning the language/environment better, but .Net often has several ways to achieve what seems to be the same result. How do you know the best way, and determine the best layout for a project - this function in module x, that one in module y. I know this is long, I'm sorry. Thanks, Rod
RodClark wrote:
I'm thinking that the best way to acheive this is to purchase a book and read it, but which book...
I found the Head First[^] series a good read, though it's more a learn-by-doing style book. It's not a book you'd read in the train, unless you have a compiler at hand. Another good reference would be the How Do I-video's[^] on MSDN.
RodClark wrote:
VB.Net/C#.Net - I've mostly done VB 6 in the past, but C# code does make some sort of sense to me.
How 'bout going for C#, and googling for the matching VB.NET syntax to compare it to? Seeing the same construction through two different glasses helps.
RodClark wrote:
I think that means I need to get VS 2010 Pro, or can Express do this stuff, its just templates, any thoughts?
If I recall correctly, you'd need the Pro version to use the VSTO (Visual Studio Tools for Office) extensions. The Pro-version also allows to add in helpful extensions like Resharper, giving helpfull tips in the IDE.
RodClark wrote:
Winforms/WPF/WCF - I barely understand the differences, I feel I'll mostly use Winforms. How do you decide which is 'best'.
The YAGNI[^]-princple would be the first filter. What's "best" depends on your circumstances - the man on the northpole will have different demands from a man in the desert. Go with what you're comfortable with, and read up on the new things when you have some spare time to kill. Once you discover some new area that's important to you, indulge.
RodClark wrote:
How do you know the best way, and determine the best layout for a project - this function in module x, that one in module y.
I have to admit that I often don't know the best or recommended way. Most (larger) programs are modular, and even the smaller ones tend to share a library with functions. As time passes
-
RodClark wrote:
I'm thinking that the best way to acheive this is to purchase a book and read it, but which book...
I found the Head First[^] series a good read, though it's more a learn-by-doing style book. It's not a book you'd read in the train, unless you have a compiler at hand. Another good reference would be the How Do I-video's[^] on MSDN.
RodClark wrote:
VB.Net/C#.Net - I've mostly done VB 6 in the past, but C# code does make some sort of sense to me.
How 'bout going for C#, and googling for the matching VB.NET syntax to compare it to? Seeing the same construction through two different glasses helps.
RodClark wrote:
I think that means I need to get VS 2010 Pro, or can Express do this stuff, its just templates, any thoughts?
If I recall correctly, you'd need the Pro version to use the VSTO (Visual Studio Tools for Office) extensions. The Pro-version also allows to add in helpful extensions like Resharper, giving helpfull tips in the IDE.
RodClark wrote:
Winforms/WPF/WCF - I barely understand the differences, I feel I'll mostly use Winforms. How do you decide which is 'best'.
The YAGNI[^]-princple would be the first filter. What's "best" depends on your circumstances - the man on the northpole will have different demands from a man in the desert. Go with what you're comfortable with, and read up on the new things when you have some spare time to kill. Once you discover some new area that's important to you, indulge.
RodClark wrote:
How do you know the best way, and determine the best layout for a project - this function in module x, that one in module y.
I have to admit that I often don't know the best or recommended way. Most (larger) programs are modular, and even the smaller ones tend to share a library with functions. As time passes
Thanks for the answers - appreciate them. Those MS videos do look both interesting and useful, and the Head First book also. That sounds like the way I learn best (by doing) and I don't take the train often - when I do, I have my laptop so I can play. There's also a second edition which covers VS2010 - Here [^]. I'm nervous about going to C#, but then VB.Net is different enough to most of what I've done, that it represents a challenge too. It does seem that either language would do what I need, but most people tend to think that C# is a little more capable. It does look like I should use VS, rather than Sharp Develop. If I do use VS, then I do think that Pro is the minimum level - Just can't believe that MS dropped the standard edition (A$400, instead of A$1200!). I like YAGNI, not heard that one before - makes sense to me. I do think that WinForms will be most of it - don't think the little utilities I written in the past or likely to create in the future need a fancy UI, just an easy, serviceable one. Thanks again, Rod
-
Thanks for the answers - appreciate them. Those MS videos do look both interesting and useful, and the Head First book also. That sounds like the way I learn best (by doing) and I don't take the train often - when I do, I have my laptop so I can play. There's also a second edition which covers VS2010 - Here [^]. I'm nervous about going to C#, but then VB.Net is different enough to most of what I've done, that it represents a challenge too. It does seem that either language would do what I need, but most people tend to think that C# is a little more capable. It does look like I should use VS, rather than Sharp Develop. If I do use VS, then I do think that Pro is the minimum level - Just can't believe that MS dropped the standard edition (A$400, instead of A$1200!). I like YAGNI, not heard that one before - makes sense to me. I do think that WinForms will be most of it - don't think the little utilities I written in the past or likely to create in the future need a fancy UI, just an easy, serviceable one. Thanks again, Rod
RodClark wrote:
Thanks for the answers
My pleasure :)
RodClark wrote:
I'm nervous about going to C#, but then VB.Net is different enough to most of what I've done
C# isn't more complicated than VB.NET, they're a close match. It looks a bit more cryptic perhaps, but that passes quickly.
RodClark wrote:
but most people tend to think that C# is a little more capable
They match very closely, making automated translations possible. You could learn your C# and use a tool like this one[^] to take a peek at the equivalent VB.NET code.
RodClark wrote:
It does look like I should use VS, rather than Sharp Develop.
The Visual Studio IDE remains my favorite IDE, but it's not a monogamous marriage. SharpDevelop is free software, and you could put it on a USB stick[^]. SharpDevelop also contains a built-in function to translate code from one language to another one. Happy Programming :)
I are Troll :suss:
-
RodClark wrote:
Thanks for the answers
My pleasure :)
RodClark wrote:
I'm nervous about going to C#, but then VB.Net is different enough to most of what I've done
C# isn't more complicated than VB.NET, they're a close match. It looks a bit more cryptic perhaps, but that passes quickly.
RodClark wrote:
but most people tend to think that C# is a little more capable
They match very closely, making automated translations possible. You could learn your C# and use a tool like this one[^] to take a peek at the equivalent VB.NET code.
RodClark wrote:
It does look like I should use VS, rather than Sharp Develop.
The Visual Studio IDE remains my favorite IDE, but it's not a monogamous marriage. SharpDevelop is free software, and you could put it on a USB stick[^]. SharpDevelop also contains a built-in function to translate code from one language to another one. Happy Programming :)
I are Troll :suss: