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 Geaz
Thema: Politik trifft Git - Umbenennen des Master Branches
Am im Forum: Szenenews

TIL; Danke für die Info! Mit diesem Hintergrund macht es Sinn.

Thema: Politik trifft Git - Umbenennen des Master Branches
Am im Forum: Szenenews

Macht es wirklich so einen großen Sinn jetzt überall das Wort "master" zu ersetzen? Das Wort an und für sich ist ja nicht negativ belastet. Ich denke jetzt nur an den "Master" als akademischen Grad, oder den "Meister" in der Ausbildung. Wollen wir dort die Begriffe auch alle tauschen?

Bei master/slave ist es doch nur "schlimm", da diese Begriffe hier zusammen auftreten. Da wäre die Umbenennung gar nicht so blöd, aber bei Git?

Thema: Microsoft übernimmt GitHub
Am im Forum: Szenenews

https://www.shodan.io/host/52.167.219.168

Thema: Microsoft übernimmt GitHub
Am im Forum: Szenenews

Das tollste daran ist, dass diese Leute vor Microsoft "flüchten" wollen und dann auf eine Platform ziehen die auf Azure gehostet ist....

Thema: Stacktrace unvollständig vom Fremdsystem
Am im Forum: Grundlagen von C#

Kannst du relativ einfach testen. Mach einfach:

var x = X.Where(p => p.Nr == row.Nr).ToList();

Dann wird es direkt in der Zeile knallen wenn row == null ist.

Thema: Stacktrace unvollständig vom Fremdsystem
Am im Forum: Grundlagen von C#

Ganz kurz, um es deutllich zu machen:

var x = X.Where(p => p.Nr == row.Nr);

Wird zunächst erstmal nicht ausgeführt. Es ist zu diesem Zeitpunkt erstmal eine Expression. Erst wenn auf die Liste tasächlich zugegriffen wird, wird die Liste materialisiert.

Das würde z.B. durch ein .ToList() oder .ToArray() passieren, oder aber durch ein Durchlaufen der Liste wie in deinem Beispiel z.B.:

foreach (var item in x)  // NULL-Ref-Exception

Es macht also durchaus Sinn, dass der Fehler in dieser Zeile auftritt, da erst dort deine Expression von einer Zeile vorher ausgeführt wird. Da dort deine "row" null ist, bekommst du in der foreach Zeile einen Fehler.

Grüße

Thema: Wiederkehrende Tasks in Datenbank speichern und ausführen lassen
Am im Forum: Rund um die Programmierung

Im Prinzip kannst du es dir doch recht einfach machen. So wie ich das verstehe ist der Code ja komplett in deiner Hand. Deswegen würde ich einfach das IFunction Interface erweitern.


public interface IFunction
{
    Guid ID { get; }
    string Description { get; }
}

public interface IParamFunction<T> : IFunction
{
   Task PerformAsync(T parameters);
}

public interface INonParamFunction : IFunction
{
    Task PerformAsync();
}

Eine Implementierung einer (nicht ganz ernst gemeinten) Funktion könnte dann zum Beispiel so aussehen:

public class ThrowExceptionFunction : IParamFunction<string>
{
   public Guid ID => new Guid("f4f8d277-e59c-459a-a52c-d547b0b11202"); //Die GUID ist natürlich für jede Function neugeneriert!
   public string Description => "Throws an exception";
   public Task PerformAsync(string message) => throw new NotImplementedException(message);
}

In deiner Datenbank speicherst du nun zu jedem Task lediglich noch die ID der Funktion.
Dein "Scheduler" hält eine Liste von Instanzen aller IFunctions (List<IFunction> functionList).
Sobald die Zeit zur Ausführung gekommen ist, benötigst du nur noch ein simples:

var function = functionList.SingleOrDefault(f => f.ID == task.ID);
if(function == null) //DO SOMETHING
else function.PerformAsync(parameters);

Wie du siehst umgehe ich die Factory indem ich die Parameter der PerformAsync Methode übergebe und nicht beim initialisieren der Klasse.

Das serialisieren/deserialisieren deiner Parameter und den check, ob die aktuelle Funktion Parameter reinbekommt oder nicht, habe ich jetzt mal weggelassen. Sollte aber eigentlich keine große Hürde darstellen.

So könnte man es jedenfalls ziemlich einfach umsetzen. Und es wären bei neuen Funktionen keine Anpassungen notwendig.

Grüße

Thema: Live Review mit dem .NET Team
Am im Forum: Szenenews


Genau darauf wollte ich hinaus. Ein Pull Request schließt, in Github, eine Codeänderung ein. Deswegen fand ich es nicht glücklich gewählt. Und das der Vorschlag mächtig ist sehe ich genauso. Habe ja auch nichts Gegenteiliges geschrieben. :)
;

Thema: Live Review mit dem .NET Team
Am im Forum: Szenenews

Danke für die interessante Nachricht!

Zitat von Abt
Ein Mitarbeiter von Intel hat einen sehr mächtigen und eindrucksvollen Pull Request an das .NET Repository geschickt:

Hört sich an als wäre es schon implementiert :)
Also nur zur kurzen Klarstellung: Es wurde ein API Vorschlag veröffentlicht. Sollte man sich für diesen Vorschlag aussprechen, würde die eigentliche Implemetierung beginnen. Und wie Fei Peng, der Ersteller des Vorschlags, richtig schreibt:
Zitat
Implementing all the intrinsics in JIT is a large-scale and long-term project, so the current plan is to initially implement a subset of them with unit tests, code quality test, and benchmarks.

Grüße
Geaz

Thema: sharpDox - Ein Dokumentationstool für C# | Version 1.2
Am im Forum: Projekte

Hallo zusammen,

je mehr ich mir docFX anschaue, desto mehr frage ich mich, ob es überhaupt noch einen Bedarf an sharpDox gibt.

DocFX macht fast alles was auch sharpDox macht und hat mit Microsoft einen großen Player hinter dem Projekt.

Ich bin momentan stark am überlegen, ob es überhaupt noch Sinn macht an sharpDox festzuhalten oder es vielleicht sinnvoller ist die Energie in DoxFX zustecken, um dort eventuell fehlende Features als Plugins/Templates umzusetzen.

Wie seht ihr das?

Beste Grüße

Thema: coreArgs - Ein Parser für Kommandozeilen Argumente unter .NET Standard
Am im Forum: Projekte

Zitat von Abt
Code Coverage wird nicht von Test-Frameworks errechnet, sondern von der Suite drum herum - in Deinem Fall zB. Visual Studio.

Das ist korrekt, deswegen habe ich mich ein wenig über deine Vorschläge gewundert. Weil ich sprach von Code Coverage und du gibts mir dann zwei Testframeworks :)
Zitat von Abt
dynamic macht für mich hier kein Sinn.
Parameter, die ich intern verarbeiten will, hab ich doch in den Options. Ich sprech doch keine Parameter an, die ich nicht vorher festlege :baby:
Ist auch ein untypisches verhalten, denn eine CLI sollte einen Fehler werfen, wenn ein Parameter nicht existiert.

In "normalen" Fällen ist das korrekt. Aber wie erwähnt, war es nunmal eine Anforderung für eins meiner Projekte (warum es dort Sinn macht kann ich dir gerne per PM schreiben, da es hier den Rahmen sprengen würde). Und genau für diese Anforderung habe ich halt keine Bibliothek gefunden, weshalb diese hier entstand.

Grüße

Thema: coreArgs - Ein Parser für Kommandozeilen Argumente unter .NET Standard
Am im Forum: Projekte

Zitat von Abt
Hat Microsoft schon etwas länger umgesetzt Microsoft.Extensions.CommandLineUtils und wird für .NET Core Templates verwendet.

Super, danke! Das kannte ich tatsächlich nicht. Auf die schnelle habe ich jetzt nur das hier gefunden: https://msdn.microsoft.com/de-de/magazine/mt763239.aspx

Hast du dazu zufällig noch mehr Doku? Wäre interessant, ob sich meine Punkte damit umsetzen lassen. Wenn ja, dann war es wenigstens eine gute Übung :)

[EDIT] Sieht mir beim Überfliegen nicht so aus, als könnte ich damit das 'dynamic' umsetzen...
Zitat von Abt
NUnit und XUnit überstützen beide bereits .NET Core mit csproj.

Inklusive Code Coverage (um die es mir geht)? Dazu hatte ich bei beiden nichts gefunden. Es ging mal mit OpenCover, aber wohl nicht mehr seit der Umstellung auf .csproj.
Zitat von Abt
Ansonsten sei noch gesagt, dass mich Dein Code und Deine Options sehr an https://github.com/gsscoder/commandline erinnern, das sehr bekannt ist.
Wirkt so, als ob Du Dich hier etwas mehr als nur inspirieren lassen hast... ;-)

Das Options Attribut habe ich von den Parametern her vom CommandLineParser abgeschaut, da ich den sonst nutze. Er jedoch halt nicht die anderen Punkte die ich benötige unterstützt. Aber mein Code erinnert dich daran? Das wäre echt ein Zufall, weil ich mir deren Code genau null mal angeschaut habe :D

Beste Grüße

Thema: coreArgs - Ein Parser für Kommandozeilen Argumente unter .NET Standard
Am im Forum: Projekte

Hallo zusammen!

Im Rahmen eines aktuellen Projektes benötigte ich einen Parser für Kommandozeilen Argumente.
Davon gibt es ja so einige, jedoch konnte ich keinen finden der alle meine Anforderungen erfüllen konnte:

  • Unterstützung für .NET Core
  • Parsen von bekannten Argumenten in definierte Properties
  • Parsen von unbekannten Argumenten als ein 'dynamic' Objekt (welches keine Exception wirft beim Zugriff von nicht definierten Properties)
  • Parsen von nicht gültigen Optionen in eine 'Mülleimer' Property


Deswegen habe ich das Ganze einfach mal als Übung genommen, um mein erstes Projekt für .NET Core umzusetzen. Zudem dachte ich, dass es vielleicht dem ein oder anderem auch hilft und wollte es einfach mal hier reinstellen :)

Zufinden ist das Projekt bei Github. Die Testabdeckung sollte recht gut sein, da ich es Test-Driven entwickelt habe (Leider habe ich bisher kein Tool für Testabdeckung für .NET Core Projekte gefunden - nur für das "alte" .json Projektformat).

Muss noch das ein oder andere im Code dokumentieren und überarbeiten, aber das meiste ist getan.

Die README sollte die kleine Bibliothek recht gut erklären. Und verdeutlichen was ich mit dem ein oder anderem Punkt oben meinte :)

Beste Grüße
Geaz

Thema: sharpDox - Ein Dokumentationstool für C# | Version 1.2
Am im Forum: Projekte

@C4RL0: Entschuldige die sehr späte Antwort. Hast du das Problem inzwischen gelöst?

Hallo an alle!

Langsam aber sicher macht sich das .net Core Framework breit und ich liebäugle immer mehr mit einer Portierung von sharpDox. Nun habe ich mir viele Gedanken gemacht und würde diese Gelegenheit gerne nicht nur dazu nutzen eine einfache Portierung zu erstellen. sharpDox ist nun schon einige Jahre alt und ist seitdem immer mehr gewachsen. Anfangs war es ein "Proof of Concept" und ist bis heute zu einem recht nützlichem Tool herangewachsen.

Für das neue Framework würde ich sharpDox gerne einem kompletten Refactoring unterziehen und dabei vorallem auf eine gute Dokumentation wert legen. Dadurch erhoffe ich mir mehr Pull Requests in der Zukunft. Gute Dokumentation = Mehr Entwickler verstehen den Code und beteiligen sich an dem Projekt.

Zudem habe ich mir überlegt, ob es nicht sinnvoll wäre sharpDox nicht um Codeprojekte "kreisen" zu lassen. Sondern stattdessen sharpDox vor allem zu einem Dokumentengenerator zu machen. sharpDox soll in erster Linie jegliche Art von Dokument (PDF, Html, epub etc.) aus einer Sammlung von Markdowns erstellen können (ähnlich z.B. Gitbook).

Dazu würde sharpDox dann wieder pluginfähig sein. Diese Plugins könnten dann eigene Direktiven erstellen, die in den Markdowns verwendet werden können. Eine Direktive würde dann z.B. eine C# Lösung einlesen und eine Code Dokumentation in das Endprodukt inkludieren.

Was haltet ihr davon? Was sind eure Schmerzpunkte, die ihr gerne in einer neuen Version gelöst sehen würdet?

Danke und Grüße
Geaz

Thema: sharpDox - Ein Dokumentationstool für C# | Version 1.2
Am im Forum: Projekte

Habe mal eine neue Version veröffentlicht. Mit dabei ist das neue Code Tab, falls im HTML Exporter 'Show Code' aktiviert wurde.

Verlinken von Typen etc. im Code habe ich dann für die nächste Version auf der Agenda :)

Grüße
Geaz

Thema: sharpDox - Ein Dokumentationstool für C# | Version 1.2
Am im Forum: Projekte

An .NET Core werde ich dran bleiben, da ich die von dir genannte Lösung interessant finde. Zudem fände ich es einfach super wenn sharpDox unter Linux laufen würde.

@Palladin007:

Ich habe mal etwas angefangen (siehe Anhang). Ich habe es nun so eingebaut, dass bei (1) zwischen der Doku und dem Code gewechselt werden kann. Zudem siehst du bei (2), dass Hervorhebungen der Zeilen möglich sind. Die Idee ist, dass direkt aus der Doku von einem Member aus zu der entsprechenden Stelle im Code gesprungen werden kann. Diese wird dann auch hervorgehoben wie bei (2). Das Ganze ist dann auch verlinkbar.

Zudem möchte ich, dass der Dateinamen ein direkter Link zu z.B. Github ist, falls eine SCM Base Url angegeben wurde.

Thema: sharpDox - Ein Dokumentationstool für C# | Version 1.2
Am im Forum: Projekte

@Abt: Was fehlt dir denn an der aktuellen Konsolenanwendung? Die sollte doch auch bereits in einem CI System integrierbar sein. Oder ging es dir explizit, um eine Konsolenanwendung die unter .NET Code läuft?

Thema: .net Core -- System.Drawing?
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Ich habe einiges aus der System.Drawing genutzt, um PNGs zu zeichnen.
Für die .NET Core Version müsste ich dann vermutlich den PNG Support für Diagramme rausnehmen.

Danke für die Infos!

Thema: .net Core -- System.Drawing?
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Habe mir einmal .NET Core angeschaut. Ich fände es super wenn sharpDox unter .NET Core laufen würde. Der größte Teil von sharpDox sollte kein Problem machen. Jedoch scheint es, dass ich den UML Diagramm Teil nicht umgesetzt bekomme, da viele Funktionen aus System.Drawing bisher nicht in .NET Core drin sind. Sollten dir da andere Informationen zu bekannt sein wäre ich natürlich sehr dankbar darüber :)

Thema: sharpDox - Ein Dokumentationstool für C# | Version 1.2
Am im Forum: Projekte

Bisher plane ich da noch nichts. Werde es mir aber mal anschauen. Denke nicht, dass das zu aufwendig wird.

Momentan sitze ich an einer Visual Studio Extension, um sharpDox direkt aus einem Projekt heraus starten zu können. Ohne ein extra Tool für die Dokumentation öffnen zu müssen.

Thema: sharpDox - Ein Dokumentationstool für C# | Version 1.2
Am im Forum: Projekte

Hallo Palladin,

bisher wurde sharpDox nur mit C# .NET Programmen getestet.
Da sharpDox inzwischen auf Roslyn aufbaut sollte VB.NET kein großes Problem mehr darstellen, aber wurde bisher noch nicht getestet. Deshalb kann es dort durchaus zu Fehlern kommen.

Werde mir dies für das nächste Release vornehmen.

Thema: sharpDox - Ein Dokumentationstool für C# | Version 1.2
Am im Forum: Projekte

Version 1.1 ist online!

Neben der Umstellung auf Rosyln habe ich, wie oben erwähnt, auch die HTML Ausgabe auf angular2 umgestellt.

Grüße

Thema: sharpDox - Ein Dokumentationstool für C# | Version 1.2
Am im Forum: Projekte

Hallo an alle!

Zunächst einmal möchte ich mich bei allen bedanken, die in den letzten Jahren immer wieder Feedback gegeben haben! Ohne Euch wäre das Tool nicht das, was es nun ist. Ich finde es immer wieder spannend, mir die Entwicklung von sharpDox hier im Thread anzuschauen :)

Ich bin zur Zeit fleißig am basteln. Komme zwar nicht mehr so häufig dazu, wie ich gerne würde, aber es geht.

sharpDox ist inzwischen komplett auf Roslyn als Analysewerkzeug umgestiegen. Diese Änderung wird Teil der nächsten Veröffentlichung sein und hoffentlich nicht auffallen ( Stichwort: Bugs :) ).

Ansonsten habe ich erneut die HTML-Dokumentation überarbeitet. Sie sieht zwar aus wie vorher, jedoch wurde das Fundament erneuert. Es wird nun komplett auf Angular 2, zusammen mit einem eigenen StateContainer gesetzt - wen es interessiert: ähnlich Redux, jedoch mit weniger Boilerplate-Code.

Dadurch sollte nun ein wirklich einfaches Templating möglich sein. Was den ein oder anderen vielleicht freuen wird :)

Außerdem habe ich den ein oder anderen Bug beseitigt und in der UI ein paar Dinge verändert. Zudem werde ich in das Release die erste Unterstützung für WebAPI Dokumentationen einbauen.

@nikeee: Sollten deine Anforderungen sich nicht über ein Build-Skript bewerkstelligen lassen?

Beste Grüße
Geaz

Thema: Lohnt sich das Dotnetpro-Abo?
Am im Forum: Buchempfehlungen

Oder, falls du in der Branche arbeitest, abonniere es über den Arbeitgeber :)

Wir haben hier auch ein Abo und dann wandert die Ausgabe von Tisch zu Tisch. So hat jeder was davon.

Grüße

Thema: Programm geht nicht mehr
Am im Forum: Grundlagen von C#

Also das du keine Fehlermeldung bekommst wundert mich nicht (siehe Post vorher).

Aber ich wette dein Problem liegt damit zusammen, dass du nicht alle .dlls mit kopierst. Liege ich da richtig, dass du nur die .exe verschiebst? Dann wird er die NHotkey.Wpf, die du im MainWindow nutzt, nicht finden.

Grüße

Thema: Database-Explorer
Am im Forum: Projekte

Ich arbeite täglich mit SharePoint und CRM. Würde mich also freuen helfen zu können!

Grüße

Thema: Outlook Email per Drag & Drop in Silverlight ziehen
Am im Forum: GUI: WPF und XAML

Bitte entschuldige die späte Antwort!

Ich habe das Ganze inzwischen per XBAP umgesetzt und die Lösung ist uns auch produktiv im Einsatz :)
Das wichtigste an der Lösung ist die angehängte Datei (habe ich selber von http://www.codeproject.com/Articles/28209/Outlook-Drag-and-Drop-in-C).

Das DropEvent sieht dann etwa so aus:


         public void Drop(object sender, DragEventArgs e)
        {
                if (e.Data.GetDataPresent("FileGroupDescriptor"))
                {
                    var dataObject = new OutlookDataObject(e.Data);
                    var fileNames = (string[])dataObject.GetData("FileGroupDescriptor");
                    var fileStreams = (MemoryStream[])dataObject.GetData("FileContents");
                    //HIER WAS DAMIT MACHEN
                }
            }            
        }

Du bekommst für jede Datei einen Eintrag im "fileNames" Array und einen im "fileStreams" Array.
Dann kannst du damit machen was du willst :)

Wichtig ist, dass die XBAP Anwendung "Full-Trusted" ist. Sonst klappt das Drag&Drop nicht!

Grüße
Geaz

Thema: sharpDox - Ein Dokumentationstool für C# | Version 1.2
Am im Forum: Projekte

Kleines Update online! Die GUI Probleme und ein Problem mit dem Parser sollten behoben sein.

Grüße

Thema: sharpDox - Ein Dokumentationstool für C# | Version 1.2
Am im Forum: Projekte

Danke für die Info! Werde ich fixen!

Thema: sharpDox - Ein Dokumentationstool für C# | Version 1.2
Am im Forum: Projekte

Danke für die Info! Ist gefixt!