Disclaimer: I am not against third-party controls because I believe it's for productivity
Ho usato i controlli di Telerik asp.net, in particolare RadGrid perché rende più facile fare CRUD. Hanno controlli fantastici.
Ho pensato che avrei fatto lo stesso per asp.net mvc ma guardando il codice coinvolto mi spaventa.
Ho visto un altro sito (syncfusion.com) che oggi offre gli stessi controlli di mvc e quando guardi l'interfaccia utente, sono accattivanti e quindi sono presenti funzioni / caratteristiche.
Il mio problema con questi controlli simpatici / accattivanti è :
- Mi sembra che stia prendendo il controllo che ho sull'HTML che è uno dei vantaggi di asp.net mvc
- Non riesco a vedere l'HTML fino a quando non viene eseguita la pagina e visualizzando il codice sorgente
- Sento che c'è un accoppiamento tra i dati e il design. Il web designer ha bisogno di imparare il modo di fare Telerik / Syncfusion. Non sarà in grado di utilizzare l'HTML con cui ha familiarità con
- Il rasoio sembra un modello che si mescola con HTML e può essere sostituito con un valore codificato a mano per la presentazione e il test che può essere sostituito in seguito
Credo che il seguente codice abbia preso il controllo del mio codice HTML e ne ho un minimo controllo
@section SampleHeading{<span class="sampleName"> Grid/Data Binding/Remote Data</span>}
@section ControlsSection{
@(Html.EJ().Grid<OrdersView>("RemoteBinding")
.Datasource("http://mvc.syncfusion.com/Services/Northwnd.svc/Orders/")
.AllowPaging()
.PageSettings(page => { page.PageSize(9); })
.Columns(col =>
{
col.Field("CustomerID").HeaderText("Customer ID").Width(90).Add();
col.Field("EmployeeID").HeaderText("Employee ID").TextAlign(TextAlign.Right).Width(75).Add();
col.Field("Freight").HeaderText("Freight").TextAlign(TextAlign.Right).Width(75).Format("{0:C}").Add();
col.Field("ShipCity").HeaderText("Ship City").Width(100).Add();
col.Field("OrderDate").Format("{0:MM/dd/yyyy}").Width(100).TextAlign(TextAlign.Right).Add();
col.Field("ShipCountry").HeaderText("Ship Country").Width(100).Add();
})
)
}
Si dovrebbe sacrificare la semplicità / il controllo sulla produttività? Quando e perché?