Raw Notes from Redmond
During the first week of May InfoQ went to Redmond for an informal meeting to discuss emerging trends. Normally when we go on this sort of fact-finding mission the reporter’s notes are off the record but we asked for permission to publish them as-is. With the exception of removing email addresses and one piece of NDA material, these are the notes shared within our editorial staff.
David Salamon, Senior Product Manager Visual Studio Competitive Strategy
Our guide for the first day and a primary point of contact.
The days of .NET only or Java only are gone and they are most likely never coming back. The focus needs to be on how we can integrate various platforms.
The massive reorg we’ve been hearing rumors about is real, but it is also no big deal. Externally everything is the same, internally they consolidated various functions for developer into a common group in order to be better aligned between the engineering and business groups. (This relates specifically to the changes in the developer division; a couple more changes occurred across the server & tools business that David did not comment on.)
- Using a Java backend with a Windows Phone app.
- Using a .NET/WCF backend with a Java, Android, or iOS front end.
Scott Hunter, ASP.NET
Why jQuery instead of Prototype or another library? Because it is being used by 40% of sites and is expected to grow to 55% this year.
Heavy emphasis on using open source for ASP.NET. Reasons given:
- We don’t have to build it if someone has already done it for us. (major philosophy change)
- Browsers change too fast for our normal development cycle to keep up
Modernizer is an essential tools for moving forward with HTML 5.
Web Matrix is the tool for Web Pages, their lightweight IDE to compete directly with PHP.
Three ways to create web pages using ASP.NET and Visual Studio:
- Web Pages: Extremely light weight, easy to build pages. No infrastructure needed, very much like PHP or classic ASP. Full control over the HTML being generated.
- MVC: Same light-weight view engine as Web Pages, but backed by the full MVC framework. Full control over the HTML being generated. Upgrade cycle is approximately 1 year.
- Web Forms: Component-based web development. Use when time to delivery is essential. Especially suited for internal development where full control over the look and feel isn’t essential. Upgrade cycle is tied to the core .NET Framework.
All three techniques can be used in the same website; there is no need to restrict yourself to only one model.
Web Forms still represents over majority of all ASP.NET-based sites. Heavy emphasis on moving features pioneered in ASP.NET MVC into Web Forms.
The Razor view model was designed for Web Pages first, then adopted by MVC 3.
Support for both HTML 5 and down-level browsers is essential. But how to do it?
- Do feature detection not browser detection using Modernizer
- Web Forms could render different code depending on the browser capabilities
- “This is a *possible* ASP.NET feature. If there is only a Default.cshtml file we would serve it to any client. If the device is a mobile device we could look for Default.m.cshtml first and fallback to Default.cshtml if not found. We are considering such an approach in the future.”
These are all ideas they are considering, no specific features have been planned.
- The role of open source in ASP.NET
- Web Forms, Web Pages, MVC: When to use each in your website
- Strategies for supporting both HTML 5 and down-level browsers
Lisa Feigenbaum – Visual Studio/Managed Languages
Python Tools for Visual Studio are being developed by Microsoft’s Technical Computing division. InfoQ Reference: http://www.infoq.com/news/2011/04/VS-CPython
VBA – Waiting for contact information. (Provided Jay Schmelzer’s name via David.)
VB/C#: Currently there is an equal adoption rate and an equal number of questions for each inside Microsoft’s forums. As expected, the way each is being actually used greatly overlaps
Three areas of emphasis:
F# is NOT part of the language co-evolution. It is being built for a more targeted audience than VB/C#, which are general purpose programming languages.
Currently Lisa recommends IronPython for embedded scripting. There is a lot of desire, both from Microsoft product teams and outside developers, for a more robust story for embedded scripting.
We really need a queue that focuses on databases, both traditional ones and NoSQL. That would require hiring three to five editors with a deep understanding of ORMs and DBA credentials.
I requested better ways to handle auto-implemented properties in C#/VB, and she suggested I submit a one-page proposal. Specifically for the situation where we need to support IPropertyChangeNotification in WPF/Silverlight.
What is going to replace VBA for embedded scripting with an internally hosted IDE? (Followup = Jay Schmelzer)
Jon Harris – Expression Blend
We screwed up when we released Expression Studio. We were positing this as a way to go after Adobe and the designer market. We have since spent the last four years trying to say, “No, this isn’t just for designers. This is for anyone building a user interface.”
Jon was talking quite a bit about what Rick Barraza’s session at MIX and the phrase “Everyone is a designer”. Basically their argument is that everyone building a user interface is a designer. They may not necessary be trained as a designer yet, but they are still serving that role.
There are currently no guidelines on how to use Blend correctly, especially from a developer or developer/designer perspective. More importantly, there is not no official guidance on how to keep projects Blendable and avoid pain down the road. Jon promised a slide-deck on this topic from his presentation at Dev Connections. “The deck is actually highlighting some good starting points for developers trying Blend for the first time… helping provide some focus on features that can provide an easy win for them… rather than helping them keep the projects Blendable”
Likewise there is no guidance on how to properly manage resource dictionaries in WPF/Silverlight.
Expression Blend and Visual Studio will not be merged.
- Visual Studio is the tool to use when you are doing code-centric work
- Blend is the tool to use when you are doing design-centric work
- Both tools can and should be used at the same time
- The goal is to offer “two different viewpoints on a project or problem”.
“Texture” is important. This is more about the feel of the application than its appearance. This includes the little usability touches such as transitions for showing/hiding information.
A focus on workflows and usability is crucial for internal applications. Every year companies lose countless hours and money because of clumsy user interfaces on their internal applications. For example, Microsoft’s internal application for booking flights/hotels makes comparing prices very difficult. This means employees waste a lot of time just on this supposedly simple task and rarely get the best rate for their intended trip.
- “Everyone is a designer”
- “How to avoid mistakes in Blend” Edit: John Harris prefers the title “How to keep projects Blendable.”
- “How to manage resource dictionaries in WPF/Silverlight”
- “The Importance of Usability for End User Productivity”
About the Author
Re Automatic properties, I submitted a suggestion to Microsoft here: connect.microsoft.com/VisualStudio/feedback/det.... You might like to read Mads Torgersen's reply there. Good luck with getting your proposal accepted - I think it would be great if they did something about this.