32 bit vs. 64 bit: What’s it mean?

If you’re a Windows user, this year, more than at any time in the past, you’ll be presented with the dilemma of deciding whether or not you want to install a 32 bit version of Windows or a 64 bit version of Windows.  Here’s an explanation of what it means:

When a program is executed by the machine’s hardware, the hardware looks at instructions in the software that ask it to store or retrieve data to and from the computer’s memory.  How much data it can store and retrieve in one instruction is called its Data Bus Width.  Most modern PCs have a 64 bit data bus, so they can store or retrieve up to 64 bits in one instruction (or 8 bytes).  Generally, the more bits that can be stored or retrieved at once, the fewer instructions it takes to move a large chunk of data, so it’s generally faster.  This is not a hard rule though.  Sometimes it’s slower.

image

Additionally, the total amount of memory that the PC’s Central Processing Unit (CPU) chip can access is determined by its address bus width.  This doesn’t necessarily have to be the same size as the data bus width.  Most modern processors though, have a 64 bit address bus.  A 32 bit address bus can only access about 4GB of RAM, so even if you added more memory, your processor couldn’t use it.  A 64 bit address buss can access 2^64 bytes of memory (or 18,446,744,073,709,551,616 bytes).  That’s significantly more than any amount of memory you’ll have in a PC for a good long while.  So, with a 64bit address bus, your CPU can access as much memory as you can afford to install.

There are other, individual hardware architecture pieces that can be 32 or 64 bit, but I won’t get into them here.

In short, whenever you have an option, always go with 64 bit, unless, you know for sure, that a critical piece of software you need just won’t work in 64 bit.  But, in that case, I’d recommend still going with a 64 bit OS (Operating System) and using virtual machine software, like Windows XP Mode in Windows 7, or VMWare and install a 32 bit OS inside of the virtual machine, just for that old software that hasn’t been updated.

What’s a Netbook?

There’s been a lot of media hype about so called “netbooks” this past year.  All a netbook is, is a small notebook computer with a slow processor, a slow and low capacity hard drive, a small screen with a low resolution, and usually a scaled down version of Windows (like Windows Starter edition) or with Linux installed.

image

Netbooks are not generally considered “netbooks” unless they’re under $500.  Most of them are right around that price range, but with the severely limiting capabilities.  People get excited about them because they assume that since they’re so scaled back, capability wise, that they’re cheaper than more powerful notebooks.  The truth is, you can get a very nice notebook computer in the $300-$500 price range that will absolutely run circles around any netbook performance wise, storage wise, screen size wise, resolution wise, Windows version wise, etc… etc…

Although, people that have netbooks, seem to love them.  I wonder if they know that they can get a much more power computer at an equivalent (or lower) cost.

There is one legitimate reason I can see for getting one though:  Size.  They’re much smaller than a normal notebook.  So, if a smaller size is more important than all of the other capabilities, a netbook just might be right for you.

Windows 7 Versions

image On 10/22/2009, Microsoft officially released Windows 7 to the general public, but did you know there are 6 different versions (and a 32 bit and a 64 bit version of each of those (except for Starter edition which is 32 bit only))?

So, which do you buy?  First, let’s list what versions are available, then we’ll describe each one:

  1. Windows 7 Starter
  2. Windows 7 Home Basic
  3. Windows 7 Home Premium
  4. Windows 7 Home Premium Upgrade Family Pack
  5. Windows 7 Professional
  6. Windows 7 Ultimate (also called “Enterprise”)

Now, the details of each:

  • Windows 7 Home Starter
    • This is the bottom level, least features version of Windows 7.  This is the first time a starter edition has been made available in the United States.  Starting with XP, then Vista, starter editions were made available to developing nations, but not in 1st world nations.
    • It lacks file encryption.
    • You can only run 3 programs at once (this is real set back).
    • You can’t buy this.  If you want it, you have to buy a computer with it pre-installed.  Most likely, on a netbook.
    • Price:  Unknown, since you can’t buy it directly.  The cost will be factored into the cost of the machine on which it’s installed.
    • Won’t use more than 2GB of RAM.
    • 32 bit only.
    • Won’t support more than 1 CPU.
    • Can’t back up to a network.
    • Can’t create a Home Group (can join only).
    • No multi-monitor support.
    • No fast user switching.
    • Can’t change desktop wallpaper.
    • Can’t connect mobile devices.
    • No Aero glass visuals.
    • No multi-touch capability.
    • No premium games included.
    • No Windows Media Center.
    • No remote use of Windows Media Player.
    • Can’t remote control with remote desktop.
    • Can’t connect to a Windows Domain.
    • No Windows XP mode.
    • No App Locker.
    • Can’t boot from a virtual hard disk.
  • Windows 7 Home Basic
    • Has everything that Starter edition has plus:
    • Can access up to 8GB of RAM.
    • Available in 32 and 64 bit.
    • Supports multiple monitors.
    • Can change the desktop wallpaper.
    • Can connect mobile devices.
    • Only partial support for Aero glass.
    • All other restrictions for Starter apply to Home Basic.
  • Windows 7 Home Premium
    • Has everything Home Basic has, plus:
    • Can access up to 16GB of RAM.
    • Can create a Home Group.
    • Full support for Aero glass.
    • Supports Multi-Touch (you’ll need a multi-touch monitor or multi-touch mouse to use this).
    • Includes Premium Games.
    • Windows Media Center.
    • Windows Media Player remote playing.
    • All other restrictions on Home Basic apply to this.
    • Price: $119.99
  • Windows 7 Home Premium Upgrade Family Pack
    • 1 Purchase allows you to install it on up to 3 home computers.
    • Price:  $149.99
  • Windows 7 Professional
    • Supports everything that Home Premium does, plus:
    • Can access up to 192GB RAM.
    • Supports up to 2 CPUs.
    • Can backup to the network.
    • Can encrypt the file system.
    • Can remote control with Remote Desktop (This is an invaluable feature for remote controlling your home computer from work!)
    • Can connect to a Windows Domain.
    • Contains Windows XP Mode.
    • Can impose software restriction policies on computers in your office network.
    • Price:  $199.99
  • Windows 7 Ultimate (and Enterprise)
    • The only difference between Windows 7 Ultimate and Windows 7 Enterprise is the licensing.  The two versions are identical.
    • This is the “I’ll have it all” version.  In addition to everything all the other versions have, this one also has:
    • Aero glass when you remote control.
    • AppLocker
    • BitLocker
    • Virtual hard disk booting.
    • $219.99

    You can purchase them directly from Microsoft’s web site here, but I strongly advise finding it at a local store.  Most large retailers will sell it below the MSRP (Manufacturer Suggested Retail Price).  Of course, if you’re a business buying multiple copies, you may want the Enterprise licensing, which you can’t get at retail outlets.  You’ll need to continue to purchase through the vendors you’ve been going through.

    I’ve been running Windows 7 Ultimate 64bit since early August.  Read my reviews (pros and cons) and other articles about Windows 7 here:

  • Windows 7 Hype Vs. Reality
  • 13 Things I Like about Windows 7
  • 42 Things I HATE about Windows 7
  • Windows 7 Upgrade Experience
  • Windows 7 reliability down the tubes
  • Windows 7 Explorer: Getting the tree view back
  • Get your Quick Launch bar back under Windows 7
  • What’s wrong with Windows 7’s Task Bar (or “Super …

  • How to Stop SPAM: Expert Tips

    This is the 3rd and most advanced set of anti-spam tips in my 3 part article serious.  The other two are here:

    1. How to Stop SPAM: Basic Tips

    2. How to Stop SPAM: Advanced Tips

    image If you want to stop spam… I mean really stop spam, it will take some set up effort and some mild, continuous effort (very mild), but in the long run, it will be WELL worth it.  You don’t have to be an expert computer user to do any of this, but you do need to follow directions and have patience.  The following expert tips are the 3rd and most advanced part in my 3 part series on putting an end to spam.  These 3 parts are NOT consecutive parts.  You can do any one of the 3, depending on how fortified you want to make your inbox.  The more fortified, the more work.  This part is the most work of the 3 and is also the most effective.  If you follow these steps, it will be a RARE occasion when (or IF) you ever receive another spam message.  I’ve been doing this for years and have only received a small handful (less than 10) spam messages in about 10 years!!!!  THIS REALLY WORKS!!!

    Here we go:

    1. Buy a domain name.  They’re only like $10/year.  If you register for more than a year, the price/year goes down.  I recommend doing so via godaddy.com.  They’ve got good pricing and lots of features.
      1. If you’re not familiar with what a domain name is, that’s the part of a web address that ends in .com or .net or .org (or several others).  For example:  google.com is a domain name.  You can register your own name (if it’s not already taken).  If the name you want is taken, there’s an infinite number of them to choose from.
    2. Use Google hosted domains to set up GMail, but with YOUR OWN domain name (http://google.com/a), so say you registered JohnSmith.com, you can set up your GMail as me@JohnSmith.com, instead of JohnSmith12345@gmail.com.
      1. With your own domain, you still have all the cool, infinite aliases like you do with regular GMail (see How to Stop SPAM: Advanced Tips), plus you’ve got it on your own domain and plenty of other really cool features you DON’T get with regular GMail (did I mention this is all FREE??? except for the domain name registration, of course).

    You can create up to 20 fully loaded E-Mail accounts on your free domain hosted account (each with their own inbox and each with their own log in and calendar, and Google docs, etc…).  If you need more, you can pay a nominal fee to Google.

    Each of these 20 accounts can have up to 25 aliases (in addition to the infinite plus sign (+) on-the-fly addresses I described in How to Stop SPAM: Advanced Tips).  These 25 aliases do NOT have a + sign in them.  So, you could have aliases like me@JohnSmith.com, you@JohnSmith.com, SomeOneElse@JohnSmith.com, etc… all going to the same account.  Remember, each of the 20 real accounts can have 25 additional aliases, which gives 26 ways to reach an account (without using the on-the-fly address scheme).  That gives you 520 unique addresses without using the on-the-fly (+) address scheme.  You can also have any (or all) of these accounts automatically forward their received mail to one account, that way you only have to check ONE account and not 20.

    Utilize the tips in How to Stop SPAM: Advanced Tips with these new addresses on your own domain.

    You can also have a catch-all address for your domain, in case you want to catch e-mail sent to non-existent addresses on your domain.  This is good if you enter a non-existent address on some website and forget to create its alias on your own domain.  You can also set up filters on the catch all, looking for e-mail addressed to certain addresses, and forward it to a certain account.  This is good if you run out of aliases (all 520 available), or if you’d prefer to just set up filters on the catch all instead of setting up aliases.

    One fun thing to do is to set up once you’ve busted one of the web sites as a spammer (and you will), is to set up a filter for the address they’re sending you spam on and have it forwarded to their sales or help e-mail address and automatically deleted from your inbox.  Then, they’re just spamming themselves!  I’ve done this with both BellSouth and Sears.  If you sign up for e-mail notifications through any company, then decide you want to unsubscribe, many of them will intentionally delay it for “7 to 10 days for processing”.  This is a bunch of BS, and they know it.  They get you signed up instantly, they can unsubscribe you instantly.  Set up a filter to their sales and help addresses too.  They’re only annoying themselves.  It might also be fun to have spammer A’s spam forwarded to spammer B’s address and vice versa.

    If you find these tips helpful, please leave a comment and let me know.  Or, if you have tips of your own, let the rest of us know.

    How to Stop SPAM: Advanced Tips

    For BASIC tips on stopping Spam, read this article:

    For expert tips on stopping spam, read this article:

    image The best way to control spam, in addition to the basic practices here, is to have an unlimited supply of E-Mail addresses.  If you have a G-Mail account, you have that.  If you DON’T have a GMail account, I suggest you get one, pronto at http://gmail.com.

    Once you have a GMail account, I recommend to NEVER give out that address.  If you already have a gmail account, you’ve almost certainly given it out. Sign up for a NEW account.  DO NOT give out this address to ANYONE.

    From this point forward, you can make up new e-mail addresses on the fly.  For example, say your e-mail address is me@gmail.com.  Did you know that you can receive e-mail sent to me+whatever@gmail.com, or me+SomethingIMadeUp@gmail.com or anything else, as long as it starts with “me+” and ends with “@gmail.com”.  You don’t have to do anything at all to set this up.  It just works and you have an unlimited number of addresses.

    So, the next part should be pretty obvious already, but just in case you didn’t catch on to what I’m about to suggest, here it is:

    Whenever anyone asks for your e-mail address, make up a new one on the spot.  Suppose you have a friend named John Smith.  You would give him me+john.smith@gmail.com (or something to let you know, when you receive the e-mail, that it’s the address you gave to John Smith).  Whenever you go to a web site that needs your e-mail address, you can enter a new, unique e-mail address that ONLY that web site knows.  For example, say you’re going to www.PossibleScamSite.scam.  You could give them the e-mail address me+possiblescamsite.scam@gmail.com.  I also recommend added a few extra characters that no one could guess like me+PossibleScamSite.junk@gmail.com.  This way, no one can guess it.

    Now, why should you not give out the primary address of me@gmail.com?  Because scammers can look at your address with the plus sign (+) in it and knowing how GMail works, can guess that your real address is me@gmail.com.  You should assume that this WILL happen.

    Now, whenever you get e-mail, you can look at the TO address, and know for SURE who it’s FROM!  Even if they’re trying to fake the “from” address!!!  Also, if you start getting spam on any of your on-the-fly-created e-mail addresses, you’ll know for sure who’s responsible for letting it slip into the hands of spammers.  You can then do two things:

    1. Inform the person (or company) that they let your address slip into the hands of spammers.
    2. Create a filter in your GMail settings to automatically delete any e-mail sent to that on-the-fly address to stop it in its tracks.  If you want to continue receiving e-mail from the original party, you can give them a NEW address.  This may require you logging onto their web site and changing your e-mail address, or if it’s a friend, just give them a new one.

    Why NOT give out your primary address?

    Because, some scammers know about this feature of gmail and will EASILY know what your primary address is and will simply start spamming that, then you’re back at square one.  So, since you don’t give out this address, you KNOW that any e-mail you receive on it is 100% spam.  So, set up a filter in your GMail settings to automatically delete any e-mail sent to the primary address.  (check back here later for instructions on how to do that).

    BEWARE OF REPLYING!!!!

    If you receive an e-mail message sent to one of your made up addresses and you wish to reply, note that your reply address will be your PRIMARY address… you know, the one that you’ve set up a filter to delete any e-mail sent directly to it?  This is bad because if THEY reply back, they’re now sending it to the WRONG address and your filter automatically deletes it!  You need to configure your GMail to automatically change your reply-to address to the same address that the e-mail was sent to.  This requires a moderate amount of set up for each reply-to address you want to use.  I recommend doing this when you plan on replying, and not before hand for each and every on-the-fly address you’ve created, just to cut down on the amount of work.  (Check back soon for instructions on how to do this).

    Now, you’ve got the following advantages:

    1. Your spam will drop to virtually zero (if not, completely zero!).
    2. Regardless of any forging attempts by the sender, you’ll know who’s responsible for leaking your address because of the TO address you received it on.
    3. In the extremely rare event that you actually get spam, you can stop it from that source immediately.
    4. You can identify which of your friends’ computer’s is infected with a spam virus and inform them, which will reduce the spread of the virus, help them clean up their computer, and reduce more spam to other people.

    For expert tips on stopping spam, read this article:

    If you find these tips helpful, please leave a comment and let me know.  Or, if you have tips of your own, let the rest of us know.

    How to Stop SPAM: Basic Tips

    We all hate spam, especially those of us running our own E-Mail servers.  Here are some important tips for you, as a user, to stop that unwanted, unsolicited E-Mail:

    image

    Here’s a real life example of how I used this technique to just busted Box.net for releasing my e-mail address to spammers:

    First, some basics:

    1. Don’t ever enter your E-Mail address on any web form, unless you do the following:
      1. Find and READ their privacy policy (and you understand it and have determined that they actually are promising to never send you unsolicited e-mail and promise to never give your address or sell your address to anyone for any reason).  Note that MOST privacy statements do NOT state that they’ll do this.  Many of the privacy statements explicitly state that they WILL give our your E-Mail address.  This is why you HAVE to read it!!!!
      2. Is there a good reason for you to enter your e-mail address on that web site?  What are you gaining by giving your e-mail address to this site?  Is it worth the risk of spam?
      3. Have you ever heard of this site?  Is it reputable?  Do you trust them?  Are you SURE???
      4. If you’re signing up for something you really need, like online access to your bank, your utilities providers, etc…, it’s probably OK.  You should minimize or eliminate handing out your e-mail address on any other sites.
    2. If you participate in social web sites like Google+, Facebook, or MySpace, MAKE SURE you’ve set all of your privacy settings so that all your information is NOT available for ANYONE, except your direct friends.  DO NOT make your information available to friends of friends, and CERTAINLY not available to the general public.
    3. If you ever post a message in an online forum:
      1. DO NOT put your real e-mail address on there.
      2. If the online forum requires a registration first and requires your real e-mail address, consider NOT signing up.
    4. Never post your e-mail address on anything that’s publicly available on the internet, like job postings, resume posting, personal web sites, local web sites like churches, scouts, schools, etc…  Just because those sites are intended for local consumption doesn’t mean that the whole world can’t see it, and trust me, they DO!  Spammers have automated programs that scan EVERY PAGE of EVERY WEB SITE harvesting e-mail addresses.
    5. Ask your friends and family to NOT forward your e-mail to anyone else (like jokes and viral e-mail).  When they forward it, your e-mail address goes out to them all.  Most of these viral messages get forwarded to hundreds, if not thousands of people before your address is finally removed (if ever).  ANY of these people that have a virus that scans for e-mail addresses in their incoming and outgoing e-mail WILL harvest YOUR e-mail address.  Probably about 1/2 of all computers “out there” are infected.
    6. NEVER enter your e-mail address on an eGreeting card site.  Just DON’T use these sites… EVER!
    7. Ask your friends and family to never enter your e-mail address on any of these sites.
    8. Ask your friends and family to NEVER enter your e-mail address on ANY WEB SITE FOR ANY REASON!!!!  They think they’re doing you a favor by letting that web site send you a link to a page, but all they’re doing is adding your address to their spam list.  If they want to refer you to a web page, ask them to e-mail you the link directly from their own e-mail or NOT AT ALL!
    9. Remind your friends and family, AT LEAST once every 6 months about 7 & 8.
    10. If you leave a comment on a news story or a product review, make sure your e-mail address isn’t published with it.
    11. Don’t display images in e-mail.  Most mail programs (including webmail web sites) give you the option of NOT displaying images in e-mail where the image isn’t actually included in the e-mail, but is instead loaded from a website from within the e-mail when you view it.  The main reason companies send you e-mail with web link references to images, instead of embedding the images, is because they use unique image names that identify YOU when your e-mail program downloads them from their server.  Once that happens, they know YOU have just manually opened and viewed the e-mail.  If it’s spam, you’ve just verified to the spammer that your inbox is an active inbox.  Now you’re going to get MORE SPAM!!!!

    For even MORE effective tips, check out this article:

    For expert tips on stopping spam, read this article:

    If you find these tips helpful, please leave a comment and let me know.  Or, if you have tips of your own, let the rest of us know.

    “Welcome to Windows Media Player” on Windows 7

    This is not a “complaint’”, but merely a report of one of the many strange things going on with Windows 7…

    Long after I installed Windows 7 (2 1/2 months after installing it), I opened a wav file from an e-mail message (it’s a voice-mail message via my VOIP provider), I got the following dialog box that’s only supposed to happen the first time you run Windows Media Player:

    image

    (BTW, you should choose “Custom settings” and ensure that “Send unique Player ID to content providers” is unchecked as well as “I want to help make Microsoft software and services even better by sending Player usage data to Microsoft”.  I also recommend that under “History”, you uncheck everything.  You don’t necessarily want anyone that sits at your computer to be able to browse back at everything you’ve been watching or listening to.  Click on the cookies button and on the privacy tab, turn on the pop-up blocker and under InPrivate, check both boxes.)

    I use Windows Media Player daily, so this is definitely not the first time I’ve run this… It’s more like the 1000th time.  Windows 7 seems to have a considerable amount of glitches in it.  Since it’s new, that’s to be expected.  This is not a complaint, just a documentation of some of the strange things that have been going on in Windows 7.  If anyone’s interested, this is from Windows 7 Ultimate 64bit Version 6.1.7600 with all of the updates as of 12:13 PM 10/23/2009 Eastern Time, with the exception of one pending “Microsoft – Input – Microsoft USB IntelliMouse Optical (IntelliPoint)” driver update and 34 optional foreign language packs.

    image

    I also viewed my update history and see no updates relating to Windows Media Player in the past week.

    Text from the dialog box to help with web searches:

    Choose the initial settings for Windows Media Player.  You can change these settings in the Player later.

    Recommended settings

    Make Windows Media Player the default program for playing media, automatically download usage rights and media information to update your media files, and send usage data from the Player to Microsoft.  Set Media Giude as my active online store.

    Custom settings

    Customize privacy, playback, and online store settings.

    Usage data will be sent to Microsoft if you use recommended settings, but the information will not be used to identify or contact your.

    To learn more about Recommended settings, read the Privacy Statement online.

    Why is Click-Once Technology Important?

    Before I can answer this question, first let me explain how regular software distribution is done.  BTW, the context of this discussion is in regards to Windows EXE applications (not web applications).  I mention that because this deployment technology is web based, but what’s being deployed is an actual Windows executable.  A web browser is only involved during the launch of the application and not during the execution of the application.

    How Windows software is normally deployed:

    Without Click-Once technology, to deploy a Windows executable over the internet, you first create the EXE file and any DLLs and config files that go along with it, then package them up in an .MSI installation package file or maybe a .ZIP file.  You upload that file to a web server, then provide a web page with a link to the file (or distribute a link in e-mail).  The user then clicks the link and uses the browser’s capability to download and save or download and run the file.  Then the installation program is launched and the user answers the questions in the install options.  When that’s done, a new entry exists in the installed programs (so the user can go to the control panel and uninstall it), the files are installed usually under c:program files, or c:program files (x86).  An icon is optionally installed on the desktop, the start menu, and/or the quick-launch bar.  Entries are added into the system registry and potentially, DLLs are installed in the machines GAC (Global Assembly Cache) and/or COM components are installed machine-wide.

    The next part becomes more difficult:  Updates:

    If you find bugs in your software that you’ve deployed or have added new features, how do you distribute the fixes to your user base?  How do you notify them that there’s a fix available?  There are many solutions, but none of them are great.  They usually require some way to contact the users and those methods inevitably leave some users out because they can no longer be contacted.  Upgrading over an existing installation is difficult, especially if you are many versions into the life of the product, there are multiple versions to contend with.

    Security:

    Unless you sign your distribution, your users can’t be guaranteed that what they’re downloading is what you published.  Imagine a hacker got onto your web server and replaced your software with malware or just replaced one of the files, still turning your software into malware.  How do you ensure that doesn’t happen?

    Problems encountered with deployment:

    1. Creating an installation package (not too difficult, usually, but can be, and must be done if there’s anything more than a single .EXE).
    2. Difficult to ensure that what’s being downloaded by the user is the same thing you put there (like backups, people are generally not concerned about this type of hack until it happens).
    3. User’s can’t be sure that what they’re downloading is what you deployed (no standard way).
    4. Difficult to prevent someone from stealing your software and publish it on their own server (and a modified one at that).
    5. When the user installs, machine wide changes are made, even if it’s just adding uninstall capability to the control panel.
    6. Uninstalls can go bad, making uninstalling or updating virtually impossible without a significant amount of tedious work.
    7. Updating software becomes more difficult as more versions are released.
    8. Difficult to ensure the user is running the latest version.
    9. Difficult to prevent users from running old versions. (Maybe you’ve changed a web service API or removed an old URL, or some old data structure is now incompatible with the latest version, etc…)

    How does Click-Once deployment make this better?

    All of the problems above are solved with Click-Once deployment.

    Distribution is nearly identical.  You deploy your software to a web server and provide a link on a web page (or e-mail the link to users).  But, to deploy, you do it directly from Visual Studio by right-clicking your project and choosing “publish” (This resolves issue #1 above).  Visual studio prompts you for a certificate to use to sign the distribution (this resolves issues #2, & #3 above).  It then prompts you for a file share or FTP path to publish to.  It also prompts for the URL from which the users will launch the application.  This makes it very difficult for theft (#4 above).  With this, the Click-Once run time on the user’s machine will ensure that they’re launching it from the URL you provided during deployment.  If it’s not on the URL you specified, Click-Once will refuse to run the application.

    When the user runs the application (always done via a URL to your site), the application is downloaded to something similar to the Internet Cache folder… Call it a “Click-Once cache”.  No machine changes are made, unless your application has dependencies like DirectX, XNA, etc… that need to be installed (more on that later).  The files are simply copied into the cache folder.  This resolves issues #5 & #6 above.  Subsequent runs will run directly from the cache, but will check online for a newer version and according to your settings when you deployed, will either force a download of the latest version, or allow for 1 back level version to be run.  This resolves issues #7, #8, & #9 above.

    Regarding dependencies:

    One exception to the advantage of not making any machine wide changes are when you’re deploying an application that has dependencies on other technology, such as DirectX, XNA, etc…  If your application requires those, obviously, the users machine must have them installed.  With Click-Once deployment, you can indicate in your deployment whether you want to include the dependencies with your distribution, or have the Click-Once technology on the user’s machine go and get those dependencies from the vendor’s web site and install them before the first run of the application.  The effort on your part is to simply check a check box on or off.  There is a optional web page produced when you deploy your Click-Once application that will list all of the dependencies so the user knows what’s required and what may be installed, along with a “Run” button that the user can click to launch the application (which also checks the user’s machine for the dependencies).

    You also have the option of actually installing it locally (putting it in c:program files, adding it to the list of installed apps that can be uninstalled, adding icons to the start/programs menu, the desktop, and/or the Quick-Launch bar.

    Even if you don’t want it installed locally (usually the preferred option), you can still optionally have icons placed in the start/programs menu, the desktop, and/or the Quick-Launch bar.  These icons simply point to a file in the deployment on your web server.  This gives the user the user experience as if it were installed, but it always goes online to look for the latest version and runs that if it’s available, otherwise, it’ll run the one from their local cache.

    What is XNA?

    XNA is a game development platform from Microsoft.  The letters “XNA” don’t stand for anything… They’re not an acronym.

    Using XNA technology, you can write a game for Windows, XBox 360, & Zune.  A single project can produce BOTH an executable for Windows AND and XBox 360 game.

    XNA supports both 2D and 3D objects in games (both at the same time, if you like).  It has support for networking built in.  “Games for Windows” is complementary technology that XNA also supports.  By simply adding a single line of code, your XNA game becomes a “Games for Windows” game.  “Games for Windows” games have a very slick user interface built in for logging onto your Games for Windows account (which is also the same as your XBox Live account).  You can add friends and send messages and compete against friends online… including your friends on XBox 360!!  That’s right, your game for Windows and your game for XBox 360 can have users competing against each other, in real time, on both platforms!

    XNA is not a single product.  Developers download the SDK for Visual Studio.  They can then deploy their Windows games via Click-Once technology, which is quite awesome.

    Game players for Windows can simply click a URL to run a game, but this game is NOT a JavaScript for Flash based game… It’s a real, hardcore Windows game that runs on Windows (not the browser).

    To deploy a game to the XBox 360, developers pay an annual $99 fee and can participate in forum discussions with their peers, submit games for testing and approval, then get their games published on the XBox Live marketplace.  They set their own prices on their games using Microsoft Points (meaning they sell their game to users and users pay with their own Microsoft points, which are then converted to real dollars and sent to the developer).  The price options amount to about $2.50, $4.00, $10 and $15, if I recall correctly.  The developer keeps 70% of the income and Microsoft keeps 30%.  But, when you sell it as a Windows game, you set your own price, sell it however you like (on CD, as a download, or as a Click-Once deployed app) and you keep 100% of the proceeds.  The only time Microsoft takes a slice is if you sell it on the XBox Live marketplace.  (Update):  Microsoft has started a new app store for Games for Windows, so you now have the option of selling your Windows game through there too, but of course, Microsoft will take a slice.  You still have the option of marketing and promoting and selling all on your own, outside of the Market place and you’re not required to sell your Windows version through Microsoft’s app store… It’s just an additional option for you (you can sell it both by yourself AND in the app store, if you like).

    I attended an XNA session at CodeStock 2008 and the same one (for a refresher) at CodeStock 2009.  You can read my review from the CodeStock 2008 XNA session here.

    Shortly after the 2008 session, I began developing a game with my kids.  We worked on it in earnest for a few months, but have let it side idle, with only a little bit of work since.  When we complete it, we’ll be publishing it on XBox Live Marketplace AND on our own website for Windows players.  I’ll update this article when it’s released.

    Related Reading:

    Beware of cheap XBox 360 consoles!
    CodeStock 2008 XNA

    What is Click-Once technology?

    “Click-Once” is a deployment technology created by Microsoft.  It makes deploying Windows software drastically easier for both the writers of the software and for the consumers of the software that will run it on their machines.

    Here’s how it works from the distributor’s end (I’ll explain how it works from the consumer’s end in a moment):

    The distributor of the software deploys their project directly from Visual Studio to a web server (any web server… not just IIS).  Several files are created in the process, including a launch page with a run button (that doesn’t have to be used), a file ending in “.application”, a subfolder with the executable and associated DLLs.  All the files are digitally signed by the distributor for security and the whole thing is versioned and GUID’d.  The distributor has the option of letting the software be run straight from the URL or to let it be installed locally on the user’s machine.  They also have the option of letting it check for newer updates every time the user runs it and additionally can force a refusal to run unless it’s the latest version on the server.

    From the user’s end:

    They will either use the “run” button on the publish.htm file that gets generated during the deployment which then redirects to the “setup.exe” file on the server.  In that case, the setup.exe file is downloaded like any other file and the browser gives the user the option to save or run.

    Or they’ll click a URL that reference the “.application” file on the server, or they’ll double-click an icon on their desktop which references a “.application” file on the server.

    In the case of the .applicaton file, what happens next is the Click-Once technology activates from the browser and reads the .application file (which is a manifest XML file explaining where the content is as well as a hash to make sure it hasn’t been modified since it was deployed).  It then downloads another manifest XML file from the application’s content folder on the server and then downloads and attempts to run the EXE, but not without asking the user’s permission first, as well as displaying the signed certificate information to the user.  The user has the option of accepting or rejecting it.

    From the user’s point of view:

    The user clicks a link, is prompted if they want to run it, then it just runs.

    Benefits of Click-Once for a software distributor:

    • Rapid deployment.
    • Control over whether users can:
      • install it locally to launch locally (with or without checking for newer versions)
      • only launch it from the URL.
      • have to run only the latest version.

    Benefits of Click-Once for a user:

    • Easy launching (simply by clicking a URL).
    • Very strong security:
      • Always given the option to accept or deny a certificate.
      • Always given the option to allow it to run at each launch.
      • Zero footprint… There’s no “installation” as most software.  No system settings can be changed during the simulated “install”.
      • Can be sure they’re always running the latest version.
      • It’s .NET software, so they have the ability to control what resources the EXE can have access to on the machine (through a control panel applet).

    An application can also be deployed as a Click-Once application for CD or DVD distribution.  In that case, the end user uses the CD or DVD in the same way as a web site.

    For an article directed at why you would use this (if that wasn’t answered here), click here

    For more information, directly from Microsoft, go here.