Chris Bowen's Blog

Development Practices, Tools, Technology, and Community

Posts
  • Chris Bowen's Blog

    XBox 360 News

    • 5 Comments
    Plenty of news has been coming out recently about the XBox 360.  Here's a brief summary:
      Which Console for You?
    • The XBox 360 Elite has been officially announced:
      • "Xbox 360 Elite is the newest addition to the Xbox family that includes a huge 120GB hard drive (the largest available for any gaming console), a high-definition multimedia interface (HDMI) cable, and a premium black finish. The Xbox 360 Elite also includes a black wireless controller and black Xbox Live® headset."
    • Halo 3 News:
      • The Halo 3 Beta period has been announced as May 16th - June 6th.
      • A few weeks old, but Halo 3 packaging was unveiled as well - Standard, Limited, and Legendary.  Paul Thurrott has some good pictures.
    • Major Nelson (IRL Larry Hryb) posted word of:
      • The next dashboard update (with Windows Live chat integration) and...
      • A QWERTY keyboard input device coming this summer.  The best part is that it will plug directly into the bottom of existing XBox 360 controllers.
      • [Full details of both]

    Personally, I'm counting down to my coming birthday when I hope (nudge, nudge) that somebody drops a copy of Guitar Hero II into my greedy mitts...

    -Chris

  • Chris Bowen's Blog

    Windows 7 Incubation Week Boston – October 5

    • 0 Comments

    MSBizSparkIncubationWeek

    After other successful Microsoft BizSpark Incubation Weeks, it’s good to have another coming to the Boston area.

    Microsoft BizSaprk Incubation Week Boston will be from October 5th through the 9th at the Microsoft Technology Center in Waltham, MA.

    BizSparkBanner This will be an opportunity for BizSpark startups to learn about and develop with new Windows 7 features, get coaching from guest speakers and experts, and generate some awareness for your efforts.

    If you’re interested, there’s a brief window of opportunity remaining to nominate your team to participate, so contact Sanjay Jain right away.  See Sanjay’s post for full details.

    -Chris

  • Chris Bowen's Blog

    New Windows 8 “Camp in a Box” and Virtual Labs

    • 0 Comments

    Two new resources have just been published to help you learn about Windows 8.

    Windows 8 “Camp in a Box”, RTM Edition

    [Update 10/1/2012 – Camp in a Box RTM version]

    Windows 8 Camp in a BoxRecently updated for Windows 8 Release Preview, the Windows 8 “Camp in a Box” includes a variety of content from the Windows 8 Developer Camp event series that’s now underway:

    • Session Slides – 20 presentations covering development and design topics
    • Hands-on Labs – Available in C# and JavaScript, covering topics such as touch, views, contracts (search/share), media, state, settings, tiles & notifications, and more.
    • Samples – Including HTML, XAML, and C++ versions of the “Contoso Cookbook” Metro style app as well as an HTML “Platformer” game.
    • Resources – Links to some useful sites

    After installing, you’ll find a “Default.htm” link on your desktop. Open it to get launch a content directory:

    ContentsLabsSamplesPresentationsResources

    Of course you can also open the directory where you installed the Camp in a Box, but the HTML interface is a friendly way to begin exploring.

    Windows 8 Release Preview Virtual Labs

    [Update 7/23/2012 – JavaScript labs now available!]

    Windows 8 Release Preview Virtual LabsThe “Camp in a Box” is great for downloading labs to work on your own machine, but there’s now another option as well...

    The Windows 8 Virtual Labs let you dive in and learn about Windows 8 development without having to install everything on your own machine.  It uses an ActiveX control to let you connect to a remote server where everything is configured and ready for you.

    You can work (in 90-minute segments – and yes, you can get more as you need) on this set of C# labs, all updated for Release Preview:

     

    There are now 8 JavaScript labs available as well:

     

    Enjoy!
    -Chris

  • Chris Bowen's Blog

    Game Development with Construct 2 – Templates for Windows 8

    • 2 Comments

    Construct 2As you consider your Windows 8 game development options, have a look at Construct 2 by Scirra.  It helps you create games quickly, providing a visual, no-coding-required experience supporting a number of platforms, including the Windows Store and Windows Phone.  (And behind the scenes, games are based on JavaScript and HTML5!)

    Getting Started with Construct 2

    There’s a free version of Construct 2 available (just read the terms so you know what’s supported) and plenty of resources to help you learn:

     

    Game Templates

    When you create a new project, you’ll see many helpful options, from simple examples to full games with walkthroughs.  Nine of these (named “Template: …”) are game starters, including platformer, driving, turret defense, and other types of games.  You should try each of them and look through them to see how they work.

    Windows 8 Game TemplatesConstruct 2 supports publishing Windows Store games, but you need to support a few things, so I’ve extended the nine included game templates with features like the Windows 8 object, a “Pause" layer, snapped view support (with game pause), touch support, and some project property updates.

    Game Templates for Windows 8

    With thanks to Scirra, here are the 9 templates, available on GitHub:

     

    Download all templates as a ZIP, or get individual templates below, just click the link and choose “View Raw”, which will let you save the template.

    Game Description Screenshot
    Auto-Runner 
    (click “View Raw” and save)
    Side-scroller with player constantly running, having to jump between platforms. Auto-Runner
    Driving Game
    (click “View Raw” and save)
    Top-down driving around a track with bordering objects. Driving Game
    Infinite Jumping
    (click “View Raw” and save)
    Vertical game where player automatically jumps and must reach new platforms. Infinite Jumping
    Physics Catapult
    (click “View Raw” and save)
    Fire catapult at structures with physics behaviors for impact/gravity. Physics Catapult
    Physics Puzzle
    (click “View Raw” and save)
    Click/touch objects to remove to clear puzzle. Physics Catapult
    Platformer
    (click “View Raw” and save)
    Jump between a variety of platforms (static, moving, one-way). Platformer
    Top-Down Shooter
    (click “View Raw” and save)
    Top-down view, move player and fire at targets. Top-Down Shooter
    Turret Defense
    (click “View Raw” and save)
    Add turrets to maze to fire on targets as they pathfind to their goal. Turret Defense
    Vertical Shooter
    (click “View Raw” and save)
    Vertically-scrolling game player and targets both moving and firing. Vertical Shooter

    Publishing Your Game

    After you select a template, you’ll want to customize the game to your liking with new images, mechanics, sounds… whatever you can imagine!  When you’re ready to publish to the Windows Store, just follow these steps.

    Keep the Cash OfferAnd with each game you publish, you can earn money with the Keep the Cash offer through June 30, 2013!

    Enjoy!  And drop me a line if you find these useful or have any recommendations to make them more helpful.

    -Chris

  • Chris Bowen's Blog

    Internet Explorer 9 Developer Tools Deep Dive – Part 1: Introduction

    • 0 Comments

    Internet Explorer 9In this series, we’ll take a detailed look at the Developer Tools included in Internet Explorer.  They can be used to inspect page structure, improve design, debug scripts, optimize page and network performance, and much more.

    BTW, much of this content is covered in my screencast for The Code Project Virtual Summit on HTML5/CSS3 (available for free).

    Getting Started

    The F12 Developer Tools are a standard feature of Internet Explorer (no need to install anything else), so just make sure you’re running IE8, IE9, or the IE10 Platform Preview.  Head to these sites to learn more and download IE:

    Running the Developer Tools

    Easy enough – just press F12 or choose Tools-> “F12 developer tools” to start.

    Launching the Developer Tools

    The Developer Tools

    Detach Window You can either run the tools attached in the browser or press the double window icon at top right to detach for a second monitor or to use side-by-side with the browser.

    Tools and Browser Side-by-Side

    • Tip: On Windows 7, the Aero Snap keys are handy here – Windows Key + Arrow Keys.

    A Quick Tour

    Let’s take a quick tour of the main features, and we’ll delve into the details in the other posts.  There are six tabbed sections of features: HTML, CSS, Console, Script, Profiler, and Network.

    The HTML Tab

    The HTML tab is great for inspecting your page, setting values, and seeing the effects of CSS styling.

    HTML Tab

    The right-hand pane shows a per-element CSS summary (Style) and hierarchy/trace (Trace Styles), offers a visual layout tool (Layout), and a way to set custom attributes (Attributes).

    The CSS Tab

    The CSS tab displays current CSS classes and styles, allowing you to view specific CSS files in use by the page, make changes, and search.

    CSS Tab

    Combined with the right-hand panes on the HTML tab, there are a lot a ways to view and modify your CSS.  More details and advice for using these two tabs in Part 2 (HTML & CSS).

    The Script and Console Tabs

    The Script tab lets you work with script, setting breakpoints, debugging through code, and breaking on errors.

    New in IE9 is the ability to Format JavaScript, which can make even minified script files easy to read and debug.

    Script

    The pane at right features Console (supporting console.log() and other functions), Breakpoints, Locals, Watch, and Call Stack views. 

    New in IE9 is the Format JavaScript option, which can make even minified script files easy to read and debug:

    Format JavaScript

    The Console tab is much like the Console pane of the Scripts tab, offering a larger surface for viewing messages and executing script commands.  You’ll find more on this in Part 3 (debugging).

    The Profiler Tab

    The Profiler tab lets you analyze the execution of JavaScript.  Just “Start Profiling”, load a page and/or use page functionality, then click “Stop Profiling”.

    Profiler

    You’ll see a summary report showing functions, times called, time elapsed and more.  There is much more detail on using this feature in Part 4 (profiling).

    The Network Tab

    The Network tab is new with IE9, enabling the capture and analysis of network usage. 

    Network Report

    Like script profiling, just start capturing and load/use a page or pages.  You’ll see the requests made, results, response details, and timing.  Double-click an entry to see details:

    Network Request Details

    There’s a lot to cover here, so see Part 5 (network profiling and debugging) for details and techniques for using this feature.

    Menu Options

    Menu

    Color PickerDon’t forget to look through the many options in the various menus. For example:

    • Image and Link reports
    • Element outlining (tables, divs, etc.)
    • Cache management
    • Setting custom User-Agent (UA) strings (e.g. mobile)
    • Clear/view cookies
    • ValidationDisabling of script, CSS, and the pop-up blocker
    • Tools to resize the browser, measure items, and select colors
    • Page validation 

    You can also change Browser Mode and Document Mode

    We’ll dive into this in the next post, but the short version is Browser Mode can send different User-Agent (UA) strings, simulating different browsers to a server, and Document Mode changes the engine mode IE will use to render pages.

    Internet Explorer Resources

    Finally, here are some resources to get you underway:

    Stay tuned for more posts, and I hope you enjoy using the F12 Tools!

    -Chris

  • Chris Bowen's Blog

    Metro Developer Opportunities This Week in New England

    • 0 Comments

    This week offers several excellent opportunities for Windows 8 and Windows Phone developers here in New England.

    MetroAcceleratorLabsMetro Accelerator Labs – Waltham, June 6-8

    As mentioned earlier, the Metro Accelerator Labs are coming to our Waltham offices on Wednesday through Friday (June 6-8).  It is a 3-day event focused on helping you create Windows 8 and Windows Phone apps with experts on hand to help you, whether you’re just starting or adding the finishing touches.

    We’ll have a brief dev/design session each morning (agenda here), but the focus is squarely on your apps and coding.  Bring your PCs, apps or app ideas, and get ready to develop!

    You can join us for as little or as much of the 3-day event as you wish.  Register here

    Ready.Set(){Code} Challenge – Waltham, June 7

    Ready.Set () {Code} Challenge  - Boston, MAOn Thursday (June 7th), the special Ready.Set(){Code} Challenge by Nokia Developer will also be running in the Waltham office.  Part of a 13-city tour, this is a great opportunity to create Windows Phone apps by yourself or by forming a team. 

    At the end of the day, you’ll have a chance to show your app and the best (in a number of categories) will be awarded prizes!

    Separate registration is required.  Note we’ll have two rooms this day, so both the Metro Accelerator Lab and Ready.Set(){Code} Challenge will be running concurrently.  Join in either as you wish!

    -Chris

  • Chris Bowen's Blog

    List of Game Development Podcasts

    • 0 Comments

    As you might know from my list of podcasts for .NET devs, I’m a big fan of podcasts to help make travel time less… [annoying | mind-numbing | wasteful].

    As my recent work has focused more on game development, I’ve been keeping an eye out for relevant podcasts.  Here are the ones I know of that focus primarily on game development and the gaming industry.

    Game Development Podcasts

    [Last updated – 9/18/2012]

    image58Another Castle
    Charles J. Pratt
    Interviews with game developers, especially with a focus on game development in New York.
    gamedesignadvance.com/?page_id=1616

    Armless OctopusArmless Octopus
    Dave Voyles, Taylor Bliss, Mike Wall
    Focused on the indie game dev community.
    http://www.armlessoctopus.com/category/podcast/

    The Brainy GamerThe Brainy Gamer Podcast
    Michael Abbott
    Interviews with game developers and a focus on the video game community.
    www.brainygamer.com/the_brainy_gamer/podcast/

    Core ElementsCore Elements
    Wes Wilson & Spencer Williams
    Each episode features an interview with a game developer plus gaming industry news.
    http://coreelementspodcast.blogspot.com/

    Experimental Game Dev PodcastExperimental Game Dev Podcast
    About independent (indie) games and development.
    www.indiegamepod.com

    The Game Developer's RadioThe Game Developer’s Radio
    Joseph Burchett & Devin Becker
    Focused on game development and design.
    www.gamedevradio.net

    The Game Engine PodcastThe Game Engine Podcast
    Andrew Bittman, Paul Sztajer, Saul Alexander, and Dan Graf
    Focused on game developers and topics around game development.
    www.gameenginepodcast.com

    Indie Games PodcastIndieGames.com Podcast
    Interviews with indie game developers.
    indiegames.com (and indiegames.buzzsprout.com)

    Irrational InterviewsIrrational Interviews
    Ken Levine & Shawn Elliott
    Irrational’s Ken Levine and Shawn Elliott conduct interviews around the industry.
    irrationalgames.com/insider/irrational-interviews

    LostCastLostCast
    Geoff Blair & Matt Hackett
    A brand new HTML5 game development podcast by Lost Decade Games (creators of the HTML5 “Onslaught!” game).
    www.lostdecadegames.com

    One of SwordsOne of Swords
    Dan Amrich
    Activision’s Dan Amrich hosts industry interviews and provides insights into what’s happening at Activision.
    OneOfSwords.com

    Each of these podcasts has had activity in the past few months.  If you know of any other active ones, please comment below (and thank you!)

    -Chris

  • Chris Bowen's Blog

    The Digital Dorm Room Tour Has Arrived!

    • 4 Comments

    DDR My colleague Edwin Guarin, who focuses on academia here in the northeast, has just kicked off the northeastern leg of the Digital Dorm Room Tour, packing a customized RV with some very cool technology and motoring across the northeast!  Edwin blogged about the tour, the idea, goals, tech, goodies for giveaways, and what's on the RV.

    The RV (and hopefully Edwin too) are heading to a bunch of colleges and universities over the coming month.  Here's the schedule.

    Who knows, you might even find yours truly hopping on board for the ride (despite the fact that I've been driven by Edwin before!) and hitting a campus or two!

    Check out the Digital Dorm Room site for the latest details.

    -Chris

  • Chris Bowen's Blog

    Tips from My Technical Presentations

    • 12 Comments

    My role involves spending a good deal of time with technical audiences.  Recently, I've been getting reactions like this - "I enjoyed your presentation!  I have an odd question - how did you zoom in like that?" or "How did you set those colors in Visual Studio?"

    So, I'm posting some tips so I can direct people here for more information. 

    1) Use ZoomIt for Screen Zooming

    ZoomItIt's never a good thing to feature content on your screen that the audience can't see.  It's frustrating for them, and hinders conveying the very message you're trying to present.

    Fortunately, there's a very easy answer.  For areas where you can't already have proper font sizes and colors (see below), use ZoomIt, a free tool from TechNet!

    Read my post on ZoomIt for details.

    ZoomIt is just great.  Obviously, you can zoom, but you can also draw lines, boxes, ellipses and text anywhere on the screen.  It also has a break timer you can use to quickly count down that break between your sessions.

     

    2) Change the Default "Highlight" Color in Visual Studio

    SelectedTextHighlight The default blue highlight for selected text in Visual Studio looks fine on a computer, but when projecting, selecting text can actually make it harder to read - it's likely that nobody past the first few rows can read what you've just selected.

    To fix this, go to Tools->Options->Environment->Fonts And Colors, then in the "display items" list, Dark Theme and Bright Highlightchoose "Selected Text" and change the background color to bright yellow or green (think highlighter) and the text to black.

     

    3) Use a Code Color/Font Scheme That's Easy to View

    This is clearly subjective, but I've found that changing the fonts and colors from the default results in code that's easier on the eyes.  Many people have told me they prefer this, nobody has said they had trouble with it.

    ImportExportSettingsI've uploaded the settings file for my colors and fonts to SkyDrive (see the above code picture for a preview.)  You can easily apply them to your own Visual Studio settings using "Tools->Import and Export Settings".  I'd recommend you back up your current settings using the Export option before trying this out.

    I use the Consolas font in Visual Studio, which you can download here.

    Also, check out Scott Hanselman's great post on alternate Visual Studio themes.

     

    4) Create Quick-Change Font Size Macros

    In Visual Studio, it's easy to create your own keybindings to IDE features.  FontMacrosI've added CTRL-SHIFT-[+/-] to mine which quickly increments or decrements the editor font size. 

    The screenshot at right shows the decrease font macro I've wired up.  Go to Tools->Options->Environment->Keyboard, then type "Font" into the Show Commands Containing textbox to find the font-related commands.

    Then you can just ask the audience if they can see, quickly bump the font a bit and you're good to go.

     

    5) Have Emergency Backup Plans... and Pictures... and Video

    MPj04005760000[1] Let's face it, sometimes demos don't work as planned.  Pilot error, beta software, phases of the moon - you need a contingency plan.  I'll typically run through my demos and take screenshots of the key points, adding them to the end of my presentation deck. 

    In some cases, you might even consider recording the whole demo, using a tool like Camtasia.  Play the video (without sound) and narrate what's happening for the audience.  Your audience will appreciate having content rather than watching you flail about, trying to diagnose a problem.

    This also applies to websites that you may want to show, should you find yourself without web connectivity.  Either save a local copy of the page (in IE, File->Save As->Web Archive, single file (*.mht)) or just take a screenshot.

     

    Hope you find these tips useful.  Do you have others?

    -Chris

  • Chris Bowen's Blog

    JavaScript Physics Engines and Windows 8 Games

    • 1 Comments

    Driven by opportunity and visions of success in the Windows Store, you set to work, turning your gaming idea into code.

    “It Was My Understanding There’d Be No Math”

    Maybe you wanted to move something across the screen.  Maybe check if it hit a target.  Oh, and there’s wind, and friction, and maybe things should bounce when they collide…

    Forgotten Math...The specter of forgotten math begins to loom.

    Thankfully, there are physics engines.  Simply put, they take care of some of the math and work involved in games and simulations.  Of course they don’t eliminate math and complexity, but they can make many scenarios easier:

    • Physics-related math – Matrices, vectors, velocity, rotation, momentum, etc.
    • Rigid body dynamics – Sounds unfriendly, but focuses on the motion and interactions of things whose shapes don’t change (save when deformed by say a collision or damage.)  This also includes joints to connect multiple objects together to create more complex objects like a ragdoll of a person, a truck with parts/wheels/cargo, etc.
    • Soft body dynamics – Less frequently-used, this is simulation of objects whose shape can change.  Cloth is a pretty common example of this.
    • Collision detection – Need to know when something hits or overlaps another?  There are may ways to do this, from relatively simple bounding shapes, to often more accurate (and more complex) per-pixel approaches, and on to the vast world of 3D.

    Why write such things yourself when others have taken the time to create great libraries?

    That said, you may not need a physics engine at all.  For the simplest games, it’s pretty easy to roll your own logic for basic bounding-box collision checking and basic motion.  However, games become complex quickly, so even if you don’t imagine you’ll need one, the up-front investment in learning & using physics engines can pay off sooner than you’d think.

    JavaScript Physics Engines

    Here’s a list of some key JavaScript-based physics engines that you might consider in your Windows Store game or simulation.   

    imagebox2dweb

    Home - http://code.google.com/p/box2dweb/
    Download - http://code.google.com/p/box2dweb/downloads/list

    A JavaScript port of Box2DFlash (aka Box2DFlashAS3), itself a port of the Box2D engine, box2dweb offers a single-file implementation, which makes it easy to add to your app.

    The box2dweb site has an interactive demo and directs you to Box2DFlash for documentation (since it’s a direct port).  According to the box2dweb download site, it was last updated in June, 2011

    imageBox2DJS

    Home - http://box2d-js.sourceforge.net/
    Download - http://sourceforge.net/projects/box2d-js/

    Like box2dweb, Box2DJS is also port of Box2DFlash/Box2DFlashAS3. It’s somewhat older (at least at time of writing) and does require more files to be added to your project than box2dweb.

    The Box2DJS home page has instructions, sample code, and demos.  Here are a few of them:

    imageimageimage

    According to the Box2DJS download page, the last update was in April, 2010.

    imagePixel Lab Box2d-JS

    Home - http://box2d.thinkpixellab.com/
    Download - https://github.com/thinkpixellab/box2d

    This version of Box2d by Pixel Lab is a clone of Box2DJS, updated to have better compression and to resolve bugs in the original version.

    The Pixel Lab Box2d-JS site has some live demos, mirroring the ones featured on the Box2DJS site.  Interestingly, this engine was used in the Agent 8 Ball game:

    image

    According to the download page on Github, the compiled version was last updated in April, 2012.

    imageAmmo.js

    Home - https://github.com/kripken/ammo.js
    Download - https://github.com/kripken/ammo.js

    Ammo.js is a 3D physics engine, and an automated port of the Bullet Physics Library (written in C++).  Like box2dweb, it is built into a single file (“ammo.js”), making it simple to import.

    The lastest version of Ammo.js (built as “/builds/ammo.js”) was updated in September, 2012.  Again, with this post being primarily an index, see the last section for links to more detailed analysis of Ammo.js.

    imageJigLibJS2

    Home - http://brokstuk.com/jiglibjs2/
    Download - https://github.com/bartdeboer/JigLibJS2

    JigLibJS2 is an automated port of the JigLibFlash physics engine.  It’s a 3D physics engine, and on the JibLibJS2 home (and in the download source) there’s an interesting canvas demo (using three.js for 3D rendering) with multiple objects, including a car you can drive:

    image

    The download page on Github shows the latest updates in September, 2012

    imageCannon.js

    Home - http://schteppe.github.com/cannon.js/
    Download - https://github.com/schteppe/cannon.js

    Cannon.js is a 3D physics engine, based on… well, nothing.  Unlike many physics engines, cannon.js is “100% open source JavaScript, written from scratch”.  Cannon.js cites inspiration from three.js and ammo.js, yet claims to be lighter and smaller than ported engines such as ammo.js and JigLibJS.

    Though the home page samples use WebGL, Chandler Prall’s Javascript Physics Engine Comparison has a nice example of using cannon.js with the three.js CanvasRenderer.

    According to the cannon.js download page, the latest updates were made in September, 2012.

    Another Option: Windows Runtime Components

    Another interesting option for Windows Store apps is to use Windows Runtime Components, components written in other languages such as C++, C#, and VB, and call them from your JavaScript-based game.

    imageFor example, the Farseer Physics Engine is based on .NET, but could be wrapped and exposed to a JavaScript-based Windows Store app.

    Keep in mind that while this can work, it also adds new levels of complexity to your app.  For example, which side “owns” the various pieces of game state?  But, if you’re already familiar with another non-JavaScript physics engine, this may be worth considering.

    What Next?

    Here are some other helpful articles to get you started:

    As I mentioned, this post lists only a subset of what’s out there.  If you know of other helpful engines, please post in the comments!

    -Chris  

  • Chris Bowen's Blog

    Introduction to JavaScript Animation and Windows 8 Games

    • 1 Comments

    Unless you’re aiming for the next great text-only game, chances are something’s going to move in your game. From ships and planets to fireballs and monsters, what are some ways to get them going?

    How Will You Start the Show?JavaScript-based games in Windows 8 can take advantage of many different options.  Here are some of them:

    • Animate DOM elements with JavaScript and CSS
    • Animate DOM elements with new CSS3 features
    • Animate what’s drawn in SVG
    • Animate what’s drawn to a <canvas> element
    • Use the WinJS.UI.Animations library
    • Use one of many animation frameworks

    We’ll take a look at each of these, but first it’s important to know game loop options.

    The Game Loop

    To get things going, you need code that handles input, updates game state, and draws/moves things. 

    You might think to start with a for loop, and move something across the screen.  E.g.:

        for (i = 0; i<10; i++){
            smiley.x += 20;
        }
     

    What happens logically:
    image
     

    What the user actually sees:
    image

    You’ll probably just see the item popping instantaneously to the final location.  Why?  The interim positions will change more quickly than the screen will update.  Not the best animation, is it?

    Later, we’ll get to CSS features and animation frameworks that offer ways to chain animations with logical delays (“move this here, wait a bit, then move it there”), but in the meantime, let’s leave the for loop behind…

    SetInterval & SetTimeout

    Generally, game loops work by calling a function repeatedly, but with a delay between each call.  You can use setTimeout to do something like this:

        function gameLoop() {
            // Update stuff… 
            // Draw stuff…     
          
            setTimeout(gameLoop, 1000/60);  // Target 60 frames per second       
        }

    Just point setTimeout to the function to call and how long (in milliseconds) to wait.  Closely related, setInterval also waits then calls a function, but automatically keeps calling the function until canceled. 

    Using requestAnimationFrame

    But there’s some trouble in setTimeout/setInterval paradise. 

    They work by setting a fixed amount of time between loops, but what if the system isn’t ready to draw an updated frame?  Any drawing code executed is wasted because nobody will see the update.

    There’s now a more efficient way - requestAnimationFrame.  Instead of specifying how long until the next iteration, requestAnimationFrame asks the browser to call back when it’s ready to display the next frame.  For a demonstration, see the requestAnimationFrame example (and the Windows SDK sample):

    image

    Important: to benefit from requestAnimationFrame, you should separate your state-updating code from your visual rendering/drawing code.  Update can continue use setTimeout to run consistently to keep the game going - process input, update state, communicate, etc. - but rendering will run only when necessary via requestAnimationFrame.

    Like setTimeout, requestAnimationFrame needs to be used once per callback.  With a separate render loop, you might have something like this:

        function renderLoop() {       
            requestAnimationFrame(gameLoop);

            // Draw stuff…      
        }

    [Here, I’m using a tip from Martin Wells’ Sprite Animation article that putting requestAnimationFrame before drawing code can improve consistency.]

    Note that if you’re creating a browser-based (vs. Windows Store) game, you’ll want to check for vendor-specific prefixed requestAnimationFrame implementations (e.g. window.msRequestAnimationFrame).

    That’s a basic introduction, but there’s more to game loops that you should look into: loop coordination techniques, integrating event-driven updates, and different ways to compute how much to change in each iteration of the game loop.

    Basic DOM Element Animation

    One way to create HTML games that generally work well across browsers and without plugins, is to use a bunch of DOM elements (<div>, <img>, etc.) and move them around. Through some combination of JavaScript and CSS, you could animate and move things around the browser.

    Let’s take a look at how this applies to a Windows Store game. 

    Start Visual Studio 2012 and under JavaScript Windows Store templates, create a game with the “Blank App” template.  Add any image to the game’s images folder, then and add it via an <img> tag to default.html:

        <body>
            <img id="smile" src="images/Smile.png"
    />
        </body>

    Set some starting CSS in /css/default.css:

        #smile {
            position:absolute;
            background:#ffd800;
            border:4px solid #000;
            border-radius:20px;
        }

    Now we can write some basic animation in /js/default.js.  First add the highlighted to the existing args.setPromise line:

         args.setPromise(WinJS.UI.processAll().then(init()));

    Now, add a variable, init function to start things, and gameLoop to animate things:

    image

    Give it a run, and prepare to be amazed!

    imageimage

    DOM element animation is time-tested and still a perfectly viable option for many situations.  However, more options have emerged since then, so, onward!

    Animation with CSS3

    The latest features in CSS3 (aka “CSS Module Level 3”) offer 2D and 3D ways to change and animate presentation styles defined for DOM elements.  These approaches can be both concise and easy to maintain.

    CSS3 Transitions

    Transforms (both 2D and now in CSS3, 3D) can change appearance of an item – Transforms to rotate, scale, move (called “translate”), and skew (think stretch or italics and you won’t be far off), but they simply change from one state to another.

    Transitions can help you animate the presentation changes from state A to B, simply using CSS.  See the Hands On: transitions sample:

    image

    Our above DOM element example could be modified to apply a style with a transition over 4 seconds.  Something like this:

        left: 500px;
        top: 500px;
        transition:4s linear;

    CSS3 Animations

    Transitions are very useful, but support only a single timing function.  Animations introduce keyframes, which allow multiple timing functions to control animations.  Also, Animations are explicitly called (vs. Transitions, which trigger implicitly.) 

    See the Hands On: animations sample:

    image

    See Also:

    Animation with SVG

    SVG (Scalable Vector Graphics) support using markup and/or code to define shapes that retain clarity/definition as they are scaled.  SVG can even utilize styles defined in CSS, making them even more flexible.

    Because the individual components of an SVG composition are themselves DOM elements, this is technically a special case of the DOM elements approach, so many of the same techniques apply. 

    Some examples (don’t forget, View Source is your friend): SVG-oids, SVG Dice, and SVG Helicopter.

    imageimageimage

    SVG is a powerful option, but when should you use it, and how does it compare with using canvas? See How To Choose Between SVG and Canvas.

    See also:

    Animation on a Canvas

    Support for <canvas> across many browsers has made it a great option games.  Though you can add a canvas via HTML (or dynamically with JavaScript), canvas is driven entirely by JavaScript, so creating animations is a matter of knowing what you’re drawing and where, and modifying over time with JavaScript.

    New to canvas?  Try the ”drawing to a canvas” Quickstart.

    Let’s use canvas in a new example.  Create a new Blank App project and add a <canvas> element to default.html:

        <body>
            <canvas id="gameCanvas" height="800" width="800"></canvas>
        </body>

    Because JavaScript is the only way to “talk” to the canvas, we’ll focus on /js/default.js for the rest.  Add a pointer to init() like above, then the function:

    image

    Because canvas uses immediate mode graphics, it’s not as simple as creating an object and moving by setting location properties (like you can with DOM and SVG animation.)  So, canvas-based games will typically create JavaScript classes for things to be tracked and displayed, then update logic simply sets properties (x, y, etc.) on those instances, which the render loop dutifully draws to the canvas. 

    Here’s what you should see when you run the “game”:

    imageimage

    Of course, there’s a lot more to canvas and canvas animation than that.  Canvas can work with images, video, animations, gradients and much more.  For details, see the Quickstart and ”How to animate canvas graphics", and for demos see Canvas Pad and Canvas Pinball:

    imageimage

      

    Also, there are a number of libraries available to make working with canvas easier, for example EaselJS, which we’ll get to a little later.

    Animating Windows Store Games with WinJS

    The Windows Library for JavaScript (WinJS) contains helpful namespaces and classes to create animations in an efficient and reliable way.

    For example, you can use WinJS.UI.executeTransition to activate one or more CSS transitions.  Our earlier DOM element example could become:

    image

    Even more useful, there’s a full library of animations available in WinJS.UI.Animation, including animations for:

    • Adding/Removing content
    • Transitioning & navigating
    • Dragging & dropping
    • Selecting content
    • et al.

    These are most frequently helpful with Windows Store apps, but games can benefit as well.  To see some in action, try the HTML animation library sample from the Windows SDK:

    image

    See Animating your UI to learn more.

    Using Animation Frameworks

    Just as we saw with JavaScript physics engines in an earlier post, there are many frameworks out there that can make many of common scenarios easier.  Anything that can save time and effort is worth some research. 

    There are many out there, but here are a couple to get you thinking.

    jQuery & jQuery.animate()

    imagejQuery is an JavaScript library that helps make common tasks easier (and reliably cross-browser). 

    Among the many things you’ll find in jQuery, the jQuery .animate() method has many features that can apply to game animation.

    With jQuery.animate, our “smile” example could be written as:

    $('#smile').animate({
        left: '+=500',
        top: '+=500',
        }, 4000);

    A jQuery selector is used to find the smile element, then the animate method will adjust the left and top CSS properties, increasing each by 500 pixels over 4 seconds.

    For some interesting examples/tutorials, see "13 Excellent jQuery Animation Techniques" on WDL.

    CreateJS: Animation with EaselJS & TweenJS

    imageCreateJS is a family of JavaScript libraries and tools to help make things from canvas, sound, loading, to animations easier.

    I introduced using CreateJS for Windows Store Games in an earlier post.  If you’re new to CreateJS, have a look.  As the post details, EaselJS can make using canvas for games much easier.  It also supports features like SpriteSheet, which uses multiple pictures of the same object to create animations, such as a character running:

    imageimage

    However, another CreateJS library, TweenJS, is especially relevant to any discussion of animations. 

    You can use TweenJS to animate objects’ values and CSS properties.  It also offers a chained syntax, where you can specify animations as steps with delays and other connections to relate them.

    imageimage

    Like CSS Transitions and Animations, TweenJS also supports easing functions to control the rate of change of each animation.

    Game Engines

    Not only are there more animation frameworks out there, but there are game-related frameworks as well.  I’ll probably dedicate a post to this later, but some examples are Crafty, melonJS, Akihabara and more.

    A great directory of what’s out there is the Game Engines list on GitHub.

    Also see Bob Familiar’s “Windows 8 Game Development for the Win” list of various game tools and frameworks (free and commercial) that can lead to Windows Store games.

    Let’s Get Moving!

    Ready to dive in?  Here are a few more references to get you started.

    Enjoy, and good luck!

    -Chris

  • Chris Bowen's Blog

    Code Camp 11 – The Schedule!

    • 13 Comments

    CodeCamp We're just under a week from New England Code Camp 11: "Developer Stimulus Package" (what is Code Camp?), a free day filled with with technology sessions given by the local developer community.  Code Camp 11 will be held on March 28th at the Microsoft offices in Waltham, MA.

    Registration is at over 300 350 375 400 people and still open at:

          http://TheDevCommunity.org/CodeCamps

    Sessions and Schedules

    But the real story is that there's been a fantastic show of support from volunteers giving their time and expertise to speak.

    CC11 is currently scheduled to offer 41 44 sessions by 32 speakers, all for free!  The grid (as always, subject to change) is below, here are the session descriptions, and we'll have printouts of the grids and descriptions waiting for you at registration.

    The Schedule (click to expand):

    CC11Schedule

    Register today, plan out your weekend with the schedule below, and we'll see you at Camp!

    P4050052Saturday Evening Geek Gathering

    A Code Camp tradition for years, we're informally gathering over at the Waltham Westin's lobby bar for a chance to unwind on Saturday night.  Drop by after sessions are over to relax, chat, and network with fellow New England devs!

    Thanks to Infragistics!

    Infragistics Last but certainly not least, budgets are hard everywhere these days, but Infragistics has really stepped up to help make Code Camp a success by sponsoring  lunch!  Many thanks to them, and you can see Infragistics’ own Tony Lombardo who is coming from the NYC area to speak.

    See you at Camp!

    -Chris

  • Chris Bowen's Blog

    Windows 8 Developer Camps and Hackathons – July through September

    • 4 Comments

    I’m happy to pass along word that a new series of Windows 8 developer events are coming soon!  These are special two-day events, with a DevCamp on day one featuring a full day of sessions plus an InstallFest, followed on day two by a Hackathon with Lightning Talks where you can bring app ideas to life with Microsoft and community experts on hand to help. 

    image

    Windows 8 changes everything.
    Combining the broad reach of Windows, best-in-class developer tools, a re‑imagined user experience, support for new chipsets, and a built-in store with industry-leading business terms, Windows 8 is the largest developer opportunity – ever.

    Join us for free events with new sessions and hands-on opportunities designed to help you start building Metro-style applications for Windows 8 – today. We'll show you how to use Visual Studio to code fast, fluid, immersive, and beautiful Metro-style applications in HTML5/JavaScript, XAML/C# and C/C++. Your existing investments in these languages carry forward, making Windows a no-compromise platform for developers. Attend just one day or join us for two full days of learning. It's your choice.

    DevCamp - Day 1
    clip_image001
    Events run from 9:00AM – 8:00PM

    Our DevCamp covers Windows 8 Release Preview from top to bottom, featuring sessions that run from introductory to intermediate as the day unfolds. These sessions will be followed by an InstallFest to prepare your system for hands-on app development.

    Hackathon - Day 2
    clip_image001
    Events run from 9:00AM – 9:00PM

    Our Hackathon is an open Windows 8 code fest, where you'll put what you've learned into practice. Code to your heart's content, with Windows 8 experts available to guide you through every step of the process. It's the perfect opportunity to get your dream application underway, or to finish that app you've already started.

    This full-day event will be filled with coding, sharing, plenty of food, and the occasional Lightning Talk on topics determined by your apps and questions. Bring your own laptop installed with Windows 8 Release Preview, your apps and your cool ideas and get ready to create!

     

    imageCities and Dates      
    clip_image001
    Separate registration for DevCamps and Hackathons is required

    The choice is yours to join us for either or both days, but please register for each separately.

    Seating is limited, so click the date links below (or call 1-877-MSEVENT) to reserve your seat today!

    Location DevCamp Hackathon
    Manhattan, NY 14-Jul 15-Jul
    St Louis, MO 16-Jul 17-Jul
    Brooklyn, NY 19-Jul 20-Jul
    Nashville, TN 19-Jul 20-Jul
    Los Angeles, CA 20-Jul 21-Jul
    Rochester, NY 27-Jul 28-Jul
    Mountain View, CA 27-Jul 28-Jul
    Atlanta, GA 3-Aug 4-Aug
    Ft. Lauderdale, FL 3-Aug 4-Aug
    Redmond, WA 3-Aug 4-Aug
    Dallas, TX 7-Aug 8-Aug
    Chevy Chase, MD 10-Aug 11-Aug
    Denver, CO 10-Aug 11-Aug
    Irvine, CA 17-Aug 18-Aug
    Boston, MA 17-Aug 18-Aug
    Raleigh, NC 17-Aug 18-Aug
    Reston, VA 17-Aug 18-Aug
    Orlando, FL 17-Aug 18-Aug
    Minneapolis, MN 23-Aug 24-Aug
    Houston, TX 24-Aug 25-Aug
    San Francisco, CA 24-Aug 25-Aug
    Downers Grove, IL 28-Aug 29-Aug
    Phoenix, AZ 7-Sep 8-Sep
    Malvern, PA 14-Sep 15-Sep

    Register today and join us for these fantastic (and free) developer opportunities.

  • Chris Bowen's Blog

    Northeast MSDN Roadshow - “Don’t Fear the Coder” Tour

    • 3 Comments

    The Northeast MSDN Roadshow As in 2007 and 2008, we like to run a pre-winter Roadshow series before the really deep snow blankets the roads.  I’m glad to say everything’s lined up for us to to get the word out for the next series!

    These are free events, running 9:30 to 3:30, featuring five sessions for developers and architects. Topics include Expression/Silverlight MVVM, ASP.NET Webforms/AJAX, LINQ, finding developer help, and WCF.  The full agenda (in all of its themed glory) is below.

    We’ll be piling into whatever vehicle we can find (that has plenty of cup holders for coffee) to visit seven cities in November and December:

    Register with the above links and we’ll see you on the road!
    -Chris

    P.S. There’s now a directions/parking/updates page to help with any venue updates before each event.

    ---------------------------------------------------------------------

    And now the full agenda (prior Roadshow attendees know we just love a theme).  Read on if you dare, but you’ve been warned…

    MSDN Events Presents

    The MSDN Northeast Roadshow:
    "Don't Fear the Coder" Tour


    MPj04365680000[1] It was a dark and stormy night. Your heart races as you wonder how you'll survive the looming deadline.  Technology questions abound.  A cat jumps at you for no reason.  The stack of unread developer magazines casts a threatening shadow.  What to use?  When?  How?

    Worried?  Don't be.  Road and code warriors Jim O’Neil and Chris Bowen will clear up the fog surrounding key developer technologies. From current practices and tools, to glimpses of the near future, you'll escape with new insights and many stories to tell.

    The Northeast MSDN Roadshow is a free series of deep technology sessions for developers and architects.  Join Chris and Jim for these relaxed events to gain practical insights (and of course they’ll use their wits to transform “horrors” into “har hars”).

    Registration is required, and seating is limited, so register today and join the Roadshow!

    The Agenda: Clever Hacking, Slashed Efforts, and Killer Applications

    Something WCF This Way Comes

    The mysterious figure of Windows Communication Foundation approaches from the swirling mist, but are its intentions good?  Rumors abound that it can be complex and not for the faint of heart.  We'll take a renewed look at WCF, discovering a practical tale of services, connectivity, integration, and more.  Our focus will be on WCF’s current nature, but we'll briefly preview what’s in A Branching Methodologystore for us with .NET 4.0.  WCF turns out to be a great ally, so you’ll be glad you stood your ground.

    RIA Window – Expression, Silverlight, and MVVM

    You’ll code your next Silverlight application with grace after you catch this session, which presents the primary motives for using the MVVM pattern.  Focusing on the use of Expression Blend, we’ll cast a designer’s lens on Silverlight development enabling you to plot a hitch-free course for your future projects.

    "Help!" – Grasping at Lifelines

    In the fight to slay invading bugs and put fearsome requirements to rest, sometimes you need a helping hand.  In this brief lunchtime session, we'll review options for finding assistance – ways to report and view issues you find, help systems, websites, team options, communities, and more.  Breathe easy, there’s no need to wander alone in the dark.

    LINQ De-crypted

    Although it’s part of the foundation of the .NET 3.5 release, many developers have yet to uncover the amazing power buried in LINQ (Language Integrated Query).   This session will bring to light important concepts found lurking in the shadows of the technology: the IEnumerable and IQueryable interfaces, extension methods, MPj04286150000[1]lambda expressions, and more.  With LINQ’s defining components unearthed, you’ll vault to new heights in your development efforts.

    Tales from the Webside - ASP.NET WebForms, AJAX, and More

    Your journey through web development may at times seem like a montage of foreboding images. There are many paths to consider, but in this session we return to the main roads of essential ASP.NET development.  From WebForms and server options, to scripting, AJAX, and other tools, we’ll catch up with the latest developments and take a quick glimpse down the road at what awaits us ahead.  Until next time, enjoy trying your new web development options.

  • Chris Bowen's Blog

    Windows Phone Development: A Quick Introduction

    • 1 Comments

    Windows phoneThis post is to help you get up to speed quickly with the Windows Phone 7 Series development announcements made today at MIX10.

    The great news is that applications can be written for Windows Phone 7 Series devices using regular Silverlight (Silverlight 4 RC is now available) and XNA.  No alternate or light versions here, so go ahead and leverage your existing experience.

    New to Silverlight?  Head to http://silverlight.net/learn, watch some videos, and try some hands-on labs.  A similar story for XNA – head to the XNA getting started page.

    In this post, I’ll focus on the Silverlight story (but those who know me realize I’ll cover the XNA view as well.)

    Installing

    image Head to the Windows Phone for Developers page and download the developer tools (be sure to review the release notes as well).

    The installer will take care of installing the free Visual Studio 2010 Express RC (it will update an existing install of an RC version), XNA Game Studio 4.0 CTP, Silverlight 4 SDK and Tools for Visual Studio 2010, etc.

    You can also create applications using Expression Blend 4 Beta as detailed in this post.

    A (Very) Basic Application

    Let’s keep things simple with this first application.  Start Visual Studio 2010 (Express or another RC version):

    VS2010 Start Page

    Click “New Project…”

    New Project

    Windows Phone Application is a basic template, and Windows Phone List Application is helpful if you’ll be using the List and Navigation controls.

    You can also create an XNA based game.  Click on the XNA Game Studio 4.0 tab and choose Windows Phone Game (4.0).  I plan to cover this in a future post.

    Choose Windows Phone Application:

    Windows Phone Application - Split View

    By default, you’ll see a split view with design and XAML surfaces.  You can make changes in either.  From the Toolbox, add a TextBox and Button, dragging/resizing to fit:

    Adding Controls

    Double-click the button, then in the generated button1_Click event in the code behind file, add code to update the list title:

    Button Click Event

    Now run it!  (Run Button (F5), or Debug –> Start Debugging).  The Windows Phone Emulator will start (left image) then load your application (middle image). Enter your name and click Button (right image):

    Emulator - Initializing Emulator - Application Loaded Emulator - After Button Click

    Congratulations, you have a Windows Phone 7 Series application! Sure, not a very interesting application, but I’m sure you’ll do much better.

    Debugging

    Debugging is basically the same story that you’re used to with other Visual Studio applications.  Set breakpoints (F9) and they’ll be hit when you use the application:

    Setting a Breakpoint

    Simple enough.  Step through, view locals, change values, add DataTips, etc.

    Windows Phone Emulator

    The Windows Phone Emulator lets you develop applications without a device and supports GPS simulation, rotation/orientation, skinning, GPU emulation, and more. 

    The emulator is default, but if you manage to track down a device, you can change this via the dropdown:

    Device Selection

    Emulator OptionsNote that you can modify the emulator with a few options.  They are, in order:

    • Close (see next)
    • Minimize
    • Rotate counterclockwise
    • Rotate clockwise
    • Zoom / Reset Zoom
    • Settings (zoom from custom % to fit to screen)

    Rotating the emulator shows how your application will look when the orientation (accessible via Page.SupportedOrientations) changes:

     Orientation

    You might close the emulator, and you’ll get a dialog:

    Emulator - Close Warning

    If you’re planning to change code and rerun the application several times, it’s faster to leave the emulator open and instead stop the application through Visual Studio.  This way the emulator won’t need to load and initialize each time.

    Learning More

    Your first application done, it’s time to learn more:

    Enjoy creating those applications!

    -Chris

  • Chris Bowen's Blog

    Windows 8 Developer Events – Updated

    • 0 Comments

    WindowsThere’s certainly a lot of interest in Windows 8 and the developer opportunity around it, so here’s an update and summary of various events that can help you learn more.

    Windows Developer Camps

    imageThe series of Windows 8 Developer Camps on the east coast that I mentioned in an earlier post are now underway and very popular (those that aren’t full yet are very nearly so). 

    Here are the events we’re running in in the east:

    March 27, 2012 Reston, VA Done
    March 29, 2012 Chevy Chase, MD Done
    April 11, 2012 Orlando, FL Today!
    April 17, 2012 Tampa, FL Details & Registration
    April 19, 2012 Ft. Lauderdale, FL Details & Registration
    May 1, 2012 Charlotte, NC Details & Registration
    May 22, 2012 Waltham, MA Details & Registration
    May 23, 2012 Atlanta, GA Details & Registration
    May 23, 2012 Farmington, CT Details & Registration
    May 24, 2012 Malvern, PA Details & Registration

    The great news is this list is only a small part of the large number of events being run around the world, so head over to the Microsoft DevCamps site to see them all.

    Windows Developer Event – NYC, April 19

    Along with those Developer Camps, there is also a special Windows Developer Event coming to New York City next week (and filling up quickly as well): 

    image

    Windows reimagined.

    Learn everything you need to start building Metro-style apps for Windows today at our free, full-day Windows Developer Event.

    We'll show you how to use Visual Studio to code fast, fluid, immersive and beautiful Metro-style applications in HTML5/JavaScript, XAML/C# and C/C++. Your investments in these languages carry forward, making Windows a no-compromise platform for developers.

    Whatever language you choose, your app gets deep integration with the Windows shell, including notifications, live tiles, deep links, and contracts with other apps. And now you can build once and support all Windows customers, no matter what type of PC they have—from tablets to laptops to convertibles to desktops.

    Seating is limited and registration is not guaranteed. Secure your spot today!

    Registration

    The event runs from 9 AM to 5 PM on April 19th at Center 548 in New York City. 

    More Windows 8 in the Northeast

    For those of you in the northeastern U.S., here are some other (free) ways to hear about Windows 8:  (Yes, I’ll be on the road a bit...)

    I hope you’re able to join in one of these events!  To get ready, you can download the Windows 8 Consumer Preview and developer tools.

    -Chris

  • Chris Bowen's Blog

    Silverlight Browser Add-In for Reflector

    • 2 Comments

    Lutz Roeder's Reflector keeps getting more useful.  There's now a Silverlight-related add-in for Reflector called "Silverlight Browser".

    Silverlight Browser is very handy for "how'd they do that?" developer use.  Open Reflector, choose File->Open Silverlight URL and point to a 1.0 or 1.1 Silverlight application endpoint. 

    For 1.0 applications, Reflector parses the component Javascript and XAML files, displaying them as tabs in the main window.  The real power is evident when loading a 1.1 Silverlight application...

    SilverlightReflectorFor 1.1 applications, the files are also parsed into tabs, but that also includes (approximate) source .NET code as well as reflected information in the left-hand pane for the .NET assemblies included with the Silverlight application.

    In the screenshot, I've loaded the 1.1 Silverlight Airlines demo application into Reflector.  You can see the display screen, tabbed listings of relevant files (.js, .xaml, and .cs) as well as the SilverlightAirlines assembly information and decompiled information on the Flights class.

    -Chris

  • Chris Bowen's Blog

    Visual Studio 2008 and Training Kit Released!

    • 1 Comments

    Visual Studio 2008 & .NET 3.5

    We've just announced the RTM (release to manufacturing) of Visual Studio 2008 and .NET Framework 3.5!  MSDN subscribers can download the English versions now, plus there are trial editions and the Express editions available as well.

    Where to get it?  Visit the Visual Studio Developer Center.

    It's going to be a big blogging day.  Check out some detail posts:

    Visual Studio 2008 Training Kit

    We've also released a fantastic resource (that was formerly only available within Microsoft) for developers to learn about Visual Studio 2008 and the .NET Framework 3.5.  Download the Visual Studio 2008 Training Kit, which contains many presentations, hands-on labs, and demos covering a variety of topics (including LINQ, C# 3.0, VB 9, and much more.)

    Videos from the presentations are also working their way onto Channel 9.  David Aiken has a helpful post with more details.

    Learn More at the Roadshow!

    If you live the in the northeastern U.S., you can also learn about Visual Studio 2008, LINQ, and more by coming to one of our Roadshow events in December.

    Enjoy!
    -Chris

    Technorati tags: ,
  • Chris Bowen's Blog

    Publishers Offering Support for User Groups

    • 3 Comments

    High pile of hardcover books Run a user group?  With funding and sponsors a constant challenge, you’re probably always on the lookout for things to give away at meetings.

    Fortunately, many publishers have great relationships with the user group community and have established programs through which you can receive promotional copies of books and other items to use as giveaways or for book review programs.

    Here’s a list to get you started:

    (Know of any others?  Please comment below or contact me.  Thanks!)

    It’s a symbiotic relationship - you get stuff to help the group, and they get visibility in your community.  Be certain to take advantage of the opportunity.

    -Chris

  • Chris Bowen's Blog

    Announcing New England Code Camp 11!

    • 5 Comments

    CC11: “Developer Stimulus Package”

    CodeCampChris Pels and I are excited to announce that the 11th edition of the venerable New England Code Camp series will be held on March 28th in Waltham, MA!

         New England Code Camp 11: ”Developer Stimulus Package”
         Saturday, March 28th, 8:30 AM – 7 PM+
         Microsoft, 201 Jones Road, Waltham, MA

    Richard Hale ShawCode Camps (started in 2004 with New England Code Camp 1), are free events organized by and for the developer community.  A fantastic chance to share knowledge without marketing noise getting in the way.  Check out the Code Camp Manifesto for the guiding principles.

    Register Now!

    Registration is free at The Dev Community site!

    Update 3/23 – Schedule Now Live

    The (always subject to change) schedule is now available, featuring over 40 sessions!

    Mega Saturday Format

    Michael CummingsIn recognition and support of the growth of other Code Camps in the northeast (including NH, CT, and NY), this time we’re packing everything and everyone into a single Mega Saturday.  Needless to say, this is going to be an intense day, so come to Camp well rested!

    Call for Speakers

    Code Camp is driven by volunteer speakers, and simply put, we need you

    Chris LoveNobody expects each speaker to be a veteran of national conferences (though we do have some!)  Code Camps are great because we hear from many perspectives – we want to hear yours!

    So, have something to share?  Submit a session today:

    1. Sign in to an existing account or create a new one at TheDevCommunity.org site.
    2. Complete a Speaker Registry profile (if you don't already have one.)
    3. Go to the Code Camps home page.
    4. Next to the CC11 entry, you should see a "Submit a Session" link.
    5. Submit as many sessions as you'd like.
    6. Please ensure that you also register as an attendee.

    Call for Contributors

    Feeding FrenzyUpdate 3/23 – Sincere thanks to Infragistics who have stepped up to provide lunch for Code Camp!  Thanks also to Infragistics’ own Tony Lombardo who is making the trip from NYC to speak as well.

    Code Camps rely on contributors to donate giveaways and funding for food to help make the event happen.

    You’ll have a highly-targeted audience appreciating your support of the developer community, so please let me know if your company is interested in contributing.

     

    See you all there!
    -Chris

Page 2 of 23 (458 items) 12345»