Mitdasein in the experience of encountering the customer in our common having been cast into the opening of beyng

Friday, March 25, 2005

Outlook 2003 VBA Language Reference

Get it here.

SBA SDK newsgroup via Google

microsoft.public.sba.sdk

Thursday, March 24, 2005

C# Program CopyOutlookContactsToBcm

// CopyOutlookContactsToBcm.cs
using System;
using Microsoft.Office.Interop.Outlook;

namespace BCMOutlook
{
class CopyOutlookContactsToBcm
{
[STAThread]
static void Main()
{
Application app = new Application();
NameSpace ns = app.GetNamespace("MAPI");
Folders messageStores = ns.Session.Folders;
MAPIFolder bcmFolder = messageStores["Business Contact Manager"];
MAPIFolder bcmContactsFolder = bcmFolder.Folders["Business Contacts"];
MAPIFolder olContactsFolder = ns.GetDefaultFolder(OlDefaultFolders.olFolderContacts);

foreach (ContactItem ci in olContactsFolder.Items)
{
ContactItem newContact = (ContactItem)bcmContactsFolder.Items.Add("IPM.Contact.Iris.Contact");
foreach (ItemProperty ip in ci.ItemProperties)
{
try
{
newContact.ItemProperties[ip.Name].Value = ip.Value;
}
catch (System.Exception) {}
}
newContact.Save();
}
}
}
}

Friday, March 18, 2005

Hermeneutic Design

From Microsoft Press book Object Thinking by David West.
Early in his career, [Terry] Winograd was a strong advocate of classical AI and was a strong formalist. Exposure to the ideas of Humberto Maturana and Francisco Varela, along with the philosophical works of Martin Heidegger, prompted his reconsideration of AI's formalist tenets. Winograd has turned his attention from formal modeling of the world to the issue of designing software to be used in the real world. He characterizes design as a conscious act, human-centric, conversational or dialogic in nature (betweens artifacts usch as software and hardware and human beings who are users of those artifacts), creative, communicational, with social consequences, and done as a social activity.
That paragraph is then repeated, rewritten, with this at the end:
...the work of Martin Heidegger, a hermeneutic philosopher. Writing with Fernando Flores, Winograd explored the work of Heidegger and its implication for computer system design.
The use of hermeneutics to describe what philosphers generally refer to as continental philosophy is interesting. Why not phenomenological or existential? I would prefer to reserve and restrict the use of the term hermeneutics in the software world to describe the interpretation of code in its original context.

On the next page, hermeneutic philosophy is aligned with the use of objects in software design.
Knowingly or not, the object community was concerned in the 1960s and 1970s with the same issues raised by the hermeneuticists in the nineteenth and twentieth centuries, as well as the issues that would be raised by the post-modernists in the 1990s. To an object advocate, objects are valuable because they facilitate user/computer interaction and communication among members of development teams. Objects enhance the art of software development but not necessarily the engineering.
The association of the anti-formal/logical/mathematical and pro-object-oriented computer scientists with continental philosophers in an interesting analogy, but does it survive closer inspection?

Thursday, March 17, 2005

Small Business Accounting SDK

The SBA SDK is available here.

Saturday, March 12, 2005

Ask the customer, not

That wet rag of an app
Theapplicationrunsintoanedgecase IasksthePMwhattheywouldliketheapplicationtodo SothePMsaystome Justasktheuser AndIpushback Theuserdoesnotwanttoworkforus Theuserdoesnotwanttheapplicationtogivethemmorework Theuserwantstheapplicationtoworkforthem Theuserdoesnotwanttoseeadialogboxpoppingupasking "Wang-dang-doodle the Sheela-na-gig? Yes No Help"
'Cause that's no help.

Tuesday, March 08, 2005

BCM on the bottom online

Microsoft Monitor notes:
Microsoft Business Solutions saw year-over-year growth of 41 percent to $190 million. Microsoft attributed much of the growth to licensing sales of Navision and Business Contact Manager. BCM is a client-relationship management add-on to Outlook that ships with three of the six Office 2003 versions. I would consider BCM a direct competitor to ACT! and Goldmine, so over-time sales could be significant. Early BCM success could merely be tied to strong out-of-the-gate Office 2003 sales. If Microsoft can sustain sales, BCM could prove a low-end CRM replacement, the way Outlook eventually drove a large number of desktop contact managers out of the market.

Outlook as a Platform (part deux)

M | Power follows up
But why not make it possible for others to build that on top of Outlook?

Outlook as a platform

Buzznovation's stomach speaks:
My gut tells me that Microsoft never intended Outlook to be a near industrial strength personal CRM system.
And that would be why they outsourced to MBS and we got BCM.

Saturday, March 05, 2005

What are BCM folder names?

They are in BCMRes.dll. Run ildasm on that assembly. Look for Microsoft.BusinessSolutions.eCRM.Resources.IrisFolderName.Keys.
The string resources are named directly for the members of Keys. Keys.ContactFolder is "ContactFolder", the Outlook Message Store in Keys.MsgStore is "MsgStore" and so on.

The actual name strings are in the assembly resources. One way to look at them is to run .NET Reflector on that assembly. Look for Resource Microsoft.BusinessSolutions.eCRM.Resources.IrisFolderName.Resoures.

MsgStore=Business Contact Manager
ContactFolder=Business Contacts

Friday, March 04, 2005

csc command line with Outlook

Here's a useful example of how to build a C# app that calls Outlook:
csc /optimize+ /t:exe /r:C:\Windows\assembly\GAC\Microsoft.Office.Interop.Outlook\11.0.0.0__71e9bce111e9429c\Microsoft.Office.Int
erop.Outlook.dll CopyOutlookContactsToBcm.cs

Thursday, March 03, 2005

How to: Install Outlook Primary Interop Assemblies

To call Outlook from managed code you need to have the Outlook Interop Assembly which is on the Office disk. Make sure you have .NET already installed because:
The .NET Programmability Support options only appear if Microsoft .NET Framework 1.1 is already installed on the computer.
And you'll want the Framework for the CLR (the engine that runs managed code) and for the C# compiler to convert your text into managed code.

Business Contact MAPI

On why BCM is the way it is.
[T]o write good Outlook Add-ins you pretty much have to use MAPI.

A managed component will have shipped while its unmanaged component will still be stuck in debugging the inevitable memory leaks, buffer overruns, and so on.
One of these days I'll post some managed code that exploits BCM, and I hope avoid stepping in any MAPI.

Hello, my name is

Rajat Taneja
Rajat's responsibilities includes setting vision, direction, strategy and leading the R&D efforts for delivering the entire line of MBS small business products. This includes hosted online services (e-mail marketing, e-commerce, web hosting, search engine optimization and analytics amongst others), Business Contact Manager a key feature area for Microsoft Office Outlook 2003, Microsoft Retail Management System and the upcoming Microsoft Office Small Business Accounting 2006 product line.
Heh. Glad someone's optimizing search. Who's optimizing BCM? Calls for more to social disassembling.

Seeing by listening

Listening on the way to the presence of the customer:
[D]iscourse is essentially apophantic, which means that it reveals something, it discloses what it talks about; the topic of discourse is a theme made visible to the speaker and to his listeners thanks to words which bestow a determination, a form to what is talked about.
Seeing customer, r u listening?

Tells it like the customer is

It's like this, see
ItellsthePMwhatthecustomerreallywants AndthePMsaystome Youarewrong SoItellsthePUMwhatthecustomerreallywants AndthePUMtellsme WhatthePMhearsyousayingisthatyourdickisbiggerthanhis AndthePMistellingyouhisdickisbigger AndthePMownsthecustomer SoIgoesbacktothePM AndItellsthePMthecustomerdoesntwantdick Whatthecustomerreallywantsisavibrator
Seen, mon?

Tuesday, March 01, 2005

Outlook 2003: Integration API Reference

Outlook 2003: Integration API Reference:
The Microsoft Office Outlook 2003 Integration API Reference contains comprehensive documentation for five sets of APIs that allow third-party developers to extend and integrate with Microsoft Office Outlook 2003 Service Pack 1.
I'm putting this here so that Google et al will index it. I've given up trying to find anything using the search at msdn.