Heroes Happen Here

It’s going to be a big year for Microsoft and the whole .net army of developers that Redmond has created!  This is the year of Microsoft, love them or hate them, you are going to see some things you never thought possible start coming from this software development giant!  There are three Microsoft Developer and IT events this year, PDC, MIX, and Tech Ed!  Today, Microsoft announced their plans to buy Yahoo!  Silverlight will be powering one of the most Media rich sites EVER created for the Olympics, Big year indeed!

Make sure you check out Heroes Happen Here in whatever city you are in!

Also, there is a pretty cool comic strip from Heroes Happen Here, pretty well put together software development comic!

http://www.microsoft.com/heroeshappenhere/comicviewer/default.html

I will be attending the Heroes Happen Here event in Winnipeg.  Hope to see fellow IT and Developers there!  Make sure you register for your respective city! Even if you are on a Microsoft developer, make sure you come out and see what Microsoft has been up to, you might actually be impressed!

Canadian Heroes Happen Here:
http://www.microsoft.com/canada/heroeshappenhere/default.mspx

United States Heroes Happen Here:
http://www.microsoft.com/heroeshappenhere/default.mspx

Just for attending you will get free copies of Windows Server 2008, SQL Server 2008, and Visual Studio 2008.

 

Heroes Happen Here

Silverlight is coming!

SilverlightIf you live in Winnipeg, make sure you check out my presentation on Microsoft Silverlight at the Winnipeg .net Users Group!  What else are you going to do in -30 degree weather!  This month I am going to try and shake things up a bit by combining some really cool technology, to make an extremely impressive Silverlight application.  As some of you may have read already on TechCrunch, Silverlight just had a huge win at CES when it was announced the weapon of choice to develop an extremely kick ass site, would be Microsoft Silverlight.  That’s gutsy!  Your talking hundreds of thousands of users accessing content, 2,200 hours of live video coverage, and an additional 3,000 hours of on demand videos.

I’ve been playing around with WPF, WPF/E (Silverlight) for some time now, and I love the possibilities.  The key’s to its success are mainly developer adoption, and powerful systems. I will leave the getting powerful systems up to Moore’s Law, however, I am going to do my best attempt over the next few months to show developers, and artists, the power of Microsoft Expressions, and all the goodness that WPF and Silverlight bring to the table!  This will be the first run of a pretty heavy technology intensive demo, so if you come out, make sure to be nice!

What I will be showing is nothing you haven’t seen hyped before.  However, during this presentation, we will build the application, run the application, and actually see it working in front of you.  I will be taking the same principles that Johnny Lee and Brian Peek came up with, and applying them to WPF, Silverlight, and real world applications. 

You can register for the event here.

Below is the official Presentation details!  Hope to see you all there!

Featured Product/Topic: Silverlight
Recommended Audience: Software Developers
When: January 29th, 2008 5:45 PM – 8:00 PM
Welcome Time: 5:15 PM Central Time

From Movies to The Real World: Silverlight is here!

Join us on a tour of one of the most exciting, graphic intensive application development platforms to come out of Microsoft in years.  Don’t expect to see hello world or death by PowerPoint during this world wind tour through Visual Studio.net 2008, WPF, Silverlight, Expression Blend, Expression Design, Expression Media, and XAML.  This presentation will have you energized and pumped to expand your horizons. Closing the night, users will be allowed to try the application built during the presentation, and believe me, you will want to try this!  If you watched in awe as Tom Cruise navigated a futuristic 3D interface in Minority Report, you will leave this session running home (or driving in this cold) and loading up your development weapons of choice.

Minority Report Display

10 Must Have Web Development Firefox Extensions

FireFox

Firefox is the web developers browser of choice.  It allows you to add extensions extremely easily that make the browser its an extremely powerful development tool!  We have scrounged the web and found the 10 must have web development Firefox extensions. 

If you have not installed these tools, and you are a serious web developer, you need to install them right now!  Trust us, you will love these tools, and shave hours off of your web development time a week!

Web Development Tools You Must Have

Web Developer Extension
The Web Developer extension adds a menu and a toolbar to the browser with various web developer tools. It is designed for Firefox, Flock, Mozilla and Seamonkey, and will run on any platform that these browsers support including Windows, Mac OS X and Linux.

ColorZilla
With ColorZilla you can get a color reading from any point in your browser, quickly adjust this color and paste it into another program. You can Zoom the page you are viewing and measure distances between any two points on the page. The built-in palette browser allows choosing colors from pre-defined color sets and saving the most used colors in custom palettes. DOM spying features allow getting various information about DOM elements quickly and easily.

Greasmonkey
Greasemonkey is a Firefox extension that allows you to customize the way web pages look and function. Hundreds of scripts are already available for free. And if you’re the tinkerer sort, you can also write your own.

HTML Validator
HTML Validator is a Mozilla extension that adds HTML validation inside Firefox and Mozilla. The number of errors of a HTML page is seen on the form of an icon in the status bar when browsing. The details of the errors are seen when looking the HTML source of the page.

FireBug
Firebug integrates with Firefox to put a wealth of web development tools at your fingertips while you browse. You can edit, debug, and monitor CSS, HTML, and JavaScript live in any web page.

CSSViewer
CSSViewer is a simple Firefox extension used to get the CSS properties of an element in a web page. Made with XUL, JavaScript and CSS.

Aardvark Firefox Extensions
Aardvark is a CSS debugger with keyboard modifiers. It displays items on the page such as the element name and id or class name of a selected element.

Link Checker
Check web page links at a glance with simple color coding. Ditch those massive listings of bad links that provide no context and add LinkChecker to your arsenal of web development tools today.

MeasureIt
Draw a ruler across any web page to check the width, height, or alignment of page elements in pixels.

IETab
This extension is derived from the famous extension IE View but much different.
While IE View always open IE-only pages in a separate Internet Explorer window, IE Tab can view them in a Mozilla/Firefox tab.

Bonus Search Engine Optimization Extensions

SEOQuake
Seoquake is a powerful, Mozilla Firefox and Internet Explorer compatible, tool aimed at helping web masters who deal with search engine optimization and Internet promotion of web sites. Seoquake allows to obtain and investigate many important SEO parameters of the Internet project under study on the fly.

Alexa Sparky
Alexa Sparky will show you at a quick glance what the current web sites trend in popularity is on the Internet.  It also gives you the option to view traffic details on any web site or web page, as well as viewing similar web sites to the one you are on at the click of a mouse.

 

ASP.net Performance Tips – A Follow Up

ASP.net Performance Tips

Great Response from Readers!

Hats off to all the great responses and discussion to this post on asp.net performance enhancements!  I wanted to take some time to clarify some comments to ensure you that I am indeed not crazy ;)   The unfortunate side of Blogging is that you can’t go into too much detail in certain cases, otherwise every post would take days to write and explain every angle, and cause reader’s (like you right now going, “get to the point!”) to fall asleep and tune out. 

Hence we will be launching a Wiki in the next few days to go into more detail on topics, and leverage our awesome reader’s knowledge!  We also have the forums up and running right now, so feel free to take your discussions there!

If you haven’t read the original article, make sure you check it out, 20 Tips to Improve ASP.net Application Performance!

Tip Number 3: Avoid Server-Side Validation

By no means am suggesting we turn off server-side validation.  Some users have JavaScript turned off, and will not be able to use your site correctly if you rely heavily on JavaScript.  Without Server-Side Validation, bad data can get to the server!  A great approach to take here is use both.  By using both, you ensure that only correct data flows into your database! 

There are also certain situations where your validation requires database reads to find out if data is valid.  Here of course is another ideal use of Server-Side Validation.  Another side note by the way is if your database is structured correctly, it should hopefully not allow bad data to be entered into it.

The main point I was trying to make is educate a few people that purely use Server-Side Validation!  Put some resources on the client, and everyone will jump for joy!  If you have an application that relies on Server-Side Validation, and you add Client-Side, you will notice a dramatic speed improvement!  I hope this clears it up!

Tip Number 6: Server.Transfer vs. Server.Redirect

The reality here is the article was based on “Performance”.  However to dive into more details, there are actually three distinct methods of transferring data in ASP.net.  Response.Redirect, Response.Transfer, and the new Cross-Page Posting available in ASP.net 2.0 and greater. All of these methods have positives and negatives.  Just like most things in life, you will need to decide the best approach for your given application.  Let’s take a look quickly at some of these pro’s and con’s

Response.Redirect

Without getting into to much detail, this approach is heavy and “slower” because it requires a roundtrip to the server instead of just telling the user, “Go here”.  It also has restrictions on the length of your query string, and gives a lot of “visibility” to the user either in the URL

It is the simplest approach however, with the least ”hack” around needed (think back button issue that Mike Pope talked about, Thanks Mike!).

Response.Transfer

Some of you might not know this if have not completely read up on ASP.net 2.0, there are definitely some awesome improvements in 2.0!  Using the new PreviousPage.FindControl, you can actually sift through the data being received.  Works very well!  There are some “tricks” to this approach, but I will go into it in later articles, and possibly on the Wiki.

So Response.Transfer is no question faster!  It does not include the roundtrip, however, the browser thinks it is still on the same page or form, therefore, your back button wrecks havoc on this implementation, however it can be handled if your are careful/skilful.  So this approach is faster, but has some issues that you should be aware of!

Cross-Page PostBacks

A new feature in ASP.net 2.0 is Cross-Page PostBacks that work really nice with forms.  Just setting the button’s PostBackUrl property to the new page makes the magic happen.  It’s very easy to check to see if there was data sent by checking the PreviousPage.IsCrossPagePostBack

So what do you suggest?

Use what you are most comfortable with, and what best suits your environment.  However just remember that:

  1. Response.Redirect is slower and will show QueryString data in the URL.
  2. Response.Transfer is fast, however creates an “invalid” browser history.
  3. Cross-Page Postbacks work well, however do not work well with Server-Side only validation.

Anything else to mention on this topic?  Oh yes, SEO optimization.  I would use neither of these methods if I’m moving pages, servers, etc.  For those cases, use a 301!  What is a 301?  It’s basically a way to tell search engines and other browsers that a resource has moved and the links should be updated.  Using this method, you will not lose the Google Juice (mostly), and can expect search engines to update their databases in a few days!

I love how the quiet ASP.net developers pitched in and brought their valued feedback, opinions, and criticisms!  That’s what the Real World is all about!  Keep it coming!

 

Ultimate Server-Side Web Development Cheat Sheets

Even before the other Ultimate Web Development Cheat Sheet Guide became popular on Digg and del.icio.us, I was working on another version focused around Server-Side technologies.  I was going to add them into the other list, but removed them.  I wanted to have a list that was more focused, and only had the best Server-Side Cheat Sheets.  Also please note while there are hundreds of cheat sheets for each area, I try and only list at most the top 10 in each area, otherwise it makes the guide useless with repeated data. This makes these guides much more useful than the old guides out there.

PHP

Jack Daniel’s PHP Cheat Sheet (HTML)

Interactive PHP Cheat Sheet (HTML)

Blue Shoes Developer – PHP Cheat Sheet (HTML)

PHP Cheat Sheet (HTML)

PHP Cheat Sheet (HTML)

Regular Expressions Reference Sheet (HTML)

Tiger PHP Cheat Sheet (PDF)

PHP 4 Reference Card (PDF)

PHP Templates Cheat Sheet (PDF)

Ruby

Ruby Cheat Sheet (PDF)

Jack Daniel’s Ruby on Rails Cheat Sheet (HTML)

Textmate Rails Cheat Sheet (PDF)

Zen Spider Ruby Quick Reference (HTML)

Rails Reference 1.1 (PDF)

Rails Active Resource Cheat Sheet (PDF)

ActiveRecord Relationships (PDF)

Rails Strings Cheat Sheet (PDF)

What Goes Where Cheat Sheet (PDF)

Ruby on Rails Cheat Sheet (PDF)

Ruby on Rails Form Helpers (PDF)

Perl

Perl Quick Reference (PDF)

Perl Cheat Sheet (HTML)

Perl 5 Cheat Sheet (HTML)

Perl Testing Reference Card (PDF)

Perl Quick Reference Card (PDF)

ASP.net

ASP.net Page Lifecycle Diagram (PNG)

.NET Format String Quick Reference (PDF)

ASP.NET 2.0 Page Life Cycle & Common Events (PDF)

Visual Studio 2005 Built-in Code Snippets (C#) (PDF)

Visual Studio 2005 Default Keybindings C# (PDF)

Visual Studio 2005 Default Keybindings VB.net (PDF)

ASP.NET AJAX Client Life Cycle & Events (PDF)

VB.net and C# Comparison (PDF) (Word)

Casting in VB.net and C# (HTML)

ASP.net Basics (PDF)

Python

Python 2.4 Cheat Sheet (HTML)

Python 2.2 Quick Reference (HTML)

Python Cheat Sheet (HTML)

Python 101 Cheat Sheet (HTML)

Python PHP Cheat Sheet (PDF)

Python Quick Reference (PDF)

ColdFusion

ColdFusion Reference Sheet (PDF)

ColdFusion Cheat Sheet (HTML)

ColdFusion Quick Reference (HTML)

Java / JavaServer Pages

JavaServer Pages Syntax (PDF)

JSP 2.0 XML Cheat Sheet (HTML)

Java Cheat Sheet : Java Glossary (HTML)

Java Reference Sheet (PDF)

MySQL

Jack Daniel’s MySQL Cheat Sheet (PDF) (PNG)

MySQL Reference Card (PDF)

Neal Parikh MySQL Cheat Sheet (HTML)

MySQL Reference Sheet (PDF)

Handy Cheat-Sheet of MySQL Commands (HTML)

MySQL Commands (HTML)

SQL Injection Cheat Sheet (HTML)

SQL Server

Jack Daniel’s SQL Server Cheat Sheet (PDF) (PNG)

A to Z SQL Server 2005 (HTML)

SQL Injection Cheat Sheet (HTML)