Випади використання для 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

Відповідь - спробуйте вузол. Прочитайте про це. Подивіться, чи подобається вам.
Райнос

Відповіді:


11

Зараз я дивлюся на node.js і на його наслідки для продуктивності (я захоплююсь швидкістю), але я не дуже багато вникав у це.

Профіль, профіль, профіль. Це єдиний спосіб знати, що ваші скорочення справляють належний вплив. Ви можете здогадатися, що це досить швидко. Але більшість людей люблять передчасно оптимізувати. Це гірше, ніж грати із собою під час побачення.

Мені цікаво, чи node.js може повністю замінити мою типову розробку веб-сторінок у C # та ASP.NET MVC, якщо це краще як доповнення до C # та ASP.NET MVC, чи є якісь речі, які повинні просто «залишити достатньо добре в спокої ".

Чи є випадки використання для / проти C # та node.js?

Звичайно, якщо ви знаходитесь в магазині, який регулярно пише код на C #, тоді вам слід використовувати MVC (це набагато краще, ніж WebForms, і називається WebPages). Ви не будете втрачати багато часу на підготовку з інструментарію, і це те, з чим уже мають працювати ваші робочі процеси.

Те, що ви, здається, не вказуєте вище, - це причини вибору кожного. Ви дали два поточні ринкові варіанти, один на етапі Alpha, а другий на третьому році випуску платформи. Я б не хотів порівнювати поточну модель тестування електромобілів з гібридами Honda, які вже виходять на ринок. Вони в двох різних лігах.

Тепер ось вам причина, щоб не триматися подалі від node.js, якщо ви номінально є магазином C #.

Наразі ви не працюєте в асинхронному парному введення-виводу, зараз працюєте в процедурному форматі.

Це антитеза до того, що nodejs збирається зробити для вас.

Однак якщо ви часто пишете код асинхронізації в C #, і ви багато використовуєте його в стильному стилі, то так, node.js для вас серйозно розглядає.

Ось що ви відмовитеся:

  • IIS - Це насправді важливо для багатьох людей. Такі речі, як рідна інтеграція A / D, вже зроблені, і досить непоправні. Насправді node.js тепер добре інтегрується з IIS.
  • Шаблонні бритви - якщо ви зробили будь-який серйозний C # MVC, ви використовуєте та любите Бритву та як швидко ви можете виправити речі. У вузлі є схожі шаблони, і я, звичайно, не збиваю вузол, але весь ланцюжок інструментів вже присутній у C #, і багато його наразі будується у світі вузлів. Примітка: багато цього інструментарію зараз досить зріле _
  • збирання dlls за часом компіляції - node.js зазвичай збирається на ходу, тобто не всі шляхи перевіряються при запуску. Цілком можливо мати дійсно поганий код у вузлі, до якого ніхто ніколи не торкається, перевіряє чи не перевіряє.
  • Всі інструменти, в даний час вбудовані у VS, якими ви користуєтесь щодня - Просто не так багато підтримки VS для JavaScript. Почасти тому, що все в JavaScript настільки динамічно. NB: Microsoft, очевидно, працює над підтримкою інструментарію для JavaScript _

Ось що ви отримаєте:

  • все, що ви розробляєте, буде на тій же мові, якщо припускати, що ви робите сценарії на стороні клієнта, а також на стороні сервера. (або чому ви навіть розглядаєте javascript на сервері)

Отже, оскільки я, здається, цілком б'є тут Вузол, дозвольте мені зазначити, що вузол - це моя грана мова вдома, я люблю це, і я допомагаю людям налагоджувати його іноді на серверах чатів stackoverflow (кімната 642). Я бачу, що він має великий та надзвичайний потенціал у майбутньому.

Я просто кажу, не кидайте дитину і дивуйтеся, чому ванна вода брудна.

Ви не дали причини, чому вам слід відмовитися від багаторічного досвіду і почати щось нове. Чи це погані інструменти? Зовсім ні. Обидва чудові і роблять розвиток вітер.

Чи може вузол замінити C #? Так, цілком точно. Так може бути PHP або Java або Ruby. Ви про це не питаєте.

Ось як ви знаєте, коли ви готові запрограмувати node.js замість C #:

  • Ви розглядаєте можливість написання книги, щоб допомогти іншим "отримати javascript" замість нудних старих програм, які вони писали раніше в C # і т.д.
  • У вас виникли проблеми із синхронним (блокуванням) вводу / виводу, що зупиняє ваші програми на практичній роботі.
  • Ви не використовуєте жодних бібліотек в C #, крім MVC за замовчуванням, і лише для маршрутизації, і ви впевнені, що можете зробити кращий механізм маршрутизації, і ви кодуєте все як можна ближче до металу.
  • Кожен об’єкт даних, який ви проектуєте, бачите як хеш замість сильно набраного об’єкта.

1
Моя порада, ідіть, напишіть три або чотири складні веб-сайти в node.js. Починайте з малого, потім станьте більшим.
jcolebrand

1
Я не в коледжі / університеті. Я займаюся розробкою соло вже близько 8 років і непогано себе роблю. Я можу самостійно заробляти $$$, ніж в іншій компанії.
Чейз Флорелл

2
C # компілює перевірку часу всіх шляхів коду. Він не кине, поки погані дані не підірвуть його. Вузол не зупинить збірку лише через поганий код. Або я використовував стару версію, і це змінилося.
jcolebrand

1
@Raynos: Razor не є стороннім проектом з відкритим кодом, це офіційно схвалений розроблений системою Microsoft погляд для ASP.NET MVC 3
Carson63000

1
На момент написання цього запису Node.js не підтримувався IIS, проте зараз.
jcolebrand

5

Якщо ваші просто роблять заспокійливу архітектуру , використовуючи CRUD репозиторіїв немає ніяких підстав для порту наявної програми для Node.js.

Якщо ви пишете нову програму, яка працює з REST та CRUD, можуть бути вагомі причини використовувати node.js з самого початку.

Це дійсно залежно від програми.

Наприклад, особисто я писав би програми REST / CRUD повністю в node.js, оскільки це особисті переваги. Вузол чудово розвивається в, ASP.NET MVC був для мене дратівливим обмежувальним середовищем.

Вердикт: Обидва інструменти виконують роботу. Якщо немає конкретних вимог, які б сприяли .NET або вузлу, тоді використовуйте все, що завгодно. тобто це особисті переваги.

Однак я можу перерахувати деякі переваги обох платформ

ASP.NET

  • Інтеграція Windows / .NET Якщо ви хочете, щоб ваш стек мікрософт був щільно з'єднаний і сильно інтегрований, тоді ви хочете .NET
  • легкодоступна робоча сила
  • Монолотичні рамки, які тримають вашу руку
  • Має набір функцій, які працюють поза коробкою. Якщо ви задоволені цими можливостями, це підвищує продуктивність. Якщо ви хочете користувальницькі функції замість цього, ви закінчуєте боротьбу з інструментом і знижуєте продуктивність.

Node.js

  • Єдина мова для всього веб-стека (якщо ви використовуєте бази даних noSQL, які використовують js для своїх "запитів", як couch / mongo).
  • Відмінно підходить для м'яких веб-додатків у режимі реального часу з використанням таких інструментів, як socket.io
  • Відмінно підходить для мережевого клею, коли все, що працює на вашому сервері, - це спілкування з n віддаленими кінцевими точками різних типів.
  • Тільки надає вам мінімум особливостей поза коробкою. Це означає, що ви можете створити свою програму в потрібному порядку.
  • Колекція невеликих інструментів у стилі Unix, які добре спрацьовують одне і одне, які легко змішувати та поєднувати
  • npm : управління пакетом зроблено правильно
  • багата спільнота з відкритим кодом

Так, не шукаю порту існуючих додатків. Думаючи про додатки, які з’являться в майбутньому.
Чейз Флорелл

5
@Raynos повинен додати застереження, що він є євангелістом Node.js і ніколи не створював веб-сайт на базі MVC3 / 4. (Я думаю, це відображається у відповіді).
Метт Еш
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.