منذ فترة ليست ببعيدة كان الأسلوب التقليدي ببرمجة مواقع وتطبيقات الويب هو إنشاء شيء يمكن أن يسمى Template، يقوم المبرمج بإقحام (inject) للبيانات داخله ثم تحويله إلى HTML (يسمى Render) وهذا حال أغلب اللغات مثل PHP و ASP .NET بالأسلوب القديم Web Forms أو الأحدث منه Razor أو ضمن Node.js أسلوب Jade و غيره…
الأسلوب الجديد هو التالي:
برمجة تطبيق من طرف المخدم (Server Side Application) مع ربط بقاعدة بيانات (Database) (يمكن استخدام طبقات DAL: Data Access Layers أو طبقة ORM: Object-Relational Mapping) وتقديم واجهات برمجية للوصول إلى التطبيق (عبر SOAP قديماً و RESTful APIs حديثاً وغالباً JSON).
الفائدة من الأسلوب الجديد هو برمجة تطبيق واحد من طرف السيرفر دون واجهات أبداً! فقط واجهات برمجية للوصول إلى البيانات والموارد. بعدها يتم برمجة تطبيقات مثل موبايل Android or iOS… وربط التطبيقات عبر الواجهة البرمجية API (خدمة ويب Web Service) بالتالي الوصول الكامل للتطبيق عبر واجهة برمجية.
الآن بدلاً من تصميم واجهات HTML يتم توليدها على المخدم كـ Templates؛ بدء العمل على الأسلوب الجديد وهو الاعتماد على منصات الـ Frontend مثل Angular و React و Vue وغيرهم… سيتم تصميم واجهة HTML وربطها مع الـ Javascript بالمنصة (Framework) المستخدمة. الغالب في استخدام هذه المنصات برمجة تطبيق بصفحة واحدة (Single Page Application).
هذه الـ Frameworks المخصصة للويب ستعمل نفس مبدأ تطبيق الموبايل الذي يتصل بخدمة الويب (API) للوصول إلى البيانات والموارد لكن بدلاً من لغات Native سيتم ذلك عبر Javascript وطلبات (Requests) غالباً Ajax أو تقنية أعلى مثل Web Socket. أضف إلى ذلك يمكن بناء تطبيقات موبايل من نمط Hyperd Applications مثل Cordova و PhoneGap والأحدث والأشهر حالياً Ionic. التي تعتمد على استخدام HTML و Javascript في بناء التطبيق. ويمكن استخدام Angular و React و Vue لتحكم أكبر.
هذه الطريقة تضمن برمجة تطبيق واحد من طرف المخدم ويحتوي جميع العمليات البرمجية، وتقديمها بشكل واجهة برمجية API، واستخدامها من أي تطبيق لاحقاً بشكل UI فقط كما ذكرت مثل Android أو iOS أو Flutter أو Javascript أو حتى Desktop Application أو IoT.