A decade ago last month, Bill Gates wrote the now-famous Trustworthy Computing email that challenged Microsoft (and the broader IT and dev community) to fundamentally improve the security, reliability and robustness of applications and code. At Microsoft, the first efforts to pursue Gates' challenge were applied in the development of Windows Server 2003, and provided an early template for what would become the Security Development Lifecycle (SDL) at Microsoft.
"10 years ago... we were doing the training that led into the Windows Server 2003 security push," said Steve Lipner, Partner Director for Program Management of Trustworthy Computing at Microsoft. "A little less than eight years ago we briefed the senior leadership team and got the authorization for the SDL going forward."
The results, says Lipner, are hard to argue with. "We launched the SDL in July of 2004. 8 years later we've made a significant difference in the security of Microsoft software."
That difference has since extended across the Microsoft software portfolio. Lipner points to fuzz testing conducted by security researcher Dan Kaminsky that showed significant reduction in discovered vulnerabilities over time. In Kaminsky's tests, Office 2003 produced 126 exploitable vulnerabilities, Lipner says. By contrast, Office 2010 produced just 7 potential vulnerabilities. "That was a 94 percent decrease across three Office releases," says Lipner.
There were challenges.
"When we started in 2004, what we were doing was initially targeting the Microsoft environment. So there were some common things that all Microsoft did, but there was a lot of variation from business group to business group, and product team to product team. We didn't want to impose any more than we had to to enable the product groups to make their software more secure," Lipner explains. "We didn't want to come in and impose needless mandates and needless uniformity. We just wanted to do the things we knew would work."
Since 2007, when Microsoft made its first public SDL release, the company has been working to carry the SDL process to the broader software development community. The aim, Lipner says, is to enable cost-effective security adoption, and the numbers seem to argue his point. An August 2010 Aberdeen Group study estimated that the average cost of remediating a single, security-related incident is about $300,000.
For companies looking to jump on the SDL train, Lipner urges developers to start simple and first grasp issues related to your specific development style and tooling. He also advices organizations to concentrate on pain points, rather than to address the broad development spectrum from the start.
"If an organization has a history of security incidents or security vulnerabilities, look at the tooling and processes in the SDL, and try to figure out which of those are highest impact on the problems you've seen," Lipner says. "That allows you to start with some quick wins and impact, and roll out the process in more of a phased manner."
Is your organization implementing a more robust security development lifecycle? We'd love to hear your takes on the effort and how it's affected both your software development process and your resulting applications. Email me at mmeditor@microsoft.com.
General Douglas MacArthur famously said during his 1951 farewell address to the U.S. Congress that “Old soldiers never die, they just fade away.” A half century later, MacArthur’s statement could just as easily apply to programming languages. Specifically, Visual Basic.
Microsoft last month announced that it was extending “It Just Works” compatibility for Visual Basic 6 applications for the full lifetime of Windows Vista, Windows Server 2008, Windows 7 and (most importantly) Windows 8. As described on the Visual Basic 6.0 Resource Center, “the core Visual Basic 6.0 runtime will be supported for the full lifetime” of these operating systems. The commitment comprises five years of mainstream support followed by five years of extended support.
Karl Peterson is a VB6 programmer and formerly a longtime columnist at Visual Studio Magazine and Visual Basic Programming Journal (where he wrote the popular VB Corner column, among others, until 2010). Peterson notes that this announcement officially puts the lifetime of the VB6 runtime past his projected retirement. And that fact may have implications for enterprises sitting on large amounts of working VB6 code, which Peterson calls “the COBOL of the 2020s.”
“Many in the Classic VB community started out back in the pre-Windows days, and are now at the point of seeing retirement on the horizon,” he says. “And the loss of that institutional knowledge at many enterprises will only further entrench the functional code base.”
Peterson says Microsoft’s decision reflects the fact that VB6 adoption went beyond the “hobbyist or shareware type author who was the guerilla in the enterprise.” He says Microsoft was likely moved to extend support because businesses still maintain VB6 code of real value, and are in no position to immediately migrate off it.
What is your take on Microsoft’s decision to extend VB6 support? And what would you like to see Microsoft do to best serve the interests of developers and organizations engaged with VB6 code?
In a few days the February issue of MSDN Magazine should be hitting mailboxes and Web browsers alike. In other words, it's time for an MSDN Magazine issue preview. Here's what's cooking for the shortest month of the year.
Our lead feature in February is "Asynchronous Programming with C++ Using PPL," by Artur Laksberg. This feature looks at the powerful asynchronous talents of C++ and how they can be used to create more efficient and scalable applications. And as Laksberg points out, moving to asynchronous development is a great idea for anyone looking to take advantage of the unique capabilities of Windows Runtime and Windows 8. This piece is also a nice complement to the trio of features we published on asynchrony in C# back in October.
February sees a continuation of a couple ongoing feature series, including the next installment of our Building HTML5 Apps series. John Dyer steps in for Brandon Satrom to pen "Practical Cross-Browser HTML5 Audio and Video," which explores the powerful media handling capabilities of HTML5. In addition to recommending useful libraries, Dyer shows how to work around issues like uneven browser support for HTML5 tags and media types. Also this month we see the latest in our Windows Phone feature series. Cheryl Simmons offers useful guidance in her feature, "Get Your Windows Phone Applications in the Marketplace Faster." The piece shows how to properly optimize Windows Phone apps so they will pass muster in Microsoft's Marketplace assessment process. Finally, we close out the three-part NuGet series, with Clark Sell's feature "Creating a NuGet Gallery."
The February issue touches on a number of strategic Microsoft platforms. In addition to the Windows Phone coverage noted above, this issue includes the feature "Building a Massively Scalable Platform for Consumer Devices on Windows Azure," by Bruno Terkaly and Ricardo Villalobos. The piece demonstrates the scalability and interoperability of Microsoft's cloud platform, showing how to use Windows Azure-hosted RESTful Web services to stream video to a large number of diverse mobile clients. ASP.NET MVC developers also earn a nod, with Jess Chadwick's "Features and Foibles of ASP.NET MVC Model Binding." As Chadwick writes, the features "will take you deep into the heart of the ASP.NET MVC model binding subsystem, showing each layer of the model binding framework and the various ways you can extend the model binding logic to meet your application’s needs."
Finally, our February feature selection includes "What’s New in Windows Workflow 4.5," by Leon Welicki, an overview of the many changes and improvements in the latest version of WF in .NET Framework 4.5.
The big news in our column lineup this month is the return of John Papa, who until 2009 wrote our popular Data Points column. He returns this month to write the new Client Insight column, which focuses on technologies and issues related to client-side development. HTML5, JavaScript, WPF, Silverlight... if it's relevant to client app development, it's relevant to his column. Given Papa's background in both data and client development, it's fitting that his inaugural column looks at the unique data binding talents of the Knockout JavaScript library. You can also read more about Papa’s return in this months Editor’s Note column.
Speaking of data, Julie Lerman's Data Points column dwells on Entity Framework 4.2 DbContext class, which she describes as a "wrapper around ObjectContext that exposes the most commonly used features of ObjectContext." It also streamlines many frequent-but-complex tasks when coding directly with ObjectContext. Joseph Fultz offers a look at Windows Azure Deployment Domains in his Forecast: Cloudy column this month, while Ted Neward's column The Working Programmer explores Tropo, a free, cloud-hosted, voice-and-SMS solution.
As ever, James McCaffrey is exploring the hard edges of programming in his Test Run column. This month he dives into an "Ant Colony Optimization," an algorithm that uses artificial intelligence techniques based on the pheromone-laying behavior of ants. Seriously. It's the latest in McCaffrey's fascinating explorations of, as he puts it, "optimization algorithms based on the behavior of natural systems."
In our January issue, Charles Petzold's long-running UI Frontiers column appeared under its new name, Touch and Go. The change reflects Petzold's ongoing focus on Windows Phone, mobile and touch-based application development. This month, Petzold shows how to play music files in the background from a Windows Phone 7.5 application and highlights some interesting quirks in the implementation of background audio.
As ever, MSDN Magazine closes with David Platt and his Don’t Get Me Started column. Look for his musings on smartphones and the odd way in which they both pull people together and push them apart.
Got a topic, issue or technology you’d like to see addressed in MSDN Magazine? Please let me know! Leave a comment here or email me at mmeditor@microsoft.com.
Earlier this month I posted a blog post that followed up on the Editor's Note column (A Quarter Century and Counting) appearing in the January issue of MSDN Magazine. In the column, I recounted Charles Petzold's amazing 25-year run as a regular writer and columnist for the magazine. In this, the second of two blog posts about that column, I follow up our initial conversation with a few additional questions.
Desmond: Earlier you mentioned tablet and phone as a third revolution. Of course, your Touch and Go column (previously, UI Frontiers) focuses on Windows Phone and Windows touch-based devices and applications. Given what you observed with the GUI and Internet/Web revolutions, any thoughts on what might be ahead in the mobile/touch space?
Petzold: Many years ago I read on article in a major news magazine about a new fad that was sweeping Japan. The author of this article was certain this fad couldn’t possibly make it in America because American families would simply not sit around the living room singing songs together while the lyrics flashed by on the TV set. Well, as we know, karaoke did become popular in America, but in a completely different setting -- the bar rather than the living room.
The way in which technology evolves and adapts is very mysterious to me, which is why I stay away from industry punditry. The only expectation I have is of the unexpected.
Desmond: You talked about the importance of social connections between PC Magazine and MSJ/MSDN Magazine. Beyond the obvious shared roots and interests, it seems like physical proximity really sustained those links. Do you believe Internet-borne interaction can sustain the “socializing aspect†that you found so vital to the magazine?
Petzold: I’m on Facebook every day, and it’s fun to exchange thoughts and opinions with friends and “friends.†But Facebook is a very poor imitation of actual human contact. Tony Rizzo once organized a dinner with about 10 MSJ authors and Bill Gates in a private room of a sushi restaurant, and we basically spent a couple hours eating sushi and listening to Bill talk about the computer industry. I don’t see how that experience could possibly be imitated in an online chat room.
What’s most revealing on Facebook is how fragmented the computer industry has become. Everybody seems to be working on something different, and it’s impossible for any one person to be familiar with all these different technologies. We’ve all become specialists. There’s no longer an industry event like Comdex that virtually everybody attends, no longer books that everybody reads, no longer languages that everyone speaks.
Desmond: You know, there was a time, not at all long ago, when we all read the same newspapers and watched the same TV shows (at the same time, even). Those common touch points have faded as the Internet has enabled personalized media delivery and a host of narrowly focused information sources.
But in the arena of software development, I take your point: We live in an era of layered abstraction and vast frameworks. So the question is, where and how can developers sustain a common ground? Is it in the higher level logic and the technique of problem solving, project management and programming methodology?
Petzold: This is a problem, and it doesn’t seem to be getting any better. But the extreme biodiversity that exists now is perhaps an indication that the art and engineering of computer programming is still in its infancy. And that suggests we need to keep our minds open -- to evaluate new frameworks and programming languages with the thought that they may actually be better than what we’re using now.
I had this experience just recently when working with the new asynchronous file I/O classes in Windows 8. If the best is yet to come, magazines such as MSDN have an obligation to help keep developers informed of the cutting edges of programming technologies.
This month MSDN Magazine launches a new online column focused on HTML5 and Web development, called Web Development Report. Penned by Rachel Appel, a Microsoft senior developer evangelist in the New York City area, the new column explores the fast-changing arena of standards-based Web development, with a focus on HTML5 and JavaScript.
Appel's inaugural column focuses on mobile Web development, looking at how HTML5, jQuery Mobile and ASP.NET MVC 4 can be used to target multiple mobile platforms from a single codebase.
Appel is hardly new to Web development. She's been working in Web programming since the days of Classic ASP, and was an early adopter of the .NET Framework, wrangling with the initial alpha versions of the platform. Of late she's been busying supporting Microsoft's efforts with ASP.NET and Web programming in general, and has been engaged with HTML5 as it emerges as an important target for Web development.
Here at MSDN Magazine we're seeing strong reader interest in HTML5 development and related topics, and Appel for one says she isn't surprised. She notes that many developers want to create online games using Canvas, while others are focused on business features such as HTML forms. But all these audiences share a common ground. "The common questions and concerns are cross platform development and Web standards," she says, "and rightfully so, since standards make it easier for everyone."
The Web Development Report will appear on the MSDN Magazine Web site on the 15th of each month (or the first business day after the 15th). Do you have a topic your want Rachel to cover? Email Appel at rachel.appel@microsoft.com, or leave a comment here.
In the current January issue of MSDN Magazine, I wrote about MSDN Magazine columnist Charles Petzold and his 25-year affiliation with our publication (A Quarter Century and Counting). It's amazing to think how far the magazine has come since the autumn of 1986, and how much the industry (and Microsoft!) has changed around it. Petzold offered plenty of insight about the early days of MSDN Magazine, as well as some cogent thoughts about where we might be headed. Here is a transcript of our conversation.
Michael Desmond: Charles, you wrote an article for the first issue of Microsoft Systems Journal in October 1986, and MSJ later became MSDN Magazine, which means that you’ve been writing for this magazine for 25 years. Congratulations!
Charles Petzold: Congratulations yourself on the 25 year anniversary.
Desmond: How’d you get started at MSJ?
Petzold: Connections! In 1985-86 I was writing a lot for PC Magazine, and spending a lot of time at the magazine offices, which was about a 20-minute walk from my apartment in New York City. PC Magazine’s editor was Bill Machrone, one of the great publishing geniuses of all time, and he had put together a great staff and a nice group of writers.
At the time, PC Magazine was published by Ziff-Davis, and one of the, I think, Executive VPs at Ziff-Davis was Jonathan Lazarus -- another publishing genius who had pioneered the controlled-circulation free weekly, PC Week, which was essential at the time for understanding what was going on in the computer industry.
Jon was a major fan of the Apple Macintosh, and consequently had great hopes for Microsoft Windows. I had been playing around with Windows programming since Windows was in beta, and then after Windows 1.0 was released in November 1985. It was mostly silly stuff I was doing, but I was having fun, and that’s how I was introduced to Jon -- as somebody doing silly stuff with Windows.
So I think sometime in 1986 Jon Lazarus left Ziff-Davis to publish a magazine contracted by Microsoft through his consulting firm, which was rather whimsically named H. Roark & Associates. Originally the magazine was supposed to be exclusively about Windows programming, but they chickened out because there was no indication that Windows would be successful. They took a safer route that it would be about programming for all Microsoft operating systems. And because Microsoft was always rather enamored of IBM, and IBM published IBM Systems Journal, they called it Microsoft Systems Journal.
Jon began recruiting writers for MSJ that he knew from various places, including me.
Desmond: What were the early days like?
Petzold: I’m not sure how much of the MSJ early days it would be proper to disclose publicly! Jon’s consulting firm -- such as it was -- had an office on, I think, 3rd Avenue around 42nd Street. It was a tiny office, and he shared it with an agent who I think specialized in clients who wanted to become newscasters and television personalities, so the office was filled with stacks of videotapes. Jon had hired the talented Michael Longacre to design and lay out the magazine, and for at least a couple years, MSJ was created entirely in PageMaker on Macintoshes, and late-80s Macs at that.
For several years, MSJ was the only magazine that ran articles about Windows programming. Certainly PC Magazine wasn’t ready to go in that direction, which is one reason why I was able to write for both magazines at the same time. There was virtually no overlap. It was through my connection with MSJ that I was recruited by Microsoft Press to write the book that became the first edition of Programming Windows in 1988.
Desmond: You’ve lived through the reigns of several editors. Anyone in particular stand out?
Petzold: At one point, Jon asked me if I’d like to be Technical Editor of MSJ, but I would have made a terrible editor. I don’t even like talking to people on the telephone, let along asking people to do work for me. One of the great things about writing is that you do it by yourself. So I’ve been happy being a writer. I’ve never had ambitions to do anything else.
Eventually Tony Rizzo was brought on as Technical Editor and later Eric Maffei took over the editorship, and both these guys are really sharp, and really good at their jobs, and made much better editors than I would have.
But what I remember most about those early years was the socializing among the editors and writers. We were all friends as well as coworkers. MSJ maintained a social connection with PC Magazine, partially from that early connection with Jon and Ziff-Davis, and perhaps because these were the only two computer magazines published in New York City. That social connection continued for years: PC Magazine people and MSJ people would frequently hang out together at industry events such as Comdex, and get together for parties and dinners in New York City. And sometimes editors would hop from one of the magazines to the other. Tony Rizzo went from MSJ to PC Magazine, and Sharon Terdeman, who works for MSDN Magazine now, I originally knew when she was at PC Magazine.
I always thought of the socializing aspect of magazines to be extremely important, because as we were socializing, we also seemed to develop a lot of ideas and a lot of connections. I guess by the mid-90s, that social aspect of MSJ and PC Magazine had pretty much disintegrated. Or maybe these dinners are still happening and they just stopped inviting me!
Desmond: Did you ever think you’d be writing for the magazine 25 years later?
Petzold: I wouldn’t have believed that the magazine would survive for 25 years. Most magazines don’t last nearly that long. Even so, MSJ went through a name change and ownership changes during that time, so the passage hasn’t exactly been smooth.
Desmond: What about the changes in the industry itself?
Petzold: Gosh, in 1986 there were still people arguing that the personal computer didn’t need graphics! Twenty-five rows of 80 characters of text were just fine for those folks. The graphical user interface was the first big revolution in the PC industry, and I’m proud to have been an early supporter of Windows and later the multimedia enhancements, which brought sound and music and movies to the PC.
The second big revolution over the past 25 years was, of course, the Internet and World Wide Web, and I didn’t see that coming at all! Of course, a lot of us didn’t see it coming, but it brought a profound change to computing from both the user and developer perspectives.
We’re in the middle of a third revolution right now, and that’s the ascendance of computers whose form factor is basically a flat screen that you can hold in your hands. Because we only have two hands, we have two different sizes of these devices. One is small enough for one hand, and the other is comfortable for two hands.
I think that for many users, a phone or a tablet will be their primary computer. For those of us who need an actual keyboard and large screen to write or to code or to do spreadsheets, we’ll probably still need a desktop machine, but I think that multi-touch is going to revolutionize the desktop as much as it’s revolutionized portable computing.
Throughout these revolutions, MSDN Magazine has been in the forefront, but always from a practical coding perspective rather than an abstract theoretical one. The magazine continues to be the primary place for developers to learn about these new technologies, at least as they affect the Microsoft-centric development world.
Desmond: There are a lot of aspiring writers out there. Any advice for people hoping to launch a sustained career as a writer?
Petzold: Do you really want to end on such a depressing topic?
Look, I love writing. I love the challenge, and I love the learning process that comes as a result of organizing your knowledge and thoughts well enough to put it all down in a series of consecutive coherent paragraphs. And on the up side, there have never been more writing opportunities than now. Many online magazines accept contributions, anybody can create a blog, and self-publishing a book has never been easier.
But the tricky part is generating some income from this writing, and that’s often desirable. As we know from basic economics, when you have a lot of people generating product, the worth of this product decreases. Book sales have plummeted over the past couple decades, and the developer market has fragmented so much that it’s difficult to even conceive of a book topic that has more than a few thousand potential readers. Even MSDN Magazine no longer pays its writers what it did in the past.
I’ve been through the ups and downs. I quit my nine-to-five office job in 1985 to pursue a full-time freelance writing career, and for almost 20 years I was able to support myself entirely with book royalties and magazine articles. But now I can’t. Over the past several years I’ve had to supplement my income with consulting, which is fun at times, of course, but I’d rather be writing.
I guess the most important advice is this: Go for it. Write, write, write. It’s a great way to learn, and a great way to share. But don’t give up your day job just yet.
This month's Don't Get Me Started column (Lowering Higher Education), by the ever-irascible David Platt, looks at the broken system that is higher education in the United States. As Platt notes in his column, the inflation-adjusted price of a college education has quadrupled since 1982, creating what he calls "an academic bubble" similar to the recent stock market and real estate bubbles.
In fact, Platt is in no mood to mince words about what he sees as a woefully inefficient system that charges too much and does things entirely the wrong way. The first draft of Platt's January column, before it had passed through the sausage grinder here at MSDN Magazine World Headquarters, kicked off like this:
The Internet is set to hammer the higher education industry in the same way it hammered the newspaper industry. I hope that my industry will respond to this challenge with creativity and imagination that will make the world a better place. I expect to find the landscape radically different when my daughters start college, 9 years from now.
As the father of three children, including a high school freshman, I really, really hope Platt is right. So, apparently, do a lot of MSDN Magazine readers, who have responded to Platt's column with opinions and perspectives of their own. As Platt told me, the structural issues in college education have been "festering for a long time." Now those issues have reached a breaking point.
But just as the music and movie industries both fought tooth and nail against each technological advance, from VCRs to MP3 players, Platt expects universities to struggle for the status quo.
"Well, you know that the academic establishment is going to fight like hell to keep this new model from succeeding, in order to protect their jobs," Platt says, before drawing a parallel. "The academic establishment has lost its control over the delivery channel, as has the newspaper industry. And like the newspaper industry, they cry out that their control is necessary for the benefit of humankind. Too late. Adapt to the new reality or die."
So what might a sea change in university education mean for software engineering? Platt hopes we see a long overdue focus on practical programming skills.
"The academic establishment considers anything practical to be a lesser species of being, a snobbery almost Victorian in its aloofness," Platt says. "And partly it’s because software engineering has not yet managed to split itself off from computer science, as computer science split itself off from mathematics perhaps 30 years ago."
Ultimately, he says, it's up to employers to recognize the benefit of practical software development training. But the flexibility and innovation promised by Internet-fueled higher education promises to at least up end the status quo.
"The new model will succeed if and only if employers accept the new types of degrees," he says. "I think they probably will, and in fact they may even come to value them more than the classic model."
Last month Jeff Smith wrote a feature article titled How To Translate Common Design Principles To The Windows Phone. In it, he addresses some of the design principles of the Metro-style UI, which developers must master to create effective apps for the Windows Phone platform. As Smith writes in the article: "Metro not only dictates a visual design standard, but it also has several navigation standards that developers need to grasp if they want to develop applications for Windows Phone." I followed up with Smith to ask him a few questions about Windows Phone application design. Michael Desmond: You talk about the iPhone creating its own mobile standards that developers and designers have been quick to emulate. In that respect, is it incumbent on these developers to "unlearn" their assumptions about application design when targeting Windows Phone? Jeff Smith: It’s not really about unlearning. It’s about thinking more about what users already experience with their operating systems on their phones. Mobile development is very new, and for its short lifespan developers were asked to create applications for iOS. Now with so many different operating systems, developers need to pay attention to the devices for which they are creating applications. Desmond: What are some of the most common design mis-steps that mobile developers tend to make? Smith: I think one of the biggest mis-steps mobile developers tend to make is believing that applications can simply be scaled down from desktop to mobile. Most of the experience has to be rethought from the ground up to work properly for mobile. Desmond: As you note, the Metro UI is based on street and airport signage. Can you provide insight into why these types of signage were used as touchstones for the UI? Smith: A great resource on Metro UI is the UI Design and Interaction Guide for Windows Phone available here. Most people don’t know this but Metro is specifically based on the street signage for Seattle’s King County Metro System. According to Microsoft it is meant to encompass the following five characteristics: 1. Clean, light, open and fast; 2. Content, not chrome; 3. Integrated hardware and software; 4. World-class motion; 5. Soulful and alive. Desmond: With regard to Panorama and Pivot, can you provide insight into when one might be used over the other? Also, are there any system implications with these controls, such as system resource usage and performance, that might sway decision making? Smith: Panorama controls are part of the core visual experience for Windows Phone, though they are not required to be used in applications. The main difference is Panoramas show hints of the next category and its contents. Pivot controls simply show you the next category, but not its contents until you swipe. I think Panoramas deliver a great experience and great visual effects, but they may not always be applicable to every application. You just want to be sure that you use one or the other these controls; the controls are never supposed to be combined because their gesture-based navigation would contradict each other. Microsoft did a great job at creating a high performing OS, so I wouldn’t be swayed to not use either one of these great controls.
Last month Jeff Smith wrote a feature article titled How To Translate Common Design Principles To The Windows Phone. In it, he addresses some of the design principles of the Metro-style UI, which developers must master to create effective apps for the Windows Phone platform. As Smith writes in the article: "Metro not only dictates a visual design standard, but it also has several navigation standards that developers need to grasp if they want to develop applications for Windows Phone."
I followed up with Smith to ask him a few questions about Windows Phone application design.
Michael Desmond: You talk about the iPhone creating its own mobile standards that developers and designers have been quick to emulate. In that respect, is it incumbent on these developers to "unlearn" their assumptions about application design when targeting Windows Phone?
Jeff Smith: It’s not really about unlearning. It’s about thinking more about what users already experience with their operating systems on their phones. Mobile development is very new, and for its short lifespan developers were asked to create applications for iOS. Now with so many different operating systems, developers need to pay attention to the devices for which they are creating applications.
Desmond: What are some of the most common design mis-steps that mobile developers tend to make?
Smith: I think one of the biggest mis-steps mobile developers tend to make is believing that applications can simply be scaled down from desktop to mobile. Most of the experience has to be rethought from the ground up to work properly for mobile.
Desmond: As you note, the Metro UI is based on street and airport signage. Can you provide insight into why these types of signage were used as touchstones for the UI?
Smith: A great resource on Metro UI is the UI Design and Interaction Guide for Windows Phone available here.
Most people don’t know this but Metro is specifically based on the street signage for Seattle’s King County Metro System. According to Microsoft it is meant to encompass the following five characteristics: 1. Clean, light, open and fast; 2. Content, not chrome; 3. Integrated hardware and software; 4. World-class motion; 5. Soulful and alive.
Desmond: With regard to Panorama and Pivot, can you provide insight into when one might be used over the other? Also, are there any system implications with these controls, such as system resource usage and performance, that might sway decision making?
Smith: Panorama controls are part of the core visual experience for Windows Phone, though they are not required to be used in applications. The main difference is Panoramas show hints of the next category and its contents. Pivot controls simply show you the next category, but not its contents until you swipe. I think Panoramas deliver a great experience and great visual effects, but they may not always be applicable to every application.
You just want to be sure that you use one or the other these controls; the controls are never supposed to be combined because their gesture-based navigation would contradict each other. Microsoft did a great job at creating a high performing OS, so I wouldn’t be swayed to not use either one of these great controls.
Last month Marshal Datkowitz penned a Web feature for MSDN Magazine titled A Mobile Phone Is Not Just a Small Computer. A senior user architect in the User Experience Group at Infragistics, Datkowitz warned that developers who aim to simply shrink PC applications to mobile device form factors are "missing the point." He says developers must commit to simplicity and elegance if they want users to get the most out of their applications.
I caught up with Datkowitz after we had published his article. Here is what he had to say.
Michael Desmond: Do you find that new mobile developers fully appreciate the unique character of handheld platforms like Windows Phone?
Marshal Datkowitz: I think Windows Phone is a whole new ball game for developers. First they need to bone up on Metro, which is very different from anything they have ever seen before. To many, this OS is a totally different paradigm that they need to learn. Secondly the physical challenges and advantages of the device must be learned and embraced. I have found there is quite a learning curve to climb, but once done, developers really excel.
Desmond: How would you compare the transition to mobile app development with previous sea changes in application design and development, such as with the introduction of the GUI and browser-based applications?
Datkowitz: I think it is similar but not as radical. The mobile device is still a GUI but with hardware and human factor differences. This is more evolutionary than revolutionary change.
Desmond: It seems like mobile developers must adopt a less is more approach with a mobile UI. How can developers go about making good decisions when working to pare down the interface so users can get in and out fast?
Datkowitz: In general, less is more in most situations. I have yet to see any application that could not be made more simple and subsequently more elegant. In the mobile space simplicity is more critical; we don’t get a second chance here. We must all be that more focused when it comes to mobile.
Desmond: Is there a particular application you know that has done a great job of mastering the principles you wrote about in your article?
Datkowitz: There are a lot of really good applications coming out. One that I recently took note of is the new Fidelity Investments app. They did a great job of taking an already comprehensive and easy to use Web site and focused on making it work in the mobile space. It doesn’t do everything, but that’s good -- it can’t. But what it does, it does very cleanly.
Desmond: One issue that intrigues me is the challenge faced when you try to port (or at least surface functional elements of) a desktop business application to a mobile platform. It seems there can be so many constraints -- in terms of data presentment, complexity of the targeted task, etc -- that it may be very difficult to really mobile-enable these kinds of apps. Any general thoughts on how developers might start thinking around that problem?
Datkowitz: I have been involved with several projects just like that; I’ve found that trying to move each function over just doesn’t work. The best thing to do is to look at the function and then consider how best it can work on the device. Many functions need to be redesigned from the ground up, others can just never be ported in the first place. Go back to what the user really needs in the environment and re-imagine how it can be accomplished. Think about the hardware, think about the visual space, and think about how best to address users’ needs.
It's been four full days since Thanksgiving, and I'm still recovering from tryptophan poisoning. Fortunately, my drowsiness isn't holding things up at MSDN Magazine, where we soon expect to roll out the December issue.
Leading things off in December is Bill Kratochvil's feature titled The Model-View-Presenter-ViewModel Design Pattern for WPF, which delves into the history of design patterns and explores how the MVPVM pattern can improve extensible enterprise applications. Next in line is Brandon Satrom's monthly HTML5 fix, titled Integrating Geolocation into Web Applications.
Andrew Richards offers help for developers confounded by cryptic memory dumps when troubleshooting applications. His article, Writing a Plug-in for Sysinternals ProcDump v4.0, shows how to interact with the ProcDump utility and underlying DbgHelp API. Speaking of troubleshooting, Adam Tuliper this month kicks off a two-part feature (Hack-Proofing Your ASP.NET Applications) that helps you identify and deal with some of the most common vulnerabilities in ASP.NET applications.
The Visual Studio ALM Rangers are back this month for another quarterly installment of their features series on team development, this time titled Rise of the VM Factory. Brian Blackman, Paul Meyer and Willy-Peter Schaub dive into the VM Factory reference implementation, which shows how to automate the creation of virtual environments using a nearly fully automated and consistent factory strategy. Finally, Adi Shavit offers a change of pace with his feature, Saving and Reusing Video Encoding Settings.
Our columnists are hard at work. Dino Esposito takes on the challenge of implementing a context-sensitive progress bar to report on remote operations in an ASP.NET MVC application -- a problem given the inherently stateless nature of the Web. Kenny Kerr is back with the last of his series of Windows with C++ columns on the Windows 7 thread pool, while Joseph Fultz puts the finishing touches on his series of Forecast: Cloudy columns about the Windows Azure AppFabric Services Bus. Julie Lerman rounds out the front-of-book columns with her Data Points installment titled Handling Entity Framework Validations in WCF Data Services.
The back pages of the December issue of MSDN Magazine include Ted Neward's examination of Parser Combinators in his The Working Programmer column, and Charles Petzold's UI Frontiers column called Video Feeds on Windows Phone 7. Of course, James McCaffrey is on hand with his latest Test Run missive exploring the maximum clique problem, this time using tabu algorithms.
As ever, David Platt gets the last word around here. His Don't Get Me Started column remarks on the passings, just three days apart, of a pair of computing legends -- Steve Jobs and Dennis Ritchie.