Hallo zusammen,
ich stehe im Moment vor folgender Aufgabenstellung:
Ich habe eine Anwendung, in lokale Konfigurationsdateien als XML vorliegen (teilweise einfach serialisierte Objekte, teilweise auch "selbst erstelles" XML).
Jetzt soll bzw. muss für die Konfigurationdateien ein Mechanismus eingebaut werden, der nur bestimmten Usern Änderungen erlaubt. Der "normale" Anwender soll die Anwendung nur benutzen können, die "Poweruser" sollen die Konfiguration auch ändern dürfen.
Über Windows-Dateiberechtigungen würde ich das ganze nur ungern lösen, da die Anwendung sehr oft installiert werden soll und bei jeder Installation die Anwender verschieden sind -> wird schnell unübersichtlich.
Da es keine weiteren Abstufungen im Berechtigungssystem gibt bzw. geben muss (also nur einen Teil der Konfiguration ändern etc.) hätte ich die Idee gehabt, die Konfigdateien verschlüsselt abzuspeichern. Problem dabei ist, dass ich das so machen müsste, dass die Anwendung selbst beim Start die Konfiguration immer lesen kann, also quasi einen "Generalschlüssel" hat. Zum Speichern / Ändern der Konfiguration müsste der Anwender dann ein Kennwort haben...
Leider weiß ich nicht, nach welchen Schlagwörtern ich hierzu suchen könnte aber hat evtl. jmd. von euch schon mal vor einer ähnlichen Aufgabe gestanden oder hat Tipps?
Vielen Dank!
Hallo zusammen,
ich hab hier eine normale Windows-Anwendung (WinForms), die ein paar Konfigurationsdateien unterhalb von %ProgramData% liegen hat. Die Konfigdateien sind nicht anwenderspezifisch, die Konfig soll für jeden User, der den Rechner benutzt identisch sein.
==> Soweit kein Problem, wenn ich die Dateien gegen Veränderung sichern will - NTFS ReadOnly Rechte für User drauf und gut.
Jetzt kommt aber hinzu, dass bestimmte normale User die Konfiguration Ändern können sollen, andere wiederum nicht. NTFS-Rechte scheiden dann schon mal aus, weil man die sonst individuell pro Rechner konfigurieren müsste und außerdem z.T. Gruppenuser eingesetzt werden.
Was ich jetzt bräuchte ist ein Mechanismus, mit dem die Konfigdateien gesichert werden (also NTFS-mäßig zwar read/write-Rechte für User, aber dafür verschlüsselt), so dass die Anwendung die Dateien immer Lesen kann, aber dann nur nach korrekter Authentifizierung (per Passwort) wieder geschrieben werden können...
Gibt's da evtl. schon fertige Mechanismen für so was oder wie würdet ihr so was realisieren? Key / Passwort fest eincodieren ist jetzt eher nicht so mein Favorit, alles über AD machen / berechtigen würde in ziemlich hohen Verwaltungsaufwand ausarten.
Vielen Dank für eure Ideen schon Mal!
Hast du evtl. die DiscardNull-Eigenschaft des verwendeten SerialPort-Objekts auf true gesetzt?
(MSDN)
Grundsätzlich ist vielleicht auch zu sagen, dass man im Internet sehr oft Hinweise drauf findet, dass die Implementierung der SerialPort-Klasse nicht grade optimal ist. Mich hat's bisher zum Glück noch nicht betroffen...
verwendetes Datenbanksystem: MSSQL
Hallo zusammen,
wir führen aktuell eine Diskussion zum Thema wie man Daten am besten abspeichern sollte / könnte um Sie dann möglichst performant abrufen / anzeigen zu können.
Aktuelle Situation:
In einer DB Tabelle werden Kopfdaten gespeichert, wobei es zusätzlich eine Spalte mit XML-Daten gibt, die dynamische Daten beinhalten (das Quellsystem schickt eine pro Datensatz variierende Anzahl an Attribut- / Wertepaaren mit).
Eig. wäre das ein Fall für eine NoSql SB gewesen, hatten wir aber leicht nicht zur Verfügung.
Wir laden die Daten in eine Clientanwendung und lösen da das XML dann auf, generieren also dynamisch Objekte die dann alle vorkommenden Spalten beinhalten.
Gegenvorschlag aktuell:
Wir erstellen zur Kopfdatentabelle eine Erweiterungstabelle mit gleichem Schlüssel und einer 1:1 Beziehung. Die Erweiterungstabelle soll dynamisch erweitert werden / sich selbst aufbauen, d.h. wenn ein noch unbekanntes Attribut daherkommt soll einfach eine Spalte angefügt werden.
Grund für die aktuelle Diskussion ist die Performance der GUI Anwendung, die die Daten anzeigt. Meiner Meinung nach würde ich lieber Aufwand in die Optimierung des Ladens der Daten stecken als die DB so wie beschrieben umzubauen... Sicher geht dann das Abrufen der Daten wahrscheinlich schneller aber es widerstrebt mir einfach eine Tabelle dynamisch sich selbst verändern zu lassen aufgrund der Daten, die reinkommen.
Was denkt ihr da? Gibt's da sachliche / fachliche Argumente für so was oder ist das "Ansichtssache"?
VG
Hallo zusammen,
ich stehe aktuell vor der Aufgabe in einer SQL-Server Datenbank Daten aus einer weiteren Anwendung zu Auswertezwecken zur Verfügung zu stellen. Das reine Bereitstellen der Daten ist dabei ünerhaupt kein Problem.
Was ich aber bräuchte und mir noch fehlt ist ein möglichst einfach zu bedienenes Reportingtool, mit dem man auf Basis von SQL-Abfragen Reports erstellen kann (in tabellarischer und wenn mögich auch z.T. grafischer Form). Sachen wie die SQL Server Reporting Services sind für die Anwender dabei leider eher nicht geeignet.
Ich habe mir heute mal "Seal Reports" auf Github angesehen - sieht schon mal vielversprechend aus... Kennt jmd. von euch evtl. noch andere, ähnliche Tools ? (Auf Java-Basis gibts da ja einiges, aber aufgrund von div. Problemen mit Java Anwendungen und mangels geeignetem Webserver - die Tools sind ja oft auch webbasiert - habe ich mich eig. auf .Net als Runtime festgelegt)
Für Tipps in der Richtung wäre ich sehr dankbar!
Also wenn ich Webservices, die SAP direkt zur Verfügung stellt, in meine Anwendungen einbinde, dann läuft das so:
Wie's mit der Authentifizierung aussieht kann ich dir jetzt nicht sagen, das liegt dran ob ihr expliziten Login macht (Da kann der Username + PW via NetworkCredentials mitgegeben werden) oder irgendwas anderes (Denke da gibt's auch noch SAP Logon Tokens etc.)
Beim Aufruf der Webmethoden sind je nach Art der Parameter (Table, Import, Export, Changing) und der SAP Typen noch ein paar Sachen zu beachten (z.B. bzgl. Initialisierung von Strukturen vor dem Aufruf; Lustig wird's z.B. bei Date/Time Typen, da muss man die WSDL z.T. manuell anpassen bevor's funktioniert).
-> Wenn das ein wichtiges Projekt ist das drängt und du noch nie mit SAP Webservices gearbeitet hast wär's evtl. einfacher mit dem SAP .Net Connector 3.0 oder über ERPConnect direkt den RFC aufzurufen (Nachteil ist dann, dass der SAP GUI auf dem Client vorhanden sein muss bzw. die librfc32.dll + entprechende Einstellungen in ein paar Systemfiles).
Ein Tipp noch: Wenn der Webservice Aufruf mal grundaätzlich klappt aber z.B. auf SAP Seite nicht in die richtigen Typen konvertiert werden können ist die Transaktion SRT_UTIL eine gute Anlaufstelle.
Viel Erfolg (und Glück) 😉
Hallo Abt,
erst mal vielen Dank für die schnelle Antwort!
Dann war ich ja schon mal gar nicht so falsch dran.. Quartz.Net schaue ich mir dann mal genauer an.. die Pipelines habe ich mir auch schon angesehen, allerdings hätte ich nicht mehrere hintereinandergeschaltete Pipelines...
Ich habe ja keine mehrstufige Verarbeitung sondern nur einmal das Laden der Stammdaten, die dann nicht weiter verarbeitet werden, und das Laden der Bewegungsdaten in verschiedenen Intervallen, die dann wirklich verarbeitet werden.
Da die geladenen Bewegungsdaten dann aber auf die gleiche Art und Weise verarbeitet werden bräuchte ich nur eine BlockingCollection, in die alle Bewegungsdaten geschrieben werden und aus der Sie dann zur Verarbeitung "entnommen" würden.
Hab ich das so richtig verstanden?
Hallo zusammen,
ich habe hier folgende Problemstellung:
Ein Hintergrunddienst soll sich aus einer (angenommen beliebigen) Datenquelle Stammdaten holen, die zur weiteren Datenverarbeitung benötigt werden.
Die Sätze dieser Stammdaten haben eine Eigenschaft, die sie in unterschiedliche Kategorien einteilt, die die weitere zeitliche Verarbeitung regeln. Außerdem sollen die Stammdaten in einem definierten Intervall neu eingelesen werden, damit Änderungen automatisch übernommen und berücksichtigt werden.
Grob gesagt gibt es Datensätze, die alle 1, 2, 5 oder 10 Minuten verarbeitet werden sollen.
Ich wäre jetzt folgendermaßen vorgegangen:
Jetzt gibt es inzwischen aber ja schon neuere Möglichkeiten wie Tasks, Pipelines etc. mit denen ich aber noch nicht konkret gearbeitet habe.
Hat jemand evtl. eine Empfehlung für mich, wie ich so eine Aufgabe möglichst "sauber" realisieren könnte?
Hab mir auch schon Sachen wie Quartz.Net angesehen aber ich denke, dass das für meine Zwecke evtl. oversized ist...
verwendetes Datenbanksystem: MS SQL Server
Hallo zusammen,
ich beobachte hier bei mir aktuell folgendes Phänomen:
Wenn ich einen Anwendung aus VS heraus im Debug-Mode starte und eine einfache SQL Abfrage ausführe (Abfragen von Daten aus zwei Tabellen, die per Left Join verbunden sind), dann läuft die Abfrage relativ schnell durch.
Nehme ich aber das Ergebnis des Debug-Builds und starte die Anwendung ganz normal, dann habe ich auf einmal stark erhöhte Laufzeiten...
Kennt jemand einen Grund, warum sich eine Anwendung anders verhalten könnte, wenn Sie direkt aus VS heraus im Debug-Mode gestartet wurde?
Hallo,
mit dem Matlab Builder den vbprogger verlinkt hat, funktioniert das eigentlich ganz gut.
Meine Erfahrungen (mit einer Version von Matlab, die nicht mehr aktuell ist):
Viel Erfolg!