{"id":55000114,"date":"2017-12-01T00:00:00","date_gmt":"2020-03-27T19:29:52","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=114"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Visual_StudioVorlagen_erstellen","status":"publish","type":"post","link":"https:\/\/vbentwickler.de\/Visual_StudioVorlagen_erstellen\/","title":{"rendered":"Visual Studio-Vorlagen erstellen"},"content":{"rendered":"<p><b>Wer die bisherigen Artikel verfolgt und zuvor mit Access gearbeitet hat, stellt fest, dass es einige Aufgaben gibt, die sich unter Access einfacher durchf&uuml;hren lie&szlig;en &#8211; zum Beispiel das Ausstatten eines Formulars mit einer Datenherkunft und das Hinzuf&uuml;gen der gebundenen Steuerelemente zu diesem Formular. Nun gibt es auch unter Visual Studio die M&ouml;glichkeit, Assistenten selbst zu programmieren. Damit k&ouml;nnten wir dann selbst die Helferlein erstellen, die uns bei Routineaufgaben unterst&uuml;tzen &#8211; wie beispielsweise das Anlegen eines Window- oder Page-Elements auf Basis einer Entit&auml;t. Doch bis dahin ist es noch ein langer Weg &#8211; in diesem Artikel schauen wir uns zun&auml;chst an, wie Sie einfache Vorlagen f&uuml;r Visual Studio erstellen.<\/b><\/p>\n<h2>Standards erweitern<\/h2>\n<p>Microsoft-Produkte wie das Office-Paket inklusive Access oder auch Visual Studio sind tolle Produkte, die schon eine Menge Funktionen bieten und den Benutzer bestm&ouml;glich bei seinen Aufgaben unterst&uuml;tzen.<\/p>\n<p>Allerdings gelingt dies nicht immer so, wie man sich das vorstellt &#8211; was allerdings zum gr&ouml;&szlig;ten Teil daran liegt, dass es einfach so viele unterschiedliche Aufgaben gibt. Die Entwickler von Microsoft k&ouml;nnen einfach nicht alle denkbaren Anforderungen der Benutzer ihrer Programme vorausahnen &#8211; deshalb kommen die meisten Vorlagen in einer Minimalausstattung, die der Entwickler f&uuml;r seine Zwecke erweitern kann (siehe Bild 1). Das ist aber auch gar nicht weiter schlimm, denn sowohl f&uuml;r Office als auch f&uuml;r Visual Studio gibt es verschiedene M&ouml;glichkeiten, die Anwendungen um Vorlagen, benutzerdefinierte Add-Ins oder Wizards zu erweitern. Wir schauen uns in diesem Artikel an, wie Sie aus Ihren selbst gestalteten <b>Window<\/b>-, <b>Page<\/b>-, <b>Class<\/b>&#8211; und sonstigen Elementen Vorlagen erstellen k&ouml;nnen, die Sie dann beim Anlegen neuer Elemente nutzen k&ouml;nnen.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2017_06\/pic_114_005.png\" alt=\"Standard-Vorlagen\" width=\"649,559\" height=\"384,1563\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Standard-Vorlagen<\/span><\/b><\/p>\n<h2>Beispiele f&uuml;r Vorlagen<\/h2>\n<p>Wenn Sie mit WPF arbeiten und Windows-Anwendungen entwickeln, haben Sie vielleicht bestimmte Einstellungen, die f&uuml;r alle Steuerelemente verwendet werden sollen, wenn diese nicht gerade im Steuer-element selbst &uuml;berschrieben werden. Solche Eigenschaften legt man beispielsweise wie folgt in einem Element namens <b>Window.Resources <\/b>an:<\/p>\n<pre>&lt;Window.Resources&gt;\r\n     &lt;Style TargetType=\"Button\"&gt;\r\n         &lt;Setter Property=\"Margin\" Value=\"3\"&gt;&lt;\/Setter&gt;\r\n         &lt;Setter Property=\"Padding\" Value=\"5\"&gt;&lt;\/Setter&gt;\r\n         &lt;Setter Property=\"VerticalAlignment\" Value=\"Top\"&gt;&lt;\/Setter&gt;\r\n         &lt;Setter Property=\"HorizontalAlignment\" Value=\"Left\"&gt;&lt;\/Setter&gt;\r\n     &lt;\/Style&gt;\r\n&lt;\/Window.Resources&gt;<\/pre>\n<p>Wenn Sie solche Einstellungen immer wieder verwenden, m&uuml;ssen Sie diese jeweils in neue <b>Window<\/b>&#8211; oder <b>Page<\/b>-Element integrieren. Sie k&ouml;nnen aber auch eine Vorlage erstellen, der Sie die gew&uuml;nschten Elemente hinzuf&uuml;gen, und diese dann bei Bedarf statt des herk&ouml;mmlichen <b>Window<\/b>-Elements zum Projekt hinzuf&uuml;gen.<\/p>\n<h2>Vorbereitungen<\/h2>\n<p>Wie aber legen wir eine solche Vorlage an und welche Einstellungen sind n&ouml;tig, damit die Vorlage dann auch beim Anlegen neuer Elemente im Dialog <b>Neues Element hinzuf&uuml;gen <\/b>angezeigt wird Dazu ist etwas Vorarbeit erforderlich:<\/p>\n<ul>\n<li>Starten Sie Visual Studio.<\/li>\n<li>&Ouml;ffnen Sie den Dialog <b>Neues Projekt<\/b>.<\/li>\n<li>Wechseln Sie zum Eintrag <b>Visual C#|Extensibility <\/b>oder <b>Visual Basic|Extensibility<\/b>.<\/li>\n<li>Klicken Sie auf den einzigen Eintrag <b>Visual Studio Erweiterungstools installieren <\/b>(siehe Bild 2).<\/li>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2017_06\/pic_114_001.png\" alt=\"Erweiterungsvorlagen hinzuf&uuml;gen\" width=\"624,576\" height=\"376,3105\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Erweiterungsvorlagen hinzuf&uuml;gen<\/span><\/b><\/p>\n<li>Dies startet die Installation (siehe Bild 3).<\/li>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2017_06\/pic_114_002.png\" alt=\"Installation der Erweiterungstools\" width=\"324,7794\" height=\"454,6912\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Installation der Erweiterungstools<\/span><\/b><\/p>\n<\/ul>\n<p>Wenn Sie, gegebenenfalls nach einem Neustart, nun wieder ein neues Projekt anlegen wollen und dazu den Dialog <b>Neues Projekt <\/b>&ouml;ffnen, finden Sie im Bereich <b>Visual C#|Extensibility <\/b>oder <b>Visual Basic|Extensibility<\/b> die Eintr&auml;ge aus Bild 4 vor. Uns interessieren hier zun&auml;chst die folgenden beiden Eintr&auml;ge:<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2017_06\/pic_114_003.png\" alt=\"Erweiterungsvorlagen\" width=\"649,559\" height=\"366,1\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Erweiterungsvorlagen<\/span><\/b><\/p>\n<ul>\n<li><b>Visual Basic Project Template<\/b>: Vorlage f&uuml;r einen Assistenten zum Anlegen neuer Projekte<\/li>\n<li><b>Visual Basic Item Template<\/b>: Vorlage f&uuml;r einen Assistenten zum Anlegen eines neuen Elements in Visual Studio, also etwa ein <b>Class<\/b>-, ein <b>Window<\/b>&#8211; oder eine <b>Page<\/b>-Element<\/li>\n<\/ul>\n<p>Wir wollen ein neues Element anlegen, vollst&auml;ndige Projektvorlagen ben&ouml;tigen wir aktuell noch nicht. Also geben wir den Namen des neuen Projekts ein (<b>WindowMitStandards<\/b>), w&auml;hlen das gew&uuml;nschte Zielverzeichnis aus und klicken auf die Schaltfl&auml;che <b>OK<\/b>.<\/p>\n<p>Das neue Projekt f&uuml;hrt sich mit der Anzeige der Datei <b>ItemWizard.vstemplate <\/b>ein (siehe Bild 5). Diese enth&auml;lt die Konfiguration der frisch erstellten Vorlage. Des Weiteren finden wir im Projektmappen-Explorer einige weitere Dateien:<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2017_06\/pic_114_004.png\" alt=\"Die Konfigurationsdatei des neuen Projekts\" width=\"649,559\" height=\"412,6071\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Die Konfigurationsdatei des neuen Projekts<\/span><\/b><\/p>\n<ul>\n<li><b>Class.vb<\/b>: Bisher einzige Klasse des Projekts.<\/li>\n<li><b>ItemWizard.ico<\/b>: Icon-Datei f&uuml;r die Vorlage<\/li>\n<\/ul>\n<p>Die Datei <b>Class.vb <\/b>enth&auml;lt den folgenden Code:<\/p>\n<pre><span style=\"color:blue;\">Public Class<\/span> $safeitemname$\r\n<span style=\"color:blue;\">End Class<\/span><\/pre>\n<p>Dies l&auml;sst bereits erahnen, dass es eine Reihe von Platzhaltern gibt, die wir in die Elemente der Vorlage integrieren k&ouml;nnen &#8211; wir schauen uns diese weiter unten an. Wozu ben&ouml;tigen wir diese Nun, wenn Sie beispielsweise eine neue Klasse erstellen, geben Sie im Dialog <b>Neues Element hinzuf&uuml;gen <\/b>ja den Namen des neuen Elements ein. Dieser wird dann f&uuml;r einen der Platzhalter im Code der <b>.xaml<\/b>&#8211; oder <b>.xaml.cs<\/b>\/<b>.xaml.vb<\/b>-Datei eingetragen.<\/p>\n<h2>Vorgehensweise<\/h2>\n<p>Nachdem wir das Vorlagen-Projekt erstellt und gesichtet haben, stellt sich die Frage, welche Aufgaben nun vor uns liegen. Diese scheinen wie folgt zu lauten:<\/p>\n<ul>\n<li>Anlegen des Elements\/der Elemente und Versehen des Codes mit Platzhaltern<\/li>\n<li>Anpassen der Konfigurationsdatei<\/li>\n<li>Exportieren der Vorlage<\/li>\n<\/ul>\n<p>Warum &#8220;scheinen wie folgt zu lauten&#8221; Ganz einfach: Weil die Konfigurationsdatei beim Exportieren des gew&uuml;nschten Elements als Vorlage &uuml;berhaupt nicht ber&uuml;cksichtigt wird. Visual Studio stellt in den nachfolgend beschriebenen Schritten selbst eine Konfigurationsdatei auf Basis der gemachten Angaben zusammen. Sie brauchen sich also nicht die M&uuml;he zu machen, diese direkt in Visual Studio zu manipulieren. Das erledigen wir sp&auml;ter, wenn n&ouml;tig, an anderer Stelle.<\/p>\n<h2>Test des Exports<\/h2>\n<p>Zu Testzwecken wollen wir einfach die Klasse <b>Class.vb <\/b>&uuml;bernehmen und dieser als einzige Anpassung einen Kommentar hinzuf&uuml;gen:<\/p>\n<pre><span style=\"color:blue;\">Public Class<\/span> $safeitemname$\r\n     ''Tolle neue Vorlagenklasse\r\n<span style=\"color:blue;\">End Class<\/span><\/pre>\n<p>Den Inhalt der Datei <b>WindowsMitStandards.vstemplate <\/b>wollen wir vorerst beibehalten. Nun folgt schon der entscheidende Schritt: Sie w&auml;hlen aus dem Men&uuml; den Eintrag <b>Datei|Vorlage exportieren&#8230; <\/b>aus. Es erscheint der Dialog aus Bild 6, in dem Sie den zweiten Eintrag <b>Elementvorlage ausw&auml;hlen <\/b>und das Projekt <b>WindowsMitStandards <\/b>als Vorlagenquelle beibehalten.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2017_06\/pic_114_006.png\" alt=\"Export als Elementvorlage\" width=\"649,559\" height=\"346,0764\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 6: Export als Elementvorlage<\/span><\/b><\/p>\n<p>Der n&auml;chste Schritt des Assistenten fragt, welches Element als Vorlagen-Element verwendet werden soll. Die Auswahl ist einfach, zumal Sie nur einen Eintrag ausw&auml;hlen k&ouml;nnen &#8211; n&auml;mlich die Klasse <b>Class.vb <\/b>(siehe Bild 7).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2017_06\/pic_114_007.png\" alt=\"Festlegen des als Vorlage zu verwendenden Elements\" width=\"649,559\" height=\"276,8611\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 7: Festlegen des als Vorlage zu verwendenden Elements<\/span><\/b><\/p>\n<p>Danach erscheint ein Dialog, mit dem Sie die Verweise ausw&auml;hlen k&ouml;nnen, die gegebenenfalls speziell f&uuml;r das Element ben&ouml;tigt werden. Der Dialog zeigt alle im Vorlagen-Projekt referenzierten Verweise an. Wenn Sie also nachtr&auml;glich noch Verweise zum Projekt hinzuf&uuml;gen wie etwa den Verweis auf die Bibliothek <b>Microsoft.Office.Interop.Word<\/b>, dann wird auch dieser zur Auswahl angeboten (siehe Bild 8).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2017_06\/pic_114_008.png\" alt=\"Ausw&auml;hlen der Projektverweise\" width=\"649,559\" height=\"408,5788\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 8: Ausw&auml;hlen der Projektverweise<\/span><\/b><\/p>\n<p>Wenn Sie wie in diesem Beispiel einen Verweis ausw&auml;hlen, der nicht mit Visual Studio vorinstalliert wird, weist der Dialog auf eventuelle Probleme hin &#8211; in diesem Fall, weil Microsoft Word ja vielleicht gar nicht auf dem Zielrechner der Vorlage installiert ist (bei genauerem Hinsehen liefert der Dialog diesen Hinweis auch f&uuml;r alle standardm&auml;&szlig;ig enthaltenen Verweise).<\/p>\n<div class=\"rcp_restricted\"><p><span style=\"color: #ff0000;\">M&ouml;chten Sie weiterlesen? Dann l&ouml;sen Sie Ihr Ticket!<\/span><br \/>\n<span style=\"color: #ff0000;\">Hier geht es zur Bestellung des Jahresabonnements des Magazins <strong>Visual Basic Entwickler<\/strong>:<\/span><br \/>\n<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/shop.minhorst.com\/magazine\/363\/visual-basic-entwickler-jahresabonnement?c=77\">Zur Bestellung ...<\/a><\/span><br \/>\n<span style=\"color: #ff0000;\">Danach greifen Sie sofort auf <strong>alle rund 200 Artikel<\/strong> unseres Angebots zu - auch auf diesen hier!<\/span><br \/>\n<span style=\"color: #000000;\">Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:<\/span><\/p>\n<\/div>\n\n\t\n\t<form id=\"rcp_login_form\"  class=\"rcp_form\" method=\"POST\" action=\"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000114\/\">\n\n\t\t\n\t\t<fieldset class=\"rcp_login_data\">\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_login\">Username or Email<\/label>\n\t\t\t\t<input name=\"rcp_user_login\" id=\"rcp_user_login\" class=\"required\" type=\"text\"\/>\n\t\t\t<\/p>\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_pass\">Password<\/label>\n\t\t\t\t<input name=\"rcp_user_pass\" id=\"rcp_user_pass\" class=\"required\" type=\"password\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t\t<p>\n\t\t\t\t<input type=\"checkbox\" name=\"rcp_user_remember\" id=\"rcp_user_remember\" value=\"1\"\/>\n\t\t\t\t<label for=\"rcp_user_remember\">Remember me<\/label>\n\t\t\t<\/p>\n\t\t\t<p class=\"rcp_lost_password\"><a href=\"\/data\/wp\/v2\/posts\/55000114?rcp_action=lostpassword\"><\/a><\/p>\n\t\t\t<p>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_action\" value=\"login\"\/>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_redirect\" value=\"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000114\/\"\/>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"34aae43e8a\"\/>\n\t\t\t\t<input id=\"rcp_login_submit\" class=\"rcp-button\" type=\"submit\" value=\"Login\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t<\/fieldset>\n\n\t\t\n\t<\/form>\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wer die bisherigen Artikel verfolgt und zuvor mit Access gearbeitet hat, stellt fest, dass es einige Aufgaben gibt, die sich unter Access einfacher durchf&uuml;hren lie&szlig;en &#8211; zum Beispiel das Ausstatten eines Formulars mit einer Datenherkunft und das Hinzuf&uuml;gen der gebundenen Steuerelemente zu diesem Formular. Nun gibt es auch unter Visual Studio die M&ouml;glichkeit, Assistenten selbst zu programmieren. Damit k&ouml;nnten wir dann selbst die Helferlein erstellen, die uns bei Routineaufgaben unterst&uuml;tzen &#8211; wie beispielsweise das Anlegen eines Window- oder Page-Elements auf Basis einer Entit&auml;t. Doch bis dahin ist es noch ein langer Weg &#8211; in diesem Artikel schauen wir uns zun&auml;chst an, wie Sie eine einfachen Vorlage f&uuml;r Visual Studio erstellen.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662017,66062017,44000024,44000023,44000013],"tags":[],"yst_prominent_words":[],"class_list":["post-55000114","post","type-post","status-publish","format-standard","hentry","category-662017","category-66062017","category-Berichte_und_Reporting","category-PowerApps","category-Visual_Studio_nutzen"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000114","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/comments?post=55000114"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000114\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=55000114"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/categories?post=55000114"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/tags?post=55000114"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=55000114"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}