Geeky Tech Stuff Posted by: Dale Franks
on Monday, May 08, 2006
My schedule has prevented me from blogging a lot lately, and, looking out over the next 6 months, I'm not sure how much that will change. I enjoy blogging—indeed, I'd do it full-time if I could—but paying the mortgage is always the priority. I'll be around over the next 6 months or so, with varying degrees of frequency, but the old level of blogging, i.e. 4-5 items a day will, for me, at least, probably not happen.
Still, some things catch my interest from time to time, and I need a place to vent. In this case, the venting concerns a bunch of geeky, computer-tech stuff, so, be warned, if you aren't interested in that kind of stuff, you should stop reading right now.
OK. Still here? Then I assume you're a total geek, like me.
On Friday, I finally broke down and bought a new computer. For the first time in my life, I chose to buy a laptop to replace my old computer. As of now, my old desktop will be nothing more than a digital recording studio/podcasting/iTunes/file server/print server. All of my primary Windows and Web development work will take place on my new laptop.
As an aside, the new laptop is an HP Pavilion Laptop, with a 17" tru-brite screen, a 1.8 GHz AMD Turion 64-bit Mobile CPU, 512 MB Memory, Wireless G, and 80GB hard drive. It cost $1049.99, although, with the $50 rebate, the price comes out to $999.99. I got it at CompUSA, and paid the extra $200 for the extended service plan.
I bought the laptop on Friday night, and spent the entire evening loading software, in order to have it ready for a client meeting on Saturday morning. I then spent Sunday and this evening, loading up some secondary applications, and transferring files that I still use from my old machine to the new laptop.
In the course of building a new development machine, I learned a few valuable things, which I present below for the edification of my fellow geek professionals.
The Good News:
Microsoft has made the business decision to offer VB.NET 2005 Express and SQL Server 2005 Express available for free. The Express version of VB.NET is actually a powerful development tool. Microsoft makes it sound like a lame suck development tool for "hobbyist programmers", but, unless you're trying to build apps for handheld devices using WinCE, I can't think of much you can't do with VB 2005 Express. Sure, you can shell our $800 for Visual Studio 2005 Pro, and do Compact framework apps, or have Visual Studio modeler, etc. Or, you can download VB.NEt 2005 Express for free and do everything else. Unless you're doing some really sophisticated development, there's no need to pay all that money.
SQL Server 2005 Express now comes with an updated version of the Microsoft Management Console for free. Previously, if you downloaded MSDE for development, you were kinda stuck when it came to database administration, because there wasn't really a readily available tool that allowed you to create and edit tables; add, delete, and edit data; etc. Now there is, and it's free.
MySQL v5.0 now has both a visual database administration tool (MySQL Administrator) and query analysis tool (MySQL Query Analyzer) available for free. These tools allow you to create and administer databases, and add, edit, and delete data in MySQL databases, either on your local machine, or remote web sites. You no longer need to futz around with the command line, since you have full visual modeling for MySQL databases with these free tools.
The Bad News:
Microsoft is catching a horrific case of "versionitis". VB.NET Express is unable to target applications for anything other than the .Net Framework v2.0.XXXX. Unfortunately, everyone else in the world only has the .NET framework v1.1.4322. The full-scale versions of Visual Studio 2005 have the same limitation. So, you are able to build feature-rich windows applications that no one can use. To target the existing v1.1.4322 environment, you still need to have VS.NET 2003 up and running on your development machine. this lack of backward compatibility in VS.NET 2005 is extremely irritating. In essence, this means that, unless you're willing to distribute the v2.0 framework with your application, there's not much you can do with VS.NET 2005. One of the key advantages to Windows application development with the .NET framework is that all you need to do to deploy an application is to copy the application files over to the target computer. You don't need an installation program. You just XCopy the application folder and you're done. Not any more. Now you need to publish an install program to give the .Net 2.0 Framework to a client machine. Or, you need to use VS.NET 2003 to do development, so that you can easily distribute applications.
SQL Server 2005 is similarly irritating. Over the last 6 years, businesses have been able to use Microsoft Access ADP projects to connect to the SQL Server environment natively. That's all gone, now. You cannot use an ADP project to connect to SQL Server 2005 at all. That means that all the legacy work in creating Access front-ends for SQL Server will prevent an enterprise from upgrading to SQL Server 2005, unless they are willing to invest in an upgrade of all their legacy applications. Even linking tables to a SQL Server 2005 database is a pain. To create a simple ODBC DSN took me three hours. Eventually, I had to eliminate the dynamic TCP port, and specify TCP port 2301 for the database. Then, to create the ODBC connection, I had to use it in the server name as "LAPTOPEDF,2301" to get the SQL Server Database to accept an ODBC connection. And, of course, on the Access side, that means that connecting only through liked tables means that you can no longer use Access to design or alter databases. The linked table functionality also means that you have no choice but to use the resource intensive linked table pipe to the database, so forget about having more than 5 or less concurrent users to your SQL database with an Access front-end. And, if your business has a lot of legacy Access ADP front-ends, you can essentially forget about upgrading from SQL Server 2000, unless you're also willing to pay to upgrade your front-end applications from Access to VB.Net 2005.
Versionitis isn't a bad thing when the new versions are backward compatible. When they aren't, it can be a major irritant.
Granted, the v2.0 framework has tons of neat stuff. Development in 2005 tools are even easier than in the 2003 tools. But now developers, like me, have to maintain two complete sets of development tools, targeting two different Windows platforms. That irritates me, and the lack of backward compatibility means that enterprises must either forgo upgrades, or pay through the nose to have the most current technology.
And, the really irritating thing is that Microsoft has already stopped selling VS.NET 2003. So, if you don't already have it, you're screwed. Now, I can understand why, if the v2.0 framework tools are completely incompatible with v1.1, you offer a new development toolset for v2.0. What I can't understand is why, since there's already a considerable legacy community of 1.1 computers, you don't keep the development tools current. You can't force enterprises to upgrade willy-nilly to the 2,0 version of the framework, and you have a moral responsibility to keep supporting legacy tools until they are obsolete in practice, not just because you've decided to change the platform.
(I can’t talk, our Web app at work is written in VB.NET, although we’re slowly migrating to C#.)
To be honest, I’m not sure 512 MB is enough for heavy-duty development work. That’s what I have on my laptop (a Dell w/1.4 GHz Celeron M and XP Pro), and I max out the physical memory fairly regularly when using the Web Developer edition of VS 2005 Express. (But I also run SQL Server Express.) My work-issued laptop, on which I have the full-blown VS 2005, has 1 GB and is much happier.
Yeah, it’s annoying that VS 2005 isn’t backwards-compatible. My only guess is that Microsoft decided that since most developers probably already have tools which target .NET 1.1 that there was no need for compatibility. OTOH, I have to maintain 1.1 apps, so I have to have freakin’ everything installed on my laptop: VS 2005, VS 2003, SQL Server Management Studio, SQL Enterprise Manager (we use SQL Server 2000 but are migrating to 2005), .NET 1.1, .NET 2.0, IIS . . . just shoot me.
(BTW, I believe it’s still possible to get VS .NET 2003 if you have an MSDN subscription.)
The more I think about it, the more I think you’re wrong about the 2.0 problem.
That irritates me, and the lack of backward compatibility means that enterprises must either forgo upgrades, or pay through the nose to have the most current technology
I’m not sure I buy the pay through the nose part. Side-By-Side mode means you don’t replace or upgrade the 1.1 install. It sits in parallel to the 2.0 framework. Only your 2.0 apps use the 2.0 framework.
It’s the same problem that faced VB developers from V4.0 on with getting the runtime installed. The size of the runtime is just larger. Granted, a lot larger. Your complaint seems pretty close to a VB 6 dev wanting to develop apps with the new enviornment and use the VB 5 runtime.
Oh, and no way would I get a dev machine with less than 1GB of RAM (The current laptop has 2GB). What’s the point of a x64 proc if you’re not going to run Vista? And how you going to open a 17" screen on a plane?
I’ll look at the SQL / Access interop tomorrow. I don’t keep a SQL server on my laptop anymore. And I don’t have the right version of office on my laptop either.
This whole comment comes off a lot more snotty than I mean it to be. Sorry about that.
C#, VB, No difference really. The Framework is language independent. I’ve never seen anything that would require the use of C#. Most of what I do is front-ends for SQL 2000 databases, anyway.
I was just making a dig on VB. I prefer C#, because I learned OOP using C++, used to work in a Java shop, and it just makes more sense to me, but I realize it can be used interchangeably with VB on .NET.
As for the memory, I can upgrade it to 1GB anytime I need to.
True. I just wish I’d configured my personal laptop with 1 GB from the start, because currently it’s configured with two 256 MB sticks so I’d have to replace both of them.
Eventually all new Windows machines will have .NET 2.0 out of the box, and Microsoft will likely push 2.0 updates to existing systems, which will eventually solve the runtime distribution problem. For Web developers like me, it’s not really an issue since I only have to worry about the Web server having 2.0.
I can’t tell that 1.1 is ubiquitous enough to just assume it’s there. So I would figure that you would need to include the framework for a complete installation, no matter which version you use. (1.1 is on Windows Server 2003, but is not necessarily on XP or Windows 2000, I believe.)
On the Access thing, Microsoft really does want to get away from the Jet engine - have wanted to for a long time, in fact. I guess they finally pulled the trigger on that. There are some Access-to-SQL+VB migration tools available, by the way, though I can’t vouch for them, having never used them.
I guess I’m just resigned to versionitis for a long time. I’m already spending a lot of time working on the next round of technology (WinFX), even though the current round has only been out six months. The next round will include more Framework versions in the OS (Vista), which is good, but will have more complex hardware requirements for the new video subsystem (WPF, aka Avalon), which is not so good. But then my case is unusual - I’ve managed to sucker others into maintaining and upgrading the stuff I write.
Yes, you would think 1.1 was everywhere with all you hear.
I worked at a startup using dot net and we have a really rough time on installation.
Our app was a P2P appication that worked like a version of bit torrent with a bunch of extras. As part of our install, we had to install dot net (for us 1.1) and in 30% of the systems out there, the install would fail and we were stuck unable to install the next phase (which wasour app).
Eventually we had to use Mono. We did a study on the penetration of any version of dot net and the number we came up with was 60%.
Dale, I absolutely agree that Microsoft’s strong-arm tactics suck. This is what happens with a company in near-monopoly position. They don’t care a hill of beans about your discomfort. They want you to be forced to upgrade immediately every time they release a new product. That’s their dreamworld.
The solution is either effective competition, which doesn’t exist, or government action to create some.
They want you to be forced to upgrade immediately every time they release a new product. That’s their dreamworld.
Uh, huh. That would no doubt be why much of the BASIC code I wrote in 1987 still compiled (unchanged) in their programming tools until 2001. Even after 1 new product and 7 new versions. (I can still use it in the newer products, but I do have to make minor changes.)
And it sure explains why Word 2003 (which if I count correctly is the 7th version of Word for Windows) can still read my old Word for DOS files from the 1980s.
And why I recently fired up a DOS-based game called Empire that I rescued off of a floppy disk from 1985. It still ran just fine.
glasnost, do you just have to fill every post you make with irrelevant and/or untrue gripes?
The bit about not being able to connect an Access 2003 ADP to SQL Server 2005 is pure BS. - it runs just fine (we have 5 adps running fine using 2005 databases). True, you can’t edit the SQL parts of the design. However, SQL Server Management Studio can be used to edit the database design.