|
Depending on what kind of app you are wanting to make, I'd go with options 2 or 3. I usually use VB.NET because it is easy, intuitive, and quick to write. If you are going to make a robust, thorough, or big app, then go with C#. It is MUCH faster, especially with dealing with many numbers.
In summary, I personally would choose VB.NET, simply because I don't know how much better C# is. If you're a beginning or advanced programmer looking to build a medium sized or large app, use C#. If it's just a simple app, use VB.NET. It's easy and fast. Besides, usually you don't need the speed.
|
|
|
|
|
`Drew wrote: It is MUCH faster, especially with dealing with many numbers.
Since both C# and VB.NET compile to the same MSIL, there really isn't any difference. Care to back that statement up with a benchmark?
|
|
|
|
|
Well, it's not really a benchmark, but it may serve the perposes of making a point.
I have a project purchases program. Each time it loads, it goes off and gets > 45,000 records, sorts them, and conveniently displays them in a hierarchy. With C#, it doesn't matter whether you load the tables or not because each takes roughly the same time. With VB.NET, it'll take a few seconds to load the same database. Please note I coded nothing in either as Visual Studio does it all.
|
|
|
|
|
Designer generated code isn't necessarily the same. The only "proof" that would demonstrate this with any accuracy is if the database code was written by hand.
|
|
|
|
|
Dave Kreskowiak wrote: Designer generated code isn't necessarily the same.
Considering my part of the program is < 50 lines long (C#)(about 10 in VB.NET), it shouldn't matter, should it?
Dave Kreskowiak wrote: The only "proof" that would demonstrate this with any accuracy is if the database code was written by hand.
Of course it is. Is there any other way to do it?
|
|
|
|
|
There is no significant performance difference between VB.NET and C#. If you wrote two versions of the same app and one performs better than the other, then the most likely explanation is that you wrote the code differently.
I remember an example from way back when from Borland who claimed that Delphi was faster than VB and provided a benchmark that 'proved' it. But when you actually look at the code, they were comparing integer operations with floating point operations. Of course, integer operations are faster than floating point operations. Whether knowingly or unknowingly, their benchmark test was invalid.
Post your code here and I'll tell you what you're doing differently.
|
|
|
|
|
Similar to my last thread, I'd like to save the form location as well. In talking to another programmer, he said that it'd probably be a good idea to have some preventative measures (i.e.: making sure the program doesn't appear off-screen). Is there a good or bad way to do this?
|
|
|
|
|
Hi again,
Your earlier post was on size, and you can protect size with the Form.MinimumSize
property (it will refuse a Size that is less than that); just give it a reasonable
minimum with Visual Designer. You could also set a MaximumSize, but there is no need AFAIK.
As far as location is concerned, if Form.StartPosition is not set to Manual, you have no
control; and if it is, you are responsible; bad coordinates will be accepted but may put
it off-screen. So you may want to validate them, by comparing with (0,0) and
SystemInformation.PrimaryMonitorSize, assuming you only have one monitor.
With multiple monitors it gets complex easily.
Luc Pattyn [Forum Guidelines] [My Articles]
this weeks tips:
- make Visual display line numbers: Tools/Options/TextEditor/AllLanguages/General
- show exceptions with ToString() to see all information
- before you ask a question here, search CodeProject, then Google
|
|
|
|
|
Unfortunately, 95% of the people that will be using this program have 2 or more monitors (yes some have 3 and 4). It may be in my best interests to leave location alone and let Windows handle that.
Someday I'll figure it out...
|
|
|
|
|
well you can save the location as a point value in your settings.
my.settings.SaveLocation = my.settings.location
where SaveLocation is your variable.
|
|
|
|
|
IIRC on a multi-monitor environment, Windows puts every Form on the "primary monitor"
by default, and that might not be what you want.
If the desktop got extended over all monitors (that's a checkbox per monitor),
and if the monitors are arranged such that they (almost) cover a true rectangle,
then it makes sense to validate a form's bounds (thats location+size) against
SystemInformation.VirtualScreen
You may want to have a closer look at the Rectangle type, in particular Rectangle.Contains().
If the desktop does not extend over all monitors, then I don't know how forms get
positioned on those non-desktop monitors. Feel free to tell me more about that.
Luc Pattyn [Forum Guidelines] [My Articles]
this weeks tips:
- make Visual display line numbers: Tools/Options/TextEditor/AllLanguages/General
- show exceptions with ToString() to see all information
- before you ask a question here, search CodeProject, then Google
|
|
|
|
|
Hi there,
this might be quite simple to do but i'm new to this, so what i would like to do is display the computers RAM as showing on the computer properties general tab, just under the processor info. i want to show as 512MB, rather than in bytes.
please help.
thanks
|
|
|
|
|
Hi,
these are the steps:
- get the size (you seem to do this with WMI), it will be a long 32-bit integer
BTW: I am C# programmer who prefers to use P/Invoke to call GlobalMemoryStatus()
in kernel32.dll, since I don't like WMI that much, it is slow for starters
- optionally: round it to a multiple of whatever seems appropriate
- divide by 1024*1024
- show it somehow (maybe as Label.Text)
You should get most of this working, then ask a detailed question if and when you're stuck.
-- modified at 17:47 Monday 6th August, 2007
Luc Pattyn [Forum Guidelines] [My Articles]
this weeks tips:
- make Visual display line numbers: Tools/Options/TextEditor/AllLanguages/General
- show exceptions with ToString() to see all information
- before you ask a question here, search CodeProject, then Google
|
|
|
|
|
What he said. (or she, just to be fair )
1024^2 turns out to be 1048576. What I did was take the straight value from My.Computer.Info.TotalPhysicalMemory and divide it by 1048576 and added Mb to the end. And there you have it.
|
|
|
|
|
Looks good, I forgot VB offers more info through My.Computer than the other CLR languages do.
BTW: I would not write 1048576 since that looks like a magic number, I really write 1024*1024
which meaning I trust is obvious for everyone, and is less error prone.
Luc Pattyn [Forum Guidelines] [My Articles]
this weeks tips:
- make Visual display line numbers: Tools/Options/TextEditor/AllLanguages/General
- show exceptions with ToString() to see all information
- before you ask a question here, search CodeProject, then Google
|
|
|
|
|
I usually assign a global variable to 1024^2, but I wrote this app before I started doing that (shortly after you posted your previous post )
|
|
|
|
|
What, in your opinion, is the best way to store/retrieve form sizes?
|
|
|
|
|
Luc Pattyn [Forum Guidelines] [My Articles]
this weeks tips:
- make Visual display line numbers: Tools/Options/TextEditor/AllLanguages/General
- show exceptions with ToString() to see all information
- before you ask a question here, search CodeProject, then Google
|
|
|
|
|
I'm trying to have a form that automatically saves it's size and state. I've got the state part down, but I now need the size part. If anyone has ideas for a form location part I'm open for ideas? Robust code would be nice
|
|
|
|
|
you already are saving and restoring the state, whatever that may be (visible,
minimized, maximized, ... ?). But you ask about the size, which is just two numbers ?
Whatever scheme you have choosen, add a couple of lines to it, two to write a number,
and two to four to read and parse a number.
Luc Pattyn [Forum Guidelines] [My Articles]
this weeks tips:
- make Visual display line numbers: Tools/Options/TextEditor/AllLanguages/General
- show exceptions with ToString() to see all information
- before you ask a question here, search CodeProject, then Google
|
|
|
|
|
I get the following problem (probably because I didn't parse correctly):
Expression is a value and therefore cannot be the target of an assignment.
Is there a better way to do this:
Me.Size.Height = My.Settings.MainFormHeight ' I have a setting called MainFormHeight
|
|
|
|
|
OK, now I see your problem.
Form has Size property, and Size has a Height property,
both have getters and setters; nevertheless you can not change a Form's height by
doing Form.Size.Height=somevalue;
instead you should create a new instance of Size with the right values in the constructor,
then assign this to Form.Size
Luc Pattyn [Forum Guidelines] [My Articles]
this weeks tips:
- make Visual display line numbers: Tools/Options/TextEditor/AllLanguages/General
- show exceptions with ToString() to see all information
- before you ask a question here, search CodeProject, then Google
|
|
|
|
|
Excellent! Works great! I can tell it to look at a variable too, right?
|
|
|
|
|
Sorry, I once more don't know what you mean by that. But probably yes.
Luc Pattyn [Forum Guidelines] [My Articles]
this weeks tips:
- make Visual display line numbers: Tools/Options/TextEditor/AllLanguages/General
- show exceptions with ToString() to see all information
- before you ask a question here, search CodeProject, then Google
|
|
|
|
|
you should also be able to save the form size as a size value in settings as oppose to two seperate settings.
|
|
|
|