꽤 많은 ASP.NET 작업 (C #, MVC)을 수행하지만 대부분은 일반적인 웹 개발입니다. CRUD 리포지토리를 사용하여 편안한 아키텍처를 사용합니다. 내 고객의 대부분은 응용 프로그램 내에 많은 고급 요구 사항이 없습니다.
나는 지금 node.js를보고 있으며 성능에 영향을 미칩니다 (속도에 중독되어 있지만).
나는 궁금해
- node.js는 C # 및 ASP.NET MVC의 일반적인 웹 개발을 사실적으로 대체 할 수 있습니다 (기존 앱을 다시 쓰지 않고 새로운 앱에서 작업 할 때)
- node.js는 기존 아키텍처에 비동기 성을 추가하여 ASP.NET MVC 앱을 보완 할 수 있습니다.
C # 및 node.js에 대한 유스 케이스가 있습니까?
편집하다
ASP.NET MVC를 좋아하고 어디로 가고 있는지 매우 기쁘게 생각합니다. node.js를 선호하는 특별한 유스 케이스가 있는지 확인하려고합니다.
답변
나는 지금 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 이외의 모든 라이브러리를 사용하지 않고 라우팅을 위해서만 사용하며 더 나은 라우팅 엔진을 사용할 수 있으며 금속에 가까운 모든 것을 가능한 한 코딩하고 있습니다.
- 디자인하는 모든 데이터 개체는 강력한 형식의 개체 대신 해시로 표시됩니다.
답변
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 : 올바른 패키지 관리
- 풍부한 오픈 소스 커뮤니티