C#, WCF und Microsoft - Zukunftsaussichten/Alternativen?



  • asc schrieb:

    Prof84 schrieb:

    asc schrieb:

    Gibt es irgendeine Alternative zu WCF die mit einer PCL (Portable Class Library) über WPF, WinRT, WP, Xamarin (iOS, MacOS, Android...) hinweg
    a) Sinnvoll läuft
    b) Zumindest automatische Wrapper generiert, das man händisch nicht jede einzelne Eigenschaft einzeln abrufen muss

    Das hat auch mit WCF nicht funktioniert, wenn das die Frage war.

    Sag bitte, in wie fern das nicht hätte funktionieren sollen. Durch die PCLs und den Profilen _vor_ den neuen WP-Profil und vor ASP.Net konnte man mit einer Codebasis für den Servicelayer (Client und Server) alle .Net Technologien von MS und Xamarin erreichen - und das dank "Add Service Reference" auch mit Wrappergenerierung.

    Es ist ein Trugschluss, dass Du auf jeder Ebene über Libs und Frameworks eine Abstraktion so vornehmen kannst, dass dort jede Plattform läuft!
    ➡ s. Gödel'sche Unvollständigkeitssätze.

    Xamarin ist deshalb nie konfliktfrei gelaufen. Weil die Weiterentwicklung iOS, MacOS, Android... prioritär außerhalb zur MS Umgebung lief. Deshalb konnte WCF nicht so abstrahiert werden, das sie Low-Level-Entwicklungen für Plattform ablösen konnten.

    Und deshalb werden noch ganze Völkerstämme von IT-Managern Scheiße schreien, dass sie sich jemals auf Cloud Computering eingelassen haben. 😃 😃 😉



  • Prof84 schrieb:

    Es ist ein Trugschluss, dass Du auf jeder Ebene über Libs und Frameworks eine Abstraktion so vornehmen kannst, dass dort jede Plattform läuft!

    Dann frage ich mich warum das schon bei mehreren Frameworks und Sprachen dies erfolgreich praktiziert wurde (u.a. bei Java). Es mag immer mal kleine Probleme geben (ins besondere wenn spezielle Funktionalitäten benötigt werden), möglich ist das Zusammenspiel aber dennoch.

    Und wenn der Trend weiterhin bei Xamarin so ist, wie bislang rückt sogar die Möglichkeit in den Fokus zumindest bei den Mobilen Plattform 100% des Codes zu teilen (Mit Xamarin 3 gibt es einen gemeinsamen UI-Wrapper für iOS, Android und Windows Phone).



  • asc schrieb:

    (Mit Xamarin 3 gibt es einen gemeinsamen UI-Wrapper für iOS, Android und Windows Phone).

    🙂 👍
    Jetzt brauchen sie nur noch eine günstige (EDIT: nicht zu schlimm kastrierte /EDIT) Indie-Einsteiger-Lizenz.



  • Ich arbeite seit 2 Wochen jetzt auch mit Xamarin.Forms und bin recht zufrieden mit deren Benutzung (und deren Update ist auch super: wenn ich nicht weiterkam mit einem Control und dessen Custom Rendering, gab es ein passendes Update dazu ;-). Es fehlen zwar noch ein paar Controls (z.B. ImageButton oder NumberTextBox o.ä), aber ich bin zuversichtlich, daß das nach und nach reinkommt.



  • hustbaer schrieb:

    asc schrieb:

    (Mit Xamarin 3 gibt es einen gemeinsamen UI-Wrapper für iOS, Android und Windows Phone).

    🙂 👍
    Jetzt brauchen sie nur noch eine günstige (EDIT: nicht zu schlimm kastrierte /EDIT) Indie-Einsteiger-Lizenz.

    Naja, es gibt eine Indie-Lizenz für $299 pro Jahr. Allerdings auch pro Plattform. $299 wäre ja noch akzeptabel, aber da es ja ohne mehrere Plattformen wenig Sinn ergibt, wäre man sicher schnell bei knapp $900 (für Android, iOS und Windows Phone). Das ist für Indie nicht geeignet und meiner Meinung nach kann man sich dann auch gleich die Business-Lizenz für $999 holen, durch die man sogar die Visual Studio Integration bekommt.



  • oni schrieb:

    ...Indie-Lizenz für $299 pro Jahr...pro Plattform. ...meiner Meinung nach kann man sich dann auch gleich die Business-Lizenz für $999 holen, durch die man sogar die Visual Studio Integration bekommt.

    Dumm nur das diese ebenso pro Plattform kostet. Sprich man zahlt _pro_ Plattform zusätzliche 700$.



  • oni schrieb:

    Naja, es gibt eine Indie-Lizenz für $299 pro Jahr. Allerdings auch pro Plattform. $299 wäre ja noch akzeptabel, aber da es ja ohne mehrere Plattformen wenig Sinn ergibt, wäre man sicher schnell bei knapp $900 (für Android, iOS und Windows Phone).

    $299 pro Jahr pro Mann pro Plattform.

    pro Jahr ist OK, weil es sich ja nur auf Updates bezieht (perpetual license).
    pro Mann ist auch OK, als Indie ist man ja oft alleine. Und wenn nicht, kann man auch dementsprechend mehr riskieren/investieren.
    pro Plattform ist wie du auch selbst schreibst bereits etwas lästig, denn für zumindest zwei Plattformen wird man wohl entwickeln wollen.

    Dummerweise ist aber die Indie Lizenz auch noch stark kastriert - Visual Studio Support, WCF und SqlClient wären schon sehr nett. Auf Headless Builds und Email Support könnte ich dagegen vermutlich verzichten.
    (Vorausgesetzt mit "Email Support" ist gemeint dass man Dinge per Email fragen kann die man nicht versteht bzw. nicht selbst hinbekommt, und nicht dass man Antworten auf Reports von echten Bugs bekommt.)

    Das ist für Indie nicht geeignet und meiner Meinung nach kann man sich dann auch gleich die Business-Lizenz für $999 holen, durch die man sogar die Visual Studio Integration bekommt.

    Wieso "gleich"?
    Die Business-Lizenz ist genau so pro Jahr pro Mann pro Plattform. Nur halt weniger kastriert.
    D.h. statt ~$900 darfst du dann ~$3000 zahlen. *

    => Eine weniger kastrierte Indie-Lizenz wäre wünschenswert. Die dürfte dafür gerne mehr "Bedingungen" haben, wie z.B. ein Revenue-Limit und/oder ein beim Start eingeblendetes Logo/Wasserzeichen.

    *: OK, wenn man mehr auf einmal kauft gibt's nen 10% Rabatt. Also sind es "nur" ~$800 bzw. ~$2700



  • Mit einem MSDN-Abo die Business-Lizenz sogar für nur $1.399 (für Android und iOS zusammen): https://xamarin.com/MSDN (s. "Special pricing for individuals and teams"). Für einen Indie-Entwickler sicherlich immer noch zu hoch, aber für Firmen rechnet es sich.



  • Sorry, hatte wohl einen Knick in der Optik xD Dachte die 999 wären für alle Plattformen.



  • asc schrieb:

    Prof84 schrieb:

    Es ist ein Trugschluss, dass Du auf jeder Ebene über Libs und Frameworks eine Abstraktion so vornehmen kannst, dass dort jede Plattform läuft!

    Dann frage ich mich warum das schon bei mehreren Frameworks und Sprachen dies erfolgreich praktiziert wurde (u.a. bei Java). Es mag immer mal kleine Probleme geben (ins besondere wenn spezielle Funktionalitäten benötigt werden), möglich ist das Zusammenspiel aber dennoch.

    Eben nicht! - Bekannter Anfängerfehler das zu glauben. 😉

    Java läuft nicht auf jede Plattform, sondern nur auf einen MAINSTREAM von Betriebssystemen! Die meisten, aber nicht alle. Dann für den Longtail bleibt Dir nur die JNI, was die Typensicherheit gefährdet (die eigentlich seit Generics Java 5 auch dahin ist). Die Plattform versucht mit der Updatefunktion die Rückwärtskompatibilität zu den Weiterentwicklungen aufrecht zu erhalten, was eben nicht immer gelingt. Du merkst dass nur nicht, weil es in der Schichtenstruktur unterhalb der UI-Schichten liegen. Was der User sieht, merkt er nicht ... 🙄

    Wenn Du bei den Desktop lange Zeit die Updatefunktion aktiv lässt, dann taucht manchmal das bekannte Phenomän auf, dass die Periferiegeräte, wie Drucker oder Scanner, den Dienst einstellen, weil die updates auf der Treiberebene liegen. Und wenn der Hersteller dann kein Patch oder Update für das aktuelle Release liefert, kannst DU danach die HW nicht mehr nutzen.

    Deshalb bekommst Du bei wichtigen Sicherheitsupdates bei Windows, wo man die alten Konfigurationen im Framework nicht mehr nebeneinander stehen gelassen werden können eine "EULA" zu anklicken, mit der Dir bei MS subtil ein Haftungsausschluss untergeschoben wird.

    Das Du Frameworks und Platformen auf unendlichen Funktionalitäten erweitern kannst, haben Gödel und Turing schon ewig widerlegt. 😉

    Und jetzt denk mal über Updates bei Anti-Maleware SW und der Win Defender nach und der Synchronisation in der Konfiguration 💡 .



  • 999 für alle Plattformen PLUS die Business Features wäre immer noch nicht "toll" aber vermutlich gerade noch OK.



  • Prof84 schrieb:

    Java läuft nicht auf jede Plattform, sondern nur auf einen MAINSTREAM von Betriebssystemen! Die meisten, aber nicht alle. Dann für den Longtail bleibt Dir nur die JNI, was die Typensicherheit gefährdet (die eigentlich seit Generics Java 5 auch dahin ist). Die Plattform versucht mit der Updatefunktion die Rückwärtskompatibilität zu den Weiterentwicklungen aufrecht zu erhalten, was eben nicht immer gelingt. Du merkst dass nur nicht, weil es in der Schichtenstruktur unterhalb der UI-Schichten liegen. Was der User sieht, merkt er nicht ... 🙄

    Wenn Du bei den Desktop lange Zeit die Updatefunktion aktiv lässt, dann taucht manchmal das bekannte Phenomän auf, dass die Periferiegeräte, wie Drucker oder Scanner, den Dienst einstellen, weil die updates auf der Treiberebene liegen. Und wenn der Hersteller dann kein Patch oder Update für das aktuelle Release liefert, kannst DU danach die HW nicht mehr nutzen.

    Deshalb bekommst Du bei wichtigen Sicherheitsupdates bei Windows, wo man die alten Konfigurationen im Framework nicht mehr nebeneinander stehen gelassen werden können eine "EULA" zu anklicken, mit der Dir bei MS subtil ein Haftungsausschluss untergeschoben wird.

    Das Du Frameworks und Platformen auf unendlichen Funktionalitäten erweitern kannst, haben Gödel und Turing schon ewig widerlegt. 😉

    Und jetzt denk mal über Updates bei Anti-Maleware SW und der Win Defender nach und der Synchronisation in der Konfiguration 💡 .

    Bingo!


Anmelden zum Antworten