Developer Central http://MCPmag.com/mcsdcentral/ November 20, 2002 - Vol. 2 #3 ================================================================= THIS ISSUE SPONSORED BY: - Create better scripts in less time with PrimalScript http://101offer.com/goto/?MDC112002 - Subscribe To MCP Magazine News http://lists.101com.com/NLS/pages/main.asp?NL=MCPMag ================================================================= In this issue : 1) Editorial Chatter 2) .NET Explorer: What about that Pet Store? 3) Review: InstallShield Developer 8 4) Review: Visual Workbench 5) Review: AppSight 4.0 6) Review: Mindreef SOAPscope 7) Review: RoboHelp Office 8) Review: Entegra 9) Review: Total .NET Analyzer 10) New and Notable 11) Book Notices 12) Web Resources for Developers 13) Reader Mail *********************************************************************** Sponsor: Create better scripts in less time with PrimalScript Today, you can create elegant scripting solutions, hours faster than ever before. With PrimalScript - the most advanced editing tool for Systems and Network Engineers. Streamline not just editing but also organizing and accessing every element of your project. The only scripting IDE with WSH support that frees you from WSF file details. http://101offer.com/goto/?MDC112002 --------------------------------------------------------------------- Editorial Chatter Just a reminder: Developer Central is now coming to your mailbox twice a month. So Improving Software Development will be back next month, while this issue features .NET Explorer and Book Notices. Fortunately, there is plenty of stuff going on in the developer world, so I won't have any trouble filling two issues a month! Speaking of .NET, Microsoft has taken the gag off of VS .NET 1.1 beta testers: "On Sunday, November 17, 2002, Microsoft will announce “Everett” and christen it Visual Studio .NET 2003. We will release the Final Beta, which you should now have, to the MSDN Subscriber Download site, and include it with the next MSDN monthly shipment. As of November 17, you will be officially released from the confidentiality clause (section 5) of your License Agreement. The rest of the Agreement will remain in force." So, yes, I was an Everett beta tester (though not a very active one). Although they're calling this a new product, really it's mostly bug fixes to the existing Visual Studio .NET (Microsoft calls this "building on the stability and reliability" of the previous version). But there are some changes to be aware of. Here's my short list of significant points: - Version 1.1 of the .NET Framework is included. You can read about the API changes at http://www.gotdotnet.com/team/upgrade/apiChanges.aspx . 1.1 and 1.0 will coexist; expect to spend some time understanding the rules about side-by-side versioning and upgrades. Changes to 1.1 include adding System.Data.Odbc and System.Data.Oracle to the Framework, supporting IPV6, and adding a boatload of stuff that I haven't investigated to Enterprise Services. - Support for Mobile Device programming is rolled into the base product, in case you'd like to target phones or PDAs. - The VB .NET Upgrade Wizard has been enhanced - Full C# comlpliance with the ECMA standard - A modern forms designer (finally!) for Visual C++ - Better compliance with the C++ standard - Visual J# .NET is in the box - Crystal Reports is integrated with Visual J# .NET So, not all that earthshaking. It's a must-have if you're doing mobile device work, or forms-based applications in C++. Otherwise, it might be worth waiting for the next major release if your budget is constrained. Of course, as always, it'll be in MSDN, and I recommend that any serious developer spend the bucks for a MSDN Universal subscription. For much, much more, including the marketing spin on all this, see the official product site at http://msdn.microsoft.com/vstudio/productinfo/vstudio03/default.asp . Also you might want to look at the O'Reilly Network's articles on new stuff in the Framework (http://www.ondotnet.com/pub/a/dotnet/2002/11/18/everett.html) and Visual C++ .NET (http://www.ondotnet.com/pub/a/dotnet/2002/11/18/everettcpp.html). Speaking of betas, the next FoxPro beta is out too. You can actually download the beta of Visual FoxPro 8.0 yourself from http://msdn.microsoft.com/downloads/default.asp?url=/downloads/sample.asp?url=/MSDN-FILES/027/002/098/msdncompositedoc.xml . According to the download page, "Product highlights in Visual FoxPro 8.0 include structured error handling, CursorAdapter class for universal data access, new auto-increment support for data tables, Windows® XP Themes support, new base classes and controls, new GDI+ image support, new event binding for objects, full hierarchical support, new XML Web services features, updated OLE DB provider, improved development productivity, and new and improved compatibility with Visual Studio® .NET and SQL Server 2000." I haven't tried it myself, due to bandwidth limitations out here in rural America; if you have, drop me a line with your first impressions. And as I was going to press, Microsoft made a batch of announcements at Comdex. I may bring you my analysis of smart key chains and paperclips in the next issue (or I may just leave it at snickering), but I did want to point out OneNote, the next member of the Office family (that makes 13 by my count, a growing family indeed). You can find out more about this note-taking program and sign up for the coming beta at http://www.microsoft.com/office/onenote/default.asp . (And the perennial note: watch out for URLs that wrap later in this newsletter, especially ones that point to MSDN. Perhaps someone should introduce Microsoft to TinyUrl.com) ************************************************************************ Sponsor: Get The Latest In Microsoft News & Trends Delivered Weekly Developed especially for professionals who want to keep informed of industry trends, timely certification news, career advice, and chats with IT and certification training experts. Sign up Today. http://lists.101com.com/NLS/pages/main.asp?NL=MCPMag --------------------------------------------------------------------- .NET Explorer: What about that Pet Store? The Pet Store has apparently turned on its owner. The Java Pet Store is a sample application that Sun built to demonstrate how to design and implement J2EE-based enterprise-level Web applications. Sun's page for the Java Pet Store is at http://developer.java.sun.com/developer/releases/petstore/ , and describes it as "robust, scalable, and portable". Late in 2001, Microsoft brought out their own version of the Pet Store, written in .NET, that they claimed was functionally identical and way faster. The Java community cried foul, saying that the Microsoft version was optimized for speed while the Java version wasn't, and that it didn't have the same functionality anyhow. Now the Middleware Company, a J2EE consulting house, has undertaken their own evaluation of the controversy. They developed a Pet Store 2.0 based on the original, and built up functionally-identical and optimized versions in both J2EE and .NET. Then they pounded on them with Mercury LoadRunner. The results? The .NET implementation frankly kicked the J2EE implementation's butt, a fact that Microsoft has lost no time in publicizing at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/bdasamppet.asp You can download a PDF of the benchmark methodology and results from the Middleware Company's site (http://www.middleware-company.com/j2eedotnetbench/). It's interesting reading. This is not one of those "well, it was close but the differences were not statistically significant" benchmarks. This is a "you could lose your job recommending the losing technology" benchmark. Of course, there are still plenty of good reasons to use J2EE - platform and vendor independence being major ones. But if your goal is to build Pet Stores, well, stick with .NET. Or is it that simple? One thing that did not come out immediately was the extent of Microsoft's support. Here's TMC's statement on the subject: "Yes, Microsoft was certainly involved, as the paper describes. The Middleware Company approached Microsoft regarding performing such an experiment. Microsoft provided the lab, which was located in Seattle, funded the setup costs, and reimbursed us for expenses, including travel expenses. The Middleware Company invested several man-months in this project for which it received no compensation. The activity took much long than we expected, and at various points, we also hired independent consultants experienced in appservers A and B to tune them or provide recommendations, at our own expense. The parameters of the lab were under the control of TMC. TMC controlled the testing process. TMC stated up front that TMC would write a report about the real results, no matter what they were. These experiments are time-consuming, and require resources. Without permission and some support from Microsoft, we would not have been able to conduct the experiment. We would like to have conducted many more experiments than we did, and hope to in the future. TMC stands behind the results of the tests that were conducted." There is a fascinating and generally flame-free discussion of this benchmark in the J2EE community at http://www2.theserverside.com/home/thread.jsp?thread_id=16149 . It's apparent that many people think other component choices could improve the J2EE version, and they do have some valid criticisms (including that different database backends were used for the two versions, and that EJBs add features not required by this application at the cost of performance). And indeed, it seems the TMC is considering another round of benchmarks to try to answer some of the open questions. Meanwhile, I'll add my voice to some other outcries of sanity: you can in fact build good enterprise applications in J2EE. It's silly to pretend otherwise, when you look over the landscape of deployed applications. You can also build and deploy good enterprise applications in .NET. If you're inclined to take this all as some battle royale where only one company remains standing, I suggest you go read the remarks of Ted Neward at http://www.oreillynet.com/pub/wlg/2253. Ted has worked with both Java and .NET code, and has some very interesting things to say. Speaking of which, if you're looking for a good enterprise application to emulate, you might look elsewhere. It was largely overlooked in the sturm und drang surrounding TMC's report, but the folks at Deklarit also took a look at the Pet Store recently. They started off by intending to use their own product to reimplement the .NET version of the Java Pet Store application using their own product, with the Microsoft .NET version as the starting point. However, in the course of this task they discovered that the original data model frankly sucks: pointless one-to-one joins, missing joins, tables with no primary key. So instead their white paper turns into a list of problems they found and fixed instead. They do throw a sop to the Microsoft developers at the end: It is important to note that the main focus of Microsoft's implementation of the Pet Shop application was to show that the .NET version is faster and requires less lines of code than Sun's application, and to show that they should keep the same database schema as in Sun's version, so it was not important for them to improve the database design. Read the gory details at http://www.deklarit.com/technical/DeKlarit_Pet_Shop_application_white_paper.pdf --------------------------------------------------------------------- Review: InstallShield Developer 8 InstallShield Developer 8, $1199 InstallShield Schaumberg, Illinois (847) 240-9111 http://www.installshield.com/ Last issue I gave you a heads-up on the new features in InstallShield Developer 8, the latest MSI-based (Windows Installer) setup tool from InstallShield. Over the past few weeks I had a chance to pound on a copy, and here's some thoughts about what I saw. The nicest thing here is the full integration with the Visual Studio .NET IDE. That seems to be a growing trend among developer tools; it's reaching the point where, if you like, you can sit inside the IDE and do most everything. All we need is Windows Explorer in there and we're all set (actually I wouldn't be surprised if someone has already added an Explorer shell to VS .NET). Anyhow, it's certainly convenient to be able to add your setup project right to the same solution tree as the code that you're planning to install. Yes, VS .NET's own setup projects can do the same, but Developer 8 offers a lot of features that aren't in the built-in stuff. One of these, the ability to bootstrap everything including the .NET Framework and MSI 2.0 on to a clean box as part of the setup, will be appreciated by just about anyone building a product, no matter how simple. We're far from the days when we'll be able to take the presence of the Framework for granted. Whether in the IDE or standalone, Developer continues to offer flexible ways to work with MSI data. InstallShield has their own organized IDE to lead you through everything from defining features and components to choosing files and registry keys to install to building IIS virtual directories. But in case that's not sufficient, you can also get to the raw MSI tables and work with them directly. Another area worth noting is the wide range of redistributable support. Want to install MSDE 2000? A wizard walks you through picking the right components, deciding on database locations, instance names, and so on. Then it adds all the necessary preconditions to your setup. Other troublesome things like MDAC or MSXML are handled equally well. Overall, Developer worked well on the projects I tried it out with. The resulting setups are professional-looking and work well. If there's anything to nitpick about, it's the sheer wealth of options and power here. That may be overwhelming for simple projects, which can be just as well installed by the built-in VS.NET stuff (assuming you're working in .NET and don't mind the lack of a bootstrapper, anyhow). But when you want the power, this is a great package to turn to. The full package has a list price of $1199, but InstallShield is offering a $200 rebate on new and upgrade purchases through the end of the year. --------------------------------------------------------------------- Review: Visual Workbench Visual Workbench, $499 AppsChannel, Inc. Sand Springs, Oklahoma (918) 455-4714 http://www.appschannel.com/ The idea behind Visual Workbench is intriguing: to program in Visual Studio by just manipulating objects on a flowchart. Unfortunately, although the idea is there, the implementation doesn't yet strike me as compelling. The product is well-integrated into Visual Studio, and presents its drawing canvas with its own toolbar, icons, shortcut menus, and so on. Creating flows of control or branching constructs is pretty easy, though I kept expecting to do more dragging and less typing. And the created code seems to work, although I did get into a strange state where the XML being saved couldn't be parsed at one point. And that's where the drawbacks lie. The visual interface here is built on top of a bunch of XML files that Visual Workbench keeps track of yourself. These are processed by a runtime engine that embeds its own code objects into your procedures. And in turn, it all depends on the MSXML 4.0 parser (which, oddly, is not included in the installation even though it's redistributable). The whole adds up to a structure just fragile enough to scare me, and with enough implementation details showing through the flowcharts to confuse beginners. If Visual Workbench has a niche, I think it will be developers who are intrigued with the idea of visual programming but who don't want to learn the intricacies of UML. That may be a fairly narrow market segment to aim for, but with a bit more polish and some way to hide the messy details, this could be a workable alternative. You can learn more and download a trial version at the company's Web site. --------------------------------------------------------------------- Review: AppSight 4.0 AppSight 4.0 and AppSight Code 4.0, starting at $10,000 Identify Software Or-Yehuda, Israel +972 3 5384000 (919) 878-3717 http://www.identify.com/ A few months ago I wrote about a briefing I got from the Identify people about AppSight, their root-cause failure analysis software. This month I had a chance to install the software and go through a compressed version of their training. I've got to tell you, it was pretty darned impressive. Installing the software was trivial; basically just a matter of putting in the CDs and accepting all the defaults. This left me with the underlying "Black Box" technology for watching applications, the Black Box Manager to control the Black Boxes, and an integrated set of consoles (rich GUI applications) for analyzing the results. Then comes the process of watching a failing application. Basically, identify what you want to watch, run it, look at the results in the consoles. And wow, what a lot of results you can get. Object creation and destruction, strings of data sent between components, database accesses, library loads, memory allocations...damned near anything. There are some pretty amazing things they can do here. For example, deploy black boxes on all three tiers of an application that uses a web browser to access a database via an IIS server. Run the browser and look at the details of the capture in the console. Spot a problem, click a few times...and be looking at what happened on the IIS server. Click a few more...and you're right over on the database server looking at what it was doing. After seeing some of the canned examples, I deployed the technology to a Web server where I was having a mystery problem. This server wasn't on my domain, but no problem - you can deploy a Black Box with a simple Web or disk-based install, and capture its results to a log file for later analysis (and the log files are amazingly small, even when they're capturing everything the user does on the screen for later playback). A few minutes later I was looking at the trace in the console, and quickly found the web page that was causing the problem and the Windows library where things were blowing up. One more example of what the software can do: you identify a set of PerfMon counters that you'd like to track. Run the application. Then look at the counter values in a graph, like the one that PerfMon displays...only you can scroll back and forth over the entire lifetime of the application, rather than having a circular buffer overwrite itself. And as you scroll, the list of application events stays synchronized. Locating the code that was running when memory leaked becomes trivial with this model. Yes, it's high-priced, but this is darned good software. If I were running a dev group producing a serious commercial product, or distributed apps for a decent-sized corporation, I'd certainly be fighting to buy a copy. --------------------------------------------------------------------- Review: Mindreef SOAPscope Mindreef SOAPscope, beta 2 Mindreef Hollis, New Hampshire (603) 465-2204 http://www.mindreef.com Ordinarily, I'd wait for a tool to be released to review it. But in this case, the tool is so useful that it's worth looking at while it's still in beta -- with the added bonus that it's an open beta, so you can grab the bits and play with them yourself. SOAP, as you probably know by now, is the Simple Object Access Protocol -- part of the essential glue that holds Web Services together. What SOAPscope does is implement the notion of packet sniffing with a nose specialized to SOAP messages. The idea is simple. You install SOAPscope, it watches your network adapter for SOAP requests and responses. They go by, it snarfs them and saves them. Then later on you can look at the details, either in raw XML or in a friendlier pseudocode view. You can also set SOAPscope up as a proxy server to diagnose SOAP problems on a remote machine. Other capabilities of SOAPscope include the ability to edit and then resend messages directly from the SOAPscope interface, and to view WSDL in XML or pseudocode. Definitely a nice way to get a handle on what's going on with Web Services on your computer or your network. You can download a free copy of beta 2 from the Mindreef website to try it out yourself. If you're writing Web Services, or just trying to figure out how they work, it's a must-have. --------------------------------------------------------------------- Review: RoboHelp Office X3 RoboHelp Office X3, $899 eHelp San Diego, California (858) 847-7900 http://www.ehelp.com/ After writing about the new RoboHelp a few issues ago, I put it through its paces last month. I looked at the "Office" edition of the product, which combines Microsoft Word-based and HTML help editors. I spent most of my time in the HTML help version, since I was working on help files for a .NET-based product. What it boils down to is that if you can write, you can produce help files using RoboHelp. All of the messy stuff -- help compiler locations, the exact build steps, all that junk -- is safely hidden from the author. Building a table of contents, adding topics, and making them look pretty, is as easy as it would be with any other HTML editor. Then you go through a simple build process and voila, help comes out of the other end. One of the nice things here is multiple version support from the same source files. I found it very simple to create both a standalone HTML help file and Web-based help from a single project. There are other available types, including printed documentation and Java-based help, and you can generate multiple versions in a single step with the "batch generate" capability. It's easy to flag content to appear conditionally in certain output types as well. As you would expect with a help product, the help files and tutorial here are first-rate. There are a variety of tips and other in-product help as well. The only thing that I wished for and couldn't find was a way to integrate the final build step with my build process. This would require a command-line way to launch the batch generate process, and if that's in there, I couldn't find it. But in all other ways, this is a streamlined way to create the help files that any product should have before it ships. --------------------------------------------------------------------- Review: Entegra Entegra, starting at $3000 Lumigent Technologies, Inc. Acton, Massachusetts (978) 206-3700 http://www.lumigent.com Lumigent has just announced Entegra, a new solution for auditing activity in Microsoft SQL Server databases. I had a chance to play with a pre-release copy, so here are some impressions. Unlike other auditing solutions I've seen, Entegra doesn't instrument your database with triggers. Instead, it uses the technology that Lumigent developed for Log Explorer to monitor the SQL Server log files, so it knows about every logged operation in the database. It then turns around and writes this data back to a SQL Server repository database (with an open schema, so you can layer your own report writer atop their data if you like). The product is designed to audit DDL, DML, and SELECT statements, though the version I saw didn't include SELECT auditing (that's not expected to ship until Q1 2003 - they're also planning Oracle and Unix support in that timeframe). The DDL and DML auditing, and reporting through their web-based console, is impressive enough. Here's an example of what you can do: choose a row in a table, see its original state, and its current state -- and every state in between, together with the exact changes and when they were made. Other features include alerting and monitoring, and the consolidation of audit data from multiple servers into a single repository. You can choose what you want to audit on the database, table, and action level, so you can keep routine and non-critical transactions from overwhelming the repository. There were a few rough edges on the late beta copy I looked at. The program required a bunch of prerequisite software, and the install wasn't well-integrated. The reporting console also wanted to see a SQL Server login rather than integrated authentication, which I find distressing, given the well-known insecurities in SQL Server authentication. But the overall concept is great, and the ability to watch full audit trails of the data without modifying the database in any way is overwhelmingly cool. I can think of lots of times when I would have loved to have this, and there are plenty of obvious applications (healthcare, personnel, and other sensitive types of data). Assuming they get a little more polish on the product for release, this is one to watch. --------------------------------------------------------------------- Review: Total .NET Analyzer Total .NET Analyzer, $499 FMS Vienna, Virginia (703) 356-4700 http://www.fmsinc.com/ With this product, FMS continues the delivery of extra value to Visual Studio .NET that they started with Total .NET Xref. Total .NET Analyzer is a tool for parsing your entire solution and telling you what it thinks of your code. Well, and telling you when you've violated common design practices or written code that might well be concealing a bug. I installed Analyzer with no trouble and ran it against a moderately substantial C# project. Ten seconds or so later, I had the results: 469 issues found. These show up in a tool window, very similar to the familiar Task List or Pending Checkins windows. You can click on any row in the list to hop directly to the line of code involved, and click another button to get more information on what Analyzer is complaining about. A few examples from my own code: - Warnings about using Hungarian notation instead of the now-preferred Camel Case and Pascal Case styles. Old habits die hard. - Warnings about hard-coded strings and integers. - Warnings about forms without help buttons or cancel buttons. - Warnings where I should have used StringBuilders instead of simple string concatenation. The help file explanations of all the warnings are simple and explain exactly why Analyzer is recommending a change to your code. Don't agree with a particular warning? No problem, just bring up the integrated Rule Editor and turn it off. Some rules also have additional parameters you can set. For example, you can decide whether the no-Hungarian rule should be checked for controls, or only for variables. FMS has a long track record of delivering excellent value to Microsoft Access and VB developers. It looks like they'll be keeping this up with .NET developers. --------------------------------------------------------------------- New and Notable Plenty of new software gets released every month, some to great fanfare (can you say "Windows XP"?) and some that only gets noticed by adoring fans. You don't need me to tell you about the big PR-fests, but here are a few of the other interesting new (or updated) products I've run across in the past few weeks: - dotEASY is a project to come up with a freeware metrics analyzer for C# source code. It will tell you things like the number of lines of code in a class on up to calculated measures like the "abstractness" or "instability" of a namespace. You can download the alpha version to play with from http://www.doteasy.addr.com/ . - Ngpsql is a .NET data provider for PostgreSQL. It's still in its early stages, but if you're thinking about integrating an open source database with .NET this is worth keeping an eye on. I haven't used PostgreSQL myself, but I consistently hear good things about it. http://gborg.postgresql.org/project/npgsql/projdisplay.php - The iAnywhere folks are out with a beta of a native .NET data provider for SQL Anywhere. It's a full implementation of a provider, and it runs on both Win32 and Windows CE platforms. That's appropriate, because their target market is mostly the OEM and embedded systems folks. They put out Adaptive Server Anywhere for cross-platform use, and Ultralight for extremely small, application-specific database applications that still require relational and transactional features. The beta is open, and the projected ship date is the end of the year. I continue to be impressed by iAnywhere's commitment to open standards. Get more information or the beta at http://www.sybase.com/sqlanywhere/dotnet . - Expand Beyond has upgraded PocketDBA, their tool for wirelessly managing server databases from your PDA. The new version supports Oracle, DB2, and Microsoft SQL Server databases. More details at http://www.xb.com/products/pocketdba/ . - The Inherited Class Skeleton Generator is a Visual Studio .NET add-in that makes creating inherited classes much easier. Download it for free from http://ivanz.webpark.cz/icsg-download.html . - Macadamian's Code Review Add-In for .NET has been upgraded to version 1.1. Read about it or download a trial from http://www.macadamian.com/products/codereview/index.html . - MDB Artisan is an Access 2000/2002 add-in to perform database exploration and documentation. Results are displayed in a sort of Explorer treeview with details. You can download a trial copy from http://www.dqwest.com/mdbartisan.htm . - AppForge MobileVB lets VB 6.0 developers target Palm, PocketPC, and Symbian OS devices from their familiar development environment. And now they're demoing a .NET version. Details and downlaods at http://www.appforge.com/ . - Keeping up with the other vendors, Opera is out with a beta version of Opera 7. Lowdown and trial at http://www.opera.com/ . - Primary Interop Assemblies are DLLs that let .NET applications call COM components. Microsoft has recently released a set of PIAs for Office XP. Specifically, this includes the official PIAs for these bits: ADO, DAO, Access, Excel, FrontPage, Graph, Outlook, Office Web Components, PowerPoint, Publishe,r Smart Tags, Visio, Word, VBE, MSCOMCTL, MSDATASRC, Office.dll, and STDOLE. Whew! If you're planning to use any of these things from a .NET application, you should download the Office XP PIAs and follow the instructions to install them. The whole thing is under two megabytes, and you're allowed to redistribute the individual PIAs for use with your own applications. Get 'em from http://msdn.microsoft.com/downloads/default.asp?url=/downloads/sample.asp?url=/msdn-files/027/001/999/msdncompositedoc.xml - StuffIt SEA builder converts StuffIt or Zip archives to self-extracting archives that anyone can decompress (at least, if their e-mail client will let them receive exe files). http://www.stuffit.com/seabuilder - Zend is shipping Zend Performance Suite, a set of acceleration components for PHP applications. They boast an up to 25x increase in server throughput. More details at http://www.zend.com/store/products/zend-performance-suite.php . --------------------------------------------------------------------- Book Notices Lots of software books cross my desk these days. In this section, I'm going to pick out a few to mention that look interesting. Think of these not as full reviews, but as pointers to books that you might like to investigate further, depending on your own development needs. BLOG ON, buy Todd Stauffer (McGraw-Hill/Osborne): This book is kinda peripheral to development, but I mention it because more and more developers are maintaining weblogs these days (I've got a very partial list up on the http://www.larkware.com home page). Todd walks you through some of the basic mechanics of publishing a frequently-updated online site, and picks out various sites and software to recommend. By the very nature of the subject, his lists are fragmentary, but they'll get you started. Or you could poke around on the net yourself. BUILDING PDA DATABASES FOR WIRELESS AND MOBILE DEVELOPMENT, bu Robert Laberge and Srdjan Vujosevic (Wiley): An introductory survey for people just getting interested in using databases on the Palm and PocketPC platforms. About a third of the book is background material - relational basics, notes on the history of handheld devices, and introduction to client-server, and so on. After that the authors survey some of the major players in the field, including Microsoft, Sybase, and IBM. You'll see a bunch of the current tools for building PDA databases in action here, though the end result feels a bit disorganized. DEVELOPING WEB APPLICATIONS WITH ASP.NET AND C# (Wiley): A primer that assumes you know a bit about programming, but nothing about ASP.NET. It gets off to a slow start, with several hundred pages devoted to detailed explanations of the various ASP.NET controls, page behavior, ADO.NET, and so on. After that the pace picks up a bit, as the authors start putting the pieces together into a fullblown e-commerce application. Based on some real work, the book offers lots of advice drawn from experience. DEVELOPING WEB APPLICATIONS WITH VISUAL BASIC .NET AND ASP.NET, by John Alexander and Billy Hollis: This book is aimed at experienced VB6 developers with no .NET knowledge at all. About a quarter of the book is devoted to looking at the new UI and the differences between VB6 and VB .NET. After that, it goes through the Web development basics, with lots of detail on server controls and chapters on Web Services and ADO.NET. A first book for VB .NET Web developers. ENTERPRISE JAVABEANS, by Richard Monson-Haefel (O'Reilly): Extensive coverage of development using EJB 1.1 and (mostly) EJB 2.0. The author starts off with an overview of the history and problems that EJBs are designed to solve, and then dives into persistence, relationships, transactions, and other entrprise topics. Lots of good material on enterprise architectures and design patterns. O'Reilly has chosen to handle the differences between EJB implementations by publishing a separate series of workbooks; I've seen the ones for Websphere 4.0 AEs and WebLogic Server 6.1, and they're both full of hands-on exercises to complement this book. EXTREME PROGRAMMING PERSPECTIVES, by Michaele Marchesi et al (Addison Wesley): Contrasting this 600-page monster, laden with footnotes and academic jargon, with Kent Beck's original EXTREME PROGRAMMING EXPLAINED (under 200 informal pages), it seems that the field has grown up, at least far enough to generate research dollars. Some of the essays in this collection, particularly those about actual XP experiences, are likely to be valuable to working developers. Others - discussions of how XP matches up with CMM, studies of the change rate in test-driven code, notes on teaching XP as part of a software design course - are more for the academic audience. You probably don't want this one unless you're in the research field or seriously thinking about implementing XP on your own projects. MCAD/MCSD VISUAL C# .NET CERTIFICATION ALL-IN-ONE EXAM GUIDE, by Kenneth S. Lind and Marj Rempel (McGraw-Hill/Osborne): Just over a thousand pages of material designed to get you through the 70-315, 70-316, and 70-320 exams. It's a lot of material, but then, it's a lot of exam. The authors have chosen to split out the common material across the three exams (assemblies, data access, debugging, and so on) as well as a broad intro to the C# language, which makes for a well-organized book. The accompanying CD includes test software, of course. I would have preferred a more explicit mapping of topic to exam objective, but it looks like the whole ground is covered anyhow. PROGRAMMING ADO.NET, by Richard Hundhausen and Steven Borg (Wiley): The title is somewhat of a misnomer, as the bulk of this book is an exhaustive reference to the various ADO.NET namespaces. The authors have tried to make this more comprehensive and understandable than MSDN, but I'm not sure they've added a whole lot of value. Still, for some things its useful to see a second perspective. Includes good sections on transitioning from ADO to ADO.NET and on using the tools in Visual Studio to to ADO.NET development. --------------------------------------------------------------------- Web Resources for Developers - HarnessIt is another unit testing framework for .NET applications. This one claims to be the "only professional grade unit testing software which was designed specifically for .NET" More info and trial download at http://www.unitedbinary.com/HarnessIt.aspx . - RegexDesigner .NET is a freeware utility to help you build and test .NET regular expressions. It's available from http://www.sellsbrothers.com/products/#regexd . - I ran across VIX when I was just browsing around the Web looking for something else entirely. Looks like a nifty package: it's a C++ imaging engine that can be statically linked, and which combines dynamic data with static templates. They've got an online demo where you fill in withholding info and then it generates a PDF of a W-4 form on the fly. Pretty impressive, and something I never could find a good solution for eight or ten years ago when I was faced with a similar problem. Another demo shows using PowerPoint (!) to develop the UI for an application. http://www.ncidea.com/vix.asp for the details. - Ever run across a Wiki online? If so, you know that a Wiki is a group of Web pages that can be edited in the browser by any visitor. If not, take a look at http://c2.com/cgi/wiki?WelcomeVisitors for some explanatory text from the original one. Recently I ran across OpenWiki (http://www.openwiki.com/ow.asp?OpenWiki) whis is an IIS/ASP/XML/CSS implementation of the idea. Installing it only took me about ten minutes, and now there's a wiki up and running at http://www.larkfarm.com/openwiki/ . I don't have any particular plans for it, but feel free to come and play. Maybe someone can explain to me what keeps Wikis from turning into spam linkfests. Is it just social pressure? Or are most Wiki admins forced to institute some sort of Access control? - Finally, if you need a break from all this software development, go take a look at Akiyoshi's illusion pages, at http://www.ritsumei.ac.jp/~akitaoka/index-e.html . But maybe not if you're prone to seasickness... Want more Web resources between issues of Developer Central? Why not add LarkWare (http://www.larkware.com/) to your daily browse? --------------------------------------------------------------------- Reader Mail Brian Battles writes: "Every time I see sample code that includes XML technology, it seems like there's always some sort of tag in the heading of the code that goes something like www.w3c.org/xml/(something...) "Does this mean that all these groovy XML and .NET apps everyone is touting only work on machines that are connected to the Internet? What happens if you need to build or deploy an app that has absolutely no network connection? Do XML and/or .NET apps quit working? "Maybe I've got this all wrong, but I can't find a clear answer anywhere." The short answer: XML works fine without the Internet. The somewhat longer answer: Here's a simple, but valid, XML document: Content The first line of the document is the document prolog. In this particular case, the prolog specifies that this is an XML document, that it conforms to version 1.0 of the XML spec, and that data in it is encoded according to the UTF-8 (roughly, ASCII) character set. No reference to any URL at all. Now look at a somewhat more complex example - this time, an XML representation of part of a SQL Server table exported from an ADP: 1 We are too young to be as old as we are. 2 If you eat a live frog first thing in the morning, nothing worse will happen to you all day. As you can see, the prolog still defines this as XML conforming to the same standard. The element, though, contains some URIs (Uniform Resource Indicators - an extension of the URL, Uniform Resource Locator, standard): The two attributes starting with xmlns are namespace declarations. The purpose of a namespace declaration is to avoid name collisions between XML elements that refer to disparate items. For example, later in the document you'll see the tag This identifies the annotation element as belonging to the xsd namespace. If there was a field named annotation in the data, later on you might see a tag like , without a namespace prefix. The namespace prefix allows the two elements to coexist in the same XML document, with the same name, but without being confused by software that might process the document. Now -- here's the key -- this extended document works fine without an Internet connection too. That's because the namespace identifiers are URIs, not URLs. They are simply arbitrary pieces of text that serve to identify the namespaces. That is, "xsd" isn't some magical agreed-on-by-everyone namespace; when you use a namespace, you pick a prefix and identify it as yours. As a practical matter, some namespace identifiers may point to actual web-identifiable resources, but they're not required to do so. That's purely a convenience for people. ================================================================= News in this newsletter is written and compiled by Mike Gunderloy, mailto:Mike.Gunderloy@mcpmag.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 Henry Allain at mailto:hallain@101com.com. Microsoft Certified Professional Magazine 101communications LLC 16261 Laguna Canyon Road, Suite 130 Irvine, CA 92618 Phone 949-265-1520 Fax 949-265-1528 ==================================================================== UNSUBSCRIBE: http://lists.101com.com/us/a.asp?NL=mcpmag&ID=8326230 CHANGE EMAIL ADDRESS: http://101offer.com/nlc/?NL=mcpmag&E=mikeg1@larkfarm.com ==================================================================== Encourage your peers to excel! Please forward this e-mail to your interested associates. If this e-mail was forwarded to you and you'd like to subscribe, please visit: http://lists.101com.com/NLS/pages/main.asp?NL=mcpmag&o=developer FREE subscription to Application Development Trends Magazine! Application Development Trends is a must-read for corporate software managers. This award-winning publication focuses on development, deployment and management of today's business-critical software. Every month, ADT provides the strategic and tactical information you need to make the right planning and purchasing decisions. Timely news and instructive articles help you create, integrate, and maintain corporate environment Java and XML applications. Free subscription here: http://101offer.com/freeadt Copyright 2002 101communications LLC. Developer Central may only be redistributed in its unedited form. Written permission from the editor must be obtained to reprint the information contained within this newsletter. Contact mike.gunderloy@mcpmag.com --- This message was sent to: mikeg1@larkfarm.com