Mihai tataran developing modern web applications

553 views

Published on

Modern web applications: HTML5, KnockoutJS, Web Sockets, socket.IO, NodeJS

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
553
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Mihai tataran developing modern web applications

  1. 1. Developing modern web applications HTML 5, MVVM, Web Sockets Mihai Tătăran Microsoft MVP | Windows Azure, Azure Insider General Manager, Avaelgo Mihai.tataran@avaelgo.ro Twitter: mihai_tataran
  2. 2. About me• Owner, General Manager – Avaelgo, Timişoara – Custom software development – Consulting / training – Microsoft Cloud SME of the Month in Europe – Case study about a solution on Azure - Microsoft .com website• Microsoft MVP on Azure; Azure Insider, Certified Professional• Speaker / staff at major events: ITCamp, DevReach, TechEd• .NET community: www.codecamp.ro http://itcamp.ro
  3. 3. Objectives• Modern Web Apps• New web servers
  4. 4. I. Modern web apps
  5. 5. Fast, single page, non-blocking, many concurrent users
  6. 6. Javascript codeSmart communication protocols Scalable and fast web servers
  7. 7. Knockoutjs• MVVM pattern• Two way data-binding• What Ajax 4.0 tried to be some years ago• Or jQuery UI Client Templates• Library available in NuGet
  8. 8. Spaghetti code -> Ravioli code
  9. 9. Client-server communication today(*)• Ajax• Polling• Long polling (xhr-polling)• Flash• All based on HTTP / proprietary (*) maybe…
  10. 10. Web SocketsFull duplexPersistent connection over TCP
  11. 11. Socket.ioWebSockets or fallbackWebSocketAdobe® Flash® SocketAJAX long pollingAJAX multipart streamingForever IframeJSONP Polling
  12. 12. DEMO 1:knockoutjs, socket.io, node, nodeand azure
  13. 13. II. New web servers
  14. 14. What we do on web servers?
  15. 15. Get files (HDD I/O)Call databases Wait for a web serviceGet data from cache
  16. 16. I/O
  17. 17. I/O latency• L1: 3 cycles• L2: 14 cycles• RAM: 250 cycles• DISK: 41,000,000 cycles• NETWORK: 240,000,000 cycles
  18. 18. Traditional web servers (Apache, IIS) Multithreading 1 thread per connection (request)
  19. 19. var result = db.query("select..");// use result VSdb.query("select..", function (result) {// use result});
  20. 20. Shift• Cultural Bias – We learn programming by executing code instruction after instruction – Async / anonymous calls – too complicated – Is GOTO telling you anything?
  21. 21. Shift• Infrastructure – non-blocking I/O is not very present in traditional frameworks / libraries – Async file not available in POSIX – Some Database access frameworks / libraries don’t implement async patterns
  22. 22. Event-based, callbacks, non blocking I/O web servers (node.js) Massive scale
  23. 23. DEMO 2: node performance
  24. 24. Resources• http://knockoutjs.com/• http://datatracker.ietf.org/doc/rfc6455/?inclu de_text=1• http://socket.io/• http://nodejs.org/
  25. 25. Q&A
  26. 26. Windows 8 Dev Camp9:15-9:30 Sosirea participanților9:30-10:20 Whats new in Windows 8? Tudor Damian10:30-11:20 Developing modern web applications: HTML 5, MVVM, Web Sockets Mihai Tătăran11:30-12:20 Designing Windows 8 Apps with Blend and PowerPoint Storyboards Lorant Domokos12:20-13:00 Pauza de masa13:00-14:20 Building and testing Windows 8 Metro Style Applications using C++,C# and JavaScript Radu Vunvulea14:30-15:10 Integrating the Windows 8 Experience with Contracts Tiberiu Covaci

×