Brett Barabash
BBarabash at TappeConstruction.com
Tue Jun 1 15:55:08 CDT 2004
My understanding was that it uses JavaScript to perform the custom control behaviors. My understanding was that the server renders it to something that most browsers can accept. I even saw a demo where an ASP.NET app adapted its output to WML on a browser-enabled text-only cell phone. Haven't delved far enough into this aspect to tell you exactly which browsers it works with. Some of the things I mentioned are simply style issues. I'd like to comment further on a few of the items you discussed, though: > Haven't found Initialize/Terminate events to be 'flaky'. Most of my class modules require some sort of initialization code. Ideally, you could use the Initialize event to ensure that the code runs before something else. Unfortunately, there is no way to pass in arguments to the Initialize event. As a result, I, as well as many other VB developers, end up having to write a separate sub (Init, Start, etc.) to initialize it. And, of course, other developers using my code need to be aware of it and remember to call it before doing anything else. VB.NET allows you to define multiple constructors for a class, to handle various types of object construction. For a Employee object, I could have a constructor that passes in Name and SSN, as well as a default constructor that creates the object without initializing the variables. When creating the object, it looks like: Dim emp1 As Employee = New Employee() Dim emp2 As Employee = New Employee("Joe Blow", "111-22-3333") The best part is if I absolutely, positively need certain things to be present when initializing the class, I can omit the default constructor and force them to supply the necessary parameters at instantiation. > Not sure what you really meant with the bracket syntax for functions and subs. This came up in a recent discussion. When calling a another procedure, you need to follow this (referred to by many as odd) convention: MySub x, y z = MySub(x, y) Call MySub(x, y) but NOT MySub(x, y) In VB.NET, you always place parentheses around the arguments, regardless of whether or not you do anything with its output: MySub(x, y) z = MySub(x, y) In the case of subs without arguments, you still include the parentheses e.g. MySub(), which makes it abundantly clear that you are calling another procedure without needing to use the Call keyword. > Never found Win32 API's to be combersome. I think that would put you in the minority if we took a poll. Myself, I personally dislike: - Creating callback stub procedures and working with AddressOf (especially since this is not allowed in VB6 class modules). - Padding string buffers, terminating with C nulls, and parsing the returned contents to trim out actual string value. - Determining what the return value actually means. For some API calls, it's a true or false. For others, it's the length of the buffer. Zero consistency. - Separating LOWORD and HIWORD parameter values from Longs. - Allocating/obtaining/releasing resources (Device Contexts, Brushes, Memory Locks, etc.) - Digging through the API Text Viewer to find procedures with no further documentation. - Having my entire application GPF (ditching any work I forgot to save) if I overload a buffer or send in the wrong datatype into a procedure. I would call that cumbersome. Maybe it's just a word thing <GRIN> > Have never found collections to be tricky to work with The "tricky" part was directed towards Arrays, not Collections. I've lost track of the number of times I've written code that checks (say in a loop) to ensure that I haven't reached the upper bounds of an array, and ReDim Preserve if I have. Then there's the whole business of trying to traverse an "empty" array. Array index out of bounds, anyone? The "limited" part was directed towards both Arrays and Collections, as they lack some key features that would make life a whole lot easier. Namely searching and sorting. > Used File I/O commands in VB pretty easily My biggest gripe is with the Serial I/O functions parsing commas and semicolons and trying to separate them into multiple fields, or choking on non-alphanumeric ASCII characters. Much of this has been improved upon with the System.IO class. > VB does have console support, it just can't output to it! LOL. But if you are writing batch files, you just need to be able to call it. <grin> What I like the most about console support is that finally you can return a value to the console on error, which is very helpful in batch processing. -----Original Message----- From: DWUTKA at marlow.com [mailto:DWUTKA at marlow.com] Sent: Tuesday, June 01, 2004 2:46 PM To: accessd at databaseadvisors.com Subject: RE: [AccessD] VB.NET Actually, I watched some of the ASP.Net stuff, and the only 'impressive' feature I saw was the ability to replace .dll's that are in use. It's an annoyance to restart and IIS server, but it's not that difficult really. So it's a neat trick, but it's not making me gear up for ASP.NET. What I REALLY want to know about ASP.NET, is how browser dependant is it? They had something VERY similiar to what you see as 'features' of ASP.NET in some 'remote' scripting language. Can't remember the exact name. However, it required IE, and IE only. A lot of what ASP.NET is doing, is mimicing features I read about a long time ago with the 'remote' scripting. So I'm just a bit cautious as to how 'wowie' asp tricks get. We have users out there with VERY old browsers....long story. As far as the items I disagree with: Haven't found Initialize/Terminate events to be 'flaky'. (strongly agreed with the Dim x As New comment though...pure evil. I used it for a while, and didn't even know about it...) I personally don't care to initialize variables when I'm declaring them. To me, that is more of a constant role, then an variable role. I personally prefer to declare my variables and then get to assigning them values. I think it helps me structure my code better. By thinking only about what variables I am going to need, I get a pretty good picture of the 'framework' I am building. I find that some of my best 'code' is when I don't have to declare a variable 'mid stream'. (I'll declare it at top, but I mean: 'Ooops, need a variable for that...' kind of thing). Not sure what you really meant with the bracket syntax for functions and subs. Never found Win32 API's to be combersome. Only quirk I have ever found are the ones that require ByVal (which I also agree should be the default). Have never found collections to be tricky to work with, and also have not found them to be limited either. (What limitations are you referring too?) Used File I/O commands in VB pretty easily, but I think I use slightly different syntax/commands then what I have seen on the list. VB does have console support, it just can't output to it! LOL. But if you are writing batch files, you just need to be able to call it. <grin> (kind of teasing on this one, I think it would be handy too.....I think I did find something sometime that showed a way to create console output from VB). Only real issue I have found with the services, is that the OCX does not allow for multi-threading. Other then that, I practically have a 'Windows Service Project' for VB 6.0. Practically drop in place (Actually, I usually just grab one I built, and plop in the new code (depending on whether it's a timer or 'event' driven service).) Have never had 'unstable' issues with Multi-threading, but I will admit that it is somewhat a pain to implement....well, somewhat is understating it a little! LOL. Drew -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com]On Behalf Of Brett Barabash Sent: Tuesday, June 01, 2004 2:23 PM To: 'Access Developers discussion and problem solving' Subject: RE: [AccessD] VB.NET I'd be interested in knowing which ones you disagree with. To gain perspective, of course, not to stir up a heated argument <VBG> (If you wanna talk about being wowed, try out the new ASP.NET features!) Bryan, Andy et al: I realize that this discussion is better suited to dba-VB, but since the majority of listers aren't subscribed to it, I purposely left it here. I promise to let this thread die on my end by sundown. -- _______________________________________________ AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com -------------------------------------------------------------------------------------------------------------------- The information in this email may contain confidential information that is legally privileged. The information is only for the use of the intended recipient(s) named above. If you are not the intended recipient(s), you are hereby notified that any disclosure, copying, distribution, or the taking of any action in regard to the content of this email is strictly prohibited. If transmission is incorrect, unclear, or incomplete, please notify the sender immediately. The authorized recipient(s) of this information is/are prohibited from disclosing this information to any other party and is/are required to destroy the information after its stated need has been fulfilled. Any views expressed in this message are those of the individual sender, except where the sender specifies and with authority, states them to be the views of Tappe Construction Co. This footer also confirms that this email message has been scanned for the presence of computer viruses.Scanning of this message and addition of this footer is performed by SurfControl E-mail Filter software in conjunction with virus detection software.