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 Ahrimaan
Thema: MVVM : Öffnen einer Seite durch Model
Am im Forum: GUI: WPF und XAML

Ist im Beitrag editiert, sorry

Thema: MVVM : Öffnen einer Seite durch Model
Am im Forum: GUI: WPF und XAML

Hi Michl,

<Grid DataContext="{Binding Source={StaticResource vm}}" Width="262">
        <Grid.RowDefinitions>
            <RowDefinition Height="196*" />
            <RowDefinition Height="30"/>
        </Grid.RowDefinitions>
        <TreeView ItemsSource="{Binding Items}" Margin="-9,0,-7,0">
            <TreeView.ItemContainerStyle>
                <Style TargetType="{x:Type TreeViewItem}" >
                    <Setter Property="IsSelected" Value="{Binding Path=IsSelected}"/>

                    <Style.Triggers>
                        <Trigger Property="HasItems" Value="true">
                            <Setter Property="Focusable" Value="False"/>
                        </Trigger>                    
                    </Style.Triggers>
                </Style>
            </TreeView.ItemContainerStyle>
            <TreeView.Resources>
                <HierarchicalDataTemplate DataType="{x:Type model:RootNode}" ItemsSource="{Binding Path=SubNodes}">
                    <Grid>
                        <TextBlock Text="{Binding Text}" />
                    </Grid>
                </HierarchicalDataTemplate>
                <HierarchicalDataTemplate DataType="{x:Type model:SubNodeItemWithCheckbox}">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="16"/>
                            <ColumnDefinition/>
                        </Grid.ColumnDefinitions>
                        <CheckBox Grid.Column="0" IsChecked="{Binding IsSelected, Mode=TwoWay}" IsEnabled="{Binding IsEnabled}"/>
                        <TextBlock Text="{Binding Text}" Grid.Column="1"/>
                    </Grid>
                </HierarchicalDataTemplate>
                <HierarchicalDataTemplate DataType="{x:Type model:SubNode}">
                        <TextBlock Text="{Binding Text}"/>
                </HierarchicalDataTemplate>
            </TreeView.Resources>
        </TreeView>


        <Button Grid.Row="1" Width="30" Command="{Binding OkCommand}">
            <Image Source="/Images/Sign001.ico"/>
        </Button>
    </Grid>

Und die Models so :

public class RootNode
    {
        public string Text { get; set; }
        public ObservableCollection<INode> SubNodes { get; set; }

        private bool _isEnabled;
        public bool IsEnabled { get { return _isEnabled; } set { _isEnabled = value; } }

        private bool _isSelected;
        public bool IsSelected
        {
            get { return _isSelected; } 
            set { _isSelected = value; }
        }


        private ExtendedData _extData;
        public ExtendedData ExtData { get { return _extData; } set { _extData = value; } }

    }

Subnode :

public class SubNode :INode
    {
        public SubNode(RootNode parent)
        {
            _parent = parent;
        } 

        private RootNode _parent;

        private bool _isEnabled;
        public bool IsEnabled
        {
            get { return _isEnabled; }
            set { _isEnabled = value;OnPropertyChanged(() =>  IsEnabled); }
        }

        private bool _isSelected;
        public bool IsSelected
        {
            get { return _isSelected; }
            set { _isSelected = value;OnPropertyChanged(() => IsSelected); }
        }

        private string _text;
        public string Text
        {
            get { return _text; }
            set { _text = value;OnPropertyChanged(() => Text); }
        }

        public RootNode Parent
        {
            get { return _parent; }
        }

        private ExtendedData _extData;
        public ExtendedData ExtData
        {
            get { return _extData; }
            set { _extData = value;OnPropertyChanged(() => ExtData); }
        }
    }

Wie sollte ich es denn deiner Meinung nach Verwurschteln ? Es geht übrigens um die Property ExtendedData

ViewModel :

  public class MainWindowModel:BaseViewModel
    {
        public MainWindowModel()
        {
            Items = new ObservableCollection<IRootNode>(DatabaseLoader.GetItems()); 

        }

        private string _windowTitle;
        public string WindowTitle {
            get { return _windowTitle; } 
            set { _windowTitle = value;OnPropertyChanged(() => WindowTitle); } 
        }

        private ObservableCollection<IRootNode> _items;
        public ObservableCollection<IRootNode> Items
        {
            get { return _items ?? (_items = new ObservableCollection<IRootNode>()); }
            private set { _items = value; OnPropertyChanged(() => Items); }
        }

        private ICommand _okCommand;
        public ICommand OkCommand
        {
            get { return _okCommand ?? new DelegateCommand(ButtonOkCommandExecuted); }
        }


        private readonly DataPersistance _persistance;
        private void ButtonOkCommandExecuted()
        {
            SuccesMethod(_persistance.SaveData(Items));
            
        }

        private void SuccesMethod(int succes)
        {
            if (succes == 1)
                Environment.Exit(1);
            if(succes == -1)
                MessageBox.Show("Es ist ein Fehler beim Speichern aufgetreten !", "Fehler", MessageBoxButton.OK,
                            MessageBoxImage.Error);
            if(succes == 0)
                MessageBox.Show("Es muss mindestens eine Klassifizuerung ausgewählt werden !", "Fehler", MessageBoxButton.OK,
                            MessageBoxImage.Error);
        }

    }
Grüße

Thema: MVVM : Öffnen einer Seite durch Model
Am im Forum: GUI: WPF und XAML

Hallo zusammen,
In meinem TreeView habe ich eine Collection von RootNodes welche Subnodes enthalten.
Diese SubNodes haben eine Property Extended Data.
Nun meine Frage : Extended Data soll bei Klick gefüllt werden, bedeutet es wird ein Dialog geöffnet.
Irgendwie habe ich Bauchschmerzen, aus dem Model heraus einen Dialog zu öffnen, das passt ja irgendwie nicht zum MVVM Pattern (denke ich)
Aber : Wie kann ich es sonst lösen ?

Jmd eine Idee ?
Grüße

Thema: [Erledigt]TreeViewItem IsSelected Binding an SubItems
Am im Forum: GUI: WPF und XAML

Hallo Wackelkontakt,
das Problem hat sich erledigt. Ich habe mich von der Warnung im XAML leiten lassen.
Wenn ich die Property einen Breakpoint setzte, klappt es , verrückt .....

Thema: [Erledigt]TreeViewItem IsSelected Binding an SubItems
Am im Forum: GUI: WPF und XAML

Hallo zusammen,
ich habe ein treeView welches je nach Typ der Klasse ein anderes Template nutzt

<Window x:Class="MK.AgentWpf.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        xmlns:local="clr-namespace:MK.AgentWpf.ViewModel"
        xmlns:model="clr-namespace:MK.AgentWpf.Model"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <local:MainWindowModel x:Key="vm"/>
    </Window.Resources>
    <!--LayoutBegin-->
    <Grid DataContext="{Binding Source={StaticResource vm}}">
        <Grid.RowDefinitions>
            <RowDefinition/>
            <RowDefinition Height="30"/>
        </Grid.RowDefinitions>
        <TreeView ItemsSource="{Binding Items}" SelectedItemChanged="TreeView_SelectedItemChanged">
            <TreeView.ItemContainerStyle>
                <Style TargetType="{x:Type TreeViewItem}" >
                    <Setter Property="IsSelected" Value="{Binding vm:Items.RootNode.SubNode.IsSelected}"/>
                    <Style.Triggers>
                        <Trigger Property="HasItems" Value="true">
                            <Setter Property="Focusable" Value="False"/>
                        </Trigger>
                       
                    </Style.Triggers>
                </Style>
            </TreeView.ItemContainerStyle>
            <TreeView.Resources>
                <HierarchicalDataTemplate DataType="{x:Type model:RootNode}"
                              ItemsSource="{Binding Path=SubNodes}">
                    <Grid>
                        <TextBlock Text="{Binding Text}" />
                    </Grid>
                </HierarchicalDataTemplate>
                <HierarchicalDataTemplate DataType="{x:Type model:SubNodeItemWithCheckbox}">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="16"/>
                            <ColumnDefinition/>
                        </Grid.ColumnDefinitions>
                        <CheckBox Grid.Column="0" IsChecked="{Binding IsSelected, Mode=TwoWay}" IsEnabled="{Binding IsEnabled}"/>
                        <TextBlock Text="{Binding Text}" Grid.Column="1"/>
                    </Grid>
                </HierarchicalDataTemplate>
                <HierarchicalDataTemplate DataType="{x:Type model:SubNode}">
                        <TextBlock Text="{Binding Text}"/>
                </HierarchicalDataTemplate>
            </TreeView.Resources>
        </TreeView>


        <Button Grid.Row="1" Width="30" Command="{Binding OkCommand}">
            <Image Source="/Images/Sign001.ico"/>
        </Button>
    </Grid>
</Window>

Das Problem ist nur der Template vom Typ SubNode
 <HierarchicalDataTemplate DataType="{x:Type model:SubNode}">
                        <TextBlock Text="{Binding Text}"/>
                </HierarchicalDataTemplate>
Ich möchte, dass wenn ein Item Selektiert wird, es im Model gesetzt wird.
Ich habe es schon mit de, Trigger probiert
<Style TargetType="{x:Type TreeViewItem}" >
                    <Setter Property="IsSelected" Value="{Binding  Path=IsSelected}"/>
                    <Style.Triggers>
                        <Trigger Property="HasItems" Value="true">
                            <Setter Property="Focusable" Value="False"/>
                        </Trigger>
                       
                    </Style.Triggers>
Aber ich weiß nicht so recht wie ich das Binding machen soll. Das Property heißt IsSelected. Leider kann er nicht drauf zugreifen.
Sicher mache ich nur das Binding falsch oder ?

Thema: [erledigt] WPF MVVM : TreeView
Am im Forum: GUI: WPF und XAML

Hallo,
hier die Antwort :

Ich erstelle ein Interface INode

Davon leite ich zwei Klassen ab : SubNode und SubNodewithCheckbox

<Window x:Class="MK.AgentWpf.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        xmlns:local="clr-namespace:MK.AgentWpf.ViewModel"
        xmlns:model="clr-namespace:MK.AgentWpf.Model"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <local:MainWindowModel x:Key="vm"/>
    </Window.Resources>
    <!--LayoutBegin-->
    <Grid DataContext="{Binding Source={StaticResource vm}}">
        <Grid.RowDefinitions>
            <RowDefinition/>
            <RowDefinition Height="30"/>
        </Grid.RowDefinitions>
        <TreeView ItemsSource="{Binding Items}">
            <TreeView.ItemContainerStyle>
                <Style TargetType="{x:Type TreeViewItem}" >
                    <Style.Triggers>
                        <Trigger Property="HasItems" Value="true">
                            <Setter Property="Focusable" Value="False"/>
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </TreeView.ItemContainerStyle>
            <TreeView.Resources>
                <HierarchicalDataTemplate DataType="{x:Type model:RootNode}"
                              ItemsSource="{Binding Path=SubNodes}">
                    <Grid>
                        <TextBlock Text="{Binding Text}" />
                    </Grid>
                </HierarchicalDataTemplate>
                <HierarchicalDataTemplate DataType="{x:Type model:SubNodeItemWithCheckbox}">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="20"/>
                            <ColumnDefinition/>
                        </Grid.ColumnDefinitions>
                        <CheckBox Grid.Column="0" IsChecked="{Binding IsSelected, Mode=TwoWay}" IsEnabled="{Binding IsEnabled,Mode=TwoWay}"/>
                        <TextBlock Text="{Binding Text}" Grid.Column="1"/>
                    </Grid>
                </HierarchicalDataTemplate>
                <HierarchicalDataTemplate DataType="{x:Type model:SubNode}">
                          
                </HierarchicalDataTemplate>
            </TreeView.Resources>
        </TreeView>


        <Button Grid.Row="1" Width="30">
            <Image Source="/Images/Sign001.ico"/>
        </Button>
    </Grid>
</Window>

Und das Model dazu :

public class SubNodeItemWithCheckbox:INode
    {
        public SubNodeItemWithCheckbox(RootNode parent)
        {
            _parent = parent;
        }

        private RootNode _parent;

        private bool _isEnabled;
        public bool IsEnabled
        {
            get { return _isEnabled; }
            set { _isEnabled = value;OnPropertyChanged(() => IsEnabled); }
        }

        private bool _isSelected;
        public bool IsSelected
        {
            get { return _isSelected; }
            set
            { 
                _isSelected = value;
                ChangeEnabledStatus();
                OnPropertyChanged(() => IsSelected); 
            }
        }

        private string _text;
        public string Text
        {
            get { return _text; }
            set { _text = value;OnPropertyChanged(() => Text); }
        }
        private void ChangeEnabledStatus()
        {
            foreach (INode subNode in _parent.SubNodes.Where(p => p.Text != _text))
            {
                subNode.IsEnabled = !_isSelected;
            }
        }

        #region OnPropertyChanged
        public event PropertyChangedEventHandler PropertyChanged;

        private void OnPropertyChanged<T>(Expression<Func<T>> action)
        {
            var propertyName = GetPropertyName(action);
            OnPropertyChanged(propertyName);
        }

        private static string GetPropertyName<T>(Expression<Func<T>> action)
        {
            var expression = (MemberExpression)action.Body;
            var propertyName = expression.Member.Name;
            return propertyName;
        }

        private void OnPropertyChanged(string propertyName)
        {
            PropertyChangedEventHandler handler = PropertyChanged;
            if (handler != null)
            {
                var e = new PropertyChangedEventArgs(propertyName);
                handler(this, e);
            }
        }
        #endregion


        
    }

Zwei Sachen erreicht : Templates für die beiden klassen und bei Anklicken der Checkbox werden die anderen Checkboxen Disabled.

Grüße

Thema: [erledigt] WPF MVVM : TreeView
Am im Forum: GUI: WPF und XAML

Hi,
danke für eure Tipps :
Ich habe es nun probiert anders zu lösen :

Ich will nun für gewisse Typen ein anderes aussehen machen.
Mir werden zwar nun die Rootnodes angezeigt aber nicht mehr die Subnodes.
Ich haben den Binding path auf SubNodes gesetzt.
Sicher übersehe ich was oder ?

<TreeView ItemsSource="{Binding Items}" Grid.Row="0">
            <TreeView.ItemContainerStyle>
                <Style TargetType="{x:Type TreeViewItem}" > 
                    <Style.Triggers>
                        <Trigger Property="HasItems" Value="true">
                            <Setter Property="Focusable" Value="False"/>
                        </Trigger>
                        <Trigger Property="IsSelected" Value="true">
                            
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </TreeView.ItemContainerStyle>
            <TreeView.Resources>
                <HierarchicalDataTemplate DataType="{x:Type Model:RootNode}">
                    <TextBlock Text="{Binding Text}"/>
                </HierarchicalDataTemplate>
                <HierarchicalDataTemplate DataType="{x:Type Model:SubNode}" ItemsSource="{Binding Path=SubNodes}">
                    <TextBlock Text="{Binding Text}"/>
                </HierarchicalDataTemplate>
            </TreeView.Resources>
         </TreeView>

Grüße

Thema: [erledigt] WPF MVVM : TreeView
Am im Forum: GUI: WPF und XAML

Hi,
ja ich kann den Trigger ansprechen und trotzdem weiß ich immer noch nicht wie ich dann eine Combobox einblende oder ausblende .....

Zu den anderen Fragen hast du nicht auch zufällig ne Antwort ? :-)

Grüße

Thema: WCF + Repositories + Proxymethoden automatisch erzeugen
Am im Forum: Netzwerktechnologien

Hi,

das würde ich persl in der Businesschicht machen.
Du kannst für das Mappen zB den Automapper für das mappen der Objekte nutzen

Thema: [erledigt] WPF MVVM : TreeView
Am im Forum: GUI: WPF und XAML

Hallo zusammen,
nun muss ich auch mal mit neuem GUI zeugs arbeiten ;-)

Ich will einen TreeView darstellen.


<TreeView ItemsSource="{Binding Items}">
            <TreeView.ItemContainerStyle>
                <Style TargetType="{x:Type TreeViewItem}" > 
                    <Style.Triggers>
                        <Trigger Property="HasItems" Value="true">
                            <Setter Property="Focusable" Value="False"/>
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </TreeView.ItemContainerStyle>
                <TreeView.ItemTemplate>
                <HierarchicalDataTemplate ItemsSource="{Binding SubNodes}">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="20"/>
                            <ColumnDefinition/>
                        </Grid.ColumnDefinitions>
                        <CheckBox Grid.Column="0"/>
                        <TextBlock Text="{Binding Text}" Grid.Column="1"/>
                    </Grid>
                </HierarchicalDataTemplate>
            </TreeView.ItemTemplate>
        </TreeView>

Das klappt auch alles wunderbar nur :
Frage 1-> Wie kann ich zB den Items ein anderes template zuweisen ? (Also Items sollen keine Checkbox haben , die SubNodes aber schon)
Frage 2-> Ich wil lzwei Darstellungsformen : Einmal SubNodes MIT Checkbox und einmal ohne. Bisher habe ich durch Googlen nicht rausgefunden, wie ich zB zwei Templates dem Grid zuweisen kann

Frage 3. -> Wenn ein SubNode mit Checkbox angehakt wurde, sollen alle anderen SubItems Disabled werden. Bestimmt über Trigger nur wie ist mir gerade rätselhaft.

Kann mir jmd helfen ?

Grüße

Thema: Repositories und Dependency Injection
Am im Forum: Rund um die Programmierung

Hallo Peter,

Zitat
Ausser du meinst mit "nicht mehr zwingend" die Gefahr, das du aus Versehen irgendwo den konkreten Typen benutzt, weil du ihn benutzen kannst.

Genau das meine ich :-)
Zitat
Als Beispiel kannst du in deiner Anwendung die DI-Registrierung nicht per Code machen (Delegates), auch die NHibernation müsstest du per Xml machen.

Das ist ein wesentlicher Nachteil, da die Typsicherheit und der Komfort der Registrierung nachlässt.

Stimmt das wäre in dem Sinne unkomfortabel. Ich habe aber bewusst diese Art der implementierung gewählt, da ich mit FluentNhibernate ohne "Harte" Koppelung bei Änderungen nur die dll des Repositorys nachschiebe.

Grüße

Thema: Repositories und Dependency Injection
Am im Forum: Rund um die Programmierung

Hi Peter,

mein Kollege meint mit DAL schon eine Assembly, welche den Datzenzugriff regelt.

Zitat
Rein theoretisch kannst du alles in einer Assembly haben, komplett alles.
Auch dann hat DI noch alle Vorteile (bis auf die Austauschbarkeit der Implementation ohne Neukompilierung).
Das verstehe ich aber nicht so recht : Wenn ich eh eine Konkrete Implementierung in eine Assembly packe, muss ich ja nicht mehr zwingend gegen das interface schreiben, sondern kann direkt auf die Implementation zugreifen, da ich die Assembly ja eh eingebunden habe.
Zitat
Nur wenn du das brauchst, macht es Sinn, keine harten Referenzen zu haben und die Assemblies feinkörnig aufzuteilen.

Meistens braucht es dies nicht und die Nachteile, die diese Vorgehensweise mit sich zieht, sind grösser als die Vorteile.

Wieso gibt es da so viele Nachteile ? So wie ich das sehe , verdrahte ich in meiner jeweiligen Klasse ja nur 2 Assemblys : Das Model als Assembly und das Interface des generischen Repositorys, wessen konkrete Implementierung ich über den DI Container auflöse.
Das wäre eigtl. gängiger Standard um absolut Austauschbar zu bleiben oder irre ich mich da ?

Grüße

Thema: Repositories und Dependency Injection
Am im Forum: Rund um die Programmierung

Hi Gü,

Zitat
Person ist Bestandteil des (Daten-) Model und hat im DAL nicht direkt was zu suchen. Der DAL - sprich hier das Repository - kann es kennen, aber deklariert sollte es im Model-Namespace (und ev. Model-Assembly) sein.

Genau darum ging es. Mein kollege ist der Meinung das Datenmodel MUSS in den DAL rein , ich sage es ist nicht so.

Damit hast du meine Aussage bekräftigt. Danke :-)

Grüße

Thema: Repositories und Dependency Injection
Am im Forum: Rund um die Programmierung

Hi Sarc, ja in einer Assembly

Also sehe ich das Richtig, dass ich dann ein generische IRepository Injecte und nur die Entität als fester Verweis angegeben wird.

Gut Danke :-)

Thema: Repositories und Dependency Injection
Am im Forum: Rund um die Programmierung

naja es geht hier darum :

Klasse A braucht IRepository<Person>

Das IRepository soll nun per DI Injected werden.

Variante A : Ich habe die Entität im PersonRepository
Dann MUSS Klasse A ein Verweis auf PersonRepository haben, damit es klappt
DI wäre dann auch realtiv witzlos

Variante B: Ich habe die Entität in einer eigenen Assembly
Dann MUSS Klasse A nur den Verweis auf die Entität haben, nicht auf das Repository selbst
DI macht wieder Sinn

Grüße

Thema: Repositories und Dependency Injection
Am im Forum: Rund um die Programmierung

verwendetes Datenbanksystem: <NHibernate>

Hallo zusammen,

ich "streite" mich gerade ein wenig mit meinem Kollegen:

Er, ehemaliger Delphi Progger, kennt sowas wie Repository und DI nur Theoretisch ;-) .

So nun zum Streitthema : Ich habe ein Interface IRepository<T> also generisch.
Dieses Interface nutze ich als Contract für meine anderen Repositories.
Um die Repositories in meine Anwendung zu Injecten lagere ich die Entität des Repositories (also das <T> zB UserModel) in andere Assemblys aus um diese später nutzen zu können.
Er sagt, er würde die Entität aber in das jeweilige Repository mit einbinden.

zB die Assembly UserRepository enthält die Entität User

Nur : Habe ich dann ja wieder den harten Verweis auf das Repository und das will ich ja verhindern.
Ich gebe ihm aber recht, dass ein Verweis auf dieEntität auch nicht soo toll ist, aber zur Zeit fällt mir keine andere Lösung ein.

Wer ist also näher an der Wahrheit ?

Grüße

Thema: LINQ to XML: Kein Ergebnis bei auslesen
Am im Forum: Datentechnologien

Oops,
das habe ich aber nun auch übersehen.

Grüße

Thema: LINQ to XML: Kein Ergebnis bei auslesen
Am im Forum: Datentechnologien

Hi,

kalr :
Du musst dich durch deine XML Datei "durchhangeln" :

Erst den Node "TextXMLDoc" dann den Node "Liste" und dann erst kommst du an deine Items.

Grüße

Thema: Teamspeak 3 SDK verwenden
Am im Forum: Rund um die Programmierung

liegt die DLL im Ausgabeverzeichniss der Assembly ?

Thema: Teamspeak 3 SDK verwenden
Am im Forum: Rund um die Programmierung

Hi,

schau dir mal die callbacks.cs an, dort findest du zB die Events für die Serverkommunikation.
Im Ordner Server liegt alles für das hosten eiens Servers.

Solltest du dann noch konkrete Probleme haben, kannst du dich gerne hier melden :-)

Grüße

Thema: Teamspeak 3 SDK verwenden
Am im Forum: Rund um die Programmierung

Hi,

in der SDK gibt es sogar Beispiele für die Nutzung in C#
Schau doch einfach mal da rein ;-)

Grüße

Thema: ID für lokale Anwendung, die für mehrere Installationen eindeutig sein muss
Am im Forum: Rund um die Programmierung

Wir haben für diesen Zweck die Seriennummer der Festplatte genutzt.

Klappt bei 900 Rechnern wunderbar :-)

Grüße

Thema: Linq-Anweisung bzw. Func<> serialisieren
Am im Forum: Rund um die Programmierung

Hallo zusammen,

ist es möglich LINQ Anweisungen zu serialiseren um diese zB aus einer XML Datei zu lesen ?

zB Where(p => p.ConnectDurationS > 0 && p.LastGroupId != 5).Average(p => p.WaitDurationS) != 0

Ich finde irgendwie dazu nix ..

Grüße

Thema: Google liefert unterschiedliche Beschreibungen für dieselbe Url je nach verwendeten Suchbegriffen
Am im Forum: Smalltalk

Hi,

sowas habe ich auch schon beobachtet bei unserer eigenen Firmenwebseite :
Es liegt wohl am Googlecache , gooogle speicher Metainfos in einem Chache und ruft diese ab, manchmal vollkommen willkürlich.
Das ganze hat sich bei unserer Webseite erst nach gut 7 Monaten normalisiert

Grüße

Thema: Dynamischer Fragenkatalog: Wie das Datenmodell aufbauen?
Am im Forum: Rund um die Programmierung

Was spricht zB gegen folgendes naives Datenmodell :

MainQues{
ID
Question}

SubQuest{
ID
Question
FK_MainQues
Order}

Answer{
ID
Answer
FK_MainQues}

SubAnswer{
ID
Answer
FK_SubQUest}


So : Eine MainQues hat x Subquest. Durch das Datenfeld Order erhälst du eine BEnatwortungsreihenfolge. DIe Beiden Tabellen für die Antworten verweisen auf die jeweiligen Fragen.

Is nur ne Fixe Idee aus dem Zug ;-)

EDIT : Du könntest das Model dahingehen erweitern , dass die Answer eine nachfolgende Frage vorgibt, also ein weiteres Feld in den Answers

Grüße

Thema: Informatik-Studium sinnvoll/nützlich? Welche Alternativen zum Studium sind sinnvoll/nützlich?
Am im Forum: Smalltalk

Hallo Marco,

ich kenne zur Zeit keine Firma, wo selbst gestandene Dipl. Infs nicht auf Frameworks usw. zugreifen. Wir leben in Businessapplikationen in einer Welt des RAD.
Da muss man eben nicht mehr alles "zu Fuß" machen.

Und Sortierung : Das gehört auch in den Lerhplan eines Fachinformatikers ;-)

Grüße

Thema: Informatik-Studium sinnvoll/nützlich? Welche Alternativen zum Studium sind sinnvoll/nützlich?
Am im Forum: Smalltalk

Ich sehe es wie Coder007.
Ich habe die Ausbildung gemacht, hatte aber schon massig vorwissen und habe während der Arbeit programmieren gelernt. Zum Glück waren die berufsschulblöcke immer nur 3 Wochen lang ;-)
Im endeffekt hat mir, was das programmieren angeht, die Schule nichts gebracht. Das weiteste Ziel im dritten lehrjahr war , Vererbung .....
Fachinformatiker können gute Programmierer sein, wenn Sie denn im Betrieb und Freizeit wissen aneignen.

Thema: Moq-Framework: wie geht Weakmatching?
Am im Forum: Rund um die Programmierung

Es ist immer gutes Design gegen Interfaces zu programmieren ;-)

Thema: Linq2Sql: Multiuser und mehre DataContexte
Am im Forum: Datentechnologien

Hi,

ja sicher kannst du das ganze einfacher lösen, ich denke aber es soll sich ein gewisser Lerneffekt einstellen :
Saubere Trennung von Schichten und ein gewisses Maß an sauberem Code.

Ich denke, wenn du dich an gfoidl Tipps hälst, kannst du sauberen Code produzieren.

Grüße

Thema: [erledigt] List<T> und Änderungen darin in Datenbank speichern
Am im Forum: Datentechnologien

Hi,

ja , deine Klassen die du suchst sind in den Designer.cs Dateien versteckt.
Also alles gut ;-)