8

私はウェブメソッドに精通しています。ここで、Web メソッドの代わりに Web API を使用するよう提案を受けました。私は ASP.NET Web API のデモを行いました。これは、従来の asp.net Web 開発を使用しているMVC アーキテクチャにより近いものです。古典的な開発でコントローラー(MVCの概念) を台無しにするのは好きではありません。

私のウェブ方法:

[WebMethod]
public static string GetName(int id)
{
    return "testName";
}

私の Web API コントローラー:

public class MyController : ApiController
{
[HttpGet]
public string GetName(int id)
{
    return "testName";
}
}

この問題について本当に混乱しています。誰でも同じことについてより良い考えを持っています。

より良い選択肢である同じことについてのあなたの提案は何ですか?

両方が同じコードを持っている場合、どうすれば比較できますか?

4

2 に答える 2

15

従来の ASP.NET WebServices ( WebMethodと呼ばれるもの) は非推奨のテクノロジです。活発な開発はもはやありません。ASP.NET Web API は、Microsoft の Web スタックを完全に書き直したものであり、RESTful Web サービスの作成をより細かく制御できます。これは、どちらかを選択する必要があるという意味ではありません。もありServiceStackます。新しいプロジェクトを開始する場合は、従来の Web サービスには近づかないようにしてください。それらがまだ .NET フレームワークに存在する場合、それはレガシ コードとの互換性のためです。

于 2013-06-05T06:08:43.470 に答える
3

Darin の回答を補完するために、ApiController からメソッドをテストする場合は、DI コンテナー ( http://www.asp.net/web-api/overview/extensibility/using-the-web-api ) を使用してオブジェクトの依存関係を注入できます。 -依存関係リゾルバー)。依存性注入は自動的に行われます。

ただし、webmethods では、webmethods はstaticでなければならないため、そのように DI を使用することはできません。どうしても DI を使用する場合は、コンテナーをインスタンス化して各 webmethod で直接呼び出し、依存関係を機能させる必要があります。

于 2013-07-11T14:09:40.990 に答える