Tobler.SoftwareArchitecture()
John Tobler's somewhat ordered collection of thoughts and resources mostly related to software architecture and software engineering.
-
[.NET General] .NET on Windows ME and 98
I did not realize that the .NET Framework can be installed on Windows ME and Windows 98 and that much of it, excluding ASP.NET and System.Diagnostics features involving the EventLog, will run on those platforms. A description of this, including the various caveats, is available on MSDN at .NET Framework Support on Windows Operating Systems.
-
[Tools] A Search Engine for Source Code - Codehound.com
Another great source-code finding search engine is Codehound. For DotNetters, Codehound also offers a nifty free code-finding VisualStudio.NET Add-in.
-
[Tools] A Search Engine for Source Code - Koders.com
I'm having some fun exploring Koders.com. This site offers a free "Developers Subscription," with periodic Email Updates and Announcements (About Monthly), and a "Professional Subscription," that includes a desktop edition.
-
[Tools] XSD Inference Utility
Microsoft has a useful and free XSD Infererence 1.0 utility somewhat hidden on GotDotNet (linked from the worthwhile XML Tools page). The download contains a core library, a simple command line utility, and source code. The XSD Infererence 1.0 page (in spite of missing some image links) contains a "workable" Web interface you can use to quickly test the idea by submitting your own small XML file. The overview page gives some description of the idea and the utility and points to Generate XSD Schemas by Inference and Modeling biz docs in XML, two articles about this technique and tool. The download link on the is bad, so use the link on the page (or above). MSDN currently hosts a very solid tutorial article, Using the XSD Inference Utility, that gives you most of what you need to know to go beyond the simple Infer.exe command line utility and use the Microsoft.XSDInference.Infer class from your own code.
Consider your results from using the XSD Infererence 1.0 utility as a starting point rather than an end product. You should carefully review the inferred schema and intelligently edit it into something real. What you get from XSD inference probably will not give you a really good schema. That still takes some thought, however, and the tool certainly can save you some time. It certainly is cheaper than buying an expensive commercial XML IDE just to autogenerate some XML Schemas! If you ever worked for a company that bought XMLSpy just for this purpose, you know what I mean. Be sure to read about the tool's caveats and limitations - particularly, don't miss the 1 MB size limitation part. The download contains an excellent help file.
I have found this tool useful and certainly recommend adding it to your .NET tool belt.
Also, if you have used the Xsd.exe tool, you may also want to have a look at the XSD Object Code Generator tool on the XML Tools page. While similar to Xsd.exe, the XSD Object Code Generator tool claims to create an "enhanced class structure" and to handle "many more common schema types."
-
[Languages] Another .NET language list
I just found a new .NET language List at Brian Ritchie's Dotnetpowered.com site and discovered a couple of .NET languages that are news to me. In particular, it looks like the ADA community is now on the boat with A#, a port of ADA to .NET, and Microsoft Research is at it again with Comega, an extension of C# that provides "A control flow extension for asynchronous wide-area concurrency (formerly known as Polyphonic C#)" and "A data type extension for XML and table manipulation (formerly known as Xen and as X#)." I have been wondering whether Xen/X# would eventually develop some traction. A# has been developed by the Department of Computer Science at the United States Air Force Academy and is "freely distributed" under the GPL.
Thanks to Brian for mentioning this Weblog as one of his "Other Sources!" I'm only too happy to have contributed something useful.
-
[Tools] Some Reflector Add-Ins Links
Lutz Roeder's Reflector is a quintessential .NET developer's tool. Reflector supports an Add-Ins model and some useful Add-Ins have been developed. Here is the .NET Reflector Add-Ins Workspace Home, a Reflector Add-Ins List, and a Reflector Add-Ins Tutorial.
-
[Tools] TestDriven.NET
Speaking of useful Visual Studio.NET plugins, fans of Test Driven Development (TDD) may find the TestDriven.NET plugin (formerly known as NUnitAddin) worth having. According to the download page for the current version, you will find that it comes with some extras.
"MbUnit, QuickGraph, TestFu and Refly are now bundled in the TestDriven.NET installer. After installation, the files are located in c:\Program Files\TestDriven.NET\MbUnit"
-
[Tools] VS File Finder
I rate VS File Finder as a "must have" Visual Studio.NET plugin for .NET developers. It certainly is a "must have" for me!
-
[Agile Development] Fit and Fitnesse
Tools such as NUnit provide frameworks that make writing and managing unit tests relatively convenient. Unit testing is primarily a developer-driven process that helps software engineers to constantly ensure the integrity of their work. The success of automated unit testing and unit testing frameworks has spurred a move to Test Driven Development (TDD) as a new and agile method for creating high-quality software systems. But unit testing is only part of a holistic testing approach.
Recently, automated testing frameworks have appeared to address other testing needs. In particular, new frameworks have emerged to help with the generation and management of acceptance tests. Specifically, I want to highlight Fit, by Ward Cunningham and friends, and its arguably more modern offspring, Fitnesse, by Robert Martin and others. Fitnesse packages the power of Fit-based acceptance testing in a very convenient wiki server system. Fitnesse is available for Java, in mature form, and, although it is not quite ready for prime time, an experimental version exists for the Microsoft .NET Framework. Fitnesse is an Open Source project with a Fitnesse Source Forge site.
One advantage of Fit and Fitnesse for acceptance testing is that they use an approach that enables users and user representatives to write acceptance tests via a spreadsheet-like approach. This feature decouples the creation of acceptance test suites from dependence on developers. It also enables a mixture of documentation and testing that can result in testing documents that also provide considerable insight into how systems should work. Such test suites can really help when the time comes to produce formal documentation and training materials.
Fit and Fitnesse do not replace unit testing frameworks such as NUnit and they certainly do not eliminate the need for Test Driven Development. They work at the other end of the testing process and supplement the TDD approach.
Have fun with Fit and Fitnesse!
-
[Tools] Free Controls at MetaBuilder
Check out the free ASP.NET controls at MetaBuilders. Some of them look quite useful.