XamarinXamarin

480 members | 104 posts | Public Group

Inoffizielle Xamarin Gruppe - Diskussion und Austausch zu Xamarin Technologien (www.xamarin.com)

This post is only visible to logged-in members. Log in now

Die Bandbreite aktueller Plattformen (Windows, iOS und Android) kombiniert mit unterschiedlichen Devices und Formfaktoren erhöht massiv die Komplexität bei der Entwicklung von mobilen Business-Applikationen.

Als Senior eXpert entwickle ich für Enterprise-Kunden skalierbare Frontend- und Backend-Architekturen mit Fokus auf mobilen Business-Apps auf Basis von Xamarin. Diese Erfahrungen, insbesondere mit der Komplexität bei der Entwicklung von Cross-Plattform-Apps mit Xamarin.Forms, lasse ich in meinem Artikel

“Der richtige Umgang mit Xamarin.Forms”,

der in der heutigen Ausgabe der dotnetpro erscheint, einfließen. Auf knapp acht Seiten berichte ich über die Entwicklung von Xamarin.Forms Apps mit plattformspezifischer User Experience und maximaler Code-Wiederverwendung.

https://www.dotnetpro.de

Viel Spaß beim Lesen! Ich freue mich auf euer Feedback. 😊

Hallo, wir laden euch herzlich zu unserem Tech-Talk "Coole Business Apps mit Xamarin.Forms" am Dienstag, 04.06. ab 17:00 Uhr im 20. OG des Westhafen Towers in Frankfurt ein:

- Kurze Einführung in Xamarin und Xamarin.Forms

- Coole Apps: User Experience, Performance und Code Reuse

- Live Demo, Codebeispiele

- Mobile DevOps mit Visual Studio App Center und Azure DevOps

- Optionen, Erfahrungen und Empfehlungen

Weitere Infos und Anmeldung unter: https://www.xing.com/events/coole-business-apps-xamarin-forms-2106718

Nachdem ich in einer Xamarin-Forms App mit Anbindung an AADB2C zur Authentifizierung von Benutzern eine Änderung gemacht hatte, die innerhalb kurzer Zeit dafür gesorgt hat, dass praktisch nichts mehr ging - es schien, als seien Versionskonflikte insbesondere im Zusammenhang mit der JWT Bibliothek die Ursache - wurde mir die Frage gestellt, ob ich nicht einfach (vor irgendwelchen Änderungen) Backups machen könne. Und natürlich ist das korrekt: Regelmäßige Commits helfen. In etwa so, wie regelmäßiger Sport, gesunde Ernährung und das Husten in Armbeugen dabei helfen, nicht jedes Mal krank zu werden, nur weil wieder mal ein paar Viren ihr Unwesen treiben.

Nur leider ist es so, dass es so etwas wie eine Inkubationszeit gibt und man oft nicht den Moment kennt, in dem die Ansteckung erfolgt ist. Und sich nach jeder Berührung mit einem Gegenstand oder einem anderen Menschen die Hände zu desinfizieren (=nach jeder noch so kleinen Code-Änderung ein volles Build, Test, Commit durchzuführen) ist nicht sehr convenient, richtig?

Denn genauso wie die Lebensfreude verloren geht (oder - wie wir spätestens durch Monk gelernt haben - durch etwas Seltsameres ersetzt wird), wenn wir damit beginnen alle Sicherheitsmaßnahmen, die möglich sind, zu ergreifen, geht der FLOW verloren, wenn ich das gleiche als Entwickler tue.

In meinem Fall sah das so aus:

Das Backend zu meiner App lokal - statt in Azure - laufen zu lassen (zum einfacheren Debugging), resultierte in Authentifizierungsproblemen. Daraufhin habe ich im Startup-Code folgende vier Zeilen eingefügt (Ansteckung), um zu prüfen, ob der Token vom Mobile Client überhaupt korrekt übermittelt wird:

app.Use((context, next) =>

{

return next.Invoke();

}).UseStageMarker(PipelineStage.Authenticate);

Es sah alles korrekt aus. Und daraufhin habe ich einen gefühlten Tag lang (Inkubationszeit) das Problem anders einzugrenzen versucht. Bis ich aufgegeben habe und mein Backend zunächst eben remote debuggen wollte. Nur... auf einmal funktionierte die Authentifizierung auch nicht mehr, wenn das Backend in Azure lief (Symptom).

Es hat weitere zwei Stunden gedauert, bis ich herausgefunden habe, dass die vier Zeilen von oben das Problem waren. :)

Mein Fazit:

Ja, genauso wie ich mich viel bewege, mich gesund ernähre und immer brav die Hände wasche, committe ich regelmäßig meinen Code. Und manchmal stecke ich mich dennoch an und nach einer angemessenen Inkubationszeit nerven mich irgendwelche Symptome. Mein Vorteil als Entwickler: Die Maßnahmen, um das Problem zu beseitigen habe ich selbst in der Hand und muss mich nicht auf irgendein Medikament verlassen. Das ist praktisch so, wie wenn ich mich auf mein Immunsystem verlasse. Irgendwann läuft halt alles wieder. ;-)

Hallo zusammen!

Mein Name ist Christian, ich habe vor einem halben Jahr mit einem guten Freund zusammen ein Unternehmen gegründet, um die Welt zu verändern und entwickle gerade an einer Xamarin-Forms Crossplattform App, die u.a. Azure Active Directory B2C integriert und dabei auf Azure App Service aufsetzt.

Euch allen ein schönes Wochenende!

als neues Gruppenmitglied, möchte ich diesen kleinen Artikel zur Windows Forms-Plattform von Xamarin beitragen.

Bei der Portierung unserer Programme auf diese Platform musste ich leider akzeptieren, dass die Grafikausgabe mit SkiaSharp direkt zum Display nur in der Methode für die PaintSurface-Botschaft erfolgen darf.

Für mich ergibt sich dadurch eine erhebliche Einschränkung in der Portierung.

Bestätigt wird diese Umstand nur in diesem Artikel unter https://basdecort.com/2017/12/22/skiasharp/.

Wie ich jetzt festgestellt habe, ist Xamarin.Forms insgesamt noch nicht multithreadfähig. Die Methoden der System.Threading-Klassen sind noch nicht implementiert. Man kann diese Methoden zwar verwenden, sie sind vom Programmablauf aber offensichtlich wirkungslos. Auf dieser Basis werden wir Xamarin.Forms erstmal auf Eis legen und abwarten, bis Multithreading möglich ist.
Hallo Herr Jakob, ich erstelle seit ca. 5 Jahren erfolgreich App Projekte mit Xamarin Forms. Klar, am Anfang hatte Forms noch einige Kinderkrankheiten, aber ich kann jetzt erfolgreich eigentlich alle Kundenprojekte einsetzen. Ich bin kein ausgesprochener Threading Spezialist. Ich kann Ihnen nur sagen, dass ich recht häufig Thread.Run()....nutze, zum Beispiel um Daten per REST aus dem Backend abzurufen und trotzdem einen Waiting oder Progress-Dialog auf der GUI anzuzeigen. Was man halt beachten muss, wenn man aus einem Hintergrund-Thread ein Ergebnis anzeigen möchte ist ein Thread-Wechsel via Invoke in den GUI Thread. Das ist nich ungewöhnlich, fast alle UI FrameWorks (WinForms, WPF etc.) sind nur im MainThread verwendbar, die Logik dahinter aber sehr wohl. Man muss dann einfach Device.RunOnUIThread() aufrufen und einen solchen Context-Switch vornehmen, dann klappt es eigentlich sehr gut mir MultiThreading auch in Xamarin.Forms.
Moderators
Please log in to see who moderates this group.
Inoffizielle Xamarin Gruppe

Es handelt sich bei dieser Gruppe um eine inoffizielle Xamarin Gruppe.
Die Firma Xamarin und Ihre Produkte finden Sie unter www.Xamarin.com .

Austausch zu Technologien von Xamarin

Diese Gruppe soll Entwicklern und Technologieinteressierten die Möglichkeit geben sich zu Xamarin Technologien und verwandten Themen auszutauschen.

Stellenausschreibungen und Veranstaltungen

Bitte posten Sie Stellenausschreibungen und Infos zu kommerziellen Veranstaltungen nur im Marktplatz. Die Gruppenbeiträge sollen nur für fachliche Diskussionen und Beiträge verwendet werden. Vielen Dank!