Hello, my name is Li Shao. I am a Software Design Engineer in Test in Visual C++ team. From June 3 to June 6, I had the opportunity to attend TechEd 2008 in Orlando along with two colleagues, Marian Luparu and Martha Wieczorek. Most of my time was spent at the Visual C++ Booth to answer customers’ questions. I also had the opportunity to work with Kate Gregory, one of our MVPs, at one booth secession. Here are some overall impressions based on the customers that I talked to:
· Customers are really excited to know that we have new MFC functionality.
Customers from many of the companies came by and looked at our demos of new MFC features. I have followed up with many of them with information such as the download site for the Visual Studio 2008 feature pack, pointers to walkthroughs, and a link to Kate Gregory’s PowerPoint presentation on new MFC functionality. Customers are all very glad to know about this new addition to MFC and agree that this provides a solution to modernizing their MFC applications.
There were some other questions related to MFC. Some customers were asking whether they should stay with MFC or should they migrate to new technologies, such as WPF. Some customers are concerned about staying with MFC as that they cannot find entry level people to do the UI work in MFC while it is much easier to find an entry level developer to write WPF/WinForm applications. Basically, these customers want guidance on how they should move their applications forward.
Of course, there is no simple answer to this question that applies to all our customers – each one has different constraints and priorities. In the end, this is a decision you’ll need to make based on your particular application needs. Regardless of what you choose, we’ll support you within Visual C++! If you want to stick with MFC, you can rest assured there will be many more updates to this technology. If you prefer to use WPF, we are working on building out guidance to help with this. In fact, Henry Sowizral from the Expression team gave a talk on how to refactor MFC application and migrate to WPF. With the new support, it is fairly easy to modernize existing MFC applications or create new MFC application with modernized UI.
There was one customer asking for new MFC support on Smart Devices which we don’t currently support. As far as I know, there is no current plan supporting new MFC on Smart Devices.
Here are some additional resources to help you learn more about the new MFC: a Channel 9 Video by Pat Brenner, one of our developers: https://channel9.msdn.com/showpost.aspx?postid=355087 and Pat’s VC Blog entry: http://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspx
· Customers have a lot of questions about native/managed interop
We received many questions regarding native managed interop. Many developers seem to face the challenge of moving their native application to .NET. We mentioned to customers the Marshalling library and they were interested in it. Here is a VCBlog Entry on Marshalling library: http://blogs.msdn.com/vcblog/archive/2007/04/25/marshaling-library-in-orcas.aspx. We have a Channel 9 Video too on Marshalling library by Sarita Bafna, one of our program managers: https://channel9.msdn.com/shows/WM_IN/Sarita-Bafna-VC-quotOrcasquot-Marshaling-Library-and-MFC-support-for-Common-Controls/ . Kate Gregory also has a great site for Marshalling library: http://www.marshal-as.net/ .
Some other interop related suggestions we had from customers are:
o Some customers asked about whether or not they can automatically generate wrapper class for their native components. The answer is that if the native component is a COM component, you can use the “Add reference” feature to generate a managed wrapper class, which is essentially the same as the wrapper class that would be generated by calling Tlbimport.exe. However, there is no automatic way to generate wrapper class for regular native classes.
o One customer asked if there are any samples on calling Silverlight components from native application. The answer is no for now. But this is a good suggestion and we can consider it.
o One customer would like to have a tool to merge his pure managed assemblies and IJW assemblies. Currently, ILMerge.exe can only merge pure managed assemblies. The recommended way to produce a single assembly for C# application and managed C++ applicationis to generate .NETMODULE files from your C# applications and pass the .NETMODULE files to the C++ linker along with the .obj files from the C++ applications.
o One customer commented that C++/CLR is great! He is using more /clr, less pInvoke or COM interop.
· Customers are interested in TR1 support
People were impressed with TR1 – specifically the Shared_Ptr and Regex support. One customer asked question about compatibility between Boost library and TR1. Here is the answer I conveyed from Stephan T. Lavavej:
TR1 is compatible with Boost in the sense that you can include both <regex> and <boost/regex.hpp> and nothing bad will happen. TR1 isn’t compatible with Boost in the sense that tr1::regex and boost::regex are completely different types. TR1 is almost compatible with Boost in the sense that they both follow the TR1 spec closely. Programs currently using the TR1 subset of Boost can be converted to use TR1 with minor changes.
You can take a look at this blog entry and attached slides by Spephan T. Lavavej to learn more about TR1: http://blogs.msdn.com/vcblog/archive/2008/02/22/tr1-slide-decks.aspx.
· Customers in general are very excited by parallel computing and concurrency run time.
They would like to know more about parallel computing and the time frame parallel computing libraries and programming support will be available to public. There were a couple of talks on Parallel Computing during the TechEd.
Overall it is a very exciting and very educational experience to be able to talk to so many customers, listen to their concerns and answer their questions. Meanwhile, the questions and feedback we got from the customers also confirm our main strategies:
· Continued native support: such as renewed MFC support, C++0x, TR1, parallel computing, etc
· Improved and “friction free” managed and native interop.
I, and the other members of our team, hope to meet many more of our customers, in fact a number of my colleagues will be at the PDC this year – hope to see some of you there!