node.jsおよびc#の使用例


10

私はかなりのASP.NET作業(C#、MVC)を行っていますが、そのほとんどは典型的なWeb開発です。CRUDリポジトリーを使用してRestfulアーキテクチャーを実行します。私のクライアントのほとんどは、アプリケーション内に高度な要件をあまり持っていません。

私は現在node.jsを見ていて、パフォーマンスへの影響(私はスピードに夢中になっています)ですが、それほど深く掘り下げていません。

かしら

  • node.jsは、C#およびASP.NET MVCでの私の典型的なWeb開発を現実的に置き換えることができます(既存のアプリを書き換えるのではなく、新しいアプリで作業する場合)
  • node.jsは、既存のアーキテクチャに非同期機能を追加することで、ASP.NET MVCアプリを補完できます。

C#およびnode.jsのユースケースはありますか?

編集する

私はASP.NET MVCが大好きで、どこに行くのかとても興奮しています。を支持する特別なユースケースがあるかどうかを確認しようとしています


はい、私はこれがRubyまたはPHPを含めるとより大きな会話になる可能性があることを理解していますが、この特定の質問については、どちらにも興味がありません...それは私だけです。
チェイスフローレル

答えは、ノードを試すことです。それについて読んでください。あなたがそれが好きかどうかを確認してください。
Raynos、2011

回答:


11

私は現在node.jsを見ていて、パフォーマンスへの影響(私はスピードに夢中になっています)ですが、それほど深く掘り下げていません。

プロファイル、プロファイル、プロファイル。それはあなたのスピードアップが適切な影響を持っていることを知る唯一の方法です。あなたはそれが十分に速いと推測することができます。しかし、ほとんどの人は時期尚早に最適化することを好みます。それはデート中に自分で遊ぶよりも悪いです。

node.jsがC#とASP.NET MVCでの私の典型的なWeb開発を完全に置き換えることができるのか、C#とASP.NET MVCを補完するものとして優れているのか、または「十分に単独で残す」必要があるものがあるのか​​と思います。 」

C#およびnode.jsのユースケースはありますか?

もちろん、日常的にC#でコードを書く店にいる場合は、MVCを使用する必要があります(WebFormsよりもはるかに優れており、WebPagesと呼ばれます)。ツールのトレーニングに多くの時間を費やさず、ワークフローですでに処理されているはずです。

上記に示されていないように見えるのは、それぞれを選択する理由です。2つの現在の市場オプションを与えました。1つはまだアルファ段階で、もう1つはプラットフォームリリースの3年目です。現在のテストモデルの電気自動車を、すでに市場に出ているホンダハイブリッドと比較したくありません。彼らは2つの異なるリーグに属しています。

ここで、名目上C#ショップである場合に、node.jsに近づかない理由を説明します。

現在、非同期イベントI / Oで作業しておらず、現在手続き型フォーマットで作業しています。

これは、nodejsが何をするかとは正反対です。

ただし、C#で非同期コードを頻繁に作成し、イベントスタイルで頻繁に使用する場合は、はい、node.jsを強く検討してください。

ここにあなたが放棄するものがあります:

  • IIS-これは実際には多くの人にとって重要です。ネイティブA / D統合などはすでに行われており、バグはほとんどありません。実際、node.jsはIISとうまく統合されています。
  • Razorテンプレート-深刻なC#MVCを実行したことがある場合、Razorを使用しており、Razorを愛しています。ノードには同様のテンプレートがあり、私は確かにノードをノックしていませんが、ツールチェーン全体はすでにC#に存在しており、その多くは現在ノードの世界で構築されています。注意:このツールの多くはかなり成熟しています _
  • dllのコンパイル時の構築-node.jsは通常、オンザフライでコンパイルされます。つまり、起動時にすべてのパスがチェックされるわけではありません。誰も触れたり、チェックしたり、テストしたりしない非常に悪いコードをノードに置くことは完全に可能です。
  • 毎日使用するVSに現在組み込まれているすべてのツール-JavaScriptに対するVSのサポートはそれほど多くありません。JavaScriptのすべてが非常に動的であるという理由もあります。注意:マイクロソフトは明らかにJavaScriptのツールサポートに取り組んでいます _

これはあなたが得るものです:

  • クライアントサイドスクリプトとサーバーサイドの両方を実行する場合、開発するものはすべて同じ言語になります。(またはサーバーでjavascriptを検討する理由)

したがって、ここではNodeを完全にbashしているように見えるので、自宅でのノードは私のプレイ言語であることを指摘しておきます。私はそれが大好きで、stackoverflowチャットサーバー(部屋642)で時々デバッグする手助けをしています。将来的には途方もない可能性があると思います。

赤ちゃんを捨てないで、なぜ風呂の水が汚れているのか不思議に思います。

長年の経験をあきらめて、何か新しいことに取り掛かるべき理由を述べていません。どちらが悪いツールですか?どういたしまして。どちらも素晴らしく、開発も簡単です。

ノードはC#を置き換えることができますか?はい、確かに。PHPやJava、Rubyも同様です。あなたはそれらについて尋ねていません。

C#の代わりにnode.jsをプログラムする準備ができたことを確認する方法は次のとおりです。

  • C#などで以前に作成した退屈な古いプログラムの代わりに、他の人々が「JavaScriptを入手する」のに役立つ本を書くことを検討しています。
  • 同期(ブロッキング)I / Oでアプリが実際の作業を停止する問題が発生しています。
  • デフォルトのMVC以外のC#のライブラリを使用しておらず、それをルーティングのためだけに使用していて、より優れたルーティングエンジンを実行できることを確信しており、できる限り金属に近いものすべてをコーディングしています。
  • 設計するすべてのデータオブジェクトは、強く型付けされたオブジェクトではなく、ハッシュとして表示されます。

1
私のアドバイスは、node.jsで3つまたは4つの複雑なWebサイトを作成することです。小さく始めてから大きくします。
jcolebrand 2011

1
私は大学ではありません。私は約8年間ソロを開発しており、私自身も非常にうまくやっています。他の会社よりも自分で$$$を稼ぐことができます。
Chase Florell、2011

2
C#は、すべてのコードパスのコンパイル時チェックを行います。悪いデータが爆破するまで投げません。悪いコードのためにノードはビルドを停止しません。または、古いバージョンを使用していて、それが変更されました。
jcolebrand 2011

1
@Raynos:Razorはサードパーティのオープンソースプロジェクトではありません
。ASP.NETMVC

1
この記事の執筆時点では、Node.jsはIISではサポートされていませんでしたが、現在はサポートされています。
jcolebrand

5

CRUDリポジトリーを使用して安静なアーキテクチャーを実行しているだけの場合、既存のアプリケーションをnode.js に移植する理由はありません。

RESTとCRUDを実行する新しいアプリケーションを作成する場合は、最初からnode.jsを使用することをお勧めします。

実際にはアプリケーションごとに異なります。

たとえば、個人的にはREST / CRUDアプリケーションを完全にnode.jsで記述します。Nodeは開発に最適です。ASP.NETMVCは私にとって煩わしい制限的なフレームワークでした。

評決:両方のツールが仕事を完了します。.NETまたはノードを支持する特定の要件がない場合は、必要なものを使用してください。つまり、それは個人的な好みです。

ただし、両方のプラットフォームの明らかな利点をいくつか挙げることができます。

ASP.NET

  • Windows / .NET統合。Microsoftスタックを密結合して高度に統合する場合は、.NETが必要です。
  • すぐに利用できる労働力
  • 手を握るモノロシックフレームワーク
  • すぐに使用できる一連の機能があります。これらの機能に満足すれば、生産性が向上します。代わりにカスタム機能が必要な場合は、最終的にはツールとの戦いになり、生産性が低下します。

Node.js

  • Webスタック全体の単一言語(couch / mongoのような「クエリ」にjsを使用するnoSQLデータベースを使用している場合)。
  • socket.ioなどのツールを使用したソフトリアルタイムWebアプリケーションに最適
  • サーバーがすべての種類の異なるn個のリモートエンドポイントと通信する場合、ネットワークの接着剤として最適です。
  • 箱から出して必要最小限の機能のみを提供します。これは、高度にカスタマイズされた方法でアプリケーションを構築できることを意味します。
  • 簡単に組み合わせることができる、1つのことと1つのことをうまく行う小さなUNIXスタイルツールのコレクション
  • npm:正しく行われたパッケージ管理
  • 豊富なオープンソースコミュニティ

はい、既存のアプリの移植を検討していません。将来登場するアプリについて考えてみましょう。
チェイスフローレル

5
@Raynosは、彼がNode.jsエバンジェリストであり、MVC3 / 4に基づいたWebサイトを構築したことはないという免責事項を追加する必要があります。(これは答えに反映されていると思います)。
Matt Esch、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.