| |
VB.NET - Ein- und UmsteigerExtensions Modul global, in allen Projekten, verfügbar machen. | | | Autor: FormFollowsFunction | Datum: 03.09.17 23:47 |
| Hallo alle.
Der Titel sagt eigentlich schon alles.
Ich möchte ein Modul, für alle Projekte, also WindowsApp, Konsolenanwendung,
Dienst et cetera, verfügbar machen, ich konnte nichts finden,
ist das möglich, und wenn ja, wie ?
Dim gruß As New Gruß("Mit freundlichen Grüßen, FormFollowsFunction :) ")
gruß.Schow() https://msdn.microsoft.com/de-de/library <- Mal rein schauen! ;) | |
Re: Extensions Modul global, in allen Projekten, verfügbar machen. | | | Autor: Manfred X | Datum: 04.09.17 07:36 |
| Hallo!
Das ist vermutlich keine gute Idee.
"Extension Methods", deren Modul in einer Bibliothek angesiedelt ist,
werden bei der Aufruf-Zuordnung zur entsprechenden Klasse nur erkannt,
wenn es keine gleichnamigen Routinen innerhalb des rufenden Projekts oder
in anderen Bibliotheken gibt (Risiko von Namens-Überschneidungen).
Oder meinst Du mit "Extensions" etwas anderes?
In dem Fall kannst Du in einem DLL-Projekt eine Klasse erstellen,
die Shared-Methoden umfaßt. | |
Re: Extensions Modul global, in allen Projekten, verfügbar machen. | | | Autor: FormFollowsFunction | Datum: 04.09.17 16:53 |
| Ja ich meine Methoden.
Konflikte lassen sich ja durch eindeutige Benamung vermeiden, das dürfte kein Problem darstellen.
Ich werde wohl sämtliche Projektvorlagen bearbeiten müssen, so global, wie ich mir das vorstelle, ist es wohl nicht möglich.
Dim gruß As New Gruß("Mit freundlichen Grüßen, FormFollowsFunction :) ")
gruß.Schow() https://msdn.microsoft.com/de-de/library <- Mal rein schauen! ;) | |
Re: Extensions Modul global, in allen Projekten, verfügbar machen. | | | Autor: Manfred X | Datum: 04.09.17 18:47 |
| Hallo!
Sinnvoll wäre es, wenn Du erläuterst, für welche Zwecke
Du meinst, so etwas tatsächlich zu brauchen. | |
Re: Extensions Modul global, in allen Projekten, verfügbar machen. | | | Autor: FormFollowsFunction | Datum: 04.09.17 19:04 |
| Sinn und Zweck von "Extension Methods", sollte wohl klar sein und die will ich eben global, in der IDE verfügbar machen.
Das soll sich so anfühlen, als ob die "Extension Methods", zu Framework dazugehören würden.
Dim gruß As New Gruß("Mit freundlichen Grüßen, FormFollowsFunction :) ")
gruß.Schow() https://msdn.microsoft.com/de-de/library <- Mal rein schauen! ;) | |
Re: Extensions Modul global, in allen Projekten, verfügbar machen. | | | Autor: Manfred X | Datum: 04.09.17 19:29 |
| Was Du möchtest habe ich verstanden.
Nochmal: Zu welchem Zweck glaubst Du, so etwas zu brauchen.
Module sind - abgesehen von "Extension Methods" - in VB.Net irrelevant.
Solche speziellen Methoden werden nur in Zusammenhang mit den zugeordneten
Klassen benötigt - also nicht in jedem Projekt.
Wie oben bereits erwähnt:
Erstelle ein Bibliotheks-Projekt (DLL), füge dort Klassen mit (Shared) Methoden
ein. Die Klassen-Methoden dieser Bibliothek können per Projektverweis in jedem
Projekt verwendet werden.
Falls Du tatsächlich "Extension Methods" benötigst, verwende statt dessen ein Modul
mit öffentlichen Methoden (incl. Extension-Kennung) in der Bibliothek. | |
Re: Extensions Modul global, in allen Projekten, verfügbar machen. | | | Autor: FormFollowsFunction | Datum: 04.09.17 21:17 |
| Sorry, aber du höhrst b.z.w. liest mir nicht zu. :/
Dim gruß As New Gruß("Mit freundlichen Grüßen, FormFollowsFunction :) ")
gruß.Schow() https://msdn.microsoft.com/de-de/library <- Mal rein schauen! ;) | |
Re: Extensions Modul global, in allen Projekten, verfügbar machen. | | | Autor: DotNetErbse | Datum: 05.09.17 13:23 |
| also ich finde Extensions Klasse.
Z.B.:
dim s as string="1;3;5"
dim lst as list(of integer)=s.GetListOfIntegerUndMachWasDamit(";") Mich nervt auch, dass ich die immer wieder in die Projekte einbinden muss. Auch ein Update gestaltet sich schwierig. Manche Dinge Code ich OnTheFly je nach Projekt. Bums, schon gibt's ne abweichende Extensions.vb
Mit freundlichen Gr??en
DotNetErbse
[Es hei?t Paket und nicht Packet, auch wenn Standard augenscheinlich von Standar(t)e kommt,hei?t es dennoch Standar(d)] | |
Re: Extensions Modul global, in allen Projekten, verfügbar machen. | | | Autor: HenryV | Datum: 05.09.17 17:10 |
| Hallo zusammen
So als Tipp, man kann Elemente als Verknüpfung hinzufügen.
https://msdn.microsoft.com/de-de/library/9f4t9t92(v=vs.100).aspx(nach unten scrollen)
Somit kann man die Extensions.vb irgendwo zentral ablegen.
Gruss HenryV
Beitrag wurde zuletzt am 05.09.17 um 17:15:34 editiert. | |
Re: Extensions Modul global, in allen Projekten, verfügbar machen. | | | Autor: Manfred X | Datum: 06.09.17 09:48 |
| Hallo!
Darf man wissen, warum Du nicht einfach eine Klasse ableitest, etwa so ....
Public Class ListEx(Of T)
Inherits Collections.Generic.List(Of T)
Public Sub RemoveEven()
For i As Integer = Me.Count - 1 To 0 Step -1
If i Mod 2 = 0 Then Me.RemoveAt(i)
Next i
End Sub
End Class | |
Re: Extensions Modul global, in allen Projekten, verfügbar machen. | | | Autor: FormFollowsFunction | Datum: 06.09.17 11:14 |
| Weil das nicht zum gewünschten Ziel führt.
Dim gruß As New Gruß("Mit freundlichen Grüßen, FormFollowsFunction :) ")
gruß.Schow() https://msdn.microsoft.com/de-de/library <- Mal rein schauen! ;) | |
Re: Extensions Modul global, in allen Projekten, verfügbar machen. | | | Autor: DotNetErbse | Datum: 06.09.17 11:31 |
| Hallo ManneX,
weiß nicht, ist eventuell eine Geschmacksfrage. Hab das bisher so gemacht.
Deine Variante ist natürlich übersichtlicher und in eine main.dll zu integrieren...
Geht das mit allen Variablentypen? Ich habe viele Extensions für viele Variablentypen.
LG
DNE
Mit freundlichen Gr??en
DotNetErbse
[Es hei?t Paket und nicht Packet, auch wenn Standard augenscheinlich von Standar(t)e kommt,hei?t es dennoch Standar(d)] | |
Re: Extensions Modul global, in allen Projekten, verfügbar machen. | | | Autor: FormFollowsFunction | Datum: 06.09.17 12:00 |
| Es kommt nur ein Modul in Frage und das ist aus einer .dll heraus nicht global verfügbar; das haben zumindes meine Experimente ergeben.
Werde mich wohl damit begnügen müssen, das Modul jedes mal einzubinden.
Dim gruß As New Gruß("Mit freundlichen Grüßen, FormFollowsFunction :) ")
gruß.Schow() https://msdn.microsoft.com/de-de/library <- Mal rein schauen! ;) | |
Re: Extensions Modul global, in allen Projekten, verfügbar machen. | | | Autor: Manfred X | Datum: 06.09.17 12:24 |
| Hallo!
VB ist eine objektorientierte Programmiersprache
Vererbung ist dabei ein zentrales Prinzip, um Objektwelten
zu konstruieren, durch die Programme organisiert und
strukturiert werden.
"Extension Methods" sind in gewisser Weise ein Rückfall in
das modulare Programmieren. Eingeführt worden sind sie im
Zusammenhang mit LINQ. LINQ ist ein "Query-Konzept" und kein
"Objekt-Konzept". Aus meiner Sicht ist das in mancher Hinsicht
ein konzeptioneller Bruch um Framework.
"Inherits" funktioniert bei allen Klassen, die nicht "versiegelt" sind.
Bei versiegelten Klassen bevorzuge ich es inzwischen, Klassen zu erstellen,
denen im Konstruktor eine Instanz der versiegelten Klasse übergeben wird.
Von solchen "Frame-Klassen", die jeweils eine Instanz der versiegelten
Klasse erweitern, können dann Ableitungen erstellt werden. | |
Re: Extensions Modul global, in allen Projekten, verfügbar machen. | | | Autor: DotNetErbse | Datum: 07.09.17 07:42 |
| vielen Dank, dann werde ich das mal beherzigen.
Habs nun in über 10 Projekten drin, wird ne Weile dauern zum "umstricken"...
Bis denne
Mit freundlichen Gr??en
DotNetErbse
[Es hei?t Paket und nicht Packet, auch wenn Standard augenscheinlich von Standar(t)e kommt,hei?t es dennoch Standar(d)] | |
Re: Extensions Modul global, in allen Projekten, verfügbar machen. | | | Autor: DotNetErbse | Datum: 07.09.17 07:48 |
| Hallo FormFollows...
ich fand die ersten Rückfragen zwar auch etwas DaveS-like, aber ManneX hat Recht.
Bei der Programmierung gibt es Dinge, die sind des Programmierers Himmelreich.
Oft aber nur sein eigener Himmel. Manche Dinge gehen einfach nicht.
Damit kann man sich abfinden, oder nicht.
Viel Erfolg weiterhin!
Mit freundlichen Gr??en
DotNetErbse
[Es hei?t Paket und nicht Packet, auch wenn Standard augenscheinlich von Standar(t)e kommt,hei?t es dennoch Standar(d)] | |
Re: Extensions Modul global, in allen Projekten, verfügbar machen. | | | Autor: FormFollowsFunction | Datum: 07.09.17 15:54 |
| ... etwas DaveS-like, aber ManneX hat Recht.
Aber am Thema vorbei ! Wer ist DaveS ?
Dim gruß As New Gruß("Mit freundlichen Grüßen, FormFollowsFunction :) ")
gruß.Schow() https://msdn.microsoft.com/de-de/library <- Mal rein schauen! ;) | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
Neu! sevDTA 3.0 Pro
SEPA mit Kontonummernprüfung
Erstellen von SEPA-Dateien mit integriertem BIC-Verzeichnis und Konto- nummern-Prüfverfahren, so dass ungültige Bankdaten bereits im Vorfeld ermittelt werden können. Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|