node.js 및 C #의 사용 사례


10

꽤 많은 ASP.NET 작업 (C #, MVC)을 수행하지만 대부분은 일반적인 웹 개발입니다. CRUD 리포지토리를 사용하여 편안한 아키텍처를 사용합니다. 내 고객의 대부분은 응용 프로그램 내에 많은 고급 요구 사항이 없습니다.

나는 지금 node.js를보고 있으며 성능에 영향을 미칩니다 (속도에 중독되어 있지만).

나는 궁금해

  • node.js는 C # 및 ASP.NET MVC의 일반적인 웹 개발을 사실적으로 대체 할 수 있습니다 (기존 앱을 다시 쓰지 않고 새로운 앱에서 작업 할 때)
  • node.js는 기존 아키텍처에 비동기 성을 추가하여 ASP.NET MVC 앱을 보완 할 수 있습니다.

C # 및 node.js에 대한 유스 케이스가 있습니까?

편집하다

ASP.NET MVC를 좋아하고 어디로 가고 있는지 매우 기쁘게 생각합니다. 선호하는 특별한 유스 케이스가 있는지 확인하려고합니다.


예, 루비 또는 PHP를 포함시킬 때 이것이 더 큰 대화가 될 수 있다는 것을 알고 있습니다. 그러나이 특정 질문에 대해서는 두 가지 중 하나에 관심이 없습니다 ... 그냥 나뿐입니다.
Chase Florell

대답은 노드를 시도하는 것입니다. 그것에 대해 읽어보십시오. 당신이 그것을 좋아하는지 확인하십시오.
Raynos

답변:


11

나는 지금 node.js를보고 있으며 성능에 영향을 미칩니다 (속도에 중독되어 있지만).

프로필, 프로필, 프로필. 이것이 스피드 업이 적절한 영향을 미치는지 알 수있는 유일한 방법입니다. 충분히 빠르다고 추측 할 수 있습니다 . 그러나 대부분의 사람들은 조기에 최적화하는 것을 좋아합니다. 데이트하는 동안 자신과 함께 노는 것보다 나쁩니다.

node.js가 C # 및 ASP.NET MVC의 일반적인 웹 개발을 완전히 대체 할 수 있는지, C # 및 ASP.NET MVC를 보완하는 것이 더 좋거나, "혼자서만 충분히 남겨 두어야 할 사항"이 있는지 궁금합니다. ".

C # 및 node.js에 대한 유스 케이스가 있습니까?

물론 C #으로 코드를 작성하는 상점에 있다면 MVC를 사용해야합니다 (WebForms보다 훨씬 우수하며 WebPages라고 함). 툴링 교육에 많은 시간을 허비하지 않으며 워크 플로에서 이미 처리해야 할 문제입니다.

위에 표시되지 않은 것은 각각을 선택하는 이유입니다. 현재 두 가지 현재 시장 옵션이 있습니다. 하나는 아직 알파 단계이고 다른 하나는 3 년 동안의 플랫폼 출시입니다. 현재 테스트 모델 전기 자동차를 이미 시장에 나와있는 혼다 하이브리드와 비교하고 싶지 않습니다. 그들은 두 개의 다른 리그에 있습니다.

명목상 C # 상점이라면 node.js에서 멀리 떨어져있는 이유가 여기 있습니다.

현재 비동기 이벤트 I / O에서 작업하지 않고 현재 절차 형식으로 작업하고 있습니다.

이것이 nodejs가 당신을 위해 할 일에 대한 반설입니다.

그러나 C #에서 비동기 코드를 자주 작성하고 이벤트 스타일로 많이 사용한다면 node.js를 강력히 고려해야합니다.

포기할 내용은 다음과 같습니다.

  • IIS-이것은 실제로 많은 사람들에게 중요합니다. 네이티브 A / D 통합과 같은 작업은 이미 수행되었으며 버그가 거의 없습니다. 실제로 node.js는 이제 IIS와 잘 통합됩니다.
  • Razor templating-심각한 C # MVC를 수행했다면 Razor를 사용하고 사랑하며 얼마나 빨리 물건을 휘젓을 수 있습니까? 노드에 비슷한 템플릿이 있으며 노드를 두드리지 않을 것이지만 전체 툴 체인은 이미 C #에 있으며 많은 노드가 현재 노드 세계에서 빌드되고 있습니다. NB :이 툴링의 많은 부분이 이제 성숙해졌습니다. _
  • dll의 컴파일 타임 빌드-node.js는 일반적으로 즉석에서 컴파일됩니다. 즉, 시작할 때 모든 경로를 확인하지는 않습니다. 아무도 손대지 않거나 확인하거나 테스트하지 않은 노드에 실제로 나쁜 코드가있을 수 있습니다.
  • 현재 VS에 내장 된 모든 도구는 매일 사용합니다 .Javascript에 대한 VS 지원은 많지 않습니다. 자바 스크립트의 모든 것이 너무 동적이기 때문에 부분적으로. NB : 마이크로 소프트는 분명히 자바 스크립트 도구 지원에 노력하고 있습니다 _

얻을 수있는 내용은 다음과 같습니다.

  • 서버 측뿐만 아니라 클라이언트 측 스크립팅을 수행한다고 가정하면 개발 한 모든 것이 동일한 언어로 작성됩니다. (또는 왜 서버에서 자바 스크립트를 고려할 것입니까)

따라서 노드를 완전히 여기에 버리고있는 것처럼 보이므로 노드가 집에서 내 플레이 언어라는 것을 지적하고 사랑하며 사람들이 때때로 스택 오버 플로우 채팅 서버에서 룸 디버깅을 도와줍니다 (642 방). 나는 그것이 미래에 위대하고 엄청난 잠재력을 가지고 있음을 본다.

난 그냥, 아기를 버리지 말고 왜 목욕물이 더러운 지 궁금합니다.

수년간의 경험을 포기하고 새로운 것을 시작해야하는 이유는 없습니다. 둘 다 나쁜 도구입니까? 전혀. 둘 다 훌륭하고 개발을 산들 바람으로 만듭니다.

노드가 C #을 대체 할 수 있습니까? 그렇습니다. PHP, Java 또는 Ruby도 가능합니다. 당신은 그것에 대해 묻지 않습니다.

C # 대신 node.js를 프로그래밍 할 준비가되었는지 확인하는 방법은 다음과 같습니다.

  • 다른 사람들이 이전에 C # 등에서 작성한 지루한 오래된 프로그램 대신 "자바 스크립트"를 얻는 데 도움이되는 책을 작성하려고합니다.
  • 동기식 (차단) I / O에 문제가있어 앱이 실제 작업을 수행하지 못하게합니다.
  • C #에서 기본 MVC 이외의 모든 라이브러리를 사용하지 않고 라우팅을 위해서만 사용하며 더 나은 라우팅 엔진을 사용할 수 있으며 금속에 가까운 모든 것을 가능한 한 코딩하고 있습니다.
  • 디자인하는 모든 데이터 개체는 강력한 형식의 개체 대신 해시로 표시됩니다.

1
내 조언은 node.js에 3 ~ 4 개의 복잡한 웹 사이트를 작성하십시오. 작게 시작한 다음 더 커집니다.
jcolebrand

1
저는 대학 / 대학에 없습니다. 나는 약 8 년 동안 솔로를 개발해 왔으며 나 자신을 위해 꽤 잘하고 있습니다. 다른 회사보다 혼자서 더 나은 $$$를 만들 수 있습니다.
Chase Florell

2
C #은 모든 코드 경로의 컴파일 시간 검사를 수행합니다. 나쁜 데이터가 날아갈 때까지 던져지지 않습니다. 노드는 코드가 잘못되어 빌드를 중단하지 않습니다. 또는 이전 버전을 사용하고 있었고 변경되었습니다.
jcolebrand

1
@Raynos : 면도기는 일부 타사 오픈 소스 프로젝트 아니다, 그것은 ASP.NET MVC 3의 공식 승인을 개발 - 바이 - 마이크로 소프트보기 엔진입니다
Carson63000

1
이 글을 쓰는 시점에서 IIS는 Node.js를 지원하지 않았지만 현재는 지원합니다.
jcolebrand

5

CRUD 저장소를 사용하여 편안한 아키텍처를 수행하는 경우 기존 애플리케이션을 node.js 로 이식 할 이유가 없습니다.

REST 및 CRUD를 수행하는 새 애플리케이션을 작성하는 경우 처음부터 node.js를 사용해야하는 이유가있을 수 있습니다.

실제로 응용 프로그램마다 다릅니다.

예를 들어 개인적으로 REST / CRUD 응용 프로그램을 node.js에 완전히 작성합니다. 개인 환경 설정이기 때문입니다. 노드는 개발하기에 훌륭합니다. ASP.NET MVC는 저에게 성가신 제한 프레임 워크였습니다.

평결 : 두 도구 모두 작업을 완료합니다. .NET 또는 노드를 선호하는 특정 요구 사항이 없으면 원하는 것을 사용하십시오. 즉 개인적인 취향입니다.

그러나 두 플랫폼의 obvouis 이점 중 일부를 나열 할 수 있습니다

ASP.NET

  • Windows / .NET 통합. Microsoft 스택을 밀접하게 결합하고 고도로 통합하려면 .NET을 원합니다.
  • 쉽게 이용할 수있는 인력
  • 손을 잡는 독점 프레임 워크
  • 즉시 사용 가능한 기능 세트가 있습니다. 이러한 기능에 만족하면 생산성이 향상됩니다. 대신 사용자 정의 기능을 원하면 도구와의 싸움에서 벗어나 생산성이 떨어집니다.

Node.js

  • 전체 웹 스택에 대한 단일 언어 (소파 / 몽고와 같이 "쿼리"에 js를 사용하는 noSQL 데이터베이스를 사용하는 경우)
  • socket.io 와 같은 도구를 사용하여 부드러운 실시간 웹 애플리케이션에 적합
  • 모든 서버가 다양한 유형의 원격 엔드 포인트와 통신하는 경우 네트워킹 접착제에 적합합니다.
  • 기본적으로 제공되는 최소한의 기능 만 제공합니다. 즉, 원하는대로 사용자 정의 된 방식으로 애플리케이션을 빌드 할 수 있습니다.
  • 하나의 일과 한 가지 일을 잘 수행하고 섞기 쉬운 작은 유닉스 스타일 도구 모음
  • npm : 올바른 패키지 관리
  • 풍부한 오픈 소스 커뮤니티

예, 기존 앱을 이식하려고하지 않습니다. 앞으로 나올 앱을 생각합니다.
체이스 플 로렐

5
@Raynos는 자신이 Node.js 전도자이며 MVC3 / 4 기반 웹 사이트를 구축하지 않았다는 면책 조항을 추가해야합니다. (이것이 답에 반영된다고 생각합니다).
Matt Esch
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.