Aspnetcore: XAML sebagai ganti HTML dan CSS

Dibuat pada 27 Mar 2018  ·  28Komentar  ·  Sumber: dotnet/aspnetcore

Saya senang dengan proyek ini, tetapi saya berharap ini juga melakukan sesuatu tentang CSS. Saya pikir gaya XAML lebih ramah, dan mereka dapat dengan mudah diterjemahkan ke CSS. Bisakah itu dilakukan?
Dan jika DOM direpresentasikan sebagai kelas .NET, dapatkah kita menggunakan sintaks XAML untuk mewakili halaman alih-alih HTML5?
Saya tahu bahwa MVC membawa kembali HTML alih-alih kontrol web untuk memungkinkan kami menulis kode html yang optimal, tetapi saya pikir XAML sangat dekat dengan html. Saya hanya ingin menggunakan kontrol WPF /Silver Light/UWP yang sudah dikenal dengan properti, metode, dan acara yang sudah dikenal, dan mereka bisa menjadi pembungkus di sekitar kontrol html. Ini akan mempersingkat siklus pembelajaran, dan membuat blazer terlihat seperti jendela WPF/UWP biasa, dengan kode c# di belakang halaman.

area-blazor

Komentar yang paling membantu

Banyak pengembang C# suka menggunakan XAML daripada HTML dan CSS. Banyak orang menginginkan dukungan lintas platform resmi untuk UWP/WPF/XAML. Imo Microsoft harus mendukung XAML juga dengan Blazor. Kapan kami akan mendapatkan dukungan lintas platform resmi untuk XAML?

Saya sendiri adalah penggemar C#, tetapi masalah saya dengan pengembangan Web dan Electron tidak pernah Javascript. Ini adalah CSS.

Apa gunanya Blazor jika tidak menawarkan alternatif untuk HTML/CSS? Mengapa menemukan pengganti HTML/CSS begitu sulit, mengapa XAML lintas platform begitu sulit... Saya tidak mengerti. Microsoft selalu kehilangan peluang dan membuat keputusan yang tidak bijaksana.

Hari XAML menjadi lintas platform (secara resmi didukung oleh Microsoft), hari itulah Blazor mendapat dukungan penuh dari semua pengembang C#. Yah, setidaknya tidak untukku... karena aku tidak melihat keuntungan nyata dari Blazor. Karena saya MASIH berurusan dengan CSS, id, kelas,

neraka. Hanya dengan C#, bukan Javascript

Semua 28 komentar

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

Untuk Blazor kami menargetkan C#, HTML, dan CSS, tetapi untuk XAML Anda dapat melihat Ooui .

@danroth27

Untuk Blazor kami menargetkan C#, HTML, dan CSS, tetapi untuk XAML

Saya tidak mengatakan Anda berhenti menggunakan HTML dan CSS. Saya katakan beri kami opsi untuk memilih XAML jika kami mau. Saya tahu bahwa ada komunitas web, tetapi ada juga komunitas desktop .NET yang ingin menulis aplikasi web. Tolong pertimbangkan mereka. Saya sendiri membenci ASP.NET meskipun saya berusaha untuk membaca dan mempelajarinya selama 15 tahun terakhir! Sebaliknya, saya menemukan XAML menarik, kuat dan mudah dipelajari. Saya berharap cahaya perak akan mendominasi dan berkembang menjadi teknologi Microsoft Wen, tetapi itu mati pada tahun 2012!
Saya harap Anda mempertimbangkan saran ini, bahkan jika Anda menamakannya Xlazor :)

XAML Anda dapat melihat Ooui.

Saya tidak bergantung pada produk pihak ketiga dalam skala besar seperti itu, karena saya tidak penerima hibah mereka akan bertahan dan berkembang, jadi bisa jadi rugi jika produk pihak ketiga mati jadi saya perlu menulis ulang proyek besar yang menggunakannya!

@MohammadHamdyGhanem Blazor & Ooui adalah produk terpisah yang didirikan di WebAssembly sebanyak .NET didasarkan pada .NET Framework. Keduanya diperlukan karena ada pengembang web yang lebih memilih Razor/HTML/CSS (ASP.NET) dan pengembang Desktop/Seluler yang lebih memilih XAML. Jadi menurut saya keduanya perlu digabung menjadi .NET/Xamarin (blazor sudah digabung) dan harus digunakan secara terpisah agar tetap ringan dan tidak saling mengacaukan.

@plamen-i
Saya setuju. Tapi saya belum familiar dengan Xamarin. Saya lebih suka menggunakan kontrol seperti UWP.

@MohammadHamdyGhanem Xamarin, terutama Xamarin.Forms adalah masa depan Anda ingin menulis sekali (C#/XAML) & dijalankan di mana-mana. Investasikan waktu untuk mempelajari Xamarin.Forms dan itu akan membayar Anda lebih banyak lagi :-) Ini adalah teknologi yang matang, menggunakan XAML dan sangat dekat dengan WPF/UWP.

Saya katakan Microsoft harus membuat API standar XAML (Seperti .NET Standard) yang harus dipatuhi menjadi Xamarin, UWP dan ASP.NET apa pun nama pisau cukurnya, atau perpanjang .NET Standard untuk memasukkan ini.
Kontrol dan properti serta metodenya harus memiliki nama yang sama apa pun implementasi bawahannya. Ini akan membuat semua komponen ini lebih mudah dipelajari, dan membuat sebagian besar kode dapat digunakan kembali.

@MohammadHamdyGhanem Mereka menurut saya ... Ini repo untuk itu tetapi sudah cukup mati selama beberapa bulan terakhir ini. Saya harap tidak dan menunggu beberapa pengumuman untuk itu di Build 2018.

Itu melegakan. Terima kasih.

xamarin.forms tidak seperforma aplikasi anroid atau ios asli, ini bagus untuk konten statis pada aplikasi atau aplikasi yang terhubung cloud, tetapi jika Anda benar-benar ingin integrasi mendalam dengan api OS dan membutuhkan kinerja asli xamarin bukan sebagai performant , ditambah toolking dari xamarin.native mengerikan,

Saya melanjutkan dan mulai membangun mesin Xaml yang berjalan secara native di browser. Anda dapat memeriksanya di sini: https://github.com/XamlEngine/Samples

XAML harus menjadi pilihan. Saya tidak tahu seberapa akrab tim Asp.Net dengan XAML. Tim menghabiskan waktu untuk menciptakan roda. Seperti dalam Standup Komunitas baru-baru ini, mereka telah menunjukkan cara membuat Komponen di Blazor. saya bilang kenapa?. Dan mengapa saya harus mempelajari cara baru dalam menulis komponen. Anda memiliki XAML yang sempurna untuk semua hal ini.

Ada ribuan kerangka kerja JS seperti VUE, Angular, React yang membantu pengikatan data. Dan XAML adalah yang pertama melakukan semua ini. Setidaknya cobalah.

Kami akrab dengan XAML, tetapi tujuan utama kami dengan Blazor adalah untuk menargetkan pengembang Web, jadi kami tetap menggunakan HTML dan CSS. Yang mengatakan, sudah ada berbagai upaya di luar sana untuk membangun dukungan XAML untuk .NET di WebAssembly (Ooui, Uno, FrogUI) jadi kami sarankan untuk melihat proyek-proyek tersebut jika XAML adalah pilihan Anda.

@danroth27
Saya melihat bahwa MS harus bekerja pada pisau cukur XAML untuk menyelamatkan VB.NET. Menurut saya, ASP.NET adalah salah satu alasan yang membuat popularitas VB.NET turun selama satu dekade terakhir. VBScript hanya berjalan di Internet Explorer, Jadi itu lahir mati dan setiap pengembang web hanya menggunakan JavaScript yang menggunakan sintaks C-Like, sehingga lebih mudah digunakan dengan C# daripada dengan VB.NET. Selama bertahun-tahun kerangka kerja JavaScript terus muncul, dan MS mengadaptasi beberapa di antaranya seperti JQuery dan Angular. TypeScript juga merupakan beberapa JavaScript tingkat lanjut.
Hal ini membuat C# menjadi satu-satunya pilihan logis bagi pemula, bahkan memaksa banyak developer VB.NET untuk bermigrasi ke C#.
Jadi, Xaml blazer memiliki dua tujuan:

  1. Menarik c# pengembang desktop. Ocertime itu akan membunuh penggemar html!
    2- Menarik pengembang vb.net dan menyimpan bahasa pemula yang mudah dan indah ini.

Saya pikir ada kesalahpahaman tentang XAML di sini. Saya benar-benar penggemar XAML di Blazor tetapi tidak seperti yang dibahas di atas dan di aspnet/Blazor#374.

Apa yang saya sarankan dijelaskan di bawah ini:

Masalah

Bayangkan saya memiliki komponen ini:

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

Sekarang bayangkan di Main.cshtml komponen ke-3 saya, saya ingin menambahkan Drawer dan mengatur Drawer.Header . Saat ini saya harus membuat properti dengan tipe DrawerHeader dan mengikatnya ke 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();
}

Oleh karena itu saya harus membuat komponen lain bernama SubClassOfDrawerHeader dan menetapkan properti Header untuk itu. Yang membuat banyak komponen dalam proyek saya.

Lamaran ku

Saran saya adalah menggunakan sarang properti gaya 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>

Silakan lihat <Drawer.Header>...</Drawer.Header> dalam kode di atas.

@MohammadHamdyGhanem @xclud Sudahkah Anda melihat platform serupa berbasis Xaml sesuai keinginan - Platform.uno - seperti yang disebutkan oleh @danroth27 sebelumnya?

Jika memiliki XAML saya pikir kami akan INSTAN pindah ke blazor, karena kami sangat menikmati Silverlight.
Pengodean HTML/Javascript == cara yang sangat mengganggu untuk menulis kode (alias "skrip")

Jika memiliki XAML saya pikir kami akan INSTAN pindah ke blazor, karena kami sangat menikmati Silverlight.
Pengodean HTML/Javascript == cara yang sangat mengganggu untuk menulis kode (alias "skrip")

@wstaelens Saya juga sangat menikmati Silverlight, dan membuat selusin aplikasi dengannya. Inilah mengapa saya menikmati Uno Platform (alias Silverlight pada steroid) sekarang.

Jika memiliki XAML saya pikir kami akan INSTAN pindah ke blazor, karena kami sangat menikmati Silverlight.
Pengodean HTML/Javascript == cara yang sangat mengganggu untuk menulis kode (alias "skrip")

@wstaelens Saya juga sangat menikmati Silverlight, dan membuat selusin aplikasi dengannya. Inilah mengapa saya menikmati Uno Platform (alias Silverlight pada steroid) sekarang.

Masalahnya adalah ini bukan proyek microsoft "resmi", jadi seumur hidup... support... apapun... blazer hanya butuh dukungan XAML.

Masalahnya adalah ini bukan proyek microsoft "resmi", jadi seumur hidup... support... apapun... blazer hanya butuh dukungan XAML.

@wstaelens Sangat mengerti . Saya melihat Uno sebagai sesuatu yang berdiri di atas bahu raksasa Microsoft - UWP, mono, Xamarin... Mereka tidak membangun platform dari awal, tetapi dengan cemerlang memanfaatkan banyak teknologi dewasa yang telah bekerja dengan sangat baik. Saya sangat senang melihat Uno diterima dengan baik di Microsoft Build bulan lalu dan dukungan baru-baru ini oleh Miguel de Icaza.

Banyak pengembang C# suka menggunakan XAML daripada HTML dan CSS. Banyak orang menginginkan dukungan lintas platform resmi untuk UWP/WPF/XAML. Imo Microsoft harus mendukung XAML juga dengan Blazor. Kapan kami akan mendapatkan dukungan lintas platform resmi untuk XAML?

Saya sendiri adalah penggemar C#, tetapi masalah saya dengan pengembangan Web dan Electron tidak pernah Javascript. Ini adalah CSS.

Apa gunanya Blazor jika tidak menawarkan alternatif untuk HTML/CSS? Mengapa menemukan pengganti HTML/CSS begitu sulit, mengapa XAML lintas platform begitu sulit... Saya tidak mengerti. Microsoft selalu kehilangan peluang dan membuat keputusan yang tidak bijaksana.

Hari XAML menjadi lintas platform (secara resmi didukung oleh Microsoft), hari itulah Blazor mendapat dukungan penuh dari semua pengembang C#. Yah, setidaknya tidak untukku... karena aku tidak melihat keuntungan nyata dari Blazor. Karena saya MASIH berurusan dengan CSS, id, kelas,

neraka. Hanya dengan C#, bukan Javascript

Saya tidak setuju, semua pengembang web terbiasa dengan html dan css. Harap tetap berpegang pada html dan css

@GoranHalvarsson lalu mengapa mereka tidak terbiasa dengan JavaScript atau TypeScript?

Saya tidak setuju, semua pengembang web terbiasa dengan html dan css. Harap tetap berpegang pada html dan css

Sayangnya tidak semua penulis web adalah pengembang, beberapa adalah insinyur perangkat lunak dan kami lebih suka XAML/C# untuk memusatkan elemen secara vertikal pada halaman. Yang masih menjadi misteri dalam HTML/CSS. XAML jauh lebih unggul.

Saya memiliki Skoda dan Porsche, tetapi hanya mengendarai Skoda karena saya sudah terbiasa? Ada Xamarin sebagai opsi atau Avalonia (Jika Microsoft memilikinya dan mereplikasi spesifikasi WPF). Mungkin Microsoft harus melakukan survei ke komunitas Blazor dan menanyakan apakah mereka harus memilih salah satunya - XAML atau HTML?

Pengembang Silverlight lebih dari 10 tahun yang lalu menganggap diri mereka sebagai pengembang web. Hanya karena iOS dan Android memutuskan untuk tidak mengizinkan plugin, banyak pengembang web dibiarkan tanpa platform untuk dikembangkan.

@GoranHalvarsson Ketika Anda mengatakan semua pengembang web, banyak dari kita yang terbiasa dengan html dan css (karena memang harus demikian), tetapi lebih memilih XAML/C#. Anda tidak berbicara atas nama komunitas pengembang web. Jadi jangan beri tahu kami apa yang harus kami patuhi.

Dan apa yang salah dengan memiliki banyak teknologi yang tersedia untuk pengembang?

Saya telah menggunakan HTML, CSS, JavaScript secara ekstensif (saya mencoba untuk menjauh dari JavaScript sejauh yang saya bisa saat ini) untuk proyek web.
Ketika berbicara tentang Rich Internet Applications (RIA) atau Single Page Apps (SPA), Xaml dan C# adalah raja dan ratu. Saya tidak akan mengambil pilihan lain.
Saya harus mengakui bahwa saya termasuk orang yang beruntung yang tidak tunduk pada platform yang dipaksakan, kemewahan yang tidak dimiliki semua orang.

Saya baru saja menyelesaikan Blazor Project SSB (saya belum pernah menggunakan CSB) menggunakan Telerik dan SyncFusion. Pengalaman C# sangat bagus! JavaScript / html / CSS menjengkelkan. Tampaknya sebagian besar kontrol pihak ketiga memiliki sebagian besar bug dalam CSS. Anda tidak ingin membangun SPA skala besar dengan cara ini ATM, akan sulit untuk mempertahankannya.

Di masa lalu saya memiliki pengalaman XAML/C# yang luas. Saya harus mengatakan memiliki segalanya di bawah satu atap membuat pengembangan tidak hanya lebih cepat dan lebih dapat diandalkan, tetapi juga lebih menyenangkan.

Secara pribadi, saya tidak terlalu peduli jika dukungan XAML / C# tidak ada di browser selama itu lintas plat. Mungkin sama pentingnya untuk memiliki kesinambungan dalam tumpukan teknologi, dengan cara sederhana untuk bermigrasi ke teknologi yang lebih baru. Salah satu masalah terbesar di masa lalu (mengesampingkan Silverlight) adalah dengan menggunakan solusi ORM pihak ketiga, selalu tetap menggunakan teknologi yang didukung Microsoft jika memungkinkan adalah saran saya!

Jika Microsoft menambahkan dukungan lintas platform / WASM ke WPF dan WinForms, masalahnya akan terpecahkan untuk saya. Saya mungkin tidak akan pernah menggunakan Blazor lagi jika ini masalahnya, karena kita semua memiliki solusi pamungkas sebagai opsi.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat