From .NET to Node.js: путешествие туда и обратно
-
Upload
it61 -
Category
Technology
-
view
279 -
download
2
Transcript of From .NET to Node.js: путешествие туда и обратно
![Page 1: From .NET to Node.js: путешествие туда и обратно](https://reader033.fdocuments.net/reader033/viewer/2022051501/58a5ce3b1a28ab6c2a8b5c87/html5/thumbnails/1.jpg)
From .NET to Node.js,путешествие туда и обратно?
Виталий Слободин @vitalliumm
Backend Meetup 23.01.2015
![Page 2: From .NET to Node.js: путешествие туда и обратно](https://reader033.fdocuments.net/reader033/viewer/2022051501/58a5ce3b1a28ab6c2a8b5c87/html5/thumbnails/2.jpg)
Кто я?
• упоротый .NET разработчик • сижу на .NET больше 5 лет (не отпускает)
• Node.js - 1,5 года коммерческой разработки
![Page 3: From .NET to Node.js: путешествие туда и обратно](https://reader033.fdocuments.net/reader033/viewer/2022051501/58a5ce3b1a28ab6c2a8b5c87/html5/thumbnails/3.jpg)
Почему?
Зачем?
Убийца - садовник?
![Page 4: From .NET to Node.js: путешествие туда и обратно](https://reader033.fdocuments.net/reader033/viewer/2022051501/58a5ce3b1a28ab6c2a8b5c87/html5/thumbnails/4.jpg)
Трилогия
1. Нежданное
путешествие
2. Пустошь Смауга
3. Битва пяти воинств
![Page 5: From .NET to Node.js: путешествие туда и обратно](https://reader033.fdocuments.net/reader033/viewer/2022051501/58a5ce3b1a28ab6c2a8b5c87/html5/thumbnails/5.jpg)
Нежданное путешествие
![Page 6: From .NET to Node.js: путешествие туда и обратно](https://reader033.fdocuments.net/reader033/viewer/2022051501/58a5ce3b1a28ab6c2a8b5c87/html5/thumbnails/6.jpg)
Почему Node.js?• JavaScript
• скорость
• асинхронность
• одна кодовая база
• работает везде
• и другое
![Page 7: From .NET to Node.js: путешествие туда и обратно](https://reader033.fdocuments.net/reader033/viewer/2022051501/58a5ce3b1a28ab6c2a8b5c87/html5/thumbnails/7.jpg)
Асинхронность
![Page 8: From .NET to Node.js: путешествие туда и обратно](https://reader033.fdocuments.net/reader033/viewer/2022051501/58a5ce3b1a28ab6c2a8b5c87/html5/thumbnails/8.jpg)
Пустошь Смауга
![Page 9: From .NET to Node.js: путешествие туда и обратно](https://reader033.fdocuments.net/reader033/viewer/2022051501/58a5ce3b1a28ab6c2a8b5c87/html5/thumbnails/9.jpg)
.NET vs Node.jsIIS => Node.exe
C# / VB => JavaScript
NuGet => npm ASP.NET WebForm => Express + EJS
ASP.NET MVC => Express + Vash ASP.NET WebAPI => Express
SignalR => socket.io
![Page 10: From .NET to Node.js: путешествие туда и обратно](https://reader033.fdocuments.net/reader033/viewer/2022051501/58a5ce3b1a28ab6c2a8b5c87/html5/thumbnails/10.jpg)
Переключаемся…
npm init npm install express —save
npm install vash —save
express.js
![Page 11: From .NET to Node.js: путешествие туда и обратно](https://reader033.fdocuments.net/reader033/viewer/2022051501/58a5ce3b1a28ab6c2a8b5c87/html5/thumbnails/11.jpg)
package.json vs packages.config
package.json packages.config
![Page 12: From .NET to Node.js: путешествие туда и обратно](https://reader033.fdocuments.net/reader033/viewer/2022051501/58a5ce3b1a28ab6c2a8b5c87/html5/thumbnails/12.jpg)
vash (@razor)
![Page 13: From .NET to Node.js: путешествие туда и обратно](https://reader033.fdocuments.net/reader033/viewer/2022051501/58a5ce3b1a28ab6c2a8b5c87/html5/thumbnails/13.jpg)
middlewares?
![Page 14: From .NET to Node.js: путешествие туда и обратно](https://reader033.fdocuments.net/reader033/viewer/2022051501/58a5ce3b1a28ab6c2a8b5c87/html5/thumbnails/14.jpg)
middlewares!npm install body-parser —save
npm install compression —save
npm install cookie-parser —save
npm install express-mailer —save
npm install express-session —save
![Page 15: From .NET to Node.js: путешествие туда и обратно](https://reader033.fdocuments.net/reader033/viewer/2022051501/58a5ce3b1a28ab6c2a8b5c87/html5/thumbnails/15.jpg)
.NET vs Node.js
C# => NodeJs
F# => NodeJs
Python => NodeJs
TSQL => NodeJs
Powershell => NodeJs
![Page 16: From .NET to Node.js: путешествие туда и обратно](https://reader033.fdocuments.net/reader033/viewer/2022051501/58a5ce3b1a28ab6c2a8b5c87/html5/thumbnails/16.jpg)
Битва пяти воинств
![Page 17: From .NET to Node.js: путешествие туда и обратно](https://reader033.fdocuments.net/reader033/viewer/2022051501/58a5ce3b1a28ab6c2a8b5c87/html5/thumbnails/17.jpg)
Орки (ES5)• дублированные callback’и• вызов callback'а может потеряться по дороге• В обработчик emitter могут прийти несколько событий типа «error»• Callback'и — отстой• У вас могут быть ошибки вообще из других потоков
![Page 18: From .NET to Node.js: путешествие туда и обратно](https://reader033.fdocuments.net/reader033/viewer/2022051501/58a5ce3b1a28ab6c2a8b5c87/html5/thumbnails/18.jpg)
… урки (ES2015)• Если не поймать ошибку, то все полетит к чертям• Часто непонятно, как именно обрабатываются ошибки• Обработчики ошибок слишком многословны• Callback'и — отстой (╯°□°)╯︵ ┻━┻• библиотека может случайно запустить callback несколько раз, или
неправильно очистит обработчики
![Page 19: From .NET to Node.js: путешествие туда и обратно](https://reader033.fdocuments.net/reader033/viewer/2022051501/58a5ce3b1a28ab6c2a8b5c87/html5/thumbnails/19.jpg)
![Page 20: From .NET to Node.js: путешествие туда и обратно](https://reader033.fdocuments.net/reader033/viewer/2022051501/58a5ce3b1a28ab6c2a8b5c87/html5/thumbnails/20.jpg)
Отладка?
![Page 21: From .NET to Node.js: путешествие туда и обратно](https://reader033.fdocuments.net/reader033/viewer/2022051501/58a5ce3b1a28ab6c2a8b5c87/html5/thumbnails/21.jpg)
console.log• встроенный отладчик
• node-inspector
• http://www.joyent.com/developers/node/debug
• отладчики в IDE
![Page 22: From .NET to Node.js: путешествие туда и обратно](https://reader033.fdocuments.net/reader033/viewer/2022051501/58a5ce3b1a28ab6c2a8b5c87/html5/thumbnails/22.jpg)
Do not disturb… Debugging is in progress…
![Page 23: From .NET to Node.js: путешествие туда и обратно](https://reader033.fdocuments.net/reader033/viewer/2022051501/58a5ce3b1a28ab6c2a8b5c87/html5/thumbnails/23.jpg)
JavaScript
Мы в дерьме
![Page 24: From .NET to Node.js: путешествие туда и обратно](https://reader033.fdocuments.net/reader033/viewer/2022051501/58a5ce3b1a28ab6c2a8b5c87/html5/thumbnails/24.jpg)
TypeScript FTW!
![Page 25: From .NET to Node.js: путешествие туда и обратно](https://reader033.fdocuments.net/reader033/viewer/2022051501/58a5ce3b1a28ab6c2a8b5c87/html5/thumbnails/25.jpg)
JavaScript vs TypeScript
![Page 26: From .NET to Node.js: путешествие туда и обратно](https://reader033.fdocuments.net/reader033/viewer/2022051501/58a5ce3b1a28ab6c2a8b5c87/html5/thumbnails/26.jpg)
JavaScript vs TypeScript
![Page 27: From .NET to Node.js: путешествие туда и обратно](https://reader033.fdocuments.net/reader033/viewer/2022051501/58a5ce3b1a28ab6c2a8b5c87/html5/thumbnails/27.jpg)
TypeScript
![Page 28: From .NET to Node.js: путешествие туда и обратно](https://reader033.fdocuments.net/reader033/viewer/2022051501/58a5ce3b1a28ab6c2a8b5c87/html5/thumbnails/28.jpg)
TypeScript• Аннотации типов • проверка на этапе редактирования • классы • интерфейсы • “миксины” • параметры по умолчанию • шаблоны • модули • и другое
![Page 29: From .NET to Node.js: путешествие туда и обратно](https://reader033.fdocuments.net/reader033/viewer/2022051501/58a5ce3b1a28ab6c2a8b5c87/html5/thumbnails/29.jpg)
![Page 30: From .NET to Node.js: путешествие туда и обратно](https://reader033.fdocuments.net/reader033/viewer/2022051501/58a5ce3b1a28ab6c2a8b5c87/html5/thumbnails/30.jpg)
Завершаем приключение
![Page 31: From .NET to Node.js: путешествие туда и обратно](https://reader033.fdocuments.net/reader033/viewer/2022051501/58a5ce3b1a28ab6c2a8b5c87/html5/thumbnails/31.jpg)
Q&A
![Page 32: From .NET to Node.js: путешествие туда и обратно](https://reader033.fdocuments.net/reader033/viewer/2022051501/58a5ce3b1a28ab6c2a8b5c87/html5/thumbnails/32.jpg)
Спасибо!
![Page 33: From .NET to Node.js: путешествие туда и обратно](https://reader033.fdocuments.net/reader033/viewer/2022051501/58a5ce3b1a28ab6c2a8b5c87/html5/thumbnails/33.jpg)
Какменя найти:
http://vk.com/vitallium @vitaliumm
http://github.com/vitallium
http://it61.herokuapp.com
А также в нашемуютном Slack чате: