Laden...
O
onlinegurke myCSharp.de - Member
Student/Hilfswissenschaftler Dresdner in Karlsruhe Dabei seit 15.01.2007 778 Beiträge
Benutzerbeschreibung

Forenbeiträge von onlinegurke Ingesamt 778 Beiträge

14.09.2008 - 18:09 Uhr

@Rocket:
Nein, konkrete Implementierungen davon habe ich noch nicht gesehen. Auf der anderen Seite habe ich überhaupt noch nicht viel gesehen, weil ich mich bisher leider nicht allzu intensiv mit Softwarearchitekturen beschäftigen konnte (Zeitproblem), zumal ich nur freizeitmäßig programmiere. Ich habe aber für eines dieser Freizeitprojekte mal so eine Zellenarchitektur mir überlegt, wobei selbiges schon von den Ausmaßen sehr gewaltig ist (Ich wär froh, wenn ich das in 5 Jahren Studium schaffen würde...).
Aber von der Sache her ist es natürlich schon so, dass die konzeptionelle Arbeit sich bei den beiden Modellierungsmodellen nur verschiebt, weil eh man dieses Zellenmodell komplett ausgearbeitet hat...
Wenn man über Softwarearchitektur redet finde ich allerdings, das man dieses Zellenmodell auf alle Fälle kennen sollte, weil die Schichten eben doch verdammt wenig aussagefähig sind.

14.09.2008 - 17:58 Uhr

So'n Scheiß, hab immernoch keine Lösung dafür gefunden. Nu verwende ich die Berichte um irgendwelche Befunde etc. auszudrucken und das sol jetzt alles nicht gehen, nur weil die Reporting Services in der Praxis nicht das machen, was sie theoretisch und sogar in der Vorschau versprechen.

Andere kostenlose Berichtsgeneratoren gibt's nicht, oder?

12.09.2008 - 09:05 Uhr

Alternativ bilden Zellen die Architekturproblematik imho besser ab, als Schichten, weil Trennung von DAL und BI sind zwar schön und gut, aber wenn man zu diesem Schluss gelangt ist, ist eben immernoch ein ganzer Haufen Überlegung fällig um dann auch den Code schreiben zu können.

Webcast: Zellen statt Schichten (Teil 1) - Vorschlag eines neuen Ansatzes für die Softwaremodellierung
Webcast: Zellen statt Schichten (Teil 2) - Vorschlag eines neuen Ansatzes für die Softwaremodellierung

12.09.2008 - 00:36 Uhr

Ich hab bisher auch nur der Account gehört.

Unterschiede sind bei den Artikeln aber nicht unbedingt nur regional, ich hab im Gegenteil die Erfahrung gemacht, dass die Artikel in der gleichen Region variieren können. Ich hab mich auch regelmäßig mit meiner (nicht deswegen Ex-)Freundin darüber gestritten, ob es nun der oder das Apfelmuß ist. Und bei der Diskussion im Urlaub mit vier Ösis haben wir zu fünft über den Artikel von Nutella abgestimmt. Ergebnis: 1 für der, 2 für die, 2 für das. Man hätte also auch genauso gut würfeln können...

P.S.: siehe Signatur 😁

11.09.2008 - 13:48 Uhr

um nochmal den Unterschied zwischen den beiden Implementierungen von JuyJuka aufzugreifen: Ich meine, der Unterschied liegt in der Auffassung.

Die erste Variante liefert den Benutzer, die zweite die Anmeldung. während der Benutzer nur Benutzerdaten speichert und die Anmeldung statisch ist, ist bei der Anmeldung das Verfahren der Anmeldung flexibel. Erstere Variante lässt also Rückschlüsse zu, dass der aktuelle User beispielsweise garantiert seinen Benutzernamen und sein Passwort angeben musste, damit diese Daten dann mit einer Benutzerdatenbank abgeglichen werden kann. Das User-Objekt ist damit vertrauenswürdig, weil ich genau weiß, wie es entstanden ist.

Bei der zweiten Variante sind theoretisch auch Anmeldungen möglich, die einfach nur sagen "Hallo, ich bin der Admin und darf alles". Entscheidend ist hier die Instanzierung der Anmeldung. Vorteil ist natürlich der, dass man, wenn man das Anmeldungsobjekt nicht statisch instanziert, sondern von einer Factory produzieren lässt, die Art und Weise der Anmeldung sehr einfach variieren kann. Wenn man also mehrere Arten der Authentifizierung parallel haben will, dann ist das eigentlich das Mittel der Wahl, aber man muss der Factory vertrauen können. Wenn diese nicht gut abgesichert ist öffnet man damit Tür und Tor für Angreifer, die sich sehr einfach als Admins ausgeben können - oder man misstraut dem User-Objekt.

11.09.2008 - 13:31 Uhr

Hm, naja, Wasserzeichen sind ja normalerweise auch nicht in den Metadaten, weil es dann schlichtweg zu einfach ist, das Wasserzeichen zu entfernen und dann ist der Sinn des Wasserzeichens auch wieder weg.

Was hindert dich denn das Bild einfach vorher durch deinen Detektor zu jagen, der sollte ja in der Lage sein zu entscheiden, ob das Wasserzeichen vorhanden ist, oder nicht.

11.09.2008 - 13:11 Uhr

Naja, ich würde sagen es kommt darauf an, wie viele Daten du da einliest. Wenn du für jedes Datenpaket einen eigenen Thread aufmachst, dann kann es passieren, dass du dir einen Heavy Load heraufbeschwörst. In dem Fall wäre natürlich eine Queue das Mittel der Wahl. Der eine Beobachter, den das kleine Eichhörnchen angesprochen hat kann die Pakete ja dann noch weiter verteilen.

Bei wenigen Daten halte ich aber asynchrone Threads auch für eine schöne Lösung, wenn es aber gilt gewisse Peaks abzupuffern, dann ist das genau der Zweck, für den Queues erdacht worden sind.

11.09.2008 - 12:49 Uhr

verwendetes Datenbanksystem: Reporting Services des SQL Server 2005 Express

Hallo zusammen,

die Reporting Services mit dem BI Studio machen bei mir mal wieder Ärger. Gleich vorweg, den Report Builder RC 2.0 kann ich leider nicht einsetzen, weil in der Uniklinik noch Windows 2000 eingesetzt wird, wo Framework 3.5 nicht drauf läuft. Jedenfalls mamchen mir zwei Parameter Ärger, die weder ausgeblendet noch intern geschalten sind, aber nach der (erfolgreichen) Veröffentlichung nicht in Form eines Eingabekästchens angezeigt wird. Nun besitzt der Bericht noch zwei weitere Parameter, die sich von den problematischen nur durch den Typ (und den Namen) unterscheiden: Sie sind Zeiten (DateTime) statt Zahlen und funktionieren tadellos.

Hat jemand eine Idee oder ist das irgendwie ein bekanntes Problem?

Danke schonmal

29.07.2008 - 20:49 Uhr

If (ciphers And CipherCharacters.LowerCase) = CipherCharacters.LowerCase Then
l.AddRange(_LowerCase)
End If

28.07.2008 - 13:31 Uhr

Ja, sicher ist's immer noch nicht perfekt, aber auf der Höhe der Technik. Folgt man diesem Artikel, dann kann man Random ganz einfach ein für alle mal austauschen. Da steht auch sehr deutlich drinnen, dass die derzeitige Implementierung von Random einige Mängel aufweist. Und der einen kleinen Klasse ist man dieses Problem ein für alle mal los.

28.07.2008 - 13:22 Uhr

...in den Räumen der Qualitätssicherung gefunden...

Liebe Kolleginnen und Kollegen!

Ich wurde soeben vom Sicherheitsdienst informiert, dass sich mehrere
mutmaßliche Terroristen in unserem Gebäude aufhalten sollen.
Einige konnten bereits identifiziert und gefaßt werden. Es handelt
sich dabei um die harmlosen Bin Da, Bin Spät Dran, Bin Müde, Bin
Kaffeetrinken, Bin Rauchen, Bin Online und Bin Essen.
Der Transportarbeiter Bin Laden konnte ebenfalls als harmlos
eingestuft und unter Quarantäne gestellt werden. Der nächste im Bunde,
der äußerst gefährliche Bin Arbeiten, konnte bis dahin trotz intensiver
Suche im Gebäude nicht gefunden werden. Auf keinen der anwesenden
Mitarbeiter paßt die Beschreibung.

ACHTUNG! Bin Arbeiten verbreitet äußerst gefährliches
Gedankengut! Geht ihm aus dem Weg und meidet den Umgang
mit ihm! Gemäß unserer Sicherheitszentrale besteht aber
absolut kein Grund zur Panik. Es ist äußerst unwahrscheinlich,
dass sich Bin Arbeiten ausgerechnet in unserem Gebäude
aufhält. Es gebe in dieser Firma absolut niemanden, auf den
die Beschreibung des Terroristen Bin Arbeiten auch nur im
Entferntesten zutreffe.

Ebenfalls konnte der als Bin Im Meeting bekannte Top Terrorist bis
heute nicht ausgemacht werden. Es wird vermutet, das er sich auch als
Bin Wichtig, Bin Boss oder Bin Chef ausgibt. Bin Beim Kunden gilt auch
als nicht faßbar, Niemand hat ihn bisher gesehen. Also Vorsicht!

In den Öffentlichen Gebäuden wird intensiv nach Bin Nicht Zuständig
gefahndet. Es wurden schon hunderte glaubwürdig Verdächtige
vernommen, aber niemand wurde bisher verhaftet.

Ihr Sicherheitsbeauftragter

Bin Wachsam

28.07.2008 - 12:57 Uhr

Hm, warum


private static Random rand = new Random ();

?

Wirklich zufällig sind die Zufallszahlen damit nicht, schlimmer noch, sie sind sogar reproduzierbar, was die ganze Auslosung anfechtbar macht.

Hier meine Variante:


using System;
using System.IO;
using System.Collections.Generic;
using System.Security.Cryptography;

static class App
{
   public static void Main (string [] astrArg)
   {
      String [] lines = File.ReadAllLines ("tshirt.txt");

      Shuffle<string> (lines);

      for (int i = 0; i < 3; ++i) {
         Console.WriteLine (lines [i]);
      }
   }

   private static RNGCryptoServiceProvider rand = new RNGCryptoServiceProvider();

   public static void Shuffle<T> (IList<T> ilist)
   {
       int iIndex;
       T   tTmp;
       for (int i = 1; i < ilist.Count; ++i) {
          iIndex = Next (i + 1);
          tTmp = ilist [i];
          ilist [i] = ilist [iIndex];
          ilist [iIndex] = tTmp;
       }
   }

   public static int Next(int max)
   {
        int res;
        do
        {
            byte[] data = new byte[4];
            rand.GetBytes(data);
            res = BitConverter.ToInt32(data, 0);
        } while (res < 0 || res > max);
        return res;
    }
} 

Nachteil and der Variante ist, dass es deutlich länger dauert. Aber wenn man den Zahlenbereich näher an die tatsächliche Elementanzahl rückt (z.B. Int16), dann reduziert sich der Aufwand schon enorm...

17.07.2008 - 20:56 Uhr

Zu der GetTypeConverter Extensionmethod, die ist im Prinzip gleichwertig zu TypeDescriptor.GetConverter(). Außerdem weiß ich nicht, wie MS das implementiert hat, ob die evtl einen Cache der TypeConverter halten. Aber sei es wie es sei, die durchgängige Benutzung von der Framework-Variante kann eigentlich fast nur Vorteile bringen...

17.07.2008 - 19:50 Uhr

Hm. Beim Übersetzen (Projekt ist in VB.NET) ist es mir aufgefallen. Hate aus Versehen Show() nicht auf der Variable, sondern auf der Klasse ausgeführt. Warum das ging und mir der Kompiler keine Fehlermeldung geschmissen hat, ich versteh's noch nicht so richtig. Offenbar hat er sich dann über das My.Forms-Objekt eine Instanz geholt. Naja, auf alle Fälle noch ein Grund VB.NET abzuschwören...

17.07.2008 - 18:59 Uhr

Hallo Kre8,

ich weiß nicht, wie die Struktur bei dir aussieht, aber bei gewissen Anwendungsstrukturen (Client verbindet sich direkt auf die Datenbank statt über einen WebService drauf zuzugreifen) macht es einfach keinen Sinn den Log auf dem Client zu schreiben, weil die Leute sich dann auch manuell mit der Datenbank verbinden könnten und so ganz leicht auch die beste clientseitige Logging-Funktionalität umgehen können. Ich hab auch so eine Logging-Funktionalität geschrieben, werd das aber jetzt bald ändern dürfen, dass das nicht mehr clientseitig, sondern über Trigger in der Datenbank passiert, damit auch manuelle Eingriffe geloggt werden.

Grüße

17.07.2008 - 18:43 Uhr

Morgen allerseits,

folgendes Problem: Mein Algorithmus für's Lösen der PM Logikpuzzle ist zu lang geworden (zeitlich) und jetzt wollte ich eigentlich nichts anderes machen, als ein kleines Fenster zeigen, dass sich die Geschichte noch eine Weile hinziehen kann, also vor der Berechnung das kleine Fenster instanziert, Vorgang in neuem Thread gestartet mit Callback zurück, und wenn er fertig ist, dann soll er das "Bitte einen kleinen Moment Geduld"-Fenster auch schon wieder schließen. Soweit, so gut.

Aber er machts nicht.

Aus mir unerfindlichen Gründen schließt er das verdammte Fenster nicht. Bin mit dem Debugger reingegangen und der führt nacheinander Close() und Dispose() auf dem Splashscreen aus (Debugger geht zumindest drüber), aber sobald ich auf den grünen Pfeil für Weiter gehe ist es wieder da. Auch wenn der Debugger InvokeRequired=False angibt hab ich das auch mal durch Invoke() gezogen, leider auch ohne Erfolg.

17.07.2008 - 17:51 Uhr

schau mal auf http://www.opensourcecms.com/, die führen da eine Liste aller gängigen OpenSource CMS-Systeme (sind auch e-commerce Systeme dabei), die man alle auch gleich mal probieren kann (sowohl front- als auch backend)

23.06.2008 - 14:17 Uhr

@MagicAndre extra Profilbild angepasst, was?

23.06.2008 - 09:17 Uhr

bin auch für Deutschland 🙂, auch größtenteils aus Patriotismus. Wobei natürlich Patriotismus (von der Theorie her etwas rein positives) natürlich nahtlos in Nationalismus (von der Theorie her etwas rein negatives) übergeht, wobei der Nationalismus dem gegnerischen Torwart zu wünschen, dass er den Ball nicht kriegt, eigentlich noch ganz OK ist

12.06.2008 - 19:49 Uhr

Wie organisierst du denn deine Fenster? MDI? DockSuite?

11.06.2008 - 18:31 Uhr

by the way: List<T> hat den Vorteil, dass es auch ICollection implementiert, du brauchst also gar nicht den Umweg ueber Reflection zu gehen. Anders sieht die Sache natuerlich aus, wenn du mit IList<T> arbeiten musst...

11.06.2008 - 18:28 Uhr

hehe, kann mich noch gut dran erinnern an die 2 Jahre vertieften Physik Leistungskurs, 11 (dann 10) Mann, Lehrer inbegriffen. Nirgendwo anders hab ich bis jetzt so viele Blondinen- oder andere frauenfeindliche Witze gehört... 🙂

10.06.2008 - 18:47 Uhr

übrigens gibt es schon ein paar nette (auch freeware) tools die vb -> c# und umgekehrt können.

hm, zum Beispiel das .NET-Framework? 🙂 Im Namensraum System.CodeDOM befinden sich zumindest alle dafür nötigen Klassen. Ich habs noch nie ausprobiert, aber sollte funktionieren, wenn auch der C# bzw. VB.NET Code, der da rauskommt, naja, nicht der beste sein wird.

10.06.2008 - 13:39 Uhr

Ich programmiere auch in VB.NET (weil ich finde die Syntax liest sich besser und mir gefallen die Operatoren) und kann eigentlich die Aussage von norman_timo nur bestätigen, es gibt einige wenige Unterschiede in der Syntax, einige Möglichkeiten, die C# bietet, die VB.NET nicht kann und umgekehrt, auch die Qualitäten der Editoren sind tw. etwas unterschiedlich, aber sobald es Fragen sind in die Richtung, wie man Technologien anwendet oder überhaupt welche Technologien man anwenden sollte, die genaue Auswahl von Klassen, aber auch Themen, die eher in OOA und OOD gehen sind für C# und VB.NET 100% identisch.

05.06.2008 - 16:57 Uhr

Such mal bei CodeProject nach einem Wizard-Framework von Gary Noble (ist in VB.NET geschrieben, sollte aber leicht zu verstehen sein).

05.06.2008 - 16:36 Uhr

imho ist die einzige Einschraenkung, die man machen kann, auf welchen Typen sich die attributen anwenden lassen (Klassen, Schnittstellen, Methoden, etc.)

05.06.2008 - 15:27 Uhr

Bei mir scheitert der Fuehrerschein gerade an den irischen Behoerden, wollen unbedingt einen Reisepass sehen, Perso reicht nicht. Mit dem kann man noch nicht einmal Alkohol kaufen... 🙄 X(

04.06.2008 - 17:30 Uhr

...oder das man Bilder oder Dateien per Drag n Drop ins Chatfenster kopieren kann...

04.06.2008 - 16:19 Uhr

erbe von DataGridViewTextBoxCell und fertig ist dein neuer cell-type.

ganz so einfach ist es leider nicht. Du wirst von deiner IntelliBox oder wie auch immer du das Ding dann getauft hast ableiten muessen und eine DataGridViewIntelliBoxEditingControl oder sowas konstruieren, die IEditingControl oder so implementiert und dann in den Zelltypen einbinden. Nicht unbedingt das, was ich als ganz trivial bezeichnen wuerde...

04.06.2008 - 16:14 Uhr

ich fuerchte gar nicht. Nur machbar wenn entweder cust1 oder cust2 als Customer deklariert sind.

04.06.2008 - 15:29 Uhr

Ja, hab hier auf Arbeit keine IDE. Dazu kommt, dass ich bisher noch fast nix in C# gemacht hab, 99% VB.NET 🙂

04.06.2008 - 13:45 Uhr

//Katalog anfertigen, wo fuer jedes Zeichen alle Positionen aufgefuehrt ist

Dictionary<Char, List<Integer>> zeichenkatalog = new Dictionary<Char, List<Integer>>();

Char c;

for (Integer i=0;i<text.Length;i++)
{
//nicht case sensitive
   c=text[i].ToLower();
   if (!zeichenkatalog.Contains(c)) zeichenkatalog.Add(c, new List<Integer>());
   zeichenkatalog[c].Add(i)
}

//Katalog anfertigen, wo alle moeglichen Abstaende mit deren jeweiligen Positionen aufgefuehrt sind

Dictionary<Integer, List<Integer>> positionskatalog = new Dictionary<Integer, List<Integer>>;

foreach KeyValuePair<Char, List<Integer>> in zeichenkatalog
{
   if (kv.Value.Count>1)
   {
      for (Integer i=0;i<kv.Value.Length-1;i++)
      {
         for (Integer j=i+1;j<kv.Value.Length;j++)
         {
            if (!positionskatalog.Contains(kv.Value(j)-kv.Value(i))) positionskatalog.Add(kv.Value(j)-kv.Value(i), new List<Integer>());
            positionskatalog[kv.Value(j)-kv.Value(i)].Add(kv.Value(i));
         }
      }
   }
}

//Jetzt muessen noch die Vorkommen ueberprueft werden, ob es ganze Zeichenfolgen sind

List<Integer> moeglicheAbstaende = new List<Integer>;
foreach KeyValuePair<Integer, List<Integer>> in positionskatalog
{
   if (kv.Value.Count>1
//hier koennen wir noch optional doppelte Buchstaben filtern
   && kv.Key>2)
   {
      kv.Value.Sort();
      Integer letztePosition=-2;
      foreach Integer i in kv.Value
      {
//wir nehmen mal alles ab Zeichenfolgelaenge 2 mit auf, man kann hier aber auch //noch filtern
         if (i==letztePosition+1 && !moeglicheAbstaende.Contains(kv.Key)) moeglicheAbstaende.Add(kv.Key);
         letztePosition=i;
      }
   }
}

NB: alles ungetestet, hoffe dass es funktioniert

//edit: Etwas aufgehuebscht

04.06.2008 - 13:08 Uhr

Ich wuerde es so machen einmal durch den Text zu laufen und keinen Katalog anzulegen welches Zeichen an welchen Positionen vorkommt. Dann einmal durch diesen Katalog und dabei einen neuen Katalog anlegen welche Abstaende zwischen zwei Zeichen ueberhaupt auftreten und wo und zwischen welchen Zeichen. Dann letztendlich noch durch diesen Katalog und schauen, ob die Abstaende nicht nur bei einzelnen Zeichen, sondern ganzen Zeichenketten auftreten und voila

03.06.2008 - 15:00 Uhr

nur um das mal zu verdeutlichen: es geht um Informatik, nicht nur Programmiererei. Die kniffligsten Probleme der Informatik (NP-Vollstaendigkeit, Wie nutzt man Mehrprozessormaschienen effizient, etc.) haben einfach nichts mit dem Alltag als Softwareentwickler zu tun. Und waehrend dem Softwareentwickler das Leben immer einfacher gemacht wird, werden die Probleme der theoretischen Informatik nicht einfacher. Ich wuerde fast sagen im Gegenteil.

Was aber auf jeden Fall auch zu beobachten ist, dass die Programme immer komplexer werden. Und um komplexe Programme entwickeln zu koennen muss man nun mal komplex denken koennen. Einiges an Komplexitaet koennen Frameworks einem abnehmen, aber auch die werden immer komplexer (aber eben auch maechtiger). Auf der anderen Seite ist das aber auch ein wesentliches Ziel des Mathematikstudiums, die Faehigkeit strukturiert und komplex denken zu koennen, was zumindest in meinen Augen den verdammt hohen Mathematik Anteil im Informatikstudium rechtfertigt.

03.06.2008 - 14:38 Uhr

Aber auch wenn du definierst, dass du mit Informatikern ueber Programmierer redest, es ist immernoch zu allgemein. Ich wuerde behaupten wollen es kommt stark drauf an, an welcher Stelle man im Softwareentwicklungsprozess beteiligt ist und auch was es fuer eine Software ist. In einem system wo daten einfach eingegeben werden sollen, abhaengig davon irgendwer verstaendigt werden soll und die Daten dann irgendwo weggeschrieben werden sollen ist wesentlich weniger hohe Mathematik drin als zum Beispiel bei der Entwicklung von Data-Mining-Modulen oder 3D-Engines.

Meine persönlichen Erfahrungen mit Mathematik sind durchweg positiv, ich habe mehrfach an Matheolympiade und Känguruwettbewerb teilgenommen, wobei die beide ja eine sehr eigene Mathematik haben.

@zommi: Was fuer Hilfsmittel denn fuer die Maeuse 😁

//edit: Oddtopic ist auch mal gut 😁

02.06.2008 - 18:30 Uhr

Wenn du das Notebook mit vorinstalliertem Windows gekauft hast, dann sollte eigentlich eine "Recovery-CD" bzw. DVD dabei sein, die den Rechner wieder in den Urzustand wie du ihn gekauft hast zuruecksetzt, also mit quasi frischem Windows. Legal. Es gibt keine Windows-Lizenzen, die nur so lange gueltig sind, bis man Windows weghaut. Es waere im Zweifel imho auch legal, wenn du Windows mit einem fremdem Installationsmedium (aber eigener Seriennummer etc.) installierst. Aber in aller Regel solltest du, wenn du Rechnung etc noch alles hast gegen eine geringe Gebuehr (<<Windows-Lizenzgebuehr) eine Recovery-CD vom Notebookhersteller bekommen koennen.

Was VS Express angeht da ist die ganze Sache noch eindeutiger. "Ein Vertrag sie zu knechten, sie alle zu finden, zu Microsoft zu treiben und ewig zu binden" funktioniert so nicht. Kein Softwarehersteller kann die Deinstallation seines Produkts verbieten.

02.06.2008 - 14:40 Uhr

Du kannst es dir auch einfach machen und Linq benutzen, damit kriegst du die ganze Sache in eine Zeile (Linq to Objects). Das muesste dann in etwa so aussehen:

from String item in entities select new KeyValuePair<String, Integer>(item, count()) group by item

und die KeyValuePairs kannst du dann noch in ein Dictionary kopieren oder so. Aber wie gesagt, der Quelltext ist ohne Gewähr, hab mich mit Linq noch nicht so tiefgehend beschaeftigt und hab keine IDE hier zum testen...

02.06.2008 - 13:53 Uhr

Das UserControl ist nur das Control UserControl, von dem die UserControls dann abgeleitet werden, die eigentlichen UserControls sind dann wieder in deiner eigenen Assembly - die hoechstwahrscheinlich nicht im GAC liegt und die Controls daraus dementsprechend wahrscheinlich nicht in der Liste der .NET-Assemblies auftauchen. Du musst deine Assembly deswegen aber noch nicht in den GAC verschieben, vielmehr reicht es aus einmal unten auf durchsuchen zu clicken, dann die Assembly zu laden und dann kannst du dir aussuchen, welche Controls du gern in der Toolbox haettest.

02.06.2008 - 13:42 Uhr

Es gibt bei Softwarearchitekturen keinen Standardweg, aber Michael Willers und der andere Softwarearchitekt, dessen Name mir gerade entfallen ist, haben eine Art Beispielarchitektur fuer das BSI geschrieben unter dem Aspekt Sicherheit. Du kannst dir aber das komplette Projekt incl. Source (glaub ich) und am wichtigsten wohl Architekturdokumentation anfordern (http://www.bsi.bund.de/fachthem/betriebssysteme/indigo/index.htm).

02.06.2008 - 12:20 Uhr

Der Q7 ist ne geile Kiste...

Also das Ding find ich zum Beispiel viel zu groß, will schon sagen klobig. Ich finds auch nicht mehr schön. Die anderen neuen Audis (A4, A5, TT, R8) sehen einfach mal geil aus, aber der Q7? Hässlicher Straßenpanzer...

30.05.2008 - 19:31 Uhr

Rechtsklick auf die Toolbox und dann auf Elemente auswaehlen, dann Kaffee oder was immer du willst machen gehen, wiederkommen und dann auf Durchsuchen und kannst dann die Dll durchsuchen und die Steuerelemente entsprechend zur Toolbox hinzufuegen

30.05.2008 - 18:23 Uhr

Dann hol sie dir doch manuell wieder. Dauert eine viertel Stunde bis der Dialog dazu aufgegangen ist, aber danach sollts gehen...

30.05.2008 - 18:22 Uhr

Einzige Ausnahme waeren hierbei Strukturen (structs), die genau das leisten können, aber dann hast du halt keine Vererbung und kannst dadurch keinen Baum erstellen.

30.05.2008 - 18:15 Uhr

Webservices haben meistens eine Definition im WSDL (WebServiceDefinitionLanguage), womit sie deren Funktionalitaet und die verwendeten Datentypen beschreiben/definieren. Die Kommunikation geht dann klassischerweise ueber SOAP (Xml), also kann es dir in der Tat als Server egal sein, welche Technologie der Client benutzen wird und als Client, welche Technologie der Server benutzt

30.05.2008 - 13:41 Uhr

In welcher Sprache der Quellcode der externen Assembly ist spielt nicht die gerinste Rolle, solange es nur eine .NET-Sprache (und damit eine .NET-Assembly) ist. Ob C#, VB.NET, Boo oder sonstwas, spielt keine Rolle. Dann kannst du die Felder aber trotzdem in jedem Fall wie JuyJuka das beschrieben hat abfragen. Einzig noch zu beachten ist, dass er normalerweise nur ueber public Felder druebergeht und du ihm extra sagen musst, dass er auch nonpublic durchsuchen soll.

30.05.2008 - 11:31 Uhr

Öffentliche Felder sind schlecht und sollten NIEMALS vorkommen.
Wirklich NIEMALS, es gibt keine Ausnahmen.){gray}

Nein. In gewissen Situation gibt es einfach einen Unterschied und den kann man nicht ignorieren. Eine dieser Situationen ist zb der Aufruf ueber dynamische Methoden, weil man da nun mal direkt das IL rausschreiben muss, und das sieht nun mal anders aus, weil ein Propertyaufruf aus IL-Sicht eine Methode ist.

Ausserdem gibt es sehr wohl Faelle, bei denen der Anwendung von oeffentlichen Feldern nichts entgegen zu setzen ist (reine interne Hilfsklassen oder statische readonly Felder), bzw. sogar erforderlich ist (Interop mit unmanaged Code).

Aber um zur eigentlichen Frage zurueck zu kommen: Warum kompliziert, wenn es auch einfach geht? Du iterierst doch durch die Properties durch und bekommst PropertyDescriptor-Objekte, die die Funktion GetValue (man muss nur die Instanz uebergeben) anbietet und vergiss den ganzen Scheiss von wegen Reflection. Wenn du mit WinForms arbeitest dann brauchst du kein Reflection (weil das ComponentModel das schon macht).

29.05.2008 - 15:05 Uhr

also ich bin jetzt 20 und hab noch nicht einmal einen Fuehrerschein (noch nicht, bin grad dabei den zu machen, weil er in Irland im Moment noch sehr guenstig ist). Aber bis jetzt war ich ueberzeugter Radfahrer (6000-8000km im Jahr 🙂) und das wird sich waehrend des Studiums auch so schnell nicht aendern...

28.05.2008 - 16:31 Uhr

Wie gesagt, ich denke, es sind nicht nur die Personalchefs, die das beeinflussen. Eine inkompetente Frau wird sich fuer einen Softwareentwicklerjob gar nicht erst bewerben, weil sie ahnen wird, dass die Vorurteile auf sie einprasseln und sie die nicht entkraeften kann. Ein ebenso inkopetenter maennlicher Bewerber hat das Problem nicht und wird sich bewerben (versuchen kann man es ja mal). Ich glaube wenn man sich auf einen Job bewirbt, bei dem man weiss, dass es Vorurteile gegen einen geben wird, dann wird man sich vorher zweimal ueberlegen, ob man die Kompetenz aufbringen kann gegen diese Vorurteile vorzugehen, ansonsten wird man es kaum aushalten. Und das nehm ich an ist bei den Softwareentwicklerinnen nichts anderes als bei männlichen Krankenschwestern.

28.05.2008 - 15:16 Uhr

Irgendwo ist die ganze Angelegenheit an der Stelle dann auch wieder logisch. In jedem Beruf gibt naturgemäß ein gewisses Kompetenzspektrum (soll heißen es gibt z.B. gute und schlechte Softwareentwickler). Und so gut wie jeder Beruf ist von der Tendenz her für eins der Geschlechter besser geeignet. Männer sind im Durchschnitt eben eher in technischen und logischen Belangen besser sind, Frauen eher, wenn es um Dinge wie Kommunikation oder Soziales geht, wobei es da natuerlich noch mehr Unterschiede gibt und was nicht heißen soll, dass es keine Ausnahmen gibt (der beste Mathematiker, den ich kenne, ist weiblich, und ich kenne verdammt viele gute Mathematiker). Das wuerde ich, weil imho genuegend durch Studien etc gedeckt einfach als Fakt ansehen. Dadurch entstehen aber nun mal diese Vorurteile gegen die Geschlechter. Das heist aber auch, dass jemand, der zu dem "bevorurteiltem" Geschlecht gehört und im Kompetenzspektrum des entsprechenden Berufs eher im unteren Mittelfeld bis unten angesiedelt ist, diesen Beruf nicht ergreifen wird, weil er oder sie dann mit genau diesen Vorurteilen konfrontiert werden würde ohne diese wirksam entkräften zu können, wobei die Positionierung auf diesem "Kompetenzspektrum" auch wieder relativ zum Arbeitsumfeld sprich Kollegen ist.

Daraus ergibt sich eben ein je nach Beruf unterschiedliches Geschlechterverhaeltnis, bei dem sich das ganze irgendwann einpendeln sollte. Da aber wie es in den technischen Berufen ja leider oft betrieben wird irgendwas versuchen zu aendern, in dem man das andere Geschlecht knallhart diskriminiert, weil meint, man muesse irgendwie der Emanzipation Tribut zollen, finde ich allerdings voellig daneben.

27.05.2008 - 18:38 Uhr

Ich glaube das nennt man Allusion, was wir hier betreiben. Thread heisst Männlein und Weiblein und handelte eigentlich davon, wieviele weibliche Teilnehmer es in diesem Forum gibt, es geht aber mittlerweile nun mehr darum, wieviel IT-Unverständnis die Leute einem entgegen bringen können, nicht, dass man damit irgendwas andeuten wollen wuerde 😁

Was das Thema Computerhilfe angeht, muss ich allerdings sagen, dass ich da andere Erfahrungen gemacht hab, von wegen wie bloed kann man eigentlich sein. Ich sitze hier bei Siemens und mache B2B 1st level Helpdesk, aber solche Sachen wie "Warum funktioniert die Internetverbindung nicht" (Modem hat kein Strom) kommen eher selten vor. Die haeufigsten Probleme in die Richtung lassen sich dann meist schnell loesen (Modem neu starten zb), sind aber unlogisch (Man muss das halt wissen).
Ganz anders sieht die Sache der Frage aus, wie intuitiv eine UI sein muss und wie sehr die Anwendung Fehler verzeihen können muss, damit die Leute damit zurecht kommen. Und da kann ich nur sagen, eine Anwendung kann gar nicht intuitiv genug sein, dass nicht doch noch jemand nicht damit zurecht kommt...