Дмитрий Миндра, Lohika      WEB В РЕАЛЬНОМ ВРЕМЕНИ С      WINDOWS AZURE И NODE.JShttp://www.slideshare.net/dmytromindra   ...
Вы замечательные !                     @dmytromindra #msugodua
Для кого этот доклад?Вам нравитсяJavaScriptВы хотите чего-тонового!Вам нравится Web                    @dmytromindra #msug...
Мустафин ДмитрийRnD Team LeadMicrosoftTechnologies LabMember                   @dmytromindra #msugodua
Нечто        Великолепное ПО                    @dmytromindra #msugodua
Посторонись, пресловутый PHP! Долой Java!Старичок Perl, тебе так вообще давно пора на пенсию.И как же вы уже достали, попс...
МыЖдемПеремен !            @dmytromindra #msugodua
@dmytromindra #msugodua
&Node.js                 23 июня 2011          @dmytromindra #msugodua
HELLO WORLDvar http = require(http);http.createServer(function (req, res) {     res.writeHead(200, {Content-Type: text/pla...
ПОЧЕМУ NODE.JS?Цель Node.JS -      Event Drivenобеспечение                    Все асинхроннопростого способасоздания      ...
АСИНХРОННОСТЬПока выполняетсяоперация, которуюнадождать, Node.JSзанимаетсяполезным делом.                    @dmytromindra...
СЛАБЫЕ СТОРОНЫУ Node.JS есть      Плохо справляется сслабые стороны, о   тяжелыми вычислительнымикоторых надо        задач...
Спагетти код var fs = require(fs)   , path = require(path)   , file1 = "file1.txt“   , file2 = "file2.txt"; // Check if fi...
ХОРОШИЙ ИНСТРУМЕНТДля подходящейзадачи.Важно уметьотличитьподходящуюзадачу отнеподходящей.                 @dmytromindra #...
Есть ли у нас план?1.   Привет Node!2.   Web Проект3.   SPA4.   Windows Azure5.   Socket.IO                      @dmytromi...
Пора делатьПЕРВЫЕ ШАГИ              @dmytromindra #msugodua
Node Package Manager           Управляет установкой           модулей, например           npm install azure           npm ...
Разработка первогоWEB ПРИЛОЖЕНИЯ                     @dmytromindra #msugodua
Что в меню ?JavaScript везде. И   Express    (сервер)на сервере, и на      Jade       (сервер)клиенте. Некоторые    Mustac...
ПРОСТОЕ WEB ПРИЛОЖЕНИЕ          Постараемся построить простое          веб приложение при помощи          Express, Jade и ...
SPA* – приложение-страница             Приложение, состоящее из одной             веб страницы и обилия скриптов.         ...
Интеграция сWINDOWS AZURE               @dmytromindra #msugodua
ПРИСТУПАЕМ К РАБОТЕМы кратко расскажем как: создать новое Windows Azure Node.js приложение  используя инструменты Windows...
ЕСЛИ КОРОТКО, ТОВыполните командуnpm install azureВ файле «c:nodetasklistWebRole1Web.cloud.config» заменитетестовые данные...
СЕРВИС ТАБЛИЦСоздаем сервис:var tableService = azure.createTableService();Назначаем имя таблице:var myTableName = “MyTable...
ДОБАВЛЯЕМ ЗАПИСЬ В ТАБЛИЦУТаблица Azure является контейнером для любого объекта. “PK” являетсякомбинацией Partition и Row ...
ОБНОВЛЯЕМ ЗАПИСЬОбъявляем объект с обновленными данными:var myObjUpd = { PartitionKey:“MyPartition“, RowKey: “myRowKey", m...
ЗАПРАШИВАЕМ ЗАПИСЬОдиночный объект:tableService.queryEntity(myTableName, myPartition, myRowKey, OnEntityQueried);callback:...
КАК НАСЧЕТ BLOB?Все работает точно так же, как и в таблицах:    var azure = require(azure);    var blobService = azure.cre...
WEB в реальном времениSOCKET.IO               @dmytromindra #msugodua
WebSockets                                     Постоянное подключение к                                     серверу.      ...
Что такое SOCKET.IO?Больше, чем просто    Виды транспорта:WebSockets.           WebSocketИмеет                 Flash Soc...
Время действоватьНапишем              В нашем случае этимприложение, работа   приложением будет обменющее в реальном      ...
Подводим итогиВ ЗАКЛЮЧЕНИЕ                 @dmytromindra #msugodua
Мои аргументы: 1. JavaScript невероятно популярен. На рынке много    программистов. 2. JavaScript будет единым языком и на...
Внеклассное чтениеКак убедить босса?http://nodeguide.com/convincing_the_boss.htmlВыбор правильного стиляhttp://stackoverfl...
Это стоит попробовать!СПАСИБО !Dmytro.Mindra@gmail.com                          @dmytromindra #msugodua
Upcoming SlideShare
Loading in...5
×

Windows Azure and node js

1,970

Published on

Windows Azure and NodeJS by Dmytro Mindra

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,970
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Windows Azure and node js

  1. 1. Дмитрий Миндра, Lohika WEB В РЕАЛЬНОМ ВРЕМЕНИ С WINDOWS AZURE И NODE.JShttp://www.slideshare.net/dmytromindra @dmytromindra #msugodua
  2. 2. Вы замечательные ! @dmytromindra #msugodua
  3. 3. Для кого этот доклад?Вам нравитсяJavaScriptВы хотите чего-тонового!Вам нравится Web @dmytromindra #msugodua
  4. 4. Мустафин ДмитрийRnD Team LeadMicrosoftTechnologies LabMember @dmytromindra #msugodua
  5. 5. Нечто Великолепное ПО @dmytromindra #msugodua
  6. 6. Посторонись, пресловутый PHP! Долой Java!Старичок Perl, тебе так вообще давно пора на пенсию.И как же вы уже достали, попсовые Ruby и Python!(c) xakep http://www.xakep.ru/post/53583/ @dmytromindra #msugodua
  7. 7. МыЖдемПеремен ! @dmytromindra #msugodua
  8. 8. @dmytromindra #msugodua
  9. 9. &Node.js 23 июня 2011 @dmytromindra #msugodua
  10. 10. HELLO WORLDvar http = require(http);http.createServer(function (req, res) { res.writeHead(200, {Content-Type: text/plain}); res.end(Hello Worldn);}).listen(1337, "127.0.0.1");console.log(Server running at http://127.0.0.1:1337/); @dmytromindra #msugodua
  11. 11. ПОЧЕМУ NODE.JS?Цель Node.JS - Event Drivenобеспечение Все асинхроннопростого способасоздания Работает на Google V8масштабируемых Официально поддерживаетсясетевых программ. компанией Microsoft Хорошо параллелится (при работе с вводом/выводом) @dmytromindra #msugodua
  12. 12. АСИНХРОННОСТЬПока выполняетсяоперация, которуюнадождать, Node.JSзанимаетсяполезным делом. @dmytromindra #msugodua
  13. 13. СЛАБЫЕ СТОРОНЫУ Node.JS есть Плохо справляется сслабые стороны, о тяжелыми вычислительнымикоторых надо задачамипомнить. Использует только одно ядро процессора (есть утилита Cluster) @dmytromindra #msugodua
  14. 14. Спагетти код var fs = require(fs) , path = require(path) , file1 = "file1.txt“ , file2 = "file2.txt"; // Check if file1 exists, write to file2, // then display new file2 contents. path.exists(file1, function (exists) { if (!exists) throw new Error("No file!"); fs.readFile(file1, function (err, data) { if (err) throw err; fs.writeFile(file2, data, function (err) { if (err) throw err; fs.readFile(file2, function (err, data) { if (err) throw err; console.log(data.toString()); ... }); }); }); }); @dmytromindra #msugodua
  15. 15. ХОРОШИЙ ИНСТРУМЕНТДля подходящейзадачи.Важно уметьотличитьподходящуюзадачу отнеподходящей. @dmytromindra #msugodua
  16. 16. Есть ли у нас план?1. Привет Node!2. Web Проект3. SPA4. Windows Azure5. Socket.IO @dmytromindra #msugodua
  17. 17. Пора делатьПЕРВЫЕ ШАГИ @dmytromindra #msugodua
  18. 18. Node Package Manager Управляет установкой модулей, например npm install azure npm install –g express @dmytromindra #msugodua
  19. 19. Разработка первогоWEB ПРИЛОЖЕНИЯ @dmytromindra #msugodua
  20. 20. Что в меню ?JavaScript везде. И Express (сервер)на сервере, и на Jade (сервер)клиенте. Некоторые Mustache (сервер , клиент)библиотеки Sammy.js (клиент)используются jQuery (клиент)одновременно и насервере и наклиенте. @dmytromindra #msugodua
  21. 21. ПРОСТОЕ WEB ПРИЛОЖЕНИЕ Постараемся построить простое веб приложение при помощи Express, Jade и пары заготовок. @dmytromindra #msugodua
  22. 22. SPA* – приложение-страница Приложение, состоящее из одной веб страницы и обилия скриптов. Асинхронно общается с сервером. Не перегружается. *http://en.wikipedia.org/wiki/Single_Page_Application @dmytromindra #msugodua
  23. 23. Интеграция сWINDOWS AZURE @dmytromindra #msugodua
  24. 24. ПРИСТУПАЕМ К РАБОТЕМы кратко расскажем как: создать новое Windows Azure Node.js приложение используя инструменты Windows PowerShell запустить Node приложение локально, используя Windows Azure compute emulator опубликовать ваше приложение а Windows AzureДополнительная информация:https://www.windowsazure.com/en-us/develop/nodejs/tutorials/getting-started/https://www.windowsazure.com/en-us/develop/nodejs/tutorials/web-app-with-storage/ @dmytromindra #msugodua
  25. 25. ЕСЛИ КОРОТКО, ТОВыполните командуnpm install azureВ файле «c:nodetasklistWebRole1Web.cloud.config» заменитетестовые данные на данные вашей учетной записи Azure.Вы найдете много полезной информации в файле:«C:nodetasklistWebRole1node_modulesazureREADME.md»Создайте новую переменную в вашем JavaScript файле:var azure = require(azure);Все готово! Поехали ! @dmytromindra #msugodua
  26. 26. СЕРВИС ТАБЛИЦСоздаем сервис:var tableService = azure.createTableService();Назначаем имя таблице:var myTableName = “MyTable”;Создаем таблицу:tableService.createTableIfNotExists(myTableName, OnCreatedFunc);Где OnCreatedFunc является функцией, которая выполнится послесоздания таблицы (Callback)function OnCreatedFunc(errorObject, createdBoolFlag) {…}Больше информации по адресу:http://www.windowsazure.com/en-us/develop/nodejs/how-to-guides/table-services/ @dmytromindra #msugodua
  27. 27. ДОБАВЛЯЕМ ЗАПИСЬ В ТАБЛИЦУТаблица Azure является контейнером для любого объекта. “PK” являетсякомбинацией Partition и Row ключей.Объявляем объект:var myObj = { PartitionKey: “MyPartition“, RowKey: “myRowKey“, myProp1: “Dima+", myProp2: “Luba=“, myProp3: “Misha”};Добавляем объект в таблицу:tableService.insertEntity( myTableName, myObj, OnMyObjInserted);Где функция OnMyObjInserted является callback-омfunction OnMyObjInserted(error, serverEntity) {…} @dmytromindra #msugodua
  28. 28. ОБНОВЛЯЕМ ЗАПИСЬОбъявляем объект с обновленными данными:var myObjUpd = { PartitionKey:“MyPartition“, RowKey: “myRowKey", myProp1:“Dima+", myProp2: “Luba=”, myProp3: “Misha andMargo" };Обновляем существующую сущность:tableService.updateEntity(myTableName, myObjUpd, OnMyObjUpdated);Функция OnMyObjUpdated – это, как всегда, callback:function OnMyObjUpdated(error, serverEntity) {…}Подводный камень: вы должны заполнить все поля своегообъекта, либо воспользоваться объектом ServerEntity и изменитьтолько необходимые поля! @dmytromindra #msugodua
  29. 29. ЗАПРАШИВАЕМ ЗАПИСЬОдиночный объект:tableService.queryEntity(myTableName, myPartition, myRowKey, OnEntityQueried);callback:function OnEntityQueried(error, serverEntity) {…}Набор объектов:var query = azure.TableQuery.select().from(myTableName) .where(“PartitionKey eq ?”, “MyPartition”);tableService.queryEntities(query, OnEntitiesQueried);сallback:function OnEntitiesQueried(error, serverEntities) {…} @dmytromindra #msugodua
  30. 30. КАК НАСЧЕТ BLOB?Все работает точно так же, как и в таблицах: var azure = require(azure); var blobService = azure.createBlobService(); blobService.createContainerIfNotExists(…); blobService.createBlockBlobFromStream(…); blobService.listBlobs(…); blobService.getBlobToStream(…); blobService.deleteBlob(…);Подробнееhttp://www.windowsazure.com/en-us/develop/nodejs/how-to-guides/blob-storage/ @dmytromindra #msugodua
  31. 31. WEB в реальном времениSOCKET.IO @dmytromindra #msugodua
  32. 32. WebSockets Постоянное подключение к серверу. Часть стандарта HTML5 Предназначен для построения Real-Time приложений.http://tools.ietf.org/html/rfc6455 @dmytromindra #msugodua
  33. 33. Что такое SOCKET.IO?Больше, чем просто Виды транспорта:WebSockets. WebSocketИмеет Flash Socketальтернативные видытранспорта. AJAX long-polling AJAX multipart streamingПоставляется склиентской IFrameбиблиотектой. JSONP polling @dmytromindra #msugodua
  34. 34. Время действоватьНапишем В нашем случае этимприложение, работа приложением будет обменющее в реальном мгновенными сообщениями.времени. @dmytromindra #msugodua
  35. 35. Подводим итогиВ ЗАКЛЮЧЕНИЕ @dmytromindra #msugodua
  36. 36. Мои аргументы: 1. JavaScript невероятно популярен. На рынке много программистов. 2. JavaScript будет единым языком и на сервере и на клиенте. Никакого дублирования кода. 3. Асинхронная событийная модель. @dmytromindra #msugodua
  37. 37. Внеклассное чтениеКак убедить босса?http://nodeguide.com/convincing_the_boss.htmlВыбор правильного стиляhttp://stackoverflow.com/questions/5495984/coding-style-guide-for-node-js-appsЧто такое Node?http://stackoverflow.com/questions/1884724/what-is-node-js @dmytromindra #msugodua
  38. 38. Это стоит попробовать!СПАСИБО !Dmytro.Mindra@gmail.com @dmytromindra #msugodua
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×