Tutorial: Deploy Your Enterprise Architect C# Add-In with an MSI Package

Total Page:16

File Type:pdf, Size:1020Kb

Tutorial: Deploy Your Enterprise Architect C# Add-In with an MSI Package Tutorial: Deploy your Enterprise Architect C# add-in with an MSI package Tutorial: Deploy your Enterprise Architect C# Add-in with an MSI package by Geert Bellekens [email protected] originally published on http://geertbellekens.wordpress.com at http://wp.me/p1dEib-3j 2011-02-23 Author: Geert Bellekens Page 1 of 12 Tutorial: Deploy your Enterprise Architect C# add-in with an MSI package Contents Requirements....................................................................................................................................... 3 The plan ............................................................................................................................................... 3 Step 1: Create a setup project ............................................................................................................. 4 Step 2: Edit Setup.wxs......................................................................................................................... 6 Step 3: Add the program files .............................................................................................................. 7 Step 4: Register MyAddin.dll for COM Interop..................................................................................... 8 Step 5: Add the EA Addin registry key................................................................................................. 9 Step 6: Fill in the license details......................................................................................................... 11 Step 7: Build and test your setup project ........................................................................................... 11 More resources .................................................................................................................................. 12 Related blog posts.......................................................................................................................... 12 Source code on GitHub .................................................................................................................. 12 Sparx Systems ............................................................................................................................... 12 Other............................................................................................................................................... 12 2011-02-23 Author: Geert Bellekens Page 2 of 12 Tutorial: Deploy your Enterprise Architect C# add-in with an MSI package In previous posts I talked about Creating and Testing your Enterprise Architect C# add-in, and how to use the C# add-in template to speed up the development process. Once created and tested you’ll probably want to install and use the add-in on other computers then your development machine. This tutorial explains how to create an MSI installer package using the open source SharpDevelop and WiX software. The reason I’m using SharpDevelop as opposed to Visual Studio C# Express is because SharpDevelop is free and open source, and Visual Studio C# Express doesn’t allow to create setup projects, or attach to a running process to debug your add-in. Requirements • SharpDevelop 4.0 http://www.sharpdevelop.net/OpenSource/SD/Download/#SharpDevelop4x • WiX 3.5 http://wix.codeplex.com/releases/view/60102 SharpDevelop 4.0 already contains Wix 3.0, but we need 3.5 for the “register for COM interop” functionality. SharpDevelop 4.1 comes with Wix 3.5, but at the moment of writing that is still in pre-alpha phase, and not stable enough to be used. The plan As explained in Tutorial: Create your first C# Enterprise Architect addin in 10 minutes we need our installer to do three things for us: • Copy the dll’s to a program folder. • Register the add-in dll for COM Interop so Windows knows where to find the add-in dll. • Create the registry key so EA knows about our add-in. 2011-02-23 Author: Geert Bellekens Page 3 of 12 Tutorial: Deploy your Enterprise Architect C# add-in with an MSI package Step 1: Create a setup project • Open the solution for your add-in in SharpDevelop. If you have developed the add-in with Visual Studio, that fine. Sharpdevelop uses the exact same project setup as Visual Studio, with the .sln and .csproj files • Add a new project and choose for Setup Project – WixUI Minimal You can of course choose for another template, but for the purpose of this tutorial the WixUI Minimal is enough. 2011-02-23 Author: Geert Bellekens Page 4 of 12 Tutorial: Deploy your Enterprise Architect C# add-in with an MSI package • SharpDevelop will now have created a new Setup project in your solution containing three files: o Files.wxs This is were we define wich files and registry keys the installer needs to install o license.rtf Contains the license for your software o Setup.wxs Where we define the general setup of the installer like the name, and the components to install. 2011-02-23 Author: Geert Bellekens Page 5 of 12 Tutorial: Deploy your Enterprise Architect C# add-in with an MSI package Step 2: Edit Setup.wxs Next we’re going to tell the installer about the application it will install. The .wxs files are actually XML files, and you can edit them directly in SharpDevelop. • Open Setup.wxs and edit the highlighted parts Notice that we also added a ComponentRef for MyAddinRegEntries. 2011-02-23 Author: Geert Bellekens Page 6 of 12 Tutorial: Deploy your Enterprise Architect C# add-in with an MSI package Step 3: Add the program files • Open up the setup files view with View|Setup|Files • Right-click on the MyAddinFiles component and choose Add Files… Now browse to the MyAddin project folder and select all files in the MyAddin\bin\debug or MyAddin\bin\release folder, depending on how you last built your project. Not all of these files might be necessary, but I can’t be bothered to figure out exactly which files we need to install the add-in on another computer. • This should now have created a line in the files.wxs for each binary file similar to <File Id ="EAAddinFramework.dll" Name ="EAAddinFramework.dll" Source ="..\MyAddin\bin\Deb ug\EAAddinFramework.dll" /> <File Id ="UMLToolingFramework.dll" Name ="UMLToolingFramework.dll" Source ="..\MyAddin\b in\Debug\UMLToolingFramework.dll" /> <File Id ="EAAddinFramework.pdb" Name ="EAAddinFramework.pdb" Source ="..\MyAddin\bin\Deb ug\EAAddinFramework.pdb" /> <File Id ="Interop.EA.dll" Name ="Interop.EA.dll" Source ="..\MyAddin\bin\Debug\Interop.E A.dll" /> <File Id ="MyAddin.pdb" Name ="MyAddin.pdb" Source ="..\MyAddin\bin\Debug\MyAddin.pdb" /> <File Id ="MyAddin.tlb" Name ="MyAddin.tlb" Source ="..\MyAddin\bin\Debug\MyAddin.tlb" /> <File Id ="UMLToolingFramework.pdb" Name ="UMLToolingFramework.pdb" Source ="..\MyAddin\b in\Debug\UMLToolingFramework.pdb" /> <File Id ="MyAddin.dll" Name ="MyAddin.dll" Source ="..\MyAddin\bin\Debug\MyAddin.dll" /> 2011-02-23 Author: Geert Bellekens Page 7 of 12 Tutorial: Deploy your Enterprise Architect C# add-in with an MSI package Step 4: Register MyAddin.dll for COM Interop The MyAddin.dll is the add-in dll that EA needs to talk to, so this dll needs to be registered for COM Interop. This is the part that is done by regasm.exe when doing a manual installation, but we don’t want to be calling any executables on the target machine during install if we can avoid it. Instead we will just add the same registry keys that regasm.exe creates. This is the part were we need WiX version 3.5, because the previous versions don’t take into account the COM Interop stuff. • Open a command prompt in the folder where MyAddin.dll is located (bin\Debug\) • Execute following command: "C:\Program Files\Windows Installer XML v3.5\bin\heat.exe" file MyAddin.dll -ag - template fragment -out MyAddin.wxs This will have created a file in the same folder with the name MyAddin.wxs. • Open that file and copy the contents of the Component tag: <Class Id ="{10BC65F1-32C0-3ED4-98A0- 17661A8C4455}" Context ="InprocServer32" Description ="MyAddin.MyAddinClass" ThreadingMo del ="both" ForeignServer ="mscoree.dll" > <ProgId Id ="MyAddin.MyAddinClass" Description ="MyAddin.MyAddinClass" /> </Class> <File Id ="filCC4172BEC1312562EDEF49648E45AE0D" KeyPath ="yes" Source ="..\MyAddin\bin\D ebug\MyAddin.dll" /> <RegistryValue Root ="HKCR" Key ="CLSID\{10BC65F1-32C0-3ED4-98A0- 17661A8C4455}\Implemented Categories\{62C8FE65-4EBB-45e7-B440- 6E39B2CDBF29}" Value ="" Type ="string" Action ="write" /> <RegistryValue Root ="HKCR" Key ="CLSID\{10BC65F1-32C0-3ED4-98A0- 17661A8C4455}\InprocServer32\1.0.0.0" Name ="Class" Value ="MyAddin.MyAddinClass" Type =" string" Action ="write" /> <RegistryValue Root ="HKCR" Key ="CLSID\{10BC65F1-32C0-3ED4-98A0- 17661A8C4455}\InprocServer32\1.0.0.0" Name ="Assembly" Value ="MyAddin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" Type ="string" Action ="write" /> <RegistryValue Root ="HKCR" Key ="CLSID\{10BC65F1-32C0-3ED4-98A0- 17661A8C4455}\InprocServer32\1.0.0.0" Name ="RuntimeVersion" Value="v4.0.30319" Type ="s tring" Action ="write" /> <RegistryValue Root ="HKCR" Key ="CLSID\{10BC65F1-32C0-3ED4-98A0- 17661A8C4455}\InprocServer32\1.0.0.0" Name ="CodeBase" Value ="file:///[#filCC4172BEC131 2562EDEF49648E45AE0D]" Type ="string" Action ="write" /> <RegistryValue Root ="HKCR" Key ="CLSID\{10BC65F1-32C0-3ED4-98A0- 17661A8C4455}\InprocServer32" Name ="Class" Value ="MyAddin.MyAddinClass" Type ="string" Action ="write" /> <RegistryValue Root ="HKCR" Key ="CLSID\{10BC65F1-32C0-3ED4-98A0- 17661A8C4455}\InprocServer32" Name ="Assembly" Value ="MyAddin, Version=1.0.0.0, Culture=neutral,
Recommended publications
  • PETER STEPHENS Current Technical Pursuits: Agile Practices, Cloud
    PETER STEPHENS 512.778.6322 / cell 865.567.7173 1955 County Road 202 www.diligentsoftware.com/resume Liberty Hill, TX 78642 [email protected] Current Technical Pursuits: Agile Practices, Cloud Computing and Amazon Web Services, Cloud Automation, ASP.NET MVC, REST based web services, JavaScript and jQuery CURRENT SKILLS • Microsoft.NET Framework versions 1.0 – 4.5 » C#, LINQ, XML , Networking, Regular Expressions, Multithreading , Task Parallel Library, Encryption, etc. » Websites: ASP.NET WebForms and MVC » Thick Client: Windows Presentation Foundation (WPF) » Web Services: WCF, Web API (REST and RPC) , and OData • Cloud Computing » Amazon Web Services : EC2 , S3 , RDS , SQS, SNS, Cloud Formation, Route 53, etc. » Rackspace Cloud • Automation : Powershell, MSBuild, and T4 templating • Agile Practices : Continuous Integration with Team City and CruiseControl.NET, Test Driven Development (TDD ), NUnit, Rhino Mocks, MOQ, Autofac, and ReSharper • Microsoft SQL Server versions 7 – 2008. Extensive use of T-SQL , C# stored procedures, C# functions, management and database optimization • HTML , CSS , JavaScript , jQuery , HTTP, Web Design, SEO , and Microsoft Expression Studio, Report Viewer Control based RDLC reports • Domain Specific Languages: Irony • Deployment: WIX , InstallShield, and WebDeploy • Source Control : Git and Mercurial, Beyond Compare, KDIFF OPEN SOURCE AND SOCIAL • Stack Overflow: http://stackoverflow.com/users/72860/peter-stephens • Twitter: https://twitter.com/#!/peterastephens • Bitbucket: https://bitbucket.org/pstephens/
    [Show full text]
  • Software License Agreement (EULA)
    Third-party Computer Software AutoVu™ ALPR cameras • angular-animate (https://docs.angularjs.org/api/ngAnimate) licensed under the terms of the MIT License (https://github.com/angular/angular.js/blob/master/LICENSE). © 2010-2016 Google, Inc. http://angularjs.org • angular-base64 (https://github.com/ninjatronic/angular-base64) licensed under the terms of the MIT License (https://github.com/ninjatronic/angular-base64/blob/master/LICENSE). © 2010 Nick Galbreath © 2013 Pete Martin • angular-translate (https://github.com/angular-translate/angular-translate) licensed under the terms of the MIT License (https://github.com/angular-translate/angular-translate/blob/master/LICENSE). © 2014 [email protected] • angular-translate-handler-log (https://github.com/angular-translate/bower-angular-translate-handler-log) licensed under the terms of the MIT License (https://github.com/angular-translate/angular-translate/blob/master/LICENSE). © 2014 [email protected] • angular-translate-loader-static-files (https://github.com/angular-translate/bower-angular-translate-loader-static-files) licensed under the terms of the MIT License (https://github.com/angular-translate/angular-translate/blob/master/LICENSE). © 2014 [email protected] • Angular Google Maps (http://angular-ui.github.io/angular-google-maps/#!/) licensed under the terms of the MIT License (https://opensource.org/licenses/MIT). © 2013-2016 angular-google-maps • AngularJS (http://angularjs.org/) licensed under the terms of the MIT License (https://github.com/angular/angular.js/blob/master/LICENSE). © 2010-2016 Google, Inc. http://angularjs.org • AngularUI Bootstrap (http://angular-ui.github.io/bootstrap/) licensed under the terms of the MIT License (https://github.com/angular- ui/bootstrap/blob/master/LICENSE).
    [Show full text]
  • Windows Installer XML: Käyttöönotto Asennusohjelman Tekemisessä
    Windows Installer XML: käyttöönotto asennusohjelman tekemisessä Koskina, Ekaterina 2012 Kerava Laurea-ammattikorkeakoulu Kerava Windows Installer XML: käyttöönotto asennusohjelman tekemisessä Ekaterina Koskina Tietojenkäsittelyn koulutusohjelma Opinnäytetyö Maaliskuu, 2012 Sisällys 1 Johdanto ............................................................................................. 6 2 Asennusohjelmat Windows- käyttöjärjestelmissä ............................................ 6 2.1 Windows Installer .......................................................................... 7 2.1.1 Synty, kehitys ja nykytilanne..................................................... 7 2.1.2 MSI- asennustiedoston rakenne .................................................. 8 2.2 WiX- työkalupaketti ja sen kilpailijat................................................... 9 3 WiX:in käyttöönotto ............................................................................. 11 4 WiX- teknologia ................................................................................... 13 4.1 Rungon Elementit ........................................................................ 14 4.1.1 Tuote- elementti ................................................................. 15 4.1.2 Pakkaus- elementti............................................................... 15 4.1.3 Media- elementti ................................................................. 16 4.2 Hakemistot ................................................................................ 17 4.3 Komponentti- elementit
    [Show full text]
  • Snare for Windows Custom MSI V2.0
    Snare for Windows Custom MSI v2.0 © Intersect Alliance International Pty Ltd. All rights reserved worldwide. Intersect Alliance Pty Ltd shall not be liable for errors contained herein or for direct, or indirect damages in connection with the use of this material. No part of this work may be reproduced or transmitted in any form or by any means except as expressly permitted by Intersect Alliance International Pty Ltd. This does not include those documents and software developed under the terms of the open source General Public Licence, which covers the Snare agents and some other software. The Intersect Alliance logo and Snare logo are registered trademarks of Intersect Alliance International Pty Ltd. Other trademarks and trade names are marks' and names of their owners as may or may not be indicated. All trademarks are the property of their respective owners and are used here in an editorial context without intent of infringement. Specifications and content are subject to change without notice. Page 1 of 17 Table of Contents 1. Guide Overview . 3 2. Introduction to MSI . 3 3. Requirements . 4 4. Installing WIX . 5 5. Creating the MSI package . 6 6. Installing the MSI package using Group Policy . 9 7. About InterSect Alliance . 16 Page 2 of 17 1. Guide Overview About this Guide This guide provides administrators with the instructions to create a Windows MSI file, based on the required organizational security settings, using the freely available Windows Installer XML (WiX) toolset. This will allow you to remotely deploy Snare Enterprise Agents for Windows with a customized configuration, using the Microsoft Installer (MSI).
    [Show full text]
  • F/LOSS Is Commercial Software, David A. Wheeler
    Wheeler Page 1 of 8 Open Source Business Resource, February 2009: Commercialization HOME ABOUT LOG IN REGISTER SEARCH CURRENT ARCHIVES UPCOMING THEMES TIM LECTURE SERIES SPONSORS BLOG MULTIMEDIA Home > February 2009: Commercialization > Wheeler F/LOSS is Commercial Software, David A. Wheeler "The software created by open source communities became so powerful that commercial interests embraced those communities, supported them, learned from them and now are using the mechanisms of open source to make their businesses run better. This embrace has extended so long that commercial open source and open source are virtually synonymous." Dan Woods Many people mistakenly use the term "commercial software" as if it was the opposite of Free/Libre Open Source Software (F/LOSS). This is in spite of: i) the rise in commercial development and support for F/LOSS; ii) the goal of most F/LOSS projects to incorporate improvements, which is actually a form of financial gain; iii) official definitions of "commercial item" that include F/LOSS; and iv) F/LOSS licenses and projects that clearly approve of commercial support. In reality, there are two types of commercial software: proprietary software and F/LOSS. This paper provides examples for each of the four points mentioned above, briefly notes some alternative terms, and ends with some conclusions, explaining why it is important to understand that F/LOSS software is almost always commercial. Defining Key Terms Let's first define our key terms: F/LOSS: can be briefly defined as software with a license that gives users the freedom to run the program for any purpose, to study and modify the program, and to redistribute copies of either the original or modified program without having to pay royalties to previous developers.
    [Show full text]
  • A Comparison of C++, C#, Java, and PHP in the Context of E-Learning
    A Comparison of C++, C#, Java, and PHP in the context of e-learning MIKAEL OLSSON KTH Information and Communication Technology Master of Science Thesis Stockholm, Sweden 2009 TRITA-ICT-EX-2009:8 A Comparison of C++, C#, Java, and PHP in the context of e‐learning Mikael Olsson April 30, 2009 Master’s Thesis in Computer Science Royal Institute of Technology Examiner: Prof. Gerald Q. Maguire Jr. ‐ i ‐ Abstract The first part of this master thesis presents an effective method for producing video tutorials. This method was used during this thesis project to create tutorials on the e- learning site PVT (http://www.programmingvideotutorials.com). Part one also discloses how the production method was developed and how tutorials produced using this method compare to professional video tutorials. Finally, it evaluates the result of this thesis work and the efficiency of the production method. The second part of this thesis compares the syntactical similarities and differences between four of the languages taught via video tutorials for PVT. These languages are: C++, C#, Java, and PHP. The purpose of this comparison is to provide a bridge for programmers knowing one of these languages to rapidly learn one or more of the other languages. The reason why this would be necessary is because there is no single language suited for every area of software development. Knowing a multitude of languages gives a programmer a wider range of job opportunities and more choices in how to solve their problems. Part two of the thesis also includes a comparison of Java and C# in the context of a video tutorial series that shows how to build a basic text editor.
    [Show full text]
  • Comparative Studies of 10 Programming Languages Within 10 Diverse Criteria
    Department of Computer Science and Software Engineering Comparative Studies of 10 Programming Languages within 10 Diverse Criteria Jiang Li Sleiman Rabah Concordia University Concordia University Montreal, Quebec, Concordia Montreal, Quebec, Concordia [email protected] [email protected] Mingzhi Liu Yuanwei Lai Concordia University Concordia University Montreal, Quebec, Concordia Montreal, Quebec, Concordia [email protected] [email protected] COMP 6411 - A Comparative studies of programming languages 1/139 Sleiman Rabah, Jiang Li, Mingzhi Liu, Yuanwei Lai This page was intentionally left blank COMP 6411 - A Comparative studies of programming languages 2/139 Sleiman Rabah, Jiang Li, Mingzhi Liu, Yuanwei Lai Abstract There are many programming languages in the world today.Each language has their advantage and disavantage. In this paper, we will discuss ten programming languages: C++, C#, Java, Groovy, JavaScript, PHP, Schalar, Scheme, Haskell and AspectJ. We summarize and compare these ten languages on ten different criterion. For example, Default more secure programming practices, Web applications development, OO-based abstraction and etc. At the end, we will give our conclusion that which languages are suitable and which are not for using in some cases. We will also provide evidence and our analysis on why some language are better than other or have advantages over the other on some criterion. 1 Introduction Since there are hundreds of programming languages existing nowadays, it is impossible and inefficient
    [Show full text]
  • Link IDE : a Real Time Collaborative Development Environment
    San Jose State University SJSU ScholarWorks Master's Projects Master's Theses and Graduate Research Spring 2012 Link IDE : A Real Time Collaborative Development Environment Kevin Grant San Jose State University Follow this and additional works at: https://scholarworks.sjsu.edu/etd_projects Part of the Computer Sciences Commons Recommended Citation Grant, Kevin, "Link IDE : A Real Time Collaborative Development Environment" (2012). Master's Projects. 227. DOI: https://doi.org/10.31979/etd.rqpj-pj3k https://scholarworks.sjsu.edu/etd_projects/227 This Master's Project is brought to you for free and open access by the Master's Theses and Graduate Research at SJSU ScholarWorks. It has been accepted for inclusion in Master's Projects by an authorized administrator of SJSU ScholarWorks. For more information, please contact [email protected]. Link IDE : A Real Time Collaborative Development Environment A Project Report Presented to The Faculty of the Department of Computer Science San José State University In Partial Fulfillment of the Requirements for the Degree Master of Science in Computer Science by Kevin Grant May 2012 1 © 2012 Kevin Grant ALL RIGHTS RESERVED 2 SAN JOSE STATE UNIVERSITY The Undersigned Project Committee Approves the Project Titled Link : A Real Time Collaborative Development Environment by Kevin Grant APPROVED FOR THE DEPARTMENT OF COMPUTER SCIENCE SAN JOSÉ STATE UNIVERSITY May 2012 ------------------------------------------------------------------------------------------------------------ Dr. Soon Tee Teoh, Department
    [Show full text]
  • Release Notes
    Intel® SDK for OpenCL™ Applications 2019 Update 2 Release Notes 14 February 2019 Intel® SDK for OpenCL™ Applications 2019 Update 2 Version History/Revision History These are the main releases of Intel® SDK for OpenCL™ Applications (also known as Intel® System Studio: OpenCL™ Tools component): Date Revision Description February 2019 2019 U2 Added support of Eclipse* 2018-12 R. Support of Eclipse* Oxygen and Visual Studio 2013 were deprecated and removed. Qt* was updated to 5.12 version. Protobuf* was updated to 3.6.1 version. November 2018 2019 U1 Experimental version of the CPU Runtime supporting OpenCL™ 2.1 has been deprecated and removed. Added support for Intel® VTune™ Amplifier, added support for Ubuntu* 18.04 August 2018 2019 Coffee Lake support, support of Intel® CPU Runtime for OpenCL™ Applications 18.1 December 2017 2017 U2 Eclipse Oxygen (4.7) support, bug fixes, and improvements July 2017 2017 U1 Visual Studio 2017 support, new OSes and platforms support October 2016 2016 U3 7th Generation Intel® Core™ Processor support, Windows* 10 Anniversary Update, OpenCL 2.1 experimental CPU only runtime for Linux* July 2016 2016 U2 (Linux) GPU Kernel debugger Beta and kernel level analysis for Linux June 2016 2016 U2 OpenCL 2.1 support, new features in Kernel Development (Windows) Framework April 2016 2016 GPU Kernel debugger Beta and standalone release for Linux Nov. 17, 2016 2015 U3 Standalone release for Microsoft Windows* April 28, 2015 2015 U2 Visual Studio 2015 support Jan 22, 2015 2015 U1 Released as part of Intel® Integrated Native Developer Experience (Intel® INDE) Customer Support For technical support, including answers to questions not addressed in this product, visit the technical support forum, FAQs, and other support information at Intel OpenCL Support or http://www.intel.com/software/products/support/.
    [Show full text]
  • Programming with Windows Forms
    A P P E N D I X A ■ ■ ■ Programming with Windows Forms Since the release of the .NET platform (circa 2001), the base class libraries have included a particular API named Windows Forms, represented primarily by the System.Windows.Forms.dll assembly. The Windows Forms toolkit provides the types necessary to build desktop graphical user interfaces (GUIs), create custom controls, manage resources (e.g., string tables and icons), and perform other desktop- centric programming tasks. In addition, a separate API named GDI+ (represented by the System.Drawing.dll assembly) provides additional types that allow programmers to generate 2D graphics, interact with networked printers, and manipulate image data. The Windows Forms (and GDI+) APIs remain alive and well within the .NET 4.0 platform, and they will exist within the base class library for quite some time (arguably forever). However, Microsoft has shipped a brand new GUI toolkit called Windows Presentation Foundation (WPF) since the release of .NET 3.0. As you saw in Chapters 27-31, WPF provides a massive amount of horsepower that you can use to build bleeding-edge user interfaces, and it has become the preferred desktop API for today’s .NET graphical user interfaces. The point of this appendix, however, is to provide a tour of the traditional Windows Forms API. One reason it is helpful to understand the original programming model: you can find many existing Windows Forms applications out there that will need to be maintained for some time to come. Also, many desktop GUIs simply might not require the horsepower offered by WPF.
    [Show full text]
  • 8 C# Development Tools
    Object Oriented Programming using C# C# Development Tools 8 C# Development Tools Introduction This chapter will introduce the reader to several development tools that support the development of large scale C# systems. We will also consider the importance of documentation and show tools can be used to generate documentation for systems you create (almost automatically). Objectives By the end of this chapter you will be able to…. • Find details of several professional and free interactive development environments • Understand the importance of the software documentation tools and the value of embedding XML comments within your code. • Write XML comments and generate automatic documentation for your programs. This chapter consists of eight sections :- 1) Tools for Writing C# Programs…. 2) Microsoft Visual Studio 3) SharpDevelop 4) Automatic Documentation 5) Sandcastle Help File Builder 6) GhostDoc 7) Adding Namespace Comments 8) Summary 8.1 Tools for Writing C# Programs Whatever mode of execution is employed (see section 1.7), programmers can work with a variety of tools to create source code. It is possible to write C# programs using simple discrete tools such as a plain text editor (e.g. Notepad) and a separate compiler invoked manually as required. However virtually all programmers would use a powerful Integrated Development Environment (IDE) which use compilers and other standard tools behind a seamless interface. Even more sophisticated tools Computer Aided Software Engineering (CASE) tools exist which integrate the implementation process with other phases of the software development lifecycle. CASE tools could take UML class diagrams, generated as part of the software analysis and design phase, and generate classes and method stubs automatically saving some of the effort required to write the C# code (ie.
    [Show full text]
  • Martin Koníček Debugger Frontent for the Sharpdevelop
    Charles University in Prague Faculty of Mathematics and Physics MASTER THESIS Martin Koníček Debugger Frontent for the SharpDevelop IDE Department of Software Engineering Supervisor of the master thesis: Mgr. Pavel Ježek Study programme: Computer science Specialization: Software systems Prague 2011 I would like to thank my supervisor Pavel Ježek for his time and his very helpful, constructive advice on this thesis. I would like to extend a very honest “thank you” to David Srbecký, the author of the SharpDevelop Debugger and Daniel Grunwald, the lead developer of SharpDevelop IDE. They were both very helpful and the work on this thesis probably wouldn’t start without them. I would also like to thank Christoph Wille for running the project, Siegfried Pammer and Matt Ward for all their contributions and enthusiasm and of course Mike Krüger for originally starting the SharpDevelop project. They all deserve much respect for their work. Last but not least, I thank Google for supporting students to work on interesting open source projects. I declare that I carried out this master thesis independently, and only with the cited sources, literature and other professional sources. I understand that my work relates to the rights and obligations under the Act No. 121/2000 Coll., the Copyright Act, as amended, in particular the fact that the Charles University in Prague has the right to conclude a license agreement on the use of this work as a school work pursuant to Section 60 paragraph 1 of the Copyright Act. In Prague Martin Koníček Název práce: Debugger Frontent for the SharpDevelop IDE Autor: Martin Koníček Katedra / Ústav: Department of Software Engineering Vedoucí diplomové práce: Mgr.
    [Show full text]