none
Licensing MSDN content RRS feed

  • Question

  • Hi,

    I'm developing new documentation generator for .NET applications/libraries (successor of the NDoc), because the output that my tool produces is very close to the content of MSDN library, when documenting a member of type that inherits from type that forms .NET framework there is a need to put some description of this member in class/structure member listing. Take for instance the System.Object class, every class derives from this class, if I want to generate documentation for any class, in addtition to documenting members of this class I also have to put the <summary> tag [1] of methods such as ToString(), GetHashCode(), etc. in type's member listing. I had decided to write a tool that uses MTPS content web service [2] and collects short ID (for example hxz0dezc for System.Data.OleDb.OleDbType Enumeration), caption (OleDbType), DocId (T:System.Data.OleDb.OleDbType) and the <summary> tag ("Specifies the data type of a field, a property, for use in an OleDbParameter .") for all namespaces/types/members for .NET 2.0, .NET 3.0, .NET 3.5, Silverlight 3 frameworks. After days of swearing, praying and debbuging I have successfully written a tool that meets my needs and stores the shortID, caption, DocId, and the summary tag for all namespaces/types/members of specified framework into a SQLite database, so that my generator can quickly look up desired type or member and put the <summary> tag from .NET framework type/member in type's member listing.

    But the one question arises now, will I violate MSDN library licensing rules if I distribute previously mentioned content along with my application ?

    Thanks in advance.



    [1] http://msdn.microsoft.com/en-us/library/5ast78ax.aspx
    [2] http://services.msdn.microsoft.com/ContentServices/ContentService.asmx
    [3] http://msdn.microsoft.com/en-us/library/system.runtime.remoting.channels.itransportheaders.getenumerator%28VS.80%29.aspx
    Wednesday, October 28, 2009 2:22 PM

Answers

  • I figured out that MSDN's Class Library References are licensed under these [1] terms of use, so maybe now, somebody of you knows, whether can I store and distribute along with my application some parts of the MSDN ?

    After reading aftermentioned license, I guess the answer is no, but I'm not an expert in this field.


    [1] http://www.microsoft.com/info/cpyright.mspx

    You are unlikely to get an answer to this question from Microsoft in this forum.  The question you ask carries some potential liability to MS were a MS employee to offer a view.

    You have a couple of options. First, you can just do it - if MS has a real issue you get a cease and desist order pretty quickly (but see below first). Alternatively get your solicitor/lawyer/barrister to contact Microsoft and negotiate something.

    The terms in your footnote reference are, however, pretty clear: "You may not modify, copy, distribute, transmit, display, perform, reproduce, publish, license, create derivative works from, transfer, or sell any information, software, products or services obtained from the ServicesYou may not modify, copy, distribute, transmit, display, perform, reproduce, publish, license, create derivative works from, transfer, or sell any information, software, products or services obtained from the Services".  I can't see how you are going to be able to do what you want without incurring the wrath of LCA.

    One alternative might be to get your app to download the content you need/want at run time. That way, you are not copying, distibuting etc.

    I am NOT a lawyer but event that might be hard to get MS to agree to - You are not allowed to create deritive works based on these 'services'.

    Bottom line - publish at your peril - consult lawyers at your cost - and be careful!

    Sorry if this is not the answer you wanted.

    Thomas Lee - doctordns@gmail.com
    • Marked as answer by p-celej Friday, December 25, 2009 4:04 AM
    Monday, December 21, 2009 11:41 PM

All replies

  • Have you used Sandcastle (http://sandcastle.codeplex.com) which already does what you decribe above.

    Anand..
    Group Manager| Developer Division| Microsoft Corp.| http://blogs.msdn.com/sandcastle/ http://blogs.msdn.com/innovation/
    Wednesday, October 28, 2009 9:20 PM
  • Sandcastle is awful, consumes a lot of memory, documenting takes forever because it downloads .NET Framework's documentation at generation-time using only one thread ! I would like to create something more intuitive with better GUI.
    Wednesday, October 28, 2009 10:07 PM
  • Licensing any Microsoft content is a minefield and this is probably not the right place to discuss the minutae of licensing. Sadly, I have no idea who to ask. Googling (and using bing) yeilds not decent clues.

    I suspect that if you were to write to Microsoft (at 1 Microsoft Way, Redmond, etc) and the letter was on letterhead, someone will forward it to the right place.

    Of course, as is so often the case, if you just do it, then you'll find out who to ask for forgiveness.  :-)
    Thomas Lee - doctordns@gmail.com
    Tuesday, November 17, 2009 7:22 PM
  • I figured out that MSDN's Class Library References are licensed under these [1] terms of use, so maybe now, somebody of you knows, whether can I store and distribute along with my application some parts of the MSDN ?

    After reading aftermentioned license, I guess the answer is no, but I'm not an expert in this field.


    [1] http://www.microsoft.com/info/cpyright.mspx
    Tuesday, December 15, 2009 7:51 PM
  • I figured out that MSDN's Class Library References are licensed under these [1] terms of use, so maybe now, somebody of you knows, whether can I store and distribute along with my application some parts of the MSDN ?

    After reading aftermentioned license, I guess the answer is no, but I'm not an expert in this field.


    [1] http://www.microsoft.com/info/cpyright.mspx

    You are unlikely to get an answer to this question from Microsoft in this forum.  The question you ask carries some potential liability to MS were a MS employee to offer a view.

    You have a couple of options. First, you can just do it - if MS has a real issue you get a cease and desist order pretty quickly (but see below first). Alternatively get your solicitor/lawyer/barrister to contact Microsoft and negotiate something.

    The terms in your footnote reference are, however, pretty clear: "You may not modify, copy, distribute, transmit, display, perform, reproduce, publish, license, create derivative works from, transfer, or sell any information, software, products or services obtained from the ServicesYou may not modify, copy, distribute, transmit, display, perform, reproduce, publish, license, create derivative works from, transfer, or sell any information, software, products or services obtained from the Services".  I can't see how you are going to be able to do what you want without incurring the wrath of LCA.

    One alternative might be to get your app to download the content you need/want at run time. That way, you are not copying, distibuting etc.

    I am NOT a lawyer but event that might be hard to get MS to agree to - You are not allowed to create deritive works based on these 'services'.

    Bottom line - publish at your peril - consult lawyers at your cost - and be careful!

    Sorry if this is not the answer you wanted.

    Thomas Lee - doctordns@gmail.com
    • Marked as answer by p-celej Friday, December 25, 2009 4:04 AM
    Monday, December 21, 2009 11:41 PM
  • Hello !

    Thank you very much for your priceless answer, you actually confirmed my worst fears. This is very sad, because I wrote application that allows me to download, transform and store some MSDN documentation in a uniform format for 16 products / frameworks. What you said makes my works in large extend useless.

    Of course I can download documentation at application run-time using MTPS web service but, firstly, this solution is very slow when comparing to using SQLite database that returns results in eye blink (even on assumption that I will use several threads to obtain documentation from web service and cache results on disk for further usage - upps, is it legal at all ?). Secondly, the format of the summary tag (these two or three sentences above type / method syntax) varies among different products / frameworks documentation, there is no one set of rules that describes the summary tag for all products. This is very important issue, because, for instance bold text can be described using one or more following tags <b></b>, <span><span class="selflink"></span></span>, <span><span class="input"></span></span> or <strong></strong>, moreover the summary tag may be placed in very different locations in different products / frameworks. My application smartly transforms all this mess into simple, unified, HTML-like text and stores it in a SQLite database.

    So what is left ? I think the best option at this time is to remove all summary tags and leave in database only XmlDocIds [1] and ShortIds [2] to make, at least possible generating www links to MSDN Library, doing so I will not violate any license - since I don't store / distribute any content. In meantime I will ask Microsoft for appropriate consent, unfortunately I do NOT represent any company / organization, I'm just single enthusiastic developer, so chance that Microsoft will give me the appropriate license is close to zero

    Once again, thank you very much for your attention.


    [1] Sample XmlDocId is: "M:System.Object.ToString"
    [2] Sample ShortId is "aa155093",  which turns into http://msdn.microsoft.com/en-us/library/aa155093.aspx
    Friday, December 25, 2009 4:04 AM
  • You could always put your code up on CodePlex, make it open source and go from there. If there's a problem, MS will quickly let you know.

    Sorry if the answer you are getting is not the one you want. But as I said earlier, licensing and legal issues are minefields - and MS employees are unlikely to give you a definitive answer here.
    Thomas Lee - doctordns@gmail.com
    Wednesday, December 30, 2009 12:17 PM