May 18, 2008 6:18 PM   Subscribe

After working in a mostly LAMP (Linux, Apache, MySQL, PHP) environment the last few years, I need to make a quick switch to WISA (Windows, IIS, MS SQL, ASP).

I have very little experience with WISA. Give me some tips to make a smooth transition. What is different and what is the same?
posted by gringoese to Technology (6 answers total) 6 users marked this as a favorite
You manage everything through a GUI. No more remembering obscure commands to start the web server or backup the database, which could be a plus or a minus. In Windows you may find that there's not as much to tinker at. But it gets jobs done. And though the setup imposes a higher minimum system requirement, its performance is superior to WIMP on high-end machines.

What kind of work do you do? Administration? In WISA, IIS is integrated into Windows, and ASP in IIS. SQL Server runs as a standalone, but you get a front-end to manipulate database structures and data. Programming? ASP is a framework of higher level than PHP, and requires you to think in a different level of abstraction. You will program in either VB or C#, which are static languages. SQL Server has some weird syntax that needs getting used to, but nothing too hard. Hope this helps.
posted by semi at 7:04 PM on May 18, 2008

Just so you know, ASP stands for Active Server Pages. You already know this, but what you probably don't know is that the technology behind ASP, while typically VBScript, does not necessarily have to be so! VBScript is a crap language to deal with. Avoid. That "Active" part means that there's a language behind it, not that you're restricted to VBScript. You can still run Perl, Python, whatever all over IIS. I wasted far too many years with my brain mapped like ASP = VBScript with some nifty server objects thrown in.

Of course, you shouldn't be doing ASP at all, you should be doing .aspx (the .NET technologies, which include C#). I haven't learned those yet, not sure if I want to.

Let's see, IIS has a different list of server variables available. You can't quite make it jump through as many hoops as Apache. To be fair, there are obscure bits and commands - commands allowing you to tweak IIS' MetaBase using VBScript. IIS keeps the equivalent of config files in this weird structure called The MetaBase - it's like the Registry for IIS. Except that it is probably going away in Server 2008, from what I hear.

IIS is more flexible about the syntax for server-side includes.

Capitalization is not an issue in windows. It's case-preserving, but case-insensitive.

If you want to do anything interesting, you will have to go into the Web Extensions of IIS, or everything you try will fail silently.

Pay attention to the Event Viewer - it often contains (though crytically worded) messages letting you know that there is a problem.

Craft some customized pages to spit out all of the server variables, various tests to make sure that IIS is working, that various extensions are enabled. I have a test suite I use that tests some basic functions. Make other customized pages to spit out errors. Go hunting for 500-100.asp, or something like that - it'll be your buddy.

MS SQL 2000 = easy to manage and almost fun. MS SQL 2005 = nightmarishly complex and weird. I'm not a DBA. I don't want to be a DBA. MS SQL 2005 is Microsoft wanting to move into "we're so intimidatingly complex, we must be like Oracle!" territory so they can play with the big boys.
posted by adipocere at 7:19 PM on May 18, 2008

Don't use ASP under any circumstances. It's terrible, awful, no-good, and very bad. Which is to say that it's your typical scripting language, rife with #include directives, lacking type safety or meaningful OOP, and featuring some blatantly absurdist syntax rules. (functions vs. subroutines, anybody?)

However, ASP .NET is pretty goddamn awesome. The whole MS stack works together seamlessly, and the API is like an infinite backpack that just happens to have library functions for pretty much anything you want to do. Be sure to use C# instead of VB .NET so that people don't think that you're a rube.

(And please, don't ever listen to the holy warriors who will tell you not to use .NET because it's made by Teh Evil Micro$oft. Just tell them to sit back and enjoy their kool aid while you go out and rake in the bucks)
posted by Afroblanco at 9:04 PM on May 18, 2008

(and, yes, if you are coding in .NET, it is a bad idea to refer to it as ASP, as you will confuse anybody who's familiar with the technology)
posted by Afroblanco at 9:05 PM on May 18, 2008

Best answer: Well, it would also be inaccurate to say just .NET, since that's the whole framework. Say ASP.NET if you mean ASP.NET.

There's nothing wrong with classic ASP just because some people who've used it don't bow to the arbitrary shibboleths of the industry (or, conversely, because some people write genuinely terrible stuff). However, I can definitely tell you that people hiring in my area are rarely, if ever specifying regular ASP. Almost every such job posting is now specifying ASP.NET with VB.NET or C#.NET as the language.

The ASP.NET world--as marketed and written about--is very heavily object-oriented. There's an emphasis on HTML/CSS validating to standard and XML in the project files being well-formed. There are wizards and widgets and features and controls galore, some are big timesavers, some have annoying idiosyncracies that have to be worked around if you choose to use them. There's such an emphasis on the object models that VB and C# code can look very very similar (one of my workbooks had examples in VB, and kept making wan jokes about "C# developers can just put a ; on the end of each line").

As someone who has no problem working from a recipe or writing one from scratch, ASP.NET is like having a warehouse with thousands of TV dinners to choose from.

Getting ASP.NET to do things productively can be best done with a little knowledgeable planning beforehand, knowing how to take advantage of the automated stuff, but also knowing how to drive around the potholes. Hands-on experience with the various widgets and controls will help with this. Much of your work time initially is around looking up what exact method or property you want to use to accomplish a task, more than actually writing code. In the full Visual Studio, IntelliSense is pretty broad: besides the big object model(s), it will prompt you with CSS classes from your own stylesheet, or even connect to SQL Server databases specified in your project and prompt you with table names, etc. as necessary.

Of course, being productive also means thinking about namespaces, classes, controls, templates, master pages etc. in ways that are best reusable and maintainable for your needs in your environment.

Microsoft has some free tools you can download, install and work with: dig around on their site for Visual Web Developer and SQL Server Express editions.
posted by gimonca at 10:10 PM on May 18, 2008

adipocere writes "MS SQL 2005 = nightmarishly complex and weird. I'm not a DBA. I don't want to be a DBA. MS SQL 2005 is Microsoft wanting to move into 'we're so intimidatingly complex, we must be like Oracle!' territory so they can play with the big boys."

IMS SQL 2005 is basically a port of Sybase's T-SQL. Surprisingly for a MS product, it's reasonably stable and the GUI is actually pretty nice. I'd judge it superior to MySQL.
posted by orthogonality at 3:44 AM on May 19, 2008

« Older Where can I find literary magazines in Cleveland?   |   Window shopping... but I want the display, not the... Newer »
This thread is closed to new comments.