web-dev-qa-db-ja.com

サードパーティのWebコントロールと密結合

免責事項:生産性のためだと信じているので、サードパーティの管理に反対していません

私はTelerikasp.netコントロール、特にRadGridを使用しました。これは、CRUDを実行しやすくするためです。彼らは素晴らしいコントロールを持っています。

Asp.net mvcでも同じことをすると思いましたが、関連するコードを見ると怖いです。

今日、同じmvcコントロールを提供している別のサイト(syncfusion.com)を見ました。UIを見ると、それらは魅力的であり、機能/機能も魅力的です。

これらのニース/魅力的なコントロールに関する私の問題は

  • Asp.netmvcの利点の1つであるHTMLを制御しているように感じます
  • ページが実行され、ソースコードが表示されるまでHTMLが表示されません
  • データとデザインには結びつきがあるように感じます。 Webデザイナーは、Telerik/Syncfusionのやり方を学ぶ必要があります。使い慣れたHTMLを使用できなくなります
  • Razorは、HTMLと混合されたテンプレートのように見え、プレゼンテーションとテスト用に手書きの値に置き換えることができ、後で置き換えることができます。

次のコードが私のHTMLを乗っ取ったと思いますが、私はそれらをほとんど制御できません。

@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();
    })
  )
}

シンプルさ/生産性の制御を犠牲にする必要がありますか?いつ、なぜ?

2
tunmise fasipe

短い答え:はい。

私たちは皆、いじくり回してきちんとしたものを作りたいと思っていますが、廃業する前に常にくそったものを出荷する必要があります。

長い答え:状況によります。

チームの要件とスキルレベルは、どちらか一方を選択するか、両方を使用するか、まったく使用しないかの決定に影響を与える可能性があります。

締め切りが厳しくなると、生産性に焦点が当てられ、いじくり回す時間がほとんどなくなります。要件がサードパーティのコントロールの使用を制限している場合(主に生成されたマークアップとリソースのオーバーヘッドのため)、チームは必要なコンポーネントを考え出す責任があります。要件がサードパーティのコントロールの使用を制限しない場合、論理的な決定は、既存のコントロールをカスタマイズするよりも新しいコントロールを構築するのに時間がかかるため、既存のコントロールを使用することです。

期限が緩い場合は、実験に時間がかかり、既存のコントロールを使用する代わりに、コントロールを作成することを決定できます。これから経験を積むことができ、長期的にはチームにとって有益です。それでも、カスタムコントロールを構築する際に考慮すべきことが非常に多く、それらを使用しているアプリケーション全体よりも構築に時間がかかる可能性があるため、ほとんどの場合、サードパーティが選択されます。

サードパーティのコントロールは一般性を念頭に置いて構築されており、考えられるすべてのシナリオに適合するわけではないことに注意してください。したがって、利用可能な多数の構成オプションと固有の(そして明らかな)複雑さ。また、生成されたマークアップをある程度制御することはできますが、そのマークアップの一部が機能に不可欠であるため、100%を取得することはできません。

4
devnull