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 BerndFfm
Thema: LED Steuerung
Am im Forum: Rund um die Programmierung

Man kann ja beide Hardware kaufen und testen, kostet ja nichts.

Mit DMX gibt es auch professionelle Hardware für Lichtsteuerung : https://www.led-studien.de/dmx-led-controller/

Hier gibt es ein C# Framework dafür : redpawfx/quickDMX512

Hier eine fertige Platine für 30 LED's : https://www.xmas-land.de/30-Kanal-DMX-512-Controller-Platine#false

Grüße Bernd

Thema: LED Steuerung
Am im Forum: Rund um die Programmierung


Der Raspi ist da etwas überqualifiziert glaube ich.

Mit einem Arduino geht das auch : https://starthardware.org/blink-start-mit-arduino/

Bei mehreren oder größeren LED's macht man Transistoren dazwischen als Verstärker.

Beim Arduino ist das Ein- und Ausschalten einfacher und die Kommunikation mit dem PC.

Meiner Meinung nach.

Mit einem ESP32 oder ESP8266 geht das auch per WLAN oder Bluetooth.

Grüße Bernd

Thema: LED Steuerung
Am im Forum: Rund um die Programmierung

Wenn Du was selbst bauen willst kannst Du einen Arduino per USB anschließen, den kann man seriell ansteuern. Da gibt es bestimmt fertige Platinen für die Ansteuerung von LED's.

Einen Arduino kann man sehr gut in Visual Studio programmieren in C#.

Ich glaube hier kann man jede LED einzeln ansteuern : https://starthardware.org/viele-leds-mit-arduino-steuern-ws2812/

Das sind mal viele LED's : Amazing 16x16x16 RGB LED cube - Embedds

Grüße Bernd

Thema: Best Practice: Daten von SQL-Table ins DGV bringen
Am im Forum: Datentechnologien


Hallo Ruzbacky,

ich verstehe den Unterschied deiner 2 Möglichkeiten nicht so ganz.

Typisierte DataSets nimmt man nicht mehr.

Am besten lässt Du das Mapping jemand machen, z.B. ein ORM oder Micro ORM.

Den Connectionstring hinlegst Du natürlich so dass er vom Benutzer geändert werden kann.

Schau mal hier : https://download.seven-c.de/files/DatenbankenHowTo.htm

Grüße Bernd

Thema: SQL-Datentyp <--> .Net-Datentyp
Am im Forum: Datentechnologien


Ist schon lange her dass ich das Oracle Typ Mapping gemacht habe, auf jeden Fall mehr als 12 Jahre.

Damals wurde mir von den Experten das "decimal" als Datentyp für ein logisches Feld genannt.

Der Vorteil des Mappings : Man kann den Typ ganz einfach ändern im Source und sofort auf die neuen Datentypen zugreifen.

Das kommt auch dann vor wenn ein Datenbank Update neue Datenbanktypen bringt die geeigneter sind (MS SQL Datumstyp Date oder Datetime2).

Performance ? Das Mapping oben war ca. 5% langsamer als typisierte DataSets. Ca. 10 Mal schneller als ein damaliges ORM.

Grüße Bernd

Thema: SQL-Datentyp <--> .Net-Datentyp
Am im Forum: Datentechnologien

Ich erzeuge meine C# Zugriffsklassen automatisch aus der Datenbank.

Das Mapping ist fest hinterlegt, sind ja nur wenige Datentypen die es gibt.


public int    nr { get { return ad_nr; } set { ad_nr = value; } }
public string    match { get { return ad_match; } set { ad_match = value; } }
public string    anrede { get { return ad_anrede; } set { ad_anrede = value; } }
public string    name1 { get { return ad_name1; } set { ad_name1 = value; } }
public string    name2 { get { return ad_name2; } set { ad_name2 = value; } }
public string    strasse { get { return ad_strasse; } set { ad_strasse = value; } }
public string    hausnr { get { return ad_hausnr; } set { ad_hausnr = value; } }
public bool      kunde { get { return ad_kunde; } set { ad_kunde = value; } }

Das logische Feld ad_kunde ist je nach Datenbanksystem entweder boolean oder sbyte (MySQL) oder decimal (Oracle) :


if (rw["ad_kunde"] is Boolean) kunde = (bool)rw["ad_kunde"]; else if (rw["ad_kunde"] is sbyte) kunde = ((sbyte)rw["ad_kunde"] == 1); else kunde = ((decimal)rw["ad_kunde"] == 1);

Grüße Bernd

Thema: Manuelle Signierung von App für Android und iOS
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Es funktioniert !

Das Problem war dass beim Ändern von Zertifikat, Apple ID, App ID oder Provisionierungsprofil die alten Werte immer irgendwo stehen bleiben und leider manchmal benutzt werden. Die automatische Bereitstellung in iOS-Bundle-Signierung hört sich gut an, kann man wohl für Beta Versionen per Ad Hoc Distrubution nicht benutzen.

Lösung war das manuelle Löschen der Dateien für Zertifikate und Profile.

Meine Schritte auf dem Windows 10 Rechner :

40. Dateien in C:\Users\??\AppData\Local\Xamarin\iOS\ löschen

41. Apple ID neu hinzufügen, Profile laden

42. Verzeichnis löschen : C:\Net\Android\Finderwille Einsatz App\XamarinForms.LocationService.iOS\obj\iPhone\Release

43. iOS Projekt bereinigen und neu erstellen

44. Extras / iOS / Mit Mac koppeln

45. iOS-Bundle-Signierung
(*) Manuelle Bereitstellung
Signierungsidentität : Apple Distribution: Bernd Quambusch (828G3XCPH9)
Bereitstellungsprofil : Finderwille Ad Hoc Distribution
Benutzerdefinierte Berechtigungen : <Dateiname Löschen>

46. Release iPhone XamarinForms.LocationService.iOS Natascha's iPhone 6s
Das iPhone ist am Mac angeschlossen und Bildschirm entsperrt.
Starten ohne Debuggen (Strg + F5)

45. iOS Archivieren

46. Verteilen / Ad Hoc
Manuelle Bereitstellung
Signierungsidentität : Apple Distribution: Bernd Quambusch (828G3XCPH9) (1. Auswahl von 4 Einträgen)
Bereitstellungsprofil : Finderwille Ad Hoc Distribution
[Speichern unter]

47. [Ordner öffnen]
C:\Archives *.ipa auf Website hochladen und Info.plist Datei erstellen.

Nun kann ich die App von der Website per Klick installieren : https://www.finderwille-frankfurt-main.de/finderwille-einsatz-app-betaversion/

48. App per xcode vom iPhone löschen und von der Website neu installieren.

Die Entwicklung von mobilen Apps in xamarin.forms gefällt mir gut, eine tolle Sache ! Wird nicht meine letzte App bleiben.

Allerdings ist die Integration noch nicht perfekt, es hakt an vielen Stellen.

Beispiele :

- Date Picker geht nicht im Dark Mode

- Beim Löschen von Zertifikaten, Apple ID, App ID oder Provisionierungsprofil müssen die Dateien dazu manuell gelöscht werden

- Man kann die Developer ID im Visual Studio auf dem Mac nicht editieren oder löschen

- /bin/release Verzeichnis auf Windows Rechner muss man vor dem Build manuell löschen

- Der Windows Rechner verliert immer die Verbindung zum Mac, muss man immer manuell neu verbinden

- Android : In der Standard Installation gibt es immer den Fehler "Copy of the mdbs files failed". Man muss die Pfadeinstellungen für Archive ändern und kürzere Pfade eintragen.
Es kommt öfter vor dass bei Xamarin die Pfade länger als 256 Zeichen werden und Windows damit nicht zurecht kommt.
Siehe https://github.com/xamarin/xamarin-android/issues/5584

- Die kostenlose Bereitstellung besser ignorieren und überhaupt nicht damit anfangen, auch wenn es anfangs verlockend klingt.

- Für die Bereitstellung am besten 2 iOS Devices benutzen, eines zum Erstellen des Projektes und eines zum Testen der Installation.

Zu meiner ursprünglichen Frage : Man kann die App mit Openssl.exe oder xcode tools auch per Script signieren und packen, da muss man sich aber besser auskennen. Das mache ich vielleicht später mal.

Grüße Bernd

Thema: Manuelle Signierung von App für Android und iOS
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Es gibt anscheinend Möglichkeiten mit den Xcode Tools zu signieren. Leider bekomme ich es noch nicht mal in der IDE hin.

Bisher habe ich es genau einmal hinbekommen dass eine App rausgekommen ist die man installieren konnte. Und die lief genau einen Tag, dann ließ sich die App nicht mehr starten.

Jetzt schreibe ich jeden Schritt genau auf, damit ich es reproduzieren kann.

Folgende Schritte mache ich um eine App fürs iPhone zu erzeugen :

Auf dem Windows 10 Rechner :

0. Alle Zertifikate / Profile löschen

1. Extras / iOS / Mit Mac koppeln

2. Clean / Rebuild / Deploy Project

3. Release iPhone XamarinForms.LocationService.iOS Remotegerät (falls Natascha's iPhone 6s nicht vorhanden)
Starten ohne Debuggen (Strg + F5)

4. Release iPhone XamarinForms.LocationService.iOS Natascha's iPhone 6s
Starten ohne Debuggen (Strg + F5)

5. Eigenschaften XamarinForms.LocationService.iOS
iOS-Bundle-Signierung
Schema : (*) Automatische Bereitstellung
Team : Bernd Quambusch - Individual - 828G3XCPH99 ([email protected])

5a. Apple Konto entfernen / hinzufügen

5b. Eigenschaften XamarinForms.LocationService.iOS
iOS-Bunde-Signierung
Schema : (*) Manuelle Bereitstellung
Signierungsidentität :
Team : Bernd Quambusch - Individual - 828G3XCPH99 ([email protected])

6. Projektmappe XamarinForms.LocationService.iOS
Archivieren

7. [Verteilen] [Ad-hoc]

8. Extras / iOS / Mit Mac koppeln

8a. Extras / Optionen / Xamarin / iOS-Einstellungen
Speicherort für Archive : C:\Archive (Sonst kommt Fehler MDB Files ...)
Enable Hot Restart = Nein

9. Archiv-App signiert mit : B4120F70629EC3....
Manuelle Bereitstellung
Signierungsidentität : Bernd Quambusch (2. Eintrag)
Bereitstellungsprofil : Finderwille Einsatz App Distribution
Speichern unter : C:\Users\bq\AppData\Local\Xamarin\iOS\Archives
XamarinForms.LocationService.ipa [Speichern]

10. [Ordner öffnen]
C:\Users\bq\AppData\Local\Xamarin\iOS\Archives
XamarinForms.LocationService.ipa hochladen


Auf dem Mac
========

20. Visual Studio starten

21. iOS als Startprojekt festlegen

22. Release | iPhone : Generisches Gerät

23. iOS Einstellungen : iOS-Bündelsignierung / Signierungsidentität Verteilung: Bernd Quambusch (828G3XCPH9)
Bereitstellungsprofil : Ad-hoc (automatisch)

24. Erstellen : Projektmappe bereinigen / neu erstellen

25. iOS : Für Veröffentlichung archivieren

26. Signieren und verteilen / Ad Hoc

27. Apple Developer Portal :
Profiles : Generate
(*) iOS
(*) Ad Hoc
App ID : Visual Studio Wildcard
Certificate : Bernd Quambusch (Distribution)
[x] Select All Devices
Name : Finderwille Ad Hoc Distribution
[Generate]

28. Bereitstellungsprofil ( ) Vorhandene Identität und vorhandenes Bereitstellungsprofil verwenden
59B87C2...
(*) Mit anderer Identität und anderen Bereitstellungsprofil erneut signieren
Signierungsidentität : Distribution: Bernd Quambusch (828G3XCPH9)
App : ...iOS.app
Bereitstellungsprofil : Finderwille EInsatz App Distribution
[Veröffentlichen]
[Ersetzen]

Die erzeugte IPA Datei funktioniert leider nicht.

Auf dem iPhone : " 'Finderwille Einsatz App' kann nicht installiert werden. Versuche es später noch einmal."

Auf der System Konsole des iPhones steht nur : "This app could not be installed at this time" "Invalid Status Code 484" "Error Domain ... Code 1404"

Weitere Fehlermeldungen gibt es nicht.

Da muss ich mal weiter probieren ...

Oder hat da jemand eine idee ?

Grüße Bernd

Thema: Manuelle Signierung von App für Android und iOS
Am im Forum: Cross Platform Entwicklung - Mobile und IoT


ich habe jetzt einen kostenpflichtigen Account bei Apple Developer und habe es nun geschafft eine Beta Version Online zu stellen (Adhoc Deployment).

Der kostenlose Account kann nicht viel und man macht mehr kaputt damit. Ich musste viele Umwege gehen bis App ID, Bundle ID, Certificate, Provisioning Profile und Signature funktioniert haben. Am Ende musste ich alle löschen und neu vom VS erstellen lassen.

XCode ist sehr wackelig und ich habe nun alles auf dem Windows Rechner gemacht. Der Mac muss eingeschaltet sein und ein iPhone muss angeschlossen sein. Zum Glück bekomme ich ein altes iPhone geschenkt. Das Windows Visual Studio läuft gut mit dem Mac zusammen und holt sich alle notwendigen Dokumente von der Apple Developer Seite. Und legt alles an was man braucht !

Hier ist das Ergebnis : Die Finderwille Einsatz App Betaversion | Finderwille Frankfurt/Main

Bitte nicht installieren, ich brauche zuerst die iPhone Seriennummer (UDID), sie muss in das Package eingetragen werden.

Grüße Bernd

Thema: SQL-Query-Timeout - aber nicht im Management Studio
Am im Forum: Datentechnologien


Ja, ist quick and dirty.

Eine saubere Trennung ist besser.


public double HauptspeichernutzungInMegabyte()
{
	return Environment.WorkingSet / 1024 / 1024;
}

Gilt für 32-Bit Applikationen.

Grüße Bernd

Thema: SQL-Query-Timeout - aber nicht im Management Studio
Am im Forum: Datentechnologien

Zitat von ChrisProg
Zitat von BerndFfm
Außerdem prüfe ich den Hauptspeicherbedarf. Wenn ein Anwender versucht eine Liste mit 100 Millionen Datensätzen anzuzeigen kommt eine entsprechende Fehlermeldung.
Wie kannst Du das denn, wenn doch der Reader strikt vorwarding ist, du also noch gar nicht weißt, wie viele Daten kommen werden?

Meine Applikation ist 32 Bittig und ich erlaube 768 MB Hauptspeichernutzung beim Erstellen des Reports. Bis zu 2048 MB sind möglich.

Wenn man eigene Arrays / Listen benutzt spart man viel Speicher gegenüber einer DataTable, da diese die Zeilen mehrfach speichert.

So auf die Schnelle :


using (SqlDataReader x_reader = x_ermittle_verpackungen_kunde.ExecuteReader())
{
     while (x_reader.Read())
     {
            cBestaende.Rows.Add(...);
            if (HauptspeichernutzungInMegabyte() > 768) { Message("Der Bericht ist zu groß um ihn vollständig auszugeben !"); break; }
            progresslabel.Text = "  Bericht wird erstellt ... " + (index++ * 100 / length).ToString() + " %  ";
            progresslabel.BringToFront();
            Application.DoEvents();
     }
}

"Application.DoEvents();" ist böse, besser einen eigenen Task für die Anzeige erstellen.

Grüße Bernd

Thema: SQL-Query-Timeout - aber nicht im Management Studio
Am im Forum: Datentechnologien


using (SqlDataReader x_reader = x_ermittle_verpackungen_kunde.ExecuteReader())
{
     while (x_reader.Read())
     {
            cBestaende.Rows.Add(...);
     }
}

Ob das schneller ist weiß ich nicht. Aber man kann dem Anwender eine Progressbar anzeigen und einen Abbruch Button zur Verfügung stellen.

Bei mir hat alles was länger als 2 Sekunden dauert eine Progressbar.

Außerdem prüfe ich den Hauptspeicherbedarf. Wenn ein Anwender versucht eine Liste mit 100 Millionen Datensätzen anzuzeigen kommt eine entsprechende Fehlermeldung.

Grüße Bernd

Thema: SQL-Query-Timeout - aber nicht im Management Studio
Am im Forum: Datentechnologien

Ja, Neustart ist immer gut !

Der SQL Server bekommt den gesamten SQL Befehl und übersetzt ihn und führt ihn aus. Das ist ja Sinn der Sache.

Wenn Du eienn SQL Befehl mit Parametern übergibst dann setzt der SQL Server die Parameter ein, Du musst Dich nicht um länderspezifische Darstellung oder Sonderzeichen kümmern (SQL Injection).

Die Parameter haben noch den Vorteil dass der SQL Server jedes Kommando nur einmal übersetzen muss wenn sich nur die Parameter ändern.

Ich verzichte bei großen Datenmangen auf Tables und DataSet weil man nie weiß was beim Kunden passiert.

Lieber DataReader und selber durchgehen.

Grüße Bernd

Thema: SQL-Query-Timeout - aber nicht im Management Studio
Am im Forum: Datentechnologien

Und was passiert bei


while (x_reader.Read())
{}

Was soll mit den Daten geschehen ?

DataSet und DataTable ist wie Abt schon gesagt sehr speicher- und zeitintensiv.

Ich benutze bei großen Datenmengen nur DataReader. Beim DataTable weiß man nie ob das beim Kunden funktioniert oder nicht.

Und statt select * die Spalten angeben die man braucht.

Grüße Bernd

Thema: SQL-Query-Timeout - aber nicht im Management Studio
Am im Forum: Datentechnologien


Was passiert wenn Du exakt den gleichen SQL Befehl im Code ausführst wie der aus dem Management Studio ?

Was passiert wenn Du einen DataReader benutzt ?

Ich denke dass man das Management Studio eher mit einem DataReader vergleichen kann weil es während der Ausführung responsiv bleibt und im Hintergrund lädt.

Wenn es eine Tabelle anzeigt ist es oft noch nicht fertig mit laden.

Grüße Bernd

Thema: Manuelle Signierung von App für Android und iOS
Am im Forum: Cross Platform Entwicklung - Mobile und IoT


Danke, werde ich testen !

Hast Du dazu die Signatur aus dem Apple Developer Center benutzt ? Dann braucht man den kostenpflichtigen Developer Account, den habe ich noch nicht.

Mit XCode kann man auch ohne diesen Account signieren, ich weiß aber nicht ob nur für angeschlossene Handys gilt oder für alle Handys.

Für die Entwicklung benutze ich nur Visual Studio, auf Windows und auf dem Mac. Xcode habe ich nur für da Anmelden des iPhones und für das Signieren benutzt.

Die App werde ich später über einen Link auf der Homepage verteilen, so wie hier (2. Link) : https://www.finderwille-frankfurt-main.de/finderwille-einsatz-app-betaversion/

Grüße Bernd

Thema: Manuelle Signierung von App für Android und iOS
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Hallo,

nach einigen steinigen Wegen und 1 h Telefonat mit Apple USA und 1,5 h Telefonat mit Apple München funktioniert nun mein Mac Mini mit XCode und Visual Studio.

Visual und Studio und XCode haben ja Funktionen um Apps zu signieren (archivieren) um sie für Ad Hoc Deployment per Link auf Website bereitzustellen.

Kann man die Signaturen manuell hinzufügen z.B. mit openssl ?

Apple braucht eine p12-Datei.

Wenn man die Signaturen per Skript hinzufügen könnte würde das meinen Ablauf für die Bereitstellung erheblich vereinfachen und sicherer machen.

Außerdem kriege ich es bisher nur ab und zu hin die Signaturen für iOS zu erstellen, das ist recht wackelig in XCode.

Grüße Bernd

Thema: Jahr Angabe - Hilfe für einen Beginner
Am im Forum: Grundlagen von C#

Das erinnert mich an eine Frage an eine Software Firma nach einem Vortrag im Jahr 1990 :

"Wir schreiben Software für Krankenhäuser und da haben wir ab und zu Patienten mit Geburtstag vor dem 1.1.1900. Das kann man nicht eingeben !"

Antwort : "Das Problem löst sich mit der Zeit von alleine !"

Grüße Bernd

Thema: dotnet error mit VS auf MacOS Arm (Apple Silicon)
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)


Jetzt habe ich ein iPhone zum Testen. Das Testen auf einem Gerät ist leider nicht so einfach wie mit einem Android Gerät. Da dauert es nur wenige Minuten bis die App auf dem Handy läuft.

ich scheitere immer daran ein Team oder ein Bereitstelungsprofil anzulegen. Das scheint mit dem kostenlosen Entwickleraccount nicht zu gehen obwohl es gehen sollte.

Weder am mac noch am Windows PC.

Leider gibt es auch keine durchgängige Anleitung dazu.

Grüße Bernd

Thema: dotnet error mit VS auf MacOS Arm (Apple Silicon)
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Ja. Dann mach mal !

Design ist nicht mein Ding.

Die Buttons kriege ich alleine hin, da wird das BorderRound / CornerRound und das BorderWidth von iOS anders umgesetzt als beim Android.

Den inaktiven Button kann man nicht lesen, mal sehen.

Ich bin ja froh dass es überhaupt läuft.

Bis es perfekt ist ist es noch etwas Arbeit.

Den Remote iOS Emulator hab ich eben getestet, er startet aber bleibt schwarz. Das war ja schon beschrieben dass der nicht geht.

Ich habe auch aus Versehen Android Code in das gemeinsame Projekt geschrieben, muss ich auch ändern. Aber so auf Anhieb eine tolle Entwicklungsumgebung für Android und iOS und läuft auch auf dem M1 !

Grüße Bernd

PS.: Zeitformat ist auch falsch bei Einsatzbeginn. Das sind aber alles Luxus-Probleme !







Thema: dotnet error mit VS auf MacOS Arm (Apple Silicon)
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)


Meine App läuft auf Anhieb auf dem iOS Emulator des mac mini mit M1 Prozessor :

Hot XAML Reloading ist abgeschaltet !

Grüße Bernd

Thema: dotnet error mit VS auf MacOS Arm (Apple Silicon)
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Mac mini ist angekommen. Visual Studio und xcode sind installiert.

Das erste Projekt läuft : Xamarin.Forms auf iOS Emulator.

Android Emulator kann ich einrichten, läuft aber nicht.

Der Remote iOS Emulator, um iOS Emulator auf Windows laufen zu lassen, soll nicht gehen, den brauche ich aber auch nicht.

Grüße Bernd

Thema: Formular Generator
Am im Forum: GUI: Windows-Forms

Man kann das Formular direkt in Word erstellen ;-)

Man kann so etwas aber auch einfach in Winforms selber machen :

Eine Anzahl Felder, dazu Feldtitel und Format ("string 10", "double 8.2", "bool"). Schon ist ein einfacher Formulargenerator fertig.

Man kann natürlich auch eine IDE nachbauen : Crafting a C# Forms Editor from scratch

Grüße Bernd

Thema: Android APK funktioniert nur im Emulator
Am im Forum: Cross Platform Entwicklung - Mobile und IoT


Ich habe auch lange gebraucht bis meine App auf dem Handy lief.

Die beiden Tipps oben sind wichtig : Protokoll ansehen mit adb.exe und im Visual Studio Debuggen.

Eventuell die App nochmal vom Smartphone entfernen, mit adb uninstall, siehe im Kapitel "Update der Finderwille Einsatz App"

https://www.finderwille-frankfurt-main.de/finderwille-einsatz-app-betaversion/

Grüße Bernd

Thema: MySQL mehrere Werte auslesen und als String wiedergeben
Am im Forum: Datentechnologien

Hier sind ein paar Beispiele mit MySQL : Zugriff auf SQL Compact und MySQL

Probiere dich mit HeidiSQL anzumelden und die Abfrage auszuführen.

Grüße Bernd

Edit : Text geändert weil ich zuerst dachte Du greifst über die externe IP zu.

Thema: dotnet error mit VS auf MacOS Arm (Apple Silicon)
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)


M1 ist bestellt, ich werde berichten !

Grüße Bernd

Thema: Vorstellung Projekt 'Finderwille Einsatz App'
Am im Forum: Smalltalk

Da Date- und Timepicker in Xamarin.Forms m.M.n. hässlich und nicht intuitiv bedienbar sind und dazu noch im Darkmode nicht funktionieren habe ich jetzt eigene Time- und Datepicker geschrieben. Ganz ohne Design, aber sie funktionieren !

Grüße Bernd

Thema: Vorstellung Projekt 'Finderwille Einsatz App'
Am im Forum: Smalltalk


Trotz einiger Hürden bin ich weitergekommen :

Zuerst ließ sich die App nicht auf dem Handy installieren, die Fehlermeldung lautete "App nicht installiert".

Erst nach einigen Recherchen konnte ich das genaue Protokoll mit dem Programm adb anschauen und den Fehler eingrenzen.
Mit adb konnte ich die vorherige Version komplett de-installieren und die neue Version installieren.

Das Layout hatte ich komplett auf Grid umgestellt und so passt es sich an die verschiedenen Auflösungen an. Nur die Schriftgröße nicht. Die muss man manuell anpassen.
Dazu gibt es jetzt ein Menü mit dem man die Schrift größer und kleiner machen kann.
Im Listview kann ich die Schriftgröße leider nicht ändern, das habe ich dann anders gelöst.

Die erste Rückmeldung der Beta Version : "Man kann nichts sehen !"
"Dark Mode" was ist das ?
Für den Dark Mode muss man so einige Controls anpassen, dann klappt das auch. Nur der DatePicker läuft nicht, der zeigt seine Werte weiß auf weiß an. Lässt sicher leider nicht ändern. Das ist ein known issue und wird hoffentlich bald behoben.

Inzwischen läuft die App sehr gut auf vielen verschiedenen Android Devices.

Link : https://www.finderwille-frankfurt-main.de/finderwille-einsatz-app-betaversion/

Als nächstes kommt die iOS Version dran. Ich habe nun ein MacBook Pro leiheise hier. Leider muss sehr viel installiert werden, so werde ich mir doch einen eigenen Mac zulegen.

Grüße Bernd

Thema: dotnet error mit VS auf MacOS Arm (Apple Silicon)
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Ich bin auch dabei mir einen Apple zu kaufen für iOS und MacOS Apps.

Einige bekommen ihre Xamarin Projekte auf dem M1 zum laufen. Warum es manchmal nicht geht weiß nicht.

Der Fehler beim Debugging ist anscheinend im Big Sur 11.2 behoben :

Debugging on Apples M1 platform fails.

Letzter Beitrag !

Und : Xamarin Mac development on Big Sur / M1 processors?

Auch letzter Beitrag.

Die bisherige Installation auf M1 läuft natürlich auf Rosetta (x86 Emulator) : Visual Studio for Mac plans for Apple M1 / ARM-based processors/1288531

Der Remote iOS Emulator um iOS Apps auf Windows zu starten scheint nicht zu funktionieren : Remoted iOS Simulator shows up as black screen

Ich werde mir wahrscheinlich einen Mac mit einem i5 zulegen. Oder doch M1 ? No Risk no fun !

Grüße Bernd

Thema: Aufbaue einer Datenbankabfrage mit variablen Filtern
Am im Forum: Datentechnologien


Der Query Builder ist ja fast genauso wie mein ORM.

Ich habe es nach einem Vortrag der .NET User Group in Bad Homburg über Statemachines und Fluent APIs im Jahr 2015 geschrieben.

Ich kann diese Vorgehensweise sehr empfehlen weil die Programmierung wirklich sehr einfach und typsicher ist.

Eine Grammatik kann ich bei mir nicht einbauen da ich sonst keine fallweise Verknüpfungen machen kann wie


if (...) qry = qry.sn_nr().IsLike(SuchfeldString(such_sn_nr)).And();

Bzw. ich hab's nicht hinbekommen.

Zusätzlich erstelle ich für die Datenbankstruktur Klassen, so dass die Query typsicher ist und Intellisense funktioniert. Das macht der Query Builder nicht glaube ich.

Grüße Bernd