<?xml version="1.0" encoding="ISO-8859-1"?>
<!--This is an automatically generated RSS file.

RSS files are web site summary documents in XML format, and are meant to be read
by an RSS reader or aggregator.
-->
<rss version="2.0">
   <channel>
      <title>ClarionMag Blog</title>
      <description><![CDATA[All entries from all ClarionMag blogs]]></description>
      <language>en-us</language>
      <link>http://www.clarionmag.com:8080</link>
      <copyright>Copyright 1999-2005 by CoveComm Inc.</copyright>
      <item>
         <title>More Clarion# on tap for May</title>
         <link>http://www.clarionmag.com:8080/blog/20080429MoreClarionontapforMay.html</link>
         <description><![CDATA[<p>May is looking like another Clarion#-intensive month here at the mag. I'd hoped to be revealing some of the web development work I've been doing with Clarion# (on the way to porting the ClarionMag server code from Java) but these things always take longer than planned. I have, however, been doing a bunch of test-driven development (<a href="http://en.wikipedia.org/wiki/Test-driven_development">TDD</a>, if you're short on acronyms this week) with <a href="http://www.nunit.org/index.php">NUnit</a> and Clarion#. I've <a href="http://www.clarionmag.com/cmag/v9/v9n12unittesting.html">covered NUnit before</a>, but lately I've been using it intensively, and for certain situations I'm finding it an indispensible tool.</p>
<p>I've worked up a series of examples based on some of the web work I've been doing which I think you'll find interesting. And not  coincidentally these examples provide a great lead-in to generic types which are a nifty addition to the Clarion language. </p>
<p>Really, I've become addicted to test-drive development and generics. Be careful; it could happen to you. </p>
<p>Besides all the good stuff in May there's the <a href="http://clarion.net.au/index.php?option=com_content&amp;task=view&amp;id=26&amp;Itemid=1">Aussie DevCon</a> at the end of the month, where Bob Z promises to raise the curtain on the new AppGen. I can't personally make it to the conference this year but ClarionMag will have  coverage. </p>]]></description>
         <pubDate>Tue, 29 Apr 2008 00:00:00 CDT</pubDate>
      </item>
      <item>
         <title>Latest Clarion beta adds generics and other goodies</title>
         <link>http://www.clarionmag.com:8080/blog/20080417LatestClarionbetaaddsgenericsandothergoodies.html</link>
         <description><![CDATA[<p>Yesterday was a busy day. SoftVelocity released the latest C7 and Clarion# builds to beta testers, and posted no less than four blog entries covering  the new features in the latest release. </p>
<p wrap="">First the bad news: no AppGen yet in the latest release (build 3276). But for the first time SV has released some information about the status of <a href="http://www.softvelocity.net/community/blogs/clarion_news/archive/2008/04/16/2457.aspx">internal testing</a>. Key points:</p>
<ul>
  <li>Some apps (and dictionaries) convert cleanly</li>
  <li>Code generation is being tested</li>
  <li>Editors/window and report designers are being integrated</li>
</ul>
<p>Z didn't say but I assume that code generation is being tested against the existing ABC templates. </p>
<p>The latest build also sports a completely rewritten IDE parser. Besides some speed improvements this should significantly improve code completion, which hasn't been that reliable or effective in past releases. It also promises a more useful class browser. </p>
<p>The blog entry also mentions a new &quot;file schema pad&quot; which is like the table schematic in the C6 AppGen. The Dictionary Editor and Synchronizer are code complete and in testing. </p>
<p>The Data Diagrammer's new <a href="http://www.softvelocity.net/community/blogs/clarion_news/archive/2008/04/16/2458.aspx">Reports View</a> is a handy way to get a sorted view of all aspects of your dictionary. I won't go into that in any detail here - just check out the <a href="http://www.softvelocity.net/community/blogs/clarion_news/archive/2008/04/16/2458.aspx">blog post</a>. </p>
<h4>Generics</h4>
<p>One of Z's <a href="http://www.softvelocity.net/community/blogs/evolving_the_clarion_language/archive/2008/04/16/2459.aspx">blog posts</a> coveres the introduction of <em>generic types</em>, often just called <em>generics</em>. These types use a special syntax with angle brackets, as in</p>
<pre>&lt;<em>type</em>&gt;</pre>
<p>where <em>type</em> can be any type such a simple <code>long</code> or <code>string</code>, all the way up to any interface or class you create. This may not seem immediately useful to you, but generics are really, really handy. Think of a situation where you don't know ahead of time what kind of object you're going to want to use in a certain situation. In Clarion you have the <code>ANY</code> data type for this situation; in Clarion# you're more likely to use a reference of the type <code>object</code>, since all classes inherit from <code>object</code> (in Clarion#, <code>ANY</code> is actually the <code>Clarion.ClaAny</code> class). </p>
<p>If you create, for instance, a queue of object references, you can assign anything you want to each queue element. But when you want to use one of those objects, all your code will see is the methods and properties of the <code>object</code> class, not of your class. To actually &quot;see&quot; your class the code has to first type cast the object reference back to the right data type. In Clarion# you do this with the <code>tryas</code> operator:</p>
<pre>myobj = q.obj tryas MyClass</pre>
<p>Casts are expensive; the runtime environment has to do a bunch of checks to make sure that you can safely cast the object to the specified type. If you attempt the wrong kind of cast you'll get an exception. The power of type casting is also the danger - if you can cast to anything, you can also cast to the wrong thing. </p>
<p>Generics maintain the flexibility of using object references while enforcing a type you specify at runtime. In a sense, generics are simply type parameters; just as you pass data to a method, you pass type information to either the class as a whole or to a class's method (the class or the method must be set up to accept a type, of course). I'll only discuss the former approach here. </p>
<p>The idea of passing a type to a class is to tell the class that anywhere it has code that references a generic type (often written as &lt;T&gt;, assuming the class/method uses just one generic type) it should substitute the type you just gave it. Here's Z's example:</p>
<pre>myStringList         List&lt;string&gt;
myIntList            List&lt;Int32&gt;
myPersonList         List&lt;Person&gt;
mp                   Person
    CODE
    myStringList = new List&lt;string&gt;()
    myStringList.Add('Joe')
    myStringList.Add('Jane')


    myIntList = new List&lt;Int32&gt;()
    myIntList.Add(2)
    myIntList.Add(3)
    myIntList.Add(4)
    myPersonList = new List&lt;Person&gt;()
    Loop i# = 1 to 5       
        mp = new Person()
        mp.Name = 'Joe' &amp; i#
        myPersonList.Add(mp)
    End     </pre>
<p>Keep in mind that <code>List</code> is really <code>System.Collections.Generic.List</code>. I could show you the C# class declaration, but for fun here's a Clarion equivalent of the <code>List</code> class declaration with the <code>Add</code> method:</p>
<pre>List                class&lt;T&gt;
Add                     procedure(T item)
                    end


List&lt;T&gt;.add            procedure(T item)
    code
    ! Add the passed item to a collection</pre>
<p>Actually that's <em>not</em> what <code>List</code> really would be like in Clarion because <code>List</code> also implements some generic interfaces, which I've left those off to avoid further confusion, and contains a bunch of additional methods. The point of this example (yes, there is a point) is that when you create a new <code>List</code> this way:</p>
<pre>myStringList = new List&lt;string&gt;() </pre>
<p>you're telling <code>List</code> that wherever it sees <code>&lt;T&gt;</code> it should now see the <code>string</code> data type. And when you call the <code>Add</code> method, the <code>T</code> parameter is now a string parameter. That means that the class knows the data type you're passing, so it never has to do a cast when you want a string back. </p>
<p>That's a really quick intro to the idea of generics; there are a lot of variations on the theme. Generics are an important subject and one you can be sure will be covered in ClarionMag at some point, hopefully sooner rather than later. At this point generics and delegates are both pretty high on my hit list of Clarion# topics; I haven't sat down to either one yet so if someone out there would like to write an article or two on either of these (or both!) please <a href="http://www.clarionmag.com/cmag/contactinfo.html">let me know</a>. </p>
]]></description>
         <pubDate>Thu, 17 Apr 2008 00:00:00 CDT</pubDate>
      </item>
      <item>
         <title>Delayed news items...</title>
         <link>http://www.clarionmag.com:8080/blog/20080402Delayednewsitems.html</link>
         <description><![CDATA[<p>Lee White pointed out to me today that I'm well behind on the news items. Apologies, all. I've had my head down working on some cool Clarion# web stuff and I simply forgot. I've also been setting up a Windows Server 2008 web test box and learning a few things about remote administration. It's definitely a different world from the Linux servers I've been using for a decade or so, but the change isn't unwelcome.</p>]]></description>
         <pubDate>Wed, 02 Apr 2008 00:00:00 CDT</pubDate>
      </item>
      <item>
         <title>Template Language Functions</title>
         <link>http://www.clarionmag.com:8080/blog/20080327TemplateLanguageFunctions.html</link>
         <description><![CDATA[<p>In his  <a href="http://www.clarionmag.com/cmag/v10/v10n03evaluate1.html">articles this week</a> on EVALUATE, Paul Blais notes that not all Clarion language statements are available to evaluate. And that brings to mind another place where a subset of language functions is available, and that's within the template language. </p>
<p>Just as I was releasing Paul's article I came across a note Bob Foreman posted some time ago in the newsgroups (I don't recall just where or when), listing the Clarion language functions which can be used in conjunction with the template language. That is, you can use them in template expressions, making the template language an even more powerful code-generation tool. You can even use EVALUATE within template expressions, although BIND isn't available.</p>
<ul>
  <li>ABS</li>
  <li>ACOS</li>
  <li>ADDRESS</li>
  <li>AGE</li>
  <li>ALL</li>
  <li>ASIN</li>
  <li>ATAN</li>
  <li>CENTER</li>
  <li>CHOOSE</li>
  <li>CHR</li>
  <li>CLIP</li>
  <li>CLOCK</li>
  <li>COS</li>
  <li>DATE</li>
  <li>DAY</li>
  <li>DEFORMAT</li>
  <li>EVALUATE</li>
  <li>FONTDIALOG</li>
  <li>FORMAT</li>
  <li>GETINI</li>
  <li>INLIST</li>
  <li>INRANGE</li>
  <li>INSTRING</li>
  <li>INT</li>
  <li>LEFT</li>
  <li>LEN</li>
  <li>LOG10</li>
  <li>LOGE</li>
  <li>LONGPATH</li>
  <li>LOWER</li>
  <li>MATCH</li>
  <li>MEMORY</li>
  <li>MONTH</li>
  <li>NUMERIC</li>
  <li>PATH</li>
  <li>PUTINI</li>
  <li>RANDOM</li>
  <li>RIGHT</li>
  <li>ROUND</li>
  <li>SHORTPATH</li>
  <li>SIN</li>
  <li>SQRT</li>
  <li>STRPOS</li>
  <li>SUB</li>
  <li>TAN</li>
  <li>TODAY</li>
  <li>UPPER</li>
  <li>VAL</li>
  <li>YEAR<br />
  </li>
  <li><br />
  </li>
</ul>
<p>If you've never taken the time to look at the template language, you're missing out on one of the truly great things about Clarion programming. Check out the <a href="http://www.clarionmag.com/cmag/topics.html?categoryid=134&amp;subcategoryid=64">template programming topic</a>, in particular the Understanding Clarion Templates series. </p>]]></description>
         <pubDate>Thu, 27 Mar 2008 00:00:00 CDT</pubDate>
      </item>
      <item>
         <title>I'm a hero!</title>
         <link>http://www.clarionmag.com:8080/blog/20080327Imahero.html</link>
         <description><![CDATA[<p>I'm just back from Microsoft Canada's <a href="http://www.microsoft.com/canada/heroeshappenhere/default.mspx">Heroes happen {here}</a> event in Winnipeg. I took in the developer session (presented by Microsoft's Jean-Luc David), which mainly dealt with Visual Studio 2008. Overall it was a good presentation, although as is the case with these kinds of events you seldom get to see code in much detail, and everything goes by in a blur. Rather than give you a blow by blow report, I'll focus on the things that  stuck in my mind. </p>
<p><a href="http://msdn2.microsoft.com/en-us/netframework/aa904594.aspx"> LINQ</a> got a fair bit of coverage. LINQ stands for Language INtegrated Query, and is another fascinating product to come out of the C# team headed up by Anders Hejlsberg, the man largely responsible for Turbo Pascal and Delphi. (Some say there's a Clarion connection to Hejlsberg - certainly there's one via Niels Jensen, one of the founders of Borland who later left to form JPI, which merged with Clarion to become TopSpeed Corporation.)</p>
<p>LINQ is pretty cool stuff, and I expect it will become the standard .NET query language before too long. The big deal with LINQ is you can use it to query a lot of different kinds of data. You can query SQL, of course, but you can also use it with XML and all kinds of lists and collections. Just as you have ADO.NET providers (think drivers), so you have LINQ providers for databases such as Oracle, PostgreSQL, and MySQL. But don't get hung up on just databases. How about <a href="http://linqinaction.net/blogs/main/archive/2006/06/26/introducing_linq_to_amazon.aspx">querying Amazon</a>, or <a href="http://spellcoder.com/blogs/bashmohandes/archive/2007/04/08/6552.aspx">Flickr</a>?</p>
<p>I've been tracking LINQ for a while, but I'm less familiar with Windows Presentation Foundation (WPF). There are any number of ways to create user interface elements in .NET, and WPF (formerly Avalon) aims to be the &quot;one ring to rule them all.&quot; WPF produces vector-based graphics, not raster graphics, so the idea is you can scale user interface widgets under WPF. So how do you build WPF applications? You use a markup language called XAML  (pronounced &quot;zammel&quot;) to assemble the UI and wire up the business logic to that UI. </p>
<p>The visual scalability of XAML/WPF apps is evident in the Visual Studio XAML editor; there's a slider control with which you can resize the window and its controls. Depending on the number of controls, you might scale down all or part of a desktop window so it could fit on a mobile device. </p>
<p>How about WPF on the web? That's where Microsoft's Silverlight comes in - it's a way to present XAML apps in a web browser. </p>
<p>The final item before lunch was a reporting demonstration, but David  had difficulties connecting to SQL Server. These connection problems were responsible for a number of glitches in the presentation; you gotta love demos. We did get to see a report wizard after the lunch break (using an Access database) and after many years of enjoying (if that's the right word) Clarion's extensive reporting capabilities I have to say I found the reporting demo singularly unimpressive. But at least you no longer need Crystal Reports in Visual Studio. </p>
<p>And here's a nicety in VS: when the Intellisense window is displayed, it may cover some of your code. Pressing Ctrl fades the window so you can see the code underneath. Here's the usual Intellisense window:</p>
<p><img src="/blog/images/vs-intellisense-fig1.png" width="414" height="239" /></p>
<p>And here's what it looks like when I press Ctrl:</p>
<p><img src="/blog/images/vs-intellisense-fig2.png" width="414" height="242" /></p>
<p>You might have to squint a bit - the window is seriously faded. As soon as I release Ctrl the Intellisense window is back to its usual appearance. </p>
<p>Sometimes it's the little things that matter so much. </p>
<p>The lone afternoon session began with a lengthy and sometimes quite funny commercial/video, featuring a psychiatrist counseling a user who had lost his first love for his PC. He rediscovers his passion upon visiting a thinly-disguised Apple store, which he derides as a &quot;candy coated wonderland of faux artsiness.&quot; </p>
<p>The rest of the session dealt with web development, including a described (but not demonstrated) web control which creates forms and views based on the structure of the database (rather than a data dictionary). There were some nifty demonstrations of web services  courtesy of Windows Communication Foundation (WCF, formerly Indigo), which I didn't entirely follow. But it appears that among other things WCF makes it easy to create one service which is available in multiple dialects, including SOAP, REST, JSON, and POX (plain old XML). And if you're accustomed to FireFox's web development addons, take a look at <a href="http://projects.nikhilk.net/WebDevHelper/">Web Development Helper</a> for IE.</p>
<p>Visual Studio's ability to debug Javascript looks pretty useful; if you've done any amount of web development, you're either already using Javscript or you will soon. </p>
<p>There are also a couple of nifty new web controls, including ListView, which allows you to customize the HTML used to display the data, and DataPager, which makes paged browses easy to create. These are both new in .NET 3.5. </p>
<p>David answered the oft-asked question of which of Microsoft's many web-related tools developers should actually use. The short answer:</p>
<ul>
  <li>Use <a href="http://www.microsoft.com/expression/products/overview.aspx?key=web">Expression Web</a> to for the visual aspect of regular web applications</li>
  <li>Use <a href="http://office.microsoft.com/en-us/sharepointdesigner/FX100487631033.aspx">Sharepoint Designer</a> for the visual aspect of XAML/WPF applications</li>
  <li>Use <a href="http://msdn2.microsoft.com/en-us/vstudio/default.aspx">Visual Studio</a> for all the back end code/business logic</li>
  <li>Forget about FrontPage - it's going away</li>
</ul>
<p>On the subject of separating the user interface from the business logic, Microsoft's new <a href="http://www.asp.net/downloads/3.5-extensions/">ASP.NET MVC framework</a> got a  mention. MVC stands for <a href="http://en.wikipedia.org/wiki/Model-view-controller">Model-View-Controller</a> and has been around for almost thirty years. In the last decade or so it's become more popular for web applications (ClarionMag is delivered to you by way of a custom MVC application) and with Microsoft finally getting on the bandwagon MVC appears to be going mainstream. A preview release of ASP.NET MVC is available, and requires .NET 3.5. </p>
<p>One final note on web development: if you're still using tables to format your web pages you need to get down and dirty with cascading style sheets, or CSS. For an extreme example of how you can radically change the appearance of a page with style sheets, and without altering the page itself in any way, check out the <a href="http://www.csszengarden.com">CSS Zen Garden</a> and click on the alternate design links. Each link simply applies a different style sheet to the page you're viewing. </p>
<p>Of course, it wouldn't be a proper Microsoft seminar without some treats from Bill. The goodie bag included an NFR version of Visual Studio 2008 Standard Edition, the November 2007 CTP for SQL Server 2008 with a voucher for an eval version of Standard Edition when released, one year trial editions of Windows Server 2008 and Vista Ultimate SP1, plus a few other lesser items. If you can't get to a seminar, or you don't want to shell out for Visual Studio, you can still get the <a href="http://www.microsoft.com/express/">individual express versions</a> for free. </p>
<p>I don't use Visual Studio that much, but I do find it handy to keep around as a learning tool and a reference point. I sometimes find myself compiling (and occasionally writing) C# code so I can be sure it works as expected; mostly I do this in Clarion.NET using the C# compiler, but certainly VS is the gold standard for hand coding, especially when it comes to the latest and greatest .NET libraries. For more on Clarion# as compared to Visual Studio check out the <a href="http://www.clarionmag.com/cmag/clariondotnetfaq.html#vs">Clarion.NET FAQ</a>.</p>
<p>If you get a chance to take in a similar seminar, I think you'll probably find it worth your while. I certainly gained a helpful perspective on some of Microsoft's new technology.</p>]]></description>
         <pubDate>Thu, 27 Mar 2008 00:00:00 CDT</pubDate>
      </item>
      <item>
         <title>Still to come: a batch compiler and some cool string stuff</title>
         <link>http://www.clarionmag.com:8080/blog/20080227Stilltocomeabatchcompilerandsomecoolstringstuff.html</link>
         <description><![CDATA[<p>There are two articles in final review, and I expect them to show up on Friday. One is a nifty drag and drop batch compiler by Richard Rose, which demonstrates both D&amp;D and DDE (the means by which you tell the Clarion IDE to load and compile apps). The other is another look at <code>ClaString</code> and <code>String</code> by yours truly, now that the dust has settled on the Clarion# class instantiation and array index changes.</p>]]></description>
         <pubDate>Wed, 27 Feb 2008 00:00:00 CST</pubDate>
      </item>
      <item>
         <title>A new Clarion.NET build</title>
         <link>http://www.clarionmag.com:8080/blog/20080218AnewClarionNETbuild.html</link>
         <description><![CDATA[<p>Build 2957 has gone out to beta participants. This is a pretty big release, since it contains some significant language changes as well as the first fully functional dictionary editor. Specific features include:</p>
<ul>
  <li>Fully enabled dictionary editor - insert, delete, change, update all items</li>
  <li>No more auto-instantiation, and for the most part no more need to use &amp; in declarations</li>
  <li>Zero based indexes</li>
  <li>:= operator no longer used; instead, use the = operator</li>
  <li>Deep assignment operator added</li>
  <li>Optional parenthesis for NAMESPACE and USING</li>
  <li>USING alias support</li>
  <li>Generic classes can be used (but not yet declared)</li>
  <li>NEW can be used as a modifier to hide an inherited member</li>
</ul>
<p>There are a ton of bug fixes and other changes. I'll have a closer look at some of the new stuff in an upcoming article. </p>]]></description>
         <pubDate>Mon, 18 Feb 2008 00:00:00 CST</pubDate>
      </item>
      <item>
         <title>The other kind of bug</title>
         <link>http://www.clarionmag.com:8080/blog/20080208Theotherkindofbug.html</link>
         <description><![CDATA[<p>I'm a little slow off the mark this month with articles, PDFs, source zips, and the update to the source code library. Until this week I was taking some pride in having avoided the cold and flu bugs that have hit my family, but we all know what pride cometh before. As a result I've been out of action much of this week. But the PDF and source zip should be up shortly, followed by the source code library update. And there's a good lineup of articles for this month as well, although the first of those won't likely appear until the middle of next week. </p>]]></description>
         <pubDate>Fri, 08 Feb 2008 00:00:00 CST</pubDate>
      </item>
      <item>
         <title>Let's see your pics!</title>
         <link>http://www.clarionmag.com:8080/blog/20080128Letsseeyourpics.html</link>
         <description><![CDATA[<p>Photographer to the (Clarion) stars Leroy Schulz is again running the Andrew's 
  Kitchen photo showcase. Andrew's Kitchen, if you don't already know, is one 
  of several private newsgroups available to Clarion Magazine subscribers (check 
  your subscription email or <a href="/cmag/contactinfo.html">contact me</a> for 
  access). You don't, however, have to be a subscriber to participate in the photo 
  event. </p>
<p>Here's the blurb:</p>
<blockquote>
  <p>Back for its third year, The Best of Andrew&#8217;s Kitchen 2007 is meant 
    as a showcase of a world inhabited by Clarion programmers. Join other friendly 
    Clarion developers in showing off what has been beautiful, unique, humorous, 
    touching, memorable, or just plain meaningful in your 2007.</p>
  <p>Details:</p>
  <ol>
    <li> Email photos to <a href="mailto:mail@frostbytes.ca">mail@frostbytes.ca</a>. 
      <em>One photo per email please!</em></li>
    <li> Please submit images as high-resolution JPG. (Images will be <br>
      down-sampled as necessary. </li>
    <li>Photos must have been shot from January 1, 2007 to December 31, 2007.</li>
    <li>Include the following information in the body of your email: 
      <ol type="A">
        <li> Title of image.</li>
        <li> Photographer name.</li>
        <li>Location.</li>
        <li> Date.</li>
        <li> Short (2-3 sentence) description.</li>
        <li> Technical data. (Optional.)</li>
      </ol>
    </li>
    <li> Five entries per person maximum.</li>
    <li>Entries must be received by February 8, 2008.</li>
    <li>Copyright remains with the individual photographer, but will be made visible 
      on the website and/or a downloadable slide show.</li>
  </ol>
<p wrap="">View this year's entries at <a href="http://www.frostbytes.ca/gallery/bestofak2007">http://www.frostbytes.ca/gallery/bestofak2007</a>. </p>
<p wrap="">  View the 2006 entries at <a href="http://www.frostbytes.ca/gallery/bestofak2006">http://www.frostbytes.ca/gallery/bestofak2006</a>.  </p>
<p wrap="">View the 2005 entries at <a href="http://www.frostbytes.ca/gallery/bestofak2005">http://www.frostbytes.ca/gallery/bestofak2005</a>.</p>]]></description>
         <pubDate>Mon, 28 Jan 2008 00:00:00 CST</pubDate>
      </item>
      <item>
         <title>Clarion# app on a Mac</title>
         <link>http://www.clarionmag.com:8080/blog/20080114ClarionapponaMac.html</link>
         <description><![CDATA[<p>Wayne Freeman has reported success in running a simple (i.e. "Hello world") Clarion# application as a <a href="http://www.mono-project.com/Main_Page">Mono</a> app on a Mac, under X11. Mono is a Novell-sponsored open source project which lets you develop and run .NET client and server applications on Linux, Solaris, Mac OS X, Windows, and Unix. </p>
<p>I've been trying to get a web app running on a Linux box, using Mono's  XSP web server for ASP.NET. In ASP.NET applications, source is compiled by the web server; while it's possible to tell XSP to use the Clarion# language, the Clarion# CodeDOM provider isn't yet set up to handle Unix-style paths with / instead of \, so compilation fails. But this appears to be a relatively easy fix, and SV is aware of the problem.</p>

]]></description>
         <pubDate>Mon, 14 Jan 2008 00:00:00 CST</pubDate>
      </item>
      <item>
         <title>Nine years and counting...</title>
         <link>http://www.clarionmag.com:8080/blog/20080111Nineyearsandcounting.html</link>
         <description><![CDATA[<p>Welcome to 2008! Unoffically, this is the start of Clarion Magazine's 10th year of publication. Officially, the ninth anniversary of the <a href="http://www.clarionmag.com/cmag/v1/v1n1debugwithprj.html">very first ClarionMag article</a> is this February 8th. Time flies when you're publishing!</p>
<p>Last month was Clarion Magazine's first ever <a href="http://www.clarionmag.com/?year=2007&amp;month=12&amp;limit=100&amp;desc=false">Clarion.NET/Clarion# feature issue</a>. It's hard to really do any kind of justice to a topic as complex as .NET development in just one issue, particularly since Clarion# developers have the opportunity to write not just desktop, but web and mobile apps as well. It's all quite distracting: as I explore Clarion development on .NET I find myself frequently sidetracked by interesting possibilities, such as writing GPS-aware apps for my Motorola Q9h mobile phone or implementing bookmarking XML schemas for Clarion Magazine. </p>
<p>As interesting as Clarion# is, even without an AppGen, C6 is still where most Clarion developers earn their coin, and this month the focus is squarely back on the current product, where it will stay for some time. But you can expect to see continuing coverage on the .NET side of things. In particular I've been doing some web development work with Clarion#, and if that continues to go well I should have a new series up in the near future. </p>
<p>I wish you all a happy, healthy, and prosperous New Year. </p>
<p>Dave Harms, Publisher</p>]]></description>
         <pubDate>Fri, 11 Jan 2008 00:00:00 CST</pubDate>
      </item>
      <item>
         <title>Merry Christmas!</title>
         <link>http://www.clarionmag.com:8080/blog/20071221MerryChristmas.html</link>
         <description><![CDATA[<p>A Merry Christmas to all of you who celebrate the season! Although we often travel west to be with family at Christmas, this year we're staying home and spending time with friends, many of whom are like family to us. And as usual there's snow on the ground in Winnipeg for Christmas, with another storm forecast to hit tonight!</p>
<p>The publishing year isn't over, however - there are still two more articles due in our December Clarion.NET/Clarion# special issue. The first is a short introduction to writing applications for mobile devices, and the second is a piece on creating libraries and writing test suites with NUNit. I'm fascinated by both of these topics. Automated unit testing is pretty cool stuff, and it's very easy to implement; I like the idea of building applications out of verifiable components. And mobile development is a brand new area for many Clarion developers, one that will get a lot of attention in the coming year. </p>
<p>Besides new stuff in ClarionMag, you can look forward to a new release from SoftVelocity. The folks in Pomano Beach are hoping to deliver an update to Clarion# this week. Personally, I'd be just as happy to get it after Christmas. My brain needs a rest!</p>
<p>The Clarion Magazine will be closed on Dec 25th, and open intermittently thereafter until January 2, 2008. I'll check email periodically but don't be surprised if it takes an extra day or so to get a reply. </p>
<p>Enjoy the season, and I wish all of you a very happy New Year!</p>
<p>Dave Harms,<br />
Publisher, Clarion Magazine</p>]]></description>
         <pubDate>Fri, 21 Dec 2007 00:00:00 CST</pubDate>
      </item>
      <item>
         <title>Clarion.NET beta impresses</title>
         <link>http://www.clarionmag.com:8080/blog/20071117ClarionNETbetaimpresses.html</link>
         <description><![CDATA[<p>SoftVelocity released the long-awaited beta of Clarion.NET today. It's been a loooooong wait for this baby, and I'm very happy to have it installed on my computer at last. As expected, this release does not include the AppGen (that will come later) but it does include a C6 template utility that lets you generate a functioning browse/form application from the data dictionary of your choosing. You load up an app in C6, run the utility, and then look for the Clarion.NET solution in a newly created subdirectory under your app directory. </p>
<p>The Clarion# code that utility templates generates is instructive on a few levels, and I'll get back to that in a minute. </p>
<p>This beta isn't just about desktop (that is, WinForms) applications. You can also use Clarion.NET to create compact framework (mobile) apps, as well as ASP.NET web applications. Basic examples of both are provided, along with a bunch of other stuff. See the just-updated <a href="http://www.clarionmag.com/">Clarion.NET FAQ</a> for more. And Clarion.NET is a multi-language IDE, which makes sense since it's a marriage of SV's IDE code and the SharpDevelop IDE. So you can write apps in C# and VB.NET as well, and you can mix languages within a solution. </p>
<p>While the lack of templates/AppGen means large scale development is a ways off for most of us, there is a whole lot you can do right now with Clarion.NET. </p>
<p>Now, about that source code. It isn't ABC, that's for certain. There are a lot of classes in the namespace Clarion.Windows.Forms, but there are also some familiar constructs like views, and source code that manipulates views for display in list controls, and stuff that otherwise looks like Clarion code. And there are event handlers that functionally are pretty similar to virtual methods that contain ABC embed points. In other words, while the code isn't ABC, it's not entirely unfamiliar either, and it's not that hard to see how the concepts behind the ABC template set can be adapted to this new Clarion#/WinForms code. </p>
<p>I hope some of that makes sense - I'll have more to say in upcoming mag articles when I've had a chance to absorb all this a little better.</p>]]></description>
         <pubDate>Sat, 17 Nov 2007 00:00:00 CST</pubDate>
      </item>
      <item>
         <title>Clarion.NET Runtime 100% Verifiable</title>
         <link>http://www.clarionmag.com:8080/blog/20071113ClarionNETRuntimeVerifiable.html</link>
         <description><![CDATA[<p>You've probably noticed the <a href="http://softvelocity.com/">new SV web site</a>, complete with information on <a href="http://softvelocity.com/ClarionNet/ClarionNET.htm">Clarion.NET</a>. One item in particular jumped out at me:</p>
<blockquote>
  <p>The Clarion Runtime Library has been ported to 100% verifiable .Net code</p>
</blockquote>
<p>That may not matter to most Clarion.NET developers. After all, there's a good chance there's still some Win32 code in the file driver system (although I could be wrong about that). But a 100% .NET runtime is great news for anyone  considering writing Clarion.NET applications for Mono, since any dependence on Win32 code would be a huge problem on a non-Windows platform. </p>]]></description>
         <pubDate>Tue, 13 Nov 2007 00:00:00 CST</pubDate>
      </item>
      <item>
         <title>MVC web apps, Microsoft, and Clarion.NET</title>
         <link>http://www.clarionmag.com:8080/blog/20071012MVCwebappsMicrosoftandClarionNET.html</link>
         <description><![CDATA[<p>In yesterday's <a href="http://www.clarionmag.com/cmag/v9/V9n10multitier.html">article</a> on .NET application architecture I alluded to web application design issues and indicated I'd be covering that topic in a future article. I will say now that I've long been a fan of the Model-View-Controller (MVC) approach. In fact, the Clarion Magazine web server, which I wrote in Java, is built on an MVC design, and for some time now I've been interested in porting it over to .NET. ASP.NET isn't really an MVC framework (although if you beat it with a hammer you can get it roughly into shape) so I've been considering the Castle Project's <a href="http://www.castleproject.org/monorail/index.html">Monorail</a>, a Ruby-on-Rails-inspired framework for .NET. Now Microsoft has jumped on the MVC web app bandwagon with a project it expects to release around the end of the year, in beta. Microsoft's Scott Guthrie <a href="http://codebetter.com/blogs/jeffrey.palermo/archive/2007/10/05/altnetconf-scott-guthrie-announces-asp-net-mvc-framework-at-alt-net-conf.aspx">gave a presentation</a> earlier this month at the Alt.net conference in Austin, TX. Ruby fans take note - this project is getting some <a href="http://blogs.dovetailsoftware.com/blogs/gsherman/archive/2007/10/08/asp-net-mvc-framework.aspx">good buzz</a>. And apparently the Monorail folks aren't too worried as MS is building the MVC framework, while <a href="http://www.innoq.com/blog/hw/2007/10/08/aspnet_mvc_framework.html">Monorail has that and more</a>. The MS MVC code could be integrated into Monorail. </p>
<p>You can watch Scott's presentation <a href="http://www.hanselman.com/blog/ScottGuMVCPresentationAndScottHaScreencastFromALTNETConference.aspx">online</a>, but be warned; this is hand held camera work and it's none too steady. Toward the end of the presentation I found myself just about ready to hurl, which was a little ironic because for a change I think MS is on to something good with this project. </p>]]></description>
         <pubDate>Fri, 12 Oct 2007 00:00:00 CDT</pubDate>
      </item>
   </channel>
</rss>

