Mit Xamarin.Forms 4 und Visual Studio 2019 können Sie im Handumdrehen eine eigene App schreiben. In diesem Vortrag und dem zugehörigen Beispielprojekt zeigt Ihnen Microsoft MVP André Krämer, wie es geht. Ausgehend von einer leeren Projektmappe werden Sie live sehen, mit wie wenig Aufwand eine App mit mehreren Bildschirmen entwickelt werden kann. Ein besonderes Augenmerk wird bei der Entwicklung auf dem Einsatz aktueller Xamarin Neuerungen wie z. B. der Shell liegen.
Entwicklung von ASP.NET-Core- und SQL-Server-Anwendungen unter macOS in der P...André Krämer
Mit ASP.NET Core ist die plattformübergreifende Entwicklung von ASP.NET-Webanwendungen unter Windows, Mac und Linux möglich. Viele Entwickler machen von dieser Option keinen Gebrauch, sondern entwickeln rein unter Windows. Sogar Nutzer von Apple-Geräten starten häufig eine virtuelle Maschine auf Ihrem Mac, sobald sie für ASP.NET entwickeln möchten.
André Krämer machte es lange genauso. Da er den Performanceverlust durch die VM jedoch nicht mehr hinnehmen wollte, beschäftigte er sich damit, wie er seinen Mac konfigurieren muss, um gemeinsam mit seinen Kollegen, die rein unter Windows entwickeln, produktiv an einer ASP.NET-Core- und SQL-Server-Anwendung arbeiten zu können.
In diesem Vortrag berichtet er, wie er sein System konfiguriert hat, welche Hürden es gab und welche Lösungen er gefunden hat, um vollkommen ohne Windows bei gleicher Produktivität in einem gemischten Team mit Windows- und Visual-Studio-Entwicklern arbeiten zu können.
Codewiederverwendung in Xamarin-Apps maximierenAndré Krämer
Microsofts Xamarin Platform ermöglicht die Entwicklung von Apps für Android, iOS und Windows mit nur einem Werkzeug (Visual Studio) und einer Programmiersprache (C#). Da sich die Plattformen im Detail jedoch gehörig unterscheiden, bedeutet dies nicht, dass Sie Ihre Codebasis ohne Änderungen auf allen Plattformen nutzen können. Wie Sie trotz der Unterschiede möglichst viel Code plattformübergreifend wiederverwenden können, wird Ihnen André Krämer in diesem Vortrag zeigen. Dazu wird er die verschiedenen Optionen "Shared Projects", "Portable Class Libraries" und ".NET Standard Libraries" näher erläutern. Darüber hinaus wird er über Dependency Injection sprechen und den Xamarin Dependency Service mit leistungsstarken Inversion-of-Control- Containern wie Autofac vergleichen. Abgerundet wird der Vortrag mit einem Überblick über Xamarin.Essentials, einer Bibliothek, die plattformübergreifende Implementierungen gerätespezifischer Funktionen bietet.
Dank der Xamarin-Plattform können C#-Entwickler Apps für Android – das verbreitetste mobile Betriebssystem – unter Zuhilfenahme bekannter Werkzeuge, Sprachen und Frameworks schreiben. Und genau darum geht es auch in diesem Vortrag. In 60 Minuten werde ich Ihnen erklären, welche Systemvoraussetzungen erfüllt sein müssen, um mit Visual Studio und C# für Android entwickeln zu können und was es mit Activities und Intents auf sich hat. Zu diesem Zweck werde ich live eine kleine App programmieren, die neben einer Multiscreen-Navigation auch lokale Datenhaltung und einiges mehr demonstriert. Den Quellcode gibt es unter https://github.com/AndreKraemer/DWX-2018-Xam-Android-SavedIt
Xamarin ohne Mac und Android SDK?- So weit kommen Sie mit dem Xamarin Live P...André Krämer
Wer in die App-Entwicklung mit Xamarin einsteigen möchte braucht Geld, Geduld und starke Nerven. Geld, weil für die iOS-Entwicklung ein Mac notwendig ist. Geduld, weil das mehrere Gigabyte umfassende Android SDK inklusive Emulatoren heruntergeladen und installiert werden muss, ehe man auch nur eine Zeile Code für Android übersetzen kann. Starke Nerven, weil es alles andere als intuitiv ist, Mac, XCode, Android und Windows synchron up to date zu halten. Dank des Xamarin Live Players soll damit endlich Schluss sein. Bereits mit einer minimalen Visual-Studio-Installation können Sie – ganz ohne Mac – Xamarin-Apps entwickeln. Wie weit Sie mit dem Player kommen und ab wann Sie doch einen Mac und ein Android SDK benötigen, erfahren Sie in dieser Session.
Mit Xamarin.Forms 4 und Visual Studio 2019 können Sie im Handumdrehen eine eigene App schreiben. In diesem Vortrag und dem zugehörigen Beispielprojekt zeigt Ihnen Microsoft MVP André Krämer, wie es geht. Ausgehend von einer leeren Projektmappe werden Sie live sehen, mit wie wenig Aufwand eine App mit mehreren Bildschirmen entwickelt werden kann. Ein besonderes Augenmerk wird bei der Entwicklung auf dem Einsatz aktueller Xamarin Neuerungen wie z. B. der Shell liegen.
Entwicklung von ASP.NET-Core- und SQL-Server-Anwendungen unter macOS in der P...André Krämer
Mit ASP.NET Core ist die plattformübergreifende Entwicklung von ASP.NET-Webanwendungen unter Windows, Mac und Linux möglich. Viele Entwickler machen von dieser Option keinen Gebrauch, sondern entwickeln rein unter Windows. Sogar Nutzer von Apple-Geräten starten häufig eine virtuelle Maschine auf Ihrem Mac, sobald sie für ASP.NET entwickeln möchten.
André Krämer machte es lange genauso. Da er den Performanceverlust durch die VM jedoch nicht mehr hinnehmen wollte, beschäftigte er sich damit, wie er seinen Mac konfigurieren muss, um gemeinsam mit seinen Kollegen, die rein unter Windows entwickeln, produktiv an einer ASP.NET-Core- und SQL-Server-Anwendung arbeiten zu können.
In diesem Vortrag berichtet er, wie er sein System konfiguriert hat, welche Hürden es gab und welche Lösungen er gefunden hat, um vollkommen ohne Windows bei gleicher Produktivität in einem gemischten Team mit Windows- und Visual-Studio-Entwicklern arbeiten zu können.
Codewiederverwendung in Xamarin-Apps maximierenAndré Krämer
Microsofts Xamarin Platform ermöglicht die Entwicklung von Apps für Android, iOS und Windows mit nur einem Werkzeug (Visual Studio) und einer Programmiersprache (C#). Da sich die Plattformen im Detail jedoch gehörig unterscheiden, bedeutet dies nicht, dass Sie Ihre Codebasis ohne Änderungen auf allen Plattformen nutzen können. Wie Sie trotz der Unterschiede möglichst viel Code plattformübergreifend wiederverwenden können, wird Ihnen André Krämer in diesem Vortrag zeigen. Dazu wird er die verschiedenen Optionen "Shared Projects", "Portable Class Libraries" und ".NET Standard Libraries" näher erläutern. Darüber hinaus wird er über Dependency Injection sprechen und den Xamarin Dependency Service mit leistungsstarken Inversion-of-Control- Containern wie Autofac vergleichen. Abgerundet wird der Vortrag mit einem Überblick über Xamarin.Essentials, einer Bibliothek, die plattformübergreifende Implementierungen gerätespezifischer Funktionen bietet.
Dank der Xamarin-Plattform können C#-Entwickler Apps für Android – das verbreitetste mobile Betriebssystem – unter Zuhilfenahme bekannter Werkzeuge, Sprachen und Frameworks schreiben. Und genau darum geht es auch in diesem Vortrag. In 60 Minuten werde ich Ihnen erklären, welche Systemvoraussetzungen erfüllt sein müssen, um mit Visual Studio und C# für Android entwickeln zu können und was es mit Activities und Intents auf sich hat. Zu diesem Zweck werde ich live eine kleine App programmieren, die neben einer Multiscreen-Navigation auch lokale Datenhaltung und einiges mehr demonstriert. Den Quellcode gibt es unter https://github.com/AndreKraemer/DWX-2018-Xam-Android-SavedIt
Xamarin ohne Mac und Android SDK?- So weit kommen Sie mit dem Xamarin Live P...André Krämer
Wer in die App-Entwicklung mit Xamarin einsteigen möchte braucht Geld, Geduld und starke Nerven. Geld, weil für die iOS-Entwicklung ein Mac notwendig ist. Geduld, weil das mehrere Gigabyte umfassende Android SDK inklusive Emulatoren heruntergeladen und installiert werden muss, ehe man auch nur eine Zeile Code für Android übersetzen kann. Starke Nerven, weil es alles andere als intuitiv ist, Mac, XCode, Android und Windows synchron up to date zu halten. Dank des Xamarin Live Players soll damit endlich Schluss sein. Bereits mit einer minimalen Visual-Studio-Installation können Sie – ganz ohne Mac – Xamarin-Apps entwickeln. Wie weit Sie mit dem Player kommen und ab wann Sie doch einen Mac und ein Android SDK benötigen, erfahren Sie in dieser Session.
In den meisten Apps besteht die Notwendigkeit, Daten lokal zu speichern. Dies fängt bei kleinen Datenmengen, wie zum Beispiel Authentication Tokens, an und endet bei größeren Datenmengen, wie beispielsweise offline erfassten Daten, oder gecachten Antworten eines Web-API-Aufrufs. In diesem Vortrag lernen Sie welche Optionen Sie zur lokalen Datenhaltung haben. Sie werden dabei nicht nur erfahren, wo Sie Ihre Daten auf dem Gerät speichern können, sondern anhand praxisnaher Beispiele auch lernen, wann sich ein textbasiertes Format wie JSON oder XML anbietet und wann Sie besser zu einer lokalen Datenbank wie SQLite greifen. Abgerundet wird der Vortrag mit einer Diskussion über den aktuellen Stand der Implementierung des Entity Framework Core auf der Xamarin
Beispiele unter https://github.com/AndreKraemer/XamarinLocalDataAccessDemo
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)André Krämer
Morgens halb zehn in Deutschland: Der Puls Ihrer Anwender ist mittlerweile im dreistelligen Bereich und die ersten User denken ernsthaft darüber nach, den PC aus dem Fenster zu werfen. Ursache: Die von Ihnen entwickelte webbasierte App bremst die Nutzer stets an den entscheidenden Stellen aus. An produktives Arbeiten ist kaum noch zu denken und Überstunden stehen auf dem Tagesprogramm. Doch so weit muss es gar nicht kommen. Glückliche Anwender sind nur wenige Handgriffe entfernt. Und genau diese Handgriffe, wird Ihnen André Krämer in diesem Vortrag zeigen. Gemeinsam werden wir den Ursachen langsamer Web- und Mobile-Apps in den Bereichen JavaScript, CSS und Co. auf den Grund gehen und diese Schritt für Schritt eliminieren.
Viele Entwickler nutzen das Entity Framework als Blackbox. In diesem Vortrag wollen wir das Entity Framework entzaubern und einen Blick in die Blackbox werfen. Dabei werden wir darüber sprechen, was bei der Initialisierung des Entity Frameworks geschieht, wie der Status von Entitäten verwaltet wird und auch diskutieren, ob Sie auf dem Kontext tatsächlich Dispose() aufrufen müssen. Wenn Sie also wissen möchten, was das Entity Framework wirklich mit Ihrer Datenbank macht, dann sollten Sie diese Präsentation ansehe.
Datenzugriff mit dem Entity Framework muss nicht langsam sein. In diesem Vortrag lernen Sie typische Stolperfallen kennen und wie Sie diese umschiffen können
.NET Datenzugriff einfach und performant mit Micro O/R Mappern André Krämer
O/R Mapper, wie Microsofts Entity Framework oder NHibernate, haben enorm dazu beigetragen, den Datenzugriff in .NET-Applikationen für Entwickler zu vereinfachen. Ein wenig Linq genügt und schon "fliegen" die Daten aus der Datenbank in die Objekte im Quellcode. Doch was im Quellcode noch gut aussieht, lässt den Datenbankadministrator schaudern, sobald er einen Blick auf das automatisch generierte SQL-Statement wirft. All zu leicht schleichen sich nämlich Fehler ein, die zu unperformanten SQL-Statements führen. Und das alles nur, um Daten in Objekte zu packen. In dieser Session erfahren Sie, dass es auch anders geht. Mit dem Einsatz so genannter Micro ORMs, wie NPoco, haben Sie die Möglichkeit, hoch optimierte SQL-Statements gegen Ihre Datenbank abzufeuern und das Ergebnis automatisch in POCO-Klassen zu packen. Natürlich verlieren Sie dabei auch einige Features der "großen" ORMs. Welche das sind und ob Sie diese wirklich brauchen, zeige ich Ihnen in diesem Vortrag.
Das Repository-Pattern und der O/R-Mapper: Geniale Kombination oder vergebene...André Krämer
Wenn Sie sich Beispielcode im MSDN ansehen, dann wird Eines ganz schnell klar: Wer einen O/R-Mapper wie das Entity Framework oder NHibernate einsetzt, der sollte ihn mit dem Repository Pattern paaren. Idealerweise sogar mit generischen Repositories. Schließlich können Sie nur so den O/R-Mapper Ihrer Wahl vor den darüber liegenden Schichten verbergen. Aber ist dieses Versteckspiel vorteilhaft? Wie sinnvoll ist es wirklich, höhere Schichten bewusst dumm zu halten? Und gewinnen Sie auch Flexibilität durch diese Herangehensweise? Genau um diese Fragen geht es in diesem Vortrag. Anhand einiger Praxisbeispiele werden wir uns im Vergleich zu den typischen MSDN-Anwendungen ansehen, ob das Repository Pattern tatsächlich seine Berechtigung hat.
Zentrale Dokumentengenerierung mit dem Open XML SDKAndré Krämer
Ob Rechnung, Teilnahmebescheinigung, Urlaubsantrag, Tätigkeitsnachweis oder Artikelstückliste: Heutzutage gibt es unzählige standardisierte Dokumente, die Tag für Tag in Unternehmen erstellt werden. Dass die manuelle Erzeugung keine Alternative ist, dürfte jedem klar sein. Schließlich bindet sie unnötige Ressourcen und ist fehleranfällig. Doch wie sieht die Alternative aus? VSTO oder sogar Word Automatisierung, so wie man es in den 90ern gemacht hat? In diesem Vortrag werden Sie eine weitere Alternative für die serverseitige Dokumentengenerierung kennen lernen: Das Microsoft Office Open XML SDK. Nach einem kurzen Überblick über den Aufbau und den Funktionsumfang des SDKs werden Sie Anhand von praxisnahen Live Demos erfahren, wie Sie kostenlos Word Kompatible (*.docx) Dokumente erzeugen können. Dabei werden Sie jedoch nicht nur erfahren, was alles geht, sondern auch wo die Grenzen sind.
In den meisten Apps besteht die Notwendigkeit, Daten lokal zu speichern. Dies fängt bei kleinen Datenmengen, wie zum Beispiel Authentication Tokens, an und endet bei größeren Datenmengen, wie beispielsweise offline erfassten Daten, oder gecachten Antworten eines Web-API-Aufrufs. In diesem Vortrag lernen Sie welche Optionen Sie zur lokalen Datenhaltung haben. Sie werden dabei nicht nur erfahren, wo Sie Ihre Daten auf dem Gerät speichern können, sondern anhand praxisnaher Beispiele auch lernen, wann sich ein textbasiertes Format wie JSON oder XML anbietet und wann Sie besser zu einer lokalen Datenbank wie SQLite greifen. Abgerundet wird der Vortrag mit einer Diskussion über den aktuellen Stand der Implementierung des Entity Framework Core auf der Xamarin
Beispiele unter https://github.com/AndreKraemer/XamarinLocalDataAccessDemo
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)André Krämer
Morgens halb zehn in Deutschland: Der Puls Ihrer Anwender ist mittlerweile im dreistelligen Bereich und die ersten User denken ernsthaft darüber nach, den PC aus dem Fenster zu werfen. Ursache: Die von Ihnen entwickelte webbasierte App bremst die Nutzer stets an den entscheidenden Stellen aus. An produktives Arbeiten ist kaum noch zu denken und Überstunden stehen auf dem Tagesprogramm. Doch so weit muss es gar nicht kommen. Glückliche Anwender sind nur wenige Handgriffe entfernt. Und genau diese Handgriffe, wird Ihnen André Krämer in diesem Vortrag zeigen. Gemeinsam werden wir den Ursachen langsamer Web- und Mobile-Apps in den Bereichen JavaScript, CSS und Co. auf den Grund gehen und diese Schritt für Schritt eliminieren.
Viele Entwickler nutzen das Entity Framework als Blackbox. In diesem Vortrag wollen wir das Entity Framework entzaubern und einen Blick in die Blackbox werfen. Dabei werden wir darüber sprechen, was bei der Initialisierung des Entity Frameworks geschieht, wie der Status von Entitäten verwaltet wird und auch diskutieren, ob Sie auf dem Kontext tatsächlich Dispose() aufrufen müssen. Wenn Sie also wissen möchten, was das Entity Framework wirklich mit Ihrer Datenbank macht, dann sollten Sie diese Präsentation ansehe.
Datenzugriff mit dem Entity Framework muss nicht langsam sein. In diesem Vortrag lernen Sie typische Stolperfallen kennen und wie Sie diese umschiffen können
.NET Datenzugriff einfach und performant mit Micro O/R Mappern André Krämer
O/R Mapper, wie Microsofts Entity Framework oder NHibernate, haben enorm dazu beigetragen, den Datenzugriff in .NET-Applikationen für Entwickler zu vereinfachen. Ein wenig Linq genügt und schon "fliegen" die Daten aus der Datenbank in die Objekte im Quellcode. Doch was im Quellcode noch gut aussieht, lässt den Datenbankadministrator schaudern, sobald er einen Blick auf das automatisch generierte SQL-Statement wirft. All zu leicht schleichen sich nämlich Fehler ein, die zu unperformanten SQL-Statements führen. Und das alles nur, um Daten in Objekte zu packen. In dieser Session erfahren Sie, dass es auch anders geht. Mit dem Einsatz so genannter Micro ORMs, wie NPoco, haben Sie die Möglichkeit, hoch optimierte SQL-Statements gegen Ihre Datenbank abzufeuern und das Ergebnis automatisch in POCO-Klassen zu packen. Natürlich verlieren Sie dabei auch einige Features der "großen" ORMs. Welche das sind und ob Sie diese wirklich brauchen, zeige ich Ihnen in diesem Vortrag.
Das Repository-Pattern und der O/R-Mapper: Geniale Kombination oder vergebene...André Krämer
Wenn Sie sich Beispielcode im MSDN ansehen, dann wird Eines ganz schnell klar: Wer einen O/R-Mapper wie das Entity Framework oder NHibernate einsetzt, der sollte ihn mit dem Repository Pattern paaren. Idealerweise sogar mit generischen Repositories. Schließlich können Sie nur so den O/R-Mapper Ihrer Wahl vor den darüber liegenden Schichten verbergen. Aber ist dieses Versteckspiel vorteilhaft? Wie sinnvoll ist es wirklich, höhere Schichten bewusst dumm zu halten? Und gewinnen Sie auch Flexibilität durch diese Herangehensweise? Genau um diese Fragen geht es in diesem Vortrag. Anhand einiger Praxisbeispiele werden wir uns im Vergleich zu den typischen MSDN-Anwendungen ansehen, ob das Repository Pattern tatsächlich seine Berechtigung hat.
Zentrale Dokumentengenerierung mit dem Open XML SDKAndré Krämer
Ob Rechnung, Teilnahmebescheinigung, Urlaubsantrag, Tätigkeitsnachweis oder Artikelstückliste: Heutzutage gibt es unzählige standardisierte Dokumente, die Tag für Tag in Unternehmen erstellt werden. Dass die manuelle Erzeugung keine Alternative ist, dürfte jedem klar sein. Schließlich bindet sie unnötige Ressourcen und ist fehleranfällig. Doch wie sieht die Alternative aus? VSTO oder sogar Word Automatisierung, so wie man es in den 90ern gemacht hat? In diesem Vortrag werden Sie eine weitere Alternative für die serverseitige Dokumentengenerierung kennen lernen: Das Microsoft Office Open XML SDK. Nach einem kurzen Überblick über den Aufbau und den Funktionsumfang des SDKs werden Sie Anhand von praxisnahen Live Demos erfahren, wie Sie kostenlos Word Kompatible (*.docx) Dokumente erzeugen können. Dabei werden Sie jedoch nicht nur erfahren, was alles geht, sondern auch wo die Grenzen sind.
13. Unsichere direkte Objektreferenzen /
Broken Access Control
• Beim Risiko Broken Access Control bzw. unsichere direkte
Objektreferenzen erhält der Angreifer Zugriff auf Daten die nicht für
ihn gedacht waren.
• Beispiel: Zugriff persönlicher Daten eines anderen Nutzers
• Ursachen
• Es findet keine Zugriffskontrolle auf Entitätsebene statt
• Primärschlüssel aus der Datenbank werden in der Url genutzt
30. Meine Dienstleistungen
• Schulungen
• ASP.NET / JavaScript / Angular
• Xamarin
• Unit Testing und Refactoring
• TX Text Control
• Team Foundation Server
• .NET Datenzugriff (Entity Framework, NHibernate, Micro O/R Mapper)
• Consulting
• Durchführung von Technologieworkshops
• Code- / Architekturreviews
• Analyse von managed Memory Leaks und Performanceproblemen
• Prototypenentwicklung
• Remote Entwickler-Support
• Projektbegleitendes Coaching
• Beratung bei der Migration von Legacy Technologien (Classic ASP, Visual Basic 6, Gupta Centura, ...) zu .NET
• Softwareentwicklung
• Mobile Apps (Android, iOS, Windows 10)
• Entwicklung von Web-Anwendungen mit ASP.NET und Angular
• Entwicklung von Desktop Anwendungen
• Migration von ASP Classic zu modernen Weblösungen
andre@andrekraemer.de | https://andrekraemer.de | http://andrekraemer.de/blog | http://github.com/AndreKraemer