Aspnetcore: XAML au lieu de HTML et CSS

Créé le 27 mars 2018  ·  28Commentaires  ·  Source: dotnet/aspnetcore

Je suis enthousiasmé par ce projet, mais j'espère qu'il fera aussi quelque chose sur CSS. Je pense que les styles XAML sont plus conviviaux et peuvent être facilement traduits en CSS. Cela peut-il être fait?
Et si le DOM est représenté sous forme de classes .NET, pouvons-nous utiliser la syntaxe XAML pour représenter la page au lieu de HTML5 ?
Je sais que MVC a ramené du HTML au lieu des contrôles Web pour nous permettre d'écrire du code html optimal, mais je pense que XAML est si proche du html. Je veux juste utiliser les contrôles WPF/Silver Light/UWP familiers avec leurs propriétés, méthodes et événements familiers, et ils peuvent être juste un wrapper autour des contrôles html. Cela raccourcira le cycle d'apprentissage et fera ressembler le blazor à une fenêtre WPF/UWP normale, avec du code c# derrière la page.

area-blazor

Commentaire le plus utile

De nombreux développeurs C# adorent utiliser XAML sur HTML et CSS. De nombreuses personnes souhaitaient une prise en charge officielle multiplateforme pour UWP/WPF/XAML. Imo Microsoft devrait également prendre en charge XAML avec Blazor. Quand aurons-nous même un support officiel multiplateforme pour XAML ?

Je suis moi-même un fan de C#, mais mon problème avec le développement Web et Electron n'a jamais été Javascript. C'est CSS.

Quel est l'intérêt de Blazor s'il n'offre pas d'alternative au HTML/CSS ? Pourquoi est-il si difficile de trouver un remplaçant pour HTML/CSS, pourquoi le XAML multiplateforme est-il si difficile... Je ne comprends tout simplement pas. Microsoft rate toujours des opportunités et prend des décisions imprudentes.

Le jour où XAML deviendra multiplateforme (officiellement pris en charge par Microsoft), c'est le jour où Blazor bénéficiera d'une prise en charge complète de tous les développeurs C#. Enfin, du moins pas pour moi... parce que je ne vois aucun réel avantage à Blazor. Parce que je traite TOUJOURS avec CSS, id, class,

l'enfer. Juste avec C# au lieu de Javascript

Tous les 28 commentaires

@MohammadHamdyGhanem Voir https://github.com/aspnet/Blazor/issues/374#issuecomment -376314750

Pour Blazor, nous ciblons C#, HTML et CSS, mais pour XAML, vous pouvez jeter un œil à Ooui .

@danroth27

Pour Blazor, nous ciblons C#, HTML et CSS, mais pour XAML

Je ne dis pas que vous arrêtez d'utiliser HTML et CSS. Je dis, donnez-nous la possibilité de choisir XAML si nous le voulons. Je sais qu'il existe une communauté Web, mais il existe également une communauté de bureau .NET qui souhaite écrire des applications Web. Veuillez les considérer. J'ai moi-même détesté ASP.NET malgré mes efforts pour le lire et l'apprendre au cours des 15 dernières années ! Au contraire, j'ai trouvé XAML attrayant, puissant et facile à apprendre. J'espérais que la lumière argentée dominerait et évoluerait pour devenir la technologie Microsoft Wen, mais elle est morte en 2012 !
J'espère que vous considérez cette suggestion, même si vous l'appelez Xlazor :)

XAML, vous pouvez jeter un œil à Ooui.

Je ne dépends pas d'un produit tiers à une si grande échelle, car je ne garantis pas qu'ils dureront et évolueront.

@MohammadHamdyGhanem Blazor & Ooui sont des produits distincts fondés sur WebAssembly tout comme .NET est basé sur .NET Framework. Les deux sont nécessaires car il existe des développeurs Web qui préfèrent Razor/HTML/CSS (ASP.NET) et des développeurs Desktop/Mobile qui préfèrent XAML. Je pense donc que les deux doivent être fusionnés dans .NET/Xamarin (blazor est déjà fusionné) et doivent être utilisés séparément afin qu'ils puissent rester légers et ne pas se gâcher.

@plamen-i
Je suis d'accord. Mais je ne connais pas encore Xamarin. Je préfère utiliser des contrôles de type UWP.

@MohammadHamdyGhanem Xamarin, en particulier Xamarin.Forms est l'avenir si vous voulez écrire une fois (C#/XAML) et exécuter partout. Investissez du temps pour apprendre Xamarin.Forms et cela vous rapportera beaucoup plus :-) C'est une technologie mature, utilise XAML et est très proche de WPF/UWP.

Je dis que Microsoft devrait créer une API standard XAML (comme .NET Standard) qui devrait être respectée par Xamarin, UWP et ASP.NET quel que soit le nom du rasoir, ou étendre .NET Standard pour l'inclure.
Les contrôles et leurs propriétés et méthodes doivent avoir les mêmes noms quelle que soit l'implémentation sous-jacente. Cela rendra tous ces composants plus faciles à apprendre et tirera le meilleur parti du code réutilisable.

@MohammadHamdyGhanem Ils le sont, je pense... Voici le repo pour ça mais c'est assez mort ces derniers mois. J'espère que ce n'est pas le cas et j'attends une annonce à ce sujet sur Build 2018.

C'est un soulagement. Merci.

xamarin.forms ne sont pas aussi performants que les applications natives anroid ou ios, c'est bon pour le contenu des statistiques sur les applications ou les applications connectées au cloud, mais si vous voulez vraiment une intégration profonde avec les apis du système d'exploitation et avez besoin de performances natives, xamarin n'est pas aussi performant, plus les outils de xamarin.native est tout simplement horrible,

Je suis allé de l'avant et j'ai commencé à créer un moteur Xaml qui s'exécute nativement dans le navigateur. Vous pouvez le vérifier ici : https://github.com/XamlEngine/Samples

XAML doit être une option. Je ne sais pas dans quelle mesure l'équipe Asp.Net connaît XAML. L'équipe passe du temps à recréer la roue. Comme dans le récent Community Standup, ils ont montré comment créer des composants dans Blazor. J'ai dit pourquoi ?. Et pourquoi je dois apprendre une nouvelle façon d'écrire des composants. Vous avez XAML qui est parfait pour toutes ces choses.

Il existe des milliers de framework JS comme VUE, Angular, React qui aident à la liaison de données. Et XAML a été le premier à faire tout cela. Essayez au moins.

Nous connaissons XAML, mais notre objectif principal avec Blazor est de cibler les développeurs Web, nous nous en tenons donc à HTML et CSS. Cela dit, il existe déjà divers efforts pour développer la prise en charge de XAML pour .NET sur WebAssembly (Ooui, Uno, FrogUI), nous vous recommandons donc d'examiner ces projets si XAML est votre préférence.

@danroth27
Je vois que MS doit fonctionner sur le rasoir XAML pour sauver VB.NET. À mon avis, ASP.NET a été l'une des raisons pour lesquelles la popularité de VB.NET a baissé au cours de la dernière décennie. Les VBScripts ne fonctionnent que dans Internet Explorer. Il est donc né mort et tout développeur Web n'avait qu'à utiliser JavaScript qui utilise la syntaxe C-Like, il est donc plus facile à utiliser avec C# qu'avec VB.NET. Au fil des ans, les frameworks JavaScript ont continué d'émerger, et MS a adapté certains d'entre eux comme JQuery et Angular. TypeScript est également du JavaScript avancé.
Cela a fait de C# le seul choix logique pour les débutants, et a même forcé de nombreux développeurs VB.NET à migrer vers C#.
Ainsi, Xaml blazoer a deux objectifs :

  1. Attirez les développeurs de bureau c#. Ocertime, il tuera les fans de HTML !
    2- Attirez les développeurs vb.net et enregistrez cette belle langue facile pour les débutants.

Je pense qu'il y a une idée fausse sur XAML ici. Je suis vraiment un fan de XAML dans Blazor mais pas de la manière décrite ci-dessus et dans aspnet/Blazor#374.

Ce que je suis suggestion est décrit ci-dessous:

Le problème

Imaginez que j'ai ces composants:

Tiroir.cshtml :

<aside class="mdc-drawer mdc-drawer--modal">
    <strong i="10">@Header</strong>
    <strong i="11">@ChildContent</strong>
</aside>

<strong i="12">@functions</strong>
{
    [Parameter]
    DrawerHeader Header { get; set; }

    [Parameter]
    RenderFragment ChildContent { get; set; }
}

DrawerHeader.cshtml :

<div class="mdc-drawer__header">
    <strong i="16">@ChildContent</strong>
</div>

<strong i="17">@functions</strong>
{
    [Parameter]
    RenderFragment ChildContent { get; set; }
}

Imaginez maintenant que dans mon 3ème composant Main.cshtml, je souhaite ajouter un Drawer et définir son Drawer.Header . Actuellement, je dois créer une propriété de type DrawerHeader et la lier à mon Drawer.Header :

<div class="drawer-frame-root">
    <Drawer Header="@Header">
        <DrawerContent>

        </DrawerContent>
    </Drawer>
    <DrawerScrim />
</div>

<strong i="25">@functions</strong>
{
    DrawerHeader Header
    {
        get;
    } = new SubClassOfDrawerHeader();
}

Par conséquent, je dois créer un autre composant nommé SubClassOfDrawerHeader et lui attribuer la propriété Header. Ce qui fait des tonnes de composants dans mon projet.

Ma proposition

Ma suggestion est d'utiliser l'imbrication de propriétés de style XAML :

<div class="drawer-frame-root">
    <Drawer>
        <Drawer.Header>
                <DrawerHeader>
                        <DrawerHeaderTitle>User's name</DrawerHeaderTitle>
                        <DrawerHeaderSubtitle>[email protected]</DrawerHeaderSubtitle>
                </DrawerHeader>
        </Drawer.Header>
        <DrawerContent>Some content</DrawerContent>
    </Drawer>
    <DrawerScrim />
</div>

Veuillez regarder <Drawer.Header>...</Drawer.Header> dans le code ci-dessus.

@MohammadHamdyGhanem @xclud Avez-vous jeté un œil à une plate-forme similaire basée sur Xaml comme vous le souhaitez - Platform.uno - comme mentionné par @ danroth27 plus tôt ?

S'il a XAML, je pense que nous passerions INSTANTANÉMENT à blazor, car nous avons vraiment apprécié Silverlight.
Codage HTML/Javascript == manière très ennuyeuse d'écrire du code (alias "script")

S'il a XAML, je pense que nous passerions INSTANTANÉMENT à blazor, car nous avons vraiment apprécié Silverlight.
Codage HTML/Javascript == manière très ennuyeuse d'écrire du code (alias "script")

@wstaelens J'ai aussi beaucoup apprécié Silverlight et j'ai créé une douzaine d'applications avec. C'est pourquoi je profite de la plate-forme Uno (alias Silverlight sous stéroïdes) en ce moment.

S'il a XAML, je pense que nous passerions INSTANTANÉMENT à blazor, car nous avons vraiment apprécié Silverlight.
Codage HTML/Javascript == manière très ennuyeuse d'écrire du code (alias "script")

@wstaelens J'ai aussi beaucoup apprécié Silverlight et j'ai créé une douzaine d'applications avec. C'est pourquoi je profite de la plate-forme Uno (alias Silverlight sous stéroïdes) en ce moment.

Le problème est qu'il ne s'agit pas d'un projet microsoft "officiel", donc la durée de vie... le support... peu importe... Blazor a juste besoin du support XAML.

Le problème est qu'il ne s'agit pas d'un projet microsoft "officiel", donc la durée de vie... le support... peu importe... Blazor a juste besoin du support XAML.

@wstaelens Compris absolument. Je considère Uno comme quelque chose qui repose sur les épaules des géants de Microsoft - UWP, mono, Xamarin... Ils n'ont pas construit la plate-forme à partir de zéro, mais utilisent brillamment de nombreuses technologies matures qui fonctionnent très bien. J'étais vraiment heureux de voir Uno bien reçu à Microsoft Build le mois dernier et l'approbation récente de Miguel de Icaza.

De nombreux développeurs C# adorent utiliser XAML sur HTML et CSS. De nombreuses personnes souhaitaient une prise en charge officielle multiplateforme pour UWP/WPF/XAML. Imo Microsoft devrait également prendre en charge XAML avec Blazor. Quand aurons-nous même un support officiel multiplateforme pour XAML ?

Je suis moi-même un fan de C#, mais mon problème avec le développement Web et Electron n'a jamais été Javascript. C'est CSS.

Quel est l'intérêt de Blazor s'il n'offre pas d'alternative au HTML/CSS ? Pourquoi est-il si difficile de trouver un remplaçant pour HTML/CSS, pourquoi le XAML multiplateforme est-il si difficile... Je ne comprends tout simplement pas. Microsoft rate toujours des opportunités et prend des décisions imprudentes.

Le jour où XAML deviendra multiplateforme (officiellement pris en charge par Microsoft), c'est le jour où Blazor bénéficiera d'une prise en charge complète de tous les développeurs C#. Enfin, du moins pas pour moi... parce que je ne vois aucun réel avantage à Blazor. Parce que je traite TOUJOURS avec CSS, id, class,

l'enfer. Juste avec C# au lieu de Javascript

Je ne suis pas d'accord, tous les développeurs Web sont habitués au HTML et au CSS. Veuillez vous en tenir au html et au css

@GoranHalvarsson alors pourquoi ils ne sont pas habitués à JavaScript ou TypeScript ?

Je ne suis pas d'accord, tous les développeurs Web sont habitués au HTML et au CSS. Veuillez vous en tenir au html et au css

Malheureusement, tous les auteurs Web ne sont pas des développeurs, certains sont des ingénieurs logiciels et nous préférons XAML/C# pour centrer les éléments verticalement sur une page. Ce qui reste un mystère en HTML/CSS. XAML est de loin supérieur.

J'ai une Skoda et une Porsche, mais je conduis la Skoda uniquement parce que j'y suis habitué ? Il y a Xamarin en option ou Avalonia (si Microsoft en était propriétaire et qu'il répliquait la spécification WPF). Peut-être que Microsoft devrait envoyer un sondage à la communauté Blazor et leur demander s'ils devaient en choisir un, serait-ce - XAML ou HTML ?

Il y a plus de 10 ans, les développeurs Silverlight se considéraient comme des développeurs Web. Juste parce qu'iOS et Android ont décidé de ne pas autoriser les plugins, de nombreux développeurs Web se sont retrouvés sans plate-forme pour développer.

@GoranHalvarsson Quand vous dites tous les développeurs Web, beaucoup d'entre nous sont habitués au html et au css (parce que nous devons l'être), mais préfèrent XAML/C#. Vous ne parlez pas au nom de la communauté des développeurs Web. Alors ne nous dites pas à quoi nous devons nous en tenir.

Et qu'y a-t-il de mal à avoir plusieurs technologies à la disposition des développeurs ?

J'ai beaucoup utilisé HTML, CSS, JavaScript (j'essaie de rester à l'écart de JavaScript autant que possible de nos jours) pour des projets Web.
En ce qui concerne les applications Internet riches (RIA) ou les applications à page unique (SPA), Xaml et C# sont le roi et la reine. Je ne prendrai aucune autre option.
Je dois admettre que je fais partie des chanceux qui ne sont soumis à aucune plate-forme imposée, le luxe que tout le monde n'a pas.

J'ai récemment terminé un Blazor Project SSB (je n'utilise pas encore CSB) en utilisant Telerik et SyncFusion. L'expérience C# était géniale ! Le JavaScript/html/CSS était irritant. Il semble que la plupart des contrôles tiers contiennent la plupart des bogues dans CSS. Vous ne voudriez pas construire un SPA à grande échelle de cette façon ATM, ce serait difficile à entretenir.

Dans le passé, j'ai une vaste expérience XAML / C#. Je dois dire que le fait d'avoir tout sous un même toit rend le développement non seulement plus rapide et plus fiable, mais aussi plus agréable.

Personnellement, je me fiche de savoir si la prise en charge de XAML / C# n'est pas dans le navigateur tant qu'elle est multiplateforme. Il est probablement aussi important d'avoir une continuité dans une pile technologique, avec des moyens simples de migrer vers une technologie plus récente. L'un des plus gros problèmes passés (en mettant Silverlight de côté) était l'utilisation de solutions ORM tierces, restez toujours avec la technologie prise en charge par Microsoft dans la mesure du possible, c'est mon conseil !

Si Microsoft ajoutait la prise en charge multiplateforme / WASM à WPF et WinForms, le problème serait résolu pour moi. Je n'utiliserais probablement plus jamais Blazor si c'était le cas, car nous aurions tous la solution ultime en option.

Cette page vous a été utile?
0 / 5 - 0 notes