6

Dave Harms, the editor of Clarion Magazine, published an article appropriately titled The future of Clarion.NET (subscription required).

To quote Dave: "Six years ago this month, at the only Florida DevCon of the decade, SoftVelocity's president Bob Zaunere announced Clarion.NET, the company's upcoming flagship product for Microsoft's .NET framework. "

Dave's conclusion is "Yes, Clarion.NET has a future, but at present it's not a very bright one. There's no AppGen yet, and past performance suggests that even if one does appear shortly it will take a long time before it is usable, particularly for newer technologies such as WPF."

So where is Clarion.NET?

From my perspective Clarion.NET doesn't exist. I bought a license a couple of years ago or so (don't remember exactly) and nothing much has happened since. I have not even bothered downloading the new builds. There is no application generator, no templates, just an IDE and a Clarion# compiler. I can just as well use Visual Studio and compile in C# or VB.NET. To me there are only two reasons to use Clarion#: Support for TPS files and queues. On the other hand, I don't want TPS files in .NET and from what I understand, collections and LINQ in .NET can easily be used instead of queues. So the advantages of Clarion# for me just aren't there.

Will SoftVelocity ever deliver Clarion.NET? I don't know. The product was developed outside of SoftVelocity and it feels like there is no communication about it. SoftVelocity deletes any threads from the ClarionSharp newsgroup that queries into the status of Clarion.NET. No information at all escapes except what SoftVelocity posts on their blog-site, the last one from just over a month ago, showing one screen-shot from the data pad and one screen-shot from the "Embed interface" which quite frankly is not looking like anything that is going to materialize anytime soon.

The silence of Clarion.NET

It is a well known secret by now that the Clarion.NET product was developed by Arcadia, a company in St. Petersburg, Russia. Arcadia has long experience in software development in Scandinavia. The contract was supposed to start in mid-2004 and take 4.5 years (or 500 man months) with a team of 10 developers. I don't see anything wrong with this, but something has definitely gone wrong in this relationship and one has to wonder if this project is dead. The absolute lack of public communication from SoftVelocity regarding Clarion.NET is worrisome - the silence is indeed deafening.

Starting something new

In the beginning of 2010 I decided to write off my investment in Clarion.NET and not have any expectation of it ever being released. This was actually a relieving decision as it transferred me out of a black hole that the Clarion.NET world had become and into the very exciting other .NET world! I went from negative to positive:) My commitment to the other .NET development environment was further strengthened as I started thinking about what benefits there would be to use Clarion.NET - and I found the benefits were precious little.

While I would miss some of the Clarion functions and syntax, I have done enough programming in both C and PHP to be able to embrace the syntax structure and case sensitivity of C#. I also have some BASIC programming in my background, BASIC being the first computer dialect I learned almost 25 years ago, so I would be Ok with VB.NET. I will blog later on what the initial pros and cons of C# vs VB.NET are for me.

Don't get me wrong: Just looking at all the stuff that is available for all the different options in .NET is an absolutely daunting task! But at the same time, it is energizing and fills me with optimism about programming because I see all those things that I can do! There are all those tools and products available in the .NET world for just about every conceivable task. And the millions of articles and blog posts about the various technical aspects are out there, too. Thousands up on thousands of detailed examples on sites such as Code Project. All right at my fingertips, ready for me when I need them.

What about Icetips products?

Does my decision to move to Visual Studio instead of Clarion.NET affect my support for Clarion as a desktop programming environment? Absolutely not! I will continue to work actively with Clarion, support my Clarion third party products, and add to those products, for a long time to come. I have absolutely no intention to stop using Clarion for desktop development, but I'm simply not waiting for Clarion.NET any more.

Considering Visual Studio

If you are considering looking into .NET - and in my opinion you should - you can download the free Visual Studio 2010 Express version right now and start playing with it! For the time being, I'm not sure what exactly the limitations are in the Express edition, but it looks like database access is limited to SQL Server Express and Access databases. Which admittedly should be just fine to start with, although it will not give you much freedom in accessing your existing databases unless they are in either of the supported formats.

The Professional Edition costs $549 if I'm reading things correctly. You can compare the various commercial versions to see what is included in each one. I have the BizSpark package from MS which is free to start, is valid for 3 years and costs $100 at the end and it includes a license for VS 2010 Ultimate so I'm good to go.

Learning .NET

The really cool thing about Visual Studio and .NET is that there are more resources available out there than any one of us can even imagine! As an example here is just one tutorial website for Windows Presentation Foundation at http://www.wpftutorial.net/

So where does this leave you? Where do you stand? What are you looking to get out of programming in .NET? What do you want to accomplish? Food for thought...

I have not done any .NET work yet. My plan is to start easing into it in the next month or so. I have some small stuff I can start with. Setting up a mySQL .NET provider, hooking up to my remote database and creating a browse using WPF will be my first step. I'll see if I can glue all the pieces together to make one browse app. I'm going to start messing with ASP.NET, set up a domain to test with online and see how it works. Then I'll take it from there. What are you going to do? Think about it:)

Starting the journey

In the coming months I will be taking a journey, studying .NET, experimenting with it and learning how to use it. I will blog about my experiences and perhaps I can help you along on your journey. I will shortly be setting up a new domain that I will use exclusively for exploring ASP.NET and SilverLight, which are my primary targets for .NET at this moment. I will also be exploring WPF, like I said, for some in-house programs, which quite frankly will mostly be to cut my teeth on WPF and desktop programming in .NET. My plan is to have something that connects to a database up and running before September 20!

Arnor Baldvinsson

1

I am really excited about starting to dig into Visual Studio 2010 and learn to work with .NET. I'm in the design phase for two "Software as a Service" (SaaS) products that I am going to do in ASP.NET. I'm also looking at creating a couple of small administration applications for myself using Windows Presentation Foundation. Those will be desktop applications (not web based) and will connect to our online mySQL database. Eventually they will be replacing parts of Clarion software that I have been using to maintain this database.

To get a nice test platform for VS2010 and MS SQL-Server 2008 I decided to set up a virtual machine with Windows 7 Ultimate 32 loaded on it. I had a ready made Windows 7 virtual machine, so I cloned it. It only had Clarion 6 and Clarion 7 on it and was only set up for 16GB disk size. The first thing I did was use the VMWare Disk Manager to increase the disk size to 32GB as I figured I would need some extra room.

I had asked around for what would be the best and most appropriate order to install VS2010 (Visual Studio 2010) and SQL Server (2008). It didn't seem that the order made a difference: one developer had installed VS first then SQL, so I decided to do that. Got VS 2010 installed without a problem. Did a full update of Windows 7, which took hours to complete.

Then I started installing SQL Server 2008. Windows 7 immediately showed a compatibility error and suggested to either get a newer version or immediately update SQL Server after installing. Since I was already installing I decided to go ahead and install it. During the installation I got an error and ignored it and everything seemed to be ok, except it didn't install the SQL documentation. Ok, so I figured I'd update Windows and it would update SQL Server. That did not happen and I decided to get the most recent version which is SQL Server 2008 R2. Downloaded it, which took awhile, because it is a 4.2GB download!

At this point I realized that I had made some mistakes along the way. I had completely forgotten to create snapshots of the virtual machine as I did the installs. Now that I wanted to go back, I could only go all the way to the beginning, which was from the day before! I had spent hours on installing VS2010 and SQL Server as well as Windows updates, so I was not happy about having to start over.

This time, after SQL Server R2 had downloaded, I snapped the virtual machine back to its initial state and started over. First Windows updates. Snapshot. Visual Studio. Snapshot. Everything was good, except this took me the better part of a day with all the Windows updates. The Windows updates just took forever - partially because at some point the installer had opened a window with some options and it appeared *behind* the installer. So it sat there for an hour or so, apparently working, but was in fact waiting for input on that other window behind it. 😉

I installed SQL server R2 and now I got even more errors than with the original 2008 install! The install ran very slowly and in the end, there were multiple errors. Worst of all, it had completely skipped all of the management tools!

Back to square one. Square two actually, as now I did have the Windows updates to start with. Now I decided I was going to change tactics and install SQL Server 2008 R2 first and then VS2010. Started with SQL Server and now it installed without a glitch and was much faster, probably took less than half the time it had taken before! This was finally done at 4AM, Tuesday morning. I took a snapshot and went to bed!

When I got up I picked up where I'd left and started installing VS2010. Everything went without a single hiccup. Once VS2010 was installed, I took a new snapshot and went on with doing Windows updates since I realized that I probably hadn't finished with them at the snapshot I had gone back to. That took another two hours, so I was not completely done with this until about 3PM on Tuesday.

If you plan on installing those two, make sure that you can roll back in case things do not go right! My advise, based on my experience, is to install SQL Server 2008 R2 before you install VS2010.

Arnor Baldvinsson

Even with all the wealth of information on the internet at our fingertips, sometimes it becomes a real challenge to find a solution to what seems to be a relatively simple problem.

For some upcoming work in Build Automator I wanted to be able to send keystrokes to a program. It somehow doesn't sound all that challenging, but I have spent the better part of today trying to come up with a solution. I have read hundreds of posts on multiple forums about this and have discovered that there are far more people that ask for this solution than those that even understand the problem, let alone who can give an intelligent answer. So far I haven't found a single post that solves it, lot of posts that give a hypothetical answer that looks like it should work, but doesn't, at least not in my case.

I have been successful in sending letter keystrokes to the editor window in NotePad, but trying to send something like Alt-F or Ctrl-O completely fails. So I'm putting this on the shelf for now even though I hate walking away from this, but I can't take more time on trying to find the solution at this point. Sometimes in programming, just like in poker, you have to know when to hold them and know when to fold them!

I got the Utilities build out last night while I was babysitting SQL Server 2008 R2 install and Visual Studio 2010 install. That was an interesting experience and I will blog about it tomorrow! I need to get some work in for my clients this week and next week I will be working on our products. I will also put in some work on the Icetips website which we have been working on behind the scenes for a while. Sue is re-doing almost every single page and it will be a very welcome update to the site!

Arnor Baldvinsson

Icetips Utilities build 1.1.2390 is available for download for all customers with a valid Gold Subscription.

This build contains complete documentation for the Date Class, File Search Class and INI Class. For more information please see the online manual and my blog entry from Sunday, September 5. Below is a detailed list of all updates and fixes in this build:

Updates, features:

  • July 2, 2010: Documentation done for File Search Class.
  • July 24, 2010: 22 new methods added to the Date Class: GetThisWeek, GetLastWeek, GetNextWeek, GetThisWorkWeek, GetLastWorkWeek, GetNextWorkWeek, GetThisMonth, GetLastMonth, GetNextMonth, GetThisQuarter, GetLastQuarter, GetNextQuarter, GetThisYear, GetLastYear, GetNextYear, GetLast12Months, GetMonthToDate, GetQuarterToDate, GetYearToDate, GetMonthFromDate, GetQuarterFromDate, GetYearFromDate. Documentation for Date Class updated.
  • July 24, 2010: Documentation done for Date Class.
  • July 28, 2010: 6 new methods added to the Date Class: DateDiff, DateAdd and GetDate to get date differences and SetWeekStartDay, GetWeekStartDay and GetWeekFirstDay that deal with different start day of a week. By default the week start day is set to Monday, but can now be set to any day. Documentation for Date Class also updated.
  • September 3, 2010: Added FreeFiles parameter to the ScanFiles method in the File Search Class. This allows the method to be called repeatedly for different folders or different wildcards without having to handle the files in the Files queue until all the files have been read.
  • September 3, 2010: Added attributes parameter to the FileExists method to Core Class. This allows the method to be used to find more than just FF_:Normal files, such as directories, hidden files etc.
  • September 6, 2010: Documentation done for INI Class.

Fixes:

  • July 21, 2010: HtmlToColor did only handle html color value strings that started with '#' Fixed so now it can handle html value colors without the '#' prefix. I.e. 'C1D8F0' instead of '#C1D8F0'
  • September 3, 2010: ScanFiles did not check if the path passed in ended with a backslash which caused an error. Fixed.
  • September 5, 2010: PROC attribute missing from SetFileAttrib method in Core Class. Fixed.

Arnor Baldvinsson

Monday September 6, is a holiday here in the US - Labor Day - and I am going to take the day off. Been working on a client project over the weekend that took longer than I expected but came out pretty nice. Some minor window cleanup left and I'm done with it for now:)

Today I installed Visual Studio 2010 on a Windows 7 Ultimate virtual machine using VMWare Workstation and I might mess with that a little bit tomorrow, as well as installing MS SQL Server 2008.

Other than that, I am barbecuing tomorrow! I have 3 racks of baby back ribs curing in the fridge with my own tried and tested dry rub. They'll go into the smoker at about 2pm tomorrow and cook low and slow for about 5 hours. It has been a while since the last time we had a barbecue and I can barely wait!

Tuesday I will get the new Utilities release out, see my earlier blog post. Everything is ready for it, but I do need to implement a call to TortoiseSVN in the Build Automator script to tag the Utilities build, which creates a new tag for it in the version control database. Tags are builds that are complete and should not be touched again.

I have a 1700 page monster book sitting on my desk about ASP.NET and another 800 page one about C# that I would like to start working through. So many things to learn! I may end up doing some studying on .NET tomorrow. Does that qualify as taking the day off? Hmm...

Arnor Baldvinsson

There will be a new build of the Icetips Utilities released on Tuesday, September 7.

Documentation is now complete for the File Search Class and the Date Class, and work was done in the Core Class, Date Class and File Search Class.

The main work in this build was on the Date Class. It has 28 new methods and the Date Class is now fully documented. This includes methods that are compatible with the DateDiff and DateAdd functions in Microsoft SQL. There are methods to get dates in the past and the future, such as GetLastWeek, GetNextWeek, GetLastMonth, GetNextMonth etc. For more information please see the online manual. Please note that the online manual is not 100% up to date right now but will be updated when the new release is uploaded on Tuesday. The new methods make it easy to do quick date calculations. Week calculations are ISO-8601 compatible and you can set any day of the week as the start date. If you see that some functionality is missing from the Date Class please let me know so I can continue to improve it. 🙂

There is also a new parameter for the FileExists method in the Core Class, which makes it possible to use it to check the existence of files or folders using the FF:_ equates as they are used for the Directory() function in Clarion. This makes it more versatile.

There are some very powerful methods in the File Search Class to scan for folders and files. I have made some minor improvement to the class, including adding a FreeFiles parameter to the ScanFiles method that allows you to call it multiple times and it will add the files to the Files queue rather than free the Files queue each time it is called. This increases flexibility of the method. I also fixed a problem with the ScanFiles method that I ran into when calling it with a fixed path and a wild card. In that situation it did not check if the path ended with a backslash which caused problems.

I am planning to get back on a schedule by releasing new product builds every other week or so. If you have ideas for new methods/classes, please don't hesitate to let me know!

Arnor Baldvinsson

Have you ever had a computer day where you put in something like x = 2+2 and then x turns out to be 352,648,137? Well, I had one of those days todayB)

My client asked me to do some work with his program - extracting a database for a new user. This is a SQL Anywhere database with replication and he needed to add a new replicated database to the system. This was something that we originally had left behind, meaning to get back to it at later time and that later time just never came. The process isn't complicated, but the extracted database needs some massage after it's extracted. I had originally done this with batch files, simplest way as you just construct the sql files and then pass the name to the dbisql.exe command line tool. But I had some other batch files there and managed to execute the wrong one and I'm glad I wasn't working on a live database and that I had backups as it deleted the database!

So I decided to write a nice little program to act as a shell for this process and make it nice and easy to go through and do the extraction and all the little stuff that was needed around it. And that's when my day turned really interesting and things would work in the most mysterious ways! But in the end I prevailed and got most of it done tonight, with some minor work left for tomorrow morning and some clean up. On the positive note, this gave me an idea and most of the code for a simple product that fits well within the Icetips Utilities.

I also got some product related stuff sorted out. I have all the products in version control now, as well as some other non-product related projects so that is all coming along very nicely.

For those who are looking around in the world of .NET, I Discovered what looks to be a very nice tool for Visual Studio at DawliaSoft called Sculpture. It uses model driven code generation. It is open source so it is free but the models are about $99 each, but you can also buy bundles, see their price list They have some video tutorials which look good, but the audio is pretty bad. The company is based in Egypt and the speaker has a bit of an accent although I didn't have a problem understanding him. It is better to download the wmf files rather than watch the videos online.

Tomorrow will be a great day!:)

Arnor Baldvinsson

I will be attending the Clarion Live DevCon 2010 in Denver at the end of October as a third party exhibitor. I am very much looking forward to see all the other Clarion developers attending and talk to you guys there!

Please come visit me at the conference if you have any questions, suggestions or comments!

Arnor Baldvinsson

Last week we went on a camping trip to the Klahowya campground, which is only about an hour drive from our home. This was our first camping trip so we didn't want to go too far from home.

The campground is on the banks of the Sol Duc river, which runs from the Olympic Mountains. The Sol Duc enters the Pacific at La Push on the West coast of the Olympic Peninsula.

The campsite we had was right on the river and had a lot of room. If you click on the photo above you will get a higher resolution photo from my photo website. We had no problem putting down two tents and park both cars. We had a nice fire pit and had no problem with the site, apart from some very pesky chipmunk that decided it would challenge John for a sandwich just after we got there. The chipmunk lost, predictably, but John also had some battle scars to show off as the chipmunk was not about to let go of the sandwich without a fight!

We brought both a small grill and cooking stove to cook on as we didn't really know how things would work out. On Tuesday night I grilled some Italian sausage and heated up baked beans. The grill performed very nicely and the chipmunks left us completely alone! I built a fire in the fire pit and we roasted some marshmallows over the fire and made s'mores.

On Wednesday, August 25, we started out by cooking breakfast. Scrambled eggs and breakfast sausage with fresh brewed tea and coffee went down well and was a good start for the day. Around 11 we went to the Sol Duc waterfalls. We left the Subaru at the Sol Duc hot-springs and took the Mazda up to the trail-head for the Sol Duc waterfalls. The plan was to walk up to the waterfalls and take the Lover's Lane trail on the other side of the river back down to the Sol Duc hot-springs. The trail up to the waterfalls is about 0.8 miles (1.3km) and is mostly uphill, but the trail is wide and easy.

There was not a lot of water in the river as the summer has been cool and dry, but the waterfalls are always beautiful to see. I didn't want to lug my tripod around for the walk so I used the rail on the bridge to brace the camera to take the photos of the waterfalls, not really expecting them to come out, but they came out ok. You can see more photos of the falls on my photo website

From the waterfalls we continued our trek. Instead of going back over the bridge, we headed on to the Lover's Lane trail, which is on the West banks of the Sol Duc river. It is a relatively easy trail, not many elevation changes, but the trail itself is rather treacherous because of roots and rocks. The trees are old growth and some of them are very, very tall! Large patches of ferns almost cover the trail in places and it is a bit of a wonderland to walk through this area.

We stopped on the way and had lunch sitting on a big tree trunk that was half way in the river. This trail is about 3 miles so the total distance we walked was around 4 miles. We were all glad that we made it through without falling over some of the roots and rocks. The weather was awesome, sunny and warm and the only negative thing were some bug bites as we had accidentally left the bug spray back at the camp site. When we got back to the campsite we built a fire and we roasted some hot-dogs for dinner and some marshmallows and s'mores followed.

Thursday morning was foggy and a bit nippy. I got up early, around 6am, and made a nice fire to keep everybody warm. At about 8am I made scrambled eggs again and fried up a whole package of bacon that warmed us up nicely. After breakfast we went on the Pioneer trail at the campsite. It takes you through some very tall, second growth, fir and hemlock forest. It is only about 0.3 miles (0.5 km) but it shows well the extremely tall forests of the Pacific Northwest. The rain forests of the Northwest contain some of the largest trees in the world. In fact, newly released research information that used NASA based satellite laser technology has found that the tallest forests in the world are right here where we live, in the Pacific Northwest! This shouldn't come as a surprise to anyone who walks through the rain forests on the West coast of the Olympic Peninsula.

When we came back from our walk on the Pioneer trail, we started packing things. As we were getting the bigger tent down it started drizzling just a little bit so we kicked into high gear to get everything broken down and packed. 5 minutes after we left the camp site it started raining. We needed to get gas for the Subaru so Sue, John and Laila went to Beaver to get gas and we decided to stop together at the Hungry Bear Cafe that is between Klahowya and Beaver. The food was ok, nothing to write home about, but the ice cream was very good! The restaurant was in dire need of some fixing up. The termites had already finished the windows and probably the rest of the wood in the building and long since moved on to something with a bit more sustenance.

All counted we feel that our first camping trip went pretty well. We are planning a second camping trip in September to the Cougar Rock campsite at Mt. Rainier. Since Laila starts school in two days this will have to be a weekend trip and we'll see how the troops do in a bit cooler climate!

Arnor Baldvinsson

I have my Clarion REDirection file set up so that all generated files are created into sub-folders from the application folder. This makes the application folder clean, as no generated files are created there. In my version control setup, I decided to exclude those folders so that I do not version control the generated files.

I don't see a reason for it since I'm version controlling the .app files. For this I need to set Tortoise to ignore the files. I do that via the properties on the project root, by using the svn:ignore property and set it to ignore all my folders, using both the upper and lower case variations! Works fine, but this only ignores the files and doesn't remove them from the repository.

After some digging around, I found that since TortoiseSVN does not have a full command line interface for SVN available, they have made an exe that you can use to execute certain SVN functions directly via the TortoiseSVN interface. This is documented in Appendix D of the TortoiseSVN documentation, which is about Automating TortoiseSVN.

To make things easier for me I created a bat file to do the removal of the folders from version control.

"c:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:remove /closeonend:1 /path:"z-backup"
"c:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:remove /closeonend:1 /path:"z-clw"
"c:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:remove /closeonend:1 /path:"z-inc"
"c:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:remove /closeonend:1 /path:"z-lib"
"c:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:remove /closeonend:1 /path:"z-obj32"
"c:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:remove /closeonend:1 /path:"z-source"

Note that the statements above will wrap. This takes care of removing the folders and then I commit and I'm back in business. I just move this RemoveSVN.bat file from one folder to the other when I need to use it and this makes it much quicker to go through this process when dealing with multiple folders.

There is an option to put multiple paths on the /path: parameter, like:

REM "c:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:remove /closeonend:1 /path:"z-backup*z-clw*z-inc*z-lib*z-obj32*z-source"

but I ran into problem with it where it would lock the folders, requiring to execute the "Cleanup" action on the folder to unlock it. I'm not sure why that happened, but it does not happen when dealing with the paths individually.

Version control actions are on my drawing board for Build Automator and my plan is to have it supporting at least TortoiseSVN/SVN before the end of 2010 and perhaps MS Team Foundation Server 2010. If you are using a different version control system and would like to see it supported by Build Automator please let me know:)

Arnor Baldvinsson