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

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von rollerfreak2
Thema: Kostenloses Tool gesucht um tägliche Arbeit(zeit) zu dokumentieren/notieren/persistieren
Am im Forum: Smalltalk

Danke ujr, das MapleXP taugt ganz gut!

Thema: Kostenloses Tool gesucht um tägliche Arbeit(zeit) zu dokumentieren/notieren/persistieren
Am im Forum: Smalltalk

Zitat
Oder geht es dir mehr darum, dass die Erfassung der Arbeitszeiten live erfolgt, also dass du in einem Erfassungstool auf Start drückst, wenn du mit der Aufgabe beginnst und auf Stop, wenn du fertig bist oder zu einer anderen Aufgabe wechselst?

Nein automatisch tracken soll das Tool nichts!
Zitat
Langer Rede, kurzer Sinn, präzisiere bitte, was genau du willst.

Ich kann doch nicht der einzige auf der Welt sein der seine Arbeit als Enwickler tracken muss. Und das offizielle Tool das ich nutzen muss ist doch mehr als schlecht bedienbar. Das heißt um so seltener ich das bedienen muss um so besser. Ich trage also meine Täglichen Arbeiten z.Z. in eine Excel Datei bzw. Outlook Notiz ein. Z.B. 2h RQ fixing, 3h Design Documents, etc.

Am Ende der Woche trage ich das dann in das offizielle Tool ein. Was ich suche ist ein kostenloses Tool wo man z.B Kategorien bzw. Workpackages anlegen kann eine Zeitvorgabe dazu und jeden Tag tracken kann was man daran gemacht hat. Klar kann ich mir da in Excel ne Tabelle basteln aber weil man das Rad ja nicht 2mal erfinden muss dachte ich frage ich mal ob es sowas in der Richtung bereits gibt.

Thema: Kostenloses Tool gesucht um tägliche Arbeit(zeit) zu dokumentieren/notieren/persistieren
Am im Forum: Smalltalk

Kennt einer von euch eine gutes Tool in dem man an jedem Tag notieren kann was man so an WorkPackages/RQs etc. gemacht hat? Am besten noch mit Zeitvergabe.

Ich würde sowas gut gebrauchen können, um es am Ende der Woche einmal in den ProjectManager einzutragen statt jeden Tag.

Thema: [gelöst] Per Setup File Type Context MenuExtension (für den Windows Explorer) einrichten
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Ich habe mal in der Registry geschaut und festgestellt das diese Einträge dort verwaltet werden. Im Key VisualStudio.Launcher.sln. Das konnte ich dann über eine VisualStudio Setup File automatisch verteilen.

Thema: [gelöst] Per Setup File Type Context MenuExtension (für den Windows Explorer) einrichten
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo zusammen,

ich habe folgendes Problem. Ich habe auf dem Rechner für einen bestimmte File Extension (*.sln) ein Kontext-Menü Eintrag erstellt. Diese habe ich folgender Maßen gemacht (Siehe Bild):

    - Explorer geöffnet
    - Tools->Folder Options
    - Tab->File Types
    - SLN selektiert
    - Button Advanced
    - Button New
    - Dort dann Action und Application used to perform action ausgefüllt

Soweit alles bestens. Es funktioniert auch wunderbar. Mein Problem nun ist ich möchte diese gern mit einem Setup ausliefern, weiß aber nicht wie ich das relativ Problemfrei hinbekomme? Gibt es da etwas schon funktionierendes oder muss ich das selbst machen (Registry, etc.)?

Thema: DllImport von PcHelpWare Dll 1SCDLL.dll
Am im Forum: Rund um die Programmierung

H Ali_Spindler,

versuch mal den StringBuilder mit einer festen Größe zu initialisieren.


new StringBuilder("",255)

Wenn das ein C++ dll ist dann erwartet m.W.n einen Puffer mit fester Größe.

Thema: C++ Object Pointer aus c++ Object Factory dll in c# nutzen
Am im Forum: Rund um die Programmierung

Hallo zusammen,

ich habe eine c++ Dll die eine methode bereit stellt, die mir ein Pointer auf ein object liefert(kein COM). Sehr stark vereinfacht sieht die verwendung dieser dll in c++ so aus!

 
#include DefinitionOfInterfaceClass.h
 
typedef IMyInterface* (*pfnMyObject)();
 
void test()
{
    pfnMyObject pGetObject;
    HMODULE hMod = LoadLibrary("MyCPlusPlus.dll");
    pGetObject = (pfnMyObject*)GetProcAddress(hMod,"GetObjectMethodName");
 
    IMyInterface* pObj = pGetObject();
    pObj->DoSomething();
}  


Diese Dll möchte ich jetzt in c# verwenden.


[DllImport("MyCPlusPlus.dll", EntryPoint = "GetObjectMethodName")]
public static extern IntPtr getObjectInCSharp();  

Bis hier her funktioniert das auch....nach dem Aufruf der "getObjectInCSharp" Methode habe ich einen IntPtr! Soweit so gut, aber wie bekomme ich jetzt aus dem IntPtr meinen Klassenpointer bzw. die Objekte innerhalb der Klasse?

Klasseninterface nachbauen und dieses Interface anstelle des IntPtr beim Import setzen?

Geht dieser Mechanismus überhaupt in c# zu adaptieren?

In der MSDN habe ich nur Beispiele für Strukturen gefunden und da waren es auch keine Pointer auf Strukturen sondern Kopien die von den Methoden geliefert wurden.

Kann jemand helfen?

Thema: [gelöst] Fehlende Referenz für Überladene Methode die jedoch nicht aufgerufen wird (CompileError)
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo herbivore,

Zitat
Selbst wenn du diesen Typen in Assembly C nicht benutzt, solltest du nach meinen Verständnis in C eine Referenz auf B hinzufügen.

Das sehe ich nicht so. Zur Laufzeit ist die AssemblyC im selben Ordner wie AssemblyA. Es ist ein sehr großes Projekt wo mehrere Assemblies nebeneinander liegen das heißt zur Laufzeit knallt es m.M.n. nicht auch wenn man mit Reflection dort ein Typ laden will.
Zitat
Zum einen, weil es leicht passieren kann, dass eine vorher unbenutzte Methode später doch benutzt wird.

Wenn dieser Fall auftritt, dann muss der Entwickler sowieso die Referenz hinzufügen weil er sonst einen Compiler-Fehler bekommt. Ich sehe das nicht als Nachteil!

Thema: [gelöst] Fehlende Referenz für Überladene Methode die jedoch nicht aufgerufen wird (CompileError)
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich habe eine Lösung gefunden wie man den Compiler überlisten kann. Das Zauberwort heißt Names Parameters.

Wenn man die Methode in der Main so called dann wird der Compiler gezwungen die Methode anhand der Parameter-Namen zu identifizieren. Die Referenz auf das AssemblyB ist dann nicht mehr nötig!


//AssemblyC
static void Main(string[] args)
{
    object a = new object();
    InterfaceA b = (InterfaceA)a;
    b.Add(a : 1, b : 2);
} 

Ein guter Artikel dazu ist Named Parameters.

Thema: [gelöst] Fehlende Referenz für Überladene Methode die jedoch nicht aufgerufen wird (CompileError)
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Nein das ist falsch so wie du das sagst. Wenn ich im AssemblyA die Signature so ändere das es keine Überladung ist daher in


//AssemblyA
public interface InterfaceA
{
    int Add(int a, int b);

    int Add1(InterfaceB b1, InterfaceB b2);
} 

dann brauch ich in AssemblyC natürlich auch nur eine Referenz auf das AssemblyB weil ich in Main auf InterfaceB gar nicht zugreife. Bei der Überladung will der Compiler allerdings die Referenz haben obwohl ich die Signature mit InterfaceB nicht aufrufe!

Thema: [gelöst] Fehlende Referenz für Überladene Methode die jedoch nicht aufgerufen wird (CompileError)
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hi zusammen,

ich habe ein kleines Problem und versteh das Verhalten des .NET Compilers nicht ganz. Folgendes Szenario:


//AssemblyB
public interface InterfaceB
{
    int Add(double a, double b);
}


//AssemblyA
public interface InterfaceA
{
    int Add(int a, int b);

    int Add(InterfaceB b1, InterfaceB b2);
}


//AssemblyC
static void Main(string[] args)
{
    object a = new object();
    InterfaceA b = (InterfaceA)a;
    b.Add((int)1, (int)2);
}

Der Code in Main macht zwar so keinen Sinn ich wollte nur das Problem darstellen. In AssemblyC habe ich natürlich nur eine Referenz auf die AssemblyA weil ich ja das Interface dort adressiere. Das Problem nur ist das eine Überladung der Methode existiert in der ein Interface aus AssemblyB verwendet wird. Das führt dazu das ich einen Compilerfehler bekomme.
Fehler
The Type InterfaceB is defined in an assembly that is not referenced. You must add a reference to assembly AssemblyB.
Ich muss eine Referenz auf AssemblyB hinzufügen damit der Code compiliert obwohl ich keinen Typen dieses Assemblies direkt referenziere! Wieso erkennt der Compiler nicht die genaue Überladung bzw. wieso braucht er eine Referenz auf eine Überladung die ich im Code doch gar nicht referenziere?

Gibt es eventuell eine Lösung den Compiler zu übereden ohne eine Referenz auf AssemblyB hinzuzufügen und auch ohne die Signaturen zu ändern?

Thema: Deploying VS2010 PlugIn for All Users
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Ich hab das ganze jetzt mit dem Visual Studio Installer gelöst. Dort kann man alles sehr gut Konfigurieren.

Thema: Deploying VS2010 PlugIn for All Users
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Ich hab ein Problem mit dem Installieren eines VS2010 PlugIn mit dem Visual Studio Installer (vsi). Mein Plugin habe ich wie How to: Package Components to Use the Visual Studio Content Installer beschrieben in eine vsi "konvertiert". Das Problem ist das es auf meiner Maschine das Addin auf meine (Share Home Drive) ..\Visual Studio 2010\Addins legt. Wenn ich diese dort ausführe bekomme ich immer einen Unkown Error (80131515). (Den Folder hab ich unter Tools im VS hinzugefügt.

Wenn ich das Addin allerdings in einen Lokalen Folder kopiere (ohne vsi) C:\Documents and Settings\adloma16\Application Data\Microsoft\VisualStudio\10.0\Addins dann funktioniert das PlugIn wie gewollt.

1. Frage: Weiß einer von euch wie ich dem VSI installer im vscontent File z.B. sagen kann das er das File für alle User installieren soll, dieser Pfad ist m.E. immer Lokal, sollte daher funktionieren.

Ich weiß zwar warum das PlugIn vom Share nicht geladen werden kann und auch wie man das beseitigt Run over a network share. Aber dazu müsste ich die devenv.exe.config auf den Target Maschines anpassen und das gefällt mir nicht!

Thema: Dynamisches File Template für VS2010
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Danke dir.

Thema: Dynamisches File Template für VS2010
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Zitat
Warum nicht ein T4 Template?

Weil ich einfach nicht wusste das ich damit dynamisch Code erzeugen kann. Hast du eventuell ein Link auf ein gutes Tutorial?

Thema: Dynamisches File Template für VS2010
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo zusammen,

ich möchte gern ein dynamisches File Template für das VS2010 erstellen. Ich komme allerdings nicht mit dem normalen File Templates aus, das heißt ich müsste das irgendwie als PlugIn implementieren können damit ich dynamisch Code zum File Template hinzufügen kann.

Es geht darum das ich immer wieder Tests schreiben muss (z.B. Mocking Tests) und dort gern z.B einfach in einem Dialog die zu testende Klasse angeben möchte. Diese parse ich dann mit Reflection bzw. Cecil-Mono. Ein Anwendungsfall ist z.B. das ich schon mal für alle Interface-Parameter die im Konstruktor der zu testenden Klasse angegeben werden sollen Mock Objekte erstelle und diese im SetUp (NUnit) initialisiere (mit Hilfe von CodeDOM). Das würde mir schon mal viel Arbeit abnehmen. Bis dahin ist ist das eigentlich mehr oder weniger einfach umsetzbar.

Nun will ich das ganze aber gern ins Studio (VS2010) integrieren. Quasi so dass ich auf "Add"->"New Item" klicke und dann im Item Template Dialog einen Reiter mit z.B MockingTest habe (1.Variante). Dort sollte dann ein Dialog aufgehen in dem ich die zu mockende Klasse angebe sowie die Assembly in der sich die Klasse befindet. Anschließden den Code generieren und in das neu zu erzeugende File schreiben. Leider habe ich noch keine PlugIn's bzw. Extensions für das VS2010 geschrieben, und weiß nicht ob das so überhaupt möglich ist. Eventuell geht auch eine rechts-Klick auf den Folder im SolutionExplorer/SolutionNavigator und dort dann "Add Mock Test" (2.Variante).

Meine Frage also kennt einer von euch ein gutes Tutorial um entweder die 1.Variante oder aber die 2.Variante umzusetzen?

Oder vielleicht eine noch bessere Idee mein Vorhaben umzusetzen?

Grüße Rollerfreak2

Thema: Method exited event
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich habe es jetzt mit dem UNit Addin (EventListener) gemacht. Da kann man sich benachichtigen lassen wenn ein Test finished ist. Da hätte ich auch eher drauf kommen können, dachte nur nicht das NUnit sowas anbietet.

Thema: Method exited event
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Für ein statischen MockRepository Wrapper. So einen gibt es schon von Rhino.Mocks jedoch müssen dort alle Expectations manuell verifiziert werden. Das ist nervig und Fehleranfällig. Nun habe ich das vorerst mit einem Decorator gelöst der eine Art Transaction aufzieht die IDisposable implementiert und die dann im Dispose alle erzeugten Mocks verifiziert. Dazu muss also in jedem Test einfach ein using Statement eingefügt werden und alle manuellen verifiy entfallen.

Wenn ich nun aber die Möglichkeit hätte bei verlassen der Methode einen call zu bekommen, könnten ich diese Mechanismus völlig ohne das der Test schreiber etwas machen muss implementieren. Quasi mit Hilfe des Call Stacks und des calls halt.

Thema: Method exited event
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

PostSharp kenne ich, aber einen Aspekt will ich eigentlich nicht programmieren, weil der dann an jeder Methode ran müsste. Ich suche einen allgemeinen Mechanismus bei dem ich mich auf das verlassen der Methode von der die Statische Methode gecalled wurde registrieren kann.

Thema: Method exited event
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo zusammen,

habe eine allgemeine Frage bezüglich meines Vorhabens. Ich möchte benachtigt werden wenn eine Methode verlassen wird. Dies soll jedoch "automatisch" passieren. Bsp.


public void SomeMethod()
{
    StaticClass.DoSomething();
}

public static class StaticClass
{
    public static void DoSomething()
    {
        //hier komme ich z.b. an den StackFrame ran, daher bekomme ich raus von
        //welcher Methode ich gerufen wurde, es gibt aber kein event wenn dieser
        //SatckFrame zerstört wird
    }
} 

Am StackFrame habe ich nix gefunden. Ist das irgendwie mit Reflection möglich bzw. gibt es überhaupt eine Möglichkeit sich an sowas dran zu hängen?

Thema: Testmethode mehrere Male aufrufen mit mehreren Daten(Test)Quellen?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)


Hallo zusammen,
dazu gibt es auch das Values Attribut in Verbindung mit dem Sequential Attribut und dem Combinatorial Attribut.

Thema: Regex für country isocode? de-de
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hi herbivore,

wie du bereits geschrieben hast habe ich es nicht explizit erwähnt und natürlich gebe ich dir recht das sowas nicht fest im Code stehen darf.

Zitat
Wenn der String den Regex entspricht, werden Daten in der Sprache geladen, anonsten soll eine Invalid Format Response gesendet werden.

Aus diesem Text entnehme ich jedoch das der Server die Daten dann in der entsprechenden Sprache vorliegen hat bzw konvertiert, d.h. der richtige weg ist hier m.M.n. das System nach allen Kulturen zu fragen die vorliegen und dann dagegen zu validieren.

Alle verfügbaren Kulturen laden.

Eventuell hab ich aber auch das Zitat falsch interpretiert, dann wird dieser weg so nicht funktionieren.

Thema: Regex für country isocode? de-de
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hi #coder#,

ich denke allein mit dem Regex ist es nicht getan. Der müsste ja sozusagen alle existierenden Sprachen kennen, das heißt nur zu prüfen ob 2 Buchstaben von einem "-/_" gefolgt von 2 Buchstaben dem gegeben String entsprechen reicht aus meiner Sicht nicht aus. Wie ich das sehe benötigt du eine Liste mit allen erreichbaren Sprachen und dann validierst du dagegen!

Thema: Regex für country isocode? de-de
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hi #coder#,

für was brauchst du das? Ich denke das ist nicht der richtige Weg auch ohne die genaue Aufgabenstellung zu kennen!

Thema: @Override wie in Java
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Runnable,

in C# gibt es 2 Möglichkeiten eine Interface Methode zu definieren. Explizit und Implizit. Bei der ersten gibt es einen Compile-Fehler in deinem beschriebenen Szenario, im Falle du implementiertst die Methode implizit natürlich nicht weil es dann einfach eine reine öffentliche Methode der Klasse ist!

Thema: [erledigt] SortedDictionary, IComparable und ContainsKey
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hi squdwuschel,

die Antwort auf

Zitat
Wobei natürlich wirklich die Frage ist, warum du nicht einfach ein Hashset verwendest, wenn Key und Value eh immer gleich sind.
bleibst du uns trotzdem schuldig.

Thema: Länge eines strings und die Ermittlung der Breite
Am im Forum: GUI: WPF und XAML

Hi brev,

ich nehm dazu immer die API von GDI32 zur Hilfe. Hier am Beispiel der Breite des Strings.


[DllImport("gdi32.dll")]
private static extern bool GetTextExtentPoint(IntPtr hdc, string lpString, int cbString, ref Size lpSize);

/// <summary>
/// Gets the width of the string by parsing the bitmap file.
/// </summary>
/// <param name="graphics">The graphics object to determine the width of the string.</param>
/// <returns>The width of the string in pixel.</returns>
private int GetStringWidth(Graphics graphics)
{
    return MeasureText(graphics, this.Text, this.Font).Width;
}

/// <summary>
/// Measures the text and return the size.
/// </summary>
/// <param name="graphics">The graphics.</param>
/// <param name="text">The text of the label.</param>
/// <param name="font">The font of the label.</param>
/// <returns>The size object to indicate the width of the string.</returns>
public static Size MeasureText(Graphics graphics, string text, Font font)
{
    if (graphics == null)
    {
        throw new ArgumentNullException("graphics");
    }
    if (text == null)
    {
        throw new ArgumentNullException("text");
    }
    if (font == null)
    {
        throw new ArgumentNullException("font");
    }
    
    // get the Graphics-Handle
    IntPtr hdc = graphics.GetHdc();
    // set the font
    IntPtr fontOld = Gdi32.SelectObject(hdc, font.ToHfont());

    Size measureSize = Size.Empty;
    GetTextExtentPoint(hdc, text, text.Length, ref measureSize);
    // delete handles
    Gdi32.DeleteObject(Gdi32.SelectObject(hdc, fontOld));
    graphics.ReleaseHdc(hdc);

    return measureSize;
}

.....
.....
float width = this.GetStringWidth(e.Graphics);

Hier in dem Beispiel ist Text und Font innerhalb der Klasse als Member deklariert. Wie du das bei dir machst ist dir überlassen!

Thema: Liveupdate für ein Programm das vom Netzlaufwerk gestartet wird
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Jetzt mal ne ganz blöde Frage wieso brauchst du das überhaupt. Wird denn die neue Version woanders als die alte installiert? Sonst ist das m.E. nach gar nicht nötig, weil die Verknüpfung ja immer noch auf das selbe Ziel verweist, halt nur auf eine "neue" Version.

Thema: Fehlermeldung bei privaten Konstruktor
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hi delphiking1980,

Ich denke das liegt daran das du den Namespace genauso genannt hast wie deine Klasse und der Compiler nicht dazwischen unterscheiden kann.

Thema: Problem mit Windows-Installer: Anwendung startet nicht
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Zitat
Wenn ich nun versuche meine Anwendung zu starten (auch als Admin probiert) passiert einfach nichts.
Zitat
Ich glaube ich habe das Problem. Mein Logger versucht in diesem Ordner seine Log-Datei anzulegen. Dieses Recht hat er als NichtAdmin aber nicht.

Irgendwie passt das aber nicht zusammen, wenn du die Anwendung doch mit Admin Rechten gestartet hast, dann hätte sie doch laufen müssen, oder übersehe ich etwas?