Agramont.net

Sr. Product Manager, Enterprise Tech for Accelrys
Welcome to Agramont.net Sign in | Join | Help
in Search

Conrad Agramont's Blog

A learning roadmap for the newbie Microsoft Web Developer

I’ve been doing development on the Microsoft platform for quite some time, including web development.  Internally we had an interesting discussion on what are the various web development tools and technologies from Microsoft and how does a developer get up to speed.  This could be because their coming from a different platform (e.g. PHP) or perhaps they just haven’t freshen up their Microsoft skills in quite some time.  This got me thinking and I wrote the below text with this in mind.  This either points out the obvious or it could help someone learning to tap into the Microsoft products, tools, and communities.  It’s not obvious where to start, so lets see if this helps….

I’m a Microsoft developer and have been for quite some time, but I’ve been focused on developing on the “old stuff” for quite some time.  Let’s say its Active Server Pages (ASP) code running on Windows Server 2000 and SQL Server 2000.  Yup, that’s pretty old.  I’d like to start developing on the latest technologies, so a quick trip to http://www.microsoft.com/web/default.aspx shows me all of the various technologies that I can chose.  So to start, I downloaded Visual Studio 2000 Express Edition which gives me quite a lot.  It includes a developer IDE (Visual Studio Express) and a database (SQL Server 2008 Express).  You can download each component individually (what a pain) or use a new tools name “Microsoft Web Platform Installer” which will install everything using a single installer (thank heavens).  Using Visual Studio Express, I can build powerful web applications using ASP.NET code.  I can even build a build the application using AJAX since it’s part of ASP.NET. 

Microsoft provides a variety of communities to gain additional knowledge around their technologies.  When building a web application, I can post questions to the Microsoft ASP.NET or IIS.net community.  There are other communities which are cool when it comes to Microsoft providing a bit of a peek inside of the machine as their own staff tells us some juicy details on their technologies that aren’t really available in a technical article via their main development portal, Microsoft Developer Network (MSDN).  Their Channel9 website (when flying on an airplane, channel 9 is the audio feed between the pilots and ground control) provides a number of blog, videos, and podcasts for developers.  The Channel10 feed is really less developer focused, but shows off a lot of the cool stuff that Microsoft is working on.  Keep an eye on both of these since you never know when something is very developer related.

This is great stuff, but it lacks a bit in regards to providing a rich interactive experience for my end user.  This is something that Adobe Flash has, but I don’t want to pick up another development language (Adobe ActionScript).  So in steps in Microsoft Expression which gives me access to design tools for building graphics (Expression Design), Windows Applications (Expression Blend), the web front end to my application (Expressions Web), and even media (Expression Media).  By using Expressions Blend, I can now build rich interactive applications that is built on the Microsoft Silverlight platform.  Silverlight allows you to build applications that are, well, Flash-like, but you can develop it using a Microsoft .NET language and development environment that you’re already familiar with. So you, or your designer buddy, can build the graphics and interactive experience using Microsoft Expression Blend on Silverlight and then you can do the background work (e.g. database access, authentication, etc) using Visual Studio.  Same codebase, same project file, but each role (developer or designer) using what they know best.  This removes the need to throw code and functions over the wall.  I hate it when a web developer create an awesome web page and dumps me the HTML to then slice and mingle into my code.  The first drop isn’t too bad, but when there are HTML changes, I have to then dissect it and figure out what to change in my many components.  If only we could work from the same files! (light bulb) Yes, that’s Microsoft Expression Web (for the designer) and Visual Studio (for the developer).

Now that my application is really taking off, I need more developers, designer, and testers to contribute.  I’ve moved beyond what’s inside of Microsoft Visual Studio Express (oh, did I forget that so far everything I’ve been using is free? Except for Microsoft Expression), so now I need to move to the professional version of Visual Studio 2008.  Yes this costs money, but now I’m doing more serious coding and I’m doing team coding. Lucky for me (I guess), Microsoft has “Visual Studio Team System 2008 Team Suite” which enables an entire development team to collaborate on development projects with Source Control, Testing Suite, Code Analysis, and more included.  Oh, and since I started my code on Visual Studio Express, I don’t have to redo any of my current project in order to quickly take advantage of what Visual Studio Team System has to offer me.

A few months afterwards I was ready to take some of my newly developed web applications onto the web.  The next step was finding a web hosting provider that was able to manage the web platform for me.  There are a number of Microsoft web hosting partners available, so I took a look at http://www.microsoft.com/hosting/findahostingprovider.mspx .  All of these offer just about the same level of support and pricing, but I think I want something that offers a better job at offering me a flexible web platform.  This is where the new Microsoft Azure Services Platform comes into play.  It integrates directly within Visual Studio, provides a staging platform (local and in the cloud) to test my application, and a production environment that allows me to quickly span my application to a number of computer nodes based on my demand.  While that requires me to redesign my application a bit, I’ll put that off for now and concentrate on that for future application.  Hey, maybe my existing application can be deployed onsite with the customer or at a traditional web hosting provider and I can use the Azure Services Platform to provide additional functionality to my customers on-demand.  Again, a thought for a later revision.

So where do I go from here?   Well  since most of my development work is web based, a great event for me to attend will be the Microsoft Mix event which is held in Las Vegas.  Mix focuses on content which focus on the web developer and designer.  They not only show off what’s available today, but also what’s coming out within the next 6-18 months.  It’s very different than the Microsoft Professional Developers Conference (PDC) which focuses on development across all of the various Microsoft products and technologies.  A cool event, but learning how to develop against Microsoft Surface isn’t really on the radar of a web developer.

What’s that PHP dude?  You’re not sure where you fit in (it’s like high school all over again)?  Microsoft has figured out that you most likely build your PHP application on Windows and deploy on Linux.  That’s why they developed “FastCGI” that allows you to still develop on PHP, but run it on Windows…faster! And you can run mySQL on Windows Server 2008 and there is a Microsoft SQL Server 2005 driver for PHP.  So there you go.

Now there you go Ruby on Rails developers, you want some Microsoft love too, right?  (Stop booing and hissing)  Microsoft has developed “IronRuby” which is a Ruby language implementation that will run on the Microsoft .NET Framework.  Thus you’re now part of the Microsoft developer love fest!  Enjoy.

Anyhow, while my progression through the Microsoft development track for web developers seems smooth (but via a long a winding road), it’s still challenging for a developer looking to regain their Microsoft developer edge or a Linux/Java/PHP/etc. developer looking to crack their way into this cool platform.  I could make this problem even greater by taking into account that I can build interactive applications for Windows using Windows Forms, Windows Presentation Framework and leveraging what’s new with Windows Vista or Windows 7.  You want more issues?  How about expanding the scope of my application to leverage the Windows Mobile platform or take advantage of new device platforms like Microsoft Surface (be sure to check this out!).  The good news in all of this is that the core development environment stays the same, it’s Microsoft Visual Studio.  The language, well you get to choose what you like best, so long as it’s a Microsoft .NET Framework based language and there are plenty to go around.

Comments

 

web development india said:

Thanx for nice and informative post, i was looking for it.Really appreciated.............................

February 25, 2009 2:08 AM
 

Jeff Paul Internet Business said:

I find internet marketing the same as marketing a product in the real world. In real marketing one really has to go through different means to promote a brand and product. Same tasks are applied in internet marketing but this can also be done at the comfort of one’s bedroom.

March 1, 2009 11:44 PM

Leave a Comment

(required) 
(optional)
(required) 
Submit

About agramont

Conrad Agramont is focused on .NET Development, Virtualization, Windows 7, Windows Server 2008, Virtual Desktop, and Microsoft Business Productivity (Exchange, Office, Live Communications)
For more information on Conrad and Agramont Services, please visit: http://agramontservices.com
Follow Me On Twitter (@agramont)

This Blog

Syndication

News

Add to Technorati Favorites

Community Tools