Archive for May, 2008
VBA to VSTO
31 May 2008A recurring topic these days: to customize Project Professional 2007 should I be using VBA or VSTO?
Jack Dahlgren has just published a great post on the subject: Making the move from VBA to VSTO in Microsoft Project highlighting two benefits of switching to VSTO:
ClickOnce deployment allows you to publish Windows-based applications to a Web server or network file share for simplified installation. Visual Studio provides full support for publishing and updating applications deployed with ClickOnce.
- Improved Visual Studio 2008 template for building a Project Add-in
Other interesting articles worth reading on pros/cons of making the transition are:
- Converting Code from VBA to Visual Basic .NET
- Migrating a VBA Solution to a Visual Studio Tools for Office Add-In
Popularity: 4% [?]
EPM 2007 – Working with Excel Services and Dashboards
31 May 2008
Popularity: 87% [?]
Project at TechED Developers next week
30 May 2008Boris Scholl, Brian Smith and I will be attending TechEd Developers 2008 in Orlando next week.
We’ll be delivering the following sessions:
Customizing the Microsoft Office Project Web Access User Interface
Line-of-Business Integration Using Microsoft Office SharePoint Server 2007 and Microsoft Office Project Server 2007
Code Samples
Project Initiation Using Microsoft Office InfoPath and Windows Workflow Foundation
Code Samples
We’ll be around all week attending the Blogger Connect (next to TechEd online / Fishbowl areas) as well as the Office Developer booths.
Don’t be shy, come and meet us we want to hear your Project Server feedback from a developer perspective!
Popularity: 4% [?]
Project at TechEd 2008 Developer – 3rd to the 6th June 2008
30 May 2008Boris Scholl, Christophe Fiessinger and I will be attending TechEd Developers 2008 in Orlando next week.
We’ll be delivering the following sessions:
Customizing the Microsoft Office Project Web Access User Interface
Line-of-Business Integration Using Microsoft Office SharePoint Server 2007 and Microsoft Office Project Server 2007
Code Samples
Project Initiation Using Microsoft Office InfoPath and Windows Workflow Foundation
Code Samples
We’ll be around all week attending the Blogger Connect (next to TechEd online / Fishbowl areas) as well as the Office Developer booths.
Don’t be shy, come and meet us we want to hear your Project Server feedback from a developer perspective!
There may soon be pictures of Christophe and I showing up on the blog list for Project at http://technet.microsoft.com/en-us/office/projectserver/cc511254.aspx – you have been warned!
Popularity: 3% [?]
Project at TechED Developers next week
30 May 2008Boris Scholl, Brian Smith and Christophe Fiessinger will be attending TechEd Developers 2008 in Orlando next week.
They will be delivering the following sessions:
Customizing the Microsoft Office Project Web Access User Interface
Line-of-Business Integration Using Microsoft Office SharePoint Server 2007 and Microsoft Office Project Server 2007
Code Samples
Project Initiation Using Microsoft Office InfoPath and Windows Workflow Foundation
Code Samples
They will be around all week attending the Blogger Connect (next to TechEd online / Fishbowl areas) as well as the Office Developer booths.
Popularity: 3% [?]
RACI charts and Project
30 May 2008RACI charts are a convenient tool in the initial planning process for a project, helping to identify the parties that are Responsible, Accountable, Consulted, and Informed (RACI) throughout the project.
To fill out a RACI chart, first you need to determine the functions, decisions, and/or activities that will make up your project. Then, you decide who will be your project’s participants. These make up the rows and columns in the chart. To complete the chart, you fill out the grid, identifying how each participant is involved with each function, decision, and/or activity. That is, whether a participant is responsible, accountable, consulted, or informed.
If your organization uses RACI charts to help plan your projects, you may find it helpful to also track RACI designations in your Microsoft Office Project plan.
You can use columns in the Gantt Chart view to track the Responsible and Accountable participants for each task in your project. You may also want to add columns for the Consulted and Informed participants, although these roles are not necessary for every task.
Consider using the Resource Names column to contain the Responsible participants. The Resource Names column lists the resources assigned to each task, so it translates well to the Responsible role in a RACI chart. Also consider using the Contacts column to contain the Accountable participants.
If the Resource Names and Contacts columns are unavailable for you to use for the Responsible and Accountable participants, you can simply add two custom text fields to your view, renaming them accordingly.
The following resources offer guidance on adding columns to a view:
· Hide or show a column (remove or add a column)
· Demo: Add, hide, and show columns in Project
· Watch this: Hide or show a column
Because completing a RACI chart is typically done early in the planning process, you may find it helpful to assign generic resources as the Responsible and Accountable participants.
For more information on assigning and replacing generic resources, see:
· Add resources to your project
· Add resources to the enterprise resource pool
· Substitute resources in a project
You can learn more about using RACI charts in the following articles:
· Inside Microsoft.com: Release Management
· Establish and manage the project stakeholders list
Popularity: 2% [?]
Blogging Tips
30 May 2008I have been blocking for a few months now. Given that I expected nothing in return for my scribbling, I have been rewarded with a small readership and a growing number of repeat readers. My bounce rate is improving and I am getting traffic from referring sites. This is great, but I blog because writing relaxes me, I love what I do, and I believe in giving back to my community.
In learning about blogging and in reading blogs for a number of years, I have developed sort of an internal checklist of concepts and practices that I think help me in blogging. What follows is a summary of the key points.
Find Your Niche
Determine what your talent, specialization, or particular passion is and write about it. You may find yourself out on a tangent or you may feel the need to rant, but try to return to just a few core subjects. The world is highly specialized. Most people will arrive at your blog by way of search engines. That means they are looking for something specific. Use your talents and passions to full a demand and people will read you.
Know Your Audience
First, expect the world as your audience–not because you are important or a brilliant writer (maybe you are), but because that is just how the web works. Since May, my blog has seen visitors from 76 countries. Many of these readers come to the site with English as a second language. I try to refrain from using American slang, academic prose, or any language construct that might obscure my intentions. Think of Strunk and White’s Elements of Style.
Second, based on the first point about finding your niche, figure out who you are talking to. In my case, I am speaking to software developers who are using Microsoft technologies to build solutions around Microsoft Project. I also write about more general C# and .NET topics. The blog, therefore, is not likely to be interesting to a great many people. I am okay with that.
Don’t Try to Be Right
I read blogs where the writer is trying to convince me of of something. This is okay for political blogs, but less appealing in a technology blog. If you want to convince people that something is more correct than something else, demonstrate it rather than proselytize.
Be Selfless
This tip may not be for everybody, but I make an effort to remain in the background. I think the problems I am trying to solve and the process I go through to solve them are more interesting than what movie I saw last weekend or what my dog did in the backyard last night. I am attracted to blogs that state clearly in the blog title what the subject is, followed by a deep dive into the meat of the topic. Guys like Chris Brumme, Eric Lippert, and Joe Duffy follow this pattern nicely. If you are writing about your work but frequently subject your readers to accounts of your weekends out on the town, consider having a separate personal blog.
Give Credit
It is a fact that in software development we borrow from each other all the time. I don’t mean the way Microsoft and Apply borrowed from PARC, I am referring to the daily borrowing of interesting code and concepts from those that went before us. When I am working, I spend just as much time writing code as I do reading about how others have solved similar problems. When I borrow something directly, I try to give credit to those responsible–this goes as far as adding a link to a blog post or article in comments. It certainly extends to blogging. If I use somebody else’s work, I try to give them credit for it.
Check Your Stats
There are a number of analytics packages available which give you interesting data about how readers arrive at your site, what they do when they get there, as well as technical demographics, regional demographics, and other analytic features. I like Google Analytics. I check my statistics daily to see what the hot posts are, where people are coming from, and how long they are staying on the site. In the early days, I was seeing a high bounce rate–readers would sweep in for 30-40 seconds and then exist the site. I did some research and compared my writing style to other, more successful blogs, and made some changes. Use these tools to reach more people.
Moderate Your Comments
I see blogs with have open comments policies with links to stuff I expect is illegal and certainly offensive, or I see blogs where readers have posed questions to the author who seems to never return to answer. You have a responsibility to your readers to tend to their comments and questions.
Don’t Ask For Donations
Unless you are unemployed, writing for a non-profit, or want to solicit funds for a worthy cause (this does not include your personal income or coffee fund), don’t ask for donations. If you want to make money off your blog, do it through ads (and
Be Persistent
In the beginning, blogging can feel like yelling into a vacuum. Be persistent. Eventually, if you write about something people need or if you are interesting enough, you will start to be rewarded. The number of bloggers out there is astounding. If you hook up Google Analytics and see just a few people a day spending ten minutes reading one of your posts, be thankful. Don’t expect this to happen overnight. In fact, the best bet is to expect it will never happen and be pleasantly surprised when it does.
Write Because You Like…No, Love It!
I close with the most important tip: write because you like it. I come across blogs that read like the author was straining to write or straining for something to say just to get in their daily post. Other blogs are written like press releases or academic treatments on a subject. These styles come across as though the author is trying to impress somebody or trying to meet a quota. Write because your passion for your work drives you to share it with others. Write for all of those times you have read other blogs and got that little piece of information that set you free from a hard problem. Write because you love it.
Popularity: 3% [?]
FAMFAMFAM & Converticon - Great *Free* Icons and Conversion Tool
30 May 2008My favorite free icons come as PNGs. There is a handy little tool online called ConvertIcon that will quickly convert the PNG image files to ICO format.
Thanks PunkLabs & Mark James
Popularity: 1% [?]
Project 2007 with Mac OS
30 May 2008A few of you are wondering if Project Standard/Professional (desktop) and Project Web Access (Project Server web based client) run on a non Windows operating system and in particular on a Macintosh running on MAC OS.
First as a reminder the desktop requirements for Project and PWA 2007 are (Microsoft Office Enterprise Project Management Solution system requirements):
| Operating System | Browser | |
| Project 2007 | Microsoft Windows XP with Service Pack (SP) 2, Windows Server 2003 with SP1, or later operating system. | |
| Project Web Access 2007 | Internet Explorer 6.0 or later, 32-bit browser only. Internet |
So what happens if I access PWA with different browser other that IE?
The page won’t load plus PWA requires ActiveX to manage resources, in the project center, and to visualize OLAP data using the Office Web Component.
As for Project you cannot install it on a non Windows OS (MAC, Unix, Linux…)
So what are the options?
- Run a desktop virtualization software such as Microsoft Virtual PC for Mac (basically run another version of Windows as guest in your Mac host session, confused?
, refer to this as well: Microsoft Virtual PC Overview
- Use remote desktop Connection (connect from your Mac OS desktop to another computer/server running a Windows OS), check the Windows version compatibility. This option is the most viable and scalable option if you need to access Project Server and it would typically require setting a Windows Terminal Services farm.
ere is a third option since Mac OS is now running on Intel platform: a good old dual boot such as BootCamp for instance…
Popularity: 1% [?]
TechEd 2008 Preview – Part 1 – Project Server 2007 Line of Business Integration with the Business Data Catalog
30 May 2008This is the first of my pre-TechEd 2008 postings – and you may already have seen one that Christophe posted a few days ago. This one is part of the same session I am doing with Christophe next Thursday afternoon (not Tuesday as I said earlier) in Orlando and the scenario here is accessing both AdventureWorks data (from the sample database) and Project Server 2007 data using the Business Data Catalog (BDC).
To connect the two sets of data I am using a Project level custom field to hold the Vendor ID, which is the same code used in AdventureWorks to identify vendors. More on this link in my next post where I have a database CLR Trigger in C# that updates Project Server with new vendors – and Christophe’s code mentioned above stops “unauthorized” users making changes to the specific lookup table.
A picture is certainly worth a thousand or more words – so here is a sample of the kind of this this scenario delivers. This is a web part page with a Business Data List and a Business Data Item part added. Selecting from the list allows display of more details of the specific project and associated vendor – as well as a few actions.
We can see details of the actual work and cost (from Project Server) and the vendor name, city and location (from AdventureWorks). The actions on the top web part allow us to search for the Project Owner on Live Search, Drill Down to Project on PWA, and finally to Map the Vendor Location using Live Maps – and here is what you get using that last option…
As you can see from the URL it is using data from the BDC as parameters in the search – the other actions use a similar process. In this example as the AdventureWorks street addresses are fictitious I just use the zip code and city.
I have attached the XML of the definition file, and you will need to make a few edits to fit your server names and you will also need to have a Project level Number custom field to hold the VendorID. I am pulling data from the reporting database views and cross joined to the AdventureWorks database as you will see from the XML.
When I started working with the BDC I found it easiest to look at the XML files from the AdventureWorks sample first, then also took a look at Christophe’s search example for project data and once I understood how it all worked it made it easier to work with the Catalog Definition Editor. The cool thong about the definition editor is that it allows you to execute the “finders” to ensure everything is working as planned.
and even the actions…
In the next week or two I aim to post a video walking through creation of some of this – but I am sure with the XML and looking at the other samples already out there you should soon be able to get this kind of thing working. As a final couple of ideas for you I also show a couple of list to which I have added a new column containing “Business Data” and then defined which elements I want to display. This then adds data from Project and AdventureWorks to list data!
First is a calendar list item
where my project meeting item has the actions available
including profile information
The same kind of thing can be surfaced in more regular custom lists…
and again all the actions are available for each project.
One thing to remember is that in this example I am just pulling data based on the account running the web application so you will want to consider security in more depth than I have. Using a web service instead of SQL as the datasource for the BDC may give you more control in this respect – although the standard PSI web services cannot be consumed directly. Finally the BDC is just surfacing the data – it isn’t replicated in any way and is not stored in the content database.
Popularity: 2% [?]

