Attention: We are retiring the ASP.NET Community Blogs. Learn more >

Tobler.SoftwareArchitecture()

John Tobler's somewhat ordered collection of thoughts and resources mostly related to software architecture and software engineering.

  • [Tools] Leo, "Literate Editor with Outlines"

    If you think you have used all possible programmer's editors, but have not yet tried Leo, you are wrong. Leo inherits from CWEB, the quintessential literate programming system designed by Donald E. Knuth and Silvio Levy, and MORE, Dave Winer's ancient and venerable outline editor. But Leo's author, Edward K. Ream, has gone a considerable distance beyond these origins. Leo is “100% pure Python,” and uses Tcl/Tk to draw the screen. Leo is portable and currently runs on (at least) Windows, Linux and MacOS X Jaguar.

  • TANSTAAFL is Virtually Untrue

    Robert wrote:
    > As someone points out, this is super depressing that an experienced
    > C++ developer can't afford a copy of VS.net.
    > May be, your company or your friends have a trial copy of VS.net
    > already since M$ mail them out to developers like there is no
    > tomorrow.
     
    Before everyone jumps on Microsoft for not making VisualStudio.NET Enterprise Architect free, let's all remind each other that the .NET Framework SDK is free. 
     
    See
    and
     
    Context:  we are discussing the needs of someone who wants to learn .NET programming.
     
    While Visual Studio.NET may make development easier, by writing a lot of code behind the scenes and by integrating lots of useful features into the IDE, it is not necessary.  You have everything you need to write and debug perfectly workable .NET code right there in the SDK.  You can use Notepad, Vim, Emacs, or any other editor to write the code.  In fact, I strongly recommend learning to write .NET code without using Visual Studio.NET so you really learn what's going on.  Sometimes tools do too much for you, particularly when you're learning.  After you learn, you can better appreciate the value of the tool.  After you learn, you are silly not to *use* the tool. 
     
    If I had my way, you would only get your scientific calculator after you learned to do a square root and at least one Taylor Series expansion by hand!  Once you know what you are really calculating and what's underneath the calculations, you would probably be horribly inefficient not to use the calculator (or computer).  The “probably” leaves some room for special cases like Turing.
     
    I'm pointing to the difference between a cookbook engineer and one that knows where and why the formulas work and where and why they don't.  If you just want to be a drag-and-drop programmer, you can ignore all of this.  If you want to be able to do deep debugging and to code for .NET intelligently, then you may gain some value from this suggested approach.
     
    Warning!  When you are behind on a project with a hard deadline, forget all of this nonsense and make your company buy Visual Studio.NET for you.
     
    For investigating database programming, you have ADO.NET in the SDK, including access to a number of ODBC and OLEDB providers.  You may be able to install and investigate MSDE, as long as you obey the "Appropriate Use" guidelines (http://www.microsoft.com/sql/msde/howtobuy/msdeuse.asp).  If nothing else, you can use MSDE with WebMatrix (see below).
     
    You can even write make files and build scripts to package your code.  See the .NET Framework SDK samples for plenty of examples.  You get nmake.exe free with the SDK.
     
    You can get a great free-as-in-beer-but-also-Open-Source IDE for C# and Visual Basic.NET on the .NET Framework at http://www.icsharpcode.net/OpenSource/SD/ -- complete with a GUI builder and unit testing framework (although I prefer the also-free NUnit: http://www.nunit.org/ for that).  Other free IDEs exist "out there."
     
    If you want to learn and play with and develop on ASP.NET, then just go to http://www.asp.net/ and download the free WebMatrix IDE (http://www.asp.net/webmatrix/default.aspx?tabIndex=4&tabId=46). 
     
    If you are an advanced C++ developer, you can certainly learn Managed C++ for the .NET Framework using cl.exe, the free command-line compiler that comes with the .NET Framework SDK.  Please see http://winprog.org/tutorial/msvc.html for details.  Also, see your equivalent of the C:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\Samples\Technologies\CrossDevLanguage\Readme.htm example in your .NET Framework SDK for a cross-language sample using both Managed C++ and C#.  Visual Studio.NET is not required.
     
    You can find many, many other resources elsewhere. 
     
    With this information, you should be too busy programming to complain about the fact that Microsoft charges for Visual Studio.NET.
     
    Key takeaways:
     
    1. Thank you, Microsoft, for the .NET Framework SDK and all of the free-as-in-beer tools and documentation you have provided!
     
    2. Thank you, .NET Community for so many other wonderful free tools, including Mono, various language implementations, a plethora of code editors, IDE's, utilities, sample code, and everything else!
     
    -----
     
    P.S.  Here is a link to the thread that motivated this article.  The thread also includes a lot of response and discussion around it.  My original message was Number 9 in the thread.
     
     
    I have edited this article based on some of the feedback and may edit it further if the discussion continues. 
     

  • ASP.NET Whidbey

    Thanks to Scott Watermasyk for a post with a link to fresh information from the Microsoft PDC on the coming ASP.NET "Whidbey" changes. This is one of many hot items currently being presented at the Microsoft Professional Developer's Conference (PDC). Most, if not all of the PDC ASP.NET Whidbey slide sets and demos are available at "Whidbey" PDC Presentations. Many of the session slide sets and code samples are now linked into the Sessions List.  Microsoft is also sharing a lot of PDC information at PDC Central. For less formal but more immediate updates and reactions, see the PDC Bloggers site.

  • [Tools] Microsoft CLR Profiler

    Today, I just had to add a link so you can download the Microsoft CLR Profiler.  Two MSDN articles, Writing High-Performance Managed Applications : A Primer and Writing Faster Managed Code: Know What Things Cost, will help you to figure out how to use it.  The CLR Profiler is an important tool for tracking down those oh-so-nasty entomological anomalies in your .NET programs. Start using this fine tool yesterday!

  • [Tools] Snippet Compiler

    The Snippet Compiler, by Jeff Key, is a great tool for .NET programmers.  It allows you to try out an idea quickly and efficiently without the full overhead of Visual Studio.NET.  Recent releases have sported many improvements and development is very active.  This one rates an emphatic “must have.”