Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
KExtensions v1.4 (Visual Studio Package) inkl. Sourcen
Khalid
myCSharp.de - Experte

Avatar #avatar-2534.gif


Dabei seit:
Beiträge: 3.511
Herkunft: Hannover

Themenstarter:

KExtensions v1.4 (Visual Studio Package) inkl. Sourcen

beantworten | zitieren | melden

KExtensions ist ein Visual Studio Package, welches die IDE um ein paar Funktionen erweitert, die ich selber im Laufe der Zeit vermisst habe. Der Kern des ganzen AddIns ist allerdings ein integrierter Windows Explorer innerhalb der IDE. Da ich zwischen den Explorer und der IDE sehr häufig wechsel, habe ich mir überlegt ein Explorer in die IDE einzubetten. Ebenso fehlten mir kleine Funktionen rund ums Refactoring.

Anmerkung zum Update:
Um die neueste Version zu installieren, muss erst vorher die alte deinstalliert werden! Ein "drüberinstallieren" wäre zwar möglich, aber dann werden die Registrierungseinträge nicht entfernt und die IDE würde bei jedem Start meckern, das ihr was fehlt. Also bitte vorher deinstallieren. Danke

-----------------------------------------------------------
Infos zum Ort des Setups und der Sourcen
Die Sourcen sind auf meinem Blog zu finden (Seite KExtensions): www.brainvalley.org. Es wird VS2008 Std. oder höher benötigt. Ebenfalls ist dort auch das Setup zu finden. Das Setup, welches dort liegt, ist immer identisch zu dem Setup hier im ersten Post. D.h. das hier ebenfalls immer das aktuellste Setup liegt. Nur wenn ihr unbedingt die Sourcen haben wollt, müsst ihr diese von meinem Blog besorgen.

Die Sourcen sind noch nicht komplett dokumentiert!!

Bevor ich es vergesse: Um das Projekt erfolgreich zu kompilieren, muss das VS SDK 2008 1.1 installiert sein.

-----------------------------------------------------------
Versionshistorie:

Version 1.4 (18.12.1009)
- [Changed] Die Namen der Namespaces geändert
- [Fix] Drag & Drop
  - Das Drag & Drop der Komponenten arbeitet jetzt wesentlich stabiler und interagiert
     besser mit der Windows Shell (und sich selber)
  - Unterstützung von Drop Descriptions (Vista und höher)
  - Weiter angepasst an das Verhalten des Windows Explorers
- [Fix] Shell Overlay Icons werden jetzt korrekt dargestellt
- [Fix] Bug behoben, der unter bestimmten Umständen verhindert hat, das einige 
  Kontextmenüeinträge verschwunden sind

Die Sourcen und das MSI werde ich am Wochenende auf meiner Homepage aktualisieren

Version 1.3 (18.05.2009)
- [Fix] Windows Explorer verbraucht weniger Resourcen
- [Fix] Im Windows Explorer unter Vista kann jetzt auch die große (256x256) Miniaturansicht
  ausgewählt werden (per Contextmenu)
- [Feature] INotifyPropertyChanged implementieren
- [Feature] DLL-Dateien vom Windows Explorer als Verweis hinzufügen
- [Feature] Reine Baumansicht des Windows Explorers
- [Changed] Der Dialog zum implementieren von Eigenschaften hat sich im Layout geändert
- [Kicked] myCSharp-Suche (warum, steht weiter unten)

Version 1.2 (11.12.2008 )
- [Fix] Package Load Failure behoben

Version 1.1 (28.11.2008 )
- [Fix] Im CodeExplorer stürzt die IDE nicht mehr ab, wenn in Headerdateien bei 
  C++ Anwendungen navigiert wird. (Dank an ChMaster für den Hinweis)
- [Fix] Beim Stringrefactoring, werden jetzt auch Projekte berücksichtigt, die auf 
  mehreren Ordnern verteilt liegen. (Dank an moq für den Hinweis)
- [Feature] Beim Stringrefactoring kann jetzt auch "Ignorieren" ausgewählt werden.
- [Sonstiges] Der Windows Explorer ist jetzt auf zwei Assemblies aufgeteilt (bessere Wartbarkeit)

Version 1.0 (30.10.2008 )
- Erster Release

-----------------------------------------------------------

Also hier erstmal eine Übersicht der Funktionen
1. String Refactoring
Durchsucht die geladene Solution nach festen Strings im Code. Anschließend kann gewählt werden, was mit dem entsprechenden Strings passieren soll. Entweder als Konstante in der Klasse anlegen, in eine Resourcendatei übertragen oder den String so belassen wie er ist. Ebenfalls können Leerstrings "" gegen String.Empty getauscht werden.

Hier gibt es noch etwas zu machen. Denn momentan wird die komplette Solution durchsucht. Später soll die Suche auf Solution, Projekt, Klasse beschränkt werden können.

2. Properties erstellen
Diese kleine nützliche Funktion ermittelt alle Member einer Klasse und generiert die entsprechenden Properties. Natürlich kann man auswählen ob get/set, nur get oder nur set. Ebenfalls die Sichtbarkeit der Eigenschaft (public/protected/internal/private).
Da ich keine Codegeneratoren oder ähnliches verwende, hat mir diese Funktion schon gut arbeit abgenommen.

3. Code Explorer
Ist ein Toolwindow, welches die momentane Codeklasse als Baum darstellt. Es besteht die Möglichkeit direkt im Baum zu suchen, um schnell eine Methode oder Member oder sonstwas zu suchen um an diese Stelle direkt zu springen. Man kann direkt alle angezeigten Elemente umbennenen. Dies wird sofort im Code und über die ganze Solution übernommen. Sortiert werden kann nach Name (auf- und absteigend) sowie nach Codereihenfolge.

4. myCSharp (nur Version 1.0, 1.1)
Ist ein kleines Gimmick am Rande. Man kann direkt in einem ToolWindow die Suche von myCSharp benutzen. Das Ergbnis wird in einem Grid dargestellt und beim Klick eines entsprechenden Links, wird die Seite im IDE-Eigenem IExplorer angezeigt. In einer späteren Version will ich es konfigurierbar machen. Also entweder IDE Explorer oder der Standartbrowser.
Hierbei gibt es allerdings zwei Einschränkungen. Es werden nur die ersten 30 Treffer angezeigt und man kann nicht blättern. Also 30 Treffer und Schluss. Desweiteren wird immer nur die erste Seite eines Threads ermittelt. Wenn also ein Beitrag mehr als 40 Antworten hat, und somit auf zwei Seiten dargestellt wird, kann man nur die erste Seite öffnen. Möglichweise ändere ich das in einer nächsten Version.

5. Projektliste leeren
Auch ein Gimmick am Rande. Hier lassen sich die Projeke aus der Recent Projects Liste löschen. Um die Änderung sofort sichtbar zu machen, muss die IDE neugestartet werden. Gibt da keinen anderen Weg.

6. Windows Explorer
Das Ding ist ein wenig umfangreicher. Optisch/Funktional ist es fast 1:1 dem Windows Explorer nachempfunden (XP/Vista/2008 ).
Welche Möglichkeiten man hat:
- Dateien vom Explorer in die Solution ziehen (per Drag&Drop oder Kontextment)
- Dateien aus der Solution in den Explorer ziehen (z.B. schnell mal eine Kopie von einer Datei erstellen)
- Dateien direkt als Resource in eine Solution legen (über Kontextmenu)
- Direkt zum Ordner der Solution springen
- Direkt zu allen Ordnern springen, die in System.Envirnoment.SpecialFolder liegen (KnownFolder unter Vista/2008 folgt noch)
- In den Optionen kann einstellt werden, welche Dateierweiterungen direkt in der IDE geöffnet werden sollen.

Da das Ding ziemlich umfangreich ist (auch vom Code), ist es sehr schwer alle Bugs zu finden. Darum bitte bitte alle melden und genau beschreiben. Ich muss es nachvollziehen können.

Falls euch selber noch Dinge einfallen, die man mit reinpacken könnte, dann her damit. Aber gleich vorweg: Das hier soll kein zweites RefactorPro oder sonstwas werden. Kleine Funktionen, die ein das Leben leichter machen halt. Auch sinnvolle Funktionen, wie man den Explorer weiter mit der IDE verschmelzen lässt, sind gerne willkommen

Achja, um gleich ein paar Fragen von vorne herein zu beantworten:
- Dieses Package kann nur mit Visual Studio 2008 verwendet werden.
- Nein, es ist nicht möglich diese Package auf einer Express Edition zu installieren. Standart und höher ist erforderlich!

Der Inhalt der Zip-Datei ist ein MSI Paket.

Unter Vista/W7 schlägt während des Setups das UAC zu, da das Setup die IDE kurz startet.

Wenn das Setup durch ist, und ihr startet die IDE müsste ein neuer Menüpunkt "KExtensions" neben den Menüpunkt "Erstellen" auftauchen.

Achja, noch ein kleiner Tipp: Wenn ihr die Funktion "Strings extrahieren" nutzt, testet es an einem Backup oder sonstiges. Bis jetzt habe nur ich diese Funktion getestet. Bei mir läuft diese zwar gut durch, aber wer weis, was da noch für Bugs drin sind
Attachments
"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)
private Nachricht | Beiträge des Benutzers
Khalid
myCSharp.de - Experte

Avatar #avatar-2534.gif


Dabei seit:
Beiträge: 3.511
Herkunft: Hannover

Themenstarter:

beantworten | zitieren | melden

Der Screenshot im Anhang zeigt die drei ToolWindows "Windows Explorer", "myCSharp" und "Code Explorer"

Die Buttons im Windows Explorer von Links nach Rechts
- Zum Solutionverzeichnis gehen (inaktiv, wenn keine Solution geladen)
- Dateiansicht auf Details stellen
- Dateiansicht auf Listenansicht stellen
- Dateiansicht auf Kacheln stellen (diese Ansicht ist noch grob verbuggt was die Anzeige angeht)
- Dateiansicht auf Symbole stellen
- Zu einem "Systemordner" springen. Einfach den entsprechenden Ordner auswählen und der Tree navigiert zu dem entsprechenden Ordner

Die Buttons im myCSharp von Links nach Rechts
- Ergebnis löschen
- "Suchen nach": Einfach den Text eingeben und Enter drücken. Der Suchvorgang kann etwas dauern. Da es aber als Thread läuft wird die IDE nicht blockiert

Die Buttons im Code Explorer von Links nach Rechts
- Liste sortieren in absteigender Reihenfolge
- Liste sortieren in aufsteigender Reihenfolge
- Liste sortieren nach Codedeklaration
- Im Suchfeld den Member, die Methode oder sonstwas eintragen und Enter drücken. Die Liste filtert jetzt alle Namen raus, die nicht der Eingabe entsprechen. Wildcards braucht man nicht setzen, es wird immer automatisch nach "Name*" gesucht.

Im Menü "KExtensions" verbergen sich 4 Unterpunkte
- Eigenschaften erstellen. Ist nur aktiv, wenn in einer Codedatei der Cursor innerhalb einer Klasse steht
- Strings extrahieren. Ist nur aktiv, wenn eine Solution geladen ist
- Projektliste löschen. Hier kann man die Recent Projects Liste bearbeiten
- myCSharp: Öffnet das ToolWindow für die Suche bei myCSharp

Die anderen beiden Fenster liegen unter Ansicht->Weitere Fenster->Code Explorer/Windows Explorer
Attachments
"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)
private Nachricht | Beiträge des Benutzers
Khalid
myCSharp.de - Experte

Avatar #avatar-2534.gif


Dabei seit:
Beiträge: 3.511
Herkunft: Hannover

Themenstarter:

beantworten | zitieren | melden

Bei diesem Screenshot sieht man, das das Kontextmenu im Explorer etwas erweitert wurde. Die Funktionen die dahinter stehen, kann man ja anhand des Namens sich denken.
Attachments
"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)
private Nachricht | Beiträge des Benutzers
Khalid
myCSharp.de - Experte

Avatar #avatar-2534.gif


Dabei seit:
Beiträge: 3.511
Herkunft: Hannover

Themenstarter:

beantworten | zitieren | melden

Wählt man z.B. "Als Resource hinzufügen" aus, geht ein Dialog auf, in dem man die Resourcendatei auswählen muss.
Attachments
"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)
private Nachricht | Beiträge des Benutzers
hobofan
myCSharp.de - Member



Dabei seit:
Beiträge: 364

beantworten | zitieren | melden

Kanns mir grad leider ned anschaun, weil ich kein vs08 installiert

aber mien erster eindruck war "WOW", da sind der Beschriebung nach zu urteilen wirklich einige sehr nützliche funktionen drin, vorallem der explorer ist mal was recht praktisches

werds in n paar tagen ausprobieren, und dann mal mein feedback hier posten :-)

edit: achja, wofür steht "KExtensions"???
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von hobofan am .
private Nachricht | Beiträge des Benutzers
chrische5
myCSharp.de - Member



Dabei seit:
Beiträge: 489
Herkunft: Europa

beantworten | zitieren | melden

Hallo

Das ist echt genial. Gerade der Explorer ist wirklich hilfreich.

Vielen Dank

chrische
private Nachricht | Beiträge des Benutzers
Khalid
myCSharp.de - Experte

Avatar #avatar-2534.gif


Dabei seit:
Beiträge: 3.511
Herkunft: Hannover

Themenstarter:

beantworten | zitieren | melden

Zitat
achja, wofür steht "KExtensions"???
Oh, hätte nicht gedacht, das da einer nach fragt
KExtensions ist eigentlich nur eine Abkürzung für "Khalids Extensions for Visual Studio". Es schwebten zwar noch andere Namen in der Luft rum, aber zum Schluss habe ich mich für den entschieden. Ich finde, das klingt ganz nett.
"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)
private Nachricht | Beiträge des Benutzers
dennisspohr
myCSharp.de - Member

Avatar #avatar-2982.jpg


Dabei seit:
Beiträge: 420
Herkunft: Westerwald

beantworten | zitieren | melden

Zitat
KExtensions
Erinnert mich so an KUpdater^^

Machst du das Ganze auch irgendwann kompatibel zu Visual Studio 2005?

Gruß Dennis
private Nachricht | Beiträge des Benutzers
Khalid
myCSharp.de - Experte

Avatar #avatar-2534.gif


Dabei seit:
Beiträge: 3.511
Herkunft: Hannover

Themenstarter:

beantworten | zitieren | melden

Zitat
Machst du das Ganze auch irgendwann kompatibel zu Visual Studio 2005?
Ich denke mal nein. Das Projekt ist von Beginn an im VS2008 entstanden und ich nutze dementsprechend auch die neuen Methoden aus dem SDK. Ich weis ehrlich gesagt nicht, was passiert wenn ich auf das 8.0 SDK runtergehe. Ich könnt mir vorstellen, das das knallt
Ich weis auch ehrlich gesagt nicht, ob die IDE vom 2005er das FW3.5 mag.
"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)
private Nachricht | Beiträge des Benutzers
bird
myCSharp.de - Member



Dabei seit:
Beiträge: 75
Herkunft: Steinheim

beantworten | zitieren | melden

Zitat von Khalid
Ich denke mal nein.

Schade hätte mich auch sehr interessiert!!
private Nachricht | Beiträge des Benutzers
dennisspohr
myCSharp.de - Member

Avatar #avatar-2982.jpg


Dabei seit:
Beiträge: 420
Herkunft: Westerwald

beantworten | zitieren | melden

Wirklich schade, da ich beruflich kein VS 2008 nutzen kann...

Wäre es nicht ein Versuch wert?
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von dennisspohr am .
private Nachricht | Beiträge des Benutzers
Khalid
myCSharp.de - Experte

Avatar #avatar-2534.gif


Dabei seit:
Beiträge: 3.511
Herkunft: Hannover

Themenstarter:

beantworten | zitieren | melden

Zitat
Wäre es nicht ein Versuch wert?
Ein versuch wäre es sicherlich Wert, da ja doch noch viele mit VS2005 arbeiten. Ich lese mich grad durch die MSDN Foren. Und so wie es aussieht frisst die 2005er IDE keine FW3.5 Assemblies. D.h. wiederum ich muss aufs FW 2.0 zurück. Das könnte in Arbeit ausarten.
"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)
private Nachricht | Beiträge des Benutzers
t2t
myCSharp.de - Member



Dabei seit:
Beiträge: 415
Herkunft: Hamburg

beantworten | zitieren | melden

Der erste Eindruck ist echt super! Leider kann ich es - wegen fehlendem VS 2008 - grad nicht genauer anschauen. Aber eine Frage hab ich noch: Wie hast du den Windows Explorer realisiert? Hast du da was benutzt was es bereits OpenSource gibt, oder alles selbst entwickelt? Ich hab mal für ein Projekt sowas ähnliches benötigt und dann (ich glaube) bei http://sourceforge.net/ eine Lösung gefunden, leider war die noch sehr buggy...
Daher hätte ich schonmal großes Interesse an den Sourcen des Explorers ... vielleicht veröffentlichst du das ja mal

[OFFTOPIC]
Wenn man solche Projekte hier sieht, dann frage ich mich immer wo die Leute soviel Zeit her nehmen, sowas nebenher zu entwickeln. Ich würde das, bei meiner 45 Std Woche und der Zeit die man mit der Familie verbringt, einfach nicht mehr schaffen...

Oder ist das in diesem Fall auch im Rahmen deiner beruflichen Tätigkeit entstanden?
[/OFFTOPIC]
private Nachricht | Beiträge des Benutzers
Khalid
myCSharp.de - Experte

Avatar #avatar-2534.gif


Dabei seit:
Beiträge: 3.511
Herkunft: Hannover

Themenstarter:

beantworten | zitieren | melden

Zitat
Wie hast du den Windows Explorer realisiert?
Komplett alles über die Shell API, da der .NET Krams zu langsam ist, nicht alle Methoden anbietet und nur ein Bruchteil der Infos zurückliefert die man braucht.

Als Vorlage dient dieses Projekt hier. Ich habe das Ding komplett durchgelesen vom Code her und habe dann angefangen alles neu zu implementieren. Im Prinzip kann man sagen, das es zu 100% selber geschrieben ist. Bis auf zwei, drei Klassen, wo es einfach kein Sinn gemacht hätte die neuzuschreiben, da das Resultat 1:1 gewesen wäre (auch von der Namensgebung, da es keine anderen Bezeichner einfach gibt dafür). Ebenfalls hat das genannte Projekt einige macken, die ausgebügelt werden mussten (u.a. Vista kompatibilität).
Zitat
vielleicht veröffentlichst du das ja mal
Kommt auf jeden Fall. Der Code ist allerdings noch nicht so "einwandfrei" (null Doku, teils Müll aus Testereien). Und ohne Doku im Code wird man schwer zurechtfinden, da gerade der Explorer aus 80% P/Invokes und Marshalling besteht.

[offtopic]
Zitat
Oder ist das in diesem Fall auch im Rahmen deiner beruflichen Tätigkeit entstanden?
Jein.
Da ich plane unsere hauseigene Konfigurationssoftware als Integrated Shell zu realisieren, musste ich mir igendwas suchen, um mit dem SDK vom VS zu spielen.

Sonst alles Privat. Ich habe ebenfalls Familie und auch nicht wirklich so viel Zeit um nebenbei noch was zu proggen. Da mich dieses Projekt aber selber sehr motiviert hat (Lerneffekt), habe ich es durchgezogen.
Und BTW, ich sitze da jetzt seit ca. 5 Monaten dran
[/offtopic]
"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)
private Nachricht | Beiträge des Benutzers
Peter Bucher
myCSharp.de - Experte

Avatar #jVxXe7MDBPAimxdX3em3.jpg


Dabei seit:
Beiträge: 5.940
Herkunft: Zentralschweiz

beantworten | zitieren | melden

Salute Khalid

Sieht ja sehr cool aus.
Vorallem die myCSharp-Suche ist sicherlich sehr bequem so :-)


Gruss Peter
--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

- https://peterbucher.ch/ - Meine persönliche Seite
- https://fpvspots.net/ - Spots für FPV Dronenflüge
private Nachricht | Beiträge des Benutzers
t2t
myCSharp.de - Member



Dabei seit:
Beiträge: 415
Herkunft: Hamburg

beantworten | zitieren | melden

Zitat
Zitat
vielleicht veröffentlichst du das ja mal
Kommt auf jeden Fall. Der Code ist allerdings noch nicht so "einwandfrei" (null Doku, teils Müll aus Testereien). Und ohne Doku im Code wird man schwer zurechtfinden, da gerade der Explorer aus 80% P/Invokes und Marshalling besteht.

Das hört man gern, ich warte gespannt
private Nachricht | Beiträge des Benutzers
Khalid
myCSharp.de - Experte

Avatar #avatar-2534.gif


Dabei seit:
Beiträge: 3.511
Herkunft: Hannover

Themenstarter:

beantworten | zitieren | melden

So, leider muss ich mitteilen, das ich keine Konvertierung auf VS2005 machen werden. Das hat unter anderem den Grund, das VS2005 bestimmte Schnittstellen nicht anbietet, die ich für ein weiteres geplantes Feature benötige.

Den Source wird es noch dieses Jahr geben (ich leg mich mal nicht auf ein Datum fest :D).
"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)
private Nachricht | Beiträge des Benutzers
moq
myCSharp.de - Member



Dabei seit:
Beiträge: 130

beantworten | zitieren | melden

Zitat von Khalid
[...]
1. String Refactoring
Durchsucht die geladene Solution nach festen Strings im Code. Anschließend kann gewählt werden, was mit dem entsprechenden Strings passieren soll. Entweder als Konstant in der Klasse anlegen, in eine Resourcendatei übertragen oder den String so belassen wie er ist. Ebenfalls können Leerstrings "" gegen String.Emoty getauscht werden.

[...]
)

Hallo Khalid,

erstmal vorweg: echt schönes Addin.

Allerdings habe ich eine Frage zu der String Refactorisierung. Kann es sein, dass verschachelte Projekte innerhalb der Solutions nicht untersucht werden? (Sofern Projekte in eigenen Ordnern abgelegt ist)
Beispiel-Solution Aufbau:
+ Core (Ordner)
  + Networking (Proj)
  + Base (Proj)
  + ExternalCore (Ordner)
     + .. (Proj)
+ Utils (Proj)

In dem obigem Beispiel wird nur Utils untersucht, aber nicht Networking/Base etc.

Achja, schön wäre es auch, wenn man als Aktion neben In Konstante / Resourcedatei / String.empty auch Ignorieren auswählen könnte.

Viele Grüße,
moq
Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von moq am .
private Nachricht | Beiträge des Benutzers
Khalid
myCSharp.de - Experte

Avatar #avatar-2534.gif


Dabei seit:
Beiträge: 3.511
Herkunft: Hannover

Themenstarter:

beantworten | zitieren | melden

Danke für das Feedback
Zitat
In dem obigem Beispiel wird nur Utils untersucht, aber nicht Networking/Base etc.
Mit verschachtelten Projekten habe ich es ehrlich gesagt gar nicht getestet X(. Nur mit einer geraden Struktur, also
+ Solution
  + Projekt1
  + Projekt2
usw...

Das schau ich mir mal an.
Zitat
Achja, schön wäre es auch, wenn man als Aktion neben In Konstante / Resourcedatei / String.empty auch Ignorieren auswählen könnte.
Die Idee ist gar nicht so schlecht

Kommt auf jeden Fall rein.
"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)
private Nachricht | Beiträge des Benutzers
moq
myCSharp.de - Member



Dabei seit:
Beiträge: 130

beantworten | zitieren | melden

Zitat von Khalid
Danke für das Feedback
Gerne.
Zitat
Mit verschachtelten Projekten habe ich es ehrlich gesagt gar nicht getestet X(. Nur mit einer geraden Struktur, also

Das Projekt andem ich derzeit arbeite, umfasst knapp 1100 Projekte. VS kommt bis ca. 500 Projekte pro Solution gut mit.. Von daher ist bei mir jede Solution (natürlich automatisiert über Abhängigkeiten erstellt) mit Ordner sortiert und gut aufgeräumt..

Viele Grüße und danke für deine Arbeit!
moq

PS:
Zu den Properties erstellen.. Wäre es möglich, dass die Properites anhand der implementierten Interfaces erstellt werden könnten? Gleiches vorgehen wie bisher mit setzen der modifiers etc..
private Nachricht | Beiträge des Benutzers
Khalid
myCSharp.de - Experte

Avatar #avatar-2534.gif


Dabei seit:
Beiträge: 3.511
Herkunft: Hannover

Themenstarter:

beantworten | zitieren | melden

Zitat
Wäre es möglich, dass die Properites anhand der implementierten Interfaces erstellt werden könnten?
Wie meinst du das genau? Die IDE bietet dir diese Möglichkeit ja schon an (Implizit/Explizit implementieren).

Also sowas wie


public interface IDummy
{
  int Property1 { get; set; }
  bool Property2 { get; set; }
}
wird zu (Implizit)


public class Class1: IDummy
{
  private int m_Property1;
  private bool m_Property2;

  public int Property1
  {
    get { return this.m_Property1; }
    set { this.m_Property1 = value; }
  }

  public bool Property2
  {
    get { return this.m_Property2; }
    set { this.m_Property2 = value; }
  }
}
bzw. (Explizit)


public class Class1: IDummy
{
  private int m_Property1;
  private bool m_Property2;

  int IDummy.Property1
  {
    get { return this.m_Property1; }
    set { this.m_Property1 = value; }
  }

  bool IDummy.Property2
  {
    get { return this.m_Property2; }
    set { this.m_Property2 = value; }
  }
}
?
"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)
private Nachricht | Beiträge des Benutzers
moq
myCSharp.de - Member



Dabei seit:
Beiträge: 130

beantworten | zitieren | melden

Wenn ich die Schnittstellen implementiere unter VS08 werden keine members erzeugt. In den Gettern/Settern werden NotImplementExceptions erzeugt.

Hast du ein Snippet oder eine Einstellung angepasst, dass bei dir die Member erzeugt werden?

Viele Grüße,
moq!

Beispiel:

 public class Class1 : IDummy
    {
        #region IDummy Member

        public int A
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        public int B
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        #endregion
    }

    public interface IDummy
    {
        int A { get; set; }
        int B { get; set; }

    }
private Nachricht | Beiträge des Benutzers
Khalid
myCSharp.de - Experte

Avatar #avatar-2534.gif


Dabei seit:
Beiträge: 3.511
Herkunft: Hannover

Themenstarter:

beantworten | zitieren | melden

Oh, meine Codebeispiele haben auf das gezeigt, wie es mal aussehen könnte (hätte ich besser drauf hindeuten sollen). Mit den Codebeispielen wollte ich dich fragen, ob du das so in der Art meintest. Aber ich denke mal ja

Also, das NotImplementedException wird natürlich auch bei mir gesetzt. Dieses Verfahren kann man auch nicht beeinflussen, da es halt direkt von der IDE (bzw. den c# Tools) umgesetzt wird.
"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)
private Nachricht | Beiträge des Benutzers
ProGamer
myCSharp.de - Member



Dabei seit:
Beiträge: 660
Herkunft: NRW

beantworten | zitieren | melden

wurde diese erweiterung für c# optimiert?
MfG
ProGamer
private Nachricht | Beiträge des Benutzers
Khalid
myCSharp.de - Experte

Avatar #avatar-2534.gif


Dabei seit:
Beiträge: 3.511
Herkunft: Hannover

Themenstarter:

beantworten | zitieren | melden

Ja. Zurzeit unterstützt die Erweiterung nur c#.

VB.NET wird deswegen nicht unterstützt, da ich selber noch selten bis nie was in VB.NET gemacht habe. Da es sich allerdings nur um Codegenerierung handelt, werde ich VB.NET später nachschieben.

Sorry
"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)
private Nachricht | Beiträge des Benutzers
SeeQuark
myCSharp.de - Member

Avatar #avatar-2825.jpg


Dabei seit:
Beiträge: 946

Problem mit Installer

beantworten | zitieren | melden

Ich wollte mir eben das Projekt installieren, doch dann erschien folgende Messagebox:
Zitat von KExtensions
Error 1001. Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt
Der Fortschrittbalken befindet sich dabei im zweiten Durchlauf.
Ich benutze Vista (wie man am Fenster sieht).
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von SeeQuark am .
Attachments
private Nachricht | Beiträge des Benutzers
Khalid
myCSharp.de - Experte

Avatar #avatar-2534.gif


Dabei seit:
Beiträge: 3.511
Herkunft: Hannover

Themenstarter:

beantworten | zitieren | melden

Oh.

Sowas hatte ich noch gar nicht. Habe es eben mal auf meinem Vista VPC installiert. Da lief es glatt durch. Der folgende Code wird ausgeführt beim Setup:


public override void Install(IDictionary stateSaver)
    {
      base.Install(stateSaver);

      using (RegistryKey setupKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\VisualStudio\9.0\Setup\VS"))
      {
        if (setupKey != null)
        {
          string devenv = setupKey.GetValue("EnvironmentPath").ToString();
          if (!string.IsNullOrEmpty(devenv))
          {
            Process.Start(devenv, "/setup /nosetupvstemplates").WaitForExit();
          }
        }
      }
    }
Könnte höchstens ein Rechteproblem sein. Mit was für einem Konto bist du angemeldet?
"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)
private Nachricht | Beiträge des Benutzers
SeeQuark
myCSharp.de - Member

Avatar #avatar-2825.jpg


Dabei seit:
Beiträge: 946

beantworten | zitieren | melden

Das Problem liegt da:

using (RegistryKey setupKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\VisualStudio\9.0\Setup\VS"))
Der Pfad existiert bei mir nicht. Funktioniert vermutlich nicht mit Express Edition.

Edit:
Zitat
Achja, um gleich ein paar Fragen von vorne herein zu beantworten:
- Dieses Package kann nur mit Visual Studio 2008 verwendet werden.
- Nein, es ist nicht möglich diese Package auf einer Express Edition zu installieren. Standart und höher ist erforderlich!
Hätte deinen Post genauer durchlesen sollen...
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von SeeQuark am .
private Nachricht | Beiträge des Benutzers
chrische5
myCSharp.de - Member



Dabei seit:
Beiträge: 489
Herkunft: Europa

beantworten | zitieren | melden

Hallo

Genau. Die Expressversion unterstützt keine Addinns.

chrische
private Nachricht | Beiträge des Benutzers
Khalid
myCSharp.de - Experte

Avatar #avatar-2534.gif


Dabei seit:
Beiträge: 3.511
Herkunft: Hannover

Themenstarter:

beantworten | zitieren | melden

Hallo,

die Sourcen sind jetzt verfügbar. Näheres dazu im ersten Beitrag.
"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)
private Nachricht | Beiträge des Benutzers