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 JimStark
Thema: Wie kann ich mit einem .NET Client von einem Server etwas herunterladen?
Am im Forum: Web-Technologien

Wenn es an sowas schon scheitert, geh ich mal ganz stark davon aus, dass du gar nicht genau weißt was du da überhaupt machst.

Du hast eine Server Applikation und eine Client Applikation? Ist die Client Applikation auch ein WPF Projekt? Wie kommunizieren die? Was willst du runterladen?

Thema: Wie kann ich einer CSV einen Header hinzufügen?
Am im Forum: Grundlagen von C#

Da fehlt ein else im Code, das hätte man durch die Codeformatierung schon gesehen ;)


=> Und diese Variablennamen,... da muss ich aber los...

Thema: Wie kann ich Highscore- / Punkteliste speichern, auslesen und in Konsole anzeigen?
Am im Forum: Grundlagen von C#

Das kommt auf deine Ansprüche an, ob nur ein Benutzer,...

Bei sowas einfachen würde ich ein Listen Objekt serialisieren.

Thema: Wie schreibe ich einen Restful Webservices unter SharpDevelop?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Du kannst doch theoretisch auch mit dem CLI das Projekt "richtig" erstellen:


dotnet new webapi

Dann kannst du ja auch Notepad als Editor verwenden

Thema: Suche von Algorithmus für das Erstellen eines Spielplans
Am im Forum: Rund um die Programmierung

Ich weiß jetzt nicht ob ich zu kompiliziert oder falsch denke, aber ich kann mir doch so alle aufzählen (ohne Schleife von Abts Link). Dann füge ich alle Matches in eine Liste ein mit einer ID, und schau ob es sie schon gibt, das sollte ja dann noch das einfachste sein.


            string[] ms = new string[] { "m1", "m2", "m3"};
            string[] ws = new string[] { "w1", "w2", "w3" };

            var result = from m in ms
            from w in ws
            select new { m = m, w= w };

            foreach(var r in result)
            {

                var gegner = result.Where(c => c.m != r.m && c.w != r.w);

                foreach(var tmpGegner in gegner)
                {
                    Console.WriteLine($"{r} vs. {tmpGegner}");
                }

            }
Zitat
{ m = m1, w = w1 } vs. { m = m2, w = w2 }
{ m = m1, w = w1 } vs. { m = m2, w = w3 }
{ m = m1, w = w1 } vs. { m = m3, w = w2 }
{ m = m1, w = w1 } vs. { m = m3, w = w3 }
{ m = m1, w = w2 } vs. { m = m2, w = w1 }
{ m = m1, w = w2 } vs. { m = m2, w = w3 }
{ m = m1, w = w2 } vs. { m = m3, w = w1 }
...
{ m = m3, w = w1 } vs. { m = m2, w = w3 }
{ m = m3, w = w2 } vs. { m = m1, w = w1 }
{ m = m3, w = w2 } vs. { m = m1, w = w3 }
{ m = m3, w = w2 } vs. { m = m2, w = w1 }
{ m = m3, w = w2 } vs. { m = m2, w = w3 }
{ m = m3, w = w3 } vs. { m = m1, w = w1 }
{ m = m3, w = w3 } vs. { m = m1, w = w2 }
{ m = m3, w = w3 } vs. { m = m2, w = w1 }
{ m = m3, w = w3 } vs. { m = m2, w = w2 }

Thema: Suche von Algorithmus für das Erstellen eines Spielplans
Am im Forum: Rund um die Programmierung

Zitat von soshi
Naja, mal ganz ehrlich

"immer nur verschieben, und das jetzt als Code"

Wenn ich wüsste wie man das als code umsetzt hätte ich nicht gefragt.

Suche von Algorithmus für das Erstellen eines Spielplans, du sagtest du willst einen Algorithmus und damit geht es.
Zitat
Ausserdem klappt das nicht so(siehe bild).

Was du mit dem Bild sagen willst verstehe ich immer noch nicht.

Einfachstes Beispiel:


            int mCount = 3;
            int wCount = 3;
            for(int m=1; m≤mCount; m++)
            {
                for(int w=1; w≤wCount; w++)
                {
                    Console.WriteLine($"Team: m{m} vs. w{w}");
                }

            }

Zitat
Team: m1 vs. w1
Team: m1 vs. w2
Team: m1 vs. w3
Team: m2 vs. w1
Team: m2 vs. w2
Team: m2 vs. w3
Team: m3 vs. w1
Team: m3 vs. w2
Team: m3 vs. w3

Für die Partien musst du dann einfach prüfen das niemand zwei mal vorkommt.
Das ist genau das von oben.

Thema: Suche von Algorithmus für das Erstellen eines Spielplans
Am im Forum: Rund um die Programmierung

Beispiel:

m1 m2 w1 w2
1 0 1 0
1 0 0 1
0 1 1 0
0 1 0 1

==> m1 & w1 vs. m2 & w2
==> m1 & w2 vs. m2 & w1

m1 m2 m3 w1 w2 w3
1 0 0 1 0 0
1 0 0 0 1 0
1 0 0 0 0 1
0 1 0 1 0 0
0 1 0 0 1 0
0 1 0 0 0 1
...

==> m1 & w1 vs. m2 & w2 vs. m3 & w3
==> m1 & w2 vs. m2 & w3 vs. m3 & w1

immer nur verschieben, und das jetzt als Code

Thema: Suche von Algorithmus für das Erstellen eines Spielplans
Am im Forum: Rund um die Programmierung

Es gibt immer m^2 Möglichkeiten, wobei m die Anzahl der Männer z.b. ist.

m1 m2 w1 w2
1 0 1 0
1 0 0 1
0 1 1 0
0 1 0 1


m1 m2 m3 w1 w2 w3
1 0 0 1 0 0
1 0 0 0 1 0
1 0 0 0 0 1
0 1 0 1 0 0
0 1 0 0 1 0
0 1 0 0 0 1
...


Wenn ich das jetzt richtig verstanden habe.
Ist dann einfach abgrasen der Optionen, Partien speichern und damit auswählen.

Thema: Welche Datenbank-Technologie? NoSQL oder nicht?
Am im Forum: Datentechnologien

Ich hoffe es ist okay wenn ich hier kurz eine Frage genau zu diesem poste:

Angenommen ich habe Models (z.B. Order) und will davon Ableitungen haben (ProductOrder, ServiceOrder, etc.).

Sollte ich, wenn ich mit sowas arbeite direkt auf NoSQL Datenbanken setzen? Nachdem was ich gesehen habe würde es zwar mit EntityFramework & einem SQL Server gehen, aber sqlite und sowas nicht mehr?

Viele Grüße

Thema: Wie kann ich eine Variable einer WinForm an eine andere Form übergeben?
Am im Forum: GUI: Windows-Forms

Achso sorry hatte seine Frage nicht verstanden

Thema: Wie kann ich eine Variable einer WinForm an eine andere Form übergeben?
Am im Forum: GUI: Windows-Forms

Man könnte es ja auch z.B. so machen:


    public static class Form1ErweiterungMethod
    {
        public static void SetText(this Form1 form, string title)
            => form.Text = title;
    }

Würde da dagegen was sprechen, bzw. was wäre daran der Nachteil gegenüber einer Ableitung? @Abt, Th69,...

Thema: Wie mache ich eine Linie zwischen Eclipsen, die beim Verschieben mitwandert?
Am im Forum: GUI: WPF und XAML

Erstell dir ein ViewModel, dann kannst du die Koordinaten binden.

Siehe [Artikel] MVVM und DataBinding

Thema: Wann setze ich IEnumerable und yield ein?
Am im Forum: Grundlagen von C#

Super, vielen Dank euch Beiden!

Thema: Wann setze ich IEnumerable und yield ein?
Am im Forum: Grundlagen von C#

Okay, das macht Sinn, danke.

Angenommen ich hätte einen Array mit Dateinamen von Bildern und ich will die geladenen Image Objekte z.B. mit GetAllImages() zurückgeben, bei sowas würde ich es dann einsetzen?


...
public IEnumerable GetAllImages()
{
...
   yield return Image.FromFile(image[i]);;
}

Thema: Wann setze ich IEnumerable und yield ein?
Am im Forum: Grundlagen von C#

Hi,

mal eine ganz grundlegende Frage:

Angenommen ich hätte eine Klasse die auf eine Datenbank zugreift:


// Pseudocode:
public class Datenbank
{
     public IEnumerable GetArticles()
     {
        foreach...
          yield return article;
      }
      // oder
      public List<Article> GetArticles()
      {
            return articles;
       }
}

Gibt es da irgendwelche Performancevorteile, bzw. wann sollte ich auf IEnumerable zurückgreifen anstatt z.B. der ganzen Liste? Wenn ich sehr speicherintensive Objekte habe?

Thema: Zugriff auf Property einer anderen Klasse/ViewModel
Am im Forum: GUI: WPF und XAML

Zitat von echdeneth
da ich mit .NET Framework arbeite (.NET CORE gibts nicht mit Views oder?)
kann ich nur C# 7.3.

Ich weiss nicht ob mir das Buch da weiterhilft.

Ich gehe mal davon aus dass es zwischen Version 7.3 und 8 keine solchen fundamentalen Änderungen gibt, dass du damit überhaupt nicht mehr klar kommst Du kannst das Buch theoretisch auch mit einer uralt Version durch machen, alle Neuerungen der Versionen sind angeführt.

Es ist nirgendwo aufgeführt dass das Buch ausschließlich mit .NET Core arbeitet? Ich denke für dich würde das eh keinen merkbaren Unterschied bei der Entwicklung machen.

Thema: Zugriff auf Property einer anderen Klasse/ViewModel
Am im Forum: GUI: WPF und XAML

Zitat von echdeneth
Wenn ich lernen will wie MVVM funktioniert, muss ich etwas haben woran/womit ich es lernen kann.
Bücher gibts keine gescheiten, YouTube?, Foren evtl. und! funktionierender Code den ich analysieren kann..

Ich arbeite derzeit das Buch C# 8 mit Visual Studio 2019: Das umfassende Handbuch von Andreas Kühnel durch, da wird auch MVVM behandelt. Ich kann das Buch wirklich auch für die Festigung grundlegender Kenntnisse empfehlen. Vorallem noch mal die ausführliche Einarbeitung in delegates und Events dürfte da einiges erklären.

Thema: Wie kann man als Software Entwicklungs Berater beginnen?
Am im Forum: Smalltalk

Zitat von MrSparkle
Ist eigentlich ganz einfach. Wenn man irgendwann in der Lage ist, andere Leute oder Firmen in einem bestimmten Bereich zu beraten, dann merkt man das selbst. Und dann kann man sich selbständig machen (Freiberufler) oder eine Firma gründen.

Ja klar, aber selbst wenn du der Beste bist werden ja nicht automatisch Firmen auf dich zukommen, ich meine ehr wie man dann da die Kontakte knüpft / Anschluss findet. Ich schätze mal wenn du ein paar größere Projekte mal mitgemacht hast geht der Rest von alleine oder?

Thema: Wie kann man als Software Entwicklungs Berater beginnen?
Am im Forum: Smalltalk

Mega cool, danke für den Einblick
Kannst du da ein paar Konferenzen empfehlen, die man einfach so besuchen kann? Also am besten für .NET, Softwareentwicklung,...

Thema: Wie kann man als Software Entwicklungs Berater beginnen?
Am im Forum: Smalltalk

Danke für die Antwort!

Wie hast du dann angefangen? Also ich schätze mal . erst normal in dem Bereich gearbeitet/Erfahrung gesammelt, usw.? Aber wie macht man dann den Schritt in die Selbstständigkeit? Hattest du die ersten Aufträge durch Kontakte, ehemalige Arbeitgeber,... oder wie bist da rein gekommen?

Thema: Wie kann man als Software Entwicklungs Berater beginnen?
Am im Forum: Smalltalk

Hey,

nur mal so aus Neugierde da es ja auch Firmen gibt die sich auf Beratung für die Softwareentwicklung in C# spezialisiert haben, etc.

Wie steigt man in diesem Bereich ein? Also als Selbständiger. Gibt es da von Microsoft Zertifizierungen oder kommt es da ehr auf die Erfahrung/vergangene Projekte an? Wenn ja, wie kommt man da rein bzw. wie fängt man an?

Viele Grüße

Thema: Wie aktualisiere ich eine ObservableCollection mit MySQL als Quelle (MySQL/MVVM)?
Am im Forum: GUI: WPF und XAML

Ich muss nochmal kurz nerven,
jetzt wenn man ein bisschen was gemacht hat und auch mal selbst einen Command angelegt hat muss man schon sagen es ist irgendwie um einiges komfortabler als WinForms

Per DI injecte ich jetzt den Datenservice in das OrdersViewModel, darin habe ich mir zwei Commands angelegt:


    public class OrdersViewModel : BaseViewModel
    {
        private List<OrderViewModel> _Orders = new List<OrderViewModel>();
        private AvService _avService;
        public ICommand ShowDetailsCommand { get; set; }
        public ICommand UpdateOrderCommand { get; set; }

        public OrderViewModel SelectedOrder { get; set; }

...


        private void showDetails(OrderViewModel order)
        {
            // simple window
            Window frmDetails = new Window();
            frmDetails.Content = new OrderUserControl(this, order);
            frmDetails.Show();
        }

        private Order UpdateOrder(Order order, OrderViewModel orderView)
        {
            order.Title = orderView.Title;
            // ... 
            return order;
        }

        public OrdersViewModel(AvService avService)
        {
            this._avService = avService;

            // ShowDetails Command, TODO Can execute
            ShowDetailsCommand = new RelayCommand( p =>
                   showDetails(this.SelectedOrder)
                ) ;

            UpdateOrderCommand = new RelayCommand(p => 
                avService.UpdateOrder( this.UpdateOrder(
                    avService.GetOrders()
                        .Where( x=> x.OrderId == (p as OrderViewModel).Id)
                        .First(), (p as OrderViewModel))
                    )
            );
        }


Der ShowDetailsCommand ist an einen Button im MainWindow gebunden, der öffnet dann mein Usercontrol testweise in einem temporären Fenster.

Nun zum UpdateOrderCommand, der soll das geänderte OrderViewModel in der Datenbank speichern, dazu mappe ich die Änderungen des ViewModels auf die des Order-Models und speichere sie in der Datenbank.

Würde man das so machen dass dem UserControl die ViewModel Instanz übergeben wird oder würde man sich da ehr an ein Event dranhängen?

User-Control:


    public partial class OrderUserControl : UserControl
    {
        private OrdersViewModel _orders;
        private OrderViewModel _order;

        public OrderUserControl(OrdersViewModel orders, OrderViewModel order)
        {
            InitializeComponent();
            this._orders = orders;
            this._order = order;

            this.DataContext = new
            {
                order = _order,
                orders = _orders
            };

            
        }
    }


        <Label Content="Title:"/>
        <TextBox Text="{Binding order.Title}"/>

        <Button Content="Save" Command="{Binding orders.UpdateOrderCommand}" CommandParameter="{Binding order}" />

Das ganze funktioniert ohne Probleme, die Frage ist aber ob das der way to go ist sollte das Projekt mal größer werden?

Danke euch schonmal für eure Geduld 8)

Thema: Wie aktualisiere ich eine ObservableCollection mit MySQL als Quelle (MySQL/MVVM)?
Am im Forum: GUI: WPF und XAML

Super danke euch!

Ich denke ich nutze dann ehr die List bzw. IReadOnlyCollection Methode, da ich die Daten ja nur über den Service beziehe.

Danke euch!

Thema: Wie aktualisiere ich eine ObservableCollection mit MySQL als Quelle (MySQL/MVVM)?
Am im Forum: GUI: WPF und XAML

Der Artikel erklärts ja recht schön nur verstehe ich dann den Einbezug von Models nicht.

Meinst du z.B. ich injecte den avService in das OrdersViewModel und manage da drüber alles?

D.h. einmalig die Liste so initalisieren,
und dann über einen Command z.B. avService.CreateOrder() und davon ein ViewModel in die Collection geben? ==> Also dass das OrdersViewModel nochmal eine Schicht zw. Datenbank Service und GUI ist?

Thema: Wie aktualisiere ich eine ObservableCollection mit MySQL als Quelle (MySQL/MVVM)?
Am im Forum: GUI: WPF und XAML

Ja, ich habs gerade auch versucht und es ging natürlich nicht =), sorry das hat mich alles ein bisschen verwirrt.


        private AvService _avService;
        private OrdersViewModel _orders = new OrdersViewModel();

        public MainWindow()
        {
            InitializeComponent();
            this._avService = new AvService("test.db");


            this.DataContext = this._orders;

            refreshOrders();
        }

        private void refreshOrders()
        {

            var viewModels = this._avService.GetOrders().Select(model => new OrderViewModel(model) );
            this._orders.Orders = new ObservableCollection<OrderViewModel>(viewModels);


        }

Und so verweise ich darauf:


<DataGrid ItemsSource="{Binding Orders}"/>

Thema: Wie aktualisiere ich eine ObservableCollection mit MySQL als Quelle (MySQL/MVVM)?
Am im Forum: GUI: WPF und XAML

Mein ganzes Wissen darüber habe ich bisher nur aus diesem Artikel :D
OrdersViewModel entspricht dem CompanyViewModel.
Ich schätze ich kann die


private ObservableCollection<OrderViewModel> _Orders

auch direkt in der MainForm deklarieren, und die dann in XML ansprechen.

Danke euch, wenn ich noch Fragen habe mache ich einen neuen Thread auf um diesen nicht zu arg voll zu spamen.

Viele Grüße

Thema: Wie aktualisiere ich eine ObservableCollection mit MySQL als Quelle (MySQL/MVVM)?
Am im Forum: GUI: WPF und XAML

Danke für deine Antwort,

nur verstehe ich da jetzt nicht ganz den Unterschied:


var viewModels = models.Select(model => new ViewModel() { Data = model.Data });
Items = new ObservableCollection<ViewModel>(viewModels);

Du erstellst doch da auch nur eine neue ObservableCollection mit den ViewModels.

Der Code bei mir macht doch das gleiche oder habe ich einen Denkfehler?!
ordersView.Orders ist ja die ObservableCollection des OrdersViewModel (entspricht Company in deinem Artikel), und der füge ich die ViewModels der Models hinzu.
Sorry bin noch relativ frisch in der Materie und mir fehlt da ein bisschen der Überblick.


foreach (var order in this._avService.GetOrders())
            {
                this._ordersView.Orders.Add(new OrderViewModel(order));
            }


    public class OrdersViewModel : BaseViewModel
    {
        private ObservableCollection<OrderViewModel> _Orders = new ObservableCollection<OrderViewModel>();

        public ObservableCollection<OrderViewModel> Orders
        {
...

Thema: Wie aktualisiere ich eine ObservableCollection mit MySQL als Quelle (MySQL/MVVM)?
Am im Forum: GUI: WPF und XAML

Zitat von MrSparkle
Hier hast du offensichtlich denn Sinn einer ObservableCollection nicht verstanden. Die ObservableCollection ermöglicht es, eine veränderbare Liste mit Daten an die View zu binden, damit diese sich bei Datenänderungen automatisch aktualisieren kann.

Das ist genau mein Problem,
wie komme ich von den Models auf eine ObservableCollection mit den ViewModels, sodass ich WPF auch effektiv nutze.

@Abt danke für die Links vielleicht erklärt sich ja dadurch dann meine Frage

Danke euch!

Thema: Wie aktualisiere ich eine ObservableCollection mit MySQL als Quelle (MySQL/MVVM)?
Am im Forum: GUI: WPF und XAML

Zitat von Th69
Außerdem sollte die DB-Klasse (und auch die Logik-Schicht) nichts von ViewModels wissen, sondern du solltest Modelldaten dafür erzeugen und verwenden.
Die UI-Schicht erzeugt dann aus diesen Modelldaten die passenden ViewModel-Daten (generell ist es aber normal, daß die ObservableCollection<T> jedesmal wieder neu erzeugt wird, wenn sich die Daten ändern - evtl. kannst du aber ein Caching einbauen, wenn es performancemäßig relevant ist).

Ich hatte genau die gleiche Fragestellung wie der Threadsteller, da ich derzeit ein kleines Testprojekt in WPF mache:
der avService liefert mir die Models aus einer Datenbank (Order, Customer,...).
Der Konstruktur des OrderViewModels mappt sich die dann vom Model. (könnte man noch auslagern um Abhängigkeiten zu verringern)

Würde man das so machen oder gibt es da noch etwas eleganteres? Wenn ein Objekt bearbeitet wird triggere ich dann z.B. nur den avService.UpdateOrder(...) und refreshe das ganze?


    public partial class MainWindow : Window
    {
        private AvService _avService;
        private OrdersViewModel _ordersView = new OrdersViewModel();

        public MainWindow()
        {
            InitializeComponent();
            this._avService = new AvService("test.db");
            refresh();
        }

        private void refresh()
        {
            this._ordersView.Orders.Clear();
            foreach (var order in this._avService.GetOrders())
            {
                this._ordersView.Orders.Add(new OrderViewModel(order));
            }

            dgOrders.ItemsSource = this._ordersView.Orders;
        }
    }



    public class OrdersViewModel : BaseViewModel
    {
        private ObservableCollection<OrderViewModel> _Orders = new ObservableCollection<OrderViewModel>();

        public ObservableCollection<OrderViewModel> Orders
        {
            get { return _Orders; }
            set
            {
                if (value != _Orders)
                {
                    _Orders = value;
                    OnPropertyChanged(nameof(Orders));
                }
            }
        }
    }

Thema: Wie kann man Kommandozeilenparameter übergeben, auslesen und nutzen?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich versteh nicht genau was du machen willst,

args.Length gibt dir die Anzahl an Parametern, also die Länge des arrays.
Mit args[0,...] greifst du dann auf die einzelnen Parameter zu.

Siehe hier:https://docs.microsoft.com/de-de/dotnet/csharp/programming-guide/main-and-command-args/how-to-display-command-line-arguments