AJAX
Я думаю, що ваше запитання зводиться до "Чи повинен мій веб-додаток генерувати HTML на стороні клієнта чи на сервері?" Клієнтська генерація спілкується з сервером за допомогою AJAX, хоча X (XML), як правило, замінено JSON, але більшість людей все ще називають його AJAX, оскільки це звучить краще. На стороні сервера, сервер просто робить HTML на сервері.
Я маю великий досвід роботи з XML і майже жодного з JSON. Все, що я знаю про XML, змушує мене запропонувати використовувати JSON, якщо це можливо.
Плюси AJAX:
- Надсилайте менше даних через HTTP (S), щоб вони могли працювати швидше.
- Сервер по суті є веб-сервісом, щоб інші люди (або ви) могли писати власних клієнтів. Це може допомогти при створенні мобільної версії вашого сайту. Крім того, багато винаходів стають популярними з тих причин, які їхній творець ніколи не збирався. Послуги зручніші для людей, які знаходять нове використання для вашого коду.
- Схоже, новіший додаток
Мінуси AJAX:
- Налагодження JavaScript
- Складність?
- Речі, які ви можете робити з JavaScript, часто неможливо використовувати незрячим або інвалідам.
- Може знадобитися більше загального коду (більший загальний обсяг пам’яті на вбудованому пристрої)
Клієнт / сервер
Усі веб-додатки використовують архітектуру клієнт-сервер. Протокол HTTP змушує веб-додатки вести себе таким чином. AJAX використовує обхід для обмеження дизайну, але основна модель HTTP все ще залишається клієнт-сервером. Я б не зациклювався на всій справі про найкращий спосіб застосувати MVC до веб-додатків. Якщо вам доведеться робити MVC з політичних причин, подивіться, як це робить Ruby / Rails. Насправді, Rails - це чудова архітектура для копіювання (або використання).
Сервіс проти додатка.
Хороший сервіс майже завжди кращий, ніж додаток. Але зробити хороший сервіс важко! Можливо, вам потрібно буде зробити заявку, перш ніж ви зможете написати достатньо розроблену специфікацію для послуги. Не робіть свою роботу складнішою, ніж це має бути. Для версії 1 зосередьтеся на тому, щоб зробити чудову програму. Доки ваша програма не буде відносно стабільною і ви впевнені, що вона відповідає вимогам вашого користувача, надання послуги, ймовірно, не принесе вам користі. Занадто рано спроектувати неправильну службу - це марна трата часу, яка не втрачає часу, коли ви намагаєтеся виправити сервісний інтерфейс, і вирішуйте масштабну рефакторинг як серверного, так і клієнтського коду, який буде наступним.
C / Web
Ого. Я працював у C і Assembly 3 роки, перш ніж перейти до веб-розробки. Я не можу придумати гіршу мову для написання веб-програми - особливо з точки зору безпеки. Перевірка вводу та вихід виходу настільки критичні ... SANS випускає список найпоширеніших помилок щороку. Переповнення буфера, ін'єкції, проблеми між веб-сайтами (неправильне кодування виводу) ... Усі ці помилки дійсно легко зробити в C або збірці. Принаймні така мова, як Java, має String, який не захищений від переповнення, та механізм обробки винятків, який, як правило, запобігає поодинці помилок від доступу шкідливого коду до системної пам'яті. Не кажучи вже про обробку міжнародних наборів символів (використовуйте UTF-8, коли це можливо).
Якщо вам потрібно використовувати C з міркувань пам'яті або вбудованого програмного забезпечення, то це вам потрібно зробити. Тільки будьте обережні!
Підтримка браузера
Першим кроком до створення веб-програми є виявлення, які браузери будуть використовуватися вашими клієнтами? W3Schools і Wikipedia - хороші джерела загальної статистики, але YMMV.
Там, де я зараз працюю, ми підтверджуємо, що наша програма створює лише дійсний XHTML 1.0 перехідний HTML. Ми також використовуємо специфічний Doctype та форматування, необхідні для уникнення режиму Quirks в IE, що полегшує запис HTML-браузера (див. Поради в моєму блозі ). Ми тестуємо на останніх 3 версіях IE, плюс Firefox та Chrome для Windows та Linux (Safari використовує той же механізм візуалізації, що і Chrome). Завдяки цій валідації та тестуванню наш додаток працює майже скрізь (Windows, Mac, Linux, iPhone, Android тощо), крім BlackBerry.
У BlackBerry ніколи не було справжнього браузера з JavaScript, тому ми не підтримуємо його. Користувачі BlackBerry звикли не мати справжнього веб-браузера, тому вони не скаржаться. Може, це змінюється? Я б спробував поцікавитись у кількох клієнтів, якими браузерами вони користуються, і обов'язково перевіряйте їх.
Підсумок
Всі веб-сайти побудовані на HTML та HTTP. Майте під рукою хороші рекомендації щодо цих технологій, коли ви подаєте заявку. У ході оформлення програми, навіть за допомогою інструментарію, ви зіткнетеся з проблемами, які потребують базового розуміння цих технологій для їх вирішення.
Напевно, вам також потрібно зручно використовувати CSS та стиснення зображення, щоб зробити щось привабливим та швидко реагувати. JavaScript, веб-сервери та браузери - додаткові сфери знань, які вам в кінцевому підсумку знадобляться.
Якщо ви будуєте свій HTML на стороні сервера, база вашого коду, ймовірно, буде меншою, і вам, можливо, не потрібно буде вивчати JavaScript. Модель на стороні сервера означає, що ваші програмісти будуть писати (C?) Код, який генерує HTML, який вони можуть переглядати безпосередньо перед тим, як він буде надісланий клієнту. Модель AJAX означає, що ваші програмісти будуть писати JavaScript, який генерує HTML. Мені не відомо про багато інструментів для перевірки або навіть перегляду HTML-коду, сформованого JavaScript в браузері, що ускладнює правильне програмування.
Там, де я зараз працюю, ми використовуємо гібридний підхід, який час від часу включає код Java, що генерує JavaScript, що генерує HTML. Якщо ви, хлопці, не в курсі веб-розробки, це не місце для початку. Я думаю, я б сказав, що якщо у вас немає вагомих причин використовувати модель AJAX, я б почав зі старої моделі сервера-HTML-покоління та дивлюсь, наскільки це до вас доходить.