Wednesday, July 14, 2010
Here is something I've been asked more than once, and seen asked on various forums as well. I'll paraphrase rather than quote one specific asker:
We have an application written 15 years ago that's been working flawlessly. But when we run it on Windows 7, the users can't find the files it writes. Worse, there are no error messages, so they think they've saved the files, but when they go to C:\Program Files\MyGreatSoftware\UserExports - the files aren't there!
Often, the question trails off into a rant about how sneaky and mean Windows 7 is to somehow prevent access to Program Files but not give error messages. The rant might also include a paean to how amazing the lost files were and how many workyears of productivity have been lost now that these files cannot be found, and why this means you can't trust Windows to do something as simple as write a file to the hard drive. Sometimes, the asker has established that this is related to UAC and they are recommending everyone turn it off to avoid this disaster. I thought I would make some less drastic suggestions.
First, your files are not lost. A few people know this, but they then claim the files are almost impossible to find and no end user will ever find them. Let's tackle this one first because if you know this trick you may be able to get by without changing anything else about your application. Tell the user to go to the place they expect to find the files, say C:\Program Files\MyGreatSoftware\UserExports. Then have them look in the toolbar for a button that says Compatibility Files. Click it. Ta-da!
Ok, now the next thing is, why the heck are your files being written there? Because you are trying to write to a protected area and you don't have a manifest. You have several things you can do about this, and they boil down to two main things:
One, don't write to a protected area. You can get this by installing somewhere other than Program Files (not a good idea) or by changing the application to write to a better place. Two, get permission to write to the protected area. This means running as administrator. Train the users to right-click Run As Administrator when they run the app, or train them to set the Compatibility Settings for the app (neither very likely) or ship the application with a manifest that includes requireAdministrator. Now matter how you arrange this second thing, your users are not going to like agreeing to the UAC prompt every darn time. So really, that brings you back to number one, don't write to a protected area. Use AppData instead - there's a simple function call to get that path on any machine (including older XP machines) and you'll be in fine shape. If you think your users can't find that, and the files are for the users and not just some internal settings, then use a folder under Documents - again, there's a simple function call that will get you the path.
If virtualization makes you nuts - that your code thinks it's writing to C:\Program Files\whatever but really it's writing somewhere else, and the OS is cheerfully lying to it and saying all the writes succeeded - then put a manifest on your app. Doesn't matter whether it's requireAdministrator or asInvoker. Doesn't matter whether it's embedded (VS will embed them for you from 2008 on easily, and there are tools that do just manifest adding) or just a file of XML in the same folder as the exe. Once the app has a manifest, virtualization stops. Of course this may mean the users get all kinds of Access Denied errors that they don't like. Now you see why virtualization was invented.
Should you rely on it? No. For one thing, it may go away in some future version of Windows. And it goes away when you add a manifest, which for many people happened when they migrated to a new version of Visual Studio. What you should do is understand it, including how to find the virtual store, so it doesn't make you quite so crazy.
Now go turn UAC back on,
Friday, April 23, 2010
I like to introduce myself, in C++ circles, by mentioning I was using C++ before Microsoft had a C++ compiler. It's often interesting to watch people try to handle the concepts behind the sentence - mostly, that for some languages you can buy compilers from more than one vendor. And once upon a time, C++ existed as a language, and Microsoft sold compilers, but it didn't have a C++ one yet. Then eventually (OK, in 1992) the C product Microsoft sold became a C/C++ product (compiler, linker, debugger etc) and then the next year Visual Studio came along and with it Visual C++. And Visual C++ 1 included the Microsoft Foundation Classes 2, so that for a while the version numbers of Visual C++ and MFC were out of sync. Eventually there was a version skip to catch up (there was no Visual Studio 3). For quite a while we all worked with Visual C++ 1.52c and every speck of that version number was significant. So as you can see, the version of a product is not a simple question with one answer.
So, here we are, welcoming Visual Studio 2010. Lots of people called it Dev10 while it was under construction. But was the 10 short for 2010? It was not. It was just 10, as in the number after 9. Visual Studio 2008 was 9, and Visual Studio 2005 was 8. You can see these numbers on the shortcuts to your sln files, by the way:
OK,so VC8 means Visual C++ 2005? Basically. As long as you realize that it doesn't mean version 8 of the compiler. Because the C compiler transitioned into the C/C++ compiler, the version numbers came with it. VC8 includes version 14 of the compiler. Confused yet? If so, you're in good company. Here's a tabular explanation, though it only goes back a decade. You want more details? Wikipedia has them, of course. Me, I am going to enjoy Dev10 and watch for news of Dev11.
Saturday, April 17, 2010
When I show off Windows 7 features and talk about how you can add them to your apps, I usually show a "sad trombone" moment featuring Visual Studio 2008, like this:
(I really like jumplists in the start menu, so I thought I would show that in my screenshot instead of the classic right-click-on-the-taskbar jumplist. They're the same.) But this jumplist isn't useful. It isn't all the .sln files I've opened before, or the projects, or anything really except some random bits of XML, icons, schemas, and code files that I dragged in to Visual Studio over the past few months while I had some real solution open.
Now this isn't poor Visual Studio's fault. It was released before Windows 7, before anyone knew that the MRU list kept by the OS itself would be important. As I've explained in presentations before, there's a reason this happens. You see, when you double-click a .docx file, Windows looks up who handles those, launches Word to open the file, and accumulates that file name on the MRU list for Word. Cool. Ditto for .txt and Notepad, etc. But Visual Studio is different, and it's different so that you can have Visual Studio 2005 and 2008 side by side on your machine, and use .sln for the solution file names in both products. You double-click a .sln file and what actually runs is a little launcher that looks inside the .sln file to see if it's a 2005 or 2008 solution and then runs the right Visual Studio and passes the solution to it. Cool. But as a result Windows isn't accumulating what you opened with Visual Studio 2008, it's accumulating what you opened with the little launcher. The jumplist for Visual Studio 2008 therefore contains only things you opened directly with it, and that's not a very useful list.
OK, so I know why. And it's nice to know, btw, that Visual Studio 2010 gets it right. And in my presentations, I usually leave it at that, encouraging you to add the one whole line of code to your app (if you're using Code Pack) so you "don't be that guy".
But wait! What if you want a good jumplist for Visual Studio 2008? Especially if you don't have Visual Studio 2005 installed any more, so you don't care about the whole pick-what-version-to-launch feature? Well, you could try this suggestion from Josh Einstein. I like that he doesn't explain it much and says "If you need more instructions then the hack probably isn’t for you." His instructions, terse as they are, are for 64 bit Windows 7. A commenter supplies the 32 bit version.
I actually haven't tried this yet. Don't want to set my computer on fire or anything . But if you feel like living on the edge, give it a whirl!
Saturday, October 31, 2009
Have you ever heard someone make a definitive statement about a particular feature of Visual Studio or the .NET Framework that you knew just wasn't true? Did you ever wish for a Snopes equivalent you could send them to? Well, your wish has been granted.
Give it a whirl
and see the official position on some popular (but unfounded) beliefs.
Saturday, October 17, 2009
As C++ developers, we have a lot of options about how to link to libraries we use. We read sometimes that if we link statically, we will have more work to do if there's ever a security hole in the library, since we'll have to redeploy our app rather than just relying on the users to get the new library and use it dynamically. There's a great example of that in the ATL story
that is now just wrapping up. A problem was discovered in July, and emergency updates were promptly released
- just a day before the guys who discovered the problem spoke about it publicly. An article that same day
pointed out that the error was almost a typo - an extra & in an expression - and warned that the patches "do not automatically fix software that was developed using the buggy ATL.
Instead, vendors -- Microsoft as well as third-party firms -- must use the
patched Visual Studio to recompile their code, then distribute the new, secure
software to users." Well finally, Microsoft has finished their part of it with updates for the parts of Office that were using the old ATL. Have you done all of yours?
ps: love the "related twitters" at the bottom of the article - people may not tweet about the Active Template Library very often, but they sure do mention a certain airport / city that uses the same abbreviation
Thursday, October 15, 2009
Inspired by the Visual Studio Documentary, Rico Mariani is writing his own history
. So far he's up to 8 parts and they make for great reading. He goes into some of the technical challenges the teams faced, and talks about cancelled and sidelined projects along the way. He's made a category for it so you can read the whole thing start to finish ... but I'm reading as he goes and not waiting till it's done. Do read in order though, starting at Part 1.
Friday, October 09, 2009
You have to see these. Roughly half an hour each, featuring
an RD and at least one former RD, it’s a cast of luminaries and also has some
funny-looking-back archival footage. I learned a few things, remembered a whole
bunch more, and smiled and laughed a lot. Check them out. Apparently there’s a
whole series to follow with the full interviews with all those folks. I like
this chronologicallish approach with different interviews interwoven, but I’m
sure I’ll watch the long ones too when they come out.
Here’s who’s in it:
- Anders Hejlsberg
- Soma Somasegar
- Dan Fernandez
- Alan Cooper
- Bill (archive footage)
- Tim Huckaby
- Tony Goodhew
- Dave Mendlen
- Jeff Hadfield
- Jason Zander
- Mardi Brekke
- Dee Dee Walsh
- Scott Guthrie
They are both on Channel 9 (and read the comments too): Part 1 and Part 2.
Wednesday, October 07, 2009
I've published a set of four articles on Code Project for those who might want to present to others on Visual Studio Extensions. Each is designed as a speaker kit - powerpoint presentation, speaker notes (what to say to each slide) and demo script. In addition I have recorded myself either doing the demos or the whole talk and put the videos on Silverlight Streaming. We wanted to embed the videos in the articles, but we've settled for putting links in. You can Open in New Tab to watch them, or right click to download.
The four articles are:
I had a great time doing this. You can use these talks to present at a user group or a code camp - I've done the last one at the Toronto Code Camp and it went really well. Give them a try. I have been given a lot of "other people's material" in my time and I have to say it's rarely this complete a package. Let me know if you like them and send me a link to the event if you do one.
PS: these are all for Visual Studio 2008. If you want Visual Studio 2010, stay tuned :)
Monday, September 07, 2009
Keyvan Nayyeri knows Visual Studio Extensibility all right. He even wrote a book:
Now he's written a multi-part blog series about extending Visual Studio.
- Part 1 clarifies the difference between an add-in and a package, and acknowledges that there are also other ways of extending Visual Studio (it's actually incredibly extensible in a lot of different ways). It's a nice history review to show us how we got to where we are.
- Part 2 is about the IDTExtensibility2 and IDTCommandTarget interfaces. All add-ins implement the first, and those that are on the Tools menu implement the second.
- Part 3 turns to packages, which inherit from the abstract class Package (and therefore have plenty of work to do implementing various interfaces.) Keyvan recommends C++ for package development, interestingly enough.
- Part 4 can now talk about the differences between them in some detail. Add-ins are easier, can be written in more languages, but just can't get the same level of integration that a package can. It depends on the functionality you plan to offer your users.
Looks like there are more parts to come ... stay tuned!
Friday, July 31, 2009
It's time to start talking about TechDays (because among other things, I'm talking at
Joey has the details
including a list of sessions. I'm in the Core Fundamentals and Best Practices track in Toronto, delivering these two talks:
Day 1, Session 1:
Tips and Tricks for Visual
This session enhances your experience with Visual
Studio. Keyboard shortcuts, macros, layouts, fonts, tools, and external
utilities are all very powerful and underused features of Visual Studio. This
session makes you more productive in Visual Studio. Bring your pen and pad
because you'll definitely want to take notes!
Day 2, Session 4:
Database Change Management with Team
If you develop database enabled applications on top of
SQL Server, you owe it to yourself to considering doing it better with Visual
Studio Team System. In this session, you’ll learn about changes to how the
product works under the covers and what that means to you. Then, you’ll learn
how to use the product to design, build, and deploy your databases to
development, test, and production environments -- all with purpose and method
instead of the more traditional madness that can be found in many shops in the
I am a huge Data Dude fan, which makes the second session a natural, and as for the first one, I'm one of those people. When I present I'm nice and careful with lots of mouse clicking so everyone can see what I'm doing. But when I'm sitting down to code, I get a pretty constant chorus of "hey, how did you do that so fast?". Come and see how .
Thursday, March 19, 2009
Toronto Code Camp is happening again this year, and this year I will be there speaking. My session title wasn't deliberately chosen to show up first in the list of sessions, I promise. The talk is:
Boost Developer Productivity: Write Extensions to Visual Studio
Visual Studio is a complex tool used by a wide variety of developers. Customizing your tool makes you more productive, and Visual Studio is highly extensible. In this demo-heavy session you will see how to write your own Code Snippets, how to write and use macros, how to write a simple add-in, and how to create your own templates for projects and project items, complete with wizards. Streamline development to fit your processes and habits by writing a little code to ensure that Visual Studio works the way you do.
I hope you already know the rules of Code Camp: all code, no fluff, and always free. Come on out and learn!
Thursday, January 29, 2009
The Visual Studio site has been completely revamped.
It's fun and a good source of information even for those of us who already know our way around Visual Studio. Check out the Community tab for videos and links to blogs.
Saturday, January 24, 2009
Short answer: yes, you can open up Visual Studio 2008’s Team Explorer and point it at your not-upgraded-yet 2005 TFS server and be happy. If you are curious about other levels of mixing and matching and compatibility, check Grant Holliday’s chart.
Tuesday, January 20, 2009
Anyone who blogs on technical topics soon notices they get a lot more hits if they wander into non technical areas for a post or two. That’s just because there are more non technical people out there, searching for tips on stain removal or coupons for TGI Fridays, than there are people who want to know how to get a manifest on an executable or how to write a C++/CLI wrapper for native code or what’s coming in Visual Studio 2010. That’s why my top ten posts last year are:
1 - XPS Document Viewer – Nov 19th 2006
I guess people are still getting XPS documents and don’t know how to read them. OK. Not sure why my page would be the one that over 7000 people find, but what the heck, the information is still valid.
2 - Reading Office 2007 files – Nov 23rd 2006
Also from two years ago but people still need to know this. I send people this link whenever I get one of those “I can’t read your attachment because I’m not on Office 2007 yet” replies to an email. I didn’t send it out 4000 times though, so I guess a lot of people are searching for this stuff.
3 - Try Www.mappoint.com – August 18th 2004
I read recently that people don’t seem to realize they can type URLS into the address bar on their browsers, and have their home pages set to search engines, and actually type entire URLS into search boxes so they can click the result. I would deny this could happen, except many years ago I had a client who did just this, so I know there really are people who do this. I also can’t think of any other reason why over 2500 people would read a four year old post comparing MapPoint to MapQuest given that everybody these days uses either maps.google.com or maps.live.com.
4 - Introduction to Workflow in SharePoint 2007 – June 22nd 2006
Yep, workflow was a hugely important addition to SharePoint. We’re loving it in the SharePoint project we’re doing now. Again this is a topic that must surely be better covered somewhere else though. Still almost 2500 people stopped by to learn about workflow – I hope they followed the link to learn more, and learn something a little more recent – say from after the product was released?
5 - How to earn a million Aeroplan miles – Oct 1st 2005
Now this is really non-technical, but it caught my attention and I guess plenty of other people’s too. I have some other blog entries from time to time about Aeroplan miles, but I don’t really cover how to earn them. For that I highly recommend Flyertalk’s Aeroplan forum.
6 - Batch-convert Visual Studio 2005 projects to Visual Studio 2008 – Dec 17th 2007
The most recent entry yet in this top ten. It makes sense that something that gets hits all year does better than something that wasn’t even around for the first half of 2008. And this is a useful tip I haven’t seen many other places. All those searching people should just subscribe to John Robbins – searching only helps you if you know something exists and want to find it. Smart blogs like John show you things you hadn’t imagined existing.
7 - Another Way to Get the Shield on a Button (or Anywhere Else) – Jan 30th 2008
Finally, something from 2008 in the 2008 top ten! And this is a good tip from Daniel Moth. Remember, the shield on a menu item or button doesn’t bring up the UAC prompt any more than putting ... on a menu item brings up a dialog. And nothing puts the shield there for you if you trigger a prompt any more than something puts the ... for you when it sees you have code to show a dialog. All of this is just sensible developer tradition that helps users feel comfortable with the software they’re using. So please play along and help people know what to expect.
8 - Don't compile MFC apps with /clr:pure – Jan 17th 2007
This one seemed like a no-brainer – MFC includes native stuff, /clr:pure means I don’t have any native stuff, but I was getting emails asking for help and this kept turning out to be the issue. So I blogged it. A lot of my blog topics are the answers to random emails I get from people who are looking for help. This way an extra 1500 or so people saw the answer in 2008.
9 - Hot Laptop? Here's a tip – May 14th 2006
It’s still good advice for working with an overheating laptop. I’m not sure if the searchers all had that problem or were using “hot” more metaphorically.
10 - Adding a manifest to a Vista application – Oct 3rd 2006
This is mostly a link over to Catherine Heller’s Visual Studio 2005 instructions, except that I really wanted to call out how much less work it was for Visual C++ compared to C# and VB.NET. Anyway it’s all a ton easier with Visual Studio 2008 these days.
What else can I tell you from my stats? I got almost a million visits over the year, and they averaged 2.71 requests – meaning most folks clicked around a bit once they arrived. That’s heartening. In 2008 I set myself a goal to blog every day. I didn’t achieve that – there were several long gaps in there – but I did post 135 times. I still like the quote from my post on June 1st, resuming after a four-month gap: “Blogging, like speaking at a Quaker meeting, is something one must do only if the spirit moves one.” I’m looking forward to having my spirit move me hundreds of times in 2009.
Friday, November 14, 2008
Tech Ed draws to a close and the website of videos gets updated. This is a general-access-no-login-required highlights site. The mechanism for extracting individual links seems broken, so I'll show you what to click on:
Thursdays wrapup includes footage of the Norway country party (North American speakers typically pick a country to visit for country drinks, and my gang chose Norway) and the Speaker Idol finals (I was recruited as a last minute replacement judge for the finals only.) Speaker Idol impresses me every year because it shows all of us (speakers, track chairs, etc) people who are really good but have not spoken at Tech Ed before. How good? I have a session in the top ten this year, and one of the very few people who is outscoring me is last year's Speaker Idol winner, Jeff Wharton.
The afore-mentioned session in the top ten is here, the full video. Doesn't seem to be downloadable, so set aside 80 minutes and learn about shared_ptr and lambdas. The abstract is inaccurate - I didn't do anything on STL/CLR or marshalling - that was last year. The attendees didn't seem to mind that I tossed out half my planned talk and replaced it with content that had been announced at the PDC .
There are 63 videos all told (though 5 are from last year) and they range from a few minutes long to, well, 80 minutes. See what you missed, and maybe see you next year!
Wednesday, November 12, 2008
Check this out. If you go to DevTeach - and you certainly should - you will be getting more than you bargained for. First and foremost you'll be getting great sessions by great speakers. 136 sessions to be precise, plus a keynote by Ted Neward. Because of the small scale (8 simultaneous tracks instead of dozens) you will get a chance to meet and talk to many speakers and your fellow attendees during breaks and meals.
Now I happen to think that is well worth the $1250 attendance fee plus your travel and hotel. You would pay double to go to Tech Ed. Montreal the first week of December is a delightful trip, and you will learn the things you need to learn to stay current in this world, and get face time with a dazzling array of people who are not usually this accessible.
But, in case that's not enough, they've negotiated their way to giving you about a thousand dollars worth of software and learning. Seriously. I quote:
We believe that all developers need the right tool to be productive. This is what we will give you, free software, when you register to DevTeach or SQLTeach. Yes that right! We’re pleased to announce that we’re giving over a 1000$ of software when you register to DevTeach. You will find in your conference bag a version of Visual Studio 2008 Professional, ExpressionTM Web 2 and the Tech-Ed Conference DVD Set. Is this a good deal or what?
It's a very good deal. Oh, and one other thing. Did you go to TechDays? Did you get a $100 coupon? They've decided to retroactively make that a $350 dollar coupon. So you can attend for just $900.
Friday, October 03, 2008
Monday, September 29, 2008
Let's see ... 50% early bird discount from an already low price (500 for 2 days, 250 for 1, discounted to 250 and 130 for the next two weeks so act fast), a full version of Visual Studio Professional, a full version of Expression Web, the DVD set from Tech Ed 2008, and a coupon for $100 off a DevTeach registration. That's not counting the eval versions of VSTS and Expression Studio. Holy Smoke, this would be a cost effective thing to attend if you didn't even go to any sessions! But the sessions are listed, and they are good ones. Need to know how to build a real application in WPF? Use the ASP.NET AJAX extensions in your web app? Use controls and styles in Silverlight? Lock down your SQL server? This is the conference for you. Local, inexpensive, timely, ... and a bag of goodies.
Plan to be there. And that includes doing a little reading first ... these sessions don't start at "what is this Visual Studio you speak of?" so there's a resource list to get you ready to attend.
Sunday, September 28, 2008
Richard told me about this "get" a while back but I missed the release of the show. Soma is the senior vice president of the Developer Division at Microsoft, and leads the teams responsible for providing tools and developer platform technologies targeted at developers, designers and teams involved in software development. This includes Visual Studio for professional developers, Visual Studio Team System for software development teams, Visual Studio Express and Popfly for non-professional developers and hobbyists, and Expression Studio for designers. That's a lot of responsibility, and if you use Visual Studio then Soma's opinions matter to you. He talks to Carl and Richard about how he got to where he is now (he's been at Microsoft almost 20 years, and part of the attraction was the Seattle weather, which makes sense if you know he was in Buffalo when he took the job.) The interview is full of behind-the-scenes glimpses into how decisions get made ... a fascinating conversation. Read and enjoy!
Monday, September 15, 2008
At the moment I only have one fall speaking commitment settled and it’s one of my favourites - Tech Ed Developers Europe. Barcelona will be warm, both in the temperature sense and the personal interaction sense (though I do predict exposure to pocket-picking, bag-lifting, and other forms of theft once again). The attendees will be energetic and appreciative. The other speakers will be fun to hang around with. The ancillary events will be fun fun fun.
My topics are the Vista Bridge, and some new C++ features. We’re still working on the abstracts and titles, so I’ll post an update when they’re locked.
See you there!
Wednesday, July 02, 2008
I enjoyed meeting some friends from the C++ team at Tech Ed and taking a turn in the booth. Li Shao and Marian Luparu were there when I was, and plenty of customers came by. Now you can read a nice summary of the customer conversations on the C++ team blog. The comments keep the conversation going. They are reading, so go ahead and join in!
Thursday, June 05, 2008
How many C++ talks are there at Tech Ed this year? Well if you just run your eye down the titles, you'll see these:
MBL202 Maximizing the Usability and Compatibility of Your Mobile Microsoft Visual C++ Application
This session is targeted towards native (C++) developers. The next version of Windows Mobile will have a radical new look, with lots of new common controls and UI capabilities. This session helps you understand what you can do today to minimize backward compatibility issues. We also share many tips and best practices for improving the usability and overall quality of your mobile applications.
TLA327 Parallelize Your Microsoft Visual C++ Applications with the Concurrency Runtime
Introducing concurrency into native Visual C++ applications has long been the domain of true experts and gurus. Yet, as the hardware industry shifts toward multi-core and manycore processors, all developers will need to be able to write robust and scalable parallel applications. As part of its work on Visual C++ and Visual Studio, the Parallel Computing Platform team is building a key set of technologies that will enable the development of such applications. In this talk, we explore libraries for expressing concurrency, a set of messaging APIs that allow developers to consistently build parallel applications that are robust and resilient, and a shared user mode runtime for scheduling and for coordinating system resources. Come learn about these exciting new technologies that will help bring concurrency to the masses.
TLA403 Microsoft Visual C++ 2008 for Unrepentant C++ Developers
Visual C++ 2008 is packed full of changes for those who prefer the C++ language syntax and power. This session covers STL/CLR, the new extensible marshalling library, and changes coming in the C++ standard, specifically TR1. If templates don’t scare you, Boost has intrigued you, and you’re the one everyone turns to for mixing managed and native code, this session is for you.
But there are others, they just don't have C++ in the session title.
TLA321 Microsoft Visual Studio 2008 IDE Tips and Tricks
Harness the power of the 2008 IDE using new tips and tricks used by top Microsoft MVP developers and Microsoft employees. We look at new keyboard shortcuts, new options, the powerful "Quick Command" system, macros, tweaking IDE performance, and more that will make any developer using Visual Studio instantly more productive. The entire session is hands-on inside the IDE and applicable to any language, including Microsoft Visual Basic, Visual C#, and Visual C++. If you've been using Microsoft Visual Studio 2005 or have never touched Visual Studio, you're guaranteed to walk away a VS power user.
WIN312 Windows Presentation Foundation and Legacy Code
Yes, legacy (MFC/Win32) applications can interoperate with a Windows Presentation Foundation (WPF) user interface. Companies that have large Microsoft Visual C++ codebases can modernize their legacy applications by giving them a contemporary user interface. They can do this without having to rewrite the core of their codebase. This talk presents "best practices" for how to modify an application so that the native code operates correctly with a new WPF-based managed user interface. The talk covers such questions as "Can MFC applications move to use WPF," "Does it make more sense to rewrite or upgrade the UI," and "How do you design an interop solution between MFC/Win32 and WPF?” As the talk unfolds, it includes a number of "do's" as well as "don'ts."
TLA326 MFC Updates for Microsoft Visual Studio 2008 and Beyond
This session demonstrates the new features added to MFC in Visual Studio 2008, including support for Windows Vista Common Dialogs, Vista Common Controls, the 2007 Microsoft Office system look and feel (including support for an Office Ribbon-style interface), Office and Visual Studio-style Docking Toolbars and Tabbed Documents.
If you're here and you missed one of these, grab the slides on CommNet and see if you can find the speakers on site. If you didn't come to Tech Ed this year, consider ordering the DVD of all the sessions.
(note to self: add "C++" to abstract of any future MFC talk I deliver .)
Tuesday, June 03, 2008
It's one hour till my first breakout session. There isn't time enough to start anything, like actual work from the office at home. It's pointless to worry about my session - I'm well prepared for it anyway but if I wasn't, there isn't time to add a demo or change the deck or anything like that. I just have to sit and wait. It's one of my poorest skills. So I sit and stew instead, which is nowhere near the same thing.
But if you're reading this, and it's not 4:45 yet, come on to S230C and learn about MFC Updates. Why not?
Tuesday, January 29, 2008
Yes! Finally one of my favourite conferences comes to one of my ... er ... nearest cities! DevTeach, star of Montreal and recently Vancouver, is coming to Toronto and bringing many of my friends and colleagues with it. I’m speaking there too... the sessions are at http://www.devteach.com/Session.asp. My talk needs it’s abstract tweaked but the title is good: What's New in Visual C++ 2008. Register before February 1st for the early bird deal. As always, Jean Rene is offering deals to user group members and other community people, so check with your contacts if you have any.
If you’ve never been to a technical conference before, and you aren’t sure anyone would pay travel and hotel for you to go to one, DevTeach is a great way to prove the value of conferences to yourself and your boss. World class speakers (many of whom will be delivering on the same topics at much bigger and more expensive conferences just a few weeks after DevTeach), topics that are relevant to your work right now, and a marvellous delegate-friendly atmosphere combine to attract attendees and speakers – why not you?
Monday, January 28, 2008
This year for the first time I am speaking at SD West. This is a conference I have watched from afar and often wanted to attend. I’m delivering a half day tutorial on Vista Programming, and a new breakout session called Practical Visual Studio Team Systems. In between I will be at Sutter and Stroustrup on C++ and a host of other feed-my-brain sessions that you might also want to attend. Check the full session list and register quickly... the early bird deadline is February 8th.
The Vista Programming abstract is:
Windows Vista is the most compelling operating system release in nearly a decade. With major improvements in the areas of security, user experience, and performance, Windows Vista offers a robust and dependable platform for building a breadth of solutions. This half day seminar prepares you for building a new class of applications that take advantage of these improvements. Come and see how to take advantage of some of the most interesting new native APIs, inter-op techniques, and .NET Framework 3.0 technologies. Learn how to build the next generation of smart client applications with the Windows Presentation Foundation (WPF), and improve user experiences with technologies like task-based dialogs, sidebar gadgets and customized Windows search functionality. Learn inter-operability techniques with managed wrappers and how to leverage the Vista Bridge. Dive into the best practices for upgrading existing applications, and understanding User Access Control (UAC). Learn how to build more reliable and secure applications with technologies like Application Restart/Recovery. And lastly, learn how to build more connected systems with Windows Communication Foundation (WCF) and RSS platform support.
The Team Systems abstract is:
The real strength of VSTS is its adaptability. Our small shop (no professional project managers, everyone’s a developer of some kind, not-officially-agile-but-not-CMMI-either) has learned a lot about making VSTS and TFS fit the way that we work. Topics include knowing which project people are working on without asking them, adding your own fields to those provided out of the box, writing your own queries and reports, and customizing your project portal. This session will help you get up to speed with the features the most practical features VSTS has to offer, and best practices will be suggested.
See you there!
Sunday, January 27, 2008
Tech Ed breakout selections are almost complete, and I should have an announcement soon about my Tech Ed presence. We can get started with my PreCon: Windows Vista Programming: User Experience, Application Compatibility, Reliability and Connections. The pre cons are on Monday of Tech Ed week this year, and registration should open soon. In the meantime, plan to travel Sunday night and attend this pre con so you can come up to speed on programming for Vista and with .NET 3.5 including WCF and WPF.
Saturday, January 26, 2008
A little while ago I appeared on GeekSpeak, talking about the Vista Bridge and how managed code developers (C# and VB.NET, for the most part) can get to some of the cool new Vista stuff without having to get into the worlds of C++/CLI or of interop. I love those worlds but I understand plenty of people don’t. The recording is now on Channel 9. Geekspeak is an unusual webcast because there’s no powerpoint, and no agenda. You show up, people ask you things, you talk, you demo, and before you know it an hour has gone by. I had a great time and I hope you enjoy it too.
Tuesday, December 18, 2007
Soma blogged this before Tech Ed Developers and I actually snagged a few bullet points to add to my slides, but I never posted a pointer to the original. It's nice to see some firm numbers and as always nice to see "higher ups" remembering C++.
Monday, December 17, 2007
So, you're the proud owner of a ton of Visual Studio 2005 projects. And you've heard that converting them to 2008 projects is pretty much a flawlessly easy thing to do ... just open the project, let the conversion wizard run, and save it. Done! Except that if you have a hundred projects, that would be a crummy way to spend your time. Who has a hundred projects? Well a book might, or a course, or a presenter with tons of demos kicking around (I resemble that remark), or a development team with a lot on the go, I suppose.
Anyway, even if you only have dozens, wouldn't you like to be able to deal with them practically instantly instead of opening each in VS, watching the wizard do stuff, clicking Next and Finish on relatively pointless dialogs that essentially mean Are You Sitting Comfortably? No problem. John Robbins has a cool tip for you, but it's so short I can include it here in its entirety.
Open a Visual Studio Command prompt. CD your way to the folder with your project in it. Issue this command, subbing in your own sln file name:
devenv /upgrade MySoln.sln
Move on to the next folder. That's gotta be faster than watching wizards work! Remember, typing is a valuable skill even for the developers of today.
Tuesday, December 11, 2007
At Tech Ed Developers Europe, one of my talks was on STL/CLR and the marshaling library. There are three super cool things about the marshaling library that all C++ developers need to know. The first is that the random boilerplate code we used to write to convert between two kinds of strings is now taken care of for us:
char* stringfromnativelibrary; //gets set somehow
The second is that it's just templates, meaning it is fast at runtime and intuitive for a C++ developer. The third is that because it's templates, we can write our own specializations, and convert between any two types we feel we will be using - typically on either side of the managed/native border, though that's not a requirement at all.
This last part is really exciting to me. Imagine you have some library you wrote ages ago that takes a RECT and does something with it related to your business logic. But you've replaced your UI and now you have a System::Drawing::Rectangle to represent what your user selected. Wouldn't it be cool to write:
oldfunction( marshal_as<RECT> RectangleFromWinForms);
That's not a problem as long as someone has written that specialization. You can do it, or you can try to find one someone else already wrote.
Date and time, arrays, anything related to screen position, these are going to be types everyone uses. Why not share the effort of writing these conversion functions? That's the thought that hit me at the end of my talk. So I came home and set up a site - www.marshal-as.net - to use for just this purpose. I've had a few submissions from Jason, who was at my talk and was there when I thought of it, and a wish list from a "little birdie". The C++ team knows what I'm up to and they are excited too. Now what I need is submissions and lots of them!
So, drop me an email, comment on this post, or (better) comment on the first post over at www.marshal-as.net. I'll post the specializations one per post and we'll build a library. I'm inspired by pinvoke.net and would like to see this as the destination for finding a specialization instead of writing one. Can you help?
Sunday, December 09, 2007
On Tuesday, December 11th, I’ll be presenting Developing as a Non-Admin in the Ignite Your Coding series of webcasts. I’ll be showing Visual Studio 2008 and Vista and my focus will be on understanding the UAC consent dialogs, and how to keep your application from needing them. Register for it now, or later use the same link to come back and view the recording. But if you attend live, you can ask questions, and that’s often the best part of a webcast.
Friday, December 07, 2007
Last year at Tech Ed Developers in Europe, I had a very impromptu Channel 9 interview. A “shop talk” conversation broke out in the lobby of the Hilton, and Charles decided to film it. This year we planned it in advance and I sat down with Steve Teixeira and Ale Contenti of the C++ team. Watching the video, I love watching the two of them get visibly happier as they start to talk about the product and the big changes and news they announced at Tech Ed. Steve was really quite sick and depending on throat lozenges to be able to talk at all. Despite that, it turned out to be a really fun interview.
Wednesday, November 28, 2007
Nick Wienholt took over my column at CodeGuru several years ago, and has written roughly as many columns now as I did. Yet the URL for the column still has my name in it, a discrepancy he pretended to complain about in an August blog post. He has a nice look at the marshalling library ... something you’ll be hearing more about from me too.
Monday, July 30, 2007
Long Zheng has a lot of Microsoft-watching going on. This image comes from a slide he highlighted from Steve Ballmer's presentation for FAM (I already highlighted Craig Mundie's comments to the same audience.)
The comments are interesting too. Read the post.
Saturday, July 28, 2007
Check it out ... sessions are starting to appear. I've been looking at the Tools and Languages track... there are some talks here I'll be sitting in on for sure.
It's going to be a fun fall!
Thursday, July 26, 2007
Tuesday, July 24, 2007
I like to tell the "C++ is still sitting at the grownups table" story whenever I can. Sometimes that gets hard -- people ask why there's a C# wizard or designer for something, and a VB one, but no C++ one. For example, in Visual Studio 2005 the class designer could understand C# and VB code, but not C++. Well that one at least is somewhat fixed. I'm sure you can guess that C++ code is harder for a diagramming tool to understand, so perhaps that's why it had to wait a version.
Please take the survey from the Visual C++ team blog!
© Copyright 2020 Kate Gregory
Theme design by Bryan Bell
newtelligence dasBlog 2.3.9074.18820
| Page rendered at Tuesday, April 07, 2020 1:02:38 PM (Eastern Daylight Time, UTC-04:00)
On this page....
Pluralsight Free Trial
Click Start a FREE 10-Day trial