[AccessD] VB.NET

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.




More information about the AccessD mailing list