Laden...

Forenbeiträge von JimStark Ingesamt 309 Beiträge

16.05.2023 - 10:39 Uhr

Hi,

ich habe mir die Standard Identity Seiten (Register, Login,...) generieren lassen und eingebunden, jetzt möchte ich dass man bei der Registrierung zusätzlich einen "Invite"-Code angeben muss. Also einfach ein Feld für einen String, der sollte jedesmal Unique sein und nur wenn der richtig ist kann man sich registrieren. Gibt es da von Identity etwas eingebautes?

Ich schätze eine alternative Methode wäre dass ich das InputModel der generierten Register.cshtml erweitere und in die OnPost-Methode meinen eigenen Check einbaue?

Vielen Dank!

10.12.2022 - 09:25 Uhr

Deine Prüfung macht auch wenig Sinn, wenn ds != null geht er schon rein. ds.Tables["Artikel"] kann ja immer noch fehlen.

08.08.2022 - 14:55 Uhr

Nur als kleine Alternative, ich lege/bearbeite Solutions und Projekte eigentlich nur noch per Kommandozeile an:
Finde ich viel intuitiver als das mit VS zu machen, aber ist natürlich geschmackssache 😉

Befehl „dotnet sln“ - .NET CLI

dotnet new sln --name MeinProjekt
dotnet sln add src/Projekt.Core

09.06.2022 - 17:24 Uhr

Faktoren die für euch eine Stelle entweder attraktiv oder unattraktiv machen?

Ich habe zumindest die Erfahrung gemacht, dass fähige Leute ziemlich gut wissen wie viel man wo verdienen kann und dass kleinere Firmen sowas gerne mal mit "familiärer Atmosphäre" und einem Tischkicker kompensieren wollen.

22.05.2022 - 17:09 Uhr

Mit meiner Frage wollte ich ausdrücken dass ich nicht weiß was eine Und Verknüpfung hier bringen sollte.

Für mich hört sich die Fragestellung:

System.Collections.Generic.List<Address> myAddresses;
Item address = myAddresses.Find(x => x.Street == "Schlossallee");
Item address = myAddresses.Find(x => x.ZipCode == 12345);

so etwas bräuchte ich, finde es nur nicht.

nach sowas an:


Item address = myAddresses.Find(x => x.Street == "Schlossallee" && x.ZipCode == 12345);

20.05.2022 - 19:45 Uhr

Linq kennst du aber? Kannst ja mit Und-Verknüpfungen arbeiten. Wenn es um optimierte abfragen generell geht: https://github.com/NetFabric/NetFabric.Hyperlinq

24.03.2022 - 15:10 Uhr

Im Prinzip musst nur du und die Leute die du informieren willst damit klar kommen.
Ich kenne vom sehen auch "+" Added, "*" changed, etc.

Schöner zu lesen ist natürlich ausgeschrieben. Finde folgende Releasenotes immer ganz übersichtlich gemacht:
https://github.com/Hypfer/Valetudo/releases

02.03.2022 - 21:06 Uhr

Ach jetzt versteh ich was du meinst.
Mit dem Mittelwert müsstest du das Eingangssignal mit einem laufenden Fenster betrachten und kannst dann die Peaks so erkennen.

Ich glaube das ist was du suchst: peak-signal-detection-in-realtime-timeseries-data
Da ist so gar eine C# Implementierung dabei.

02.03.2022 - 20:32 Uhr

Also so ganz verstehe ich deine Anforderung nicht, aber wieso machst du nicht einfach einen Schwellwert (könnte sich ja am Mittelwert orientieren, etc.) ab dem die Peaks auf 320 gehoben werden und ansonsten beschnitten?

18.02.2022 - 16:23 Uhr

Für Visual Studio Code gibts sowas bereits: https://marketplace.visualstudio.com/items?itemName=dqisme.sync-scroll
Da kannst du einen Offset angeben, damit sollte das möglich sein.
Für VS musst du dir dann vielleicht selber was bauen, sollte ja noch im Rahmen des Möglichen sein.

27.01.2022 - 09:34 Uhr

Kommt auf das Projekt an,
hier ist eigentlich alles beschrieben: https://docs.microsoft.com/de-de/dotnet/core/porting/

17.01.2022 - 12:11 Uhr

Vielleicht für Anfänger interessant, die eine Plugin-Engine für eine WPF-Anwendung bauen wollen und Inhalte dynamisch hinzufügen wollen:
MVVM siehe: [Artikel] MVVM und DataBinding
Das ganze ist natürlich stark vereinfacht und nutzt direkt das MainViewModel, was für aufwendigere Anwendungen wahrscheinlich ungeeignet ist.

Was sollen unsere Plugins wissen?


    public interface IHostView
    {
        public string WindowTitle { get; set; }
    }

Z.B. MainViewModel implementiert IHostView:


    public class MainViewModel : BaseViewModel, IHostView
    {
        private List<Plugin> _Plugins = new List<Plugin>() ;

        private string _WindowTitle = "Meine Hauptanwendung";
        public string WindowTitle { 
            get => _WindowTitle;
            set  {
                _WindowTitle = value;
                OnPropertyChanged(nameof(WindowTitle));
            }

        }
        public List<MenuItem> PluginMenuItems
        {
            get
            {
                var list = new List<MenuItem>();
                foreach (var plugin in _Plugins)
                    list.Add(plugin.GetPluginMenuItem());
                return list;
            }
        }

        public MainViewModel()
        {
            // Plugins dynamisch hinzufuegen
            _Plugins.Add(new MeinPlugin(this));
        }
    }

Abstrakte Plugin-Klasse, was soll es können:


    public abstract class Plugin
    {

        public IHostView _Host;
        public Plugin(IHostView host)
        {
            _Host = host;
        }

        public abstract string Name { get; }

        // Standardmaessig kein MenuItem
        public virtual MenuItem GetPluginMenuItem() { return null; }
    }

Plugin-Implementierung:


    public class MeinPlugin : Plugin
    {
        public MeinPlugin(IHostView host) : base(host)
        {
        }

        public override string Name => "Mein Plugin";

        public override MenuItem GetPluginMenuItem()
        {
            var menuItem = new MenuItem();
            // Alternativ Command
            menuItem.Header = this.Name;
            menuItem.Click += MenuItem_Click;
            return menuItem;
        }

        private void MenuItem_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            _Host.WindowTitle = "Hallo !";
        }

Plugin Obermenü im Window:


...
        Title="{Binding WindowTitle}" Height="450" Width="800">
    <Window.DataContext>
        <vms:MainViewModel />
    </Window.DataContext>

        <Menu DockPanel.Dock="Top">
            <MenuItem Header="File">
                <MenuItem Header="Exit"/>

            </MenuItem>
            <MenuItem Header="Plugins" ItemsSource="{Binding PluginMenuItems}"/>
        </Menu>

Mittels ItemsControl könnte man auch Controls in verschiedenen Bereichen dynamisch hinzufügen, etc.

13.01.2022 - 18:32 Uhr

Wie kommst du eigentlich auf die Idee mit dem Timer?
Rein logisch: Du musst doch vor dem Einfügen lediglich testen ob in deiner Liste der Eintrag schon vorhanden ist (wie z.B. in TimerScanner_Tick) und falls ja, die Spalte "Anzahl" des ListView-Items um eins erhöhen.

Trotzdem unbedingt FZelles Links berücksichtigen.
Einfacher ist es sowas erstmal als Konsolenanwendung richtig objektorientiert zu basteln.

13.12.2021 - 09:02 Uhr

Ich habe auch auf Udemy einige Kurse zu den Themen gekauft, die ich durcharbeiten möchte.

Da brauchst du eigentlich nicht mal Geld ausgeben: C# with CSharpFritz - Windows Forms and the MVP Design Pattern for Unit Testing - YouTube
Ob das die richtige "Architektur" für deine Anwendung ist sei mal dahingestellt.
Allerdings sieht man bei dem Beispiel gut, wie einfach man eine WinForms-Anwendung aufteilen und testbar machen kann.

22.11.2021 - 10:21 Uhr

Je nach Unternehmen kann man die Umsatzgrenze schnell erreichen, also kann es da eventuell Sinn machen.

16.11.2021 - 18:03 Uhr

Wie führst du die Sql-Abfrage denn aus?
[Artikelserie] SQL: Parameter von Befehlen

16.11.2021 - 09:44 Uhr

Setz dir doch mal einen Breakpoint auf die SetValue Methoden und schau ob sich in der Registry auch was ändert.

03.11.2021 - 09:10 Uhr

Greifst du auf die API überhaupt verschlüsselt, über https zu?

06.10.2021 - 14:47 Uhr

Finde den Stundenlohn für einen Einsteiger ohne Studienabschluss gar nicht so wenig. 👍

26.08.2021 - 16:05 Uhr

Interessant wäre auch der Einsatzort. Falls es mal Überlegungen geben sollte, später in die Cloud zu ziehen oder dort bereits läuft, könnten NoSQL-Datenbanken Kostenvorteile bieten.
Das ist z.B. der Hauptgrund warum csharpfritz mit seinem Projekt KlipTok von MySQL zu RavenDb umzieht, bei dem er wahrscheinlich eine ähnlich komplexe Datenstruktur wie du hast.
Milestone Reached - 4 MILLION Clips Indexed!

23.08.2021 - 07:26 Uhr

Mal schnell selber bauen wird schwer.
Mit Azure kannst du das aber ziemlich einfach machen:
Schnellstart: Verwenden der Textanalyse-Clientbibliothek und der REST-API

19.08.2021 - 10:19 Uhr

Kannst du mal einen Userpath (%appdata%/...) statt den C:/SystemInventory ausprobieren?
Kann dort sicher ein normaler User schreiben?! Bei einem Autostart per Registry hast du keine elevated rights, auch nicht als Adminuser, dafür gibts Tasks.

17.08.2021 - 14:38 Uhr

Du kannst auch nach der Änderung OnPropertyChanged feuern. Am saubersten wäre aber wahrscheinlich Settings als eigenes ViewModel.
Je nachdem wie groß das ganze wird oder nach Quelle könntest du das original Objekt dann mittels AutoMapper in ein ViewModel umwandeln.


MyNewCommand = new RelayCommand(parameter => {

        Settings.Wert1 = 100;
        OnPropertyChanged(nameof(Settings));
    },
    parameter => true
);

13.08.2021 - 09:55 Uhr

Steht ja auch genauso in der Doku:

Vergleichen von DateTime, DateTimeOffset, TimeSpan und TimeZoneInfo

These uses for DateTimeOffset values are much more common than those for DateTime values. As a result, consider DateTimeOffset as the default date and time type for application development.

09.08.2021 - 08:14 Uhr

Du sendest im Python-Teil das Dictionary als Payload:


jenkinsfile_payload = {'jenkinsfile': jenkinsFile.read()}

Das sollte das gleiche Format als String ergeben.

Bei .NET:


string content = "jenkinsfile="+pipelineContent;

Vielleicht solltest du da mal testen ob du es auch als JSON übergeben kannst.

07.08.2021 - 10:29 Uhr

Also nur mal als Ausstehender: ich verstehe gar nicht warum das so heiß diskutiert wird 😁 Mir ist das auf anderen Seiten auch noch nie aufgefallen wie sich das dort verhält. Ich nutze zumindest nur die mittlere Maustaste oder Rechtsklick in neuem Tab.

06.08.2021 - 08:58 Uhr

Vorallem ließe sich wahrscheinlich der Großteil deiner bisher gestellten Fragen durch die ersten Kapitel bereits lösen 😉

29.07.2021 - 09:49 Uhr

Könntest du auch Microsoft.Extensions.Configuration nutzen und wenn nötig einen Provider bauen:

Implementieren eines benutzerdefinierten Konfigurationsanbieters in .NET

Die Beispiel-App veranschaulicht, wie ein Standardkonfigurationsanbieter erstellt wird, der Schlüssel-Wert-Paare für die Konfiguration über Entity Framework (EF) Core aus einer Datenbank liest.

28.07.2021 - 16:21 Uhr

Du willst dass dein Webserver als Vermittler spielt und die Clients sich direkt miteinander verbinden?
Das hört sich irgendwie fragwürdig an 😁

C# Webapi+Webrtc LAN audio and video call example - Programmer Sought
Wäre das nicht soetwas was du suchst?

28.07.2021 - 07:07 Uhr

Wenn man deinen Titel mal auf Englisch bei Google eingibt kommt direkt das:
visual-studio-2015-cant-see-code-to-existing-project

Vielleicht das gleiche Problem?

20.07.2021 - 10:43 Uhr

Wie kann ich also den Text von diesem Button ändern, sprich wissen, welcher Button von den ganzen generierten nun der ist, welcher geklickt wurde?

https://docs.microsoft.com/de-de/dotnet/desktop/winforms/event-handlers-overview-windows-forms

20.07.2021 - 10:37 Uhr

Doch eigentlich schon, wird die Form geschlossen kannst du dich an Closed/FormClosed bzw. Closing/FormClosing hängen.

15.07.2021 - 15:13 Uhr

Ich weiß jetzt nicht ob das etwas zu tief geht, aber aus der Objektdetektion nutzt man für sowas unteranderem Feature Maps:

Feature (computer_vision)

Damit könnte man bestimmte Merkmale des Bildes direkt vergleichen.

Gibt hier auch ein Beispiel, allerdings in Python: Image Difference with OpenCV and Python

13.07.2021 - 12:00 Uhr

Gelöscht - falsch verstanden, sorry.

12.07.2021 - 08:57 Uhr

Was ich in dem Fall jetzt nicht verstehe: Ich habe einen dummen String von beispielsweise 6/22/2021 oder 6.22.2021. Warum kann ich diese Zahl direkt in den Quelltext schreiben und umformatieren, aber nicht, wenn exakt die gleiche Zahl aus einer Variablen kommt? Das kapiere ich nicht.

Woran scheitert es jetzt genau?
Abt hat dir doch den Link gegeben:


public static DateTimeOffset ParseExact (string input, string[] formats)

formats: Ein Array von Formatbezeichnern, die die erwarteten Formate von input definieren.

Und das Beispiel zeigt genau wie du es machen musst:


string[] formats = new string[] {@"@M/dd/yyyy HH:m zzz", @"MM/dd/yyyy HH:m zzz",
                                 @"M/d/yyyy HH:m zzz", @"MM/d/yyyy HH:m zzz",

10.07.2021 - 10:26 Uhr

Warum muss man bei der Abfrage ?? verwenden und nicht ||. Ist ?? sowas wie eine "X ODER Y"-Abfrage? Dann müsste doch || genauso funktionieren? Für was steht das ?

Damit kannst du auf null prüfen, siehe:
https://docs.microsoft.com/de-de/dotnet/csharp/language-reference/operators/conditional-operator
?? und ??= (Operatoren) – C#-Referenz

07.07.2021 - 19:26 Uhr

Klar geht das siehe: Gängige NuGet-Konfigurationen und Erstellen eines NuGet-Pakets mithilfe der dotnet-CLI
Du kannst dann eine NuGet.config anlegen und darin deine eigene Quelle definieren.

Ist nur die Frage ob es nicht vorerst reicht, solange es nur eine Warnung ist?

06.07.2021 - 08:08 Uhr

Wäre ein Hauptargument nicht Zukunftsfähigkeit? 😁 Bei SharpDevelop seid ihr ja an die alte Version gebunden.

Ich glaube die Frage gab es hier sogar schon 1:1 so.

05.07.2021 - 20:01 Uhr

Ich habe auch noch einen Bug(?):

Wenn ich einen Link zu den Docs mit einem Anchor poste wird er zwar korrekt angezeigt:
[*url=h ttps://docs.microsoft.com/de-de/dotnet/desktop/wpf/overview/?view=netdesktop-5.0#markup]

Wird aber zu:
h ttps://docs.microsoft.com/de-de/dotnet/desktop/wpf/overview/?view=netdesktop-5.0**&WT.mc_id=DT-MVP-5001507**
Also der Anchor verschwindet

https://docs.microsoft.com/de-de/dotnet/desktop/wpf/overview/?view=netdesktop-5.0#markup

05.07.2021 - 13:06 Uhr

Es sind viele Zeilen Code für die Propperties.Settings in der angehängten Datei.
Könnte man das auch verkleinern? Oder sogar in eine Klasse auslagern?

Eine elegantere Alternative wäre mit dem Microsoft.Extensions.Configuration-Namespace zuarbeiten. Das kann man dann mit dem Optionspattern machen Optionsmuster in .NET oder als anderes Beispiel

03.07.2021 - 19:23 Uhr

Hi,
ja in den Optionen von Visual Studio unter Text-Editor / C# / Formatierung / Neue Zeilen

02.07.2021 - 17:00 Uhr

Das was du vorhast wird in jedem 2. Buch über Programmierung und OOP durchgekaut.
Leg dir eine Klasse Kreis an und füge eine Move Methode ein:


   
    public class Kreis
    {
        // oder halt Point (nur als Beispiel)
        public int ballPosX { get; set; }
        public int ballPosY { get; set; }
        //...

        public Kreis(int clientHight, int ballPosY_Start, ... )
        {
...
        }
        public void Move(int xStep, int moveStepY)
        {
            ballPosY += moveStepY;
            if (ballPosY < ballPosY_Start || ballPosY + ballhight > clientHight)
            {
                moveStepY = -moveStepY;
            }
        }

    }

Dann brauchst du in deinen Form-Methoden nur noch die Objekte durchgehen und die Funktionen aufrufen.

02.07.2021 - 15:14 Uhr

Cool, das funktioniert. Aber ob die anderen wollten, dass ich das erfahre? 😁

Naja dir gings ja um Sicherheit, die haben schon recht dass man es besser machen kann.
Aber wenn euch im Unternehmen so ein Gebastel reicht dann bitte 😁

02.07.2021 - 10:19 Uhr

Was steht denn in deinem ResponseString?


var responseString = await "https://example.tld/update_db.php"
                .PostUrlEncodedAsync(...
                })
                .ReceiveString();

Ohne die Library zu kennen hört es sich für mich an, als würde das den Content der Antwort zurückgeben.

01.07.2021 - 15:21 Uhr

Habe es nur übernommen, denke der Grundgedanke sollte aber für ihn klar sein:

Tutorial: Erstellen einer Web-API mit ASP.NET Core

01.07.2021 - 10:14 Uhr

Du musst doch eigentlich nur das Tutorial: Erstellen einer Web-API mit ASP.NET Core
verfolgen und das ToDo-Modell entsprechend anpassen, dann kannst du alles 1:1 übernehmen:



    public class Rechner
    {
        public long Id { get; set; }
        public string Seriennummer { get; set; }
        public DateTimeOffset Rechnungsdatum { get; set; }
    }


Und mit der GET Methode lieferst du deine Antwort aus:


// GET: api/TodoItems/5
[HttpGet("{id}")]
public async Task<ActionResult<Rechner>> GetRechner(string Seriennummer)
{
    var rechner = await _context.TodoItems.FindAsync(Seriennummer);

    if (rechner == null)
    {
        return NotFound();
    }

    return rechner;
}

30.06.2021 - 08:51 Uhr

Hallo liebe Gemeinschaft,

zunächst: Mir wurde in
>
das das Erstellen einer
>
empfohlen und ein Tutorial verlinkt. Ich habe es versucht nach zu bauen und absolut nichts verstanden. Ich schätze ich bin noch nicht so weit.

Damit solltest du dir deinen Endpunkt bauen, dann kannst du auf das PHP Skript verzichten. Das würde vieles einfacher machen (Authentifizierung, etc.).

Dass der Token im PHP Skript steht, sehe ich gar nicht als Problem, das hat ja WordPress auch. Muss halt nur dein PHP Code sicher sein. Wenn du das aber auch in der Assembly speichern willst, dann ist es natürlich offen.
Und bei Sicherheit steht dein PHP Skript im Mittelpunkt, weiß nicht ob du hier damit richtig bist 😁