So since I find myself with some time on my hands and I have offered to create a Website for a startup I decided to check out what tools are available for RIAs as of writing (Dec 2009).
So I have Adobe Flex, Visual Studio (ASP.NET) Expressions Blend 3 (SilverLight 3) and Linux LAMP (PHP). I will evaluate each one of these to see what it's strengths are.
First I intend to install Linux and Windows 7 on my computers. So I found that I had not used some of my computers for a while and my server had died (1 drive failed and the CMOS battery was dead). Ok so I replaced the battery and replaced the drive; well then I found that my secondary computer was also dead the power supply failed. I was intending to put Ubuntu on it, since it is old I disposed of it so I will have to buy a new box soon. Ok so I will install Ubuntu on my main machine on the secondary drive.
2009-12-27
Ok Kubuntu is running. Actually, I installed Ubuntu but found that with my ATI Radeon graphics card it was not quite stable and my secondary monitor that I prefer to have in vertical mode for editing source code and documents a page at the time kept changing from left to right rotation and showed corruption in the video. I then installed the KDE-Desktop which may have fixed the problem so I will stick with Kubuntu for further testing. I will re-install Kubuntu from scratch to get rid of the Ubuntu Gnome stuff that caused the problem. (2010-01-01 This did not work see comments 2010-01-03)
I tested the video response a bit by watching video from Hulu.com which uses flash player (in Firefox as the browser) and it was way slower then in Windows (could not use full screen mode). So either the Linux ATI driver I downloaded from ATI/AMD is not as optimized as the Windows version or the Flash player from Adobe is not as good. This seems to be the only down side of using Linux, manufacturers of hardware do not seem to be as motivated to create drivers as sophisticated as for the more popular Windows operating system. However, on the whole slowly but surely the Linux distros are getting more and more powerful and usable. Already, I think that smaller companies could probably install Linux instead of Windows since it has everything that an average user needs and uses. Most users only use e-mail, Word processing, Web Browsers and Spreadsheets and Linux has all of this included.
I think though that KDE is a better desktop manager than Gnome for ex-Windows users and I wonder why Ubuntu defaults to Gnome?
I also installed Eclipse and enabled java development and PHP plug-ins. Seems to work with some fiddling after finding out how to download them. I think the Eclipse people should have a simpler way to find and download plug-ins for different languages and development environments. Which also brings me to the point of Linux packages; when you install applications or features in Linux you often have to find so called packages which have cryptic names and can have different versions. This on the whole may work well enough for programmers and developer types but probably is a major stumbling block to deploy Linux on the average user's desktop. Windows used to suffer from DLL hell but Linux seems to suffer from package hell as far as I can see. having said that the package managers on the whole in Linux appear to work reasonably well and they seem to track dependencies well enough, but then I am also one of those developer types...
Grub! I hate this intrusive boot loader; in the BIOS I can disable the Windows drive but somehow the Linux installer still finds the drive and even though I install Linux on a second physical drive in a different partition it still somehow overwrites the Windows Master Boot Record and when you uninstall Linux you can't boot into Windows anymore either. Luckily I have paragon backup which can restore the MBR. Lot's of people seem to have this problem and sometimes the Windows repair mode FixMBR or what ever it is called does not work.
2009-12-28
Well, I thought I would install Windows 7 and all the beta stuff like Visual Studio 2010, SilverLight 4 etc. on my external LaCie d2 Quadra 1TB drive (I love this thing by the way; recommended...) My BIOS recognizes this drive and accepts it as a bootable drive but when I select it in the Windows 7 Installer it says Windows 7 cannot be installed on USG or FireWire drives. I will have to check what gives here, there seems to be no reason why this is so. I guess I might have to purchase an eSata card and hook it up with that if all else fails.
2010-01-03
Ok. So I gave up on Linux until I get a computer with a compatible Video Card that can handle two monitors one Horizontal and one Vertical. I tried four different distros but they seem to come in two versions Suse and the Like show text corruptly on the second monitor and Ubuntu which works up to a point but not reliably. I have an AMD/ATI card HD3650 version, if you install Kubuntu and download the AMD driver the Catalyst video card control panel won't run in Administrative mode. You can kind of do a SUDO command and find the AMDCCCLE program but it still is unreliable. If you install Ubuntu it does work but the Gnome display device setup applet gets confused and keeps changing the vertical mode from right to left (the opposite to what the Catalyst control panel app sets it. This means that each time you boot you have to reset it. And even than it sporadically gets confused and corrupts the screen. Therefore Linux is out. This open source thing is really a bit of a joke I think, I mean who do you turn to to get this fixed? AMD/ATI produce a buggy driver for Linux and it is slow compared to the Windows version can't even view video at full screen size. SO I will do what I have done in the past give Linux a few more years and try again. Perhaps a miracle will happen and it becomes of age and works with my fairly standard hardware. And no I am not interested to learn how to debug my own operating system and fix the bugs and recompile the kernel etc.
Since my Linux attempts have failed I also have dropped PHP tests since it would depend on a LAMP stack. Ok I know that it is possible nowadays to develop on Windows but I have found this to be frustrating to set up, For a start the Windows MYSQL version (5.2 I think it was but I can't remember exactly) won't start on my computer running Windows XP SP2, it won't say what the problem might be so I have given up on that as well. In any case PHP development with its embedded C like code in HTML files is old school and out of date. We want to get away as much as possible from embedded code and even javascript if we can help it. Adobe Flex and SilverLight seem to have some promise here.
2010-01-05
Ok, so I started testing web development tools. This is the deal I would like to be able to develop one application which should be able to run in both a Web browser and as a Windows desktop app. Atleast, it should be relatively easy to convert from one to another. To achieve this one would want to base the development pattern on something that uses services to drive a thin client presentation layer. Ok so I first turned my attention to Silverlight 4 since it has the promise of relieving one from HTML and Javascript et. al. and you can do everything in XAML and C# or VB.NET. However I have found the beta version 2 to be too buggy to use so I switched to version 3 of SilverLight. Installed all the tools and Expression Studio 3. Expression Blend 3 crapped out on me at least once so I wish Microsoft would tighten up their quality control. Expression Web 3 won't even run and throws an exception trying to access memory location 00000001c or something. Probably written in crappy C++ with its unmanaged pointers. Jeez is it my imagination or is everything falling apart on my computer or is all this stuff really that buggy and unreliable. I am waiting to buy a new PC until I see one with an Intel i7 processor with DDR3 RAM for a reasonable price, perhaps then I will have more success. In any case I will try Linux again (seems that I better stick with an nVidea based graphics card for Linux to work) then and will load Windows 7 on it. But to get back to Silverlight 3, so I used Expression Blend 3 to create a webpage according to the look and feel of what I got from the Graphic Artist on the project. Took a while to work out how things work in Silverlight but finally got something that looks good however ver 3 does not have the RichText control that version 4 has so that is a limiting factor. Also found out that Expression Design can read in Adobe Illustrator files but it does a bad job converting them and made them pretty much unusable. Microsoft better get back to the drawing board on that, because I can't see the graphic artist types changing from Adobe Illustrator and Photoshop in lieu of Expression Studio especially if it has bugs. So, my determination is that SilverLight is promising but I can't use it until version 4 is stable and released. I will keep working with it to keep up to date but must still find something better for right now. Having said that, I downloaded some Silverlight controls from DevExpress I will see if they will make a difference. I will also re-install Expression Web to see if I can get it to run.
2010-01-15
Expression Web 3 now runs and works, not sure what was wrong with it but a re-install worked. I have been able to successfully create a test web using Silverlight but it has a bit of a learning curve. The default web page created by Expression Blend / Visual Studio 2008 has the height set to 100%. Now on my computer with a 1600x1200 resolution monitor the page I created at about 1024x800 loads just fine. However, it was brought to my attention that on smaller screens the browser scroll bars do not fully show the bottom of the page. It scrolls some but stops before the entire page is shown, I checked this out and experimented some and found some strange behavior; if I reduce the browser window the silverlight control area gets smaller. It is as though the size of the control reported to the browser gets smaller or something so the browser scroll bars scroll a smaller and smaller area as the browser window size is reduced. Anyway, I found that if I set the height of the control to something like 150% it allows more scrolling area alleviating the problem at least on my 800 pixel height control. It does not fix the problem it is only a work-around and I wonder if this is a bug or have I inadvertently caused the error by setting some sort of property wrong?
In any case, my proof of concept so far worked and now I will create a simplyfied ASP.NET website as well for those people that refuse or are unable to install the SilverLight plug-in. This will also allow search engine web crawlers to find something to index.
The startup page will check if SilverLight is loaded and then proceed to the SilverLight pages, if not the user will be encouraged to install SIlverLight or proceed to the simplified ASP.NET pages. They just won't have as rich an interface.