Aspnetcore: XAML вместо HTML и CSS

Созданный на 27 мар. 2018  ·  28Комментарии  ·  Источник: dotnet/aspnetcore

Я в восторге от этого проекта, но надеюсь, что он что-то делает и с CSS. Я считаю, что стили XAML более дружелюбны и их легко перевести в CSS. Можно ли это сделать?
А если модель DOM представлена ​​в виде классов .NET, можем ли мы использовать синтаксис XAML для представления страницы вместо HTML5?
Я знаю, что MVC вернул HTML вместо веб-элементов управления, чтобы мы могли писать оптимальный html-код, но я думаю, что XAML так близок к html. Я просто хочу использовать знакомые элементы управления WPF / Silver Light / UWP с их знакомыми свойствами, методами и событиями, и они могут быть просто оболочкой для элементов управления html. Это сократит цикл обучения и сделает блейзер похожим на обычное окно WPF / UWP с кодом C # за страницей.

area-blazor

Самый полезный комментарий

Многие разработчики C # любят использовать XAML вместо HTML и CSS. Многим нужна официальная кроссплатформенная поддержка UWP / WPF / XAML. Imo Microsoft также должна поддерживать XAML с Blazor. Когда мы вообще получим официальную кроссплатформенную поддержку XAML?

Я сам фанат C #, но моя проблема с веб-разработкой и Electron никогда не была связана с Javascript. Это CSS.

Какой смысл в Blazor, если он не предлагает альтернативу HTML / CSS? Почему так сложно найти замену HTML / CSS, почему кроссплатформенный XAML так сложно ... Я просто не понимаю. Microsoft всегда упускает возможности и принимает неразумные решения.

День, когда XAML станет кроссплатформенным (официально поддерживается Microsoft), это день, когда Blazor получит полную поддержку всех разработчиков C #. Ну, по крайней мере, для меня ... потому что я не вижу реальных преимуществ Blazor. Потому что я все еще занимаюсь CSS, id, class,

ад. Просто с C # вместо Javascript

Все 28 Комментарий

@MohammadHamdyGhanem См. Https://github.com/aspnet/Blazor/issues/374#issuecomment -376314750

Для Blazor мы ориентируемся на C #, HTML и CSS, но для XAML вы можете взглянуть на Ooui .

@ danroth27

Для Blazor мы ориентируемся на C #, HTML и CSS, но для XAML

Я не говорю, что вы перестанете использовать HTML и CSS. Я говорю, дайте нам возможность выбрать XAML, если мы захотим. Я знаю, что есть веб-сообщество, но есть также сообщество настольных компьютеров .NET, которое хочет писать веб-приложения. Пожалуйста, рассмотрите их. Я сам ненавидел ASP.NET, несмотря на мои попытки прочитать и изучить его в течение последних 15 лет! Напротив, я нашел XAML привлекательным, мощным и простым в освоении. Я надеялся, что серебряный свет будет доминировать и превратиться в технологию Microsoft Wen, но он умер в 2012 году!
Надеюсь, вы согласитесь с этим предложением, даже если вы назовете его Xlazor :)

XAML вы можете взглянуть на Ooui.

Я не зависим от стороннего продукта в таком большом масштабе, потому что я не гарантирую, что он будет длиться и развиваться, поэтому может быть промах, если сторонний продукт умер, поэтому мне нужно переписать большие проекты, которые его используют!

@MohammadHamdyGhanem Blazor и Ooui - это отдельные продукты, основанные на WebAssembly, так же как .NET основан на .NET Framework. Оба они необходимы, поскольку есть веб-разработчики, которые предпочитают Razor / HTML / CSS (ASP.NET), и разработчики для настольных и мобильных устройств, которые предпочитают XAML. Поэтому я думаю, что оба должны быть объединены в .NET / Xamarin (blazor уже объединен) и должны использоваться отдельно, чтобы они могли быть легкими и не мешали друг другу.

@ пламен-я
Я согласен. Но я еще не знаком с Xamarin. Я предпочитаю использовать элементы управления, подобные UWP.

@MohammadHamdyGhanem Xamarin, особенно Xamarin.Forms - это будущее, если вы хотите писать один раз (C # / XAML) и запускать везде. Потратьте некоторое время на изучение Xamarin.Forms, и он окупит вас гораздо больше :-) Это зрелая технология, использует XAML и очень близка к WPF / UWP.

Я говорю, что Microsoft должна создать стандартный API XAML (например, .NET Standard), которому должны подчиняться Xamarin, UWP и ASP.NET, независимо от имени бритвы, или расширить .NET Standard, включив это.
Элементы управления, их свойства и методы должны иметь одинаковые имена вне зависимости от базовой реализации. Это упростит изучение всех этих компонентов и сделает возможным многократное использование кода.

@MohammadHamdyGhanem Они, я думаю ... Вот репо для этого, но последние несколько месяцев он был мертв. Я очень надеюсь, что это не так, и жду объявления об этом на Build 2018.

Это облегчение. Спасибо.

xamarin.forms не так эффективен, как собственные приложения для anroid или ios, он хорош для статистического контента в приложениях или приложениях, подключенных к облаку, но если вам действительно нужна глубокая интеграция с API ОС и нужна собственная производительность, xamarin не является таким производительным, плюс набор инструментов xamarin.native просто ужасен,

Я пошел дальше и начал создавать движок Xaml, который изначально работает в браузере. Вы можете проверить это здесь: https://github.com/XamlEngine/Samples

XAML должен быть вариантом. Я не знаю, насколько команда Asp.Net знакома с XAML. Команда тратит время на воссоздание колеса. Как и в недавнем Community Standup, они показали, как создавать компоненты в Blazor. Я сказал почему ?. И почему я должен изучить новый способ написания компонентов. У вас есть XAML, который идеально подходит для всего этого.

Существуют тысячи JS-фреймворков, таких как VUE, Angular, React, которые помогают в привязке данных. И XAML был первым, кто это сделал. По крайней мере, попробуйте.

Мы знакомы с XAML, но наша основная цель с Blazor - ориентироваться на веб-разработчиков, поэтому мы придерживаемся HTML и CSS. Тем не менее, уже предпринимаются различные усилия по созданию поддержки XAML для .NET в WebAssembly (Ooui, Uno, FrogUI), поэтому мы рекомендуем изучить эти проекты, если XAML вам больше нравится.

@ danroth27
Я вижу, что MS должна работать с бритвой XAML, чтобы сохранить VB.NET. На мой взгляд, ASP.NET был одной из причин, по которым популярность VB.NET упала за последнее десятилетие. VBScripts запускаются только в Internet Explorer, поэтому он рожден мертвым, и любой веб-разработчик должен был использовать только JavaScript, который использует синтаксис C-Like, поэтому его легче использовать с C #, чем с VB.NET. С течением времени фреймворки JavaScript продолжали появляться, и MS адаптировала некоторые из них, такие как JQuery и Angular. TypeScript также представляет собой продвинутый JavaScript.
Это сделало C # единственным логическим выбором для новичков, и даже заставило многих разработчиков VB.NET перейти на C #.
Итак, Xaml blazoer преследует две цели:

  1. Привлекайте разработчиков настольных компьютеров на C #. Ocertime это убьет поклонников html!
    2- Привлекайте разработчиков vb.net и сохраните этот красивый простой для начинающих язык.

Я думаю, что здесь есть неправильное представление о XAML. Я действительно поклонник XAML в Blazor, но не так, как описано выше и в aspnet / Blazor # 374.

То, что я предлагаю, описано ниже:

Эта проблема

Представьте, что у меня есть эти компоненты:

Drawer.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; }
}

Теперь представьте, что в моем третьем компоненте Main.cshtml я хочу добавить Drawer и установить его Drawer.Header . В настоящее время мне нужно создать свойство типа DrawerHeader и привязать его к моему 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();
}

Поэтому мне нужно создать другой компонент с именем SubClassOfDrawerHeader и назначить ему свойство Header. Что составляет массу компонентов в моем проекте.

Мое предложение

Я предлагаю использовать вложение свойств стиля 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>

Пожалуйста, посмотрите на <Drawer.Header>...</Drawer.Header> в приведенном выше коде.

@MohammadHamdyGhanem @xclud Приходилось ли вам Platform.uno - как упоминалось ранее @ danroth27 ?

Если бы у него был XAML, я думаю, мы бы МГНОВЕННО перешли на Blazor, потому что нам действительно понравился Silverlight.
Кодирование HTML / Javascript == очень раздражающий способ написания кода (он же «скрипт»)

Если бы у него был XAML, я думаю, мы бы МГНОВЕННО перешли на Blazor, потому что нам действительно понравился Silverlight.
Кодирование HTML / Javascript == очень раздражающий способ написания кода (он же «скрипт»)

@wstaelens Мне тоже очень понравился Silverlight, и я сделал с ним дюжину приложений. Вот почему мне сейчас нравится Uno Platform (также известная как Silverlight на стероидах).

Если бы у него был XAML, я думаю, мы бы МГНОВЕННО перешли на Blazor, потому что нам действительно понравился Silverlight.
Кодирование HTML / Javascript == очень раздражающий способ написания кода (он же «скрипт»)

@wstaelens Мне тоже очень понравился Silverlight, и я сделал с ним дюжину приложений. Вот почему мне сейчас нравится Uno Platform (также известная как Silverlight на стероидах).

Проблема в том, что это не «официальный» проект Microsoft, поэтому время жизни ... поддержка ... что угодно ... Blazor просто нужна поддержка XAML.

Проблема в том, что это не «официальный» проект Microsoft, поэтому время жизни ... поддержка ... что угодно ... Blazor просто нужна поддержка XAML.

@wstaelens Разобрался совершенно. Я рассматриваю Uno как нечто стоящее на плечах гигантов Microsoft - UWP, mono, Xamarin ... Они не создавали платформу с нуля, но блестяще использовали многие зрелые технологии, которые работают очень хорошо. Я был действительно рад, что Уно был хорошо принят на Microsoft Build в прошлом месяце и недавнее одобрение со стороны Мигеля де Икасы.

Многие разработчики C # любят использовать XAML вместо HTML и CSS. Многим нужна официальная кроссплатформенная поддержка UWP / WPF / XAML. Imo Microsoft также должна поддерживать XAML с Blazor. Когда мы вообще получим официальную кроссплатформенную поддержку XAML?

Я сам фанат C #, но моя проблема с веб-разработкой и Electron никогда не была связана с Javascript. Это CSS.

Какой смысл в Blazor, если он не предлагает альтернативу HTML / CSS? Почему так сложно найти замену HTML / CSS, почему кроссплатформенный XAML так сложно ... Я просто не понимаю. Microsoft всегда упускает возможности и принимает неразумные решения.

День, когда XAML станет кроссплатформенным (официально поддерживается Microsoft), это день, когда Blazor получит полную поддержку всех разработчиков C #. Ну, по крайней мере, для меня ... потому что я не вижу реальных преимуществ Blazor. Потому что я все еще занимаюсь CSS, id, class,

ад. Просто с C # вместо Javascript

Я не согласен, все веб-разработчики привыкли к html и css. Пожалуйста, придерживайтесь HTML и CSS

@GoranHalvarsson, тогда почему они не используют JavaScript или TypeScript?

Я не согласен, все веб-разработчики привыкли к html и css. Пожалуйста, придерживайтесь HTML и CSS

К сожалению, не все веб-авторы - разработчики, некоторые - инженеры-программисты, и мы предпочитаем XAML / C # для вертикального центрирования элементов на странице. Что до сих пор остается загадкой для HTML / CSS. XAML намного превосходит.

У меня есть Skoda и Porsche, но я езжу на Skoda только потому, что привык к ней? В качестве опции есть Xamarin или Avalonia (если он принадлежит Microsoft и реплицирует спецификацию WPF). Может быть, Microsoft стоит провести опрос среди сообщества Blazor и спросить их, должны ли они выбрать один - XAML или HTML?

Разработчики Silverlight более 10 лет назад считали себя веб-разработчиками. Просто потому, что iOS и Android решили запретить использование плагинов, многие веб-разработчики остались без платформы для разработки.

@GoranHalvarsson Когда вы говорите, что все веб-разработчики, многие из нас привыкли к html и css (потому что должны), но предпочитают XAML / C #. Вы не говорите от имени сообщества веб-разработчиков. Так что не говорите нам, чего мы должны придерживаться.

И что плохого в том, что разработчикам доступно несколько технологий?

Я широко использовал HTML, CSS, JavaScript (сейчас я стараюсь держаться подальше от JavaScript) для веб-проектов.
Когда дело доходит до Rich Internet Applications (RIA) или одностраничных приложений (SPA), Xaml и C # - король и королева. Другого варианта я не выберу.
Я должен признать, что я один из тех, кому повезло, и я не подчиняюсь никаким навязанным платформам, а такая роскошь есть не у всех.

Недавно я завершил SSB Blazor Project (пока не использую CSB), используя Telerik и SyncFusion. Опыт работы с C # был отличным! JavaScript / html / CSS раздражал. Кажется, что большинство сторонних элементов управления содержат больше всего ошибок в CSS. Вы бы не хотели строить крупномасштабный SPA таким же банкоматом, его будет сложно поддерживать.

В прошлом у меня был обширный опыт работы с XAML / C #. Я должен сказать, что наличие всего под одной крышей делает разработку не только более быстрой и надежной, но и более приятной.

Лично мне все равно, если поддержка XAML / C # отсутствует в браузере, если это перекрестная платформа. Вероятно, не менее важно иметь преемственность в технологическом стеке с простыми способами перехода на новые технологии. Одна из самых больших прошлых проблем (не говоря уже о Silverlight) была связана с использованием сторонних решений ORM, всегда придерживайтесь технологий, поддерживаемых Microsoft, - вот мой совет!

Если бы Microsoft добавила поддержку кроссплатформенности / WASM в WPF и WinForms, проблема была бы решена для меня. Я бы, вероятно, никогда больше не использовал Blazor, если бы это было так, поскольку у всех нас было бы окончательное решение в качестве опции.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги