Giter Site home page Giter Site logo

wordtotfs's Introduction

WordToTFS

Since the beginning of TFS (Team Foundation Server), Microsoft has been providing integrations for Microsoft Office products like MS Excel or MS Project but not for MS Word. WordToTFS has been created to fill this gap. Work items can be created and edited in MS Word and bidirectionally synced between TFS or Azure DevOps (Services and Server) and MS Word. In addition to exporting and authoring work items, WordToTFS also supports generating test specifications and test result reports. More information about the functionality is available on the website.

Requirements & Installation

Install the following

  1. MS Office (>= 2017))
  2. Visual studio 2017 Community Edition (workloads: .NET Desktop Development, Office/SharePoint Development)
  3. Visual Studio 2010 Tools for Office Runtime (>= version 60828.00, download)
  4. Windows SDK (xsd.exe is needed, see under C:\Program Files (x86)\Microsoft SDKs\Windows)

Additional

  • Add xsd.exe to Windows-Path (A post build is generating a W2T.xsd based on the class structure. The W2T is being used by the WordToTFS templates.)

Local Build and Test

Build or Run TFS.SyncService.View.Word project. The View.Word project is a COM plugin for Word. When you run the solution with Visual Studio, Word will be opened and WordToTFS is directly loaded as COM-plugin.

Automatic testing and unit testing

The project contains unit and integration tests. Integration tests require a running Azure DevOps Server instance. For local testing, the Azure DevOps (Server) information must be provided in the Local.runsettings file. The tests are marked with an according test category:

  • "None / No Class": Can be run without any Azure DevOps (Server).
  • "ConnectionNeeded": A connection to any Azure DevOps (Server) is needed, but no preparations must be made within the project.
  • "Interactive", "Interactive2" and "PreparationNeeded": These categories are currently not usable, because structured test data is needed. The test data is not yet part of this repository. For further details please see following paragraph.

The tests in the test category "Interactive", "Interactive2 and "PreparationNeeded" need already existing work items as predefined test data. This setup is needed, to have certain states of work items which are used within the tests. For that reason, we backed up a Project Collection containing those test data. This Project Collection is restored it in AITs test environment. Since cleanup of the backup collection is much effort, it is not yet part of this repository. A way of running these tests is an open point and may be shared in the future. The backup contains test plans with test work items which are used to make end-to-end-test for word-file creation based on a configured template. For example, this is needed in the class ConsoleExtensionHelperTest for testing the console behavior of WordToTFS. The file ConfigurationNew1.xml contains the name and test result configuration or test specification configuration with the name of the test plan and test suite that will be used. Please skip and ignore these tests currently. Somebody of the community might also work out a better test data management to automatically create the test data without using a backed up database.

Centralized build system (Azure DevOps Pipeline) and Continuous Integration

As a centralized build system Azure DevOps Pipelines is used, because the previous builds were already using TFS-based build environments and all requirements could be fulfilled. The continuous integration build is shared as a yaml workflow in this repository, please check the azure-pipelines-ci.yml. To successfully run and configure the complete Azure DevOps Pipeline, a build environment with certain conditions and configurations must be set up.

The Pipeline needs the following variables configured:

  • Test Server
    • TfsServerName: The name of the Azure DevOps (Server) used for testing
    • TfsServerFQDN: The fully qualified domain name within the network of the Azure DevOps (Server) used for testing
    • TfsTeamProjectCollectionUrl: The team project collection url to the Azure DevOps (Server) used for testing
    • TfsTeamProjectCollectionName: The team project collection name to the Azure DevOps (Server) used for testing
    • TeamProjectName: The team project name of the Azure DevOps (Server) used for testing
  • Manifest update for having the project successfully configured for click once (updatemanifest_offline.ps1)
    • CertificateThumbPrint: The thumbprint of the pfx certificate that will be used
    • OfflinePublishUrl: The offline url where the click once result ist published
    • OnlinePublishUrl: The online url where the click once result ist published
    • TimestampUrl: The time stamp url for the certificate

Strong Naming and Signing

The assemblies are strong named due to several restrictions using click once and office plugins. A dummy.snk file is being used in all project files to strong name the assemblies and prevent dll manipulation. For a publishing pipeline this publicly shared file should be replaced.

WordToTFS also needs to be signed via a certificate to successfully be used for publishing. For local development the current configuration of TFS.SyncService.View.Word_TemporaryKey.pfx can be used. This pfx must be replaced and the valid ManifestCertificateThumbprint used for publishing.

Documentation and User Guide

The full documation is currently only available on the website. The PDF contains detailed information about how to install, configure and use WordToTFS.

Contribution

We love pull requests from everyone. Fork, then clone the repo:

git clone [email protected]:your-username/project-name.git

Make your change. Make sure to test your changes. Push to your fork and please do not forget to submit a pull request.

At this point you're waiting on us. We like to at least comment on pull requests. We may suggest some changes or improvements or alternatives.

Some things that will increase the quality of your pull request:

  • Write tests or test your changes.
  • Apply the coding style of the project.
  • Write a good commit message.
  • Explain your changes.

wordtotfs's People

Contributors

m-isenmann avatar qanh96 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wordtotfs's Issues

Images not showing in Word

Recently, the images present in our WorkItem description do not show up when imported into a Word document. Instead, it shows a small transparent box.
image

This has always worked until recently. Maybe a Windows or Office update could have break this ?

I have read it might be caused by "Internet Settings" that blocks the download of images. But Azure DevOps is added as a trusted site already.
image

I really don't know what to do now so that it works again.

Thank you for your help !

*** UPDATE ***
After some research and debugging, I think I might have found the problem. The plugin seems to be looking for "img" tags.
image

But if I inspect the html data returned by Azure DevOps, the image tag looks like this :
image
image

Hope it can help.

TLS connection issues with WordToTFS version 7.0.2012.2202

We have received messages from various customers that WordToTFS displays an error message when connecting to local as well as cloud variant of azure devops.
The message displayed is "An existing connection was forcibly closed by the remote host".
Initial analysis indicates a TLS (HTTPS/SSL) problem, i.e. the underlying libraries have a problem selecting a compatible TLS version.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.