Aktualisierung Von Ndoc Und Integration in Visual Studio 2008

Total Page:16

File Type:pdf, Size:1020Kb

Load more

Fachhochschul-Masterstudiengang SOFTWARE ENGINEERING 4232 Hagenberg, Austria Aktualisierung von NDoc und Integration in Visual Studio 2008 Diplomarbeit zur Erlangung des akademischen Grades Master of Science in Engineering Eingereicht von Thomas Gassner, B.Sc. Betreuer: Dipl.-Ing. (FH) Stefan Papp, HSG Hagenberg Begutachter: Dipl.-Ing. Dr. Herwig Mayr August 2008 Inhaltsverzeichnis Kurzfassung iv Abstract v Danksagung vi 1Einfuhrung¨ 1 1.1 Motivation und Ziele fur¨ die Weiterentwicklung von NDoc . 1 1.2GliederungderArbeit...................... 2 2 Grundlagen 5 2.1.netFramework.......................... 5 2.1.1 Einleitung......................... 5 2.1.2 Versionenvon.netFramework............. 7 2.2MicrosoftVisualStudio..................... 10 2.2.1 Einleitung......................... 10 2.2.2 VersionenvonVisualStudio............... 10 2.2.3 AufbauderProjektmappe................ 11 2.2.4 Add-Ins.......................... 12 2.2.5 XML-Kommentare.................... 13 2.3GenerischeTypen......................... 15 2.4XML................................ 18 2.4.1 XML-TransformationenmitXSLT........... 19 3 Analyse der Ist-Situation von NDoc 22 3.1EntwicklungvonNDoc...................... 22 3.2BestehendesDesignvonNDoc.................. 23 3.2.1 AufbauderProjektmappe................ 23 3.2.2 NDoc-Projekte...................... 27 3.2.3 LadenvonAssemblies.................. 28 3.2.4 MSDN-Dokumentierer.................. 28 3.3AlternativenzuNDoc...................... 30 i INHALTSVERZEICHNIS ii 4 Anforderungen an die Erweiterungen 36 4.1 Umgang mit aktuellen Visual Studio-Dateien . 36 4.2UmgangmitgenerischenTypen................. 37 4.3 Integration in Visual Studio 2008 . ............ 38 4.4 Kompatibilit¨at.......................... 38 4.5Erweiterbarkeit.......................... 39 4.5.1 Anderungen¨ von Projekten und Projektmappen . 39 4.5.2 Syntaktische Anderungen................¨ 39 4.5.3 SonstigeErweiterungen................. 40 5 Konzept 41 5.1 Anpassungen an die Anderungen¨ der Visual Studio-Dateien . 41 5.1.1 Projektmappendateien.................. 42 5.1.2 Projektdateien...................... 45 5.2AnpassungangenerischeTypen................. 47 5.3AufbaueinesVisualStudioAdd-Ins.............. 49 6 Implementierung 53 6.1 Visual Studio-Projektmappen und -Projekte . 53 6.1.1 Architektur........................ 53 6.1.2 Codierung......................... 55 6.2VisualStudioAdd-In....................... 56 6.2.1 Architektur........................ 56 6.2.2 Codierung......................... 57 6.3MSDN-Dokumentierer...................... 58 6.3.1 Architektur........................ 58 6.3.2 Codierung......................... 58 7 Evaluierung 61 7.1ErreichteZiele.......................... 61 7.2 Testbeschreibung . ................... 63 7.2.1 InterneTests....................... 63 7.2.2 Externe Tests - Verarbeitung des Testprojektes . 63 7.3Testergebnisse........................... 64 7.3.1 InterneTests....................... 64 7.3.2 ExterneTests....................... 64 8Resumee¨ 65 8.1Zusammenfassung........................ 65 8.2 Ver¨offentlichungdesErgebnisses................ 66 8.3Ausblick.............................. 66 A E-Mail von Kevin Downs 68 Literaturverzeichnis 70 Abbildungsverzeichnis 2.1.netFrameworkArchitektur................... 6 2.2FunktionsweiseXSLT...................... 20 2.3XSLT-Beispiel........................... 21 3.1 UML-Klassendiagramm der Dokumentierer-Hierarchie . 25 4.1 Dialogfenster zur Auswahl der Konfiguratinonen . 37 5.1EntwurfsmusterFabrikmethode................. 42 5.2 Projektmappendatei Visual Studio .net 2003 . 43 5.3 Projektmappendatei Visual Studio 2008 ............ 43 5.4 Projektmappendatei Visual Studio 2008 mit 2. Plattform . 44 5.5 Konfigurationen und Plattformen in einer Projektmappe . 45 5.6 ReflectionEngine – MSDN-Dokumentierer . 47 5.7 Beispiel: online MSDN-Link – nicht generischer Typ . 48 5.8 Beispiel: online MSDN-Link – generischer Typ . 49 5.9 Ereignisse der Schnittstelle IDTExtensibility2 . 50 6.1 Alte Architektur des Projekts VisualStudio . 54 6.2 Neue Architektur des Projekts VisualStudio . 54 6.3 Architektur des NDoc Visual Studio-Add-Ins . 57 iii Kurzfassung Dokumentation ist eine sehr wichtige und von Entwicklern oft untersch¨atzte Aufgabe im Bereich der Softwareentwicklung. Oft werden Dokumentations- arbeiten erst im Nachhinein erledigt, wodurch die Qualit¨at der Dokumen- tation leidet und der Arbeitsaufwand steigt. Moderne Programmierspra- chen bieten die M¨oglichkeit, Typen, Mitglieder, Eigenschaften, Methoden, Schnittstellen etc. direkt im Quelltext und damit w¨ahrend der Implementie- rung zu dokumentieren. Diese Kommentare k¨onnen dann mit Hilfe spezieller Werkzeuge zu ubersichtlichen¨ Dokumentationen weiterverarbeitet werden. Bekannte Vertreter dieser Werkzeuge sind Javadoc, NDoc und Doxygen. NDoc ist ein weit verbreitetes Werkzeug, welches aus .net-Assemblies mit Hilfe von Reflection und der vom C#-Compiler generierten XML-Dokumen- tationsdateien ubersichtliche¨ und strukturierte Dokumentationen erzeugen kann. NDoc ist ein Open Source-Projekt, das auf der online Plattform Sour- ceforge gehostet wird. Die Implementierung wurde seitens der Entwickler aus pers¨onlichen Grunden¨ eingestellt, bevor Neuerungen wie generische Typen von .net 2.0 oder das neue Dateiformat von Visual Studio 2005 unterstutzt¨ wurden. Ziel dieser Arbeit ist die Erweiterung von NDoc auf der Basis der Ver- sion 1.3.1 und den Erweiterungen von Richard Jonas in der Version 16. Die Erweiterung besteht grob gegliedert aus drei Teilen: 1. Eine Unterstutzung¨ des MSDN-Dokumentierers von generischen Ty- pen wurde implementiert. Diese umfasst den korrekten Umgang von generischen Typen, sowohl in der Verarbeitung, in der Anzeige, als auch bei den Referenzen auf eine lokal installierte oder die online- Version der Microsoft MDSN-Bibliothek. 2. Eine Unterstutzung¨ fur¨ das Laden von Projektmappendateien und Projektdateien von Visual Studio 2005 und Visual Studio 2008 wurde entwickelt. 3. Eine Integration in Form eines kleinen Add-Ins in Visual Studio 2008 wurde implementiert, sodass Entwickler direkt eine Dokumentation er- stellen k¨onnen, ohne explizit eine Drittanwendung starten zu mussen.¨ iv Abstract Documentation is a very important task and often underestimated by de- velopers in the field of software development. Documentation work is often done only in retrospect, so the documentation loses some of its quality and it involves a lot of work. Modern programming languages offer the possi- bility of documenting types, members, properties, methods, interfaces, etc. directly in the source code and during implementation. These comments can be processed using special tools to clearly represented documentation. Well known representatives of these tools are Javadoc, NDoc and Doxygen. NDoc is a widely used tool, which can produce clear and structured do- cumentations from Assemblies with .net with the help of reflection and the C# compiler generated XML documentation files. NDoc is an open source project, hosted on the online platform sourceforge. The implementation was set from the developer due to personal reasons before innovations such as generic types from .net 2.0 or the new file format of Visual Studio 2005 could be supported. The aim of this work is the extension of NDoc based on the version 1.3.1 and the extensions by Richard Jonas in the 16th version. The upgrade is roughly divided into three parts: 1. A support of the MSDN documenter of generic types was implemented. This includes the correct use of generic types in the processing, in the visualisation as well as the references to a locally installed or the online version of Microsoft MDSN library. 2. A support for loading solution files and project files of Visual Studio 2005 and Visual Studio 2008 was developed. 3. An integration in the form of a small add-in in Visual Studio 2008 was implemented, with the result that developers are able to create a documentation directly, without an explicit third party application start. v Danksagung Ich danke Herrn Dipl.-Ing. Dr. Herwig Mayr fur¨ die Betreuung und Begutachtung meiner Arbeit, Dipl.-Ing. (FH) Stefan Papp fur¨ die Betreuung meines Masterprojekts und der Firma Hagenberg Software GmbH, die der Auftraggeber des Projekts ist, Gabriela, Martina und Anton Gassner, die diese Arbeit Korrektur ge- lesen haben und meiner Freundin Veronika Hoffelner fur¨ die seelische Unterstutz-¨ ung und Motivation. vi Kapitel 1 Einfuhrung¨ Die folgende Diplomarbeit entstand in Zusammenarbeit mit der Hagenberg Software GmbH (HSG). Die HSG ist das Zentrum fur¨ kommerzielle Softwa- reentwicklungen in Hagenberg und ist von der Systemauswahl uber¨ Projekt- unterstutzung¨ bis hin zur Maßkonfektion von Software t¨atig. 1.1 Motivation und Ziele fur¨ die Weiterentwick- lung von NDoc Motivation NDoc ist nach wie vor ein sehr weit verbreitetes Open Source-Werkzeug zur Erstellung von Dokumentationen von .net-Projekten und Bibliotheken. Die Entwicklung dieser Anwendung wurde eingestellt (siehe Anhang A). Die letzte offizielle Version unterstutzt¨ keine generischen Typen und kann die Projektmappendateien der beiden neueren Visual Studio Versionen nicht ¨offnen. Seit dem Erscheinen des .net Frameworks 2.0 und der integrierten Ent- wicklungsumgebung Visual Studio 2005 besteht eine Nachfrage nach einer Version von NDoc, die mit den Neuerungen umgehen kann. Es gibt eine Reihe kommerzieller Dokumentationsanwendungen, die die entstandene Lucke¨ auffullen,¨ auch im Bereich der Open Source-Projekte gibt es einige Bestrebungen, in die Fußstapfen des originalen
Recommended publications
  • Create Documentation Visual Studio

    Create Documentation Visual Studio

    Create Documentation Visual Studio diphthongiseBert gum his nitrometershis seigniory compensate unbars silicified polemically, remorselessly. but sextan Is Billy Waldemar always tinniernever intercedeand raiding so when self-consciously. crook some Inheritableclaviers very and solemnly antepenultimate and some? Amos Unity will create documentation? Shows rotating colors on layers when repainting. What is meant when we say that a differential takes on a certain value? NET APIs could be developed. In deep, we here do task by specifying the full name mean the example with html extension. Malta organizing meetings, create and desktop application and setting up entering typical of thumb, but also offers many document. The story of documentation created in sync with jsdoc type. Open the primary in file explore may your XML file. We are defining information and execute these instructions for visual studio code files from documentation sources, export your own environment in? Generate sample code for common scenarios. HTML or PDF format. Custom server is elk and is accessible from the URL you specified. Remove all SpecFlowSingleFileGenerator custom tool entries from excel feature files Select Tools Options SpecFlow from the menu in Visual Studio and set. Read about the new features and fixes from January. Depending on flutter offers a software documentation project properties, and may opt not checked. To create documentation created directly via a difficult one. It lists all of your wiki pages, versioning, installation requirements and the set of offered features make this documentation tool a good fit for advanced users that can make the most out of the provided toolset. You will be documented separately or directly from a demonstration of more! Solution Explorer, which lens will seem in this lab.
  • Generate Xml Documentation File

    Generate Xml Documentation File

    Generate Xml Documentation File Welcome and antinomian Kristopher still spat his ulsters half-and-half. Allelomorphic and ordinaire Billie impugns her ebonist overleap amitotically or disembodying almighty, is Ariel lachrymose? Barron automobiles her paduasoys prominently, spermatozoal and cut-price. The XML documentation standard is ambiguous on how you should defined comments for namespaces. Visual Studio, like any Integrated Development Environment, can host extensions for more specialist languages or development tasks. XML documentation is used. TFS build server, for a long time. Sandcastle consists of several programs, not all of which are used in the typical help build process. How do we generate the XML documents? Get Tips, News and Product Info Right To Your Inbox! Do the post message bit after the dom has loaded. On this page note that both Sandcastle and NDoc include icons next to each element to provide a visual cue as to its type. That is the xmldoc! XML into the file. There are just a couple important rules you need to be aware of when pasting code through the GUI. When you select the Schema Documentation Generator tool, a wizard is provided to guide you through the process. Parameter names are shown in blue. The first two are evidently packaged as industrial strength products, while the other two are more informal. SHFB is, by contrast, well documented. You read about member type prefixes earlier; they are the same set of codes. If instead this sentence is in a different class you need to qualify the name. That item can be such things as a class declaration, a property or method within a class, or a variable declared within a class.
  • NET: the Programmer's Perspective Workshop with ECOOP 2003 Under Continuing Construction

    NET: the Programmer's Perspective Workshop with ECOOP 2003 Under Continuing Construction

    .NET: The Programmer’s Perspective Workshop with ECOOP 2003 NEWS-contribution by H.-J. Hoffmann of December 18, 2003 Abbreviations (errors excepted) Reading .NET papers and/or listening to presentations about the topic you may find a lot of three- and/or four-letter abbreviations (may be even less or more letters). I will try to list and to explain what I found in my preparations for the workshop. It should be helpful for our discussions. Note: 26 * 26 * 26 = 17576 (usual vocabulary of educated Chinese persons) 26 * 26 * 26 * 26 = 456976 (most educated scribers) Google request for “??? Microsoft” very often returns about 1 million hits; you have to search for one with an explanation of the three letters! H.-J. Hoffmann Under continuing construction ! A ACID a name (properties of data base transactions) ACL Access Control Label ADO1(.NET) Active Data Objects ADO2 ActiveX Data Objects ADO+ more than ADO ADS Advertisement and Discovery of Services protocol API Application Program(ming) Interface ASP(.NET) Active Server Pages ASP+ Active Server Pages ATL Active Template Libraries B BCL Basic Class Library BizTalk a name, Microsoft´s server for business processes BPEL Business Process Execution Language BPML Business Process Modelling Language BTP Business Transaction Protocol C CAS Code Access Security CBD Component-based Development CCI Common Compiler Infrastructure CCM CORBA Component Model CCW COM Callable Wrapper CF (.NET) Compact Framework CIL Common Intermediate Language (ECMA-synonym zu MSIL) CLI Common Language Infrastructure CLR