Entries in Windows 7 (15)

Sunday
Mar272011

Kate Gregory on Channel 9!

Kate Gregory on Channel 9

Kate Gregory (@gregcons) is a developer’s developer. (And, she’s Canadian too!) She’s smart, funny and incredibly talented. So, it’s no surprise to me when she’s featured on Channel 9. Recently, she was interviewed by Charles Torre about C++:

You may remember that last year, she and Richard Campbell hosted a series of events called the Building Awesome Apps for Windows 7 Community Tour. Its purpose was to show you how to build applications that targeted many of the unique capabilities of the Windows platform – in particular, Windows 7. Unfortunately, we weren’t able to cover all of the content we wanted. So, Kate and I decided to follow up the tour with a series of screencasts that we agreed to publish on Channel 9. Earlier this month, we published one of those screencasts, entitled “Windows 7 Taskbar Integration for MFC Applications”:

Yesterday, we went ahead and published another two screencasts on Application Restart and Recovery (ARR). This is a feature that enables your applications to gracefully recover from crashes or system restarts. Also, it’s a feature that’s supported in both native and managed code. Check it out!

Application Restart and Recovery on Windows 7 in Managed Code

Application Restart and Recovery on Windows 7 in Native Code

Also, here’s a great video featuring trigger started services on Windows 7:

Saturday
Jan222011

Native Extensions for Microsoft Silverlight (NESL)

If you’re building an application for the Windows platform, you’re probably aware of the new capabilities of Windows 7. Features like the new Windows Taskbar with Jump Lists, the Windows Sensor and Location platform, and, of course, support for rich user interactions through touch – these are just a few of the awesome capabilities of Windows 7 that developers can support in applications today.

For developers building Windows 7 applications with managed code, we have the Windows API Code Pack, a source code library designed to help managed code developers target key features of Windows without forcing them to resort to Platform Invocation Services (P/Invoke) or COM Interop. Moreover, it abstracts all of the heavy-lifting away, leaving you with a clean API for you to target.

Enter Silverlight OOB applications.

When showing the Windows API Code Pack to many developers across Canada, I would get the same question over and over again: How can I target these capabilities of Windows 7 that you’ve shown me, but in Silverlight 4 OOB applications? Until recently, I would answer this question by describing how Silverlight 4 introduced interoperability with local COM components and thus, a means to an end. In other words, a way of getting to these capabilities but not without a great deal of heavy-lifting; indirectly through custom COM automation components and lots and lots of COM interop.

Enter Native Extensions for Microsoft Silverlight (NESL). From the project’s description (with emphasis by me):

Silverlight 4 introduced the ability for Silverlight applications running out-of-browser with elevated trust on Windows to access COM automation components. This in turn made it possible for Silverlight developers to leverage the automation capable Windows platform API’s and object models from application software such as Microsoft Office products in their OOB applications via COM automation.

However, a large majority of the Windows platform API’s today cannot be accessed from Silverlight this way. Some do support COM, but do not support automation; while the others are only accessible through a native language like C or C++.

The Native Extensions to Microsoft Silverlight(NESL) libraries attempt to alleviate this problem by providing COM automation components that act as wrappers over select Windows API’s to make them accessible from Silverlight 4. NESL is an evolving set of libraries, where each phase of the project may add wrappers to additional Windows API’s.

In short, Native Extensions for Microsoft Silverlight provides a mechanism of targeting Windows 7 capabilities like the new Taskbar with Jump List integration, the Windows 7 Sensor API, Windows 7 Speech-to-Text and Text-to-Speech, and much more. Specifically, here are the APIs covered in NESL v1:

Very nice.

Yesterday, NESL version 2.0 Preview Build was made available! Here’s what’s new:

  • New Features
    • Touch Features
      • Gesture support
      • Manipulation processing support
      • Inertia processing support
      • Touch hardware information
  • New Feature Demos for Local Encoding, Portable Devices, Touch and Sensors
  • Bug fixes

Awesome stuff! If you’re building Silverlight 4 OOB applications and you’re looking to target capabilities of Windows 7 then make sure to check out theNative Extensions for Microsoft Silverlight.

Finally, make sure to check out the following resources:

Thursday
Jan132011

"The Chase Film" by Intel (on Windows 7)

From the video's description:

To build excitement around the 2nd Generation Intel® Core™ i5 processor, Intel is launching an action-adventure video titled "The Chase." The spot demonstrates the performance capabilities of the new processors by creating an action-movie style chase sequence that takes place through a wide variety of program windows on a computer desktop.

Clever stuff.

Thursday
Dec302010

The Future of Technology - Windows 7 + Windows Live

Say what you will about advertising, there's something special about this video:

Technology is supposed to help make life easier, but sometimes it leaves us even more frustrated and disconnected. See how Windows 7 + Windows Live changes everything.

Awesome stuff.

Saturday
Dec112010

Q&A with Kenny Kerr on C++, Window Clippings and Micro-ISVs

Kenny Kerr is a software developer and entrepreneur. He is passionate about software and getting it done right. His new company recently launched Window Clippings 3, a screen capture tool designed to produce the highest quality screenshots. You can follow Kenny on Twitter at @kennykerr.

1. Who are you?

I am a husband and father of five. We live in OntarioCanada. I’ve been developing software for twelve years and most of it on Windows with C++ and C#.

2. What are your interests around software development?

I enjoy writing software for Windows. It has such a rich set of libraries for building applications and there’s always more to learn. I prefer using C++ on the client because it affords me a great deal of control and expressiveness, which is quite rewarding.

3. What interests you about C++?

C++ is such an intriguing language for a few reasons. It has a collection of powerful features. You can use any number of these features individually but it gets particularly interesting when combined together in different ways. It helps to look at the evolution of C++ and see that the full extent of its power has only become known over time as the community of developers experiment with the building blocks that the language provides. As the next wave of standardization plays out, I anticipate even more innovation from a language that has already delivered much.

4. What are some of the more exciting aspects of C++?

C++ allows you to blend very low level techniques with high level abstractions very efficiently and in ways that continue to surprise me. I can design an elegant library that is easy to understand and simple to use while hiding a very complex or efficient implementation behind the scenes. It is a language ideally suited to library developers. It is why C++ can go so far with relatively few language changes or additions. On the other hand, having some new language features to play with is always exciting. Visual C++ has begun to introduce a handful of core language improvements as part of C++0x that make writing libraries and applications simpler and with greater expressiveness.

5. Recently, you kicked off a blog series entitled, “The new C++ for the new Windows”. Tell us a little about it.

I have spent the last year getting to know many of the additions to C++ that form part of the upcoming standard for the language. This includes language improvements as well as additions to the standard library. After I had spent a few months using these new features in production, I started looking at the way I was developing applications for Windows and began to realize that the code was overly complex. Part of it came from relying on outdated libraries that I felt were no longer helping me to be more productive but instead only helping to form bad habits. I also realized that I needed to embrace the Standard Template Library (STL) and discard any libraries and techniques that didn’t play nicely with it. “The new C++ for the new Windows” is my attempt to share some of these ideas and to put a more modern spin on native C++ development for Windows. Many developers are introduced to Windows development with C++ via libraries such as Microsoft Foundation Classes (MFC) and the Active Template Library (ATL), which are really quite old and outdated as far as current best practices go for the use of C++. I want to show developers that there is a better way to go about writing Windows applications.

Editor’s Note: You can read Kenny’s first post in his blog series entitled, “The new C++ for the new Windows” here: “The new C++ for the new Windows / Part 0 / Putting bugs into buckets”.

6. What is Window Clippings?

Window Clippings is a screen capture tool that I developed mostly in my spare time over the last few years. It is designed to produce the highest quality screenshots with as little effort as possible from the user. The latest version is specifically engineered to perfectly capture the appearance of application windows on Windows 7.

7. What inspired you to build Window Clippings?

A few years ago, I started using Microsoft OneNoteand noticed its neat screen capture feature called “Create Screen Clipping”. It allows you to easily drag your mouse across the screen to select a region which would then be copied into a OneNote page. I immediately thought that it would be useful if I could use a similar approach to accurately capture windows instead with just a click of the mouse. It started in the Windows XP days with windows having simple rounded corners but it put me in a good position to support today’s windows produced by Windows 7 by means of desktop composition with its translucency and shadows.

8. How did you develop Window Clippings?

Window Clippings was developed using Visual C++ using only native code. It relies on only those libraries that are included with Visual C++ and Windows itself. Image processing for example is done using Direct2D and the Windows Imaging Component (WIC) framework.

9. What's your take on the state of the Micro-ISV today?

The concept of a Micro-ISV is important as it allows software developers to be regarded and recognized as craftsman in their own right. I would love to see more developers making the leap as entrepreneurs. The challenge as a Micro-ISV is to somehow get your wares into the global marketplace without the marketing budget of the likes of Microsoft and other software corporations.

10. What advice would you have for developers considering the Micro-ISV route?

Having only recently made the leap myself I cannot claim to be in a position to offer that much advice. I will however say that it is going to be more work than you image but the rewards of building something that you can truly call your own cannot be measured.

11. What are you reading these days?

I read a lot of books and in different fields. As an entrepreneur you need to be knowledgeable and educated in many different areas of life. You should also be determined to do things right. The more you know the better you will be at getting it right the first time. I recently read Sanderson’s book on ASP.NET MVC and found it quite helpful as I hadn’t done web development in a long time. If you’re looking for inspiration and advice on starting your own business I recommend Growing a Business by Paul HawkenAdvanced Windows Debugging by Mario Hewardt and Daniel Pravat is another excellent book to have around. Finally, if you’re so inclined then pick up a copy of Make it Right by Canada’s own Mike Holmes.