Transparent Intellisense

Tue, April 24, 2007, 02:05 AM under Orcas | VisualStudio
While no doubt everyone will be talking about VB intellisense that I’ve mentioned before or the Javascript intelisense, I just discovered another small improvement in the Orcas IDE.

You will recall that VS2005 introduced DataTips (debugger tooltips on steroids) and when you hold down the Ctrl key they become transparent. Well, that is now true as of Beta 1 for the intellisense window too! In the screenshot below, the left side is what you would face today but with Orcas Beta 1 hold down the Ctrl key and you can see what is below the intellisense window without having to close it, as shown on the right:


I wonder how many people will discover that. It reminds me of another little known feature introduced in VS2005, which I still encounter people today not knowing about: ability to resize the intellisense window... try it if you haven't!

Orcas Office development through pictures

Sun, April 22, 2007, 12:02 PM under Orcas | VisualStudio
At this year's UK MSDN roadshow day (btw, next one is this Wednesday 25th) we have five 70' session slots. MikeT shared our reasoning for including a 10' office bit at the end of each core 60' session. Most of the people that I spoke to said that before the event they didn't care about Office development but after seeing how easy it is to do and realising the benefits, they have more of an open mind now. Given that it seems not so easy to find information on Office development, Martin did a great job pulling together starting points. Go check them out!

In "Orcas" the Office story gets even better:
0. Office 2003 and 2007 development out of the box. No need to download a separate VSTO (SE) SDK.

1. New project types. Now you can create out of the box add-ins at the document/template level, rather than just the global application level only. Feast your eyes on these project templates:

For Office 2003 project templates, see this screenshot.

2. Ribbon designer. No more manual authoring of XML, just drag and drop ribbon controls into groups on tabs, set properties and you are done (the familiar winforms paradigm).

In the image above you see properties for the button, but you can also tweak properties (and handle events) for the other ribbon elements (i.e. tab, group) including the ribbon itself such as its OnLoad event! If you right click on the ribbon in the designer you get the option to generate the XML (and cs) file - attendees of my roadshow session know XML was the only approach available with VSTO SE:


3. To customise the ribbon for any of the 2007 Office applications you have to select the appropriate item template from the Add New Item dialog:

If you created an Outlook project, as you can see the dialog above also offers the Form Region option. That's right, support for Outlook 2007 Form Regions is now available via Windows Forms controls (no more manual messing with OFS files) and the wizard even offers the option to import existing projects (this last option is not functioning yet in Beta 1):

Click for screenshots of STEP 2 and of STEP 3.

4. From the first screenshot of this blog post you saw that we can create document and template level projects for Excel and Word. Picking any of those leads you to a dialog similar to this:

After that you can add new document level Actions Pane items (don't confuse with Custom Task Pane which works at the application level and is just a UserControl):

Specifically for Word projects, in design mode in VS you can add to Word's surface (and even databind!) Content Controls:


5. Even though all of the above is Office client-side, under the Office banner we include the server-side technology SharePoint. Authoring workflows for SharePoint in VS2005 involves a 15-step configuration process (which some of you will have seen me perform for the UK developer launch of Office in January :-)). In "Orcas", you simply design the workflow and hit F5 including easy debugging. The complex stuff is taken care of by a wizard, whose first step you can see here:


6. Naturally I don't have teaser screenshots for every Orcas Office feature so I leave it to you to discover the interoperability between VSTO/VBA (i.e. call the former from the latter), support for the new Office file format and ClickOnce improvements...

In short, with VS Orcas and Office 2007, I am finally beginning to see the meat in the phrase: "Office as a development platform"...

In addition to the links at the top, you may find interesting these Office blogs here, here, here, here, here and here.

VB intellisense in Orcas

Fri, April 20, 2007, 06:49 AM under Orcas | VisualStudio
From the first time I typed Visual Basic code in Orcas I've had on my list to do a short video to show the new and improved intellisense because only video can do it justice. Since Amanda let the cat out of the bag by posting some screenshots, I am left with no choice but to share even more of the intellisense story with you :-)

Basically, it is everywhere. When you start typing "D" to declare/dimension a variable, it will pop up:

...when you then continue to declare the type of the variable, it will help you again:

...it comes into its own with the new LINQ syntax:

...and at the end of code line, when you press the spacebar, it will even prompt you for the continuation line:


You just have to go type some VB code in Orcas to truly appreciate how helpful it is. However, the killer for me is what I will refer to as "member filtering" as I have no idea what the official name is. With this feature, after hitting the dot (".") on a class variable and as you type, the intellisense window filters down to the more appropriate member. See the following 3 screen captures that I combined into one screenshot image:



In the example above, first we have the list of all members of the Process class, then after typing "p" the list gets filtered down to only members starting with p and then finally when we type "ro" the list goes down to just the two members starting with "pro". If I continued typing when I reached "n" in "ProcessN" I would have been left with just one member.

And all this great intellisense is of course also available when targeting .NET 2.0 projects (minus the LINQ stuff) due to the Orcas multi-targeting.

Aesthetic and usability in Orcas B1

Fri, April 20, 2007, 05:15 AM under Orcas | VisualStudio
After installing Beta 1 on my Vista machine, I found that the look and feel of things I previously blogged about had changed for the better.

* Ctlr+Tab got a facelift. For previous screenshot and the new one see my updated blog post: Ctrl+Tab in Orcas.

* The ability to target multiple framework versions from a single IDE is still there but now it is more obvious (they must have heard my winging :-)). Check out my updated post on Multi-targeting.

* For Smart Device Projects, I complained about the combobox not remembering the selection and now that is fixed. The VSD team also added a bonus feature in this release. Check out my updated post on the new Project Dialog.

* Like in previous builds, we have nice rounded selections in the menus...

...if you complete the action of the screenshot above, you will of course get this dialog. Notice how the treeview under Project Types displays no plus/minus for expanding/collapsing the nodes? If however you hover the mouse on the treeview then new triangle expandos appear as per the following screenshot:

For more on what is going on here read my post on TreeView Vista (basically the VS team put in the extra effort to spice this up on Vista :-)).

Get Orcas Beta 1

Thu, April 19, 2007, 01:30 PM under Orcas | VisualStudio
Visual Studio codename "Orcas" (and NetFx 3.5, C# 3, VB9) has reached Beta 1.

The huge VSTS VPC image is available right now here and other SKUs will follow. You can even get the lightweight Express SKUs here and the TFS Server here. Personally, I'd wait a bit longer for the installable bits of the Pro Edition which for the first time is even supported on Vista :-)

As always the feed that tells you these things is worth subscribing to over here.

IL support by Compact CLR

Thu, April 19, 2007, 01:15 PM under MobileAndEmbedded
While chatting with users of a new .NET language that will RTM later this year (Vulcan.NET), I asked what they were doing for .NET Compact Framework support. They had most of it pretty much sussed. They understood that the tool support is the biggest hurdle since, at the end of the day, their language compiles down to IL so there should be no issues.

That last statement is true except the NETCF CLR only understands a (very rich) subset of the entire IL set. It doesn't support some niche opcodes mostly used by managed C++ (which the NETCF does not support). I promised I'd find the list of what is supported and what isn't. Dan from the NETCF team has posted such a table on his blog and even though it was written for v2.0 it still holds true for v3.5 of the NETCF. Check it out here.

UAC Elevation with COM

Thu, April 19, 2007, 01:05 PM under Windows | Vista | UAC
You've probably read my posts on UAC (tip: read bottom up), and in my talks I always explain how to factor out into separate processes any admin functionality.

What I've never explained is how to factor into out-of-proc COM objects the admin functionality. Christoph has explained that on his blog and has done it all in managed code no less! Check his posts out starting here (and follow his links for the rest).

Bridge in Glidepath

Thu, April 19, 2007, 12:27 PM under Windows | Vista
By now you all know about the VistaBridge sample that is part of the Windows SDK. I hope you also know about Project Glidepath. Apparently, the guys behind glidepath thought it was too much effort for a developer to have to type code that simply sets properties like the code shown here, so they created a package where you simply make selections with the mouse and the code gets spat out for you!

Definitely worth watching the 5 minute screencast (follow their link).

Microsoft Jobs

Thu, April 19, 2007, 12:21 PM under Links
Steve is giving up his job. If I ever decide that I am fed up of so many in-person events and would like to shift the bulk of my efforts to writing, I would go for this one. Imagine contributing in more ways than one to every issue of the world's best developer magazine on the Microsoft platform!

The other one is not a specific role but boy does Mike sell the MED division well! I tell you what, I am tempted already...

If the two above don't take your fancy, check out the full list (it is free to register).

Outlook rules

Thu, April 19, 2007, 11:53 AM under Communication
After a long period offline on holiday, I returned to all my inboxes overflowing with email - none more than my work email account. It has taken me about 3 days to address everything emailed to me, but that is another story. There are many factors to receiving tons of email and I could easily rant about people CC'ing me for no reason whatsoever (or rant about those asking for read receipts, wot's up with that?).

However, the one that really ticks me off is people that BCC me: I call those people BCCards (pronounced slightly differently than what it is spelled). BCCing also happens when someone decides to add a bunch of distribution lists (DLs) to the BCC field thus avoiding my carefully constructed Outlook rules for categorising posts to DLs into their own folders. It also happens when someone sends an email to a DL that I have not subscribed to but that is a member of some larger DL that I have no interest in. So how can I deal with this issue and avoid the useless message from landing in my inbox directly? Annoyingly, I cannot find a rule that I can create in Outlook to cope with this situation, so I had to take a number of steps. If you know of a better way please let me know and if you don't, then I hope you appreciate my approach (works with Outlook 2007).

1. Go through all the existing rules and make sure that in the Actions (step 2) you have checked the "stop processing more rules" action.
2. Create a new rule and move it to be the last rule of them all (FYI rules get processed in order). Do not create a condition for this rule, and go straight to step 2 on the actions. Check the "Permanently Delete it" box. AND then move to the next page on Exceptions and check the "except if my name is in the To or Cc" box.

I won't tell you how close I came to also doing the above for messages marked with "High Importance". Have you ever received a message that had this set and was truly important? Have a look in your inbox now and check to see which messages are marked as such. Looking at mine, it seems that the messages are not important but the people that send them think they themselves are...