News 2INETA
Home Up News 15 News 14 News 13 News 12 News 11 News 10 News 9 News 8 News 7 News 6 News 5 News 4 News 3 News 2 News 1

 

Visual Basic Developer Notes and Links

VBO Ad

_____________________________________

ULTIMATE TV: DO WHAT YOU GOTTA DO AND STILL WATCH WHAT YOU WANNA WATCH

Been wondering what's the big deal about Ultimate TV? With Microsoft Ultimate TV you can digitally record and store up to 35 hours+ of TV with the touch of a button, watch or record two live shows at the same time++ and surf the web! Find out why Walt Mossberg of The Wall Street Journal says, "I'm Ultimate TV's biggest fan!"

<http://www.microsoft.com/insider/mi/ulttv.htm>

_____________________________________

GET READY FOR THE NEW WINDOWS EXPERIENCE!

With the Windows XP(r) Preview Program you'll see how you can do more with your computer! Windows XP is smarter, yet simplified. You can easily find what you're looking for, share your computer, and keep your computer up-to-date, all in a new design that works the way you do. (The Windows team has posted lots of new information, including images of this all new design).

<http://www.microsoft.com/insider/mi/winxppre.htm>

MICROSOFT READER WITH CLEARTYPE

More and more publishers are creating Microsoft Reader eBooks every day. On the Reader website you can see the latest books and download Microsoft Reader with ClearType(tm) display technology FREE today.

<http://www.microsoft.com/insider/mi/reader.htm>

_____________________________________

EIGHTY-FOUR TIPS TO BOOST THE POWER OF WINDOWS ME

Use these handy tricks to make your computer faster, easier, and more fun. Activate hovering mode, adjust multimedia options, set accessibility options for the keyboard or mouse, and much more.

<http://www.microsoft.com/insider/mi/winmetips.htm>

_____________________________________

MORE HOW-TO ARTICLES

E-MAIL ALL THE ELEMENTS OF A WEB PAGE AS A SINGLE ATTACHMENT IN OFFICE 2000

Save a Web page and all of its supporting files as one file, and send it as a single attachment in an e-mail message.

<http://www.microsoft.com/insider/articles/sinato2.htm>

 

WINDOWS 98: GET TO KNOW AN OLD STANDARD

There's more to the familiar Windows "Save As" dialog box. than you think

<http://www.microsoft.com/insider/mi/windowsdialog.htm>

 

 

----------------------

NEW SECURITY BULLETINS

----------------------

Erroneous VeriSign-Issued Digital Certificates Pose Spoofing Hazard

<http://www.microsoft.com/technet/security/bulletin/MS01-017.asp>

 

-------------------------------

SUPPORT NEWS

-------------------------------

How to Close All Files Opened by Network Clients from the Command Line (Q290585)

<http://www.microsoft.com/technet/support/kb.asp?ID=290585>

 

SQL SERVER UPDATE TIP OF THE WEEK

This SQL Server tip is brought to you by SQL Server Magaine UPDATE, the FREE e-mail newsletter that delivers relevant and timely SQL Server tips and new product information once a week -- right to your desktop! To subscribe, go to

<http://www.win2000mag.net/Email/Index.cfm?code=00inxtnf&id=2>

 

--12 ways to have more fun with Windows Me

Windows Me is a great way to work and play with your computer at home. Check out a cool dozen ways to make the experience even better.

<http://www.microsoft.com/windowsme/using/fun/tips/default.asp>

--New to computing? Start with the basics

Everyone starts somewhere. Why not start here? We've gathered 15 links to useful information about starting with e-mail, accessing the Internet, using your browser, and more.

<http://www.microsoft.com/windowsme/using/basics/default.asp>

--10 top reasons to step up to Windows Me now

Windows Me makes sense for you at least 10 different ways: It's a new way to organize your home movies. It's got what you need to move your photos from a shoebox to the Web. And that's just the start. The list goes on here.

<http://www.microsoft.com/windowsme/upgrade/upgradewhy.asp>

--Look for solutions to Windows Me problems here

Our Support page provides links to solutions and troubleshooting tips for setup issues with Windows Me and more. You'll find the most common problems and information about how to deal with them here, updated weekly.

<http://www.microsoft.com/windowsme/support/default.asp>

 

--Can you handle the truth about Xbox?

At the new Xbox site, the truth is revealed. Find out all about the console itself as well as all the new Xbox games. Plus, act quickly and sign up to become an Xbox playtester. With truth like this, who needs rumors?

<http://www.xbox.com/home.htm>

PRODUCT AND TECHNOLOGY NEWS

* Visual Studio.NET Open Tools Platform

A set of three core technologies that enable developers to use Visual Studio.NET as a complete platform for developing and customizing next-generation Web Services and applications. It is designed to facilitate productivity, flexibility, and tight integration, which gives customers a more complete set of solutions tailored to their specific needs. <http://msdn.microsoft.com/vstudio/vsip/default.asp>

NEW ON MSDN ONLINE

* Scripting Clinic: Scripting the Experience with Microsoft Office Developer

<http://msdn.microsoft.com/voices/scripting03122001.asp>

* Working with C#: Open the Box! Quick!

<http://msdn.microsoft.com/voices/csharp03152001.asp>

MSDN LIBRARY AND WEB WORKSHOP

* Microsoft Inductive User Interface Guidelines

<http://msdn.microsoft.com/library/default.asp?URL=/library/techart/IUIGuidelines.htm>

* Bitmaps in Microsoft SQL Server 2000

<http://msdn.microsoft.com/library/default.asp?URL=/library/techart/SQLbitmaps.htm>

* Cartoon Rendering in DirectX 8 Using Vertex Shaders

<http://msdn.microsoft.com/library/default.asp?URL=/library/techart/DXVertex.htm>

* Duwamish Online Deployment

<http://msdn.microsoft.com/library/default.asp?URL=/library/techart/d5deployroot.htm>

* Duwamish Online Development

<http://msdn.microsoft.com/library/default.asp?URL=/library/techart/d5devroot.htm>

* Duwamish Online Using the XML Features of SQL Server 2000

<http://msdn.microsoft.com/library/default.asp?URL=/library/techart/d5sqlxmlroot.htm>

FEATURED DOWNLOADS

* Soap Toolkit 2.0 Beta 2

<http://msdn.microsoft.com/downloads/default.asp?URL=/code/sample.asp?url=/msdn-files/027/001/580/msdncompositedoc.xml>

THIRD-PARTY TRAINING AND RESOURCES

* Mainsoft Visual MainWin

This allows you to create native UNIX applications from Windows source code. Develop applications in Microsoft's Visual Studio environment, then launch a UNIX build with a click of your mouse. Get a free evaluation download available for a limited time. <http://www.mainsoft.com/products/mainwin.html?msdnflash>

SUPPORT

* Visual Studio 6.0 Service Pack 5

<http://msdn.microsoft.com/vstudio/sp/vs6sp5/default.asp>

* HOWTO: Log On to Terminal Server Session Programmatically from VB

<http://support.microsoft.com/support/kb/articles/Q281/4/17.ASP?LN=EN-US&SD=msdn&FR=0&qry=Q281417>

* HOWTO: Dynamically Populate a Group Data Report in Visual Basic

<http://support.microsoft.com/support/kb/articles/Q289/7/93.ASP?LN=EN-US&SD=msdn&FR=0>

WEBCAST

* Support WebCast: Microsoft Visual C++ for Beginners

April 10, 10:00 A.M. Pacific time

<http://support.microsoft.com/support/default.asp?PR=webcst&FR=0&SD=MSDN&LN=EN-US&CT=SD&SE=NONA>

 

IT & DEVELOPER CORNER

------------------------------------------------------------------

DOWNLOAD THE OFFICE XP PRODUCT GUIDE

Get a sneak preview of the new and improved features of Office XP by downloading the Office XP Product Guide. Learn about Smart Tags, Task Panes, and document recovery features in this preview -- now available online at:

<http://www.microsoft.com/office/xpguide.htm>

 

SMART TAG SOFTWARE DEVELOPMENT KIT

Smart Tags, an exciting new feature in Office XP, are buttons that appear when the user needs them (such as when Word automatically corrects a user's action, or when a user pastes some data) and give the user the options to change the given action or error. The Smart Tag software development kit (SDK) includes a tutorial, programmer's guide, application programming interface (API) reference, registry key reference and sample code to help software developers quickly and easily build Smart Tags. This SDK is free* and available now at:

<http://msdn.microsoft.com/downloads/default.asp?URL=/code/sample.asp?url=/msdn-files/027/001/562/msdncompositedoc.xml>

 

 

NEW ON .NET

* Customizing Visual Studio.NET: New Ways to Automate and Integrate

This addresses the fundamental need by providing a comprehensive programming interface that enables developers to customize the look and feel of the environment, enhance and extend its functionality, automate repetitive tasks, and integrate Visual Studio.NET with other applications, such as Microsoft Office.

<http://msdn.microsoft.com/vstudio/nextgen/technology/programmability.asp>

* Microsoft Visual Basic.NET: The Transition from Visual Basic 6.0

This was built from the ground up on the .NET Framework to enable you to easily create next-generation applications for the Microsoft Windows operating system and the Web. It also details some of the changes from Visual Basic 6.0 to Visual Basic.NET, and explains how the Visual Basic.NET Upgrade Wizard can help you upgrade your existing applications to Visual Basic.NET.

<http://msdn.microsoft.com/vbasic/technical/upgrade/default.asp>

NEW ON MSDN ONLINE

* Extreme XML: A Practical Comparison of XSLT and ASP.NET

<http://msdn.microsoft.com/voices/xml02192001.asp>

* Nothin' but ASP.NET: Web Services with ASP.NET

<http://msdn.microsoft.com/voices/asp02222001.asp>

* Driving DirectX: Using Vertex Shaders: Part 1

<http://msdn.microsoft.com/voices/directx02192001.asp>

* At Your Service: Authentication and Authorization

<http://msdn.microsoft.com/voices/service02282001.asp>

* Diving into Data Access: ADO Rocks and Rolls in .NET Applications

<http://msdn.microsoft.com/voices/data02222001.asp>

 

KNOWLEDGE BASE ARTICLES

 

* HOWTO: Merge Data in Two XML Documents by Programming the DOM

<http://support.microsoft.com/support/kb/articles/q286/8/17.ASP?LN=EN-US&SD=msdn&FR=0>

* INFO: The Digital Dashboard Resource Kit (DDRK)

<http://support.microsoft.com/support/kb/articles/Q286/3/78.ASP?LN=EN-US&SD=msdn&FR=0>

 

The VISUAL BASIC DEVELOPER monthly newsletter!

<http://www.pinnaclepublishing.com/vb>

All of these MLs (XML, HTML, etc.) actually sprung from

one place. What was the original "ML"? (And, no, I don't

mean the weirdly fascinating programming language called

ML -- <http://foxnet.cs.cmu.edu/sml.html> .)

The gateway to information on VSA is at

<http://msdn.microsoft.com/vstudio/vsa/default.asp> , the

FAQ is at <http://msdn.microsoft.com/vstudio/vsa/qa.asp> , and

<http://msdn.microsoft.com/workshop/languages/clinic/scripting01162001.asp>

is the place to go for an overview. You can download the

in-depth view at

<http://msdn.microsoft.com/vstudio/vsa/indepth.asp> .

DirectX isn't directly related to .NET, but it's fun to

look at. See the latest version of the FAQ at

<http://msdn.microsoft.com/library/default.asp?URL=/library/techart/DirectX8faq.htm> .

The announcement for ASP+ Connections is at

<http://www.devconnections.com/asp> . The announcement of

 

The latest version of the SOAP toolkit may be found at

<http://msdn.microsoft.com/code/sample.asp?url=/MSDN-FILES/027/001/529/msdncompositedoc.xml>

 

 

Visual Basic Developer: Solutions for Microsoft Visual Basic

Developers, Volume 3

<http://www.p-ad.net/ads.nsf/c!open&EM1A54-010409-SSPW>

 

The URL that I want to suggest that everyone look at is

the brilliant analysis by Jim Farley that compares .NET

to Enterprise Java Beans. Totally even-handed, sure to

bother both parties, and (I think) right on target!

<http://www.sdmagazine.com/articles/2001/0103/0103a/0103a.htm>

A nice general coverage of .NET may be found at the Feb.

21 issue of Microsoft's "The Show."

<http://msdn.microsoft.com/theshow/>

A nice article by Dino Esposito on how to use legacy ADO

code in .NET.

<http://msdn.microsoft.com/library/default.asp?URL=/library/welcome/dsmsdn/data02222001.htm>

<http://msdn.microsoft.com/voices/csharp02152001.asp> is a

nice article by Eric Gunnerson (author of "A Programmer's

Introduction to C#" from Apress) on boxing and unboxing -

- which is C#-speak for one of the nice improvements over

Java that C# has -- the ability to have value types

automatically be treated as objects.

<http://msdn.microsoft.com/voices/asp02222001.asp> is an

excellent article on Web Services with ADO.NET by Rob

Howard, who is on the ASP.NET team. Curiously, it begins

with almost the exact same formal definition of what a

Web Service is: " A Web Service is programmable

application logic accessible via standard Web protocols."

What is deterministic finalization, and why are VB

developers very concerned about it?

Deterministic finalization is the name given to the

guarantee that a terminate event will be called

immediately in VB6 when you have removed all references

to an object you created. In VB.NET, you have no

guarantee when and how this will occur, so you must

manually call a method to clean up resources such as file

handles that are not reclaimed by the .NET runtime. (More

on this in the next issue!)

 

POINTS OF INTEREST

* IBM's XSLERATOR TOOL FOR XSLT SCRIPT GENERATION

The Java Application Development group at IBM's

alphaWorks laboratory has released an XSLerator (XSL

accelerator) tool, which "generates XSLT scripts from

mappings defined using a visual interface."

The XSLerator tool supports mappings with extended

conversion functions including iterations, conditions,

joins, variables, and XPATH functions.

XSLerator can be used in e-business solutions development

including B2B, B2C, and Web services. For example, it can

be used to integrate and correlate diverse data sources

to one unified data, or it can be used to transform data

from one business's format to another business's format.

Read the whole story at:

<http://xml.coverpages.org/ni2001-03-23-b.html>

XML TIDBIT

* XML KICK START TUTORIAL

In this tutorial, you'll learn what XML is all about. It

explains the basic XML syntax, and it will help you to

understand what's needed to make XML usable.

You won't be an XML expert after this lesson, but you'll

understand the basics of XML, XML Documents, and most XML

DTD's.

Learn more at <http://www.spiderpro.com/bu/buxmlm001.html>

THIS ISSUE'S URLs

* XML TIMES

This site offers some great content, latest news, and

even a few tips you might want to use.

<http://www.xmltimes.com>

XML 10-SECOND TUTORIAL

* MOVING DOM NODES

In this short tip by Brett McLaughlin, he takes a look at

a common exception that occurs when you attempt to move

DOM nodes.

He explains the causes of this exception and, most

important, how to avoid it when doing DOM programming.

Check it out at

<http://www-106.ibm.com/developerworks/library/x-tipmvdom.html?n-x-3151>

FREE Visual Basic Online Training!

Start your VB training NOW get FREE Microsoft Visual Basic training from KnowledgeNet! Now is your chance to try it before you buy it!

REGISTER FOR YOUR FREE GUEST ACCESS TODAY!

Hurry! This sample of FREE classes is only available for a limited time!

www.knowledgenet.com/lp/gst.jsp?sc=ns-gst-srchvbmsc-0201 <http://www.knowledgenet.com/lp/gst.jsp?sc=ns-gst-srchvbmsc-0201>

 

"Microsoft fills in Web services picture"

If you're a developer, you may be wondering how Microsoft plans to lure you into its .Net. One way is via eBay. Under the new MS/eBay alliance, eBay's commerce-engine platform (to which developers can write) will becomes a .Net service available to the .Net development community.

SOURCE: CNET

<http://news.cnet.com/news/0-1007-200-5111426.html?tag=owv>

"Quick Takes: That's a wrap"

The VB-PowerWrap -- now that's a wrap! But it's just the beginning of the truckload of products we've gotten wind of here at searchVB. Check out what's new in this week's Quick Takes.

SOURCE: searchVB

<http://www.searchvb.com/searchVB_Original_Content_Item/0,3359,530818,00.html>

"Nastier version of backdoor tool released"

Watch your back door! A new version of SubSeven, a notoriously powerful backdoor program that gives attackers almost complete control over a victim's computer, is cruising the Net. As soon as this devil possesses an infected computer, the software copies itself to the Windows directory with the original name of the file from which it was run. It then unpacks a DLL to the Windows system directory and edits the Windows Registry so that SubSeven will run every time Windows boots up.

SOURCE: eWEEK

<http://www.zdnet.com/eweek/stories/general/0,11011,2695851,00.html>

A Visual Basic 6 Programmer's Toolkit

By: Hank Marquis and Eric Smith

This book offers readers a pragmatic approach to identifying,

addressing, and solving common problems. It focuses on the day-to-day

practical issues Visual Basic programmers face. In addition, this book

and accompanying CD-ROM are rich with source code.

For more info or to order this book, go to:

<http://www.digitalguru.com/dgstore/product.asp?sku=1893115062&dept%5Fid=251&ac%5Fid=71>

NEW BEST VB WEB LINKS CATEGORY

We've added a new main category to the Best VB Web Links called

"Extensible Markup Language (XML)" containing approximately 100

subcategories for XML that will include several hundred new XML links

for you. Check it out at:

<http://searchvb.techtarget.com/searchVB_Editors_Picks_Page/0,1947,285965,00.html>

NEW VB TIPS & TRICKS

Write text to multiple Excel worksheets

Member Erik Greene shares the results of many hours of head scratching

over how to deal with Excel from VB. Check it out at:

<http://searchvb.techtarget.com/Tips/searchVB_Tips_Single_Listing_Page/1,286485,531213,00.html>

SEARCHVB.COM'S QUICK TAKES

That's a wrap

By: Ed Parry, News Editor

The VB-PowerWrap is just the beginning of the truckload of products

we've gotten wind of here at SearchVB.com.

Check out what's new in this week's Quick Takes.

<http://www.searchVB.com/searchVB_Original_Content_Item/0,3359,530818,00.html>

ENHANCED SEARCHVB.COM CAREER CENTER

We've just upgraded our job search features to better serve your career

planning needs. Click on the link below to learn more:

<http://searchvb.techtarget.com/Career_Center/searchVB_Career_Center_Page/0,281827,,00.html>

 

 

"Microsoft set to release Windows XP Beta 2"

Paul Thurrott is downwind of more news whiffs from Redmond. He says Microsoft will send Windows XP Beta 2 out the door today (Wednesday). It's been cooking a little longer than anticipated, but folks in Redmond believe this is the "little beta that could" and will be worth the wait -- the biggest release since Windows 95.

SOURCE: Windows 2000 Magazine

<http://www.wininformant.com/Articles/Index.cfm?ArticleID=20363>

"Quick Takes: Just parsing through"

A new product to parse through Office documents fronts this week's Quick Takes. There are also enough controls, components and tools to choke a virtual VB horse, so click on over and check out what's new.

SOURCE: searchVB

<http://www.searchvb.com/searchVB_Original_Content_Item/0,3359,533649,00.html>

"Microsoft supports ebXML"

Microsoft has been caught -- showing support for the ebXML initiative. Microsoft's senior program manager of XML technologies said he worked with ebXML at a recent proof-of-concept to demonstrate how SOAP fits into ebXML's messaging model. Right now, though, there is no plan to create an ebXML adapter in Microsoft's SOAP-based BizTalk integration server, although that could change if customers want it badly enough.

SOURCE: CRN

<http://www.crn.com/sections/BreakingNews/dailyarchives.asp?ArticleID=24993>

"WSDL spec. sent to W3C"

What the queen is to English, you could say Microsoft is to XML. Redmond has turned in the Web Services Description Language to the World Wide Web Consortium for review. WSDL provides a grammar for XML, enabling computer-to-computer transactions via the Web. This specification is a crucial piece of the .Net puzzle.

SOURCE: ENT Magazine

<http://www.entmag.com/breaknews.asp?ID=4253>

"Microsoft says .Net helps enable e-government"

Who said Microsoft and Uncle Sam can't be buddies? A company executive said the .Net initiative will help put the "e" in e-government and allow government workers to interact with constituents, each other, and with suppliers and trading partners.

SOURCE: CRN

<http://www.crn.com/Sections/BreakingNews/BreakingNews.asp?ArticleID=25023>

"Microsoft appears set to make a .Net Linux overture"

Redmond may open its arms to the penguin this week and announce that it (Microsoft) is opening a bedroom to Linux in the .Net house. However, given the fact that Microsoft views Linux as its number one threat, analysts doubt the company will truly support the open-source platform.

SOURCE: ComputerWorld

<http://www.computerworld.com/cwi/stories/0,1199,NAV47-68-84-88_STO58741,00.html>

"Kournikova virus kit author quits"

It's quittin' time for the Brazilian behind the kit that begat the Anna Kournikova virus. {K}alamar said he's afraid to fight the law, because the law might win, so he's yanking the Vbswg kit from his Web site and ceasing development. He does say, however, that he might release the source code, which could open a fresh can of worms.

SOURCE: vnunet

<http://www.vnunet.com/News/1119441>

"New virus is deadly, but is it worth the worry?"

The Magistr virus -- too rare to care? Some antivirus vendors say "be very afraid" because the virus can overwrite hard disks and erase CMOS memory. But other security firms aren't so bugged -- they say Magistr is so rare, there's little to fear. Magistr arrives on a system in an infected Windows executable file then infects files on both the host PC and others on a LAN.

SOURCE: TechWeb

<http://www.techweb.com/wire/story/TWB20010315S0015>

 

A look at an off-the-wall story off the Web

"Freewheeling work atmosphere not likely to fade away"

Don't say foosball has contributed to the fall of the dot-com. In fact, the shakeout survivors are insisting on some casual form of 9-to-5 cavorting. Proponents of a casual work atmosphere say table soccer, ping-pong and computer games foster a sense of company loyalty and provide a relaxed forum for brainstorming and communication in general. An occasional break, they add, makes up for the high, creative expectations placed upon dot-commers, not to mention the long hours. So, play on!!

SOURCE: Knight Ridder

<http://www.siliconvalley.com/docs/news/tech/012752.htm>

 

<http://support.microsoft.com/directory/discontinue.asp> ?

For example, Visual Basic for MS DOS, Visual Basic 1.0,

2.0, and 3.0 were officially deemed obsolete as of July

1, 1999.

* that Microsoft maintains a decent Windows 2000 tip site

at

<http://www.microsoft.com/WINDOWS2000/techenthusiast/tricks> ,

and that one of its best points are links, such as this

one with an alphabetical list to Web resources mentioned

in the Windows 2000 8-volume Resource Kit:

<http://www.microsoft.com/windows2000/library/resources/reskit/WebResources/default.asp> ?

Another link,

<http://www.microsoft.com/windows2000/library/resources/reskit/ErrorandEventMessages/default.asp> ,

will help you decipher "most of the error and event

messages generated by Windows 2000."

* that, speaking of Windows 2000, you can find out how to

make a Bootable Windows 2000 CD with Service Pack

Integrated at <http://www.bink.nu/Bootcd/default.htm> ? As

author Steven Bink explains, service packs in Windows

2000 have a new feature called slipstream that integrates

SPs into the original installation folder (i386). That

means that when you install a computer with a fresh copy

of Windows 2000, it will be directly at the SP level.

Although this works great if you have an installation

folder shared on the network, if you want to use a CD-R

you made with the integrated i386 on it, the CD won't

boot. Recommended by Darwin Sanoy, the eminence grise

behind Desktop Engineer's Junk Drawer at

<http://desktopengineer.com> /.

 

* that there's a really good XML chart that compares

various protocols at

<http://www.w3.org/2000/03/29-XML-protocol-matrix> ? (Thanks

to last issue's guest editor, John Mueller, for the

sighting.)

* that there are some really good articles about ASP.NET

that can help you decipher that new technology at

<http://www.aspnextgen.com/tutorials.aspx> ?

* that you can point VB API beginners to Q190000 - HOWTO:

Get Started Programming With the Windows API? Of course,

that should only whet their appetite for the entrée: VBD

columnist Dan Appleman's classic "Dan Appleman's Visual

Basic Programmer's Guide to the Win32 API" and his

playfully clever "Dan Appleman's Win32 API Puzzle Book

and Tutorial for Visual Basic Programmers."

 

* that you can read Peter McMahon's interesting article

on "Writing a Search Engine using XML and ASP" at

<http://www.asptoday.com/articles/20000530.htm> ?

 

Finalizers

Adapted from Dan Appleman's forthcoming book, "Moving to

VB.NET: Strategy, Concepts, and Code."

Few areas better illustrate how different VB.NET is from

VB6 than the finalization issue. VB6 programmers who have

studied good object-oriented programming techniques know

the "right" way to initialize and terminate components.

During the class Initialize event, you initialize members

and often allocate any necessary system resources. During

a class Terminate event, you perform any necessary

cleanup operation. The Terminate event occurs immediately

when the last reference to an object is released, so you

can generally assume that any object variables are valid

during the Terminate event. You can certainly count on

the Terminate event taking place, ensuring that you can

clean up after your application (free system resources,

close files, etc.) when your application terminates.

Objects with finalizers aren't destroyed when garbage

collection occurs. The objects remain in the finalizer

heap until a separate background thread runs the

finalizers. After the finalizer is run, the object is

removed from the finalizer list and will finally be freed

during the next garbage collection cycle. (Objects with

finalizers have to be collected twice -- first when the

object is added to the finalizer list, and then when the

memory is actually reclaimed.) How long does it take from

the time you stop referencing an object until the time

the finalizer runs? You don't know.

VB6 (and COM objects in general) provides deterministic

finalization -- you always know that finalizers will be

called, and you know when they'll be called. However, the

CLR doesn't support deterministic finalization. There's

no way to know when a finalizer will be called or, in

some situations, even if it will be called.

Some VB programmers object strongly to this change and

have criticized Microsoft for leaving deterministic

finalization out of VB.NET. Personally, I think the

benefits of garbage collection are worth the loss of

deterministic finalization.

But there's no doubt that this change does alter the way

you should write objects in VB.NET.

 

* Dino Esposito's "ADO Rocks and Rolls in .NET

Applications" at

<http://msdn.microsoft.com/voices/data02222001.asp>

Quote: "From the point of view of a .NET application, all

of the ADO code you have is legacy. In fact, to

accomplish data handling in .NET, you are supposed to use

the new ADO.NET classes. If you cut and paste an existing

VB or ASP application using ADO objects and save it as a

.NET equivalent application, be prepared to face an

inevitable long list of errors."

 

* Read Michael Reeves' November 2000 9-page article on

XML and Windows CE 3.0.

<http://msdn.microsoft.com/library/default.asp?URL=/library/techart/Xml_ce.htm>

* Read a 32-page July 2000 article on Writing Your Own

SNMP (Simple Network Management Protocol) Management

Information Base for Microsoft Windows CE 3.0.

<http://msdn.microsoft.com/library/default.asp?URL=/library/techart/snmpmib.htm>

* Q259725 - PRB: Error Occurs When You Debug a COM+

Component Under the Visual Basic IDE with an ASP Client

(Windows 2000)

<http://www.microsoft.com/technet/support/kb.asp?ID=259725>

* Q275685 - INF: Importing Performance Monitor Logs into

SQL Server

<http://www.microsoft.com/technet/support/kb.asp?ID=275685>

* Q132385 - OrgChart: How to Add More Than Four Lines to

an Org Chart Box (Microsoft Office)

<http://www.microsoft.com/technet/support/kb.asp?ID=132385>

* Q251125 - HOWTO: Use the Rule.dll Sample to Create an

Inbox Rule from Visual Basic

<http://www.microsoft.com/technet/support/kb.asp?ID=251125>

* Q283857 - HOWTO: Install a Visual Studio 6.0 Stand-

Alone Product

<http://www.microsoft.com/technet/support/kb.asp?ID=283857>

* Q265771 - HOWTO: Access Pocket Outlook Objects from

eMbedded Visual Basic and VBCE

<http://www.microsoft.com/technet/support/kb.asp?ID=265771>

* Q286189 - HOWTO: Invoke the OLE DB Data Link Properties

Dialog Box in Visual Basic Code

<http://www.microsoft.com/technet/support/kb.asp?ID=286189>

* Q276556 - HOWTO: Launch Device-Side Applications at

System Events

<http://www.microsoft.com/technet/support/kb.asp?ID=276556>

* Q251009 - INFO: Where to Find the MMC Snap-In Designer

for Visual Basic

<http://www.microsoft.com/technet/support/kb.asp?ID=251009>

* Q274484 - HOWTO: Grant Users the Access to Add Visual

Basic Components

<http://www.microsoft.com/technet/support/kb.asp?ID=274484>

* Q280513 - PRB: Visual Basic 6.0 Application Generates

Run-Time Error 3633 When It Is Run on a New Computer

<http://www.microsoft.com/technet/support/kb.asp?ID=280513>

* Q282233 - BUG: Permission Denied Error Message When You

Try to Recompile a Visual Basic Project with a Public UDT

and Binary Compatibility

<http://www.microsoft.com/technet/support/kb.asp?ID=282233>

* Q286241 - PRB: Error Message When You Save a NULL Value

with ADODC and Bound Controls

<http://www.microsoft.com/technet/support/kb.asp?ID=286241>

* Q286755 - How to Create an Index on a Custom Property

<http://www.microsoft.com/technet/support/kb.asp?ID=286755>

* Q286754 - PRB: Three-Tiered Service Model Is Not

Visible in Visual Modeler (remember, VM is in .NET, too)

<http://www.microsoft.com/technet/support/kb.asp?ID=286754>

* Q257773 - INFO: Support for Third-Party Installers

<http://www.microsoft.com/technet/support/kb.asp?ID=257773>

* Q257947 - PRB: Runtime Error 7: Out of Memory Error

Message Occurs When BoundText <http://www.microsoft.com/technet/support/kb.asp?ID=257947>

* Q286504 - eVB CreateObject Function Causes Memory Leak

<http://www.microsoft.com/technet/support/kb.asp?ID=286504>

 

NIST (US National Institute of Standards and Testing) set

of statistical tests for randomness (as in random and

pseudo-random number generators). Great links, too.

<http://csrc.nist.gov/rng> . Related: NIST's Computer

Security Resource Center at

<http://csrc.nist.gov/publications> .

If your users love Excel, or if you want to provide

database query results or other data in a format that can

be easily manipulated, then this technique is for you.

It's surprisingly easy to take any data you have and send

it to the client as an Excel spreadsheet. When the user

clicks on a link requesting the data, a dialog box comes

up asking whether they'd like to open or save the

document that's being sent. If they choose to open, Excel

opens with your data in it. If they choose to save, an

Excel spreadsheet file is saved on their hard drive.

How do you accomplish this magic? Well, on most computers

with Excel installed, CSVs (comma-separated values) are

associated with Excel. So all you have to do is tell the

browser that the file you're sending back is of type .CSV

and give it a filename. These two lines accomplish that

task:

Response.ContentType="application/csv"

Response.AddHeader "Content-Disposition", "filename=ReqData.csv;"

Now all you have to do is format your data in CSV, and

you're ready to go! For those of you who are a little

rusty on that front, CSV separates fields or columns with

commas and separates records or rows with a new line

character. To display the contents of three 10-element

arrays -- FirstName, LastName, and Phone -- it would look

something like this:

For i=1 To 10

Response.Write FirstName & "," & LastName & "," & Phone

Response.Write vbNewLine

Next

You can use this technique with recordsets or virtually

any other data source.

Bonus tip: Excel comes with a moving average analysis

tool built in, but you have to install the Analysis

ToolPak.

Benford's Law

I recently read an allusion to Benford's Law. (It was

mentioned in an article about data mining to detect fraud

and cited Mark Nigrini's DATAS software, which he claims

is being run by 3 percent of the world's multinationals

to flag suspicious patterns. See

<http://www.jsrsys.com/fema/new15sys.htm> for more on

DATAS). Benford's Law basically predicts how many times a

given digit appears at the beginning or end of numbers

within a data set. Useful links: Benford's Law and Zipf's

Law: <http://www.cut-the-knot.com/do_you_know/zipfLaw.html> ,

Eric Weisstein's article at

<http://mathworld.wolfram.com/BenfordsLaw.html> ,

Kevin Brown's article at

<http://www.seanet.com/~ksbrown/kmath302.htm> ,

Mark Nigrini's discussion at

<http://www.fm.co.za/97/1010/toptail/letta.htm> ,

Malcolm Browne's discussion at

<http://courses.nus.edu.sg/course/mathelmr/080498sci-benford.htm> ,

and Robert Matthews' reflections at

<http://www.newscientist.com/ns/19990710/thepowerof.html> .

You can also download an Excel macro developed by a US

Army auditor to analyze statistical, numerical sequences

from <http://www.hqda.army.mil/AAAWEB/benford.htm> and

listen to "Dr. Karl's" RealAudio audiocast about

Benford's Law at

<http://www.abc.net.au/science/k2/aboutkk.htm> .

 

* that you can read a good article on "Polymorphism in

ASP.NET" by Ian Stallings at

<http://www.4guysfromrolla.com/webtech/022501-1.shtml> ?

* that there's a really good tutorial on using Windows

Forms controls in IE at

<http://www.gotdotnet.com/team/windowsforms/iesourcing.aspx> ?

* that Seagate Software has renamed itself Crystal

Decisions (<http://www.crystaldecisions.net> ) and is

officially launching a new product, Crystal Enterprise,

and an updated version of Crystal Reports this week? CR

8.5 features PDF output and XML support.

 

* that you can find out about "VSAM Demystified" in a new

IBM Redbook at

<http://www.redbooks.ibm.com/abstracts/sg246105.html> ?

* that there's a good article by Roger Franklin on

preparing your site for WAP at

<http://newsletter.webreview.com/cgi-bin4/flo?y=eCng0BTSax0Pg0DkCn> ?

Marginally related: list of community wireless projects at

<http://www.seattlewireless.net/index.cgi/SimilarProjectLinks> .

* that you can read notes from the Intel IDF Spring

conference (e.g., about the Itanium, the Pentium 4, DDR-

SDRAM, etc.) at

<http://www6.tomshardware.com/business/01q1/010228/index.html> ?

Related: current "Intel Developer Update" magazine with

articles about technology presented at IDF Spring 2001 at

<http://developer.intel.com/update> .

* that James Shaw's CoverYourAsp site has a good article

with code to help you detect folks who bail out of your

Web site? <http://coveryourasp.com/LostVisitors.asp>

* that you can read a new article by Peter McMahon (I

mentioned his "Writing a Search Engine Using XML and ASP"

in the last issue) on an Ad Rotator at

<http://www.asptoday.com> ?

 

 

10-SECOND TUTORIAL: .NET Security

Let's be honest -- headlines about hackers and viruses

don't inspire a lot of confidence in the "locked down"

nature of Windows, and I suspect that there's going to be

a lot of concern about increasing amounts of "mobile

code."

Mobile code is software that's transmitted across a

network from a remote source to a local system and is

then executed on that local system, often without

explicit action on the part of the user. The local system

is often a PC, but it can also be a smart device such as

a PDA, mobile phone, Internet appliance, etc. Mobile code

differs from traditional software in that it generally is

neither installed nor executed explicitly by the user.

ASP.NET leverages IIS's native support for common HTTP

authentication schemes (e.g., NTLM, Kerberos, and SSL/TLS

client certificates), but it also supports Microsoft

Passport authentication and provides a convenient

implementation of Forms-based (Cookie) authentication.

As the GotDotNet team explains at

<http://www.gotdotnet.com/team/clr/about_security.aspx> ,

ASP.NET supports traditional methods of performing access

control and also provides URL authorization. URL

authorization allows administrators to provide XML

configuration that allows or denies access to URLs based

on the current user or role. Developers can either code

explicit authorization checks or take advantage of the

CLR's support for declarative security to include control

access to methods based on the calling user or role.

Evidence-based security is the other (aside from role-

based security) basic approach to security that most

developers will need to understand. Evidence-based

security allows mobile code from untrusted sources to be

executed safely. Mobile code is assigned permissions

based on its origin (both location and publisher

signature, if available) and can only perform those

actions allowed by the permissions it receives. The user

is never required to make a trust decision (i.e., "Do you

want to run this code?"). The evidence-based security

system makes trust decisions for the user based on a

configurable policy system.

.NET security seems to be a work in progress, and not

just because .NET itself is (see the caveat about

preliminary documentation at

<http://msdn.microsoft.com/library/dotnet/cpguide/cpconhowaspnetsecurityworks.htm> ), but also because standards such as the proposed XML

Digital Signature specification (XMLDSIG) are themselves

still being developed.

I'd recommend you try to carve out a little time to track

the security side of .NET because I think it's going to

emerge as a key issue.

 

* Rob Howard's MSDN online column on "Web Services with

ASP.NET" shows you how to write a Web Service that

exposes Web application performance counters.

<http://msdn.microsoft.com/voices/asp02222001.asp>

* Ulrich Roxburgh's 22-page article describing "BizTalk

Orchestration: Transactions, Exceptions, and Debugging"

at <http://msdn.microsoft.com/library/techart/BTSOrch.htm>

* Joseph Fultz's article on "BizTalk Messaging: Building

BizTalk Server Custom Parsers and Serializers" targets

the VC++ programmer.

<http://msdn.microsoft.com/library/techart/BuildBizTalkServerPS.htm>

* Developing an International Site

<http://msdn.microsoft.com/library/default.asp?URL=/library/techart/DevelopGlobal.htm>

* Dr. GUI.NET #3 on Arrays and Strings in the .NET

Framework

<http://msdn.microsoft.com/library/welcome/dsmsdn/drguinet02262001.htm>

* Vivek Jhaveri's MSDN Online article on "Whistler: Build

More Flexible Console Snap-ins with the MMC 2.0 Object

Model"

<http://msdn.microsoft.com/msdnmag/issues/01/03/mmc20/mmc20.asp>

* 13-page article by John A. Bocharov on "Contention

Analysis for Web Server Performance" using Duwamish

Online as an example

<http://msdn.microsoft.com/library/techart/d5casestudy.htm>

 

 

GotDotNet, DeveloperSites, and More

* <http://www.gotdotnet.com> . If you don't know this site

and are getting "into" .NET, check it out. It's run by

some of Microsoft's .NET team folks, and includes vetted

sample code from your peers in

<http://www.gotdotnet.com/userarea> . Example downloads:

code for doing a treeview on a Web page at

<http://www.gotdotnet.com/userfiles/asills/treeview.zip> .

* <http://www.developersites.com> . Matt Pomar maintains

this really good portal for developers.

* <http://www.tutorialfind.com/tutorials> . Plenty for

techies and geeks, but links to plenty of other tutorials

as well.

 

 

MZ-Tools 2.0, written by Madrid-based VB database guru

Carlos J. Quintero, with menu items like TabIndex

Assistant, Procedure Callers, Add (and Remove) Line

Numbers, Review Collections, Statistics, and so on from

<http://cquintero.tripod.com/mztools2_eng.htm>

or <http://www.mztools.com> ? (Carlos explains that the MZ

comes from Mazinger-Z, a very popular Japanese cartoon in

Spain in the late '70s.)

* that you can download the code from VBD columnist Rod

Stephens' VB-Helper site for a cool program that prevents

a user from resizing another program? As Rod explains,

you find the handle of the target window using the

FindWindow API function or some other method, then use

the GetSystemMenu API function to get the form's system

menu, and finally use DeleteMenu to remove the Restore,

Size, Minimize, and Maximize menu items.

<http://www.vb-helper.com/whatsnew.htm> .

Another recent howto shows how to use the ChooseColorA function to let

users select colors. And VBD subscribers will want to

read Rod's excellent Feb. column at

<http://www.pinnaclepublishing.com/VB> on how to include a

progress bar during a file copy.

* that you can download Macromedia's Flash Player 4

Authoring Kit for Pocket PC from

<http://www.macromedia.com/software/flashplayer/pocketpc/authoring/contents.html#what_is>?

 

 

 

* that you can find a list of all the KB articles about

SQL Server at <ftp://ftp.microsoft.com/bussys/sql/kb/index.txt> ?

* that you can examine some code that creates VBS files

that will create an on-the-fly .EXE file and execute it

once the script runs? And that the information is

provided by the Beyond Security team which distributes an

open source firewall, SeaWall? According to the site's

Web page, "This doesn't pose a new security threat, nor

does it present any new vulnerability. However, it shows

how simple it is to create a VBS Trojan that can

compromise the system's security without being limited to

VB Script commands."

<http://www.securiteam.com/tools/Encapsulation_EXE_in_a_VB_Script__creation_tool_.html>

* that you can read a half dozen articles about SQL

Server and some book reviews about both SQL Server 7.0

and 2000 books at Brad McGehee's SQL Server site:

<http://www.sql-server-performance.com> ?

* that Oracle ODBC Drivers for Oracle 7 and Oracle 8i are

available for download (free registration required) at

<http://otn.oracle.com/software/utilities/htdocs/listing.htm>?

 

 

10-SECOND TUTORIAL: Aggregates and Aggregations

Well, the term "aggregate" is a rich one. In some

circles, it refers to a kind of rock or concrete. In

economic circles, it refers to one of the formal

categories of money (as cash and demand deposits or bank

credits) in a national economy that is used as a measure

in predictions of economic growth.

In the SQL (structured query language) language, it

refers to any of several built-in functions such SUM,

AVG, MAX, MIN, and COUNT. (See

<http://www.willcam.com/sql/default.htm> for a nice

tutorial on SQL.)

And in UML, you may run into aggregation relationships

that are a specialized form of association in which a

whole is related to its part(s). An aggregation is known

as a "part-of" or containment relationship, and the UML

notation for an aggregation relationship is an

association with a diamond next to the class denoting the

aggregate (whole).

Related: Download a freeware Visio template for creating

UML diagrams from

<http://www.objectmentor.com/freeware/browse.html>

 

xxx.lanl.gov and .NET Enhance Proj.

<http://xxx.lanl.gov> . arXiv.org e-Print (and pre-print)

archive for physics, math, non-linear sciences, and

computer science. A veritable treasure trove for anyone

interested in these disciplines. Funded by the US

National Science Foundation.

The .NET Enhance Project. This project will attempt to

coordinate efforts of .NET developers to produce a open,

solid and rich library of reusable source code that

(tentatively) conforms to OSD.

<http://www.sjoerd.org/projects/enhance/>

.NET Gotchas

Remember:

* In .NET, True is 1, not -1.

* Most of the classes in the .NET's CLR are NOT thread-

safe.

* Static methods belong to their class, not to a specific

object in the class. IOW, a static method can be called

without an object.

* In .NET, all arrays have a lower bound of 0.

* Caldera Systems' "Project 42" with the next Linux 2.4

kernel, a secure web server, a firewall configuration

tool, and the usual network services (DHCP, DNS, Samba,

etc.).

<http://www.calderasystems.com/products/beta/open/server.html>

 

* SOAP Toolkit 2.0 Beta 2

<http://msdn.microsoft.com/code/sample.asp?url=/msdn-files/027/001/580/msdncompositedoc.xml>

Read Robert Martin's 34-page PDF file on "Design

Principles and Design Patterns" at

<http://www.objectmentor.com/publications/Principles%20and%20Patterns.PDF>

According to XP advocate Martin, the four symptoms of

code rot are rigidity, fragility, immobility, and

viscosity. Sound familiar?

 

 

VB INTERVIEW WITH VB.NET

Q&A Interview with Denver VB.Net Special Interest Group (VB.Net SIG)

Author: Brent Sheets, Site Editor

This month, SearchVB.com speaks with Chris Wallace, group leader of the

Denver VB.Net SIG. Find out why our VB friends in the Centennial State

think it's important for developers to start focusing on Visual

Basic.Net now. For the full story, go to:

<http://searchvb.techtarget.com/qna/0,,sid8_gci535706,00.html>

Hacking time down to fractions

Want to really get down to instants? This tip from member Phil Lenoir

tells you how at:

<http://searchvb.techtarget.com/tip/1,289483,sid8_gci535495,00.html>

For the complete list of VB Tips & Tricks, go to:

<http://searchvb.techtarget.com/tipsIndex/0,289482,sid8_tax4f0_alpD_idx0,00.html>

Don't forget to give your rating to let us know what you think of the

value of the tips.

 

REAL-TIME SALARY SURVEY

Join other VB professionals who have taken the survey and add to the

industry's knowledge of how to best compensate employees.

All responses are anonymous.

Take the survey at:

<http://searchvb.techtarget.com/salarySurvey/0,,sid8_cid346245,00.html>

 

 

 

* The .NET Show: Microsoft.com

See why Tim Sinclair, Mike Moore, and Jay Nanduri are so excited about the benefits that .NET provides them on the Microsoft.com Web site. They've added some functionality and have even more ideas for the future.

<http://msdn.microsoft.com/theshow/>

* Microsoft BackOffice Server 2000

MSDN Universal subscribers will receive Microsoft BackOffice Server 2000, the next version of the leading server suite for the Microsoft Windows 2000 operating system. This release integrates Windows 2000 Server and the latest Standard versions of the component products, providing a wide range of infrastructure and application services including directory, networking, Web application, database, messaging and collaboration, Internet proxy and firewall, host integration, and Windows desktop management.

<http://msdn.microsoft.com/subscriptions/resources/highlights.asp>

 

* Cartoon Rendering Using Vertex Shaders

<http://msdn.microsoft.com/code/default.asp?URL=/code/sample.asp?url=/MSDN-FILES/026/002/256/msdncompositedoc.xml>

* C# Boxing Sample

<http://msdn.microsoft.com/code/default.asp?URL=/code/sample.asp?url=/MSDN-FILES/026/002/254/msdncompositedoc.xml>

* Legacy File Integration Sample

<http://msdn.microsoft.com/code/default.asp?URL=/code/sample.asp?url=/MSDN-FILES/026/002/253/msdncompositedoc.xml>

* Building Parsers and Serializers Sample

<http://msdn.microsoft.com/code/default.asp?URL=/code/sample.asp?url=/MSDN-FILES/026/002/252/msdncompositedoc.xml>

 

* Diving Into Data Access: Meditating on OLE DB and .NET

<http://msdn.microsoft.com/voices/data03222001.asp>

* Extreme XML: XML Web Service-Enabled Office Documents

<http://msdn.microsoft.com/voices/xml03192001.asp>

 

* HOWTO: Use Visual Basic to Locate CD-ROM Drives

<http://support.microsoft.com/support/kb/articles/q291/5/75.asp?LN=EN-US&SD=msdn&FR=0>

* INFO: List of Issues Fixed in Microsoft XML 3.0 Service Pack 1

<http://support.microsoft.com/support/kb/articles/q292/9/35.asp?LN=EN-US&SD=msdn&FR=0>

 

* PUT XML.COM CONTENT ON YOUR PAGES

Ever wanted XML.com content on your own pages? Thanks to

some neat programming work from O'Reilly's Rael Dornfest,

you can use content from XML.com's RSS feed on your own

site. To find out how, read Rael's explanation at

<http://www.xml.com/pub/a/2001/03/21/xml_com_feed.html>

 

 

* USING XML::TWIG By Kip Hampton

In his article, Kip shows how XML::Twig provides a fast,

and memory-efficient way to handle large XML documents.

This is useful when the needs of your application make

using the SAX interface overly complex.

Read the whole story at:

<http://xml.com/pub/a/2001/03/21/xmltwig.html>

* OVERCOMMING OBJECTIONS TO XML-BASED AUTHORING SYSTEMS

In this article by Brian Bueling on XML.com, Brian talks

about the problems many developers have with convincing

their employers how and why XML is a good solution. This

is a great article that addresses many of the common

issues XML developers face on a day-to-day basis.

Check out the whole story:

<http://www.xml.com/pub/a/2001/03/21/xmlauthoring.html>

* DRE and XMI

DRE allows you to build an abstract document containing

text, lists, tables, pictures, etc., that can be rendered

into a number of formats. DRE currently supports PDF and

HTML formats.

Check out:

<http://alphaworks.ibm.com/tech/dre?open&322awhome>

 

* XMI Framework

The XMI Framework is a simple Java API for saving and

loading XMI files and creating XMI DTDs.

Read more at:

<http://alphaworks.ibm.com/tech/xmiframework?open&322awhome>

* IBM Developer Toolbox

A good site for XML Developers (formerly IBM's Developers

Connection)

More at:

<http://www.developer.ibm.com/devcon/titlepg.htm>

* XML PRIMER

A brief essay on the history of SOAP, from one of its

original inventors, Don Box. Don tracks the highs and

lows of SOAP since 1998, and tells us where it should go

next.

Read the article at:

<http://xml.com/pub/a/2001/04/04/soap.html>

Normally, the XML::Parser module will immediately

terminate when it finds mal-formed XML. This is, in fact,

the way XML parsers should behave. There are cases

however, where you may want to handle the error without

exiting the program. In these cases, you can enclose the

code that calls the parse() or parsefile() methods in an

eval block like:

eval { $p->parse($xml) };

or like:

eval { $p->parsefile($filename) };

If an error occurs, it puts the error message into the $@

variable. Below is a short script that parses an XML

file. It encloses the parsefile() method in an eval block

and then prints the error message if an error occurred.

use strict;

use XML::Parser;

my $p = new XML::Parser();

die "catch_error.pl \n" unless $ARGV[0] && -e $ARGV[0];

eval { $p->parsefile($ARGV[0]) };

print "Caught error: $@\n" if $@

print "Done.\n";

***

LIMITED-TIME OFFER FOR PINNACLE CUSTOMERS: Get a FREE

3-Month trial subscription to VISUAL BASIC DEVELOPER!

VISUAL BASIC DEVELOPER is written for professionals who

use VISUAL BASIC. Each issue, available in print and online,

offers insights and solutions on a range of Visual Basic

development topics. And its extensive online archive makes

24/7 access a click away.

Visit us now at: <http://www.pinnaclepublishing.com/vb> and

get a three-month trial subscription to VISUAL BASIC DEVELOPER

monthly newsletter absolutely free! Click on the "Free Print

Trial" button. (In the order code field, please type "DM1A07"

to receive this FREE trial.) Or call toll-free: 1-800-788-1900

or fax to 770-993-4323.

Originally I intended to devote some more time to

Hailstorm, but I'll be doing that in the next issues. The

hot news this week is that Microsoft has decided to make

a small number of changes to VB.NET to make it more

palatable to VB6 users. First, some background: VB.NET is

a great language, but it's only a "kissing cousin" of

earlier versions of VB. Semantically, it's the single

inheritance multiple interface language that uses BASIC-

like syntax. This means it does good things like having

explicit delimiters for control structures avoiding

braces, and it ignores case (something I applaud, as code

like "this.X = x" makes me see red). Microsoft made most

of these changes for reasons that seem perfectly good to

me. That said, essentially no serious VB6 program has a

hope of running in VB.NET, and the upgrade tool can't be

taken seriously since such tools can't deal with

semantics, only syntax. The VB6 community is certainly

divided, and feelings run hot (see the URLs section for

some places to go).

Here, directly from Ari Bixhorn, VB Product Manager, is a

list of the current changes in VB.NET from Beta 1:

1. The value of True -- When Visual Basic developers

coerce "True" into a numeric value, the value they

receive will be -1 (as VB has always done), not 1. This

applies to both explicit conversions, using CInt(),

CDec(), etc., as well as implicit conversions:

Dim b As Boolean = True

Dim i As Integer = b ' i = -1

It is important to note that when a Boolean in VB is

passed to the .NET Framework or to another .NET language,

it will be treated as 1 to maintain interoperability

between languages. This change offers the best of both

worlds -- VB developers get expected behavior when

working within VB, and developers working with multiple

.NET languages get seamless behavior across languages.

2. Behavior of And/Or/Not/XOr -- The functionality of

these operators will be returned to bitwise operations

instead of purely logical (meaning they will work as they

always have in VB). As a result, there is no need to keep

the BitAnd, BitOr, and BitNot operators that were planned

for VB.NET. In addition, the operator precedence will be

restored to these operators as it was in Visual Basic 6.

Finally, these operators will not short-circuit. Instead,

to enable developers to show explicit intent in their

code, we will introduce two new operators, "AndAlso" and

"OrElse," that will provide short-circuiting behavior.

This request was consistent with our initial usability

findings on short-circuiting "And" and "Or," which

resulted in bugs that were hard for VB devs to track

down. Again, these changes provide consistency with VB6

without sacrificing functionality in VB.NET.

3. The declaration of Arrays -- When arrays are declared

in Visual Basic.NET, they will be declared by specifying

the upper bound (as has always been the case in VB), not

the size.

Dim a(5) As Integer ' produces a 6 element array, 0 through 5

Do any of these changes break language interoperability

with other .NET languages or the Framework? No.

Will these changes delay the ship of Visual Studio.NET?

No. The changes are currently being implemented and will

be part of Beta 2 (due out this summer). From the start,

we had planned for feedback during the beta program and

had expected to make changes like these prior to

releasing the product. If anything, these changes are a

testament to the success of the beta program -- we've

spoken to literally thousands of VB programmers around

the world who are engaged in the beta program and who

want these changes made.

Are these *major* changes to the language? No. Will they

keep VB.NET developers from taking advantage of the .NET

Framework, Web Services, ASP.NET, cross-language

inheritance and debugging, etc., etc., etc.? No, but they

do provide benefits to the existing VB developer base who

are either upgrading existing code to VB.NET, or who will

be maintaining both VB6 and VB.NET code bases.

Finally, I think it's important to call out the

difference between wanting cross-language

interoperability and cross-language consistency. Interop

is what we're really looking for with .NET -- the ability

to pass information between languages without confusion -

- and with these changes, we'll still have seamless

language interop. At the same time, these changes will

make the knowledge upgrade easier for VB developers.

Language consistency, on the other hand, implies that

there is a *right* way and a *wrong* way to declare

arrays, coerce the value of True, etc. Neither C++ nor VB

are "wrong." They are simply different.

 

 

* Ted Pattison's two articles in MSDN magazine are a good

place to go for VB.NET Information:

<http://msdn.microsoft.com/msdnmag/issues/01/02/vbnet/vbnet.asp> .

The second article from the May issue should be up

shortly. (The MSDN magazine home page is at

<http://msdn.microsoft.com/msdnmag/default.asp> .)

* Dr Gui's article on MSDN

(<http://msdn.microsoft.com/library/default.asp?URL=/library/welcome/dsmsdn/drguinet02262001.htm> )

has a justification for the switch that's worth reading.

* Karl E. Peterson's VB MVP site

(http://www.mvps.org/vb/) ignited a lot of controversy

over VB.NET, as did Bruce McKinney's page at

<http://members.home.net/bruce2u2/vbnet.htm> .

Another negative site is

<http://www.mvps.org/vbnet/index.html?http://www.mvps.org/vbnet/dev/vb7/vbdotnet_comments.htm> .

 

Send mail to vblg@xocomp.net with questions or comments about this web site.
Copyright © 1998-2003 XOCOMP, llc
Last modified: 04/05/2002