Developer Central http://www.adtmag.com/ July 2, 2003 - Vol. 2 #18 ================================================================= THIS ISSUE SPONSORED BY: - Free Certification CD http://info.101com.com/default.asp?id=1997 - Doing all you can to harden your Windows network? http://info.101com.com/default.asp?id=1979 ================================================================= In this issue : 1) Editorial Chatter 2) Weblinks 3) Improving Software Development: Begin at the Beginning 4) Tech-Ed Roundup 5) Briefing: SQL Anywhere Studio 6) Briefing: IBM Rational XDE 7) Review: Visual Welder 8) Review: Internet Research Toolbar 9) Review: LSW DotNet-Lab 10) Review: Visual SlickEdit 11) New and Notable 12) Web Resources for Developers ********************************************************************* Sponsor: Free Certification CD for taking our assessment test Take our FREE "Working Knowledge Assessment" and get a FREE Certification Training CD for the area that you want more knowledge of - Click here http://info.101com.com/default.asp?id=1997 or call 877 288-2764 to do a quick assessment quiz. Offer valid in the U.S. only. Free disk for first 50 to respond. --------------------------------------------------------------------- Editorial Chatter This week I want to talk a bit about RSS -- an acronym that has stood for several things, depending on who's doing the explaining. I like "Really Simple Syndication" as the expansion, personally. If you don't know about RSS, you're missing out on a major way to get useful information. But there's more than that to the story. The evolution of RSS provides some interesting views of politics and standards in software development. But first, the useful part of RSS, just in case you haven't yet run into this standard. RSS is a way for a Web site to stuff headlines or stories into an XML file with a simple format. There are dozens of applications out there (generically called "news aggregators") that can monitor these files for changes and show you new headlines as they come out. I'm partial to an Outlook-based aggregator called NewsGator (http://www.newsgator.com/); others include Syndirella (http://www.yole.ru/projects/syndirella/), SharpReader (http://www.hutteman.com/weblog/2003/04/06.html#000056), RSS Bandit (http://www.gotdotnet.com/Community/Workspaces/Workspace.aspx?id=cb8d3173-9f65-46fe-bf17-122e3703bb00), NewzCrawler (http://www.newzcrawler.com/), and FeedReader (http://www.feedreader.com/). Most aggregators work on a "set it and forget it" theory: you tell them how often to look at the RSS feeds (I usually go for once an hour) and when you have time you read the headlines and decide whether to click through to look at the stories. It doesn't sound like such a huge advance, but compared with surfing around to dozens of sites to find the items you want to read, RSS is a huge advance. Most people find that they can keep tabs on considerably more information with RSS than with surfing around, and find it easier to hone in on the stories that interest them. RSS got its first real burst of popularity from weblogs, but it's now being used by everyone from major media outlets like the BBC and New York Times to technology companies. Microsoft, Sun, Oracle, and IBM are all providing part of their developer-oriented content via RSS these days. Microsoft, for instance, has a set of RSS feeds for recently-posted MSDN content; you can find the links at http://msdn.microsoft.com/aboutmsdn/rss.asp . There are so many RSS feeds these days that there's a whole infrastructure devoted to them. Syndic8 (http://www.syndic8.com/index.php) provides a search engine to help you find feeds you're interested in. And I've put up a page of resources at http://www.larkware.com/rss/rss_resources.aspx that will direct you to aggregators, search engines, libraries, specifications, and more. If you're still a bit fuzzy about what an aggregator looks like, I've put a screenshot of NewsGator up at http://www.larkware.com/images/NewsGatorMain.jpg . So much for the useful part. Now for the politics and standards bit. Like HTML or XML, RSS is a standard - sort of. Originally drawn up and publicized by Netscape as a way to get content for their portal page, RSS has been branched and revised, sometimes by strong-willed individuals, sometimes by committees. I'm not going to name names here, because it's a thoroughly contentious corner of the online universe, and anything I could say would only be taken as an unfair slur by someone involved. RSS has so far avoided endorsement by any of the Web standards bodies (much as some people would like to see such an endorsement), and has mutated continuously as bloggers and developers have tried out various means of encoding, new XML elements, and new ideas about what sort of content belongs in RSS feeds. Of course, there are some people who are prone to View With Alarm this sort of thing. The Internet, they say, is Built On Standards. Therefore syndication needs to be standardized -- and if RSS 0.91, 0.92, 1.0, and 2.0 can't all agree, why then, the answer is to come up with *another* standard (as I write this, there's active discussion going on at http://www.intertwingly.net/wiki/pie/FrontPage?action=fullsearch&value=FrontPage&literal=1&case=1 among proponents of a new standard called Echo. You know what? I don't give a hoot whether there's a single RSS standard, or whether it gets replaced by Echo, or not. And I'll bet most consumers of RSS feel just the way that I do. What the proponents of absolute XML purity seem to miss is that the current medley of standards and hacks and non-standards is _good enough_. That is, I can fire up NewsGator and see news from Microsoft and Oracle and Sun and the BBC and a few dozen webloggers and ActiveWin and all of the other RSS feeds that I subscribe to. No doubt the NewsGator developers had to work hard to cope with all the quirks in these feeds, but they did it -- and so did dozens of other aggregator writers. Given that it all pretty much works now, why fix it? In other news affecting some of you who are certified, Microsoft has announced a batch of exam retirements for next year. In June 2004 they're going to retire this list: 70-015 Designing and Implementing Distributed Applications with Microsoft Visual C++ 6.0 70-016 Designing and Implementing Desktop Applications with Microsoft Visual C++ 6.0 70-019 Designing and Implementing Data Warehouses with Microsoft SQL Server 7.0 70-028 Administering Microsoft SQL Server 7.0 70-029 Designing and Implementing Databases with Microsoft SQL Server 7.0 70-100 Analyzing Requirements and Defining Solution Architectures 70-152 Designing and Implementing Web Solutions with Microsoft Visual InterDev 6.0 70-155 Designing and Implementing Distributed Applications with Microsoft Visual FoxProŽ 6.0 70-156 Designing and Implementing Distributed Applications with Microsoft Visual FoxPro 6.0 70-175 Designing and Implementing Distributed Applications with Microsoft Visual Basic 6.0 70-176 Designing and Implementing Desktop Applications with Microsoft Visual Basic 6.0 This retirement does NOT affect your certification if you relied on one of those exams to get, say, your MCSD. What it does affect is your ability to finish using the "old" MCSD track. If you have been dawdling through the Visual Studio 6.0 version of the MCSD, you've got about a year to finish. After that, you won't be able to take the exams you need any more, and will have to start over with the new MSCD .NET track. Of course, Microsoft would just as soon you switch to the .NET track anyhow, but they're giving you plenty of advance warning to make the decision. --------------------------------------------------------------------- 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 - Can Borland ride the life cycle? http://www.adtmag.com/article.asp?id=7732 - ADT Briefing Book: Javaone Wrapup http://www.adtmag.com/article.asp?id=7830 - Microsoft gains in latest Java ruling http://www.adtmag.com/article.asp?id=7905 - IBM, Oracle start work on Java API for XQuery http://www.adtmag.com/article.asp?id=7877 - Making a Business Case for Web services http://www.adtmag.com/article.asp?id=7871 - Lifecycle of an E-Mail Worm http://mcpmag.com/Features/article.asp?EditorialsID=351 - Scripting for MCSEs: Give the My Computer Icon a Name http://mcpmag.com/columns/article.asp?EditorialsID=566 - Microsoft Announces Security Specializations http://www.certcities.com/editorial/news/story.asp?EditorialsID=455 - Sun Announces Free Beta for New Java Cert http://www.certcities.com/editorial/news/story.asp?EditorialsID=451 - Microsoft Updates BI Tool http://www.entmag.com/news/article.asp?EditorialsID=5854 --------------------------------------------------------------------- Improving Software Development: Begin at the Beginning The beginning is the chiefest part of any work. - Plato, The Republic So, how do you begin a new software project? Do you open up your favorite IDE and start slamming code in? Perhaps you think a bit first, and noodle a few diagrams down on a cocktail napkin? Or perhaps you sketch the user interface on your whiteboard, right next to the football pool statistics and the phone number for that good Chinese place around the corner. If you're taking any of these approaches, you're not really beginning at the beginning. Before you can build any piece of software, you need to know what the software will accomplish: what are its requirements? If you lack a structured process for answering that question, it might be time to pick up a copy of Karl E. Wiegers' book SOFTWARE REQUIREMENTS, just out in a vastly-expanded second edition from Microsoft Press. It's Not As Easy As It Looks Even defining the term "requirements" isn't a simple matter. Different stakeholders in the project may have different ideas of its requirements, and you may focus on different kinds of requirements depending on the project lifecycle. Wiegers distinguishes four types of requirements: - Business Requirements: High-level objectives of the organization or customer who requests the system. - User Requirements: User goals or tasks that the users must be able to perform with the product. - Functional Requirements: Software functionality that the developers must build into the product to enable users to accomplish their tasks, thereby satisfying the business requirements. - System Requirements: Top-level requirements for a product containing multiple subsystems. Note that not all of the subsystems will be software! Wiegers goes on to divide the process of working with these requirements into requirements development and requirements management. Requirements development further divides into a complex set of elicitation, analysis, specification, and validation activities, with feedback loops between them. After requirements development has teased out the requirements for a product, requirements management entails the process of coming to agreement with the customer as to what the requirements are. Of course, it's all dynamic; you ignore the requirements change process at your peril. Much of the book is devoted to digging into these various activities in depth and providing concrete advice for the budding (or experienced) requirements analyst. 'Tis the Voice of the Customer, I Heard Him Declare... One of the best parts of this book is chapter 7, which is devoted to requirements elicitation. Wiegers identifies this (correctly, in my experience) as "perhaps the most difficult, most critical, most error-prone, and most communication-intensive aspect of software development." Requirements the most critical part of a software project? Sure! When I think back on my own experience of failed projects, most of them revolve around disagreements between customer and developer as to just what was supposed to be done. Lacking that agreement, there's no way you can succeed. Wiegers provides lots of ideas on eliciting requirements, including the use of a formal requirements workshop to enable a group of users to work together with the developer. He covers the role of the analyst in helping guide the discussion, and offers lots of tips on digging out and formalizing the requirements that the users might not even know they had. Perhaps most importantly, there are tips on telling when you're finished eliciting requirements. For instance, if the users can't come up with any more use cases, it probably means they've told you everything that the software needs to do. Use the Case, Luke Use cases emerge a central construct in this methodology. That makes sense, because they're a concept that make sense both in the software development domain and in the real world. Actual users can understand the notion of writing little scenarios about who does what with the software. Developers can turn these scenarios into pretty little stick figure diagrams that make them feel happily structured about the whole process. Wiegers offers advice on both gathering and documenting use cases. He also relates use cases back to functional requirements, and warns (as with so many other things) of the traps that you need to avoid. In particular, he's got one warning that could apply to almost any methodological construct: "Don't try to force every requirement you encounter to fit into a use case. Use cases can reveal most - but probably not all - of the functional requirements." Quantity and Quality Even experiences requirements analysts may learn new tricks from this book. Consider the notion of quality attributes. You may think you've collected all the requirements for a new piece of software when you know what it should do - but what about all the unspoken assumptions about how well it should do those things? These quality attributes are also part of the requirements, and often the hardest part to get out of the users. Typically they're represented by hard-to-quantify terms such as availability, efficiency, flexibility, integrity, and usability. The book offers a framework for thinking about these squishy requirements, and ways to talk with users about them. The evidence is fairly strong that these quality attributes aren't always considered in the software world. Think about commercial products you've used: ever try to do something that seemed reasonable, only to end up with a dialog box telling you that there were 1,432,574 minutes remaining in the operation? That's a sure sign that the software is functionally there, but lacking in some important usability requirements. Your Homework Overall, as you might guess, I'm quite impressed with this book (I don't have time to review bad books in this column). In addition to a comprehensive view of the field, Wiegers also writes well. Each chapter starts with a narrative illustrating its main point from an example of requirements gathering in the wild, and ends with things for you to think about in your own work. You'll also find useful templates and formats for documents scattered throughout the book. Better yet, you'll find them online at http://www.processimpact.com/goodies.shtml. In particular, if you're on the fence, I suggest you go take a look at the Current Requirements Practice Self-Assessment on the Web site. If you don't score very high on this exam, then your requirements process could stand some improvement. And given that errors are much less costly to fix at the requirements stage than at any later time in the development process, such improvement tends to have a very good return. Got a requirements horror story? Or a great way to collect requirements without doing hard work? 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: SQL Anywhere Studio SQL Anywhere Studio 9, $399 iAnywhere Solutions Dublin, California (519) 883-6898 http://www.ianywhere.com/products/sql_anywhere.html Sybase's iAnywhere unit has announced a new release of SQL Anywhere Studio, the latest in this 15-yer series of mobile database products. According to Gartner, they new own better than 70% of the market, and given the continued innovation they bring to the field, it's easy to see why. They define their mission as bringing about "anywhere, any time access to enterprise information." The tool for doing this is SQL Anywhere Studio, which consists of three major components: - Adaptive Server Anywhere (ASA) is the database server itself - Ultralite is the database system for Palm, PocketPC, and Java-based devices - Mobilink is the synchronization technology, which handles synchronization and replication with Oracle, Microsoft SQL Server, and IBM DB2 databases This release features improvements in three major areas: standards and platform support, enhanced performance and scalability, and advanced developer support. In the standards and platforms arena, they've added a whole raft of things: - XML import/export - SQL/XML functionality - A built-in HTTP server - SOAP and WSDL support - A native ADO.NET provider for ADA - .NET Compact Framework support - Mac OISX and 64-bit Itanium spport One of the goals here is to enable developers to leverage their existing SQL skills to build Web Services, instead of forcing them to learn new languages. Developers also get more flexible synchronization options (including a server-initiated synch mode in which the server sends a SMS message to tell a device that it's time to hook up), more SQL support, and dynamic runtime SQL for mobile devices. Finally, on the performance front, the new version includes an enhanced query optimizer, and index consultant to recommend indexes based on the actual query load, and "Adaptive Query Optimization", which can actually change the query plan on the fly if something (such as available RAM) changes while a large query is being executed. The new product will ship in the first half of July, according to the Sybase folks that I talked with. Deployment licenses are priced at $119 and there should be an evaluation version available for download as well. --------------------------------------------------------------------- Briefing: IBM Rational XDE IBM Rational XDE Developer .NET Edition v2003 IBM Corporation Somers, New York http://www.ibm.com/rational When last I looked at Rational XDE, Rational was still a standalone company. In the interim, they've completed their acquisition by IBM, and are now an IBM brand. But they didn't stop writing software while the business people ironed things out. Indeed, they've pushed out another version of Rational XDE Developer for Visual Studio .NET 2003 users, and as promised, their commitment to the Microsoft developer seems to be as strong as ever. I had a chance to talk with them about the new release, and should be bringing you a hands-on review in the next issue or two. The new version works in either Visual Studio .NET 2002 or 2003, but not both on the same machine; you have to pick one or the other. You also can't interchange files between the new XDE and older versions. However, if you have a group of mixed VS .NET 2002 and 2003 installations, and the new XDE on all of them, you can swap solutions around just fine. One of the spiffiest new features here is the automatic creation of sequence diagrams through the new Visual Execution feature. Basically, you tell it that you want it to graphically monitor what's going on, and XDE builds a sequence diagram as the classes in your application interact in real time. I saw this one in action and it was indeed very cool to watch. The sequence diagrams can easily be filtered to let you concentrate on the interactions you're interested in, making them a good debugging tool as well as a documentation tool. Another nice touch in this version is pattern repository support. You can create your own pattern repositories locally or via the Web, making it easy to share custom patterns across a workgroup or an enterprise. There's also the introduction of RXE, the Rational XDE Extensibility model. This allows software templates to have visibility into other parts of the model beyond those you're currently working with, allowing them to be much more sensitive to their context. You can think of this as a sort of highly flexible code generation feature. There are other goodies as well -- seamless transport of high-level XDE models between the Eclipse, WebSphere, and .NET worlds, reverse engineering in the data modeler, enhanced tracing of requirements from Requisite Pro to any object in a model. I'm looking forward to trying this version on my own testbed computers. --------------------------------------------------------------------- Review: Visual Welder Visual Welder 2.0, $399 sembleWare Fort Lee, New Jersey (201) 242-1522 http://www.sembleware.com/ A couple of issues ago I brought you a briefing on sembleWare's Visual Welder. The basic premise to Visual Welder is that assembly is faster than coding. It's based around a concept of "parts", which are slightly different from traditional components. A part can span multiple tiers, from the GUI to the database. It also has well-defined plugs and sockets that can hook up to other parts. Visual Welder provides its own editors for these things, well-integrated into Visual Studio .NET. Two of the more important add-in components here are the Part Hierarchy window, which provides a treeview of all the conceptual parts that will go into code generation, and the Active Toolbox, which lets you drag concepts to forms to instantiate them. When you're done creating your parts hierarchy, you can generate the actual application: SQL Server database, VB .NET application classes, ASP.NET presentation layer. The generated code seems clean and is well organized by regions, though it's clearly not meant to be edited directly. When you work with Visual Welder, you're petty much committing to work at the Parts level rather than the code level. You can also put together parts in the 3-D Spatial editor, where building a sort of block model leads directly to code-behind. You can get a peek at this interface in action on the company's Web site at http://www.sembleware.com/3DTour.asp. This is certainly different from any other programming environment I've worked with. It reminds me of nothing so much as the classic movie Tron, though there aren't any lightcycles running around. But there are blocks and colored bars that move around in 3D and zoom in and out as you manipulate them. While this does provide a useful way to look at the structure of your applications, it also raises the bar for the hardware requirements of the computer where you'll run Visual Welder. You need to install both DirectX and the Managed Extensions for DirectX, and based on my experience you'd better invest in a good speedy accelerated video card as well. Overall, Visual Welder seems like a potential choice for many line-of-business applications that depend on manipulating objects backed by a database. sembleWare supplies a repository of parts online that you can leverage in your own applications. You can also create your own corporate repository. There are quite a few components available, and it does look like this provides a leg up on many common applications. --------------------------------------------------------------------- Review: Internet Research Toolbar Internet Research Toolbar, $59.95 Flexity Technologies, Inc. 877-FLEXITY (353-9489) http://www.internet-research-toolbar.com/ I get a lot of press releases in the e-mail these days (one of the hazards of being a working journalist. That, and paper cuts.) Many of these come from companies I've never heard of, and usually with good reason. But there are gems among the mountain, and the most recent of these is the Internet Research Toolbar from Flexity. The idea here is simple: a lot of us spend a great many hours on the Web, and we don't always remember where we saw something interesting (indeed, to a large extent this newsletter consists of pointers to things I might want to find again in the future). For example, have you ever used Google to search for the details of calling a particularly obscure API? Ever looked up the same one again a month later because you couldn't remember the details from the first time? The second round of searching the Web was basically a waste of time. Given the plummeting cost of disk storage, it makes sense to store and index those things instead of having to find them again. The Internet Research Toolbar tackles this problem by providing an add-in toolbar for Microsoft Internet Explorer that makes it easy to save a snapshot of a page for future reference, and to search your saved pages. Behind the GUI here they've also crafted their own custom database, which the company tells me is planned as the basis for other products as well. That alone would be interesting, but someone at Flexity spent a lot of time thinking about what would make an even better product. For example, instead of just saving whole pages you can also highlight a section and save that, or save the text of a page without the markup. You can add notes to the pages and text you save. You can see by an icon on the toolbar when you've returned to a page you already saved, and whether it has changed in the interim. The program will also create bibliographic citations for you in numerous standard formats, and let you organize things in projects and categories, which should make it a real winner for students. In my initial testing, it's also fast enough to not be annoying, in both the save and retrieve stages. You can set up one-click saving, or get prompted for notes each time you save something. You can download a trial version from the company's Web site, or view some Flash demos of key features. --------------------------------------------------------------------- Review: LSW DotNet-Lab LSW DotNet-Lab RC6, price TBA Lesser-Software http://www.lesser-software.com/en/content/products/LSW%20DotNet-Tools/LSW_DotNet-Lab.htm LSW DotNet-Lab is the next step in the evolution of the LSW DotNet-Reflection-Browser. Yes, it's yet another way to dig around inside of .NET assemblies. This particular product is not yet released, but it's got ambitious plans and you can download a free beta to test out if you'd like. Perhaps the most interesting thing here is that although this tool is .NET-centric, it's not written in .NET. Instead, it's been developed in a proprietary SmallTalk environment. This has a couple of consequences. First, it will run fine without the .NET Framework installed, and has no particular Framework dependency. Second, it's informed by SmallTalk ideas of fast browsing around class libraries. I've put a screenshot up at http://www.larkware.com/Images/lsw.jpg so you can get some sense of what it looks like. Features include: - Loading of any .NET library or exe; it will prompt you to also load referenced assemblies. - Quick browsing around. The UI has a very snappy feel to it. - A flexible set of ways to flatten hierarchies and filter views to let you concentrate on the parts that you care about - Decompilation to MSIL. Note that this doesn't depend on reflection either, and so is immune to some obfuscators that block decompilation - Decompilation to C# or SmallTalk - Hierarchy and graph views - Links to XML and MSDN documentation Perhaps most intriguing here are the hints of what might be to come. LSW DotNet-Lab is set up as a program with various icons to launch different applications (think of a Windows 3.1 Program Manager group and you'll have the right idea). They're planning to add an obfuscator, refactoring tools, UML support, an XML browser...and many other things. If this works out, we could end up with a nice alternative for truly rapid .NET development. Right now it's too immature to use on a regular basis (though there is a standalone reflection browser that's a released product), but this shows a lot of promise for the future. --------------------------------------------------------------------- Review: Visual SlickEdit Visual SlickEdit 8.0, $269 SlickEdit Inc. Morrisville, North Carolina (919) 473-0070 http://www.slickedit.com After a couple of recent promotional mailings, I decided to download and try a copy of Visual SlickEdit for a while. This is one of the leading entries in the programmer's editor field, and it's been a few versions since the last time that I looked at it. I had a bit of trouble with the automatic license generator, but technical support responded promptly and got me up and running with the 30-day demo. Visual SlickEdit is designed to be your main home while you're working on a software project. It provides a three-tier organization: you work in a workspace, which can contain multiple projects, each of which can contain multiple files. It's smart enough to color-code files according to syntax, of course, and knows how to compile various types of projects. In addition, it's got plenty of language-specific smarts built in. For instance, if you're working in a C# source file, you can easily get IntelliSense-like help with available members, or automatically create an override for a method of a base class. There's also a dedicated XML documentation editor for C#, which automatically gets the right XML goop around comments - you just pick the member from a list and type in your documentation. As you'd expect from a code editor, there are plenty of keyboard shortcuts, macro recording, configurable source code beautification, and other productivity features. The diff and merge tool "DIFFzilla" is well-designed and very flexible. There's also a built-in class browser which gives you fast access to any symbol defined in your project. You'll find source-code control integration with most of the popular SCC systems. There are too many other features to list in a short review. Here's a more or less random sampling: - column selections - hex editing - spell checking (with nice touches like automatically skipping HTML tags) - Java wizards and ANT integration - multiple clipboard support - built-in FTP client - hide and show code blocks (similar to VS .NET regions) - single-key "zoom" to take the current file and make it fill the whole editing area, and then go back to the window layout you were using All in all, Visual SlickEdit is a solid package that's liable to contribute to the productivity of any developer who seriously commits to it. As with most programmer's editors, the emphasis is on working with the keyboard, though everything is available via the mouse and menus as well. If your current IDE is feeling underpowered, this is one of the alternatives that you should check out. There's a 30-day trial download on the company's Web site if you want to give it a spin yourself. --------------------------------------------------------------------- New and Notable - AppDetective 3.2 includes new versions to check Web applications and MySQL databases for security holes. The company's range of scanners covers a variety of other database products. http://www.appsecinc.com - Charting Components 2.0 is a set of graph and chart components for Macromedia Flash developers. http://www.blinex.com - CodeSmith 2.1.1270 is out, with a whole batch of new features. If you're interested in template-based code generation, start here. http://www.ericjsmith.net/codesmith/ - ContextConvert Pro offers single-click conversion in Windows explorer between a variety of audio, image, and video formats. For example, right-click on a JPG file and select Convert Image To TIF. http://www.contextconvert.com/ - Data Workshop is a Java-based XML-flavored IDE for binary data. Sounds wacky, but their screenshots show how this can be useful for things like decoding known file and message formats. http://www.dataworkshop.de/ - Ecora NetExplorer is a free network and port scanner from Ecora. Interestingly enough, it's a .NET application. It will do both OS fingerprinting and port identification from its own database, and scans whatever range of IP addresses you point it at. Also exports its results to XML. Requires somewhat intrusive registration to download. https://www.ecora.com/ecora/register/netexplorer.asp - EmEditor 3.35 has been released with some minor bug fixes. More significant to some of us in this release is free licensing for technical writers, editors, and freeware authors. See http://www.emeditor.com/register.htm for details. - Equivalent Script is a tool for DBAs that lets them write scripts once and automatically generates working scripts for SQL Server, Access, Oracle, and MySQL. The tool features an IDE for building scripts out of drag and drop components. http://www.equivalentscript.com/ - Expo Walkthrough from InstallShield provides a new way to create Flash-animated visual walkthroughs of your product for training or help purposes. Watch for a review in a future issue of Developer Central. http://www.installshield.com/products/walkthrough/ - FinalBuilder 1.5.3 is out. If, like me, you're using FinalBuilder for a .NET build process, you'll want to grab this version; it allows you to specify on a solution-by-solution basis which version of VS .NET to use for compiles. http://www.atozedsoftware.com/finalbuilder/ - ILObfuscator is another entry in the MSIL obfuscation market. http://www.9rays.net/cgi-bin/components.cgi?act=1&cid=86 - The OLAP Cube Management System 8.40, which I reviewed in beta last time around, has been released. http://www.localcubetask.com/dnldfr1ocms.htm - QSetup Installation Suite 4.0 is another alternative for developing setup programs for Windows applications. It takes a fill-in-the-blank dialog box to creating installers. Features include an autoupdate agent, no need to write scripts, and support for all 32-bit Windows versions. There's a free Express version and a $99 Pro version. http://www.pantaray.com - Refactor is a free tool for finding duplicate code segments in your source code. http://www.iwebthereforeiam.com/programming/programming%20source.html#refactor - Reg Organizer offers a variety of functions and search methods to help you flush junk out of the Windows registry. $25, trial version available for download. http://www.chemtable.com/organizer.htm - I mentioned the SQL Server Centric Code Generator in the previous issue of Developer Central, and Microsoft went and moved the download. If you're interested in this tool, check it out at http://www.microsoft.com/downloads/details.aspx?FamilyId=84B1B215-7179-4CE8-9E32-2F89CE86927E&displaylang=en or http://www.microsoft.com/france/msdn/technologies/outils/olymars/default - StrikeIron Web Services Analyzer is a new tool for interactively exploring Web Services that layers a GUI and testbed over the WSDL. http://www.strikeiron.com/htmls/products.html - Total Access Emailer is an Access add-in to generate mass mailings from an Access database. You can download a free preview version from http://www.fmsinc.com/products/emailer/index.asp?xpx=1. - Transcender has released TransTrainer for C# .NET/Windows to help you pass the 70-316 exam. http://www.transcender.com The VB .NET Class Generator is another code generation tool, ideal if you need to drop an application on top of a SQL Server data model. Enter some names, pick a key field, and click Save. You'll be prompted for a disk location, where the application will write two .vb files (a class and a collection class) and four SQL files (that you can run from Query Analyzer to produce the needed stored procedures). http://www.quantitycomputers.com/VBDOTNETCLASGEN.HTM - WinRAR 3.20 has been released. I haven't personally used RAR much since the old BBS days, but they're claiming up to 30% better compression than Zip files. http://www.win-rar.com - XMLPDF lets you dynamically create PDF files by merging XML data into XML document templates. Looks well-done and well tied into various other plumbing bits. Available for both Java and .NET. http://www.xmlpdf.com/ ********************************************************************* Events Calendar XML Web Services One August 12-15 in Boston http://info.101com.com/default.asp?id=1575 TechMentor Conference in San Diego, September 2-6 http://info.101com.com/default.asp?id=1567 --------------------------------------------------------------------- Web Resources for Developers - Microsoft's .NET application blocks are chunks of code that demonstrate best practices for various tasks, and that are designed for reusability in your applications. Recent additions to the list include the Application Updater block (http://www.microsoft.com/downloads/details.aspx?familyid=c6c17f3a-d957-4b17-9b97-296fb4927c30&displaylang=en), the User Interface Processes block (http://www.microsoft.com/downloads/details.aspx?familyid=f4a967a0-f36b-4ebe-8d33-f57784bdfb0f&displaylang=en), and the Configuration Management block (http://www.microsoft.com/downloads/details.aspx?familyid=85cb1c53-8ca7-4a92-85e3-e4795bd27feb&displaylang=en) - ASP.NET Version Switcher is a GUI wrapper for the aspnet_regiis command-line tool, which lets you pick the version of the Framework to use for individual sites on a server. http://www.denisbauer.com/NETTools/ASPNETVersionSwitcher.aspx - "Beyond CheckOut and CheckIn" is an essay from SourceGear's Eric W. Sink explains source code control concepts such as Label, Cloak, Branch, Share, and Pin. http://software.ericsink.com/Beyond_CheckOut_and_CheckIn.html - Code Generation FAQ: http://www.codegeneration.net/tiki-index.php?page=FrequentlyAskedQuestions - The Data Access Architecture Guide is more yummy goodness from the Patterns & Practices folks at Microsoft. In 86 pages it will give you the big picture and a lot of practical details to get you up and running with ADO.NET. http://www.microsoft.com/downloads/details.aspx?familyid=0d95803a-59d7-46e2-8dfa-01905846ac67&displaylang=en - dbXML is a native XML database. They've got a beta of 2.0 available. Looks like it's designed to integrate with a bunch of the usual open-source suspects. http://www.dbxml.com/index.html - The Enhanced .NET Bootstrap Sample is a front end for .NET setups that can install the .NET Framrwork, IE, Installer 2.0, and MDAC as needed. http://www.codeproject.com/managedcpp/DotNetSetup.asp - Gammadyne Mailer is a utility to send e-mail to a list of recipients from a text file or database. It's got all sorts of list-management features as well. Shareware, $149 to buy. - The Hippo.NET NAnt BuildFile Builder lets you upload your Visual Studio .NET project file, and get back a NAnt buildfile. Worth a look if your solution is outgrowing Visual Studio .NET. http://www.leadit.be/buildfilebuilder/ - Jet 4.0 SP7 is out. No, Jet isn't dead (though it is on life support). This KB article has pointers to all of the different SP7 downloads. One warning: due to security changes, you will see behavior changes in some databases (those that use VBA in Jet expressions) if you install this update. With five different downloads depending on OS, I doubt that many people will go through the hassle of including this SP in their setups. Details at http://support.microsoft.com/default.aspx?scid=kb;[LN];282010 - The net.demon obfuscated URL Decoder is a good tool to keep handy for when you get suspicious-looking URLs by e-mail. http://www.netdemon.net/decode.html - The W3C has blessed SOAP Version 1.2. To learn more, start with their list of improvements, which will link you to the rest of the important specs and such. http://www.w3.org/2003/06/soap11-soap12.html - The Technology Overview of Microsoft Office InfoPath 2003 provides a good quick intro to what this new beast is. My own hunch is that InfoPath will end up fitting well into some small niches, but see no general use, at least in this version. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odc_ip2003_ta/html/ODC_InTechOV.asp - The XML Big Picture provides a clickable map of XML standards. The scary thing is that you really ought to be familiar with a good chunk of these standards. http://kensall.com/big-picture/bigpix22.html ********************************************************************* Sponsor: TechMentor Conference, September 2-6 in San Diego Join security maven, Roberta Bragg, for a 2-day Windows Security Academy workshop at the TechMentor Conference in San Diego. Security isn't just about what choices to make during installation or how to implement features to patch your systems. You must develop a holistic approach to get your Windows network secure and keep it that way. For information on this and all courses visit: http://info.101com.com/default.asp?id=1979 ================================================================= 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