Developer Central http://www.adtmag.com/ August 6, 2003 - Vol. 2 #20 ================================================================= THIS ISSUE SPONSORED BY: - The Power of UNIX on Windows http://info.101com.com/default.asp?id=2398 - InterSystems Caché - FREE OBJECT-ORIENTED DBMS DOWNLOAD!!! http://info.101com.com/default.asp?id=2399 - Training. Networking. Certification. Solutions. http://info.101com.com/default.asp?id=2221 ================================================================= In this issue : 1) Editorial Chatter 2) Weblinks 3) Improving Software Development: Something New Under the Sun 4) Briefing: VMWare ESX Server 5) Review: iControl 6) Review: ConceptDraw Professional 7) Review: Visual Build Professional 8) Review: Total Access Emailer 9) Review: ReaCompressor 10) Review: Web.Config Editor 11) New and Notable 12) Web Resources for Developers 13) Reader Mail ********************************************************************* Sponsor: The Power of UNIX on Windows MKS Toolkit for Developers and Enterprise Developers (formerly NuTCRACKER) gives you portability, interoperability, user compatibility and adaptability of applications and scripts in heterogeneous UNIX, Linux, Windows and Web environments. Call 800-637-8034; +1 (703) 803-3343. Request a free 30 day Evaluation: http://info.101com.com/default.asp?id=2398 --------------------------------------------------------------------- Editorial Chatter "Whidbey is coming, the goose is getting fat..." Oh, wait. I'm mixing metaphors again. Anyhow, thanks to the recent VSLive conference, there's a good deal of buzz going around about "Whidbey", the not-so-secret code name of the next version of Visual Studio .NET. First, you need to keep one thing in mind: only two types of people brag about being in Microsoft beta programs: liars and cheats. Well, OK, maybe there's a third category: careless people. Read the NDAs you signed, people. From time immemorial, Microsoft beta program NDAs have prohibited discussing the beta program, or even the fact that you are involved in the beta program. I'm as excited about coming software as the next guy, but the general blabbermouthness of beta testers is the reason why some MS programs are moving to much tighter, private betas with a select group of people who know how the heck to keep their mouths shut. There is an interesting legal situation here, though: Microsoft is apparently using click-through NDAs on a Web site for Whidbey, and such contracts have been held void by some European courts. So there may well be beta testers who aren't covered by NDA at all, though I hope they can still honor the spirit of what they agreed to be bound by. Anyhow, all that aside, there is still plenty of public information to be had. Bearing in mind that everything is subject to change, let's take a look at the most authoritative starting point, the Microsoft Developer Tools Roadmap 2003-2005 (http://msdn.microsoft.com/vstudio/productinfo/roadmap.aspx). This roadmap shows three releases, but right away that's a crock. The first of these releases, the Visual Studio Tools for Office, reminds me of Sesame Street: "One of these things is not like the other ..." While VS Tools for Office is interesting for some very limited scenario, it's not a Visual Studio .NET release, does not involve a new .NET Framework release, and is nowhere near as significant as 2004's "Whidbey" release and 2005's "Orcas" release of Visual Studio .NET. Here are some highlights of what to expect from Whidbey: - Deep integration with SQL Server "Yukon", the next major release of SQL Server. So far we know this means writing stored procedures that use .NET languages. We don't know whether it will be any easier to use SQL Server data from .NET applications. - "Developer productivity and built-in community support". Who knows WHAT the heck that means, but I wouldn't be surprised to see Windows Messenger hosted inside the Whidbey shell. - The return of edit & continue debugging for Visual Basic. Big win for VB developers, though it sounds like C# won't get the same. - XML documentation comments for VB. - Generics for VB, C#, and C++. - Mobile applications in C++. - Partial types for C# and VB. - Improvements to MFC. - Iterators and anonymous methods for C#. - Better migration from Java to J#. I'm personally somewhat amazed that they haven't given up beating this horse. - Lots of nice new Windows Forms UI goodies, including a table that can handle master-detail views and Office-style toolbars. - Improved data access, themes, and skins for ASP.NET applications. - "ObjectSpaces", which appear to be an object-relational mapping technology for ADO.NET. - Updated support for the WS-* family of Web Services standards. - Modeling support for enterprise development. - An improved Visual SourceSafe (it's about time!) All in all, it's quite a list (and there's more on the list than I've summarized here). About Orcas, the Roadmap says considerably less. In fact, it boils down to "Orcas will be the greatest thing ever, and it will ship with Longhorn." I personally wouldn't even bet on seeing this in 2005. For that matter, keep in mind that this Roadmap is just the best guess at this point. Expect some of the Whidbey features to drop or mutate based on beta tester feedback and whether the dev team can finish things in time to ship. But any way you slice it, there are interesting things ahead for the Visual Studio .NET developer. One minor correction from Developer Centrl #31: you need a license to use the Distribution Edition of Alintex Script .NET, but not to distribute scripts. The Distribution Edition is designed to be included with a product so that the end-user doesn't need to already have Alintex Script .NET already installed on their system. The free version allows you to distribute scripts to your heart's content. Finally, if you're in need of some comic relief, take a look at Primate Programming, http://www.newtechusa.com/PPI/main.asp . Then consider whether they might have had something to do with that abysmal software that you inherited and are supposed to maintain... ********************************************************************* Sponsor: Get The Right Front-End for Your Back-End. Struggling to match your object-oriented Web development to your relational database? Caché, from InterSystems, is a multidimensional database that seamlessly combines robust object and relational technologies, making it a perfect match for Java, C++, COM, and XML, as well as ODBC and JDBC. Plus, Caché now supports Web Services and lightning-fast transactional bit-map indexing for real-time analytics! DOWNLOAD NOW FOR FREE: http://info.101com.com/default.asp?id=2399 --------------------------------------------------------------------- Beware, as always, of long URLs below. They may well wrap to the next line. You might want to take a look at Chris Sells' UrlRun (http://www.sellsbrothers.com/tools) which can help with this problem. --------------------------------------------------------------------- Weblinks: Fresh Developer Content on 101's Web sites - Real-time, BI, and the road ahead http://www.adtmag.com/article.asp?id=8021 - Java tested http://www.adtmag.com/article.asp?id=7502 - Spec aims to boost Web services interoperability http://www.adtmag.com/article.asp?id=8012 - New ways to test packages http://www.adtmag.com/article.asp?id=7975 - SCM: Through the maze http://www.adtmag.com/article.asp?id=7987 - License, Please http://mcpmag.com/Features/article.asp?EditorialsID=355 - A Fast Intro to .NET http://mcpmag.com/reviews/books/article.asp?EditorialsID=140 - Scripting for MCSEs: Speaking the Same Language http://mcpmag.com/columns/article.asp?EditorialsID=583 - Turbocharging Terminal Services http://mcpmag.com/columns/article.asp?EditorialsID=584 - SQL Server Developer Edition Price Drops http://www.entmag.com/news/article.asp?EditorialsID=5895 - Visual Studio "Whidbey" to Ease 64-bit Transition http://www.entmag.com/news/article.asp?EditorialsID=5890 --------------------------------------------------------------------- Improving Software Development: Something New Under the Sun Learn at least one new language every year. Different languages solve the same problem in different ways. By learning several different approaches, you can help broaden your thinking and avoid getting stuck in a rut. - Andrew Hunt and David Thomas, The Pragmatic Programmer You probably learned procedural programming first. And now you're an object-oriented genius. But have you ever looked into functional programming? Functional programming is one of those concepts that most of us have never needed to master. But with all the resources of the Internet at your fingertips, it's pretty easy to get started with a new language these days. And if you're a serious developer, you already know that learning new languages can turn out to be useful in unexpected ways. So, in this column I'll take a little look at functional programming, starting with the Haskell language. Everything You Know is Wrong Suppose you were to set out to write a programming language that made none of the assumptions that you're used to from C, C++, Visual Basic, C#, or Java. You might well end up with Haskell. Here are a few features of Haskell you may find puzzling: - Identifiers don't change their values. If x has the value of 2 in a Haskell program, it has the value of 2 throughout the program. - A Haskell program tells the computer what to do, but not what order to do it in. The computer gets to decide in which order the statements should be executed. - It's easy to define (and sensibly use) a list with an infinite number of elements - Side-effects of executing a function are impossible - Haskell has no looping constructs (though there are ways to fake it). Recursion is used instead of loops in many cases. OK, so why in the world would you use such an Alice in Wonderland language? Well, here are a few of the advantages that Haskell proponents mention: - Increased productivity - Shorter programs - Fewer errors - Ease of understanding Well, that all sounds kind of yummy, doesn't it? Just to whet your appetite a bit, here's a tiny bit of Haskell code. It's an implementation of quicksort from the Haskell Web site, http://www.haskell.org (which has an absolute wealth of Haskell resources: everything from book-length tutorials to free compilers): qsort [] = [] qsort (x:xs) = qsort elts_lt_x ++ [x] ++ qsort elts_greq_x where elts_lt_x = [y | y <- xs, y < x] elts_greq_x = [y | y <- xs, y >= x] The idea here is simple: to quicksort an empty list, just return the empty list. To quicksort a longer list, split it into the first element and the rest of the list. Return the result of quicksorting everything less than the first element, then the first element, then the result of quicksorting everything greater than or equal to the first element. Not only is this a very parsimonious implementation in terms of code, but it's also very close to the actual quicksort algorithm. That's one of the beauties of functional programming; you just put the algorithm straight into the code, and you're done. Of course, there is a whole lot more hung on top of this idea, including specialized ways to handle I/O and exceptions, libraries of pre-existing functions, list and tuple manipulation, and plenty more. And Haskell is good for more than CS courses and parlor tricks. Haskell has been used for prettifying C++ source, designing FPGA circuits, natural language processing, and rendering OpenGL graphics. There's even an Asteroids clone written in Haskell. By the way - functional programming isn't really as strange as that list of features I gave you up above might make you think. Excel worksheets, XSLT stylesheets, and SQL statements are all examples of specialized bits of functional programming, where you specify what to do and let the computer worry about how to do it. Getting Out of the Box One problem with learning a new language is hooking it up to existing code. Most of us don't care to abandon an entire toolbox full of carefully-hoarded code snippets and libraries that we've built up over the years, just to play with the latest and greatest toys. Fortunately, an explosion of open APIs over the past decade has made this less of an issue than ever before. It seems like everything is hooked up to everything else, and Haskell is no exception. Here are a few of the glue bits that you can grab for this language: - HaskellDirect is an IDL compiler for Haskell. Thus you can call COM objects from Haskell, or create COM objects in Haskell to be called by other COM applications. - GCJNI is one of several Java Native Interface implementations for Haskell. - HaskellScript ties Haskell into Microsoft's active scripting framework. - Haskell/CGI lets you write CGI scripts in Haskell. - haskell-corba lets you write CORBA clients and servers in Haskell. - HaSQL is a Haskell to ODBC interface. - MySQL-HS ties Haskell directly to MySQL. You get the idea. Of course, with free tools you need to be careful to set aside time for testing, to make sure that what you're trying to do is supported. But on the flip side, you can usually get the source code to add the support yourself if you must. One More Letter Down Haskell, of course, is not the only fish in the functional language sea. You've heard of C# and J#, and perhaps even of the rumored future X# XML-based .NET language. But how about F#? F# is a functional language for .NET, originating at Microsoft Research (XXX). Remember, this is the "blue-sky" part of Microsoft. Some things from MSR ultimately end up in products; many others do not. So don't count on seeing F# in the next Visual Studio .NET package. But do take this as a sign that functional programming isn't as far from your computer as you might think. You'll find the F# homepage at http://research.microsoft.com/projects/ilx/fsharp.htm. (Browse around research.microsoft.com some afternoon when you've nothing else to do; there are some fascinating tidbits there, as well as various projects to make you wonder how some people manage to continue collecting a salary). F# is a .NET implementation of the core of the OCaml language, which combines functional, object-oriented, and imperative features into one giant confusing package. Actually, it's not all that confusing; OCaml source code is pretty easy to read, though there are quite a pack of concepts to learn. So, maybe the notion of a functional language in the .NET environment isn't so far-fetched after all. If there should be a sudden burst of popularity for such languages, it wouldn't take much (beyond a few zillion programmer hours, which they have) for Microsoft to turn F# into a product. Pick the Best Tool for the Job Perhaps you'll never need the capabilities of Haskell or F# or OCaml for any project that you're involved with. But if you don't develop at least a rudimentary understanding of those capabilities, you'll never know. As the pragmatic programmers suggest, the more computer languages you're familiar with, the better the chance that you'll come up with an elegant solution to any given software problem. There's another reason for studying new languages, of course. In an environment such as .NET, you can easily mix and match modules written in different languages. Those developers who are familiar with the widest range of .NET languages are the ones who are best positioned to take advantage of this rich integration - and thus, the most salable. Along with keeping up your certification credentials, remember to keep up the underlying knowledge credentials. The combination will serve you well as you compete for employment or freelance contracts. Haskell too academic for you? Boss won't let you waste time developing new skills? Or do you have a functional programming success story? Drop me a line and let me know about it! I'll use the most interesting comments in a future issue of Developer Central. --------------------------------------------------------------------- Briefing: VMWare ESX Server 2 VMWare ESX Server 2, starting at $3750 VMWare, Inc. Palo Alto, California (650) 475-5000 http://www.vmware.com/ Many of you are familiar with VMWare because of VMWare Workstation, the virtual machine software that makes it easy to run Windows (or Linux, or FreeBSD, or whatever) in a window inside of Windows. But VMWare also makes several higher-end products as well, using the same basic technology. I had the chance recently to chat with them on the occasion of the release of one of those products, VMWare ESX Server 2. ESX Server is "server virtualization" software. Here's how it works: instead of having separate boxes for your Exchange server and SQL Server and IIS server and patch server and half a dozen other things, you can take one really hefty box and partition it into multiple virtual machines. Then each server runs in its own VM. To the outside world, they still look like separate computers, but now instead of maintaining ten servers you only need to keep one up and running. There are other high-end features here that you won't find in the end-user product. For example, the VMWare Control Center lets you move a virtual server from one physical server to another -- with zero downtime on the virtual server. Imagine unplugging a server to upgrade the memory or replace a failed power module without having to cut people off from their software (of course, you'd need to be using high-end servers with multiple redundant power supplies). Other new features in this version include the ability to deploy a single virtual machine across two real CPUs, support for blade servers and the latest operating systems, and fine-grained control over the resources (CPU, networking, memory, and disk I/O) allocated to each virtual machine. If you happen to be responsible for a server farm, large or small, this technology bears some investigation. --------------------------------------------------------------------- Review: iControl F5 Networks iControl SDK F5 Networks Seattle, Washington (206) 272-5555 http://devcentral.f5.com A couple of issues ago I mentioned F5's new iControl SDK release and DevCentral online site for developers. As you'll recall, F5 sells high-end intelligent networking hardware: - BIG-IP handles LAN traffic management with Layer 2 through Layer 7 switching. - BIG-IP Link Controller does load balancing and traffic management at the ISP level. - 3-DNS handles QoS and other issues when doing wide-area traffic management across the WAN. What the iControl SDK provides is a complete WSDL/SOAP API for controlling these devices (it also includes a CORBA API, but that's of less interest to me personally). The folks at F5 set up an account for me on a BIG-IP device in their labs, and I was able to play with the SDK a bit over the Internet. With the SDK and the DevCentral site at hand, it was almost absurdly easy to get started with iControl. There are complete solutions for VB .NET and C# shipped with the SDK, and although they're built in VS .NET 2002 I had no trouble converting them forward to VS .NET 2003 and the 1.1 Framework. There's a slight hurdle to cross in that the devices use self-signed SSL certificates, which the .NET Framework isn't happy with. But the DevCentral site includes a technical note on the subject, with instructions on configuring your applications to ignore this issue -- and a security caution that this may not always be the best policy. The SDK contains complete WSDL for all supported operations, and documentation of the APIs that they expose via SOAP. Samples cover all sorts of useful things: retrieving configuration information, querying device statistics, working with SNMP, and lots more. There's even a graphical application to track connections and throughput. Between the excellent SDK and the good support for SOAP and WSDL in .NET, any good .NET developer should be able to make a BIG-IP device jump through hoops programmatically. There are interesting possibilities here for the network infrastructure to be much more dynamic than it has been. I look forward to continued development on this front. --------------------------------------------------------------------- Review: ConceptDraw Professional ConceptDraw Professional 1.8.5, $249 Computer Systems Odessa Odessa, Ukraine http://www.conceptdraw.com/en/ Developers have plenty of reason to turn out diagrams: network architectures, database designs, and UML all come quickly to mind, along with random sets of boxes and arrows that are designed to illustrate the way stuff hooks together. Of course, most of us can't actually draw worth a darn. Fortunately, there are programs to help us with this. ConceptDraw Professional is a capable alternative to Microsoft Visio, priced hundreds of dollars left. You won't get all of the high-end features of Visio (such as .NET integration), but for putting together diagrams, ConceptDraw will do the job. The comparison with Visio is not accidental. If you've used Visio, you'll be perfectly happy with the user interface here: templates full of drawing objects and connectors to the left, grid-ruled working surface to the right, toolbars to the top. The Professional version ships with a few thousand objects, from database diagramming tools to network shapes to foods to blocks to bathroom and kitchen furniture. There are lots of things to like here. The installer is fast and the disk footprint of the application is only about 50 MB. They support both PC and Mac with the same file format, and they have both a viewer and a Web server to handle the file format available. You can also export to HMTL or their own documented XML format for additional Internet compatibility. There are lots of other import and export choices as well, including graphics and CAD formats. ConceptDraw lets you easily mix vector-based drawings with the icon-dragging-and-connecting approach, which makes things a bit more flexible. The Professional version goes even further to support interchangeability, including Visio, PowerPoint, and PDF conversions. For just about any common file format, you can use ConceptDraw to create your graphics and then export them to fit the target application. Overall, it looks to me like ConceptDraw will easily handle the drawing and diagramming requirements most developers are likely to have. --------------------------------------------------------------------- Review: Visual Build Professional Visual Build Professional 5.0, $295 Kinook Software Colorado Springs, Colorado (719) 481-4128 http://www.kinook.com/ Returning readers will know the importance that I place (and I'm not alone in this) on an automated, repeatable build process. Once a software project grows out of the realm of "I'm just noodling around for a few hours", it's time to set up a process so that all the pieces happen correctly: source code control synchronization, compilation, building help files and installers, and all the other goodies involved in taking source code and making it a finished product. Visual Build Professional is an excellent product for setting up such a process. VBP lets you define your build process with a series of steps. Actually there are multiple series - you can define a separate set of steps to clean up from build failures, for example. With macros and scripting you can also reuse chunks of logic from one build project to another, or set up quite complex conditional logic. Each step performs one action. An action might be a SourceSafe checkout, or a VB 6 project build, or zipping a bunch of files. The list of supported actions is quite long, including Visual Studio .NET, Wise and InstallShield, Perforce and CVS, Delphi and JBuilder, file actions, registry actions, and more. The program uses an XML file to store its actions, opening up some interesting integration possibilities. Even better, you can use a documented XML format to define your own custom actions. Between that, scripting, and command-line support, you should be able to do just about anything that your build process requires. New features in version 5.0 include support for SQL Server queries, HTML logging, integration with the Windows task scheduler and event log, and Unicode support. Especially impressive is the program's help file and wide set of samples. You won't spend much time trying to figure out how to do things if you spend a while browsing through all of this example code. If you're evaluating build systems, I suggest you put this one on the list to look at. You can download a fully-functional evaluation version from the Kinook Web site. --------------------------------------------------------------------- Review: Total Access Emailer Total Access Emailer, $499 FMS, Inc. Vienna, Virginia (703) 356-4700 http://www.fmsinc.com/ Mass e-mails are a fact of life, even for those of us who don't send spam. Heck, you're reading one right now, aren't you? Now, I'm not responsible for managing the Developer Central mailing list or sending the e-mail blasts, but if I were, Total Access Emailer would be an attractive product for the task. TA Emailer works with e-mail addresses stored in any sort of Access database, either MDB or ADP (the version of the program you buy is specific to the version of Access, though, so if you have data scattered across Access 97 and Access 2000 you'll need two copies). You can pick any field in any table or query as the source of the addresses, and use any other data stored in the table in the mail. For example, if you set the start of the body text to "Dear [FirstName] [LastName]", TA Emailer will fill in the data from the FirstName and LastName fields of each record. TA Emailer avoids the annoying Outlook security features that prevent mass mailings by sending directly to an SMTP server. You can use an SMTP server you already have access to, or follow the instructions in the help file to set one up on Windows 2000 or XP. You can schedule the blast to go out at any time, and you can set a delay between messages or between groups of messages so you don't outpace the server's ability to send them. Email jobs are saved so they can be edited and reused. You also get statistics and reporting after a blast has gone out. There's even a programmatic interface in case you'd like to add emailing capabilities to your own Access applications. All in all, a nice piece of work. --------------------------------------------------------------------- Review: ReaCompressor ReaCompressor 1.7, $24.95 personal/$49.95 business ReaSoft.com Forest Hills, New York http://www.reasoft.com Most of you readers will know that I believe developers are likely to end up as jacks-of-all-trades, especially in smaller shops. That's why I stretch these reviews to include tools such as ReaCompressor. Though it's aimed at Web designers, it's a rare developer indeed who's never needed to design a Web site. The point of ReaCompressor is simple: it takes graphics and gives you compressed versions, suitable for low-bandwidth usage. The interface is simple. On the left, you can see your original image; on the right, a tabbed window lets you choose between JPG, GIF, PNG, and TIF output. There are floating control panels to let you adjust the various parameters that control the fidelity and size of the output windows. Sure, there are other image compressors out there, but two things stand out here. First, ReaCompressor can open just about any image you can throw at it; they claim 340 input formats, and while I didn't count them, the list is definitely long. Second, their JPG compression lets you choose rectangular regions and assign them a different compression from the rest of the image. I didn't even know that was possible, but it's certainly useful. Imagine keeping more detail in the foreground of an object in your catalog while letting the background lose some crispness. In addition to saving bytes, it could make for a nice visual effect. There's a 30-day shareware version available for download from the ReaSoft site if you want to try it yourself. --------------------------------------------------------------------- Review: Web.Config Editor Web.Config Editor 2.0, $99 HunterStone Irmo, South Carolina (803) 749-8980 http://www.hunterstone.com If you've worked with ASP.NET at all, you know that the web.config file is a morass of hundreds of settings. Remember what they all are? Neither do I, and Visual Studio .NET's XML editor, while pretty, doesn't do anything to make that easier. Enter this product, which is specifically an editor for Web.config files that actually knows what they contain. Web.config Editor runs in two modes, either standalone or within Visual Studio .NET. Either way, you get four panes. The first is a treeview of checkboxes that shows every element that the Web.config file can contain, with the ones that are actually in the current file checked. The second is a work area that contains combo boxes, text boxes, check boxes, grids and other controls appropriate to the current element. The third is a color-highlighed view of the raw XML. And the fourth panel is context-sensitive help form the .NET Framework. Adding a new section to the Web.config file couldn't be easier: click it in the treeview, fill in the controls in the main editing section, and save. The help is right there if you need it. Version 2.0 improves an already-fine program by adding searching, automatic validation of any edits you make by hand, automatic backups, testing of SQL Server connections, and new sections from the 1.1 Framework. If you're working with ASP.NET on a steady basis, you probably want to grab a copy. You can download a trial version to see how well it works for you. --------------------------------------------------------------------- New and Notable - Borland's C# Builder IDE for C# is out. You can get the Personal Edition free for non-commercial use at http://www.borland.com/products/downloads/download_csharpbuilder.html - Ch is an embeddable, cross-platform, C and C++ interpreter aimed at scripting, numerical computing, shell programming, and other applications. http://www.softintegration.com/ - DataGridColumnStyles is a set of commercial libraries with things like combo boxes, date time pickers, and password text boxes to embed in the .NET DataGrid. http://www.datagridcolumnstyles.net/default.asp - GetIt FTP is a secure FTP Client for Windows, with features optimized for tablet PC. Free for personal, educational, or charitable use. Noisette Software also makes a secure FTP server for Windows, as well as PocketPC FTP clients and servers, and a few other goodies. http://www.noisette-software.com/products/windows/GetIt - InstallShield has licensed the Visual Studio .NET IDE. That means that InstallShield customers will be able to build projects in this environment even if they don't have Visual Studio .NET involved. Useful if you already know the ins and outs of the IDE. http://www.installshield.com - Microsoft Java Language Conversion Assistant 2.0 - Microsoft is still trying to make it easy to abandon Java and come over the the .NET site. http://msdn.microsoft.com/vstudio/downloads/tools/jlca/default.aspx - NDoc 1.2 has been released, with a new HTML Help 2 documentor, flexibility to deal with .NET 1.1, mono support, Nant building, and other goodies. Time to upgrade the toolkit a bit. http://sourceforge.net/forum/forum.php?forum_id=296651 - Objectz.NET is a new object-relational mapping tool for .NET languages. 30-day trial available. http://www.mongoosesolutions.com/mg/objectz_net_work.aspx - PDF Editor is an inexpensive way to make minor changes to Adobe Acrobat files. It can't do everything, but it lets you add, delete, and rearrange information. http://www.cadkas.com/ - Sniffer80 is a Web sniffer and packet analyzer built in .NET. http://www.bizon.org/ilya/sniffer80.htm - SQL Source Control 2003 is a solution for SQL Server developers who want documentation and Visual SourceSafe integration. Of course you can get some of that through Visual Studio .NET, but not everyone wants to go that route. http://www.skilledsoftware.com/ - System Architect is a comprehensive architectural modeling tool with built-in VBA support. The latest release adds support for the Business Process Modeling Notation (BPMN). http://www.popkin.com - AlachiSoft is out with a new version of TierDeveloper, a .NET Object to relational mapping and code generation tool. I'll have a full review in the next issue. http://www.alachisoft.com/overview.htm -VB Law is a code review and standards enforcement tool for the VB 6.0 IDE. http://www.visibleprogress.com/vb_law_key_features.htm - XPlanner is Java-based freeware application for doing XP-style project planning. Now supports a SOAP interface for integration with other applications. http://www.xplanner.org/index.html --------------------------------------------------------------------- Web Resources for Developers - Admin Log is a general purpose bug tracker and project manager. You can download an Access or SQL Server version for free, or purchase the source code to see how they did everything. http://www.sibental.com/adminlog/adminlog.htm - Advanced Networking Pack for Windows XP - New IPv6 stack with NAT traversal, integrated IPv6 firewall, and peer-to-peer infrastructure. I guess one of these days I really need to dig into this IPv6 stuff. http://www.microsoft.com/downloads/details.aspx?familyid=e88cc382-8ce6-4739-97c0-1a52a6f005e4&displaylang=en - DbNetEdit is a database editing component for ASP/ASP.NET pages. http://www.dbnetedit.com/dbnetedit/default.aspx - Desktop Sidebar offers information management for your desktop, inspired by Longhorn screenshots. Includes clock, calendar, Outlook info, WinAmp, weather, search, RSS, and more. http://sidebar.tech-critic.com/ - The DNSBL database check page will check a domain or IP address in 40+ black hole lists at the same time. Very useful if you think your e-mail is being blocked somewhere. http://relays.osirusoft.com/cgi-bin/rbcheck.cgi - End-to-End Analyze Script for Keeping a VSS Database Healthy - http://blogs.gotdotnet.com/korbyp/permalink.aspx/83410b24-312e-4f57-8ac7-40f357c6572f - The Field Guide to Spam lists a selection of spammers' tricks to hide text in plain sight. From ActiveState, so of course part of the point here is to show you all the wonderful things that their anti-spam product picks up. But the wider lesson here is that simple keyword filtering is just plain worthless these days. Note that most of these tricks wouldn't work at all without the abomination that is HTML e-mail. http://www.activestate.com/Products/PureMessage/Field_Guide_to_Spam/?_x=1 - Forensic Log Parsing with Microsoft's Log Parser - http://securityfocus.com/infocus/1712 - Mailinator offers disposable e-mail addresses with absolutely no security - have your mail sent to whatever_you_pick@mailinator.com, and you (and anyone else) can pick it up from their Web interface. Looks useful for the next time you need to complete a Web site registration via e-mail and don't want to hand out a real address to get spammed. http://www.mailinator.com/ - Microsoft SQL Server Versions is a handy list of version numbers for SQL Server 7.0 and 2000. Given this list, you can use SELECT @@VERSION to check which patches are installed on a particular server. http://www.krell-software.com/mssql-builds.htm - PestScan is a free online spyware detector. An ActiveX alternative to Ad Aware, though they want you to buy the commercial version to clean up the things that it detects. http://www.pestscan.com/ - Project Line Counter .NET is a utility that can handle all your line of code counting needs in Visual Studio .NET. http://www.wndtabs.com/plc/ - Task List Programs is an extensive guide to applications you might spot in Task Manager without knowing what they are. http://www.answersthatwork.com/Tasklist_pages/tasklist.htm - Microsoft has dropped the base price for the Visual Studio Industry Partner program. Specifically, the base level (which gets you the SDK, royalty-free distribution, and newsgroup support) is now $0 instead of $10,000. See http://www.vsippartners.com/programoverview.aspx for more details and a link to the registration form. - The Windows Compact Disk Management Script is a set of utilities to take Windows CDs, slipstream in all the latest service packs and fixes, and burn new CDs with everything integrated. http://berns.cae.wisc.edu/pages/wincdman.asp --------------------------------------------------------------------- Reader Mail Luis V. Wagoner, Jr. writes: "My question is why you've chosen VB.Net over C#. And could you point me to statistics that capture numbers on VB.Net vs C# adoption by companies and developers? Finally, do you think that near future demand for .Net skills will be large or just average?" I've been working in VB and VBA since the Windows 3.1 days, which gives me a lot of background and credit in the language. That was why I ended up doing VB certification books. But - there's not that much difference between the two languages when you come right down to it; translating between the two is easy. In fact, while I was writing the VB certification books, Amit Kalani was writing the corresponding C# books, and we were trading drafts back and forth and translating the source code. At this point, I think developers should take a look at both languages and understand them both well enough to read code, though most of us will have a preferred language for writing code. I haven't seen any numbers on relative penetration of VB .NET and C#. I think C# has gotten a bit more press, and I've seen numbers from some survey or other that claim C# devs get paid more -- but I'm not convinced the survey was valid. As for .NET skills, I expect that when the economy picks up, there will be strong demand. With more and more of Microsoft's stuff coming out in managed (.NET) code, the shift is pretty inevitable. Eric Brunsen has a suggestion: "Could you indicate the primary language that a book uses when you review it please? What is the primary language for this book: DEVELOPING VISUAL STUDIO .NET MACROS AND ADD-INS?" Good idea, thanks. In this particular case, the macros are in VB .NET - you don't have any choices about that, as it's the only macro language there is for VS .NET. The add-ins are also VB .NET code in this book, though that's not a forced choice: you can write add-ins in the language of your choice. And Goran Popovski has a complaint: "I've been recieving this newsletter for a while now and I can say I've found it quite interesting and useful. The only thing that I might object is the usage of americanisms in the editorial: please note that this letter is received by non-americans as well. Good example is the temperature reference in your last letter - who apart Americans knows how much is 102 degrees?! We DO have standards around for things like temperature (and we all know about standards in IT). So I would ask if you can keep in mind who is you audience, thank you very much (for a good discussion on this topic, see: http://c2.com/cgi/wiki?AmericanCulturalAssumption). Anyway, apart from this minor objection, keep up the good work." Thanks for writing, and you raise an interesting (and valid) point. The problem is, of course, that this is an area of conflicting standards - Celsius being the standard in much of the world, but Fahrenheit in the USA. So if I referred to the temperature as 39C (and I am happy to say that I'm one of the Americans who can work this out in his head without too much effort), the majority of my readers would be perplexed. The other thing I'd point out is that the mention was in the editorial, which by its nature is designed to have my own personality in its content. Thus, if anywhere is appropriate for assumptions from my own culture, it's the editorial. (Of course, we could debate whether in fact there is any place where such assumptions are appropriate). Anyhow, I'm not insensitive to your concerns. It's a balancing act between globalization and style in some cases. ********************************************************************* Sponsor: Training. Networking. Certification. Solutions. Develop your skills at MCP Magazine's TechMentor Conference, September 2-6 in San Diego. Networking and security experts will lead immersion training workshops designed to give you real-world details on Security, Active Directory, Windows Server 2003, Network Scripting, Exchange and more. Register by August 8 and save $150! MCPs and alumni save an additional $100. Register today. http://info.101com.com/default.asp?id=2221 ================================================================= News in this newsletter is written and compiled by Mike Gunderloy, mailto:MikeG1@larkfarm.com. I'd love to hear from you. Or for between-issue rants and reviews, visit me at http://www.larkware.com . To find out how you can sponsor this newsletter, contact Abraham Langer at mailto:alanger@101com.com Application Development Trends Magazine 101communications LLC 600 Worcester Road Suite 301 Framingham, MA 01702 Phone (508) 875-6644 Fax (508) 875-6622