Categories
Uncategorized

TechDays: Anthony Vranic on Optimizing Your Application for the Windows 7 User Experience

Anthony Vranic doing his presentation at TechDays

My photos from Anthony Vranic’s session at TechDays, Optimizing Your Application for the Windows 7 User Experience, are a bit dark because I used a different camera; my main camera was on video recording duty. I’m including them anyway, because I’m trying to keep a complete record of TechDays.

Anthony Vranic doing his presentation at TechDays

The original version of this presentation from TechEd North America is somewhat different – its target audience was C++ developers, and TechDays is more of a managed code audience. Since the original TechEd presentation, Microsoft released the Windows API Code Pack for the .NET Framework, and Anthony added it to his presentation.

The Windows API Code Pack for .NET gives managed code access to a lot of features, including some new ones introduced in Windows 7, such as:

  • Windows 7 Taskbar Jump Lists, Icon Overlay, Progress Bar, Tabbed Thumbnails, and Thumbnail Toolbars
  • Windows 7 Libraries, Known Folders, non-file system containers
  • Windows Shell Search API support, a hierarchy of Shell Namespace entities, and Drag and Drop functionality for Shell Objects
  • Explorer Browser Control
  • Shell property system
  • Windows Vista and Windows 7 Common File Dialogs, including custom controls
  • Windows Vista and Windows 7 Task Dialogs
  • Direct3D 11.0, Direct3D 10.1/10.0, DXGI 1.0/1.1, Direct2D 1.0, DirectWrite, Windows Imaging Component (WIC) APIs — (DirectWrite and WIC have partial support)
  • Sensor Platform APIs
  • Extended Linguistic Services APIs
  • Power Management APIs
  • Application Restart and Recovery APIs
  • Network List Manager APIs
  • Command Link control and System defined Shell icons
  • Shell Search API support
  • Drag and Drop functionality for Shell objects
  • Support for Direct3D and Direct2D interoperability
  • Support for Typography and Font enumeration DirectWrite APIs

Anthony Vranic doing his presentation at TechDays

Watch this blog – I’ll posting some example code for the Windows API Code Pack for .NET in the coming weeks!

This article also appears in Canadian Developer Connection.

Categories
Uncategorized

Why the “Developing for the Microsoft-Based Platform” Track is the Hippest Track at TechDays

It’s because we have the best obscure pop culture references, as seen in Rob Burke’s presentation on Developing Composite Applications with Silverlight and WPF:

Slide showing John Oxley and Damir Bersinic on cell phones, doing the "Combination Pizza Hut and Taco Bell" song

(That’s a photo of my manager John Oxley and co-worker Damir Bersinic, used to illustrate heavyweight layer communication in Prism. If you don’t get the pop culture reference, this article on my Accordion Guy blog will help you.)

Here’s Rob Burke, striking his GQ magazine pose, just before his presentation:

Rob Burke posing onstage

And here’s Rob in action:

Rob Burke during his presentation
And here’s Rob answering a lot of additional questions at the end of his session:

Rob Burke answering walk-up questions after his presentation

Want to know more about building composite applications using Silverlight and WPF? Check out the Composite WPF site on Codeplex and as well as Glenn Bock’s article on building composite applications with WPF.

This article also appears in Canadian Developer Connection.

Categories
Uncategorized

How to Get to FailCamp Toronto 3 from Union Station

Most of you will be heading to FailCamp via public transit, and many have asked how to get to FailCamp’s venue, the South Building of the Metro Toronto Convention Centre, from Union Station – here’s how!

First, go up to the main level of Union Station, which looks like this:

skywalk 1

On the west end of the station – the side with the Harvey’s – you should see a sign marked “Skywalk”. Go down that hall!

skywalk 2

Keep going…

skywalk 3

There’ll be a slight twist to the left, but keep following the hallway! You’ll get to a tunnel like this:

skywalk 4

Keep going! At the top of the steps at the end of the tunnel, it’ll turn left and you’ll see this:

skywalk 5

That’s the entrance to the actual Skywalk, which looks like this. Follow the signs to the door on the left that says “Convention Centre”…

skywalk 6

…then follow the signs that say “South Building”…

skywalk 7

…and follow the arrows that lead you to the TechDays conference. FailCamp is in room 716, which is on the 700 level of the South Building. Note that the 700 level is below the 600 level, not above it.

skywalk 8

See you at FailCamp!

Categories
Uncategorized

Barry Gervin: Expression Blend for Developers @ TechDays Toronto

barry gervin 2

As I write this, we’re well into Day 1, Session 2 of the Toronto edition of the TechDays Canada conference, and ObjectSharp’s Barry Gervin is doing his presentation, Expression Blend for Developers.

expression blend

Since Expression Blend is a UI building tool that is separate from Visual Studio, it’s typically seen as a tool for designers rather than developers. However, as Barry pointed out in his presentation, the division between designers and developers isn’t so simple, especially here in Canada, where developers often wear many hats, including that of UI designer. Besides, UI design isn’t just a bit of flourish you add to a software project at the end – it’s something you’ve got to consider from the very beginning.

barry gervin 3

Expression Blend makes the development of front ends, whether Silverlight or WPF, a great deal easier. You can do in minutes with Blend what might take hours in Visual Studio, driving yourself insane with XAML editing.

barry_gervin_1

Watch this space in the coming weeks – I’m going to be writing articles on Expression Blend and using it to build rich internet user interfaces for Silverlight.

expression blend room

This article also appears in Canadian Developer Connection.

Categories
Uncategorized

TechDays Toronto 2009 Begins!

techdays_thumb Here are a couple of shots from the Toronto edition of TechDays, taking place at the Metro Toronto Convention Centre right now.

The Room

I’m the lead for TechDays’ Developing for the Microsoft-Based Platform track, which I like to think of as the best damned track in the entire conference. The pre-registration numbers for this track were pretty high, so they gave me room 718A, a large room with a capacity of about 400 or so. The rows near the front of the room have table space for the people who like taking notes with their laptops, while the back rows have more conventional lecture-style seats.

Here’s the room as seen from the back:

View of a large presentation room, as seen from the back.

And here’s the speaker’s-eye view:

View of a large presentation room, as seen from the podium at the front.

Day 1, Session 1

At the time of this writing, I’ve just finished my opening monologue in which I introduced the track and explained what it’s all about. I handed the stage over to Cory Fowler, who’s doing the What’s New in Silverlight 3 presentation. Here’s a shot of Cory in action:

Cory Fowler doing his "What's New in Silverlight 3" presentation

I like what Cory’s done with the presentation: he took the original presentation from the Microsoft TechEd conference and spiced it up with graphics from the new XBox game Halo 3: ODST, adding his own personal touch.

Cory Fowler doing his "What's New in Silverlight 3" presentation

If you’re interested in finding out what’s new in Silverlight 3, there are a couple of things you can do:

  • If you’re in or near Halifax, Calgary, Ottawa, Montreal or Winnipeg, you can still register for TechDays in those cities at the early bird rate of $299.
  • Watch this blog! I’ll be posting articles on Silverlight 3 development in the coming weeks.

A Vending Machine We Can’t Refuse

On the 600 level of the Metro Toronto Convention Centre’s South Building, right by the registration booths, are two of these machines:

The hot dog vending machine at the Metro Toronto Convention Centre. Its signs say: "Freshly grilled / Maven's Kosher Foods / Sizzlelicious!"

That’s right, it’s a vending machine that makes kosher hot dogs, on the spot, for the low, low price of five dollars. In spite of the fact that TechDays provides a free lunch, we cannot resist the siren song of this machine (Sizzlelicious!). We’ll be shooting some video around noon of us ordering and tasting a hot dog from this machine. Watch this space!

This article also appears in Canadian Developer Connection.

Categories
Uncategorized

The Manifesto of Fail and FailCamp Toronto 3

failcamp_toronto_3 

In honour of tomorrow’s event, FailCamp Toronto 3, I present The Manifesto of Fail, which was published for the FailCamp held in Philadelphia last summer.

The Manifesto of Fail

fail_ship

Failure is the default

From biological species to companies to government policies, there appears to be an Iron Law of Failure, which is extremely difficult to break.

Paul Ormerod, Why Most Things Fail

fail19

Failure can be intrinsically valuable

The knowledge that you have emerged wiser and stronger from setbacks means that you are, ever after, secure in your ability to survive. You will never truly know yourself, or the strength of your relationships, until both have been tested by adversity. Such knowledge is a true gift, for all that it is painfully won, and it has been worth more to me than any qualification I ever earned.

J.K. Rowling, Harvard Commencement Speech

fail6

We can bond through our failures

But there is an even stronger reason why we can learn from the failures of others, beyond the simple pleasure of knowing that an expert can fail too. It has to do with our ability as human beings to relate better to people in their failures than in their successes, and to learn more in the process.

Richard Farson, Management of the Absurd

fail3

And bonding over failure is a good thing

Over and over again, when people ask how they can achieve the Silicon Valley-type of opportunities in their areas, I tell them, "Celebrate failure."

Tara Hunt, Losercamp

failcopter

Also, beer is a good thing

Beer is proof that God loves us and wants us to be happy.

Ben Franklin (allegedly)

FailCamp Toronto 3

fail-owned-candle-fail

FailCamp Toronto 3 takes place tomorrow night – Tuesday, September 29th – at the South Building of the Metro Toronto Convention Centre, room 716 at 7:00 p.m.!

fail-owned-special_offer-fail

It’s a FREE event in which you’re invited to share your tale of epic fail with your peers, whether the failure was personal, business or technical. By celebrating failure, we hope to overcome the fear of failure, which in turn leads to fear of trying. We want people to unlearn the moral that Homer Simpson taught his children: “You tried, and you failed. So the moral of the story is: never try.”

failcat

We’ll start FailCamp with an opening monologue talking about failure in general, some well-known and obscure failures throughout history and why we fear failure. Then we’ll turn the microphone on you, the audience, and challenge you to tell your most spectacular and epic story of FAIL. Our “Judging Panel of FAIL” featuring Justin Kozuch of Refresh Events and Meghann Millard of Unspace will preside and decide which stories are most worthy of winning valuable FAIL prizes.

epic_beer_fail

After FailCamp, we’ll make our way to the pub. FAIL demands beer!

For more information about FailCamp Toronto 3 and to register (remember, it’s free!), visit FailCamp’s event page.

Categories
Uncategorized

The “Developing for the Microsoft-Based Platform” Track at TechDays Canada

Microsoft TechDays Canada 2009: 2 days - 7 cities - 5 tracks - 40 sessions - plus more!

In planning this year’s TechDays conference, we made some significant changes to the developer tracks: they were reformulated into:

  • A “tools and techniques” track, called Developer Fundamentals and Best Practices, for which my friend and fellow Developer Evangelist John Bristowe is the track lead
  • A “technologies” track, called Developing for the Microsoft-Based Platform, which I lead.

As the track lead for the Developing for the Microsoft-Based Platform track at TechDays Canada 2009 conference, I thought I’d take the time to talk about it and praise its virtues.

Designing the Track

Each track lead has the responsibility of designing his or her track. We pored over all the sessions from TechEd North America 2009, consulted with developers or IT pros for their opinions on what topic they’d like covered and came up with a selection of 8 sessions for each track.

When choosing my sessions, I kept these philosophies in mind:

  • TechDays is about current tools, technologies and techniques. That means talking about stuff you can get your hands on and use in production right now: Visual Studio 2008, .NET 3.5, SQL Server 2008, and so on. Visual Studio 2010, .NET 4.0 and Azure are fascinating tools and tech, but they’re not yet on the market, so they’re not in TechDays. We made a few exceptions for a couple of things that are coming out right around now: version 3.0 of Silverlight and the Expression suite and Windows 7.
  • TechDays is about giving the audience the biggest bang for the buck. It’s more than simply taking the content from the TechEd North America conference (which has a steep registration fee and you have to also factor in the costs of flying to and staying in New Orleans) and bringing it close to home with local speakers and a reasonable price tag. It’s also about choosing the content that best serves an an audience that uses Microsoft tools and tech in their day-to-day work. There’s no point in rehashing presentations that the audience has already seen a dozen times before, and neither does it do any good to cover topics that are interesting but impractical. I tried to strike a balance — in choosing the sessions for my track, I kept this question in mind: What sort of things will this audience be using that they aren’t using yet?
  • TechDays is more than just throwing random information at the audience. A track needs to be more than just a collection of sessions simply thrown together. It works best if it’s a set of sessions whose topics fit together to form a cohesive whole, almost as if telling a story. While picking out the track’s sessions and arranging them, I tried to set things up in such a way to best show the possibilities that open up when you develop on the Microsoft-based platform. 

The Developing for the Microsoft-Based Platform Track

The Developing for the Microsoft-Based Platform track breaks down into four topic areas, as shown in the diagram below:

platform_track_chart

The topic areas are:

  1. Day 1 morning: Rich UIs
  2. Day 1 afternoon: Client Tech
  3. Day 2 morning: ASP.NET MVC
  4. Day 2 afternoon: Web Services

They’re explained in greater detail below.

Day 1 – Front End: User Interface and Experience

Day 1 of the Developing for the Microsoft-Based Platform is about building the front end, that layer of our applications with which the user interacts, and about giving the user the best experience possible.

The morning will be an introduction to the latest version – version 3 – of our rich interface technology Silverlight and our rich interface-building tool, Expression Blend. In the afternoon, we’ll shift the focus to building client technology by looking at the PRISM guidelines for building applications with modular Silverlight- and WPF-based front ends and the API code pack for building .NET applications that take advantage of Windows 7’s new UI features.

The tools and technologies covered on Day 1 are:

  • Silverlight 3
  • Expression Blend 3
  • WPF
  • Windows 7
  • Windows 7 API Code Pack for the .NET Framework
  • Windows Mobile

Day 1 Morning: Rich UIs

Track Introduction
Presented by Joey deVilla
9:00 a.m. – 9:15 a,m.


Session 1: What’s New in Silverlight 3
Presented by Cory Fowler
9:15 a.m. – 10:30 a.m.
Cory Fowler Rich internet applications just got richer! Silverlight 3 is packed with new features and improvements that your users will notice, from pixel shaders to perspective 3D to animation enhancements to bitmap APIs to HD video. We think you’ll also be impressed by the features for developers, such as the updated style model, data binding improvements, better resource handling, and a tuned-up Web services stack. In this session, we’ll explore new features of Silverlight 3 as we build a Silverlight-based application using Expression Blend 3 and Visual Studio.

Session 2: Expression Blend for Developers
Presented by Barry Gervin
10:50 a.m. = 12:05 a.m.
Barry Gervin Not a designer? Overwhelmed by Expression Blend? Not a problem! We’ll show you how to use Expression Blend to create advanced and polished user interfaces for business applications, consumer applications, multimedia projects, games or anything in between. We’ll cover features of Expression Blend from a developer’s perspective and show how it works in tandem with Visual Studio throughout the development process. You’ll learn how to create professional-looking user interfaces and visual elements – even if you don’t think of yourself as an interface designer.

Day One Afternoon: Client Tech

Session 3: Building Modular Applications Using Silverlight and WPF
Presented by Rob Burke
1:10 p.m. – 2:25 p.m.
Rob Burke How do you build extensible and maintainable line-of-business applications in Silverlight and Windows Presentation Foundation (WPF)? How do you design and code to handle real-world complexity? Composite Application Guidance (a.k.a. "PRISM") offers guidance, libraries and examples – in small, free-standing, digestible chunks – that you can use to build applications with rich user interfaces that are also easier to maintain and extend. You’ll learn how to compose complex UIs from simpler views, integrate loosely coupled components with "EventAggregator" and "Commands", develop independent modules that can be loaded dynamically, and share code between Silverlight and WPF clients.

Session 4: Optimizing Your Apps for the Windows 7 User Experience
Presented by Anthony Vranic
2:45 p.m. – 4:00 p.m.
Anthony Vranic This session will show you the Windows 7 APIs that will let your applications – and your users – get the full Windows 7 experience. Learn about new extensibility methods to surface your application’s key tasks. Discover how enhancements to the taskbar, Start Menu, thumbnails, desktop elements, the Scenic Ribbon, Federated Search and Internet Explorer 8 provide new ways for you to delight your users and help make them more productive. If you want to give your users the best Windows 7 experience, this session is for you!

Bonus Session: Taking Your Application on the Road with Windows Mobile® Software
Presented by Mark Arteaga and Anthony Bartolo
4:20 p.m. – 5:30 p.m.

Mark Arteaga and Anthony Bartolo As a developer of .NET-based applications, you can extend your desktop software to the Windows Mobile-based platform using the tools available within Visual Studio®, the Windows Mobile SDK and the .NET Compact Framework. This session will give you an overview of how Windows Mobile lets you use your existing infrastructure, business logic, and desktop code on a mobile device to innovate and help solve business problems. We’ll show you how to use the familiar Microsoft .NET Framework and .NET-based programming languages like Visual C#® development tool. You will also learn about new features in Windows Mobile 6.5 such as the Gesture APIs and the Widget Framework and how to use them appropriately. With the launch of Windows Marketplace for Mobile upon us, this session will help you take the next step for application testing and submission.

Day 2 – Back End: Programming Frameworks and Principles

On Day 2, the track moves to the back end, focusing on server-side programming tools and technologies, and even wandering into the area of technique.

The morning’s sessions concern themselves with the new option for developing web applications using ASP.NET: ASP.NET MVC, the alternative framework based on the Model-View-Controller pattern, in the same spirit of such frameworks as Ruby on Rails, Django and CakePHP. The afternoon will be about writing web services using various Microsoft technologies.

The tools, technologies and techniques covered on Day 2 are:

  • ASP.NET MVC
  • The SOLID principles of object-oriented design
  • WCF
  • REST (REpresentational State Transfer)
  • SharePoint

Day 2 Morning: ASP.NET MVC

Track Introduction
Presented by Joey deVilla
9:00 a.m. – 9:15 a,m.

Session 1: Introducing ASP.NET MVC
Presented by Colin Bowern
9:15 a.m. – 10:30 a.m. 
Colin Bowern You’ve probably heard the buzz about Model-View-Controller (MVC) web frameworks. They’re all the rage because they combine speed, simplicity, control…and fun. ASP.NET MVC is Microsoft’s MVC web framework, and in this session, we’ll talk about the MVC pattern, explain the ideas behind ASP.NET MVC and walk through the process of building an application using this new web framework. We’ll also cover several techniques to get the most out of ASP.NET MVC and deliver web applications quickly and with style.

Session 2: SOLIDify Your Microsoft ASP.NET MVC Applications
Presented by Bruce Johnson
10:50 a.m. – 12:05 a.m.
Bruce Johnson Object-oriented programming makes it easier to manage complexity, but only if you do it right. The five SOLID principles of class design (one for each letter) help ensure that you’re writing applications that are flexible, comprehensible and maintainable, and we’ll explain and explore them in this session. We’ll start with a brittle ASP.NET MVC application that’s badly in need of refactoring and fix it by applying the SOLID principles. This session is a good follow-up for Introducing ASP.NET MVC, but it’s also good for developers of ASP.NET MVC looking to improve their code – or even if you’re not planning to use ASP.NET MVC. The SOLID principles apply to programming in any object-oriented language or framework.

Day 2 Afternoon: Web Services


Session 3: Building RESTful Services with WCF
Presented by Bruce Johnson
1:10 p.m. – 2:25 p.m.
Bruce JohnsonREST (REpresentational State Transfer) is an architectural style for building services, and it’s the architectural style of the web. It’s been popular outside the world of Microsoft development for a long time, but it’s quickly becoming the de facto standard inside as well. Windows Communication Foundation (WCF) makes it simple to build RESTful web services, which are easy to use, simple and flexible. In this session, we’ll cover the basics of REST and the show you how to build REST-based, interoperable web services that can be accessed not just by Microsoft-based web and desktop applications, but anything that can communicate via HTTP from an Ajax client to a feed readers to mobile device to applications written using other languages and frameworks such as PHP, Python/Django or Ruby/Rails.

Session 4: Developing and Consuming Services for SharePoint
Presented by Reza Alirezaei
2:45 p.m. – 4:00 p.m.
Reza Alirezaei The world gets more service-oriented every day, and with that comes the demand to integrate all kinds of services, including those from SharePoint. This session introduces SharePoint as a developer platform and provides an overview of how you can build and deploy custom services with it. The focus will be on developing ASP.NET and Windows Communication Foundation services for SharePoint as well as building a Silverlight client to consume them.

This article also appears in Canadian Developer Connection.