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 Cornflake
Thema: Docker Container mit Traefik in Dev und Prod verwalten
Am im Forum: Web-Technologien

Thx Abt
Ok dann wäre Kubernetes oder k3s der nächste Schritt, damit die Umgebung einigermaßen gescheit für die Zukunft wird.
Hast du da evtl. einen guten Einstiegs Link der etwas auf meine Situation passt (Visual Studio, GitLab, 2 Stages, HTTPS öffentliches Zertifikat, Updatescript)?
Fühle mich in dem Bereich noch ziemlich als Anfänger, auch wenn ich schon froh bin über Traefik und mit Docker Compose die Grundversion zum Laufen bekommen zu haben.

Thema: Docker Container mit Traefik in Dev und Prod verwalten
Am im Forum: Web-Technologien

Hallo Abt

Danke für deine Antwort.
Naja es ist ja auch keine große Umgebung. Nur ein Server.
Mit Kubernetes habe ich noch gar nichts gemacht. Ich vermute, dass Kubernetes erst bei mehreren Servern und umfangreicheren Settings benötigt wird.

Auf dem Entwicklungs PC entwickle ich unter Visual Studio mein Docker Projekt und debugge es mit Docker Desktop ohne öffentliches Zertifikat. Wenn lokal alles läuft, exportiere ich es und lade die webseite.tar.gz Image Datei auf den Server.
Auf dem Server läuft Linux und Docker. Dort stoppe ich aktuell von Hand den Container und lösche dann Container und Image. Danach lade ich die Image Datei in den Docker Hub und starte das Image als Container. Danach läuft alles auf dem neuesten Stand mit öffentlichem Zertifikat durch Traefik.
Zukünftig soll es die zwei Stages Dev und Prod geben. Aber ich habe nunmal nur einen einfachen Server und keine Serverfarm mit mehreren Clustern etc.

In Zukunft wäre noch ideal, nachdem ich den Code, per Git Commit auf einen GitLab Account geladen habe, dann GitLab den Docker Container auf den neuesten Stand bringen würde, mit kompilieren, tests, als Image packen, altes Image sichern, und mit Freigabe als Produktiv Version, Container starten, etc.

Wegen docker commit bzw. docker tag. Ist dass dann eine richtige Kopie des Images oder nur so ein flaches Container Abbild mit anderem Namen, dass trotzdem auf das alte Image nur mit zusätzlicher "Zwiebel"-Schicht verweist?
Für mich sind die Images gewissermaßen eine calc.exe während der Container eine laufende calc.exe mit eingegebenen Werten und Verlauf darstellt. Wenn der Server neu starten muss, wird vom Image wieder neu der Container ohne die alten Werten geladen. Daher die calc.exe neu geöffnet. Volumes der Container persistieren dann nur die Daten zwischen den Containerausführungen und können einen Zugriff ausserhalb des Container ermöglichen. Sehe ich das richtig?

Thema: Docker Container mit Traefik in Dev und Prod verwalten
Am im Forum: Web-Technologien

Hallo Leute

Für die Verwaltung von zwei Docker Container Webseiten unter Traefik in Produktiv und Development bräuchte ich zwei Tipps.
Zum Einen, wie die docker-compose.yml Datei für die Verwaltung der beiden Webseiten Container zu konfigurieren ist.
Zum Anderen, wie ich ein Script schreiben kann, dass automatisch aus der aktuellen development Image Version einen neues produktiv Image kopiert und das alte produktiv Image archiviert. Vmtl muss ich erst Thema 2 kapieren, bevor Thema 1 funktioniert.

# Thema 1 docker-compose.yml
Aktuell läuft auf meinem Linux Server ein Docker Hub auf dem eine docker-compose.yml Datei folgende Zusammenstellung erzeugt.
Es wird ein Traefik Image geladen, dass sich für den https Zugang ein letsencrypt Zertifikat holt.
Unter einer speziellen URL wird dann mein Webseiten Image als Container zur Verfügung gestellt.
Zukünftig soll es eine Kopie als Produktiv Version von diesem geben. Dann kann ich Features im development Image testen und das produktiv Image nur wenn alles passt aktualisieren. Ich konnte schon rausfinden, dass ich mit profiles:["prod"] z.B. ein produktiv Profil in Docker Compose definieren kann. Aber ich vermute, ich brauche unterschiedliche Ports für den development Container, wenn ich im produktiv Container den Port 443 verwende.

Daher folgende Docker Szenario soll es geben:
1. Traefik Container ist von außen erreichbar.
2. Produktiv Webseiten Container ist unter der URL https://www.domain.de/webseite erreichbar.
3. Development Webseiten Container ist unter der URL https://www.domain.de/dev/webseite erreichbar.

Mein Problem beide Container sollen unter dem Port 443 erreichbar bleiben nur die Url soll anders sein. Ich habe dazu auch schon unterschiedliche "traefik.http.routers.webseite.rule=" Werte konfiguriert.
Gibt es zu diesem Aufbau evtl. schon Tutorials oder Beispiel Compose Dateien?

# Thema 2 Kopierscript
Das Script soll idealerweise folgende Schritte durchführen:
1. Produktiv Container stoppen
2. Produktiv Image mit aktuellem Datum in Archiv Ordner verschieben
3. Development Image kopieren als neues Produktiv Image
4. Produktiv Container starten.

Ich hoffe ihr habt so etwas schon mal umgesetzt und könnt mir evtl. ein paar Tutorial Links senden.
Unter Google habe ich bisher nichts gefunden, dass zu meinem Fall passt oder ich verstanden habe. Es gibt unter Docker ja export und save sowie load und import Befehle. Aber wie ich eine Kopie vom webseite:latest Image mit anderem Namen z.B. webseite_prod:latest erzeuge habe ich nicht verstanden.

Grüße Cornflake

Thema: Blazor: buttonclick soll html select value mit übergeben
Am im Forum: Web-Technologien

Habs hinbekommen :)
@MrSparkle Danke für den Link. Bin in diesem Angularbereich noch Anfänger. Bin eher in der Windows-Forms Welt unterwegs.

Hier die Lösung:
Zum Stichwort Two-Way Data Binding.
Im Codeblock wird eine Variable benötigt, die den aus der html Dropdown Liste ausgewählten Wert aufnehmen kann. Diese Variable wird mit @bind an das Control gebunden. Danach kann diese Variable auch im onclick angegeben werden.


@page "/konfigurationen"

<select name="Konfigliste"  @bind="selectedKonfig" >
        @foreach (var konfig in konfigs)
        {
            <option value="@konfig.Name">@konfig.Name</option>
        }
    </select> 

<button class="btn btn-primary" @onclick="@(e=> runKonfig(e, selectedKonfig))">Ausführen</button>

@code 
{
private string selectedKonfig = "";    //Neu !!!

private void runKonfig(MouseEventArgs e, string Konfigname)
    {
     //...  
    }
}

Thema: Blazor: buttonclick soll html select value mit übergeben
Am im Forum: Web-Technologien

Danke Abt für deine Hinweise.
Die @page Zeile hatte ich vergessen mit in den Codeausschnitt zu übernehmen und den Methdenname habe ich angepasst. Leider ist die Fehlermeldung noch gleich geblieben. Ich hatte in dem offiziellen Blazorbeispielprojekt zu der Counter.razor Seite eigene Klassen und diese Seite hinzugefügt. In der Klasse "Konfig" gibt es die Eigenschaft "Name"


@page "/konfigurationen"

<select name="Konfigliste">
        @foreach (var konfig in konfigs)
        {
            <option value="@konfig.Name">@konfig.Name</option>
        }
    </select> 

<button class="btn btn-primary" @onclick="@(e=> runKonfig(e, Konfigliste.value))">Ausführen</button>

@code {
private void runKonfig(MouseEventArgs e, string Konfigname)
    {
     //...  
    }
}
Wenn der Button geklickt wird, soll im Code Block die runKonfig() Methode mit dem in der Dropdown Liste ausgewählten Wert aufgerufen werden.
Das funktioniert nicht da Konfigliste.value einen Fehler auslöst.

error CS0103: Der Name "Konfigliste" ist im aktuellen Kontext nicht vorhanden.

@pinki: Swift ist ja richtig Sprachflexibel :)
Grüße
Cornflake

Thema: Blazor: buttonclick soll html select value mit übergeben
Am im Forum: Web-Technologien

Hallo Leute

Ich habe folgenden html code in Blazor:


<select name="Konfigliste">
        @foreach (var konfig in konfigs)
        {
            <option value="@konfig.Name">@konfig.Name</option>
        }
    </select> 

<button class="btn btn-primary" @onclick="@(e=> setAusführen(e, Konfigliste.value))">Ausführen</button>

@code {
private void setAusführen(MouseEventArgs e, string Konfigname)
    {
     //...  
    }
}
Wenn der Button geklickt wird, soll im Code Block die setAusführen() Methode mit dem in der Dropdown Liste ausgewählten Wert aufgerufen werden.
Das funktioniert nicht da Konfigliste.value einen fehler auslöst

error CS0103: Der Name "Konfigliste" ist im aktuellen Kontext nicht vorhanden.

Was muss ich hier ändern, damit das funktioniert?

Grüße
Cornflake

Thema: Zugriff auf Unterzweig von verschachtelter abstrakter Klasse
Am im Forum: Rund um die Programmierung

Danke euch beiden, dass waren eigentlich die Antworten die ich mir erhofft hatte.
@Th69 Danke für den Code. Hab den noch nicht ganz verstanden. Werde dazu ein Tutorial suchen.
@Taipi88 Super Antwort.
Das Singleton Pattern hatte ich bisher eigentlich nur mit einer Mutaxe verwendet um zu verhindern, dass eine Winforms Anwendung mehrfach gestartet werden kann. Aber die 6 verschiedenen Arten die hier detailiert beschrieben werden kannte ich so noch nicht. Als nächstes kommt jetzt Microsoft.Extensions.Configuration reinlesen dran.
Wg b) ich werde es vmtl. mit Referenzierung auf Zuführung zu lösen versuchen. Hatte gehofft es gibt da noch einen andern Weg.
Hab inzwischen bemerkt, dass in meinem ursprünglichen Problem der Fehler war das p.dateipfad nicht geht, weil ich es nicht innerhalb einer Methode geschrieben hatte.

Thema: Zugriff auf Unterzweig von verschachtelter abstrakter Klasse
Am im Forum: Rund um die Programmierung

@MrSparkle nein das habe ich gelöst. Nur hätte ich gerne die Klasse anders strukturiert. Dieses strukturieren hätte ich aber auch gerne generell besser verstanden.
Mit geht es um das zugreifen auf Methoden und Eigenschaften von anderen Zweigen aus und wie man die am besten Klassentechnisch erstellt. Bisher habe ich nur Namespace Verschachtelungen gefunden und Klasse in Klasse. Das wiederstrebt mir nur etwas. Da ich am liebsten je Datei nur eine Klasse haben würde.
Wie mache ich es, dass ich überhaupt richtig hinbekomme eine Klassenunterstruktur zu erstellen.
Also wie bei der MS Settingsklasse mit: App.Default.Eigenschaft. Bei mir ist das aktuell im Vergleich dazu App.Eigenschaft. Wie bekomme ich die Eigenschaft in einen Default Zweig in der Klasse bzw. wie müssen die Klassen verbunden werden, damit das so aussieht und sauber funktioniert bzw. zugreifbar ist.

Und wenn das richtig aufgebaut ist, wie kann ich dann in: Basisklasse.Unterklasse1.Methode1()
zugreifen auf: Basisklasse.Unterklasse2.Eigenschaft1()

@abt Danke für Link. Wird vmtl. nicht meine Lösung komplett ablösen können, aber vllt. für weitere Fälle doch eine Alternative sein.

Thema: Zugriff auf Unterzweig von verschachtelter abstrakter Klasse
Am im Forum: Rund um die Programmierung

Nagut ich hole weiter aus.
Die Microsoft Settings Klasse kann ich um eigene Werte(Eigenschaften) erweitern und dann die Konfiguration in einer Datei persistent ablegen. Die selbst hinzugefügten Eigenschaften sind bei der Settings Klasse gut strukturiert in dem App1.Default.<Eigenschaft> Zweig zu finden. Zusätzlich bietet die Klasse noch einige Methoden um die Eigenschaften zu laden und zu speichern. Allerdings hat die für meinen Bedarf ein großes Manko. Die Einstellungen werden als XML abgelegt und dann noch im Benutzerordner (je nachdem, ob es eine Benutzereinstellung oder Anwendungseinstellung ist). Ich habe dazu mir schon eine Lösung geschrieben, mit der ich die Einstellungen in einem individuellen Ordner serialisiert ablegen kann. Allerdings fehlt mir die Strukturierung wie bei der settings Version. Bei mir liegen die Eigenschaften in der gleichen Ebene wie die Methoden zum Speichern Laden, etc.

Daher ich würde von euch nur gerne wissen, wie kann ich so eine Strukturierung ordentlich bewerkstelligen. In der abgeleiteten Klasse sollen die neu hinzugefügten Eingenschaften, die zu serialisieren sind liegen und in den Unterzweigen die Methoden zum Laden ,Speichern, etc. und noch ein paar weitere Eigenschaften. Dabei würde ich gerne auch aus dem Unterzweig1 auf Eigenschaften vom Unterzweig2 der abstrakten Klasse zugreifen können.

Zum Schluss will ich wieder die abstrakte Klasse verwenden, die mir die Möglichkeiten bietet alle Werte der abgeleiteten Klasse zu serialisieren.

Thema: Zugriff auf Unterzweig von verschachtelter abstrakter Klasse
Am im Forum: Rund um die Programmierung

Mir geht es nicht darum mich nicht mit OOP zu beschäftigen. Ich habe nur vor die Eigenschaften und Methoden anders zu strukturieren, damit bestimmte Werte sich nicht überschneiden bzw. in einer langen Liste untergehen.

Wie würdet ihr es anstellen bestimmte Methoden/Eigenschaften in diesem Fall zu strukturieren. Habt ihr ein Quellcodebeispiel?

Thema: Zugriff auf Unterzweig von verschachtelter abstrakter Klasse
Am im Forum: Rund um die Programmierung

Nein ich will nicht mit new und overide bei Namensüberschneidungen arbeiten müssen und mit base kann ich zwar aus der abgeleiteten Klasse auf Eigenschaften der Basisklasse zugreifen aber nicht aus der Maschinenklasse auf die Zuführungklasse, da die ja nicht voneinander abgeleitet sind.

Thema: Zugriff auf Unterzweig von verschachtelter abstrakter Klasse
Am im Forum: Rund um die Programmierung

Hallo Abt

Ich versuche es mal genauer zu beschreiben, da ich eine allgemeine Lösung suche und bisher in den Microsoft Docs nur etwas mit verschachtelten Klassen und Namespaces gefunden habe, dass aber nicht ganz dem entspricht was ich vorhabe. Aktuell habe ich eine abstrakte Klasse mit einigen Methoden und Properties.


class abstrakt Dateikonverter {
	public string Quelldatei {
		get;
		set;
	}
	public string Zieldatei {
		get;
		set;
	}
	public string Konverterbeschreibung {
		get;
		set;
	}
	//... es folgen noch einige weitere Properties

	public void Laden() {
		// Verwendet Quelldatei und weitere Properties zum Laden der Datei
	}

	public void Konvertieren() {
		//Verwendet verschiedene Properties
	}

	//... Es folgend noch einige weitere Methoden
}

Von der oben genannten Klasse leite ich jetzt ab und erstelle einen Konverter für MaschineTyp1.

class Dateikonverter_MaschineTyp1: Dateikonverter,
IWerkzeuge,
IMaterial {
	Konverterbeschreibung = "R11,G09,03,L18";
	public Werkzeug tool1 {
		get;
		set;
	}

	//Es folgen noch weitere neu hinzugefügte Properties
	//Es kommen noch ein paar Methoden dazu.
	//Die Methoden benötigen teilweise Properties aus des Basisklasse und einer parallel dazu existierenden weiteren Zubehörklasse.
}

Jetzt ist das Problem, dass sich meine Methoden der abstrakten Klasse auf der selben Ebene befinden, wie die der fertig nutzbaren Klasse. Wenn ich die verwenden will gehen mir evtl. ein paar Methoden unter oder sie überschneiden sich vllt sogar vom Namen her.
Mein Ziel ist es das ganze zu strukturieren mit Ebenen.

Statt:


//...
void Vorbereiten() {
	Dateikonverter_MaschineTyp1 MaschineKT1 = new Dateikonverter_MaschineTyp1();
	MaschineKT1.Quelldatei = "testdaten.txt";
	MaschineKT1.Zielldatei = "RUU88.jy";
	if (MaschineKT1.tool1 == Werkzeuge.FR01) { //...}

		//Es folgen weitere Zugriffe auf verschiedene Properties immer überMaschineKT1.<Property>
	}
	//...
}


Ziel ist es die Zugriffe auf die Basis Properties in eine andere Ebene z.B. Default zu bringen.
z.B.


//...
void Vorbereiten() {
	Dateikonverter_MaschineTyp1 MaschineKT1 = new Dateikonverter_MaschineTyp1();
	MaschineKT1.Default.Quelldatei = "testdaten.txt";
	MaschineKT1.Default.Zielldatei = "RUU88.jy";
	if (MaschineKT1.tool1 == Werkzeuge.FR01) { //...}

		//Es folgen weitere Zugriffe auf verschiedene Properties die je nachdem ob es Standardeigenschaften/Methoden sind, z.B. über MaschineKT1.Default.<Property> erreichbar sind oder eben über MaschineKT1.<Property> wenn es individuelle Eigenschaften und Methoden sind.
	}
	//...
}

Ich hoffe das Problem wird klarer. Zudem kommt es vor, dass ich bei Strukturieren dann in Methoden von Dateikonverter_MaschineTyp1 auf Eigenschaften von Dateikonverter_ZuführungTyp2 zugreifen will. Also neben dem Default Zweig noch einen Zuführungszweig haben will der z.B. mit MaschineKT1.Zuführung.<Property> angesprochen werden soll.

Beste Grüße
Cornflake

Thema: Zugriff auf Unterzweig von verschachtelter abstrakter Klasse
Am im Forum: Rund um die Programmierung

Hallo Leute

Ich habe ein Problem, mit einer selbstgeschriebenen abstrakten Klasse.
Bei Microsoft gibt es ja die App1.settings Dateien. In denen kann man eigene Eigenschaften definieren auf die man wiederum in C# über Assemblyname.App1.Default.MeineEinstellung1 zugreifen kann. Daher es gibt Methoden die in Assemblyname.App1 untergebracht sind und weitere eigene Eigenschaften, die in App1.Default.MeineEinstellung1 untergebracht sind. Mir geht es hier um die Strukturierung der Klasse.

Selber habe ich vor eine abstrakte Klasse so zu strukturieren, dass ich eine Klasse mit Zusatzmethoden erstellen kann, die von der abstrakten Klasse abgeleitet wird und dann über die abgeleitete Klasse in zwei Unterzweigen weitere Methoden und Eigenschaften zur Verfügung stellt. In vereinfachter Form sieht das wie unten aus. Allerdings kann ich im Zweig M nicht auf Eigenschaften im Zweig P zugreifen und es stehen in der abgeleiteten Klasse keiner der beiden Zweige zur Verfügung.


public class toolabstrakt {
	public P p;
	public M m;
	public toolabstrakt() {
		p = new P();
		m = new M(ref p);
	}
}

public string Ver {
	get;
	set;
}


public class P {
	public string dateipfad {
		get;
		set;
	} //hier wird dann noch auf eine interne Variable verwiesen
	public string dateiformat {
		get;
		set;
	} //hier wird dann noch auf eine interne Variable verwiesen
}


public class M {
	P p;
	public M(ref P p) {
		this.p = p;
	}

	public string Convert() {
		string inhalt = File.ReadAllText(p.dateipfad);
		//...
	}
	//...
}

Wenn ich jetzt von der abstrakten klasse ableiten will kann ich nicht auf m oder p zugreifen. Selbst wenn ich davon noch Felder mit p{get;set;} und m{get;set;} dazu anlege.


public class mytool: toolabstrakt {
	p.dateipfad = "test.txt"; //geht nicht
	string werte = m.Convert(); //geht nicht
}

Ich hoffe ich konnte mein Problem verdeutlichen. Irgendwie stehe ich aufm Schlauch. Bitte aber keine Diskussion warum das ganze überhaupt strukturieren, etc.

Beste Grüße
Cornflake

Thema: Lässt sich C# Programm erstellen, das keine Framework-Voraussetzungen hat?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

@abt, was wäre deiner Meinung nach der nächste konstruktive Schritt?

Ich bin noch am überlegen, evtl. den Webserver Dienst auf dem Server als Docker Anwendung zu verpacken, würde da IIS auch gehen? Habe selber dazu noch keine Erfahrung.
Bzw. was haltet Ihr von IIS Express?

Thema: Lässt sich C# Programm erstellen, das keine Framework-Voraussetzungen hat?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Danke Leute für eure Hinweise

@gfoidl Vielen Dank für deine konstruktiven Ideen.
Ja so in der Art müsste sich ein Großteil lösen lassen.
Dateien lesen schreiben und packen, würde ich dann von einem eigenen eingerichteten Webserver auf dem Filialistenserver mit Schreibrechten auf Netzlaufwerke übernehmen lassen.

Einzig der COM-Port Zugriff würde eine zusätzlichen SW auf dem Clientrechner benötigen.

Wegen Webserverdienst hatte ich zuerst an einen Apache gedacht. IIS wäre mir zu komplex. Aber gibt es da unter C# evtl. etwas abgespeckteres? So eine art embedded Webserverdienst, den ich in einem eigenen Programm verwenden kann?
Dann wüste ich auch unter C# wie ich Linq nutzen könnte. Bei Apache hätte ich dazu keine Ahnung.

Thema: Lässt sich C# Programm erstellen, das keine Framework-Voraussetzungen hat?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

@gfoidl, das mit dem vorinstallierten .net framework hatte ich auch schon beim "Product Owner" angefragt, aber bis jetzt haben sich die Anforderungen nicht geändert.

Für den Hintergrund. Es soll eine Anwendung geschrieben werden, die ein Filialist auf seinen Rechnern ausführen kann. Das können u.a. reguläre Windows 7 PC sein, aber leider auch Windows XP oder POS Kassensysteme die aber eigentlich auch ein Windows haben sollten. Zur Verteilung wird dann von einem Server aus das Programm aus einem Netzlaufwerksordner heraus an die Systeme per kopieren verteilt. Es kann sein, dass die SW danach nicht mal mehr lokale Schreibrechte auf dem Rechner hat.
Daher bin ich aktuell schon am überlegen, die GUI vllt. als Webseite von einem Server aus auszuliefern.

Thema: Lässt sich C# Programm erstellen, das keine Framework-Voraussetzungen hat?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Ok das mit dem Reportviewer muss ich dann wohl ausklammern.

Wäre es denn möglich z.B. auf einem Windows 7 System, dass das .net Framework 4.6.2 nicht installiert hat, dieses Framework z.b. einfach in einem Unterordner entpackt mitzuliefern und dann mit einem speziellen Aufruf die exe mit dem Framework zu starten?

Hab gerade gelesen, unter Java soll es möglich sein auf z.B. einem USB Stick die JRE entpackt mit drauf zu kopieren und dann eine Java Anwendung so direkt vom Stick startbar zu machen.

Thema: Lässt sich C# Programm erstellen, das keine Framework-Voraussetzungen hat?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Wäre sowas in reinem C++ möglich (kein .net C++)?
Mir ist gerade noch Elektron eingefallen, wäre das etwas oder müsste dazu auch irgendwas im Vorfeld installiert worden sein?

Thema: Lässt sich C# Programm erstellen, das keine Framework-Voraussetzungen hat?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo Leute

Ich suche eine Möglichkeit ein C# Programm zu erstellen (paketieren), das die unten genannten Features hat und nur durch einfaches kopieren in einen Ordner installiert wird.
Wichtig es darf kein bestimmtes installiertes .net Framework vorausgesetzt werden. Bzw. es dürfen keine weiteren Abhängigkeiten voraus gesetzt werden.

Folgende Features soll das Programm haben:
- Es soll eine grafische Bedieneroberfläche anzeigen.
- Es soll Dateien lesen und schreiebn können.
- Es soll Berichte anzeigen (reportviewer).
- Es soll Dateien packen können.
- Es soll auf COM Ports zugreifen können.
- Es soll Daten drucken können.
- Es soll Linq unterstützen.

Aktuell ist ja .Net Core im kommen, das Self-contained deployments (SCD) unterstützt, nur schein dieses auch wieder native dependencies of .NET Core vorauszusetzen und es wird aktuell keine GUI Entwicklung mit unterstützt.

Am einfachsten wäre ein einfaches WinForms Programm, nur das setzt immer ein bestimmtes vorher installiertes .net Framework voraus. Schön wäre hier eine Packmöglichkeit, in der das verwendete Framework mit eingepackt wird.

Die .exe Datei darf auch dafür gerne Bytemäßig größer sein.

Habt ihr eine Idee?

Gibt es dazu in anderen Sprachen evtl. eine Lösung? Java, C++

Vielen Dank und Grüße
Cornflake

Thema: Linq dynamisches Ergebnis als Parameter an Methode übergeben
Am im Forum: Datentechnologien

Hatte bisher VS2008 und .net 3.5 im Einsatz. Daher war das letztlich ein ziemlicher Sprung.

Thema: Linq dynamisches Ergebnis als Parameter an Methode übergeben
Am im Forum: Datentechnologien

@MrSparkle
Das .net 4.6.1 habe ich noch nicht so lange im Einsatz. Stimmt da gibts doch schon Tuples 8o. Hatte die bisher noch nicht gesehen/genutzt.
thx

Thema: Linq dynamisches Ergebnis als Parameter an Methode übergeben
Am im Forum: Datentechnologien

Zitat
Kannst/Darfst Du Visual Studio 2017 und auch die C#7-Features nutzen?

Ja. Hab mir aber noch nicht alle Details angeschaut.
Werde die neue Version wohl erst ab März testen können.
Bin u.a. auch schon auf die Tuples gespannt.

Thema: Linq dynamisches Ergebnis als Parameter an Methode übergeben
Am im Forum: Datentechnologien

Wegen dynamic werde ich mal googeln thx :).

Ansonsten freue ich mich eh schon auf den 7.3.17

Thema: Linq dynamisches Ergebnis als Parameter an Methode übergeben
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: C# 4.6.1 Linq

Hallo

Befehle wie:


...
var erg = from z in quelle
               where z[1].Length > 1
               select new  { z[0], z[2]  };
...
sind ja äußerst praktisch.

Aber wie kann ich "erg" als Parameter an eine andere Methode übergeben?

Problem:
Ich habe habe eine Methode in der Dateien als Tabellen eingelesen werden, dann mit 3 Linq Befehlen vorbereitet werden und dann für 2 Ausgaben wieder mit Linq ähnlich oben geändert werden. Inzwischen müssten da noch mehr Ausgaben per Linq erzeugt werden. Nur in einer Methode finde ich das zu unübersichlicht. Daher aus:


Auswerten(){...}

...soll jetzt werden:


Auswerten_Eingabe(){...}
Auswerten_Vorbereitung(tabelle1,tabelle2){...}
Auswerten_Ausgabe(tabelle,Filter){...}

Nur wie kann ich da die Linq Tabellen übergeben?

Beste Grüße
Cornflake

Thema: Linq gruppierte Zeilen in Spalten splitten um CSV-Datei zu erzeugen
Am im Forum: Datentechnologien

LaTino

Danke für deinen Tip.
Konnte mich da wohl gedanklich von Linq zu wenig lösen.
Das mit dem ForEach direkt als Ausgabestring klappt super.

Thema: Linq gruppierte Zeilen in Spalten splitten um CSV-Datei zu erzeugen
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: Linq

Hallo Leute

Vllt könnte ihr mir mit einem Linq Befehl helfen.
Als Anforderung soll ich ein Tabelle erzeugen, die eigentlich der dritten Normalform einer Tabelle wiederspricht und bei der ich nicht weiß wie ich die mit Linq realisieren könnte.

Wie in dem Thementitel beschrieben, gruppiere ich in einer Tabelle Spalten und als Aggregatsfunktion sollen in einer Ergebistabelle die Gruppenzeilen als Spalten ausgegeben werden.

Quelltabelle:


Gruppe; ID ; Menge
1;A1;1
2;B1;1
2;B2;2
3;C1;1
3;C2;2
3;C3;3
...

Ausgabetabelle:

//Kopfzeile ist nur optional
Gruppe ; ID Menge1;ID Menge2;ID Menge3;...
1;A1 1
2;B1 1;B2 2 
3;C1 1;C2 2;C3 3
...

Mein bisheriger Linq:


var erg = from e in Quelltabelle
               group e by e.Gruppe into Grp
               orderby Grp.Key.Gruppe
               select new
                 {
                    Grp.Key.Gruppe,
                    ID_Menge =  Grp.Select (s => s.ID + " " + s.Menge)
                 }

Nur wie mache ich daraus eine CSV Datei?

Beste Grüße
Cornflake

Thema: Linq Spalte mit mehreren Werten splitten in mehrere Zeilen
Am im Forum: Datentechnologien

Jeah funzt :) THX MrSparkle

Gibts das eigentlich auch in der nicht ".funktionsname(...)" Schreibweise?

Thema: Linq Spalte mit mehreren Werten splitten in mehrere Zeilen
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: Linq C#

Hallo Leute

Habe folgende Quelltabelle:


SP1; SP2    ; SP3   ; SP4
1  ; A      ; Text1 ; Text2
2  ; A B    ; Text3 ; Text4
3  ; A B C  ; Text5 ; Text6

Daraus soll durch ein Splitting in Spalte 2 Zeilenduplikate als folgende Zieltabelle entstehen:

SP1; SP2; SP3   ; SP4
1  ; A  ; Text1 ; Text2
2  ; A  ; Text3 ; Text4
2  ; B  ; Text3 ; Text4
3  ; A  ; Text5 ; Text6
3  ; B  ; Text5 ; Text6
3  ; C  ; Text5 ; Text6

Leider konte ich durch google , suche.. kein Beispiel bisher dazu finden.

Wie nennt man sowas, bzw. wichtiger, wie lautet der passende Linq Befehl.

Folgender Befehl geht in die richtige Richtung, passt aber noch nicht ganz, da die restlichen Spalten nicht passend mit dupliziert werden.


var  x = from s in Quelltabelle
             select new 
            { 
              SP1 = SP1,
              SP2 = SP2.split(' '),
              SP3 = SP3,
              SP4 = SP4
            }

Beste Grüße
Cornflake

Thema: .Net Core lässt keinen IsolatedStorage installieren
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

@Abt: Danke für deine Meinung und Hilfen. Das Video Google ich.
Allgemein stimme ich dir zu, erst Requirementanalyse, dann Entwurfsplanung, dann Umsetzung, dabei dann immer wieder Gegenprüfen, ob sich nicht Requirements geändert haben.

Meine grundlegenden Requirements weiß ich. Mein Problem, dass ich mich nicht mit allen verfügbaren Technolgien in der C# Welt auskenne. Und ich mir Wissen nur über Foren oder Bücher anlesen kann, bisher keine Kurse etc.
Daher bin ich auf der Suche, nach passenden Technologien und erarbeite mir gerade anhand von Prototypentwicklungen eine passende technische Umgebung.
Falls du ein Tipp hast wo es gute C# Kurse zu den Untertechnologien wie, Roslyn, Xamarin, REST, Linq, Angular2, Kestrel, ASP.Net, Visual Studio 2015 Projektmanagement, aktuelle Softwarearchitektur, Docker, Git, Best Practices der Projektverwaltung, etc. kennst, würde ich mich über Tipps freuen. Könnte da sehr viel Fortbildung gebrauchen.
Hatte bis vor kurzem z.b. nur Visual Studio 2008 für lokale Windows Forms Projekte im Einsatz. Seit dem hat sich einiges getan und ist gerade auch weiterhin im Wandel. Vor ca. 1,5 Jahren hätte ich behauptet nur WCF ist verbreitet und alle arbeiten mit SOA. Aktuell sprießen aber anscheinend vielerorts Microservices, Docker und Rest aus den Boden und Microsoft hat sich mit der Linuxfoundation verbündet. Zu Lernen gibt es nicht nur ein paar Bäume an Wissen, die sprießen, es kommen jährlich ganze Wälder dazu, die ein Jahr später teils obsolet sind und durch neue ersetzt werden.

Grüße Cornflake

Thema: .Net Core lässt keinen IsolatedStorage installieren
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Welche Frameworkversion sollte ich eigentlich für eine "Consolen App" verwenden, die ohne Gui läuft (Benutzung nur per externer Aufrufe als Dll oder über WCF). Die App soll nach Möglichkeit unter Windows Desktop/Server oder in einem Docker Container laufen können. Als Frontend, würde ich in Zukunft dann Electron verwenden wollen dass endweder lokal die App startet oder per Webservice remote darauf zugreift.