I'm assuming some of you have been wondering why the site's been so
static recently. Well besides the fact that we've been swamped with
development projects, we also took time out of our busy schedule to
attend Vertigo Training's
"Building Successful Solutions with Microsoft Windows DNA 2000"
course in San Francisco.
We were introduced to the guys from Vertigo through an earlier
meeting at
Microsoft's Redmond Campus. During their short talk they gave an
extremely impressive demo of the FMStocks application. It was
focused almost exclusively on performance and scalability, and even
from that short presentation we learned some extremely useful tips
(a very few of which I rolled into the new forum code). When we
heard they were going to be offering a training session shortly
thereafter and giving away more of their secrets we knew we had to
go!
The 3-day course had approximately 30 attendees and ran from
Jan. 19 to Jan. 21, 2000. The stated objective was to "learn how
to design, implement, and deploy scalable distributed web
applications using Windows 2000, SQL Server 7.0, and Visual Studio
6.0." To add a degree of fun to the class the whole thing was set
to a spy theme, which was very reminiscent of the James Bond movies.
We arrived on Tuesday evening to attend the welcome reception and
the first surprise was that when I got to my room there was a
personalized dossier waiting for me along with a Vertigo Training
martini glass containing an invitation to the welcome reception!
Well needless to say the welcome reception involved alcohol and
none of us were overly bright-eyed the next day.
Training started with a quick overview of the project we would be
building and a brief overview of the technologies we'd be using.
The technology was naturally Windows DNA 2000, but the project was
a little unique... we were to build an e-commerce store for spy
supplies appropriately named IBuySpy! That led directly into the
first phase of development... planning. The combination of lecture
followed by lab that was used in the planning stage was used
throughout the three-day class and for the most part worked
extremely well. At each stage we were first given a high-level
overview and description of what we were going to be doing and why.
This was followed by a period of time set aside for us to actually
do it. The hands on approach worked well and by the end of the
course everyone had completed their 3-tier web store!
The first day we dealt mainly with user interface and site flow.
This is a part of the project people often jump past and often comes
back to haunt you when you're working on other areas and you don't
have a clearly defined process to refer to when questions arise.
This was pretty low-tech... in fact most of it was done on paper and
in MS paint, yet as cheesy as it sounds it was time well spent and
was something I always sort of took for granted. Well no more...
since then it's been the first step in almost all my development...
no matter how small.
The second day was focused on the data and business tiers. A lot
was somewhat predefined and the tables were populated for us to save
time, but most of it was logical and very similar to what most of us
would have come up with on our own. We defined some SQL Server
tables, wrote the stored procedures, built a data access layer using
Visual Basic and tested the data access layer using a quick little
VB program. Then we proceeded to the business tier. Once again VB
was the tool of choice and once again we tested it using a quick VB
form. So at this point we had the business logic and the data
access components written. Registering and creating packages for
them within the Component Services MMC applet basically completed
the backend of the site.
The third day left us with just the front-end left to be built.
Once again we were provided with some basic building blocks,
templates, and the graphics and were left to build the rest. At the
end of the "getting the damn thing working" phase we discussed
scalability, performance, clustering, and deployment. By the end of
the third day we had all built 3-tier web stores and packaged them
up so they could be installed on a bare machine with a few simple
clicks of the mouse!
We learned a great deal and I'd
recommend the course to anyone who's doing this type of development.
My only real warning to people is that the course is not to be taken
lightly. If you don't have a strong working knowledge of Visual
Studio (mainly VB and VID), SQL Server, stored procedures, and
asp scripting, you'll be lost before the class gets started! It's
more focused on architecture and best practices then on teaching you
about the individual technologies involved. Believe it or not this
is actually not a bad thing! The course knows what it covers and it
covers it well without getting too sidetracked.
One side effect of this is that a lot of the code was pre-built and
handed to us. So, in the end, we really didn't end up writing every
line of code. It would've been nice to truly build it all, but to
do that as well as cover all the information in the three days is
just not a realistic goal. That said, the things we were given to
us were some of the more time consuming things and were somewhat
realistic in themselves. For example, instead of spending time
making all the graphics, we were handed pre-built ones that might've
come from a graphic designer. I only mention this fact to give
potential attendees a realistic view of the course. It is not my
intention to take away from the quality or comprehensiveness of the
course in any way because honestly it's the best course I've
attended, but I felt it was something that should be mentioned.
Overall the course was exceptional. The guys from Vertigo have
really done a top-notch job in their first attempt at a training
course, and from what I know of them I would assume that future
classes will only get better! The course is definitely a
"must attend" for any developer looking to build Windows DNA apps
but it should not be looked at as the only training session you'll
need. It should probably be taken after most others so if it
helps... think of it as saving the best for last!