As you may have seen or heard by now, there is a new team dedicated to improving the help experience in Visual Studio. If you already know that then hopefully you also know that we realize that including you in the planning process is important! I will begin talking with various user groups on the west coast starting later this month. I will find a way to work with other user groups around the country as well, but I'm starting off with the fine developers nearby. I will be in L.A. on March 20th at the Micrsoft offices downtown at 7pm to talk with the L.A. .NET Users group. User group members will need to RSVP to me in order to attend.
Other planned stops (dates, places TBD):
- San Jose, CA
- Portland, OR
- Burnaby, BC
- Vancouver, BC
- Washington State:
- Bellevue
- Bellingham
- Olympia
- Redmond
- Spokane
- AprilR
If you haven't already discovered Channel9, you have been missing out! There are tons of informative, and in some cases funny, videos about all sorts of developer-y things! Make sure to stop and look around when you go. That Channel 9 guy has been all around the world!
It also just so happens that you can hear me talk about the exciting future of help.
aprilr
We heard you, and if you heard a loud cry of joy from the Pacific Northwest around the middle of December, you may have heard me!
I'm thrilled to report that Microsoft's Server and Tools Business has decided to invest in significantly improving the Developer and ITPro help experience over the upcoming years! A new small team of engineers will soon be on the job of raising the bar for the experience of installing, using and updating documentation for Visual Studio, MSDN and other products! What's at the top of the priority list? Making your F1 and search experience fast and relevant. Once we solve that we hope to offer you a simple viewer and update model to keep you in the know and highly productive.
What say you!? What is important to you? What would you like to see? Remember that question I posed to you nearly a year ago - what is your dream assistance scenario!?!?!? After we fix F1 and search, what is most important to you?
If we nail Search, do you still need the Index? Will intellitype in the search box do or do you really want that separate window?
Keep your eye on my blog, because we'll be looking to you for feedback on our many ideas and plans for improving your ability to get the answers you need - FAST.
aprilr
What's this, you ask? Well, check out:
http://blogs.msdn.com/somasegar/archive/2007/08/08/visual-c-futures.aspx#4432520
Thanks Jan :D
I want to tell you that because of your comments, dear readers, not only here but on Soma's blog, I think we are getting some traction in rallying the troops to improve the VS help experience! You are making a difference.
I don't have many details for you yet, but stay tuned for questions and ideas that we'll need you to answer and review to help us know whether or not we are on the right track! Here are some themes:
- Fix search - the current local help engine is terrible here and we need to improve, and while MSDN online is constantly improving, we can do more
- Continue to provide local-to-the-box help, don't rely on the online story alone
- Improve F1 - figure out what the heck is going wrong with so many of the calls that you don't get what you need!
- Provide a more modern and performant UI to browse and navigate the help content - and bring back my favorite features!
Let me know what you think.
April
You might not have discovered it, so I'll point it out. Here is a video of Jeremiah Andrick talking about MSDN Search and what we are trying to do to improve it. He even shows you a demo of the development site, which you have access to (http://lab.msdn.microsoft.com), and points out some of the features his group is working on.
http://msdn.microsoft.com/msdntv/episode.aspx?xml=episodes/en/20060601MSDNJA/manifest.xml
Enjoy!
April
So, you think about adding support for your product on another operating system, development platform, or maybe you are evaluating the latest version of Visual Studio. Does the quality of the assistance (wizards, online and offline documentation, logging features, etc) that you get in attempting that migration ultimately affect your decision to migrate?
Recently I received some feedback from a set of customers that said they would pay for a new version of Visual Studio if it simply had better help and made it easier to understand how to do the things it already does.
What say you, blog readers? Is the help system something that you would consider a Value-Add?
Thanks in advance for sharing your thoughts!
--April
Come on readers - you can't tell me that only three people have something to say about the Visual Studio and MSDN library help system. Come on - let me have it....really, we can take it...
- Tell me what you love
- Tell me what you hate
- Tell me what you use for getting unstuck in your work - from content, to features, from blogs to code sites
- Tell me about your dream assistance scenario
- Tell me about your most frustrating experience
- Tell me about the best help you ever found
- Tell me what you think about the MSDN wiki project
april
As I've been compiling the long list of customer feedback - complaints, suggestions and otherwise - one of the common themes was - "Search stinks! The results are not pared down by what I use to search!"
Well, it certainly was the intention of the help team to provide a great search algorithm, but the problem for some is that it does not work as expected. If you type in several keywords, some people expect to have those AND-ed together, so, for example, if I searched with keywords custom and wizard, I would expect to get results that include both custom and wizard. But in Visual Studio and MSDN, the offline/local help search tries to be more helpful than that, since in the world of development we don't always know the exact name of a class or attribute that we need, and we might need help finding them. So, by default, offline/local help search automatically includes results that only match part of your list of keywords. And depending on how you have your search filters set, this can result in a set of results that look no-where near what you wanted, or at least appear with a lot of "noise".
But there is some good news for those who haven't mastered this search. If you just can't seem to get the help you want or get used to partial matches, you can turn it off! Yup, just tell search to Stop It! How?? It's simply a Tools->Options setting.
Selecting the Tools menu, choose Options. In that dialog you should see a lovely tree view on your left where you will find a second level item (under Environment) called Help. When you click on Help, you'll see a few settings on the right. Uncheck the box for "Include partial matches in local search results".
Enjoy.
april
Alright, I know that you think it - how the help system drives you nuts. And maybe you have even found something that works pretty well and you'd like to see made even better.
What are the boundaries? There aren't any.
- Tell me what you love
- Tell me what you hate
- Tell me what you use for getting unstuck in your work - from content, to features, from blogs to code sites
- Tell me about your dream assistance scenario
- Tell me about your most frustrating experience
- Tell me about the best help you ever found
- Tell me what you think about the MSDN wiki project
I'm all ears!!!
april
Well I have been working on this new team for almost five months now. So how is the effort going?
Honestly, the jury is still out! We're working to make some tactical changes in Orcas, but there won't be any earth-moving improvements, simply due to the lack of a complete new help engine for us to move to.
As for making the most of what we have - let's just say it is more complicated than I was even already aware. I'm still quite positive on Microsoft, but I will say that it can be hard to get stuff done in a company where everything depends at the core on so many other groups, and then impacts just as many. And with the resources for developer help spread out across many teams, you not only run into the typical project management nightmares but you have to learn to work with a spectrum of personalities and management goals.
In any case, I've learned a lot from talking with people who work on developer tools, about what is working and what isn't working. I've also learned a few tips and tricks that I plan to share with you over the summer. Stay tuned!
april
I want to share with you the mail that I recently sent to my team:
“This is not easy. Goodbyes are tricky and invariably ambiguous. Not like hellos. We all remember what Neil Armstrong said when he was the first man to land on the moon, but does anyone know what Eugene Cernan said when he left as the last man on the moon? Did he even promise to call?” - Bernie Lincicome, Rocky Mountain News Columnist [on saying goodbye to the old Mile High Stadium]
Last week I accepted an offer to become the Developer Division Help Experience PM. This job has a huge challenge - collaborating across many different organizations and disciplines to improve how developers find the information they need, and ensuring that the quality of that information is high when they get there. Many people in the division have put in a lot of time and energy into the help system and creating innovative help features, and in working to improve content. I hope and plan to make a significant contribution in streamlining and focusing these efforts. One of my first steps in my new role will be talking to folks around the division hearing your thoughts about the current and future help experience.
It is hard for me to say goodbye to this team. This is my second home, my extended family. I have spent over 7 years with you. But I don’t really view this as leaving a team as much as going to a new opportunity. The fact that I’ll be on the 6th floor and not in some other building across campus makes it a little easier, as I will still get to see your faces and ask about you, your kids and everything.
Thank you to everyone in this organization who has helped me to grow into the leadership role that I have served in. And when asked if I think I’ll ever come back to the team, I’ll simply reply with a quote from Einstein: “I never think of the future. It comes soon enough.”
And so I started this new position this week (yes that is why you saw a flurry of posts last week ;) ). As such, you will find my blog transition to a home for the world of Help! I am still happy to take your questions and comments about Visual C++, I still know where to find the answers <g>. Soon I'll have a post asking for your feedback about Help and what you like/don't like about it. For now - cheers!
- April
Okay, so I know that this tour stop took months, but I hope that you have found the information useful. There are always more resources being posted online, but if you see something missing, please let me know and I'll see what I can do about it!
Parting words:
Visual C++ 2005 has something for everyone. What does it have for you? Recall all that I have posted about:
- Decide if product support, performance and security are important to you, and if so Upgrade Today!
- Enjoy the productivity enhancements found in the IDE
- Speed up your app
- Leverage all of our security features
- Update to the new deployment and servicing model
- Check out the .NET Framework and see what it can do for you
- Even if you don't plan to compile for 64-bit soon, remember to compile 64-bit clean
That's it. That's the tour.
- april
You are either tired of hearing about it or you are sleeping under a rock, but like it or not, hardware is changing. Not just from 32-bit to 64-bit, but the fundamental structures are all up for a make-over (not anywhere near the likes of what Trading Spaces has seen). We also see the omni-present device taking the headline spot in personal technology line-ups.
From the tour:
Concurrency
The Hardware - Adding cores to chips is what will make them faster in the future, clock speed is slowing to a crawl.
Intel and AMD both will ship multicore this year – within two years, most CPUs shipped will be multicore.
The Software - There are multiple types of concurrency for different tasks:
- Data parallelism – Algorithmic concurrency, such as loops
- Task parallelism – Traditional threading
- Instruction level parallelism – Vectorization with SSE and SSE2
If you are not taking advantage of the concurrency your application performance will suffer. You’ll need to learn how to write parallel programs!
Data Parallelism: OpenMP
- OpenMP is a specification for writing multithreaded programs
- It consists of a set of simple #pragmas and runtime routines
- Makes it very easy to parallelize loop-based code
- Can parallelize loops and straight-line code
- Includes synchronization constructs
- Helps with load balancing, synchronization, etc…
- In Visual Studio, only available in C++!
Task parallelism: Windows threading
- Standard model of Windows threads and threadpool
- Useful for invoking different threads to run different functions
- Instruction level parallelism: The profiler and C++ optimizer
- Without Visual C++ 2005 you will lose performance on future processors!
64-bit
- The 64-bit Platform provides many benefits:
- Vastly increased address space
- OS has more resources (buffer sizes, handles, etc…)
- Enhanced 32-bit performance on x64 (maybe surprising, but true)
- Modern computer architecture – fewer limitations
- Better programming model (No more PAE/AWE!)
- Full use of 64-bit components
Devices
Devices are now first class citizens in Visual Studio 2005:
- Same IDE as desktop platforms
- Same source base for compilers and native libraries
- Ability to target multiple platforms
- Managed and Native projects in same solution
- Debugging is like the desktop debugger
Again, there are really great sources for further information:
Herb Sutter's Blog - http://pluralsight.com/blogs/hsutter/
Kang Su Gatlin's Blog - http://blogs.msdn.com/kangsu/
64-bit Programming - http://msdn.microsoft.com/visualc/using/building/64bit/default.aspx
Windows Embedded Home - http://msdn.microsoft.com/embedded/default.aspx
Windows CE - http://msdn.microsoft.com/embedded/windowsce/default.aspx
De-myth-ifying Visual C++ .NET, Visual C++ .NET 2003 and Visual C++ 2005
On tour, we constantly battled the following myths and assumptions about our latest releases with regards to managed code:
1. MYTH: Visual Studio .NET 2002 and 2003 only include managed C++ compilers. - False! Non! No! We are proud and excited about the many features and new syntax focused on the .NET Framework - and they come from very same compiler - cl.exe! Existing C++ code remains unchanged and continues without behavioral changes!
2. MYTH: There is nothing new for native C++ developers in any of the releases since Visual Studio 6.0. - False! No! Nein! Njet! If you are reading my blog, you alreay know that there have been many advances for C++ developers all over the map. From libraries to compiler, from conformance to security, from performance to servicing.
3. MYTH: To use the .NET Framework you have to completely rewrite all of your code. - False! Nie! Nu! No! You have options when it comes to leveraging the .NET Framework. You can compile part of your existing project, or all of it, into MSIL, as is! You can just choose to make new code managed, by either compiling it into MSIL or using new syntax.
Why managed code???
Running code on Windows without managed code has limitations:
- Code can only be trusted based on digital signatures and the system can not sandbox privileges for processes
- Libraries targeted at different language developers have to be written several times – once for each language
- Applications written for one platform can not run on other platforms, such as devices, without recompiling
- Data structures can not be easily versioned between DLLs
- APIs have no rich type information for component models
The Common Language Runtime (CLR) provides solutions for these problems. The CLR makes a number of services available to applications:
- Garbage collection and resource management
- Cross-language development
- Security demands for partially trusted code
- Reflection on assembly at run-time
Making use of these CLR services requires additional language enhancements to C++ (enabled by /clr):
- New type categories
- Syntax for garbage collection
- Syntax for properties and events
Of course this is with regards to managed versus managed, since there are some changes encountered on project/version upgrade with regards to conformance, library deprecation and security.
There are lots of great sources for getting familiar with managed code in Visual C++:
C/C++ CLI Migration Primer: http://msdn2.microsoft.com/en-us/library/ms235289(en-US,VS.80).aspx
Webcast on integrating .NET Code into existing C++ code:
http://www.heege.net/webcasts/ExtendingCPlusPlusCodeWithDotNETFeatures/default.html
How To: Compile a project to target the CLR: http://msdn2.microsoft.com/en-us/library/ms235635.aspx
MSDN2 on the syntax for targeting the .NET Framework: http://msdn2.microsoft.com/en-us/library/68td296t(en-US,VS.80).aspx
- april