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 thomas.at
Thema: Visual Studio 2019 - Class View bzw. Code Behind einer Form fehlt im Projektmappen-Explorer
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo

Wenn Du auf "Form1.cs" doppelt klickst, dann öffnet sich entweder der Designer oder die "Code-Behind-Datei". Dies kannst Du einstellen, in dem Du mit der rechten Maustaste das Kontextmenü öffnest und dann die Option "Open with" auswählst. Danach kannst Du die Standardaktion festlegen. Du kannst im Kontextmenü auch direkt den Code oder den Designer öffnen.

Thomas

Thema: Wie kann ich Werte aus Excel im C# berechnen oder Tool finden, dass Eingabe & Berechnung abdeckt?
Am im Forum: Office-Technologien

Hallo

Ich hatte einmal ein ähnliches Problem. Es gibt von DevExpress eine Komponente namens "Spreadsheet". Diese kann Excelfiles direkt einlesen (mit allen Formeln, benannten Felder usw.) und funktioniert genauso wie Excel. Man kann sogar eine Oberfläche dazu erstellen, die wie Excel aussieht. Über C# kannst Du dann die Felder auslesen, die Berechnungen starten und was Du sonst noch alles brauchst.

mfG
Thomas

Thema: [gelöst] Error 404 Ursache finden
Am im Forum: Web-Technologien

Hallo

Mithilfe von Serilog konnte ich tatsächlich den Fehler finden. Ich hatte zwar die API neu deployed aber das Service nicht.

Danke
Thomas

Thema: Im SQLite automatisch Spalten erstellen lassen
Am im Forum: Datentechnologien

Hallo

Für dein Problem brauchst Du doch nur eine Tabelle mit 4 Spalten:


DiID | MiID | Datum | Schicht


Damit kannst Du alle Tage die ein Mitarbeiter arbeiten soll eintragen und entsprechend auch suchen.

Thomas

Thema: [gelöst] Error 404 Ursache finden
Am im Forum: Web-Technologien

Hallo
Ich habe folgendes Szenario:

Postman --> Post mit Modell im Body --> ASP.NET Core --> gRPC --> Windowsservice

Das ganze funktionierte bis jetzt alles tadellos und ich bekomme die richtige Antwort mit dem Status 200 zurück. Jetzt habe ich das Modell um einen Wert erweitert und die Middleware und das Service entsprechend erweitert. Bei mir in der Debugumgebung läuft alles so wie es soll. Jetzt habe ich das ganze in unsere Testumgebung deployed und wollte das mit Postman testen. Wenn ich jetzt den POST-Request absetze, dann kommt immer einen Error 404 (not Found) zurück. Wie kann ich herausfinden, wo der Fehler liegt?

P.S.
Andere Requests laufen einwandfrei, es liegt also nur an dem einen Request.

mfG
Thomas

Thema: [gelöst] gRPC als Service
Am im Forum: Netzwerktechnologien

Hallo

das Netzwerkprotokoll habe ich mir angesehen. Leider sieht man daraus nicht viel, da der Client natürlich immer dasselbe sendet. Wenn ich die Application im Commandfenster laufen lasse, dann kommt halt nach einigen Millisekunden die richtige Antwort, beim Service nach einigen Minuten der Reply mit HTTPResponse 200 und gRPCStatus 1. Dazwischen liegt das Service, das halt nichts macht.

Ich habe aber gestern noch einiges im Internet recheriert und bin dabei auf das Topshelf-Projekt (Topshelf) gestossen. Damit habe ich den Server neu aufgesetzt und jetzt funktioniert alles (Kommunikation über TCP für die alten WindowsClients und über gRPC für die Web-Applikation).

mfg Thomas

Thema: [gelöst] gRPC als Service
Am im Forum: Netzwerktechnologien

Hallo

Ich möchte aus einer .ASP NET-Core Application auf ein bestehendes Service (.Net FW 4.6.1) zugreifen. Ich habe mich hier für die Kommunikation mittels gRPC entschieden. Mein Server sieht wie folgt aus:


      string IP = "0.0.0.0";
      int Port = 23116;
      try
      {
        Server server = new Server
        {
          Services =
        {
          GRPC_Test.BindService(new Test_GRPC())
        },
          Ports = { new ServerPort(IP, Port, ServerCredentials.Insecure) }
        };
        server.Start();
        service.EventLog.WriteEntry($"API-Server auf {IP}:{Port} gestartet");
      }
      catch (Exception ex)
      {
        service.EventLog.WriteEntry("API-Server konnte nicht gestartet werden");
        service.EventLog.WriteEntry(ex.Message);
      }

und der Client so:


      int Port = 23116;
      //string IP = "127.0.0.1";                                // localhost
      string IP = "10.xx.xx.xx";                               // Server-IP

      Channel channel = new Channel(IP, Port, ChannelCredentials.Insecure);
      var client = new GRPC_Test.GRPC_TestClient(channel);

Wenn ich das ganze im Visualstudio (mit der lokalen IP im Client) laufen lasse, dann funktioniert alles wunderbar (HTTP-Request via Postman liefert richtigen Reply). Kopiere ich die EXE auf den Server, starte diese in einem CMD-Fenster und lasse den Client in VS laufen, dann funktioniert es auch wie es soll. Installiere ich die EXE aber am Server als Service, dann bekomme ich im Client nach einiger Zeit eine Exception mit folgendem Inhalt:
Fehler
RpcException: Status(StatusCode=Cancelled, Detail="Cancelled")

und der Stacktrace zeigt auf die aufrufende Funktion. Leider konnte ich auch nichts über Google hierzu finden, daher hier meine Bitte um Hilfe. Vielleicht wissen ja die Gurus unter Euch, wo der Fehler verborgen ist.

mfg
Thomas

Thema: Alle 100ms ein Kommando, was der User auch via Button frei triggern kann, geht nur manchmal
Am im Forum: GUI: Windows-Forms

Hallo

stell Deine Befehle die Du senden möchtest (Timer, User) in eine Queue und arbeite diese sequentiell ab. Und zwar immer erst dann, wenn eine Antwort vollständig empfangen wurde. Ich vermute mal, dass Deine Peripherie durcheinander kommt, wenn es beim Senden eine neue Nachricht bekommt.

Thomas

Thema: VS 2017 Hilfe offline Bücher fehlen
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo pixfreak

Also ich habe alle möglichen Dokumentationen zum downloaden (siehe Anhang). Hast Du vielleicht noch eine altere Version des Helpviewers (aktuell 2.3)


mfg Thomas

Thema: VS 2017 Hilfe offline Bücher fehlen
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo

Du kannst über "Help/Add and Remove Help Content" im Help Viewer die Hilfen auswählen und downloaden (Manage Content). Danach im Visual Studio als Help-Viewer über "Help/Set Help Preference" "Launch in Help Viewer" auswählen.


Thomas

Thema: Kann ich meine bestehende Architektur mit WinForms-Client auf eine Web-App umbauen?
Am im Forum: Smalltalk

Hallo

Es geht mir nicht darum, die ganze bestehende Applikation/Infrastruktur umzustellen, sondern nur neue Plugins in die neue Welt zu bringen. Da das ganze nur bei uns im Haus läuft (internes LAN, hinter einer DMZ) wäre das Problem mit der Authentifizierung meiner Meinung nach nicht gegeben (oder sehe ich das falsch?).

Das ganze ist deshalb noch so allgemein, da ich erst mal die Möglichkeiten abklären möchte. Dies damit ich dann entsprechende Schulungen (ohne die es wohl nicht gehen wird) beantragen kann. Wenn ich aber meinem Chef sage "ich muss jetzt alles aus den letzten 12 Jahren umstellen" dann wird die Antwort wohl "Das kannst Du vergessen" lauten.

mfG Thomas

Thema: Kann ich meine bestehende Architektur mit WinForms-Client auf eine Web-App umbauen?
Am im Forum: Smalltalk

Guten Morgen
Ich bräuchte mal Eure Anregungen und Meinungen. Ich habe eine Client-Server-Anwendung welche seit ca. 12 Jahren von mir entwickelt und auch noch immer aktuell weiterentwickelt wird. Diese hat folgenden Aufbau:

1. Server : Windows-Service mit Verbindung zu SQL-,Oracle- und Progress-Datenbanken. Nimmt die Aufrufe der Clients entgegen, verarbeitet diese und sendet via TCP einfache Typen (int,string…) oder eine DataTable zurück.

2. Client : Eine Anwendung welche auf einem Netzlaufwerk liegt und mittels TreeView den Usern die Module anzeigt, für die sie über das AD berechtigt sind. Diese Module (derzeit ca. 85) werden dann als Plugins in eine eigene App-Domaine geladen und ausgeführt. Dadurch kann jederzeit ein Update der Plugins gemacht werden.

Diese Struktur läuft einwandfrei mit WinForms. Jetzt habe ich für die letzte Anwendung bereits den Pfad etwas verlassen, in dem ich für eine andere Anwendung eine Middleware in WPF geschrieben habe, die aber auch auf den Serverdienst zugreift.

Nachdem ja jetzt sehr viel von Web-Anwendungen (Angular, Typescript etc.) die Rede ist würde ich auch gerne auf diese Technologie umsteigen. Die Gelegenheit würde sich demnächst anbieten, da ein neues Projekt (= Plugin) ansteht.

Jetzt meine Frage an Euch: kann ich die bestehende Infrastruktur so weiter verwenden oder müsste ich das ganze neu auf die Beine stellen. Ich stelle mir das ungefähr so vor, dass ich aus der Clientanwendung die Angular-App aufrufe und diese via Web-API Verbindung zu meinem Windowsdienst aufnimmt. Oder seid ihr der Meinung „Schuster bleib bei deinen Leisten“ und ich sollte weiter mit WinForms arbeiten.

mfG
Thomas

Thema: 2 DataTable zusammen führen
Am im Forum: Grundlagen von C#

Hallo

Du kannst folgendes Select ausführen:


select distinct
	ProjektID
,Datum3 = (select a.Datum from Test a WHERE a.Status = 3)
,Datum5 = (select b.Datum from Test b WHERE b.Status = 5)
from Test

dann solltest Du eine Tabelle mit den gewünschten Spalten bekommen.

Thomas

P.S.
Ich habe gerade festgestellt, dass obige Lösung nicht richtig funktioniert, sorry. Die Auswertung von hypersurf liefert Dir fast die richtige Lösung, es fehlt nur ein DISTINCT im Select.

Thema: Eigene Application aus Fremdapplication ansteuern
Am im Forum: Rund um die Programmierung

Hallo

Danke für die Infos, werde mich mal mit REST beschäftigen.

mfG
Thomas

Thema: Eigene Application aus Fremdapplication ansteuern
Am im Forum: Rund um die Programmierung

Hallo

Ich bräuchte mal einen Denkanstoß. Ich habe eine WPF-Applikation die jetzt mit einer Fremdapplikation via einer API-DLL angesprochen werden soll. Es sollen Daten in meine Applikation übergeben, dort verarbeitet und das Ergebnis wieder zurück geliefert werden. Ich habe jetzt probiert, über WCF aus der API-DLL mit meiner Anwendung zu kommunizieren (diese ist dann der WCF-Host). Hier habe ich aber zwei Probleme :
1. Wenn meine Anwendung nicht gestartet ist funktioniert das natürlich nicht. Die Anwendung kann ich natürlich über einen Prozess starten, aber wie teile ich dann der API-DLL mit, das der Host bereit ist?
2. Wenn die Anwendung läuft, funktioniert die Kommunikation erst mal. Schließe ich die Fremdanwendung aber und starte sie neu, dann kommt in meiner Anwendung nichts mehr an.

Ist hier WCF überhaupt das richtige Mittel oder würdet Ihr das anders lösen? Wenn WCF richtig ist, dann kann ich ja relevante Teile hier posten und auf Eure Hilfe bezüglich der Probleme hoffen.

mfG
Thomas

Thema: RS232-USB Adapter and XP-Maschine anschliessen
Am im Forum: Rund um die Programmierung

Hallo

Ich verstehe den Sinn nicht ganz. Wenn Du einen USB<->Seriell-Adapter an das System anschließt, dann wird diesem ein COM-Port zugewiesen. Dieser ist im Gerätemanager zu sehen. Dann startest Du ganz normal Dein altes DOS-Programm und konfigurierst dort den USB-COM-Port und fertig. Ein Problem hast Du nur, wenn dein Programm nur bestimmte COM-Ports zulässt. Dann musst Du den Port im Gerätemanager entsprechend um konfigurieren.

mfG Thomas

Thema: String mit Regex extrahieren
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo

Du könntest auch folgendes machen:


      string input = @"TRACK(6(2657,4331)(-2657,4331)),TRACK(6(-2657,4331)(-2657,-4331)),CIRCLE(296,294,-1378,3150)))";
      string pattern = @"((TRACK)\(\d\((?<X_Start>(\+|-)?\d*),(?<Y_Start>(\+|-)?\d*)\)\((?<X_Ende>(\+|-)?\d*),(?<Y_Ende>(\+|-)?\d*))";
      Regex regex = new Regex(pattern);
      var matches = regex.Matches(input);
      foreach (Match match in matches)
      {
        Console.Write("Start X : " + match.Groups["X_Start"].Value);
        Console.Write(" Y : " + match.Groups["Y_Start"].Value);
        Console.Write(" Ende X : " + match.Groups["X_Ende"].Value);
        Console.WriteLine(" Y : " + match.Groups["Y_Ende"].Value);
      }

lg Thomas

Thema: Einzelne Bits aus Variable auslesen
Am im Forum: Grundlagen von C#

Hallo

Ich nehme mal an "Steuerbit" ist ein Boolean? Dann musst Du folgendes schreiben:

 
Steuerbit = ((Steuerwort & 1) == 1);
bool Bit2 = ((Steuerwort & 2) == 2);
usw.

Thomas

Thema: [gelöst] mit if eine Abfrage von Ja/Nein Feld in einer Access Datenbank
Am im Forum: Grundlagen von C#

Hallo

Dein Fehler liegt schon in der Abfrage (Where schlafen = "true"). Sie Dir mal den Artikel über SQL-Parameter an.

Thomas

Thema: Obfuscator für Sourcedateien (*.cs)
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo

Ich hatte vor Jahren so ein ähnliches Problem, damals mit Delphi 1.0 (Pascal). Ich habe es damals so gelöst, das ich eine Checksumme über die Datei gebildet und diese vor dem Laden überprüft habe. Hatte der Benutzer etwas im File geändert, stimmt diese natürlich nicht mehr und das Laden wurde abgebrochen.

Thomas

Thema: Icon anheften
Am im Forum: GUI: WPF und XAML

Hallo

Es geht schon, aber über einen Umweg:

1. Kopiere die EXE-Datei auf den Desktop
2. Hefte das Programm an die Taskleiste
3. Mittels rechter Maustaste die Eigenschaften der Verknüpfung bearbeiten
4. Bei "Ziel" und "Ausführen in" den Netzwerkpfad eintragen
5. Das Programm kann dann aus der Taskleiste verwendet werden
6. Das kopierte Programm am Desktop kann wieder gelöscht werden.

Thomas

Thema: Gibt es eine Raster Option für den visuellen VS Designer?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo Sebastian

Unter "Tools/Options/Windows Form Designer/General" kannst Du unter "Layout Settings" die Gridgröße und die Sichtbarkeit des Grids einstellen.

Thomas

Thema: Multithreading - Threads laufen hintereinander ab [==> weil alles an den GUI-Thread delegiert wird]
Am im Forum: GUI: Windows-Forms

Hallo

Da hast Du das mit dem Invoke noch nicht ganz verstanden. Wenn Du Invoke aufrufst, dann wird das wieder im Hauptthread ausgeführt. In Deinem Beispiel bedeutet dies, das Du den Thread "doit1" startest und dann sofort wieder das "make1" in der GUI ausführst. Erst wenn dies fertig ist, dann geht es mit "doit2" weiter. Starte direkt "make1" und "make2" und verlagere die Verschiebung des Panels mittels Invoke in die GUI.

mfG
Thomas

Thema: Heutige Jugend zu "faul" zum lernen?
Am im Forum: Smalltalk

Guten Morgen

Ich habe gestern auch mit meiner Familie über dieses Thema diskutiert und dabei haben sich folgende Meinungen aufgetan:

1. Mein 17-jähriger meint "Die sind meistens wirklich zu faul"
2. Meine Frau ist gleicher Meinung wie Zommi.

@Zommi
Möglicherweise hast Du mit der "Informationsflut" wirklich recht. Das Internet ist mit uns "Alten" mitgewachsen, sodass wir uns langsam daran gewöhnen konnten. Zuerst gab es eben wenige Treffer auf eine Anfrage bei Google aus denen wir dann schnell die richtige Lösung finden konnten. Wenn man heute eine Frage stellt (und diese eventuell nicht ganz korrekt) dann wird man ja mit einigen tausenden Einträgen konfrontiert. Daraus die richtige zu finden mag dann manchmal schwierig sein.

@Coder007
Das manche keinen richtigen Zugang zum Programmieren haben, es aber trotzdem versuchen, könnte natürlich auch ein Grund für solche Posts sein.

Vielleicht bin ich auch in der glücklichen Lage, bei der Arbeit nicht zu sehr unter Zeitdruck zu stehen, was in der heutigen Zeit ja nicht mehr so selbstverständlich ist. So kann ich natürlich zuerst versuchen, den Fehler selbst zu lösen. Programmieren habe ich im Selbststudium erlernt, Schulungen gab es kaum. Ferner ist es bei mir so, dass ich bis vor zwei Jahren einziger Programmierer war und daher auch niemanden direkt Fragen konnte. Aus diesem Grund wurden eben Bücher und Google meine Ansprechpartner und man lernte mit der Zeit wie man an die entsprechenden Infos kommt. Beim heutigen Arbeitsdruck mag es eben effizienter sein (wie zommi schrieb) schnell mal die Frage zu stellen und auf rasche Antwort zu hoffen. Ob dies aber auch einen Lernerfolg bringt wage ich zu bezweifeln.

Thomas

Thema: Heutige Jugend zu "faul" zum lernen?
Am im Forum: Smalltalk

Hallo

@FZelle
Es stimmt schon, das man heute eine größere Anzahl zu einem bestimmten Ereigniss zu Gesicht bekommt. Vielleicht sehe ich das dadurch zu streng.

@herbivore
So eine App fürs Bogenschießen gibt es schon, verwende ich auch. Aber bei manchen Dingen finde ich, dass man sich nicht nur auf die Technik verlassen sollte. Wenn jemand bei einer Rechnung behauptet 5 + 2 ist 10 (weil er aus versehen * statt + gedrückt hat) dann hilft Kopfrechnen schon

@telfa
Es spricht ja nichts dagegen, sich die Infos aus dem Internet zu holen. Was mich eher stört, ist das gleich gefragt wird, anstatt sich die Infos zu suchen und erst wenn keine passende Lösung gefunden wurde zu fragen.

Thomas

Thema: Heutige Jugend zu "faul" zum lernen?
Am im Forum: Smalltalk

Hallo

Ich wollte auch nicht alle über einen Kamm scheren (deswegen das faul auch in Anführungszeichen). Ich selbst habe zwei Söhne (21 und 17) und ich habe festgestellt, das oft nicht selbst nach Lösungen gesucht, sondern gleich in diversen Foren nachgefragt wird (selbst bei Spielen). Meine Söhne hatten in der Schule 1 Stunde pro Woche ein Fach "Selbstständiges Arbeiten", was aber viel zu wenig war. Wenn man Ihnen dann eine "Aufgabe" stellt, dann können Sie nicht einmal einfache Abfragen in Google machen. Ich glaube, das genau hier das Problem liegt : die Jugendlichen lernen nicht alleine auf Lösungen zu kommen.

@herbivore
Das mit dem Taschenrechner ist ein gutes Beispiel. Ich habe noch viel mit dem Kopf und Rechenschieber gearbeitet. Heute wird im "Schnellverfahren" das 1x1 gelehrt und dann ab zum Taschenrechner. Ich bin Bogenschütze und nehme auch viel an Turnieren teil. Wenn man sieht wie schwer sich manche tun 6 Zahlen zwischen 1 und 10 zu addieren

Thomas

Thema: Heutige Jugend zu "faul" zum lernen?
Am im Forum: Smalltalk

Hallo Leute

Ich bin schon lange Mitglied in diesem Forum und frage mich manchmal, ob die heutige Jugend durch das Internet teilweise zu "faul" zum lernen ist. Immer wieder sehe ich hier Anfragen wie "NullObjectReferenz", "wie programmiere ich eine Schleife" ect. Als ich vor 35 Jahren in die Programmierung einstieg gab es ja noch kein Internet. Damals mussten wir lesen, lesen und nochmals lesen. Heute erscheint es mir aber so, als ob bei jedem Problem sofort im Internet nachgefragt wird. Natürlich habe ich auch öfters Probleme, die ich auch nach einiger Zeit des versuchens nicht lösen kann. Dies kann aber fast immer mit Hilfe der Forumsuche oder mittels Google gehoben werden. Vielleicht sehe ich das ganze zu schwarz, aber meiner Meinung nach fehlt der heutigen Jugend die Fähigkeit, Probleme selbst zu lösen. Wie seht Ihr das?

mfG
Thomas

Thema: NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ja gleich mehrere

1. Debuggen
2. FAQ ansehen
3. Forumssuche verwenden

lG
Thomas

Thema: Abspeichern der Stati von vielen GUI-Controls um diese beim Start wieder herzustellen
Am im Forum: GUI: Windows-Forms

Hallo christof.k,

Du könntest auch eine Klasse mit der Struktur Deiner Eingaben erstellen und die entsprechenden Properties der Controls an die einzelnen Elemente binden. Dann kannst Du die Klasse einfach serialisieren und beim Start wieder deseralisieren. Wenn Du auch noch INotifyPropertyChanged implementierst kann die Speicherung gleich bei jeder Änderung geschehen.

Thomas

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

Hallo

Also dies ist wirklich ein top Programm. Einfach zu handhaben, schnell und gute Ausgabe. Was mir allerdings noch fehlt, ist die Beschreibung der Parameter bei den Funktionen (<param ...). Auf jeden Fall : weiter so!!

Thomas