Changeset 8944


Ignore:
Timestamp:
Dec 7, 2020, 12:09:21 PM (14 months ago)
Author:
kopal
Message:
  • updated urls in developer howto
Location:
trunk/Documentation/PluginHowTo
Files:
4 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/Documentation/PluginHowTo/HowToDeveloper.tex

    r6751 r8944  
    123123\title{Plugin Developer Manual}
    124124\subtitle{How to build your own plugins for CrypTool 2}
    125 \author{S.\ Przybylski, A.\ Wacker, M.\ Wander, F.\ Enkler, P.\ Vacek and A.\ Krau\ss}
    126 \email{\{przybylski$|$wacker$|$wander$|$enkler$|$vacek$|$krauss\}@cryptool.org}
    127 \version{0.8f}
     125\author{S.\ Przybylski, A.\ Wacker, M.\ Wander, F.\ Enkler, P.\ Vacek,  A.\ Krau\ss, and N.\ Kopal}
     126\email{\{przybylski$|$wacker$|$wander$|$enkler$|$vacek$|$krauss|$kopal$\}@cryptool.org}
     127\version{0.8g}
    128128\date{\today}
    129129
     
    183183\end{itemize}
    184184
    185 This document is intended for plugin developers who want to contribute a new plugin to CrypTool~2 which implements a cryptographic algorithm or similar functionality. Please note that CrypTool~2 is an alive project in development. Certain information may be outdated or missing. If you want to stay up-to-date, we recommend checking out the CrypTool~2 development wiki\footnote{\url{https://www.cryptool.org/trac/CrypTool2/wiki}} and website\footnote{\url{http://www.cryptool.org/cryptool2/}}.
     185This document is intended for plugin developers who want to contribute a new plugin to CrypTool~2 which implements a cryptographic algorithm or similar functionality. Please note that CrypTool~2 is an alive project in development. Certain information may be outdated or missing. If you want to stay up-to-date, we recommend checking out the CrypTool~2 development wiki\footnote{\url{trac.ct2.cryptool.org/}} and website\footnote{\url{http://www.cryptool.org/cryptool2/}}.
    186186    \end{abstract}
    187187
     
    193193        \include{part1}
    194194        \include{part2}
    195         \include{part34}
     195        \include{part345}
    196196
    197197\end{document}
  • trunk/Documentation/PluginHowTo/part1.tex

    r6751 r8944  
    22\label{DeveloperGuidelines}
    33
    4 CrypTool~2 is built upon state-of-the-art technologies such as .NET 4.0 and the Windows Presentation Foundation (WPF). Before you can start writing code and adding to the development of the project, a few things need to be considered. To make this process easier, please read through this document\footnote{Download the most current version of this document \href{https://www.cryptool.org/trac/CrypTool2/browser/trunk/Documentation/PluginHowTo/HowToDeveloper.pdf}{here}.} and follow the instructions closely. This document exists to help get you started by showing you how CrypTool~2 plugins are built in order to successfully interact with the application core. We have tried to be very thorough, but if you encounter a problem or error that is not described here, please let us know\footnote{Contact us \href{https://www.cryptool.org/trac/CrypTool2/wiki/DiscussionGroups}{here} or write an email to \url{mailto:ct2contact@cryptool.org}}. Not only do we want to help get you up and running, but we also want to add the appropriate information to this guide for the benefit of other future developers.
     4CrypTool~2 is built upon state-of-the-art technologies such as .NET 4.0 and the Windows Presentation Foundation (WPF). Before you can start writing code and adding to the development of the project, a few things need to be considered. To make this process easier, please read through this document\footnote{Download the most current version of this document \href{https://trac.ct2.cryptool.org/browser/trunk/Documentation/PluginHowTo/HowToDeveloper.pdf}{here}.} and follow the instructions closely. This document exists to help get you started by showing you how CrypTool~2 plugins are built in order to successfully interact with the application core. We have tried to be very thorough, but if you encounter a problem or error that is not described here, please let us know\footnote{Contact us \href{https://trac.ct2.cryptool.org/CrypTool2/wiki/DiscussionGroups}{here} or write an email to \url{mailto:ct2contact@cryptool.org}}. Not only do we want to help get you up and running, but we also want to add the appropriate information to this guide for the benefit of other future developers.
    55
    66In this first chapter we will describe all steps necessary in order to compile CrypTool~2 on your own computer. This is always the first thing you need to do before you can begin developing your own plugins and extensions. The basic steps are:
     
    3939\clearpage
    4040
    41 A window will now appear that will ask you for the URL of the repository that you would like to access. Our code repository is stored at \url{https://www.cryptool.org/svn/CrypTool2/trunk/}, and this is what you should enter in the appropriate field. The \textit{Checkout directory} should already be filled in correctly with your new folder, and you shouldn't need to change any other options.
     41A window will now appear that will ask you for the URL of the repository that you would like to access. Our code repository is stored at \url{https://svn.cryptool.org/CrypTool2/trunk}, and this is what you should enter in the appropriate field. The \textit{Checkout directory} should already be filled in correctly with your new folder, and you shouldn't need to change any other options.
    4242
    4343\begin{figure}[h!]
     
    4848\end{figure}
    4949
    50 Then just hit \textit{OK}. You may be asked to accept a certificate (which you should accept), and you will certainly be asked for login information. If you are a registered developer, you should have already been given a username and password, and you should enter them here. (These are the same username and password that you can use for the \href{https://www.cryptool.org/trac/CrypTool2/wiki}{CrypTool~2 development wiki}.) If you are a guest and only need read-only access, you can use ``anonymous'' as the username and an empty password. Mark the checkbox for saving your credentials if you don't want to enter them every time you work with the repository. (Your password will be saved on your computer.) Finally, hit \textit{OK}, and the whole CrypTool~2 repository will begin downloading into your chosen local directory.
     50Then just hit \textit{OK}. You may be asked to accept a certificate (which you should accept), and you will certainly be asked for login information. If you are a registered developer, you should have already been given a username and password, and you should enter them here. (These are the same username and password that you can use for the \href{https://trac.ct2.cryptool.org/}{CrypTool~2 development wiki}.) If you are a guest and only need read-only access, you can use ``anonymous'' as the username and an empty password. Mark the checkbox for saving your credentials if you don't want to enter them every time you work with the repository. (Your password will be saved on your computer.) Finally, hit \textit{OK}, and the whole CrypTool~2 repository will begin downloading into your chosen local directory.
    5151
    5252Since CrypTool~2 is a collaborative project with many developers, changes are made to the repository rather frequently. You should maintain a current working copy of the files to ensure your interoperability with the rest of the project, and thus you should update to the latest version as often as possible. You can do this by right-clicking on any directory within the working files and choosing \textit{SVN~Update} from the context menu.
     
    108108\end{figure}
    109109
    110 You can use the SVN comments to link to your changes to a particular issue or bug ticket on the CrypTool 2 development wiki. (The list of active tickets can be found \href{https://www.cryptool.org/trac/CrypTool2/report/1}{here}.) The following commands are supported (note that there are multiple variations of each command that are functionally identical):
     110You can use the SVN comments to link to your changes to a particular issue or bug ticket on the CrypTool 2 development wiki. (The list of active tickets can be found \href{https://trac.ct2.cryptool.org/report/1}{here}.) The following commands are supported (note that there are multiple variations of each command that are functionally identical):
    111111
    112112\begin{center}
     
    160160\label{CompilingTheSourcesVS}
    161161
    162 By this point you should have checked out a copy of the entire CrypTool~2 repository. Compiling is pretty easy; just go to the \texttt{trunk\textbackslash} directory and open the \textbf{\textit{CrypTool~2.0.sln}} Visual Studio solution. The Visual Studio IDE should open with all the working plugin components nicely arranged. If you are now starting Visual Studio for the first time, you will have to choose your settings. Just select either \textit{most common} or \textit{C\#} --- you can change this at any time later. On the right side is the project explorer, where you can see all the subprojects included in the solution. Look for the project \textbf{\textit{CrypWin}} there and make sure it is selected as startup project (right-click on it and select \textit{Set as StartUp Project} from the context menu). Then click \textit{Build $\rightarrow$ Build Solution} in the menubar to start the build process.
     162By this point you should have checked out a copy of the entire CrypTool~2 repository. Compiling is pretty easy; just go to the \texttt{trunk\textbackslash} directory and open the \textbf{\textit{CrypTool~2.sln}} Visual Studio solution. The Visual Studio IDE should open with all the working plugin components nicely arranged. If you are now starting Visual Studio for the first time, you will have to choose your settings. Just select either \textit{most common} or \textit{C\#} --- you can change this at any time later. On the right side is the project explorer, where you can see all the subprojects included in the solution. Look for the project \textbf{\textit{CrypWin}} there and make sure it is selected as startup project (right-click on it and select \textit{Set as StartUp Project} from the context menu). Then click \textit{Build $\rightarrow$ Build Solution} in the menubar to start the build process.
    163163
    164 You may have to wait a while for the program to compile. Once it is finished, select \textit{Debug $\rightarrow$ Start Debugging}. CrypTool~2 should now start for the first time with your own compiled code. Presumably you have not changed anything yet, but you now have your own build of all the components. If the program does not compile or start correctly, please consult our \href{https://www.cryptool.org/trac/CrypTool2/wiki/FAQ}{FAQ} and let us know if you found a bug.
     164You may have to wait a while for the program to compile. Once it is finished, select \textit{Debug $\rightarrow$ Start Debugging}. CrypTool~2 should now start for the first time with your own compiled code. Presumably you have not changed anything yet, but you now have your own build of all the components. If the program does not compile or start correctly, please consult our \href{https://trac.ct2.cryptool.org/wiki/FAQ}{FAQ} and let us know if you found a bug.
    165165
    166 If you are a \textbf{core developer}, you can use the \textbf{\textit{CrypTool~2.0.sln}} solution from the \texttt{CoreDeveloper\textbackslash} directory (which will \textit{not} be visible to you if you are not a core developer). We often refer to this solution as the core-developer solution or as the internal solution. The core-developer solution is used for building the nightly build. Thus, if a plugin should become delivered with the nightly builds it needs to be added to this solution.
     166If you are a \textbf{core developer}, you can use the \textbf{\textit{CrypTool~2.sln}} solution from the \texttt{CoreDeveloper\textbackslash} directory (which will \textit{not} be visible to you if you are not a core developer). We often refer to this solution as the core-developer solution or as the internal solution. The core-developer solution is used for building the nightly build. Thus, if a plugin should become delivered with the nightly builds it needs to be added to this solution.
    167167
    168168\section{Compiling the sources with Visual Studio Community 2015}
     
    174174\label{DownloadingThePluginTemplate}
    175175
    176 Before you can start implementing a new plugin, you will need to download the CrypTool~2 plugin template. The most current version of this template is located in our CrypTool~2 repository, and can be downloaded via our wiki interface at \url{https://www.cryptool.org/trac/CrypTool2/browser/trunk/Documentation/CrypPluginTemplate/CrypTool\%202\%20Plugin.zip}. Save the template zip file in your documents folder in the subdirectory \texttt{Visual Studio 2013\textbackslash{}Templates\textbackslash{}ProjectTemplates\textbackslash{}} or in the subdirectory \texttt{Visual Studio 2015\textbackslash{}Templates\textbackslash{}ProjectTemplates\textbackslash{}}, depending on your Visual Studio version. Do not unpack the zip file.
     176Before you can start implementing a new plugin, you will need to download the CrypTool~2 plugin template. The most current version of this template is located in our CrypTool~2 repository, and can be downloaded via our wiki interface at \url{https://trac.ct2.cryptool.org/browser/trunk/Documentation/CrypPluginTemplate/CrypTool\%202\%20Plugin.zip}. Save the template zip file in your documents folder in the subdirectory \texttt{Visual Studio 2013\textbackslash{}Templates\textbackslash{}ProjectTemplates\textbackslash{}} or in the subdirectory \texttt{Visual Studio 2015\textbackslash{}Templates\textbackslash{}ProjectTemplates\textbackslash{}}, depending on your Visual Studio version. Do not unpack the zip file.
    177177
    178178\begin{figure}[htbp]
  • trunk/Documentation/PluginHowTo/part2.tex

    r6751 r8944  
    187187\end{lstlisting}
    188188
    189 You can basically use any data type. If your component deals with potentially large amounts of binary data, you may want to use the \textit{ICryptoolStream} data type instead of \textit{byte[]}. More information about how to use the \textit{ICryptoolStream} can be found in the CrypTool 2 wiki: \url{https://www.cryptool.org/trac/CrypTool2/wiki/ICryptoolStreamUsage}. You will need to include the namespace \textit{Cryptool.PluginBase.IO}. Here's an example how to use \textit{ICryptoolStream} for an output property:
     189You can basically use any data type. If your component deals with potentially large amounts of binary data, you may want to use the \textit{ICryptoolStream} data type instead of \textit{byte[]}. More information about how to use the \textit{ICryptoolStream} can be found in the CrypTool 2 wiki: \url{https://trac.ct2.cryptool.org/wiki/ICryptoolStreamUsage}. You will need to include the namespace \textit{Cryptool.PluginBase.IO}. Here's an example how to use \textit{ICryptoolStream} for an output property:
    190190
    191191\begin{lstlisting}
     
    199199                        return new CStreamWriter(Encoding.UTF8.GetBytes(OutputString));
    200200                }
    201                         return null;
     201                return null;
    202202        }
    203203}
  • trunk/Documentation/PluginHowTo/part345.tex

    r8943 r8944  
    33
    44If you'd like to know how to add multi-language support to your component, please see our Wiki:
    5 \url {https://www.cryptool.org/trac/CrypTool2/wiki/Internationalization}
     5\url{https://trac.cryptool.org/wiki/Internationalization}
    66
    77\chapter{Documentation}
     
    99
    1010If you'd like to know how to provide a user documentation file (custom XML format), please see our Wiki:
    11 \url{https://www.cryptool.org/trac/CrypTool2/wiki/Documentation}
     11\url{https://trac.ct2.cryptool.org/wiki/Documentation}
     12
     13\chapter{YouTube Developer Videos}
     14\label{sec:YouTubeDeveloperVideos}
     15We have a set of developer videos on YouTube, which also demonstrate how to create your own plugin for CrypTool 2. The complete playlist is available  \href{https://www.youtube.com/watch?v=YaSd_4t19nk&list=PLMuvAbyIl0PTTfPE2VhJ9PZ6qlOG0MMaX}{here}.
    1216
    1317\vskip 2cm
Note: See TracChangeset for help on using the changeset viewer.