For a while now, Macromedia's Dreamweaver has been the tool of choice for a
large number of web page designers. Unfortunately, those of us who spend most
of our time writing asp (or other types of server side code) have always had
to look elsewhere. While Dreamweaver has always done an exceptional
job at editing HTML, it has always fallen quite a bit short on the level of
functionality a script developer has come to expect from competing tools
like Microsoft's Visual Interdev (VID) and even some of the more advanced text editors
like Allaire's Homesite. This, I believe, is precisely
why Macromedia has released their new Dreamweaver UltraDev package.
First Look (There's a Book!!!)
Ok... having just reread that introduction, I'm not sure where I was going
and I'm gonna entirely switch gears on you... enough about the market and
the competition and the history of the product (can you say Drumbeat?)... lets
get to the only thing that a developer gives a damn about: "How does UltraDev
make your life easier?" Sorry for that lapse of concentration... I had
been reading the manual and was beginning to get a little brainwashed. That
being said, you heard me right... it actually ships with a good old-fashioned
book. Actually there are two of them! When's the last time you saw that?
First impressions aside (the fact that there's a book!), I set out to give this
new tool a spin. The install didn't hound me with a ton of questions, was relatively
quick, and went off without a hitch on my Win2000 Pro based laptop. I then popped
open a new document and within a minute was composing a standard HTML document.
(If you haven't guessed yet, it was this article!) The interface is relatively
easy to use and keeps the tools you need at your fingertips. Upon comparison
to VID6 (my usual editor), the only thing that seems odd is the lack of a parent
window to which you can dock the toolbar windows.
HTML Editing
Besides the whole multiple window thing that lets you see your background apps,
I felt pretty at ease doing my basic HTML editing in UltraDev. In fact, after
a couple minutes of playing around I found a number of cool features that go
above and beyond the dialog-assisted HTML building I've come to expect from
any decent visual editor. First off there's a spell checker. (A little dig at
VID there, but I'm a coder not a writer... give me a little help guys!) While
I'm mentioning Microsoft products... it's got a tool to fix Microsoft Word HTML
for those people that continue to send you web site content in MS Word format.
And for those HTML documents that you're not sure actually are HTML documents,
it has an HTML source formatter so you can at least read them. Next it's got
this great little instant tag editor which allows you to edit the currently
selected html tag by pressing Ctrl-T. It lets you fiddle with a particular tag
without dropping all the way to a separate source code window. (Two thumbs up
to the developer that came up with that one!)
This leads me right into the next point... the source code window. Someone
was definitely doing their homework here. Not only can you go from one view to the other
and have the focus stay in the appropriate spot, the two windows actually stay
in sync as you're working so you can switch back and forth almost seamlessly.
While I'm on the topic of source code, let's talk about the actual code. It's
not picture perfect (I can't get XHTML and I haven't found a way to modify the
code it produces), but the HTML code it generates is pretty darn good none the less.
I found none of the extraneous tags that happen in some other tools
because you created a bold word and then deleted the word (leaving an empty tag)
and almost every torture test I put it through resulted in HTML similar to that
I would have written myself. All
in all, it's one of the best editors I've seen and is something I might actually
use. And that's saying a lot coming from someone who has always insisted
on hand coding his own HTML.
Site Management
Here's where stuff starts to get interesting. I already established that it
has a top-notch visual editor (as you'd expect from the Dreamweaver product
line), but what happens when you try and get some real work done? It was relatively
easy to get UltraDev to connect to a test web site via both ftp and unc paths.
It lacks the "work on the server" feel of Visual Interdev 6.0 in master
mode, but with it's Live Data view that allows you to work with data on your
local machine I didn't really miss it much and it's probably better for those
times you accidentally write bad code on your first attempt! [Not like anyone ever does that! ;)]
It also provides a couple of neat tools for multiple person development. The
first is an optional check in and check out system that locks files so only
one person can edit them at a time. It's pretty easy to use and once you turn
it on you really don't even have to think about it much. The second is what
they call "Design Notes." These allow you to associate notes with
files in the web and have them optionally pop up whenever someone opens the
file they're associated with. It's like pop up comments that are harder to ignore.
ASP Code
In my day to day routine there are two things I use a development environment
to do. I naturally need to be able to build new sites, but I also need to be
able to easily modify existing sites and code. UltraDev is pretty good at the
creating new pages, but falls a little short when it comes to editing existing
code.
For new code, UltraDev makes building basic database driven pages easy and
for the most part you can do everything from the WYSIWYG view. The data bindings
and server behaviors actually make pretty good sense and work like you'd expect
them to. Binding form fields to database fields is point-and-click easy and
overall it'll make life for the beginning developer a lot easier. The more advanced
developer (or people who are used to notepad) might feel a little hindered by
all the dialog boxes at first, but once you get used to it, the tool really
does help make things easier and unlike any other visual ASP development product
I've used, it actually produces readable code that you can easily follow if
you need to.
I was a little less impressed with UltraDev's ability to open a random ASP
file and provide a useful editing environment. I tried it with a number of pieces
of code varying from stupidly simple to pretty darn complex and the result was
almost universally the same: wherever it could find HTML it displayed it, but
whenever it found ASP I got this little ASP icon and was unable to really do
anything with it except switch to the source code view and edit it by hand.
Below is a screen shot of what it did with a database sample from our sample
section.
It also offers very little support for project-level coding. Include files
work of course, but it doesn't automatically use them when it's coding for you.
By default it hard codes connections into each page and as far as I could tell
offers no real way to share code libraries among scripts. In the long run, this
could lead to real code maintenance problems. Granted fixing the problem on
each page will be easy, but you'll still need to fix it on each page.
My final complaint is that it seems to be a little behind the times. It
only supports ASP 2.0 and, like I said earlier, it isn't emitting XHTML. There
will probably be fixes for this available on the web, but out of the box, I was
a little disappointed. I'm trying to use .NET on all my new projects and it's
not even using ASP 3.0.
Cross Platform
This is where it seems like this product really shines. For those small development
shops where the same developers end up needing to write code for different server platforms at different
times, UltraDev allows you to have a common development tool that will produce
code for a variety of platforms. It currently supports ASP 2.0, JSP 1.0, and
Cold Fusion 4.0 server models with almost no changes to the way you work when
you switch from one project type to another.
It also is cross platform from the client side and runs on both PC and Mac.
(Unfortunately, Windows and Mac versions must be purchased separately.)
On top of that it's built to be pretty modular. It allows you to specify your
own external editors and even ships with two of the best around... HomeSite
for the PC and BBEdit for the Mac. And if the product doesn't do something you
want, it's meant to be easily extensible and you can build upon it to include
your own custom functionality. (I didn't get a chance to play with this extensibility
much, but from what I saw it's probably not for the novice user.)
If you're not up to building your own, the link to Macromedia's web site
will point you to an area where you can download a number of server behaviors that
other users have created.
Time to Start Jumping to Some Conclusions.
While Dreamweaver UltraDev is an excellent product and definitely a step in
the right direction, it needs to take a couple more to become a truly great
tool. There are a few times when it almost feels like two products thrown together...
Dreamweaver & UltraDev. The HTML editing side (Dreamweaver) is exceptional.
The ASP side (UltraDev) is good for writing new code, but could definitely use
some polishing. While it does common tasks simply and well, if you throw anything
it's not expecting it's way it wraps it up in little icons and ignores it. (Which
is at least better then breaking it!)
While it's not perfect, for the novice user looking for a good tool to get started or
for those who need a common environment for development on multiple server and
workstation platforms, you should pick up a copy and give it a try. It won't solve
all your problems and it won't write great code without some work on your part,
but it should certainly make your coding efforts quicker and easier than they
are now. For the more advanced developer, UltraDev might make a good addition to the
toolbox, but as a real workhorse, I just don't think it's there quite yet.
That being said, I'm keeping it installed and will probably use it for
some of my HTML work, but honestly what I'm really looking forward to is version 2.