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 Coder007
Thema: Architektur Frage bzgl. Daten Management innerhalb einer Firma
Am im Forum: Rund um die Programmierung

Man muss Desktopsoftware übrigens auch nicht unbedingt installieren. Wir entwickeln Softwarelösungen im CAD/PDM Bereich, Teile der Software sind z.B. als Plugins in die entsprechenden Systeme eingebunden. Trotzdem wird unsere Software oft nicht installiert, sondern liegt auf einem Netzlaufwerk und kann einfach gestartet werden. Kann man auch recht einfach in viele CAD Systeme einbinden, indem man einfach zentral auf die entsprechenden Verzeichnisse verweist. Wir haben auch einen Application Server, sowas bietet sich natürlich schon an, aber der ist optional. Wenn die Software aktualisiert werden muss, gibts einfach ein Wartungsfenster und die Software wird zentral ausgetauscht. Das funktioniert auch bei Kunden, bei denen unsere Software an mehreren tausend Arbeitsplätzen eingesetzt wird.

Thema: Ist ein eigener return-Type bei COM-Interop möglich?
Am im Forum: Rund um die Programmierung

Ich weiß nicht so genau, was .NET hier macht...

In C++ würde ich das COM Objekt irgendwie so aufbauen:

HRESULT GetKeyList(IKeyList ** list);

Normalerweise wird erwartet, dass Methoden von COM Objekten HRESULT zurückgeben. Steht auch in den Design Rules. Ist in .NET jetzt aber wiederum nicht üblich.
IKeyList wär dann wieder ein Interface und es würde eine Klasse geben, die das implementiert. Das wurde aber anscheinend auch in der Form generiert, tlh Dateien sind mir nicht geläufig.

Was heißt überhaupt type mismatch in C++? Das kann doch eigentlich nur ein HRESULT return code sein, E_TYPEMISMATCH oder so. Das würde aber kommen, wenn man die Methode über IDispatch aufrufen würde. Das seh ich bei dir aber nicht, ich seh einen direkten Aufruf.

Thema: Netzwerk-Traffic aufzeichnen und wieder abspielen
Am im Forum: Netzwerktechnologien

Wir haben die Sockets natürlich auch nicht selber implementiert ;) Nur, damit es hier keine Missverständnisse gibt.
Kannst du die ganze Zeit einen Debugger mitlaufen lassen? Breakpoints an den wichtigen Stellen setzen, wo sich das Programm beenden könnte, und natürlich Exceptions aktivieren.
Ansonsten kannst du schon versuchen, mit tshark den Traffic aufzuzeichnen und dann nochmal abzuspielen. Da du schreibst, dass du das schon probiert hast, was genau hat dann nicht geklappt?

Thema: Netzwerk-Traffic aufzeichnen und wieder abspielen
Am im Forum: Netzwerktechnologien

Naja, zumindest wenn du nach einem guten HowTo fragst, ist ein Google Link als Antwort nicht verkehrt ;) Ich meine, ein HowTo kannst du sicher auch selber finden, und wenn du konkretere/andere Antworten haben willst, solltest du auch konkretere/andere Fragen stellen. Zumindest was diesen einen Satz und die Antwort darauf betrifft.

Solche Netzwerkprobleme können ziemlich kompliziert zu finden sein. Ich schreibe auch nebenbei an einer Serversoftware (nebenbei, weil die Serverkomponente eigentlich nur einen ganz kleinen Teil der Gesamtsoftware ausmacht) und wir hatten über die Jahre schon alle möglichen komischen Probleme damit. z.B. wurden die Verbindungen irgendwann nicht mehr zugemacht und das hat den Server nach einer Weile gekillt. Da mussten wir auch eine ganze Weile suchen, warum das Zumachen der Verbindungen von heut auf morgen nicht mehr ging, an der Software wurde nichts geändert, der Server wurde nur auf eine frische VM umgezogen. Selbe Windows Version, eigentlich alles gleich. Wir haben auch tatsächlich nicht rausfinden können, was der Unterschied war, aber irgendwann dann doch einen Bug in unserer Software gefunden. Oder irgendwann wars auch von wieder heut auf morgen viel langsamer usw...
Was ich sagen will, riesige network captures aufzuzeichnen und wieder durchlaufen zu lassen ist nicht unbedingt der richtige Weg, das Problem zu finden, oder zumindest nicht gleich. Kannst du das Problem schon eingrenzen? Wir haben über die Jahre wie gesagt viele Probleme untersuchen müssen und die hatten auch alle möglichen unterschiedlichen Ursachen. Kann sein, dass es auf die Menge ankommt, oder auf die zeitlichen Abstände, oder auf die Intervalle, oder auf ganz bestimmte Pakete zu einem bestimmten Zeitpunkt... Hatten wir alles schon. Kann sein, dass du den capture wieder abspielst und das Problem dabei nicht auftritt.

Wegen Wireshark. Ich habs länger nicht mehr so intensiv benutzt, aber so weit ich mich erinnern kann, hatte das früher Stabilitätsprobleme bei großen Captures. Also zumindest tshark verwenden und nicht die GUI. Aber ich meine, das hat auch so seine Probleme. Im Wireshark Blog (Wireshark Blog) steht, dass sie da was verbessert haben und beim rotieren der Dumpfiles auch der Speicher aufgeräumt wird, aber ob das jetzt auch wirklich released wurde und wie gut das funktioniert, weiß ich nicht.

Thema: tcp/ip header: raw packets per byte array erzeugen
Am im Forum: Netzwerktechnologien

Nein, das geht nur auf Treiberebene. Und das macht eben winpcap und bietet dafür eine Schnittstelle für User Prozesse.
Das Zusammenbauen der Header kannst aber wahrscheinlich wiederverwenden. Du brauchst winpcap dann nur, um sie zu versenden.

Thema: tcp/ip header: raw packets per byte array erzeugen
Am im Forum: Netzwerktechnologien

Das geht auch nicht und ist nicht gewollt. Mit der WinSock API kannst du auch keine Raw TCP Packets versenden. Das kannst du aber mit WinPCap machen. Dafür gibts auch einen .NET Wrapper, ich kann aber nichts dazu sagen, wie gut der ist.

Thema: Windows Dienst: Performance Probleme, hohe Anzahl physischer Threads
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Schau dir das mit Process Explorer an. Damit müsstest du die Threads und deren Call Stack sehen können.

p.s. Ach ja, und natürlich kannst du ganz einfach reindebuggen. Attachen, anhalten, schauen was die Threads so machen.

Thema: Dateien ohne Fragmentierung speichern
Am im Forum: Rund um die Programmierung

Kannst du irgendwelche Voraussagen über die Größen der Dateien treffen? Wenn die z.B. alle ähnlich groß sind, könntest du die Dateien da lassen und nur als frei markieren, statt sie zu löschen. Dann wär der Speicherbereich bereits reserviert.

Thema: Outlook Mailitem - Zugriff auf Anlageninhalt
Am im Forum: Office-Technologien

Viel mehr steht in der Doku zu der Klasse auch nicht dabei. Du könntest höchstens mal schauen, was für Schnittstellen das Attachment Objekt implementiert, z.B. IDataObject oder IPersistStream wären interessant.

Thema: IMoniker und Prozess ID
Am im Forum: Rund um die Programmierung

Hast du das Excel.Application Objekt oder kommst du irgendwie ran? Dann könntest du dir das Fenster holen und den dazugehörigen Prozess.
Was für IMoniker hast du genau an der Hand?

Thema: 2 Jahre C# Erfahrung - Was als nächstes lernen?
Am im Forum: Smalltalk

Ich würde mit einem Projekt anfangen, das dir Spass macht. Ich habe nie eine Sprache "gelernt". Ich habe vor über 15 Jahren mit Delphi angefangen und kaum konnte ich Variablen deklarieren, schon habe ich mit einem größeren Projekt angefangen. Alles andere kommt nebenbei, weil du das sowieso brauchen wirst. Nur wirst du es vielleicht von sich aus finden oder umgekehrt sofort sehen, wo du das neugelernte in deinem Projekt einsetzen könntest.

Thema: Virtuelles Dateisystem bzw. mappen einer Verzeichnisstruktur
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat von TheDarkEye
DOKAN hatte ich im Einsatz, musste allerdings feststellen, dass es mir Dateien zerstörte (vor allem MS Office und PDF waren betroffen).

Es fällt mir schwer das zu glauben. Hab das vor Jahren auch mal benutzt. Es war zwar ziemlich langsam, aber soweit ganz stabil, und so gravierende Probleme wie zerstörte Dateien sind nie aufgetreten.

Thema: Microsoft: Visual Studio Community ersetzt Express-Editionen
Am im Forum: Szenenews

Ich glaub, das ist so langsam offtopic... Mag sein, dass du Recht hast. Ich würde hier meine Hand jedenfalls für nichts in Feuer legen. Dass Microsoft in den letzten Jahren sehr stark zugelegt hat, ist klar. Auch dass Apache Marktanteile verliert, z.B. eben auch wegen nginx. Aber die genauen Werte kennt niemand, und einen IIS Marktanteil von 35% glaube ich einfach nicht. Erstens, weil keine einzige Firma, in der ich bisher gearbeitet habe, den IIS eingesetzt hat (nicht mal die Windows Firmen, und eine war sogar eine .NET Softwareschmiede und hat auch etwas ASP.NET gemacht). Zweitens gibts die ganzen riesigen Unternehmen, die keinen IIS einsetzen würden, z.B. wie du selber gesagt hast, Google oder Facebook. Ich weiß jetzt nicht, aber ich würde davon ausgehen, dass auch Oracle, Apple, Amazon und viele andere keinen IIS einsetzen. Drittens gibt es immer noch sehr sehr viele Hoster und Server, die Linux und Apache einsetzen. Viertens läuft der IIS nur unter Windows, Apache hingegen läuft unter Windows UND unter so ziemlich allen anderen Systemen, hat also mehr Verbreitungspotenziall. Fünftens ist ist die Hürde, einen Apache einzurichten einfach niedriger. Viele, die als Schüler oder Studenten mit der Webentwicklung anfangen wollen, installieren wahrscheinlich erstmal einen Apache, und dann kennen die sich damit schon aus. War zumindest zu meiner Zeit so. Sechstens sehe ich Microsoft mittlerweile einfach grundsätzlich auf dem absteigenden Ast. Die sind in allen Bereichen bei weitem nicht mehr so dominant wie früher, nicht mal was Spiele angeht. Die Menschen sind jetzt viel eher bereit, sich nach was anderem umzusehen.
Deswegen halte ich einen Marktanteil von 35% einfach noch für viel zu hoch. Ich wäre auch eher geneigt zu glauben, dass der Anteil sinkt, aber da kann ich sicher falsch liegen.

Thema: Microsoft: Visual Studio Community ersetzt Express-Editionen
Am im Forum: Szenenews

Zitat von Abt
NetCraft sagt jedoch auch, dass 62% der Webseiten im Februar durch den IIS ausgeliefert werden, was sie den Marktanteilen der Cloud (u.a. Azure) zuteilen.

W3Tech zeigt aber ein ganz anderes Bild, da sind es nur 13,5% und es geht weiter abwärts:

W3Tech: Usage statistics and market share of Microsoft-IIS for websites

Und ganz ehrlich, das halte ich für deutlich realistischer.

Ich weiß nicht, ob sich in Bezug auf .NET und Mono viel ändern wird, ich glaub ehrlich gesagt eher nicht.

Was ich aber wirklich toll finde ist, dass man mit der Community Edition nun auch Plugins und AddOns laden kann. Für mich als C++ Entwickler war VS Express immer sehr suboptimal.

Thema: Programmierer Blogs mit praktischen Tips & News? Gibts da welche die ihr besucht?
Am im Forum: Buchempfehlungen

So ein Blog wäre auch ziemlich uninteressant... Ich habe wahrscheinlich jeden Tag Probleme, für deren ich Lösung ich nach Anregungen suche und dabei finde ich natürlich auch interessante Blogbeiträge. Nur suche ich nicht grundsätzlich nach irgendwelche potenziell interessanten Problemen, sondern nach ganz konkreten, die ich jetzt grad habe. Irgendwelche anderen Probleme interessieren mich meist überhaupt nicht, dafür habe ich keine Zeit und könnte mich nicht darauf konzentieren oder mir irgendwas merken.

Thema: C# Mehrere Netzwerkkarten Traffic Routing HttpClient?
Am im Forum: Netzwerktechnologien

Das wäre normalerweise nichts, was die Anwendung selber entscheidet, das entscheidet der Administrator. Unter Linux würdest du das mit iptables definieren, unter Windows mit route.

Sowas kann durchaus Sinn machen, auch wenn die beiden Netzwerkkarten mit dem gleichen Netzwerk verbunden sind. Stell dir vor, du hast zwei Möglichkeiten ins Internet rauszukommen, eine schnell und teuer, die andere nicht so schnell, dafür aber eine billige Standleitung. Für bestimmte Dienste willst du die schnelle Verbindung nutzen, für den Rest die andere.

Thema: COM DLL mit GUI für ein Drittsystem
Am im Forum: GUI: Windows-Forms

Zitat von BlackEye
Dann wäre hier noch die Frage zu klären, ob der Verwender dieser DLL das .NET Framework installiert haben muss oder nicht.

Ja. Das war einfach zu beantworten ;)

Die andere Frage zu beantworten würde ich mich jetzt nicht trauen, habe schon seit Jahren nicht mehr mit .NET programmiert. Ich kann mich dunkel erinnern, dass ich sowas schon mal gemacht habe, dürfte jetzt aber schon 7-8 Jahre her sein. Ich vermute, dass du Application.Run irgendwo aufrufen müssen wirst. Probiers am besten mal aus.

Thema: "Richtiges" loggen: Welche Ereignisse/Informationen sollten geloggt werden? Nur Exceptions?
Am im Forum: Rund um die Programmierung

Zitat von Palin
Zitat von herbivore
je mehr sich das Laufzeitverhalten durch das Logging ändert, desto eher findet man Race-Conditions, die ohne Logging verborgen geblieben wären. :-)

Der Klassiker ist natürlich beim Kunden treten Race-Conditions auf, man aktiviert das Logging und sie treten nicht mehr auf.

Ich muss sagen, zumindest gefühlt ist das auch der Fall, der viel häufiger auftritt. Wir haben auch öfter mal Timing Probleme. Kaum versucht man das irgendwie einzugrenzen und baut paar zusätzliche Logausgaben ein, schon lässt sich das Problem nicht mehr nachvollziehen.

Thema: "Richtiges" loggen: Welche Ereignisse/Informationen sollten geloggt werden? Nur Exceptions?
Am im Forum: Rund um die Programmierung

Zitat von Parso
Wenn man jeden Methoden Ein- und Ausgang logt, gehe ich ganz stark davon aus, dass Clean-Code Principles , UnitTests und Code-Reviews absolute Fremdbegriffe sind, da wäre man mit Refactorings und Schulungen besser dran, als nachträgliche Flickschusterei und Schuldzuweisungen über Loggings

Ich meinte übrigens nicht, dass wir jede Methode loggen. Das geht eh nicht, da gibts auch viel zu viele Low Level Methoden, bei denen es auf Performance ankommt und man mit den Daten eh nichts anfangen könnte (z.B. Featureerkennung in Meshes, was will man da großartig loggen?). Aber der grundsätzliche Abflauf wird schon geloggt, so in der Art, habe vom System eine Datei bekommen, ist eine STEP Datei -> Variante 1, Features sind schon drin. STL Datei bekommen -> Variante 2, Features müssen erkannt werden. Bei Variante 2 Mesh schaut kaputt aus -> Untervariante: versuchen Mesh zu reparieren. Dann gehts z.B. irgendwo weiter und man muss irgendwas mit Daten aus SAP anreichern, dann wird es auch geloggt und hier dann vielleicht auch die Daten selber, die man bekommen hat.
Wie der Code bei Leuten ausschaut, die jede Methode loggen, weiß ich nicht, aber grundsätzlich finde ich Ablauflogging schon wichtig und das auch nichts mit Unit Tests oder Reviews zu tun. Das sind keine "Fehler". Das sind hochkomplexe Prozesse, die unmöglich grundsätzlich absolut "fehlerfrei" laufen können. Fehler hab ich absichtlich in Anführungszeichen geschrieben, weil es müssen keine Fehler in der Software oder im Prozess sein. Das Endergebnis mag vielleicht in einigen Punkten von den Erwartungen abweichen. Und es muss auch nicht gleich um Schuldzuweisungen gehen, sondern vielleicht darum, auf Probleme aufmerksam zu machen und die zu beheben. Wenn die Normierungsstelle etwas falsch einträgt und das erst dem Ingenieur auffällt, ist es vielleicht nicht uninteressant zu wissen, wo die falschen Daten herkamen. Oder könnte sein, dass wir z.B. ein CAD Modell erzeugen, dass irgenwelche Quaitätsnormen (VDA usw.) nicht erfüllt. Kann auch viele Gründe haben, warum das Modell so erzeugt wurde.

Thema: Eine sinnvolle Basis für ein (beliebiges)gutes Browergame
Am im Forum: Rund um die Programmierung

Es ist nicht so wirklich klar, was du genau willst, deswegen ist auch nicht so wirklich klar, ob das was du dir vorstellst, sinnvoll ist.
500-8000 Benutzer hört sich erstmal nach sehr wenig an, warum gehst du nicht von mehreren hundert tausend aus? Vielleicht ist es bei dem Spiel, an das du denkst, eine sinnvolle Größe, vielleicht hast du die Obergrenze aber auch willkürlich viel zu niedrig gewählt.
Was sind langlaufende Berechnungen und warum denkst du hier gerade an Cron Jobs? Ist auch alles überhaupt nicht klar. Vielleicht lohnt es sich hier eher (je nach Spiel) etwas Aufwand in ausgefeiltere Schedulingalgorithmen reinzustecken, damit nicht so viele und nicht so komplizierte Berechnungen anfallen.
Warum denkst du jetzt grad an Verschlüsselung und erst recht Kryptographie? Das hört sich erstmal so an, als ob du das selber implementieren wollen würdest, was immer eine schlechte Idee ist. Es ist besser, Standardprodukte zu nutzen und da brauchst du dir jetzt auch noch nicht so wahnsinnig viele Gedanken drüber machen. Auch bei SSL gibts paar Punkte, die man beachten sollte, aber das ist nur ein Nebenaspekt, der im Moment eigentlich überhaupt keine Rolle spielt. Das Schreiben des Spiels ist eine Sache, und wie das später gehostet wird eine ganz andere.
Mir scheint deine Technologieauswahl sehr plattformspezifisch zu sein. Es kann völlig in Ordnung sein, sich nur auf die Microsoftplattform zu beschränken, kommt aber auch wieder drauf an, was du willst. Und was genau meinst du mit XAML? Silverlight? Das ist ziemlich tot und damit schränkst du deinen potenziellen Nutzerkreis noch viel stärker ein.
Die Datenbank sollte nach Möglichkeit austauschbar sein. Beim SQL Server musst du beachten, dass die kostenlose Express Version auf 10GB bechränkt ist und wahrscheinlich auch nicht wirklich skalierbar ist (der Aspekt hat mich bisher nie interessiert, aber für ein Browserspiel ist das schon wichtig). Und wie Palin geschrieben hat, könnte eine NoSql Datenbank durchaus sinnvoll sein. Ist aber auch wieder Geschmackssache.

Thema: Nenne deinen Fall, wo du denkst, ohne modalen Dialog geht es nicht, und ich nenne eine Alternative
Am im Forum: Rund um die Programmierung

Zum einen habe ich echt kein Problem mit modalen Dialogen und habe auch noch nie irgendwas gehört, dass sich jemand beschwert hätte. Wir haben z.B. teilweise viel größere Usability Probleme ;) Und eigentlich mag auch ja auch niemand diese Eigenentwicklungen, die sich nicht an den Standard halten. Bei Star Office hat ja auch jeder über die komischen Dateidialoge geschimpft. Da finden sich Beispiele ohne Ende.

Zum anderen sehe ich den Mehraufwand schon. Man muss sich an zig Stellen überlegen, was alles passieren könnte, wenn irgendwelche Dialoge nicht modal sind. Das muss man sich jedes mal im Detail anschauen und dann kommt später doch jemand, erweitert oder ändert irgendwas und schon hat man ein verstecktes Problem.
Und dann gibts auch noch technische Probleme. Wir haben auch eine Komponente, die man in NX integrieren kann. NX hat praktisch keine modalen Fenster. Deren GUI Api können wir aber auch nicht ohne weiteres benutzen. Wir haben natürlich schon hunderte eigene Fenster, die weitere Fenster aufmachen können usw. Das alles irgendwie so zu verpacken, dass beim Erzeugen von einem Fenster alles in ein "NX Fenster" verpackt wird, würde technisch vielleicht irgendwie gehen, wär aber sehr viel Aufwand und wahrscheinlich auch mit zig Problemen verbunden, die jetzt noch nicht abzusehen wären. Jedenfalls hatten wir Riesenprobleme mit den nicht modalen Dialogen. Wir machen z.B. ein Standard Datei Öffnen Dialog auf, man verklickt sich, das Fenster verschwindet im Hintergrund, die anderen Fenster sind deaktiviert und den Dialog kriegt man auch nicht mehr in den Vordergrund. Oder man macht irgendein Fenster auf, kann aber NX beenden, ohne das Fenster explizit zuzumachen. Dann entlädt NX zuerst die Plugins (auch uns) und zerstört dann die Fenster oder irgendwie so. Komische Abstürze ohne Ende.

Thema: "Richtiges" loggen: Welche Ereignisse/Informationen sollten geloggt werden? Nur Exceptions?
Am im Forum: Rund um die Programmierung

Fehler sind nicht unbedingt Exceptions und die haben sowieso wenig mit dem Logging zu tun. Ich bin C++ Entwickler und wir verwenden in unserer Software überhaupt keine Exceptions.
Komplette Abläufe zu loggen finde ich wichtig. Wir können z.B. parametrische 3D Modelle für verschiedene CAD Systeme generieren und in verschiedene PDM Systeme einchecken und dabei mit Daten aus verschiedenen Datenquellen, z.B. anderen PDM Systemen oder SAP anreichern. Das sind komplexe Abläufe mit dutzenden unabhängiger Komponenten, die vielleicht Stunden dauern können. Dabei kann es sehr viele Sonderfälle geben und die Fehler sind auch öfter mal nicht reproduzierbar. Nicht alle Komponenten sind von uns, einige werden von Partnern oder Consultants oder den Kunden selbst geschrieben. Für viele Schitte gibt es verschiedene Möglichkeiten und Fallbacks. Wenn am Ende etwas rauskommt, was vielleicht nicht ganz richtig ist, kann es sehr viele Ursachen haben. Da ist es schon wichtig, wenn man ins Log schauen und genau nachvollziehen kann, was eigentlich passiert ist. Und ich meine dabei nicht mal, dass der Einstieg und der Ausstieg jeder Methode protokolliert wird, das wär zu viel und zu uninteressant. Aber die einzelnen Komponenten protokollieren schon ziemlich genau, was sie machen.
Nachweisen zu können, dass ein Fehler beim Kunden liegt, ist oft auch erstaunlich wichtig. Unsere Hauptzielgruppe sind größere Konzerne und die treten kleineren Zulieferern gegenüber oft gleich ziemlich aggressiv auf, wenn sie bei denen einen Fehler vermuten. Da kann es auch um hohe Schadensersatzforderungen gehen. Da ist es wichtig, wenn man in Log sieht, dass die falschen Daten von einem Kundenscript falsch berechnet wurden und nicht von uns.

Thema: IIS 7 / 7.5 absichern
Am im Forum: Netzwerktechnologien

Mir ist das Konstrukt, einen IIS hinter einem Apache zu verstecken noch nie untergekommen. Das einzige was ich mir vorstellen könnte wäre eben auch, dass man einfach kein Windows auf den Servern haben will. Wir haben z.B. Solaris Server und hätten wenig Lust, da so eine Windows Kiste ins Netz zu stellen. Wenn das ganze Konzept auf Linux/Unix eingestellt ist und die Admins sich da auskennen, dann kann es schon sein, dass man einen Unix Server mit Apache als Reverse Proxy besser absichern kann, als ein Windows mit dem sich keiner auskennt.
Außerdem gibts die meiste Malware halt für Windows. Aber ob das durch einen vorgeschalteten Apache besser wird, weiß ich nicht. Wenn deine Anwendung irgendwelche Lücken hat, durch die man das ganze System übernehmen kann (sollte eigentlich relativ unwahrscheinlich sein), dann wird der Apache den Angriff halt auch durchschleusen und dann wäre der Windows Server genauso infiziert.

Langsamer wird das ganze allein schon durch die erhöhte Latenz, allerdings sollte die sich in einem LAN in Grenzen halten.

Thema: Datenbankwahl: SQL oder db40? Normalisierung ja oder nein?
Am im Forum: Datentechnologien

Ich sehe hier auch den Vorteil einer objektorientierten Datenbank nicht. Ich kenne mich mit den "üblichen" Angaben von Nahrungsmitteln nicht so aus, aber zumindest das was du genannt hast, schaut nach einem ziemlich flachen Schema aus. Ich würde die Vorteile objektorientierter Datenbanken eher bei komplexeren Objekthierarchien sehen.
Ich habe db4o bisher nur einmal ausprobiert. Ich hatte den Fall, dass ich Objekte mit Listen von polymorphen Unterobjekten speichern wollte. Also, ein Objekt hatte eine Liste mit Objekten, die eine Schnittstelle implementieren, und diese Objekte konnten jeweils völlig unterschiedliche weiter Eigenschaften haben. Für sowas ist eine relationale Datenbank nicht optimal geeignet. Mit db4o war die Performance wesentlich besser und der Code war auch einfacher. Bei deinem Beispiel seh ich den Vorteil wie gesagt nicht.

Thema: Welche Sprache für mein Projekt?
Am im Forum: Web-Technologien

Zitat von Abt
Nein. Das Thema "was ist besser" ist einfach sinnfrei. Das ist wie C# vs Python, oder Java vs. F#. Ich sag mit Absicht nicht Java vs. C#, weil PHP keine "Business-Konkurrenz" für C# darstellt.

Ich wollte doch nie darauf hinaus, was besser oder schlechter ist. Ich selber würde jederzeit unterschreiben, dass ASP.NET besser ist, als PHP. Ich wollte nur einen Neueinsteiger darauf hinweisen, dass er evlt. aufpassen sollte, dass er nicht gleich etwas sehr umfangreiches und komplexes lernt, was er evtl. nie brauchen wird. In der IT gibt es einfach sehr viele verschiedene Nischen und .NET ist nur eine davon. Wenn man hier im Forum verkehrt, merkt man das vielleicht nicht unbedingt.

"professionell" in Anführungszeichen war nicht abwertend gemeint. Ich wollte nur das professionell als Spezialisierung betonen, weil mit Webentwicklung kommt wohl jeder Entwickler irgendwann in Berührung.

Thema: Welche Sprache für mein Projekt?
Am im Forum: Web-Technologien

@Abt: ich seh keinen Widerspruch zu dem, was ich geschrieben habe. Ich mag PHP auch selber nicht, und dass ein wirklich guter ASP.NET Entwickler wahrscheinlich viel mehr ein durchschnittlicher PHP Entwickler verdienen kann ist auch keine Überraschung. Trotzdem, deine "95%" im professionellen Bereich heißen ja auch nur, dass es im Hobby Bereich fast keiner verwendet, und nicht, dass es viele im professionellen Bereich verwenden. Aus meiner eigenen Erfahrung kann ich sagen, dass es keine so große Verbreitung hat. Es wird überhaupt erst in Betracht gezogen, wenn die Firma .NET macht. Bei allen anderen Firmen, und das sind weiß Gott nicht wenige, spielt es überhaupt keine Rolle. Und will man überhaupt ein "professioneller" Webentwickler werden? Ich wollte es ganz sicher nie. Aber so ein bisschen hat man immer wieder mal mit Webzeugs zu tun, nur ist es dann eher PHP, bei mir war noch viel Perl dabei. Im professionellen Bereich dann Java
Ich denke, du bist als wirklich professioneller ASP.NET Entwickler sehr parteiisch. Ich arbeite nicht (mehr) im .NET Umfeld und da wird es höchstens als irrelevantes Nischenprodukt zur Kenntnis genommen, wenn überhaupt. Ich bleibe absolut dabei, wenn man nicht weiß, dass man es brauchen wird, würde es mir nicht antun.

Zitat von Abt
Das sollte es jetzt auch sein bzgl. ASP / PHP / sinnvoll oder nicht.

Finde ich ehrlich gesagt etwas anmaßend von dir, unbedingt das letzte Wort haben zu wollen. Warum auch? Geht es nicht genau darum in diesem Thread?

Thema: Welche Sprache für mein Projekt?
Am im Forum: Web-Technologien

Zitat von Black_Rider
ich werde mich asp.net mal genau anschauen :)

Ich will dich nicht davon abhalten, aber ich möchte nochmal erwähnen, dass ASP.NET nur bedingt relevant ist. Webentwicklung ist eine eigene Welt und da gibts sehr viele verschiedene Technologien, einige davon sind ziemlich allgemein und spielen bei so ziemlich jeder Plattform eine Rolle, wie JavaScript oder AJAX, andere sind schon sehr speziell, z.B. ASP.NET oder J2EE. Wenn dich ASP.NET interessiert, schaus dir an. Aber wenns dich nicht wirklich interessiert, kannst es dir auch sparen. Das ist schon sehr umfangreich und sich da im Detail auszukennen ist nicht ohne. Und ob das später jemals brauchen wirst, ist fraglich. Ich habs z.B. noch nie gebraucht und werds sehr wahrscheinlich auch nie brauchen. Ich würde eher mit PHP anfangen. Die Wahrscheinlichkeit, später irgendwo damit in Berührung zu kommen ist viel größer als bei ASP.NET und PHP ist auch einfacher. Musst nur aufpassen, weil die Sprache erstmal zu schlechtem Code verleitet ;)

Thema: Welche Visual Studio ist das populärste in Firmen
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Eigentlich ist es mehr oder weniger egal, VS ist VS. Das Problem von Express ist, dass es keine Plugins unterstützt. Wir programmieren in der Arbeit C++ und da ist Visual Assist sehr praktisch. Außerdem noch das Qt Plugin und paar selbstgeschriebene.
Die teureren Versionen braucht man meiner Meinung nach so gut wie nie, außer man benutzt den Team Foundation Server (auf den man meiner Meinung nach wiederum gut verzichten kann).

Thema: Programmidee: "Bundesligatabellenersteller" - Fragen zur Umsetzung
Am im Forum: Rund um die Programmierung

Naja, besonders viel Code ist es nicht, also kann man auch nicht so besonders viel dazu sagen. Ich kann dir schon mal Punkte nennen, die mir auf den ersten Blick nicht gefallen:

- Deine Namensgebung ist nicht standardkonform und sehr ungewohnt. Es gibt gewisse Coding Rules, an die sich die meisten halten. In C# ist Pascal Case üblich, die ersten Buchstaben eines Wortes werden also groß geschrieben, die anderen klein, z.B. Verein oder VereinsTabelle. Parameternamen werden üblicherweise klein geschrieben. Private Variablen könnte man mit einem Unterstrich beginnen.

- Das ist jetzt mehr oder weniger Geschmackssache, aber ich mag deutsche Bezeichner überhaupt nicht. Wenn du das komplett durchziehst, z.B. "gibPlatz" statt "getPlatz", ist es zwar etwas konsequenter, schaut aber zumindest sehr komisch aus und wird bei längeren Funktionsnamen noch seltsamer, wo man das auf Englisch viel eleganter ausdrücken könnte. Und dann wird es immer inkonsistent sein, weil alle Bibliotheken englische Bezeichner verwenden. Was auch gut ist, weil ich glaub, mit einer Bibliothek, die tschechische oder norwegische Bezeichner verwendet, würdest du auch selber keinen Spass haben. Und die allermeisten deiner möglichen Kollegen werden sowieso Englisch programmieren. Der einzige Grund, mal deutsche Bezeichner zu verwenden ist, wenn man ein domänenspezifisches Programm für einen Kunden schreibt und nur Probleme damit hätte, die ganzen Fachbegriffe sinnvoll zu übersetzen und dann damit zurechtzukommen. Sonst würde ich mir deutsche Bezeichner erst gar nicht angewöhnen.

- goto ist verpönt, fast schon eine Todsünde.

- Verwende sinnvolle Parameternamen. Die Parameterliste ist die Schnittstelle deiner Klassen. Was soll sich jemand denken, der die Implementierung nicht sieht, nur einen Parameternamen "UN" oder "NI"?

- Ich finde, da sieht man ganz gut, dass Konsolenanwendungen für sowas nicht wirklich geeignet sind. Das macht weder beim Programmieren, noch beim Benutzen Spass. Ich würd eher gleich auf Winforms oder WPF umsteigen.

Thema: Kopiervorgang Optimieren: File.Copy vs. FileStream.CopyTo
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Das geht evtl. wegen unbuffered I/O. Hier ist eine Diskussion drüber:

Fast file write with overlapped I/O

Der Titel ist falsch, weil da von overlapped I/O die Rede ist, habs aber so übernommen, wie es dransteht.