Announcement

Collapse
No announcement yet.

Speichern von Eigenschaften zu Entwurfszeit

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Speichern von Eigenschaften zu Entwurfszeit

    Hallo,

    ich verstehe was Grundsätzliches bei .Net nicht, und zwar:

    In Delphi gab's strikte Trennung zwischen Speicherungsorten von Eigenschafts- und Ereignisdeklarationen eines Formulars (.pas - Datei) und deren zu Entwurfszeit zugewiesenen Anfangswerten (.dfm - Datei).

    In einer WinForm-Anwendung für jede From gibt's auch 2 Speicherungsorten: .cs (wenn in C# geschrieben wird) und .resx. Dabei kommen aber manche Eigenschaftsinitialisierungen direkt in .cs Datei vor in Form einer Zuweisung der Methode InitializeComponents, andere aber werden in xml-artiger .resx angegeben.

    Große Frage von mir: nach welchem Prinzip wird das gesteuert und was für Systemkomponent ist dafür verantwortlich?

    Ist es in einer anderen Anwendungsart (zB WebForms) auch so?

    Danke
    Efim

  • #2
    Hallo,
    diese strikte Trennung gab es früher auch in VB (analog zu Delphi). Erst mit Visual Studio 2005 (.NET Framework 2.0) lagert Microsoft diese unterschiedliche Teile wieder in separate Dateien aus. Bei Visual Studio .NET 2002/2003 (.NET Framework 1.x) war die Untergliederung über die <i>Regionen</i> im Quelltext vorgesehen (d.h. die Implementierung wurde als Default vor dem Entwickler verborgen).

    &gt;..ist dafür verantwortlich?

    Der <i>Windows Forms</i>-Designer (beziehungsweise der Web Forms-Designer von ASP.NET) legt fest, wo diese Einstellungen landen

    Comment


    • #3
      Hallo Andreas,

      danke für die Hints. ich habe über Designer nachgelesen und habe das Konzept so verstanden, dass die Formulare zwar einen Standartverhalten bezüglich Speicherung von Eigenschaftswerten haben, aber die einzelne Control - Klassen dieses Verhalten ändern können, wohl durch andere Designer-Klassen, die durch DesignerSerializationVisibilityAttribute zugewiesen werden können. Sonst könnte ich nicht erklären warum zB bei WinForms DataGrid nur die Properties "Locked" und "Modifiers" in .resx ausgelagert werden, andere (ob alle?) kommen dagegen in InitializeComponent. Ich nehme an, dieses Verhalten wäre gleich in jeder Entwicklungsumgebung, sei es VS.Net oder Delphi oder sonst welche.

      So ganz sicher bin ich aber nicht. Wie richtig/falsch lege ich mit der Annahme?

      Danke
      Efi

      Comment


      • #4
        Hallo Efim,
        es wird sogar noch komplizierter. VS.NET ist von vorn herein für das Lokalisieren und Internationalisieren von Anwendungen vorbereitet. Wird zum Beispiel die Eigenschaft <b>Localizable</b> des WinForms auf True gesetzt, bindet der <b>ResourceManager</b> einen viel größeren Teil in der resx ein.
        Letztendlich ist es für uns egal, wo in welchen Situationen was landet. Es ist Aufgabe der IDE, das Ganze transparent zu kapseln

        Comment

        Working...
        X