Wednesday, June 07, 2006

Security Prompt Gone from Outlook 2007 Object Model (Almost)

What's New for Developers in Microsoft Office Outlook 2007 (Part 1 of 2)

"...
Security
Outlook 2007 introduces an important change in the way that the Outlook object model guard operates. While the behavior of the object model guard has not changed significantly for Outlook add-ins, Outlook 2007 allows external applications to run without object model guard prompts-provided that the computer on which your code is running has functional antivirus software installed and that all antivirus definitions are current.

This change represents a major departure from the way the object model guard worked in previous versions for external out-of-process COM callers. Before Outlook 2007, external COM callers were always untrusted from the perspective of the object model guard. This means that external applications had to resort to extended MAPI or third-party libraries in order to prevent the display of Outlook 2007 object model guard warnings, such as the one shown in Figure 3.


Outlook Address Book warning

Figure 3. Outlook Address Book warning

The object model guard was originally introduced for Microsoft Outlook 98 and Microsoft Outlook 2000. Since the introduction of the object model guard, the frequency of the Address Book warning often frustrated developers for legitimate external COM applications and their users. Also, if you needed to use CDO for MAPI property access or improved performance, you faced a different security model that did not integrate with the Outlook add-in trust model. For most applications, Outlook 2007 has removed the need for CDO. Outlook 2007 offers improved security that aims at removing development road blocks for all legitimate Outlook developers. The following sections describe the operation of the Outlook object model guard in Outlook 2007.

....


Out-of-Process Callers and the Outlook Object Model Guard
For out-of-process callers, the behavior has changed significantly from Outlook 2003. If antivirus software has been installed and is up-to-date on the client computer, Outlook will not display object model guard warning dialogs when you call protected members such as MailItem.Send or MailItem.Recipients.

All out-of-process COM callers and add-ins will run without security prompts under the following conditions:

  • The client computer is running Microsoft Windows XP SP2 or Microsoft Windows Vista and the Windows Security Center indicates that the antivirus software is in a "Good" health status. If the computer is joined to a domain, this health status indicator may not be visible, but will still be maintained.
  • The installed antivirus software is designed for Windows XP SP2 or Windows Vista.
  • Outlook is configured in one of the following ways:

    • Uses the default security settings
    • Uses group policy-defined security settings that are set to warn when no antivirus software is detected
    • Uses group policy-defined security settings that do not have programmatic access policy applied
Additionally, Outlook will suppress the prompts when it has been configured to Never warn me about suspicious activity (not recommended) through the Trust Center dialog box ..."

This is huge! (For me and other out of process Outlook developers at least).

Working around Outlook security eats up way too much development time... This feature alone will drive me to push for Outlook 2007.

Microsoft Community Bar

Microsoft Research - Microsoft Community Bar

"The Community bar adds context-dependent content to the web browsing experience. As a user browses the web, he can see (and leave) notes from other people who visited the same page, chat with other people viewing the same page, tag the page with a bookmark or category label, view all the inlinks to the page, find related pages, perform context-specific search, and see blog postings related to the page.
 
..."

Sounds kind of interesting...

"Authoring a Custom Bootstrapper Package for Visual Studio 2005"

MSDN - Authoring a Custom Bootstrapper Package for Visual Studio 2005

"Summary: This article discusses how to integrate a custom application prerequisite into the Visual Studio 2005 Bootstrapper, allowing other developers to deploy the prerequisite with their applications. (8 printed pages)
 
...
The Visual Studio 2005 Generic Bootstrapper

The Visual Studio 2005 Bootstrapper is a technology that allows you to create an integrated setup experience for application prerequisites and ClickOnce or Windows Installer installations. With the Bootstrapper you do not have to worry whether or not end users have components like MDAC or the .Net Framework 2.0 installed on their machines-simply indicate which prerequisites your application depends on and the Bootstrapper will take care of installing them along with the application itself.

Visual Studio 2005 includes out-of-the-box capability to install several common prerequisites using the Bootstrapper, including .NET Framework 2.0, SQL Server Express 1.0, and others. The Bootstrapper is completely extensible, so it can be configured to install just about any redistributable. As a redistributable owner, providing a means for developers to seamlessly install your package with their application using the Bootstrapper promotes penetration of your redistributable, and simplifies servicing by providing an alternative to privately deploying assemblies in the redistributable.

This whitepaper will show how to integrate a custom application prerequisite with the Bootstrapper. This will allow other developers to deploy the prerequisite along with their applications.
 
..."
 
I’ve been looking for a good technical article on creating my own bootstrap package.

Looks like I found it..

(via Chris Smith's completely unique view - Authoring a Custom Bootstrapper Package for Visual Studio 2005)

Tuesday, June 06, 2006

Attrice's Microsoft Build Sidekick

Attrice - Microsoft Build Sidekick


"General
MSBuild Sidekick is a tool for MSBuild Engine users providing Graphic User Interface front-end for editing MSBuild project files. The build project files may be either created as Microsoft Visual Studio© 2005 build projects or as Team Foundation Team Build build types.

 
The application was developed by our parent company, Trivium Technologies and is distributed by Attrice under Sidekicks license.
 
View screenshot
 
The version 1.1 of Build Sidekick provides the following features:

  • Load and modify any file complying to MSBuild schema
  • View build project structure in a tree view that displays tasks used in build, property groups and properties, item groups and items, targets and targets tasks and imported build projects.
  • Show or hide presentation of imported definitions in a project tree view
  • View MSBuild project raw XML source as you modify the project
  • Modify project default targets
  • Add or remove tasks used in build project from external assembly
  • Add, remove or modify property groups
  • Add, remove or modify properties in property groups
  • Add, remove or modify item groups
  • Add, remove or modify items in item groups
  • Add, remove or modify targets
  • Add, remove or modify selected target's tasks, tasks order
  • Modify selected task properties (including output properties specification)
  • Import or remove external build projects
  • Open any imported project from the loaded project
...

Intended usage
MSBuild Sidekick application’s objective is to assist MSBuild users in creating and supporting large and complicated MSBuild project files. The project elements are displayed in tree view hierarchy structure so viewing of even complicated projects structure becomes easy.

The application provides concise and efficient GUI for the purpose of creating, modifying or removing any element supported by MSBuild schema, so in-depth knowledge of XSD schema details becomes unnecessary.

The Sidekick user may easily add any build task defined in external assembly. The assembly task may be added by using assembly file path or assembly name; the user may choose to use all or specific build tasks available in the assembly. MSBuild default tasks are available without any special configuration.

..."

NICE. And at a perfect price point (free).

Make sure you also check out their very cool Team Foundation Server Version Control Sidekicks (Workspace Sidekick and Status Sidekick).

(via Rob Caron - MSBuild Sidekick)

Technorati Tags: , ,

Launch a Process on A Remote Machine With Custom Credentials via WMI

Steve Schofield Weblog - WMI - start a process on remote machine and passing custom credentials.

"I use System.Management in .NET 2.0 to connect, pass custom credentials to a remote machine and query with WMI frequently. This is straight forward and there are many examples showing the syntax how to do this. However, while working with remote IIS7 installs, I wanted to execute a command on a remote machine while passing custom credentials. I couldn’t find an example that provided this functionality, hopefully this will save someone time searching for the syntax.  This sample starts an instance of ’calc.exe’ on a remote machine. 
 
..."

I’ve had a like need paused on a low priority background thread... This will be useful when I resume that thread.

Monday, June 05, 2006

Label Provider for WinForms

HotDog’s Blog - LabelProvider

"For the description of most controls we use labels and I for one don’t like to add a label manually for each control. Been using a component that paints values, but never got around to put it in a nice coat and with design time support up until now. The design time being the most work (although greatly alleviated by finding out how to use the isComplete parameter of the InstanceDescriptor ;-) ), the component is easy in use and deployment.

Usage: drop it to your form (or container control) and you get a new property on each control (”Label on LabelProviderName”).

You can simply type in the labeltext and a label will be painted on its parent.

To set more details, when the text is set a LabelInfo object will be created automatically. A plus sign appears in front of the property once it has been set, to indicate it can be expanded. Other properties for the label such as the Alignment, Font and Color can then be set. ..."
 
That’s pretty darn cool...

The "label my controls game" is one that I don’t like playing when building WinForm apps. The LabelProvider sounds like a great idea and one that could save a good bit of time.

Using VPC for Development and Debugging Whitepaper

Microsoft Virtual PC 2004 Development and Debugging

"Microsoft Virtual PC offers many features to facilitate the software development process. By using Virtual PC to create a valid representation of an end-user machine, developers can test application changes on virtual end-user machines instead of on the developer’s physical machine. This helps to mitigate the "works on my machine" syndrome, thus reducing overall development and test cycle times. Fixing a bug before it goes to the testing group is much faster than fixing it after testers detect it."

This is a 1.16MB, 71 page, Word whitepaper that provides some good poop on using VPC in a development or test role. This is a "whitepaper" in the original sense as it’s not a bunch of marketing white noise, but instead contains some cool, useful, detailed and technical information. For example, page 12 ends with the creating of a INF that will add "edit" and "register" Explorer right click options for VMC files...

Worth a quick read if VPC is on your Dev Dude Utility Belt...

(via Virtual PC Guy's WebLog - Virtual PC website updated...)

Virtual PC 2004, Ubuntu and Video Display Issues

Kevin Lam's Web Log - Virtual PC 2004 Tip: Installing Other Operating Systems
 
"If you like operating systems like me, no doubt you've recently tried to install Ubuntu 6.06 and have run into some installation problems with Virtual PC 2004 SP1 related to display issues.  Try this trick:

  1. Move the selection to "Install In Safe Graphics Mode" (second option)
  2. Hit F6 to modify the install options.
  3. Enter "vga=771" before the double dashes "--".
  4. Hit Enter.
The install should work fine from there on in..." [Content leached almost in full]
Another cool VPC video tip...

Related Past Post XRef:
[tip] Knoppix cheat code for Virtual PC Video

Delta Based File Compression from MS for Windows (Beta)

Delta Compression Application Programming Interfaces

"Delta Compression is a differential compression technology developed by Microsoft. While it has mainly been used for Windows Updates, Delta Compression offers other uses as well. The following topics discuss Delta Compression Application Programming Interfaces (APIs) currently available in the Windows Platform.
...
PatchAPI

C-Language based API that allows you to create and apply deltas.
Lower computational overhead than MSDelta but typically creates larger deltas.
Applies to:
   Microsoft® Windows XP®
   Windows 2000®
   Windows Server 2003®
   Windows Vista®

 
MSDelta
C-Language based API that allows you to create and apply deltas. MSDelta offers optimization for a much larger range of file types than PatchAPI.
Applies to:
   Microsoft Windows Vista

 
This documentation is intended for software developers who want to programmatically create deltas (patches or compressed diffs) between files. General information about the various APIs is included in this documentation. It provides information about delta compression and the Delta Compression APIs. This documentation provides descriptions of the functions as well as supplemental information for developers who want to optimize the size of their deltas for certain file types.
 
..."
 
The MS Delta made me chuckle... Raise your hand if you ever used MS Delta (the predecessor to SourceSafe) [Hand Raised]

In any case, these API’s look interesting. It would be cool see something like this built into one of the auto app update methods (App Update block, ClickOnce, etc).

Designing And Implementing A Neural Network Library For Handwriting Detection, Image Analysis...

The Code Project - Designing And Implementing A Neural Network Library For Handwriting Detection, Image Analysis etc.- The BrainNet Library - Full Code, Simplified Theory, Full Illustration, And Examples

"In my previous article, the focus was on what a neural network can do. In this article, we will see what a neural network is, and how to create one yourself. I will go a little deeper. After reading this article, you will be able to


  • Understand the basic theory behind neural networks (backward propagation neural networks in particular)
  • Understand how neural networks actually 'work'
  • Understand in more detail, the design and source code of BrainNet library.
  • Understand in more detail, how to use BrainNet Library in your projects.
  • Think about new possibilities of neural network programming
  • Put forward some concepts to optimize and generalize BrainNet library.

..."

Neural Networks have always interested me... I just dig the thought of "training" a program to do something and then have it just do it on its own.

If your interesting in learning a little about neural networks and playing with a .Net neural network library, then check about the above post...

Technorati Tags: ,

Visual Studio 2005 Team Edition for Database Professionals

Visual Studio 2005 Team Edition for Database Professionals

"Visual Studio Team Edition for Database Professionals delivers a market-shifting database development product designed to manage database change, improve software quality through database testing and bring the benefits of Visual Studio Team System and life cycle development to the database professional.
 
...

  • Reduce the risk involved with changing database schema by comparing the source controlled version against test and production systems and automating the creation of change scripts.
...
  • Create full unit tests for your database schema that can be run independently or in combination with Visual Studio 2005 Team Suite to provide a comprehensive set of tests for the application and database tiers.
  • Author tests in either T-SQL or managed code with extensible unit test functionality and a new test editor.
..."

Very nice. Development DBA’s that I’ve worked with (and when I have my DBA hat on) kind of feel left out of the development process. Their tools and such have usually been very sperate from the main stream development process/tool suite.

It’s cool to see MS fill this hole with a new VS role (hey, that rhymes ;)

I’m also very interested to see how the testing is integrated. That’s the feature that really has me excited...

(via Dave Bost - Visual Studio Team System Adds Another Role)

Technorati Tags: , ,

Saturday, June 03, 2006

Requirement Authoring Starter Kit (RASK) - Updated

Luther Miller of Softagon sent me an email yesterday letting me know that the MSI for the Requirement Authoring Starter Kit (RASK) has been updated (fixing the flat folder structure issue). It can now be downloaded from http://www.microsoft.com/downloads/details.aspx?familyid=e96ccc54-8759-452f-bf68-3a261c663b66&displaylang=en.

Very cool... downloading it now...

Related Past Post XRef:
Requirement Authoring Starter Kit (RASK) - Part 2
TFS - Requirements Authoring Starter Kit

Technorati Tags: , ,