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 Jelly
Thema: Auswahl eines Setup-Programmes für die eigene Applikation
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Es gibt 2 Arten von Shortcuts: Advertised und Non-Advertised. Und Advertised Shortcuts kann man nicht ändern. Daneben haben solche Shortcuts auch noch den nachteil, dass beim ersten Start vom User nochmals das MSI Paket gebraucht wird. Der User hat aber nicht in allen Fällen Zugriff darauf, und kann somit das Programm noch nicht einmal starten.

Warum Microsoft diesen Weg wählt, weiss ich auch nicht.

Abhilfe jedoch schafft, das MSI kurz mit zB dem Orca Tool ze bearbeiten, und dann in der Property Tabelle den Werten DISABLEADVTSHORTCUTS auf 1 zu setzen.

Thema: Auswahl eines Setup-Programmes für die eigene Applikation
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hast du dir schon Advanced Installer angeschaut. Die Free Edition unterstützt die Installation vom SQL Server zwar nicht, aber ab der Professional aber dann schon.

Thema: Variablen in (XML) Datei speichern
Am im Forum: Datentechnologien

Zitat
auf Knopfdruck wird dann etwas berechnet.

Geht das etwas genauer? Was berechnest du gerne genau. Inwiefern stehen Wohnung 1 + 2 mit dem von dir vorgesehenen Kostenfelder zusammer. Wasserverbrauch, Gas usw. sind doch sicherlich wohnungsabhängig. Da kannst doch, nach meinem Verständnis, dafür nicht ein gemeinsames Feld verwenden.

Aber generell würde ich mir eine Kosten-Klasse bauen, mit den Eigenschaften Name, Cost und Interval. Hast du dann mehrere Kosten (wie Gas, Wasser etc.), einfach nur mehrere Instanzen der Kostenklasse in einer Liste ablegen.

Daneben gäbe es eine Wohnung Klasse mit Name, Personen, Fläche, und eben einer List<Kosten> Referenz.

Speichern kanns du z.B. einfach die Wohnung Klasse indem du sie serialisierst. Kuck dir hierzu mal die generische XmlSerializer Klasse an.

Berechnungen würde ich komplett in einer getrennten Klasse auslageren, die als Parameter wahrscheinlich die Wohnung Klasse benötigen wird.

Thema: Tool für die Entwicklungsplanung (z.B. Gantt-Diagramm)
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Zitat von Khalid
Einfach mal nach "Project Tracking Software/Systems" suchen. Einige Kandidaten wären z.B. Jira...

Jira nutze ich beruflich und sogar auch privat daheim. Für Teams bis zu 10 Leuten kostet das Ganze 10$. Dazu gibt es noch ganz gute Plugins (Greenhopper z.B. für agiles Programmieren)...

Werden es mehr als 10 Leute wird das Ganze allerdings richtig teuer.

Atlassian Jira

Thema: Evaluierung SMS Gateway Anbieter
Am im Forum: Smalltalk

Kannst eventuell mal bei http://www.clickatell.com kucken.

Thema: Thema für 5 minütige Presentation mit nur 3 PPT Folien über einen Aspekt von C# gesucht
Am im Forum: Smalltalk

Vielleicht zu spät, aber hier noch ein Vorschlag von mir.

Wie wäre es mit der ganzen Binding Sache unter .NET. Gerade so Dinge wie INotifyPropertyChanged Interface können in Verbindung mit den GUI Komponenten schon ziemlich cool rüber kommen.

Thema: Vorgehen gesucht - PDF`s automatisiert Drucken (bzw. in Tiff umwandeln)
Am im Forum: Rund um die Programmierung

Es gibt auch virtuelle Imageprinter. Die kannst du als normale Drucker ansteuern, und erstellen dir dann Bilddateien für jede einzelne Seite. Das über Code sauber anzusteuern ist aber sicherlich auch nicht ganz optimal. Aber als Idee wollte ich es aber trotzdem mal in den Raum stellen.

Thema: Suche einfaches Dokumentverwaltungssystem mit C#-API und Versionierung
Am im Forum: Rund um die Programmierung

Eventuell ein gutes Wiki. Wir nutzen Confluence von Atlassian. Imho ziemlich cooles Stück Software.

Thema: updateSystem.NET
Am im Forum: Projekte

Hallo Maximilian,

ups, mein Fehler. Die requestElevation Eigenschaft ist natürlich das Flag, das zu setzen gilt 8)

Kannst dir ein Bier bestellen und mir die Rechnung schicken :D

Thema: Microsoft SQL Server 2008 Lizenzierung
Am im Forum: Smalltalk

@Knick,

warum nennst du hier unterschiedliche DBMS. Das war doch gar nicht die Frage und hilft somit kein wenig weiter. ?(

Thema: Microsoft SQL Server 2008 Lizenzierung
Am im Forum: Smalltalk

Zitat von exaveal
3. Der Kollege mit dem ich telefoniert habe, hat gemeint es würden noch Lizenkosten von 17.000€ kommen.
Da hat dein Kolleger dann aber sicherlich von der Enterprise Version gesprochen. Die sollte eigentlich in den meisten Fällen ein absoluter Overkill sein. Denn um da die Performance rauszuziehen (Clustering etc).) wird auch nochmal eine ebenso teure Hardware vorrausgetzt. Es bringt auch nichts, ein Formel 1 Motor in einen Käfer zu stecken. Da kannst du das Potential nicht ausschöpfen.

Kuck dir unbedingt den Link von Talla an, dort findest du eigentlich alles was man braucht aus erster Hand.

Wie umfangreich ist denn eigentlich deine Software. Von welchem Datenvolumen ist die Rede, wieviele Tabelle ungefähr und für wieviele User ist sie gedacht. Wieviele simultane Zugriffe unterschiedlicher User sind zu erwarten?

Thema: updateSystem.NET
Am im Forum: Projekte

Hi Maximilian,

kann es sein, dass in der Beta Version ein Setzen des Flags

updateController1.processSafetyLevel = updateSystemDotNet.processSafetyLevel.AskNever;

keine Auswirkungen mehr hat. Jedenfalls poppt bei mir trotzdem das Windows Fenster auf, um das Update mit Admin Rechten auszuführen. Ich möchte das eigentlich unterbinden.

Thema: [erledigt] WCF Service: erste Anfrage sehr langsam
Am im Forum: Netzwerktechnologien

Das liegt am IIS. Die Probleme hatte ich auch mit klassischen Webservices, und hab die eigentlich immer noch. Das Hochsetzen des Timeouts im IIS hat rein gar nichts bewirkt. Wenn 20 Minuten lang keine Anfrage an den Service kam, hat IIS die Instanz gekillt. Der nächste Client hatte dann Pech und musste 20 Sekunden warten. Ich wusste mir wirklich nicht mehr weiter, und habe letztlich einen blöden Dummy Windows Service laufen, der alle 30 Sekunden eine leere Methode im Webservice aufruft. Dadurch wurde der IIS dann gehindert, nach 20 Minuten die Instanz zu killen.

Das war IIS 6. Wie sich das heute beim IIS 7 verhält, weiss ich nicht.

Aber seitdem meide ich IIS zum Hosten meiner Services, und lagere sie selbst direkt in einem Windows Service ab. Läuft seitdem wesentlich flotter. Liegt aber eher am TCP/IP Binding des WCF Service.

Diese Timeout Geschichte beim IIS kann ich sowieso nicht nachvollziehen. Wenn ich einen Dienst starte, ob IIS oder sonst einer, erwarte ich dass er verfügbar ist, und nicht erst alles neu vorkompiliert werden muss beim ersten Aufruf, nur um serverseitig ein paar Resource zu sparen.

Thema: XML Deserialiseren mit Parent Info
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Yes... Das Beispiel leuchtet ein. Das Modell erlaubt also nicht nur eine n:1 Beziehung zwischen Child und Parent, sondern eine n:m (mehrere Parents). Das kann in gewissen Situationen durchaus gefordert sein.

Danke für den Einblick.

Thema: Dateien in Datenbank?
Am im Forum: Datentechnologien

Zitat von gfoidl
Auch das Umbennen ;-)
Triviales Beispiel: Ein Dateiname enthält einen (Rechtschreib-) Fehler und ein eifriger Mitarbeiter korrigiert das -> die DB wird aber nicht (automatisch) aktualisiert.
Eigentliche alle Operationen am offenen Herzen sind kritisch.
Wenn man wirklich viele solcher Dateien im Filesystem ablegt, tut man gut daran, auch eine Ordnerstruktur einzuführen. Ich hatte mal in der Vergangenheit meine Files einfach in ein Serververzeichnis gepackt. Damals ging es um tägliche Scans. Nach 6 Monaten lagen 50.000 Dateien im Verzeichnis rum. Das macht den Zugriff sicherlich nicht schneller. Also habe ich angefangen, ein Verzeichnis mit dem Jahr anzulegen und 12 Unterverzeichnisse für den Monat. Damit blieb das Ganze überschaubar und auch Backups gestalteten sich wesentlich schlanker... Aber wegen dieser neuen Verzeichnisstruktur kam es dann tatsächlich einmal vor, dass sich ein User kurz verklickt hat und einfach mal so mittels Drag and Drop ein Verzeichnis sonstwo verschoben hat.

Deshalb wiederhol ich mich gern: Operationen am offenen Herzen sind immer kritisch, und die sollte man vermeiden.

Und da ich Verfechter von 3-Tier bin (gfoidl sicher auch :-) ), sollten Zugriffe von Clients nic direkt auf die DB erfolgen oder direkt Zugriff auf das Filesystem haben. Sicherheit kann man dann vergessen und es passieren so Dinge wie oben geschildert. Ausserdem kann ich nicht einfach mal so einen bestimmten Datensatz für eine Benutzer sperren. Auf DB Ebene geht das veilleicht noch, auf Fileebene wirds schon schwieriger.

Wenn also eine 3-Tier Architektur vorliegt, spielt es imho keine Rolle, wo die Blobdaten abgelegt sind, in der DB oder im FS. Erfolgt der Zugriff direkt vom Client auf die DB, würde ich vermutlich alles in die DB packen.

Wieviel Daten fallen denn so im Monat an, und wie gross sind die einzelnen Files durchschnittlich?

Thema: XML Deserialiseren mit Parent Info
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo gfoidl,

danke für den Codeschnippsel. Mir waren die Parameter im DataContractSerializer nicht alle bekannt. So scheint es also zu klappen.

Aber ich frage mich eigentlich, wozu diese Id's im XML benötigt werden? Eigentlich geht doch schon aus der XML Struktur selbst hervor, wer der Parent ist! Ok, du hast die ganzen Child-Nodes nochmals in Children gruppiert, aber der Parent Node ist dem ganzen doch eigentlich übergeordnet.

Thema: XML Deserialiseren mit Parent Info
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat von gfoidl
der XmlSerializer unterstützt keine zyklischen Abhängigkeiten. Mit dem DataContractSerializer wäre das möglich. Falls du den verwenden kannst nimm diesen
Den könnte ich schon verwenden. So direkt ist mir da aber auch nicht bekannt, wie ich dort eine Parent Eigenschaft berücksichtigen kann?

Momentan nutze ich deinen letzten Vorschlag, d.h. nach der Deserialisierung iteriere ich durch meine Collections und setze entsprechend die Parent Eigenschaft. Das find ich aber unschön.

Thema: XML Deserialiseren mit Parent Info
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich habe ein XML File, mit 2-3 Tiefenebenen. Das Deserialisieren mach ich über die Serialzer Klasse. Das Ergebnis sind dann Klassen mit Unterklassen und Unterunterklassen. Das klappt wunderbar, ist ja auch nix weltberaubendes. Alles was ich brauchte ist eben meine Datenklassen so aufzubauen und mit den XmlAttributen zu versehen, dass das Deserialisieren eben passt (ein xsd Schema liegt mir nicht vor).

Ich habe aber nun das Problem, dass ich die Parent Klasse aus meiner Childklasser heraus brauche. XML Strukturen sind ja immer als Baum zu verstehen, d.h. abgesehen von Root Node haben alle Nodes auch immer einem Parent. Und aus dem Parent Node bräuchte ich aus meiner Childklasse eben die Parentinstanz.

Geht das irgendwie mit Bordmittel beim Deserialisieren oder was muss ich da tun? Ein geeignetes XmlAttribut habe ich dazu jedenfalls nicht gefunden.

Thema: Zugriff aus Datenbankprojekt
Am im Forum: Datentechnologien

Bernd hat dir doch einen Link mit allem Nötigen geschickt. Also wo genau liegt dein Problem. Du hast Connectionstring, du hast deinen Namespace System.Data.SqlClient mit allen nötigen Klassen, und ein Tutorial wie du auf die DB zugreifst. Einziger Unterschied ist, dass es sich um MSSQL und nicht um MySQL wie in Bernds Tutorial handelt.

Thema: WCF Benutzername und Passwort
Am im Forum: Netzwerktechnologien

Die TAN Idess ist gängig in gesicherten IT Systemen. Um sich einzuloggen, braucht man demnach 2 Dinge: Ein Login und Passwort (Wissen) und eine TAN Liste (Haben). Einzeln sind sie nicht zu gebrauchen. D.h. verliere ich meine Liste, kann ein Dritter damit alleine nichts anfangen. Erschnüffelt er mein Passwort (z.B. durch ein Hooktool o.ä.), fehlt ihm die TAN Liste. Das Prinzip des Wissens und Habens. Gänge Systeme, die genau diese Art an Sicherheit bieten sind z.B. Token geschützte VLAN Zugänge (siehe z.B. RSA, und Zertifikate im allgemeinen auch (Hier brauch ich al User mein Zertifikat (Haben) und mein Passwort um es zu nutzen (Wissen)).

Mit diesem Verfahren ist man alleine schon auf der sicheren Seite, dass sich kein Dritter als einen selbst ausgeben kann. Wenn ich mich in ein System einlogge mit meinem Login, Passwort und einmal gültigem TAN, so kann das Gegenüber schons sicher sein, dass es sich tatsächlich um mich handelt. Einzige Möglichkeit wäre den Datenstrom abzufangen, und gar nicht an den Server weiterzuleiten.

Deshalb sollte natürlich die gesamte Verbidnung idealerweise auch noch verschlüsselt sein. Das ist aber nicht in allen Anwendungsfällen überhaupt nötig.

Thema: WCF Benutzername und Passwort
Am im Forum: Netzwerktechnologien

Hängt von ab. Aber um deine User 100% zu authentifizieren, und auch die gesamte kommunikation zu verschlüssen, bleibt dir wohl nur ein Zertifikat übrig.

Wenn die Kommunikation selbst jedoch nicht verschlüsselt zu sein muss, dann gibt es auch andere Möglichkeiten. Passwörter würde ich natürlich nicht im Klartext übermitteln, aber ich dachte da eher an eine Art TAN Liste für deine User, d.h. eine Liste mit Code (z.B. Guids) die nur innerhalb einer Session ihre Gültigkeit haben und danach verfallen... Nur mal so als Idee um dem Murks mit den Zertifikaten aus dem Weg zu gehen.

Thema: WCF Benutzername und Passwort
Am im Forum: Netzwerktechnologien

Für wen soll der Service denn erreichbar sein. Internet oder nur intern. Wenn nur intern, kannst du nicht über Active Directory deine Anwender authentifizieren?

Falls Internet, so besteht der einzige sichere Weg über Zertifikate. Das zu implementieren ist in der Tat nicht trivial. Da hab ich mich ebenfalls schon einmal rangewagt und habs dann irgendwann aufgegeben.

Thema: Setup-Projekt mit Formular für Eingabe der Zugangsdaten für Sql Server
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Ich würde eine Installer Klasse in mein Projekt einfügen, dess Aktion beim Installieren des Setups durchgeführt wird. Den gleichen Code kannst du theoretisch auch nutzen, um später aus deinem Programm heraus dein Dialog nochmals aufzurufen.

Aber Vorsicht: Silent Installationen werden somit nicht mehr komplett im Hintergrund durchgeführt.

Thema: updateSystem.NET
Am im Forum: Projekte

Zitat von Alfons
lag wohl wirklich daran, das FTP und HTTP getrennt waren. Ist mir nicht klar gewesen. Vielleicht könntest du ja in dem neuen Update da irgendwie drauf hinweisen, um dem nächsten User so eine Plackerei zu ersparen
Ich denke, das sollte eigentlich jedem klar sein, oder?
Wenn ich es per FTP irgendwo hochlade, und später über HTTP darauf zugreife, ist doch aber wohl klar dass das nur gehen kann, wenn du auf den gleichen Path auf dem gleichen Server verweist.

Thema: WCF: Gleichzeitige Übertragung von Nachrichten über mehrere Callback-Kanäle
Am im Forum: Netzwerktechnologien

Danke für das Zitat.

Wichtig zu wissen ist es allemal.

Wie ich das sehe gibt es also 3 Möglichkeiten wann ein OnWay Aufruf trotzdem blockieren kann:

    [1.]Verbindung zum Client kann nicht hergestellt werden
    [2.]Zu grosse Objekte werden zum Client verschickt
    [3.]Der Server kann irgendwelche Informationen nicht schnell genug lesen

zu 1.:
Die Verbindung sollte eigentlich stehen, es sei denn es gab mal einen Netzwerkaussetzer o.ä. Das kann natürlich immer mal passieren.

zu 2.: Da ich eigentlich den Client vom Server nur anstupse um ihm mitzuteilen, da ist was das dich interessiert, kann das bei meinen Fällen nicht eintreten

zu 3.: Auch das tritt nicht ein, da ja lediglich ein besseres Ping zum Client geschickt wird.

Punkt 1. kann aber allerdings in der Tat zu einem Problem führen.

Thema: WCF: Gleichzeitige Übertragung von Nachrichten über mehrere Callback-Kanäle
Am im Forum: Netzwerktechnologien

Zitat von gfoidl
Dauert das Enqueue zu lange könnte auch ein Timeout auftreten - aber ich denke das ist i.d.R. sehr selten.
Kannst du mir ein Scenario schildern, bei dem ein Enqueue Probleme macht. Ich hatte zumindest noch keine negativen Erfahrungen damit.

Thema: WCF: Gleichzeitige Übertragung von Nachrichten über mehrere Callback-Kanäle
Am im Forum: Netzwerktechnologien

Um diesem Problem aus dem Weg zu gehen sind Operationen in meinen Callback Verträge immer mit dem IsOneWay Attribut versehen. Dadurch funktioniert der Server nach dem Prinzip "Fire and Forget". Timeouts treten somit in meinen nicht auf.

Thema: Prüfen ob ein beliebiger Dialog geöffnet wurde
Am im Forum: GUI: Windows-Forms

Application.OpenForms;

ist wohl das was du suchst.

Thema: Überschreiben von digitalen Signaturen
Am im Forum: Rund um die Programmierung

Stimmt, so gesehen natürlich völlig nachvollziehbar.

Meine Signatur besagt also letztlich nur, dass ich die Software signiert habe, und sie so dem Kunden gegeben habe. Ein anderer kann ja meine Signatur nicht anhängen, dazu fehlt ihm der private Key und das zugehörige Passwort.

Ich hatte da wohl einen Querdenker
Danke für die Aufklärung

Thema: Überschreiben von digitalen Signaturen
Am im Forum: Rund um die Programmierung

Ich hab da mal eine Konzeptfrage.

Ich besitze ein Class 2 Zertifikat zum Signieren von EXE, DLL und MSI. Damit ist also der Ursprung der Software beim Kunden als glaubwürdig eingestuft.

Mir ist jetzt aber aufgefallen, dass ich mit meinem Zertifikat nun jede andere bereits VON MIR NICHT signierte Anwendung, also fremde Anwendung, diese Signatur durch die meinige ersetzen kann.

Das kann mir vielleicht mal einer erklären. Somit kann ich doch Software als meine vorgaukeln, obwohl sie gar nicht von mir ist.

Das kann doch aber nicht Sinn und Zweck von digitalen Codesignaturen sein?