Laden...

Forenbeiträge von Coder007 Ingesamt 1.214 Beiträge

19.09.2013 - 20:30 Uhr

In C# bekomme ich momentan ein byteArray Objekt geliefert.

Woher weißt du das und warum ist das so? Wie ist die Schnittstelle definiert?

29.08.2013 - 21:16 Uhr

Kann das eventuell mit den lfd. Programmen zu tun haben, die noch auf dem Rechner sind.

Natürlich. Und Windows neigt auch irgendwie dazu, mit der Zeit grundsätzlich langsamer zu werden. Ein neuer Rechner wird sich auf jeden Fall deutlich schneller anfühlen, als dein alter.
Eine SSD ist doch billig. Selbst wenn sie nach 1-2 Jahren kaputt geht, ja und? Es lohnt sich schon. Ich bin C++ Entwickler und arbeite an einem Projekt mit 6 Millionen Zeilen Code + wahrscheinlich über 10 Mio Zeilen Code 3rdparty libraries, die wird auch öfter mal anpassen und neukompilieren müssen. C# kann man um mehrere Größenordnungen schneller kompilieren, als C++, und je nachdem was man alles gebaut hat konnte es auf meinem alten Rechner durchaus auch mal 10 Stunden dauern, alles durchzubauen. Selbst "kleinere" einzelne Bibliotheken haben 20-30 Minuten kompiliert. Jetzt habe ich einen Core i7, 16GB Ram und eine SSD und es geht sehr viel schneller. So eine Bibliothek kann ich jetzt in 2-3 Minuten bauen statt 20-30.

29.08.2013 - 20:59 Uhr

Ansonsten wäre allgemein die Qualifikation des Mitarbeiters zu prüfen, viele behaupten sie könnten PHP.

Das ist, denke ich relativ egal. Die Firma will das Projekt auch selber im Griff haben und wahrscheinlich kleine Änderungen selber vornehmen. Das ist durchaus verständlich. Sie werden wohl auch keine große Wahl haben, als dem Mitarbeiter zu vertrauen, der sich am besten auskennt. Da bringt es wenig zu sagen, dass er sich doch nicht so gut auskennt und nicht viel Erfahrung hat.
Das Argument kann für die Firma sogar ausschlaggebend sein. Wenn sie wollen, dass dieser eine Mitarbeiter (weil sie keinen anderen haben und wegen dem einen Projekt auch keinen anderen suchen werden) Änderungen an der Software vornimmt, dann werden sie der Firma den Auftrag geben, die das in PHP realisiert.
Argumentieren kann man natürlich wie immer, dass das Projekt in C# weniger fehleranfällig und besser wartbar wäre, und somit kurzfristig billiger und langfristig wesentlich billiger. Aber ehrlich gesagt finde ich das alles relativ subjektiv. Ich mag kein PHP und würde auch grundsätzlich kein größeres Projekt in einer Scriptsprache schreiben wollen. Aber ich hab schon große Projekte in PHP gesehen und die funktionieren auch ganz gut und mit moderneren Frameworks wie Symfony ist es auch durchaus wartbar. Wenn ihr das nicht in PHP machen wollt und die es unbedingt wollen, dann werden die auch eine andere Firma finden, die das macht.

12.08.2013 - 18:13 Uhr

Eine normale ListView in der Tile Ansicht schaut schon so ähnlich aus. Ist jetzt aber nicht soo flexibel. Wenns dir nicht reicht, kannst du versuchen, im DrawItem Event die Elemente entsprechend selber zu zeichnen.
Sonst gibts bei Codeproject wahrscheinlich dutzende eigener ListView Controls, die etwas mehr können, als die Standard ListView.

30.07.2013 - 20:40 Uhr

Als ich studiert habe, habe ich fast alles mit Latex gemacht, auch Präsentationen (mit Latex Beamer) und erst recht die Diplomarbeit. Das war damals einfach in, zumindest bei uns in der Gruppe. Und ich habe damals sowieso hauptsächlich mit Linux gearbeitet, mit i3 als Dektopmanager. Da Open Office zu starten wär absolut uncool gewesen 😉
Recht umständlich fand ich das aber schon. Ab und zu stolpert man einfach über irgendwas, was nicht so ganz funktioniert wie man sich das vorstellt, und dann fängt man an zu suchen und schlimmstenfalls muss man sich dann in verschiedene Packages einlesen und die ausprobieren und es kostet sehr viel Zeit. Heutzutage würd ichs mir wahrscheinlich nicht mehr antun. Einfach in Word oder Open Office runtertippen und vergessen.

30.07.2013 - 20:32 Uhr

Es ging in der Frage wie kann ich den Ausstieg aus .NET finden nicht um den technischen Teil sondern um die Frage wie kann ich nach mehr oder mehr als 10 Jahren Berufserfahrung in .NET >darüber eine neue Perspektive als beruflicher Entwickler finden.

Ich hab vier Jahre als C# Entwickler gearbeitet (insgesamt wahrscheinlich auch fast 10 Jahre .NET Erfahrung) und arbeite jetzt seit paar Jahren als C++ Entwickler. Hatte jetzt keine größeren Probleme mit dem Umstieg. C++ konnte ich schon recht gut, und Berufserfahrung ist Berufserfahrung.

20.07.2013 - 16:56 Uhr

Na dann wünsche ich myCSharp ebenfalls alles gute zum Geburtstag!

15.07.2013 - 21:10 Uhr

(Aus VBScript heraus)
object[] GetFoos();

Wie meinst du das genau? Das schaut jetzt irgendwie gar nicht nach VBScript Syntax aus.

03.07.2013 - 20:56 Uhr

Ich könnte aber eine Basisklasse für Foo schreiben mit einer Methode .GetArray() der mir aus VBS raus das korrekte Arrayobjekt liefert, oder?

Eigentlich nicht. Ein Foo ist ein Objekt, du willst aber eine Liste von Foos zurückgeben. Macht doch keinen Sinn, wenn du schon von einem einzelnen Foo die ganze Liste bekommen könntest. Außerdem wird Foo.GetArray wahrscheinlich genauso wenig funktionieren wie Foo.Label. Also wird dir wohl nichts anderes übrigbleiben, als den Rückgabewert zu ändern.
Wenn der Rückgabewert aus irgendeinem Grund durch die Schnittstelle festgelegt ist, kannst du vielleicht noch eine andere Funktion hinzufügen und die GetFooArray oder so ähnlich nennen.

02.07.2013 - 20:43 Uhr

Da steht z.B. folgendes

Some solutions on the newsgroups said that you must return your datatype as an Object and this worked in some cases

Hast du das versucht?

vielleicht auch mal sowas probieren in VBScript:

set obj = fooArray(count)
stMsg = obj.Label

Ist jetzt aber nur eine Idee, keine Ahnung, ob das funktioniert.

28.06.2013 - 20:11 Uhr

Ich muss mich nur mal wieder wundern, dass niemand auf die Idee kommt, ein Buch in der Bücherei auszuleihen. In unserer Uni und FH Bibliothek gibts dutzende wenn nicht hunderte Bücher allein über .NET und C#. Ich musste mir noch nie die Frage stellen, ob es sich lohnt ein bestimmte Buch zu kaufen. Auch spezialisierte Bücher über einzelne Themen wie WPF, WCF, Linq usw. sind kein Problem und man muss nicht tausende Euro ausgeben, um sich tiefer in die Materie einzulesen. Ich hab zugegebenermaßen noch nie ein IT Buch gekauft und versteh auch nicht ganz, warum man das machen sollte. Meist liest man sowas nur ein einziges mal. Wenn man sich schon etwas besser auskennt, braucht man das Buch sicher nicht mehr. Sollte man wider Erwarten doch wieder etwas in genau demselben Buch nachschlagen wollen, steht es immer noch in der Bücherei.

21.05.2013 - 21:00 Uhr

Du solltest dich auch nicht auf C# einschränken. Wenn es dir um Netzwerke und Netzwerkprogrammierung geht, ist es besser, sich die Grundlagen richtig anzueignen. Wie die Programmierung dann konkret in C# ausschaut, ist dann ziemlich nebensächlich, wenn man die Konzepte versteht. Das kann man sich dann in paar Minuten zusammengoogeln. Über Netzwerke an sich gibt es dann auch sehr viel mehr Bücher als über sowas wie "Netzwerkprogrammierung in C#", die gehen auch viel eher ins Detail und behandeln viele wichtige Themen, die ein Buch, das sich auf C# Programmierung beschränkt sehr wahrscheinlich nicht behandeln wird.

19.05.2013 - 17:54 Uhr

Ja, sonst hätt ichs wohl kaum erwähnt 😉

Schau z.B. hier, da ist eine recht umfassende Beschreibung:

Gradients made easy

19.05.2013 - 16:47 Uhr

Du bringst wahrscheinlich WPF und GDI+ durcheinander?

System.Windows.Media.* ist WPF

In GDI+ gibts einen PathGradientBrush.

18.05.2013 - 21:56 Uhr

Das sieht schon ziemlich gut aus aber benötigt leider .NET 4.5 was ich mit meinem VS 2010 leider nicht benutzen kann 😦

Wenn ich das richtig sehe, hat der Autor auch eine Version für VS 2010 angehängt.

Ich würde dir trotzdem empfehlen, nochmal über einen Standardeditor nachzudenken. Ein Texteditor ist ein wichtiges Werkzeug, und man gewöhnt sich oft an einen bestimmten Editor und will nicht ohne einen triftigen Grund umsteigen oder mehrere nutzen. Ich weiß nicht, was ihr für einen Editor erweitern wollt, aber wenn er nicht etwas ganz besonderes kann, würde es sinnvoller finden, stattdessen einen Standardeditor zu nehmen.

18.05.2013 - 20:05 Uhr

Was ist ein "Syntax Highlighter"? Du willst doch sicher nicht einfach einen Syntaxhighlighter schreiben, sondern einen kompletten Editor. Und das ist keine gute Idee. Es wäre doch besser und viel einfacher, Syntax Highlighting Regeln für einen der weit verbreiteten Editoren, wie Notepad++ oder PsPad, zu schreiben. Dann könntest du mit einem Editor weiterarbeiten, der viel mehr kann.

07.05.2013 - 20:43 Uhr

Nicht alle Anfänger, die hier irgendwelche Fragen stellen, werden mit dem Programmieren auch weitermachen. Viele werden das wahrscheinlich auch ziemlich schnell aufgeben. Als ich mti dem Programmieren angefangen habe, hatte ich kein Internet und auch keinen wirklichen Zugang zu guten Büchern. Ich habe erstmal vieles einfach selber gelernt. Durch ausprobieren, Code der Standardbibliothek anschauen und mir daraus was zusammenreimen usw. Das hat mir Spass gemacht. Anderen liegt sowas nicht. Wir hatten irgendwann paar Stunden Programmieren in der Schule, als Wahlfach. Da haben vielleicht 20 Leute angefangen. 15 haben dann auch sehr schnell wieder aufgehört. Was mir damals aufgefallen ist, viele hatten überhaupt keinen Zugang zu dem Thema. Sie haben z.B. gesagt, ich kann mit den Compilerfehlern nichts anfangen. Das war mir damals schon nicht klar, weil ich es oft ziemlich offensichtlich fand, was der Compiler will und wo ich einen Fehler gemacht habe. Das war ja ein halbwegs englischer Satz, und wenn man sich die Stelle im Code anschaut, die man grad eingetipt hat und die Compiler nicht mag, ist sehr oft klar, was das Problem ist. Für andere hatten diese Compilerfehler aber null Aussagekraft. Das wären dann solche Leute wie die, die heute in einem Forum fragen, was eine NullReferenceException ist. Und kurz danach hören die meisten davon wahrscheinlich auch gleich wieder auf.

03.05.2013 - 22:52 Uhr

NAT? Port forwarding?

29.04.2013 - 20:36 Uhr

Über P/Invoke? Oder ist an einer "Mono Runtime, die in die Anwendung integriert" ist etwas besonderes, dass das verhindern würde?

23.04.2013 - 22:47 Uhr

Achso, ich hab übersehen, dass du eine Liste hast. Dann musst du die update depth erhöhen:

Updating Collections

23.04.2013 - 20:14 Uhr

Ich weiß nicht, ich bin da ehrlich gesagt skeptisch. Das mag jetzt in dem Fall funktionieren, aber ich glaub nicht, dass es die Lösung ist. Ich kenn db4o nicht im Detail, hab auch nur etwas rumgespielt damit. Aber es würde von der Schnittstelle her nicht zusammenpassen, wenn man die zu speichernde Eigenschaft und nicht das Objekt angibt. Ich vermute eher, dass bei dir etwas nicht zusammenpasst, z.B. Schreiben und Lesen, oder vielleicht fehlen auch irgendwelche Optionen... Wird eigentlich auch in jedem Beispiel, das ich auf die Schnelle gefunden habe, so gemacht wie in deiner ursprünglichen Version.

22.04.2013 - 22:05 Uhr

Ich hab in den Source geschaut, CopyFromScreen ruft im Endeffekt auch nur BitBlt auf, wesentlich langsamer kanns also nicht sein. Das einzige, was es zusätzlich macht ist sich eine UiPermission zu holen, das wird wohl nicht lang dauern.

19.04.2013 - 20:01 Uhr

Ein "Event" ist ein Highlevel Konzept von .NET, deswegen habe ich das in Anführungszeichen geschrieben. Windows kennt sowas nicht. Das parent Fenster von dem Control bekommt entsprechende Nachrichten, in dem Fall wahrscheinlich EM_CHANGED. Aber du bekommst die Nachricht nicht. Außer, du schreibst einen Hook. Entweder einen Keyboard Hook, oder einen Message Hook, das dürfte auch gehen.

18.04.2013 - 20:44 Uhr

Ein "Event" nicht. Du musst einen Keyboard Hook schreiben, und dann kannst du das aktive Fenster prüfen.

16.04.2013 - 20:06 Uhr

Wenn ich das richtig sehe, hat Thunderbird keine öffentliche API álá Outlook, die man von außen ansprechen könnte. Du müsstest also rausfinden, in welcher Datei das Thunderbird Adressbuch gespeichert wird, wo die Datei liegt, wie sie aufgebaut ist und die Daten reinschreiben. Das finde ich auf jeden Fall suboptimal. Das sind alles Implementierungsdetails und die könnten sich ändern.

13.04.2013 - 17:00 Uhr

Eine allgemeine und einfache Lösung wird es dafür nicht geben. Du könntest vielleicht ein Plugin schreiben. NPAPI wird von allen gängigen Browsern unterstützt. Allerdings wär da noch die Frage, ob dir de API auch die Möglichkeit bietet, auf alle Tabs zuzugreifen. Ich kenne die API nicht im Detail, glaubs aber eher nicht.
Auf den Internet Explorer kann man über COM zugreifen. Kann mich aber vage erinnern, dass er sich früher nicht in der ROT eingetragen hat, ist also schon ewig her. Ob Firefox eine vergleichbare Schnittstelle bietet, weiß ich nicht.

10.04.2013 - 23:05 Uhr

In der c´t gibts ja grad eine Artikelserie über Intrinsics und in der aktuellen Ausgabe gehts um CRC32 Berechnung. Da gibts einen tabellarischen Vergleich verschiedener Implementierungen. Die besten Implementierungen holen über 19 GB/s raus. Die Hardware ist ein Core i3 3,3 3,3 Ghz, Dual Core. Kann jetzt schlecht einschätzen, wie groß der Performanceunterschied zwischen CRC32 und SHA1Cng ist, CRC32 dürfte sich sehr gut optimieren lassen. Vielleicht wäre es besser, zwei einfache Algorithmen wie CRC zu kombinieren, statt einen aufwändigeren zu verwenden.

10.04.2013 - 20:38 Uhr

Was für einen Durchsatz hat deine Implementierung denn?
Kann man natürlich schlecht sagen, aber ich denke, wenn man näher an der Hardware ist, könnte man durchaus mehrere hundert Prozent rausholen, z.B. mit SSE oder OpenCl. Vielleicht auch mit C++ allein, wenn man nicht zu viel falsch macht und die höchste Optimierungsstufe einschaltet.

07.04.2013 - 20:07 Uhr

MuPdf kenne ich. Könntest du noch etwas zusammenfassen, was deine Komponente genau macht, was darüber hinausgeht, oder was das Arbeiten mit MuPdf einfacher macht?

03.04.2013 - 22:53 Uhr

Sprich er bekommt ein eigenes IFilter-Objekt oder einen Filter-Callback. Dann kann die eigentliche Filterlogik dort und nicht im Appender implementiert werden.

Das hilft aber auch nicht weiter. Man braucht dann trotzdem den eigenen Appender, der den Filter bekommt und kann nicht irgendeinen anderen (oder mehrere andere) Appender verwenden. Oder hast du das anders gemeint?
Was man aber wohl machen könnte, wäre ein "Filter Appender", der das LoggingEvent an andere Appender weitergibt. In der Config würde man dann als Eigenschaft des Appenders die Klasse des Zielappenders angeben.

03.04.2013 - 20:12 Uhr

Naja, sehr viel mehr ist es ja nicht. Informationen wie Log Level und Position im Code sind hier ja eher irrelevant. Was noch mehr oder weniger interessant ist, ist tatsächlich die Exception. Konkrete Exceptions will man im Logging Framework natürlich nicht kennen. Was ich mir noch vorstellen könnte, wäre eine Zuordnung Exceptiontype -> Regel. Das könnte man vielleicht tatsächlich machen.
Was mir dabei immer noch nicht wirklich gefällt, ist dass man dafür einen Appender schreiben muss. Eigentlich würde es eher in einen Filter passen, aber das würde nicht funktionieren.

01.04.2013 - 23:21 Uhr

Ja, aber hauptsächlich log4j und log4cxx. Machs nicht so spannend, sag einfach was du meinst.

01.04.2013 - 22:04 Uhr

Sicher wäre es ungünstig, wenn man nur an Hand eines fertig formatierten Fehlerstrings entscheiden müsste, ob dieser angezeigt werden soll. Aber wenn eine Fehlernummer übergeben wird (oder einheitlich im Fehlerstring steht), sieht das ganze schon viel freundlicher aus.

In die Richtung ging mein Vorschlag mit der Schnittstelle für Fehlerausgaben, die man dazwischenschalten könnte. Logging Frameworks wie log4net sind zu weit unten angesiedelt und bekommen nur einen String. Dazwischen könnte man allerdings eine Schnittstelle wie IErrorLogger einhängen, die mehr Informationen bekommt und die entsprechend konfiguriert werden kann, z.B. bei Fehlern mit einer bestimmten Nummer (oder vielleicht auch nur bei einem bestimmten String) x Sekunden auf weitere Fehler warten und dann eine andere Fehlermeldung ins Log schreiben. Das wäre dann zentral implementiert und müsste nicht direkt ins Logging Framework.

01.04.2013 - 19:22 Uhr

Ich finde aber nach tagelanger Recherche nicht heraus wie ich eine Instanz eines Objektes nur im Designer erzeuge (ähnlich BindingSource, Timer...) das dann als Einstellung im PropertyGrid meiner Controls wiederzufinden ist.

Du hast ja schon das Browsable Attribut verwendet. Es gibt noch zig weitere Attribute, die vom Property Grid ausgewertet werden. Ich hab früher recht viel damit gemacht, ist aber auch schon eine Weile her. Eine Klasse, die ich jetzt gefunden habe, ist UITypeEditor. Such mal danach, du findest bestimmt genug Infos. Im Prinzip muss man eine Klasse erstellen, die davon ableitet, und dann bei der Eigenschaft den Editor angeben:

EditorAttribute Klasse

Damit alle Controls auf dieselbe Instanz gehen, wirst du wohl mit einem Singleton arbeiten müssen. Ist vielleicht auch nicht so schön, wie Code Injection, aber in dem Fall seh ich jetzt eigentlich keine andere Möglichkeit...

01.04.2013 - 18:23 Uhr

Hab ich jetzt nicht ganz verstanden, vor allem das hier:

In die eine Richtung funktioniert das ganz gut(also für alle Listener). Letztendlich muss ich aber über ein Control ein Login realisieren. Hier ist aber die Bindung an die Anwendungskonfig. nur eine Einbahnstraße.

und das:

Klar kann man den Controls irgend ein Object mitgeben, da sind wir aber bei einer Zeile Code.

Ein UserControl ist eine Komponente, die sollte möglichst unabhängig von anderen Komponenten und wiederverwendbar sein. Da direkt auf die Anwendungskonfiguration zuzugreifen finde ich etwas suboptimal. Es muss nicht unbedingt schlecht sein, vielleicht brauchst du auch nie was anderes, aber ich würde mit sowas möglichst erst gar nicht anfangen.
Ich hab jetzt zwar nicht ganz verstanden, was du willst, aber ich könnte mir vorstellen, dass man alle externen Daten (z.B. das was du jetzt aus der Appconfig ziehst) in einer entsprechenden Klasse kapseln könnte. Die kannst du auch im Designer konfigurieren, dazu brauchst man keinen Code schreiben. Du kannst für jede Eigenschaft einen eigenen Editor für das Property Grid definieren. Denk z.B. an die Konfiguration vom Binding. So ähnlich würde man zuerst eine Daten- oder Konfigurationsquelle für dein UserControl einstellen und könnte dann weitere Einstellungen vornehmen.

01.04.2013 - 18:14 Uhr

Man könnte das bestimmt in log4net implementieren. Es gibt z.B. die IFilter Schnittstelle, oder man könnte wie unconnected geschrieben hat, auch einen eigenen Appender schreiben.

Ich bin mir nur nicht sicher, ob das sinnvoll wäre. Ich finde, sowas gehört eher an die Stelle, wo der Fehler auftritt. Im Logging Framework hast du zu wenig Informationen. Da hast du ja nur noch den Fehlerstring. Du könnest entweder ganz naiv schauen, ob der gleiche String in den letzten 2 Sekunden schon gekommen ist, oder du versuchst ihn zu parsen, aber das wär auch nicht sauber, und damit würdest du einen Teil der Logik ins Loggingframework verlagern, die da nicht reingehört. Am besten, weiter oben abfangen.
Muss vielleicht nicht genau an der Stelle sein, wo der Fehler auftritt, aber vielleicht kannst du eine Schnittstelle für Fehlerausgaben dazwischenschalten, die sich darum kümmert.

01.04.2013 - 17:10 Uhr

Ich versteh ehrlich gesagt nicht so ganz, was du eigentlich willst. .NET und COM(+) zu vergleichen ist nicht ganz einfach, weil das eigentlich völlig unterschiedliche Technologien sind, die wenig miteinander zu tun haben. Man könnte vielleicht noch gewisse Aspekte davon vergleichen. Deswegen ist schon der Thread Titel etwas verwirrend. Allerdings gehst du im Text eben nicht auf die vergleichbaren Aspekte ein, sondern auf periphere Implementierungsaspekte. Und dabei gehst du auch nicht ansatzweise auf COM+ ein, sondern nur auf COM, und das sind auch wieder zwei paar Stiefel.

Ich will jetzt auch nicht versuchen, alles über alles zu erzählen, das ist in der Tat umfangreich und komplex, und ich weiß nicht, wie dein Kenntnisstand aussieht. Ein "Seminar" kann alles mögliche bedeuten, z.B. einfach einen Haufen hingeklatschter Begriffe, sehr oberflächlich angerissen. Also versuch deine Frage präziser zu formulieren.

12.03.2013 - 20:32 Uhr

ich als Hobbyprogrammierer, habe ein Problem, welches für Euch als Profis bestimmt relativ simpel ist!

Nee, das ist schon sehr speziell. Und COM ist ein sehr komplexes Themengebiet. Du kannst dir wahrscheinlich noch nicht vorstellen, was für kranke Probleme es da geben kann, wir haben schon Wochen und Monate in sowas gesteckt bei uns in der Firma...

Mit dem .NET COM Interop hab ich jetzt leider nicht so viel Erfahrung. Ich könnte mir aber vorstellen, dass du den Rückgabewert als objekt und nicht als object[] behandeln solltest und dann über Reflection auf den Inhalt zugreifen.
Es gibt mehrere "Arrays" in COM. Ich weiß jetzt nicht, was COleObjectArray sein soll, hab auch nichts dazu gefunden. Hast du einen Link, wo du das her hast?

03.03.2013 - 16:41 Uhr

Hallo herbivore,

  1. Die Dialoge kann man tatsächlich auch für eigene Objekte und Rechte wiederverwenden. Und die ganze Benutzerverwaltung mit den AD Benutzern und Rollen kann auch problemlos wiederverwendet werden.

  2. Das schwierige an den NTFS Berechtigungen ist die Vererbung. Das ist irgendwie total undurchsichtig und fehleranfällig. Man muss es bei den eigenen Objekten aber nicht genauso machen.

@Mr. Bart Simpson:

Wenn dir die Probleme beim direkten Zugriff auf die Rohdaten bewußt sind, hab ich sonst keine Bedenken gegen so eine Lösung.

In dem von mir geposteten Artikel steht unter Access Control Edtor, warum es schwierig ist, das mit .NET zu lösen. Könnte aber immer noch machbar sein. Wär aber wahrscheinlich einfacher, den Teil in C++ zu lösen, z.B. mit C++/Cli.

Dazu noch: Meintest Du z.B. dieses
>
?

Ja, das meinte ich. Ich hab noch die Version 4 gelesen, wenn ich mich recht erinnere, ist eine Weile her. Das Buch ist aber schon hart... Das ist nichts was man jetzt unbedingt lesen muss, wenn man etwas implementieren will, wie du es vorhast. Das geht extrem in die Tiefe und ist nicht wirklich praxisnah, es erklärt mehr, wie Windows intern funktioniert. Interessantes Buch, wenn man viel Zeit hat (ich habs als Student gelesen), aber nichts wo du schnell nachschlagen könntest, wie du ein bestimmtes Feature implemtieren könntest.

02.03.2013 - 19:42 Uhr

Wenn du die Seite schon kanntest, wo ist dann das Problem? Hier vielleicht noch ein Link:

Techniques for securing private objects in your applications

Da ist es mehr oder weniger Step By Step beschrieben.

Das Problem an dem ganzen ist aber, wie man die Infos sicher speichert und kontrolliert. Windows ist selbst ist da im Vorteil, weil die Überprüfung im Kernel durchgeführt wird und nicht ohne weiteres umgangen werden kann. Wenn du die Infos in einer Datenbank speicherst und dein Programm auf alle Infos zugreifen darf und die Überprüfung nur eine weitere Funktion deines Programms ist, ist es nicht besonders sicher. Wäre besser, die Überprüfung in einem Server durchzuführen, auf den normale Benutzer nicht direkt zugreifen können.

02.03.2013 - 17:18 Uhr

Ich find das Thema auch nicht uninteressant. Du stellst dir das ganze schon etwas falsch vor, allerdings sollte es grundsätzlich möglich sein. Kurze Antwort:

Securable Objects

Und es ist auch möglich private "securable objects" zu erstellen. Wird allerdings nicht so einfach sein, wie du dir das vorstellst. Habe mich aber ehrlich gesagt nicht eingelesen (werds aber vielleicht mal demnächst überfliegen).
Interessante Literatur zu dem Thema sind auch die Windows Internals Bücher.

26.02.2013 - 20:21 Uhr

Patterns of Enterprise Application Architecture

Vorsicht, das ist teilweise überholt. Auf jeden Fall lesenswert, aber man muss aufpassen, dass es mittlerweile paar Jahre auf dem Buckel hat und die Ideen sich mittlerweile teilweise weiterentwickelt haben und nicht mehr 1:1 übernommen werden sollten.

@GeneralKampfKeks: warum grad dieses Buch, kannst du das begründen? Ich such auch immer wieder neue Bücher, hab aber schon länger nichts neues mehr gesehen, irgendwie wird immer wieder dasselbe behandelt, nur etwas anders formuliert.

19.02.2013 - 20:14 Uhr

allerdings sind Lambda-Ausdrücke in C# nicht rein funktional, sondern können zum einen Seiteneffekte bewirken und zum anderen vom aktuellen Zustand von Objekten, die nicht als Parameter übergeben wurden, abhängen. Beides entspricht nicht den funktionalen Paradigma.

Das ist natürlich richtig, aber zumindest aus meiner Sicht eben auch ein Punkt, der gegen rein funktionale Programmiersprachen und für die aktuellen Umsetzungen wie in C# oder C++11 spricht. Und da ist es praktischer, einen einzeiligen Lambda Ausdruck ohne die Einschränkungen einer rein funkionalen Sprache schreiben zu können. Vielleicht auch ein Punkt, den man ansprechen könnte.

Wegen der Parallelisierung... In meinen Anwendungsfällen geht es nicht darum, einen einzelnen Algorithmus parallelisieren zu können, den man vielleicht komplett funktional schreibt. Hier können funktionale Programmiersprachen vielleicht ihre Vorteile ausspielen, damit habe ich keine Erfahrung. Deswegen wie gesagt subjektiv. So wie ich das kenne, geht es eher darum, High Level Prozesse zu parallelisieren, die vielleicht schon auf hundert tausenden Codezeilen basieren. Das alles komplett funktional aufzuziehen würde meiner Meinung nach nicht funktionieren und ich würde es auch nicht wollen. Eine hybride Lösung würde an der Stelle auch keine Vorteile bringen. Deswegen mein Fazit, wenn es darum geht, einen einzelnen Algorithmus funktional zu schreiben und zu parallelisieren, bringt es vielleicht Vorteile, aber in einer bestehenden Umgebung einen Prozess zu parallelisieren geht mit "konventionellen" Methoden genauso gut.

18.02.2013 - 21:16 Uhr

Wo ich "funktionale Programmierung" am intensivsten nutze, sind Callbacks bzw. anonyme Delegates (nicht nur in C#). Das ist etwas, was man häufiger braucht, und da sind Lambda Ausdrücke einfach eleganter als anonyme Delegates oder andere Konstrukte. z.B. kann man das in Scala finde ich eleganter Lösen als mit diesen anonymen Klassen.
Die meisten anderen Konstrukte finde ich zwar interessant, aber eher exotisch. Ich arbeite aber auch nicht in einem Bereich, wo man etwas großartig mathematisches bracht, das man in einer funktionialen Sprache eleganter ausdrücken könnte. Die Vorteile bei der Parallelisierung finde ich ehrlich gesagt vernachlässigbar. Das ist jetzt aber eine ziemlich subjektive Aussage, weil ich in meinen Programmen wiederum weder etwas besonders komplexes noch "kleines" parallelisieren muss. Das geht dann auch mit den objektorientierten Sprachen und ist jetzt kein besonders großer Akt.
Grundsätzlich entspricht die objektorientierung meiner Denkweise und mir ist zur Zeit kein besseres Paradigma bekannt, um größere Programme aufzubauen. Bei einzelnen Algorithmen, vielleicht. Da kann man die Programmiersprachen/Paradigmen in der Tat mischen. Aber nicht für die Architektur.
Bei einem früheren Arbeitgeber haben wir öfter Java und Scala gemischt. Aber nicht mal unbedingt wegen der funktionalen Aspekte von Scala (wobei die Lamda Ausdrücke wie gesagt wesentilch angenehmer sind als anonyme Klassen), sondern z.B. wegen Mixins. Hier seh ich viel mehr Chancen für Scala, sich durchzusetzen, als für F#. Scala hat sich ja auch schon ganz gut durchgesetzt. Weil das kann man ziemlich unproblematisch mit Java mixen (gut, die IDE Unterstützung für gemischte Projekte ist subotimal) und die Sprache ist cooler und mächtiger als Java. Das trifft auf F# nicht zu. C# hat schon viele interessante Konzepte, wie Linq oder Lambda Ausdrücke und F# bietet somit praktisch überhaupt keinen Mehrwert.

04.02.2013 - 23:31 Uhr

Danke für die ausführliche Antwort! Das hört sich ja gar nicht so schlecht an.

03.02.2013 - 20:06 Uhr

Meine Meinung: nicht mal ein Studium sagt in der Software-Entwicklung _wirklich _etwas aus - geschweige denn ein Zertifikat.

Da geb ich dir grundsätzlich Recht. Vor allem von Zertifikaten halte ich persönlich recht wenig. Mich würde nur interessieren, was man sich drunter vorstellen kann. Ist es etwas was vom Niveau her Richtung "European Computer Driving Licence", also Zertifikat für absolute DAUs geht, oder ist es etwas fortgeschritteneres, wo man dann auch sagen kann, ok, er hat sich diesen Kurs angehört, er sollte da gut estmal mitreden können.

03.02.2013 - 16:50 Uhr

Hi,

hab gestern in der c´t gelesen, dass es einen neuen openHPI Kurs "semantisches Netz" gibt. Und es stand dabei, dass man am Ende ein Zertifikat bekommt, wenn man die Abschlußprüfung schafft. Nur so aus Interesse (Zeit hab ich eh keine), hat schon jemand Erfahrung mit sowas? Wie kann man sich so einen Kurs vorstellen, erreicht es Uninvieau oder ist es eher oberflächlich? Kann man als Diplominformatiker mit so einem Zertifikat was anfangen oder bringen die gar nichts?

30.01.2013 - 21:11 Uhr

Als ich mich bei meiner aktuellen Firma beworben habe (einfach eine kurze Mail als Initiativbewerbung ^^), habe ich selber einen ähnlichen Fragebogen bekommen. Da waren auch zig Sprachen, Frameworks und Programme aufgelistet und man musste seine eigenen Kenntnisse benoten. Ich war auch etwas überrascht, warum sollte ich z.B. als C++ Entwickler meine InDesign Kenntnisse bewerten? Beim Vorstellungsgespräch habe ich dann nochmal nachgefragt und erfahren, dass alle Bewerber diesen Fragebogen bekommen, ob Informatiker, Designer oder Maschinenbauer. Er hat dann auch keinen höheren Stellenwert bei der Bewertung der Bewerber, die Abteilungsleiter schauen sich die Punkte an, die sie interessieren und entscheiden dann, ob es sich lohnt, den Bewerber einzuladen. Ein etwas fragwürdiges Vorgehen, das auch reichlich verwirrend ist.
Ich würde solche "Benotungen" nach Möglichkeit vermeiden. Ich arbeite seit Jahren C++ Entwickler, aber ich würde mich nicht trauen, meine Kenntnisse mit sehr gut zu bewerten, und ich wäre auch bei jedem anderen sehr skeptisch, wenn er sagt, dass er sehr gut C++ kann. Das ist meist eher ein Anzeichen dafür, dass man noch nicht so weit ist, seine Grenzen zu erkennen. Wenn man andererseits nicht angibt, dass man irgendwas sehr gut kann, dann kann es leicht passieren, dass der zuständige Personaler sich für jemanden entscheidet, der angegeben hat, dass er es sehr gut kann.
Und ich würde auch nicht zu sehr ins Detail gehen. Wen interessieren die ganzen einzelnen Frameworks? Dass du dich mit Winforms und WPF auskennst mag ja noch interessant sein (aber nur, wenns bei der konkreten Stelle auch eine Rolle spielt), aber die ganzen kleinen Frameworks würde ich weglassen. Wenn man die Konzepte verstanden hat und genügend Erfahrung hat, kommt man in jedes Framework schnell genug rein, da muss man nicht alle aufzählen, die man mal kennengelernt hat.

28.01.2013 - 21:55 Uhr

Ich bezweifle das ein Mensch mehr als (sind wir grosszügig) 100 Datensätze miteinander verarbeiten kann.

Das kommt drauf an, wie man arbeitet. Ich mag z.B. Paging überhaupt nicht. Bei einer Filmverwaltung würde ich lieber schnell zu dem richtigen Buchstaben scrollen wollen. Oder schnell filtern oder suchen. Und tausend Einträge sind ja nun wirklich nicht so viel, dass es nicht schnell genug funktonieren würde.