|
Programmer2k4 wrote:
In the case of the dark side being VB .Net
See - deep down, you DO know.
Programmer2k4 wrote:
Anyways, my main question is, what is the CodeProject forum code for the dancing dude?
*grin* If I knew, I'd have used it. I used to know all that stuff, but I've since forgotten.
BTW - did you ever respond to my comments to your post about VB.NET in the soapbox ? I was genuinely interested in your reply to my comments.
Christian
I have several lifelong friends that are New Yorkers but I have always gravitated toward the weirdo's. - Richard Stringer
|
|
|
|
|
VB6 had it's share of problems. But so does the NET framework. NET is full of holes, inconsistencies, etc. It has just as many evils as VB 6 had, they are just different ones now.
One thing you could say for VB6, that certainly is not true for NET - you could deliver a fully functional application over the web in a reasonable size download without forcing the user to have to also download a 20+MB framework!!!
Robert
|
|
|
|
|
rwestgraham wrote:
NET is full of holes, inconsistencies, etc.
Where do you believe this to be the case ? ( serious question )
rwestgraham wrote:
It has just as many evils as VB 6 had, they are just different ones now.
I find this less likely, but by all means, enlighten me.
rwestgraham wrote:
One thing you could say for VB6, that certainly is not true for NET - you could deliver a fully functional application over the web in a reasonable size download without forcing the user to have to also download a 20+MB framework!!!
Yeah, that much is true. The Achilles heel of .NET is the framework for modem users, at least in the short term. Once everyone has it, it won't matter anymore, obviously.
Christian
I have several lifelong friends that are New Yorkers but I have always gravitated toward the weirdo's. - Richard Stringer
|
|
|
|
|
Well let me say that ADO.NET is indeed a vast improvement. Security is also nice - something we did not have at all in VB6. There are definitely some advantages to NET. And in general, I am in fact gradualy moving towards developing all my applications on NET. But I'm still using VB6 too, as are many developers.
But I'm still not all that impressed with many aspects of NET. If I put VB6 beside VB.NET I don't exactly see a lump of coal and a diamond. I see two different rocks.
I'll address the questions you pose. Not in the same order, but I think by the end I cover the issues raised.
First let me rebut some of the common arguments against VB6. The most common one favored by VB bashers was that it was not an "OOP" language because it did not support inheritence. This is a favorite argument but one of highly questionable validity.
VB6 did not support inheritencve, but it did support interface implementation.
So let's consider what some of the great minds of OOP have said. Gamma et al used mainly C++ and SmallTalk. Both support inheritence. But Gamma et al also explicitly stated that interface programming was always the preferred method because it allowed looser coupling, and that inheritence should be avoided when possible. Apparantly a lot of the people who rabidly attacked the OOP capabilities of VB6 also never bothered to study the classics of the OOP methodolgy they professed to rever.
And some of the great minds of Microsoft technology, most notably Matthew Curland have also pointed out that inheritence was a practice full of pitfalls and also best avoided.
Now, the real OOP issue with VB6 in terms of OOP was never the constant drivel of VB bashers about no inheritence, That was just the party propaganda mantra repeated ad nauseum by VB haters. The real OOP flaw in VB6 was the lack of support for true constructors/destructors. But a skilled programmer could mitigate most of these issues in VB6 by use of factory methods.
So basically, in terms of the core programming of classes - business objects, the most important single area of code implementation - NET offers only minor improvements - real constructors. But VB6 was also quite capable of supporting the majority of classical OOP methodologies and design patterns in the hands of a skilled programmer.
Now, in terms of true flaws of VB6: many inconsistencies in the GUI controls properties and implementations.
NET has the same problem. They inherit from the same basic classes but the derived classes frequently do not implement expected properties.
Just a few examples off the top of my head:
--------------------------------------------------------------------------------------------------------
The Button, CheckBox, and RadioButton all derive from the common ButtonBase base class. However the CheckBox does NOT support the PerformClick method.
The ComboBox does not support the TextLength property, even though it does support other properties for text manipulation in it’s textbox area which are common to the TextBox control.
NumericUpDown does not support wrapping. The DomainUpDown supports wrapping.
Why not? Of course, obviously these are not major issues. But it is still the same sort of inconsistent implementation of controls we had in VB6. Not critical, but very annoying.
But here is one that sucks: Tab Page Visible property has no effect. Many applications have dialogs that expose certain options on Tab Pages but not others depending on the user's privilige levels. In VB NET we cannot just hide the tabs accordingly., By virtue of inheritence from thed base Control class, a Visible property is exposed. It's there, it just does not work. And I can see no technical reason why it should not.
--------------------------------------------------------------------------------------------------------
While you may consider these minor issues, what I am trying to point out is this basic issue:
Is it not the fundamental basis of having the framework that inheritence creates a consistent programming interface, with some derived classes having extended functionality? So why these inconsistencies?
It is anti-thetical to the entire framework concept and certainly points out that the Microsoft implementation of the framework or at least parts of it, is flawed at even basic levels of functionality.
Next notable VB6 flaw - the P&D Wizard: No features. Everything installed from a single package.
Compare to the VS.NET Setup: Windows Installer supports features, which are an important part of a multi-component complex professional install. But VS NET Setups do not support their implementation. Everything still gets lumped into a single "feature", just like with thew old P&D package. Brilliant! Just Brilliant!
So let's summarize here and see where we are so far in terms of platform comparison:
1) Programming business objects is primarily the product of the developer not the platform. True for all languages. Designing robust, maintainable, extendable business object classes required developer skill in VB6 and still requires comparable developer skill in NET. Net result? (bad pun Realistically, little has changed.
2) Programming a GUI in VB6 meant dealing with inconsistent control implmentations. Programming a GUI in VB.NET means dealing with inconsistent control implementations. NET is probabaly a little better, but nothing to write home to Mom about. Plus there is the learning curve of having to discover and circumvent a new set of inconsistencies. Things have changed, maybe a little for the better, but the framework controls are hardly the consistent animals they should be based upon the concept of a framework platform.
3) Setup Projects? Different, not neccessarily better. At least you could pretty easily hack the VB6 setup project to create "Feature" style installs. Try manually editing an MSI created from VS.NET!! Hope you have a lot of time on your hands.
Now lets' consider the real "evils" I perceive in NET:
1) Biggest by far is startup time. Even with native images. The framework takes a long time to load, and you cannot even get up a splash screen before it does. Vb6 could pop up a splash screen in less than a second then you coould do your initialization. Not so in NET. Way too slow at startup. Keep in mind that the tytpical developers powerhouse is a few lightyears ahead of the typical box the vast majority of users have sitting in their cubicle. Net apps load noticeably slow on my machine. On the basic business aqpp grunt user's computer, the speed which a NET app loads is probably better described as "glacial".
2) The framework size. we agree on this. But we may not agree on how long "short term" really is. I assume you consider short term as "soon". For the subset of "everyone" that falls in the domain of my concern, I consider "once everyone has it" as nowhere in the immediately foreseeable future. Not this year. Not next year.
I work in healthcare. Many small doctor's offices are using Win98 still. Convincing them to change applications is tough, but doable if you have a good product. Convincing them to change their entire platform is another matter altogether. Users are not developers. And despite what many developers might think, you might be surprised by how long it really will be before most users are running platforms with NET framework already installed. And doctors almost always only have a dialup because that is the standard way they submit their claims. They are not paying for DSL or Broadband so the nurses can surf the web. If they have to downoad the framework, and most will, you can forget it. It ain't gonna happen. That forces you to distrbute NET applications to this sector on media. That means creating media, creating professional looking media with logo printed CDs, physical distribution. It is not a minor issue by any measn.
3) Stability. I've used Visual Studio 6 for years. It crashed occasionally because I was hacking some program like writing threads in VB6 or subclassing. So I restarted it. But I never fatally crashed VS6. I NEVER had to uninstall VS6 and reinstall it because something stopped working. NEVER!
Look at this forum. There is an entire group on this forum dedicated to problems with the NET IDE. I personally have had my NET IDE fail in some unrecoverable fashion twice. Why? Because of I downloaded friggin Internet Explorer service pack patches and updates. An Internet Explorer service pack corrupts my VS NET IDE? What's up with that?
If the NET IDE itself is so fragile, and obviously it is, based not only on my experience but hundreds of others, why should I be confident of anything about the framework stability on a client's machine?
Maybe the framework is more stable. But the only evidence I have is that the IDE stability is just plain sh*tty. What can I deduce about the stability of the framework? Nothing really. Hopefully MS put more emphasis on stability of the framework. Maybe that would explain why they apparantly put so little effort into the stability of the IDE.
But a sh*tty IDE does not exactly make me tend to believe the framework stability is rock solid.
And many if not most development products end up being released late. But NET's original release was not late, it was really, really late. That generally always implies a lot of hurry-scurry last minute QFEs to get the product out. 1.1 certainly fixed some of those. But I think it is safe to assume that a lot of bugs were also carried over from 1.0. That hardly inspires confidence in stability.
I could go on, but ....
You know it's a lot like the TV commercials. The drug ad where the guy says: "When people say something is better, you'd want proof, right?"
Well, I see a lot of people who really love to hate Vb6. The same people generally rant and rave about NET being better. Sorry. I think it's based on personal basis more than anything. I want proof. Show me the money ...
Robert
|
|
|
|
|
rwestgraham wrote:
Now, in terms of true flaws of VB6: many inconsistencies in the GUI controls properties and implementations.
No, I don't count that as a major flaw of VB6/VB.NET, at least my lengthy list did not include this, or anything about inheritance.
rwestgraham wrote:
Tab Page Visible property has no effect
Really ? I'm sure it worked for me when I used tab pages in a C# application.
rwestgraham wrote:
Compare to the VS.NET Setup: Windows Installer supports features, which are an important part of a multi-component complex professional install. But VS NET Setups do not support their implementation. Everything still gets lumped into a single "feature", just like with thew old P&D package. Brilliant! Just Brilliant!
I have no time for the built in Windows Installer implimentation, it's early days and bare bones ( in VC6, they gave us a pared down version of InstallShield, from memory ). I have bought and use a 3rd party installer product ( advanced installer, FWIW )
rwestgraham wrote:
Biggest by far is startup time. Even with native images.
That's mostly the framework starting for the first time. I don't see how this is a big problem, to be honest. So your user has to wait a second for a splash screen. If you wanted speed, what were you doing in VB6 ? That's what C++ is for.
rwestgraham wrote:
I assume you consider short term as "soon".
*grin* Probably when either a killer .NET app comes along, or the version of Windows after XP is widely installed, or Microsoft include it in a service pack that has some other compelling reason for people to download.
rwestgraham wrote:
There is an entire group on this forum dedicated to problems with the NET IDE.
Yeah, but how often do people post to it ? The VS.NET IDE rarely crashes for me, and that only on a machine I know to be unstable. Even then, it doesn't crash, it simply fails to kill the process it's meant to be debugging, and freezes. I kill and restart, and it's fine.
rwestgraham wrote:
But a sh*tty IDE does not exactly make me tend to believe the framework stability is rock solid.
The IDE certainly does some things I hate, for example the time it takes to decide what errors to show me when it finishes compiling. But I regard it as stable.
rwestgraham wrote:
Well, I see a lot of people who really love to hate Vb6. The same people generally rant and rave about NET being better. Sorry. I think it's based on personal basis more than anything. I want proof. Show me the money ...
To be honest, my claim is that VB is crap, full stop, and that C# is better. So I can't really help you
It sounds like you're in the 5% of VB users who are also programmers though. Why did you move to VB.NET instead of C# ?
Christian
I have several lifelong friends that are New Yorkers but I have always gravitated toward the weirdo's. - Richard Stringer
|
|
|
|
|
Christian Graus wrote:
To be honest, my claim is that VB is crap, full stop, and that C# is better. So I can't really help you
In what way? At least in terms of NET, which is the only valid comparison. No point in comparing VB6 to C#.
How is VB.NET crap compared to C#? Specific examples.
After all, when all is said and done, the code that actually runs is identical. CLR remember?
Christian Graus wrote:
It sounds like you're in the 5% of VB users who are also programmers though. Why did you move to VB.NET instead of C# ?
What significent capabilities does C# provide that VB does not? C# does not come close to C++. If I need power I use C++. If I need convenience I use VB. Actually I see little difference other than syntax. If you like braces, use C#.
I think people that think C# is world's better than VB.NET just have a thing about the letters "VB".
What's the real difference that makes you think C# is great and VB.NET is crap?
Robert
|
|
|
|
|
Christian Graus wrote:
See - deep down, you DO know.
Yes, I suppose I do.
Christian Graus wrote:
BTW - did you ever respond to my comments to your post about VB.NET in the soapbox ? I was genuinely interested in your reply to my comments.
I didn't reply ... If you want, I could send you an email with my thoughts.
Programmer2k4
My sig:
"And it is a professional faux pas to pay someone else to destroy your computer when you are perfectly capable of destroying it yourself." - Roger Wright
I now use my CodeProject Blog!
Most recent blog post: April 3
|
|
|
|
|
I have a combo box in my form that take values from the other table in the database on form load.
On the Click Property of the Save Button i have put the code to clear the values of all text boxes and Combo Box after saving the data.
I used the following code to clear the combo box:
cboname.listindex = -1
The style of the combo box is set to 2-dropdown.
The data is saved to the database correctly but after that while clearing the text in the combo box it gives the Run Time Error No. 381 i.e. Invalid Property Array Index.
Can any body please tell me that what code should i do to clear those values in the combo box???
|
|
|
|
|
Hi All,
Am getting an Error like for the below code when i try to perform ExecuteNonquery()
strSql = "Insert into StudentTransaction(Id,AdmissionNo,ClassName,SectionName,RollNo,Year) Values ('" & txtId.Text & "' ,'" & cmbAdmissionNo.SelectedItem & "','" & cmbClassName.SelectedItem & "','" & cmbSectionName.SelectedItem & "','" & txtRollNo.Text & "','" & cmbYear.SelectedItem & "')"
Error:
Syntax Error in INSERT INTO statement at .....
The Same Query when i run in sqlplus its working fine.What's the problem with this..
can anyone help me
Thanks in advance.
|
|
|
|
|
The statement you used in SQLPlus is not identical to the statement your generating using string concatenation. A practice which, BTW, is frowned upon with great predjudice here at CP. You've opened yourself up to SQL Injection attacks using this method. You've also robbed yourself of the wonders of having SqlParameter objects check your values and convert them to the appropriate format for you, automatically. But if you want to give yourself more work, like this problem your having, that's fine us too.
But, if you want to do it the right way from the start, look into parameterized queries. You'll save yourself alot of hassel in the future and it's what real companies expect of your code.
Now, back to your problem. You might want to dump that string to the Output window before you execute it so you can see EXACTLY what your trying to have SQL execute for you.
strSql = "Inset into StudentTransaction(..."
Debug.WriteLine(strSql)
...whatever code you have next, set a breakpoint on this line
then look in the Output window of the IDE to see the
SQL statement your code actually built.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
|
I have a problem in Visual Basic 6.0:
I have created 2 textboxes and 2 timers. I have set the interval for one timer as 1 and the interval for the other timer as 1000. I am using 2 counters, one in each timer and displaying the value of each counter in the 2 different textboxes. Each counter is increased by 1 whenever the corresponding timer event is executed.
Therefore when the second textbox displays the value 1 (i.e when the timer with interval 1000 is executed once), the value in the first textbox must be 1000 (since the first timer interval is 1).
But this is not happening. The first textbox displays a value less than 100. What could be the problem?
Here is the code:
General declarations:
Dim ctr1, ctr2 As Integer
Private Sub Form_Load()
ctr1 = 0
ctr2=0
End Sub
Private Sub Timer1_Timer()
ctr1 = ctr1 + 1
Text1.Text = ctr1
End Sub
Private Sub Timer2_Timer()
ctr2 = ctr2 + 1
Text2.Text = ctr2
End Sub
-----------------------------------------------------------------------------
Interval of timer1 is 1 and interval of timer2 is 1000 and both are enabled by default.
|
|
|
|
|
You'll never to get this to work that way you think it should.
The Timers send their Tick events into the Form's message pump, they don't call the functions directly. Also, the timers don't really have a resolution of 1 millisecond. You can get 1000 tick events out of your first timers, but it'll take greater than one second to execute them all while updating the text in the TextBox. This is because when you update the TextBox, you're also injecting WM_PAINT messages into the Form's message queue, between Tick events for the timer. Starting to see why your now getting 1 millisecond performance yet? It takes greater than 1 millisecond to repaint the invalidated regions of the form and it's controls. So, now that you've repainted the form between the Tick event at 1 millisecond and the tick event at 2 milliseconds, you've actually used up about 10 milliseconds updating and repainting the form.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
I am working on a program in VB.Net which reads and send SMS via a modem (Brand is iTegno) which has a normal mobile phone SIM card. Sending and reading of SMS in English is working.
Receiving SMS with Chinese text is also solved by decoding the text received. However, I have not been able to send SMS in Chinese. My research on this issue reveals that I have to sent the SMS in PDU format. I managed to go as far as sending(using AT commands) the message length. I get a response Invalid PDU parameters on sending the message. Would appreciate if someone can identify what is causing the error. Here is what my program is doing:-
Step #1
Send command "AT+CMGF=0" + chr(13) 'to indicate PDU format
Gets a repsonse "OK"
Step #2
Send command "AT+CMGS=16" + chr(13)
Gets a repsonse ">"
Notes:
16 is the length from 11|00|0B|91|06|21|13|69|16|F7|00|08|AA|02|4E|2D sent in Step #3
Step #3
Send a string containing the hexadecimal values
11|00|0B|91|06|21|13|69|16|F7|00|08|AA|02|4E|2D + chr(26)
Gets a repsonse ""+CMS ERROR: 304".
304 is error code for Invalid PDU mode parameter
Notes:
00|11|00
SMSC Center Address | Message Flag | Message Reference Number
0B|91|06|21|13|69|16|F7 – Destination Address
11 Digits | International Number | Phone Number 60123196617
00|08|AA
Protocol identifier | Data Coding Scheme(Chinese UCS2) | Validitity Period
02|4E|2D – User Data
2 pairs | Message '中'
bgm2291
|
|
|
|
|
It looks like you need to be Googling for this. So far, I don't see a VB.NET question in your post.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
iTegno has a developers contact at this email address: developers@itegno.com
|
|
|
|
|
Hello,
Please tell me how to check whether the wav file is in the PCM format or in some other format using visual Basic.
Thank u
goood
|
|
|
|
|
http://www.vbaccelerator.com/home/VB/Code/vbMedia/Audio/WAV_File_Viewer/article.asp
|
|
|
|
|
Hello everybody !
I am making a class, in these class I want to Inhertit DataColumnCollection Class but it's giving some error on inherit.
Error:-
Class must declare a 'Sub New' because its base class 'DataColumnCollection' does not have an accessible 'Sub New' that can be called with no arguments.
pkc
|
|
|
|
|
I have developed an account system. and when i deploy it a message appeared "Some files are out of date". i just countinued but on target mechine a message appeared "Some files are out of date do you want to update them click yes to restart" i did and after loading windows again when i started setup.exe again same message appeared again so i am still unable to install that application . Target plate form is Microsoft Windows 98.
Salman Sheikh
|
|
|
|
|
hello, how can i add a SWF file to a form without importing it as a picture
|
|
|
|
|
You'll have to add a Reference to the Flash Player COM control, add it to the ToolBox, then drop one on your form. I'm not really familiar with it past that though.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
can anybody suggest me a way to build a trial version of a progrm using code?
samitha
|
|
|
|
|
Hi,
I try to upload DBGrid in localhost (Windows Server), i use Tomcat 5 and it's running well, but when i uploaded the DBGrid project in IP Public, it's an error :unable to load tag handler class "com.freeware.gridtag.DBGrid" for tag "grd:dbgrid"
Notes: i use Linux server in IP public.
please give me the solution ASAP.
|
|
|
|
|
First off, we don't support third party controls here. Considering there's thousands of them out there, it's impossible for us to know every single one.
Second, you haven't supplied any of your code showing what your doing (or not doing). Without that, there's little we can do to help you.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|