AngularJS
اینگولر جے ایس سنگل پیج ایپلی کیشنز تیار کرنے کے لیے ایک بند شدہ مفت اور اوپن سورس جاوا اسکرپٹ پر مبنی ویب فریم ورک ہے۔ اس کی دیکھ بھال بنیادی طور پر گوگل اور افراد اور کارپوریشنوں کی ایک کمیونٹی کرتی تھی۔ اس کا مقصد کلائنٹ سائیڈ ماڈل ویو کنٹرولر (ایم وی سی) اور ماڈل ویو ویو ماڈل (ایم وی وی ایم) آرکیٹیکچرز کے لیے ایک فریم ورک فراہم کرکے اس طرح کی ایپلی کیشنز کی ترقی اور جانچ دونوں کو آسان بنانا ہے، اس کے ساتھ ساتھ عام طور پر ویب ایپلی کیشنز اور ترقی پسند ویب ایپلی کیشنز میں استعمال ہونے والے اجزاء۔ اینگولر جے ایس کو مین اسٹیک کے فرنٹ اینڈ کے طور پر استعمال کیا گیا تھا، جس میں مونگو ڈی بی ڈیٹا بیس، Express.js ویب ایپلیکیشن سرور فریم ورک، خود اینگولر جے ایس (یا اینگولر)، اور Node.js سرور رن ٹائم ماحول شامل تھے۔ یکم جنوری 2022 تک، گوگل سیکیورٹی، براؤزر مطابقت، یا جے کوئری کے مسائل کو ٹھیک کرنے کے لیے اینگولر جے ایس کو مزید اپ ڈیٹ نہیں کرتا ہے۔ اینگولر ٹیم آگے بڑھنے کے بہترین راستے کے طور پر اینگولر (v2 +) میں اپ گریڈ کرنے کی سفارش کرتی ہے، لیکن انہوں نے کچھ دوسرے آپشن بھی فراہم کیے۔ جائزہ اینگولر جے ایس فریم ورک نے پہلے ہائپر ٹیکسٹ مارک اپ لینگویج (ایچ ٹی ایم ایل) پیج کو پڑھ کر کام کیا، جس میں اضافی کسٹم ایچ ٹی ایم ایل صفات شامل تھیں۔ کونیی نے ان صفات کی تشریح صفحہ کے ان پٹ یا آؤٹ پٹ حصوں کو ایک ایسے ماڈل سے جوڑنے کی ہدایت کے طور پر کی جس کی نمائندگی معیاری جاوا اسکرپٹ متغیرات کرتے ہیں۔ ان جاوا اسکرپٹ متغیرات کی اقدار کو دستی طور پر کوڈ کے اندر سیٹ کیا جا سکتا ہے یا جامد یا متحرک جے ایس او این وسائل سے بازیافت کیا جا سکتا ہے۔ اینگولر جے ایس اس عقیدے پر بنایا گیا تھا کہ ڈیکلیریٹو پروگرامنگ کو یوزر انٹرفیس بنانے اور سافٹ ویئر کے اجزاء کو جوڑنے کے لیے استعمال کیا جانا چاہیے، جبکہ لازمی پروگرامنگ کسی ایپلی کیشن کی کاروباری منطق کی وضاحت کے لیے بہتر موزوں تھی۔ فریم ورک نے دو طرفہ ڈیٹا بائنڈنگ کے ذریعے متحرک مواد پیش کرنے کے لیے روایتی ایچ ٹی ایم ایل کو ڈھال لیا اور توسیع دی جس سے ماڈلز اور ویوز کی خودکار ہم آہنگی کی اجازت ملی۔ نتیجے کے طور پر، اینگولر جے ایس نے جانچ اور کارکردگی کو بہتر بنانے کے مقصد کے ساتھ واضح دستاویز آبجیکٹ ماڈل (ڈی او ایم) ہیرا پھیری پر زور دیا۔ اینگولر جے ایس کے ڈیزائن کے اہداف میں شامل ہیں: ڈی او ایم ہیرا پھیری کو ایپلی کیشن منطق سے الگ کرنا۔ کوڈ کی تشکیل کے طریقے سے اس کی مشکل ڈرامائی طور پر متاثر ہوتی ہے۔ سرور سائیڈ سے ایپلیکیشن کے کلائنٹ سائیڈ کو ڈیکپل کرنا۔ یہ ترقیاتی کام کو متوازی طور پر آگے بڑھنے کی اجازت دیتا ہے اور دونوں طرف کے دوبارہ استعمال کی اجازت دیتا ہے۔ ایپلیکیشن بنانے کے سفر کے لیے ڈھانچہ فراہم کرنا: یو آئی ڈیزائن کرنے سے لے کر کاروباری منطق لکھنے سے لے کر جانچ تک۔ اینگولر جے ایس نے پریزنٹیشن، ڈیٹا اور منطق کے اجزاء کو الگ کرنے کے لیے ایم وی سی پیٹرن کو نافذ کیا۔ انحصار انجکشن کا استعمال کرتے ہوئے، اینگولر روایتی طور پر سرور سائیڈ سروسز، جیسے کہ ویو ڈیپینڈینٹ کنٹرولرز کو کلائنٹ سائیڈ ویب ایپلی کیشنز میں لایا۔ نتیجتا سرور پر زیادہ تر بوجھ کم کیا جا سکتا ہے۔ اسکوپ اینگولر جے ایس نے "اسکوپ" کی اصطلاح کو کمپیوٹر سائنس کے بنیادی اصولوں کے مطابق استعمال کیا۔ کمپیوٹر سائنس میں دائرہ کار بیان کرتا ہے کہ پروگرام میں کوئی خاص پابند کب درست ہوتا ہے۔ ای سی ایم اے-262 تفصیلات دائرہ کار کو اس طرح بیان کرتی ہیں: ایک لفظی ماحول جس میں فنکشن آبجیکٹ کو کلائنٹ سائیڈ ویب اسکرپٹ میں انجام دیا جاتا ہے ؛ جیسا کہ لیمبڈا کیلکولس میں دائرہ کار کی وضاحت کی گئی ہے۔ "ایم وی سی" فن تعمیر کے ایک حصے کے طور پر، دائرہ کار "ماڈل" بناتا ہے، اور دائرہ کار میں بیان کردہ تمام متغیرات تک "ویو" کے ساتھ ساتھ "کنٹرولر" کے ذریعے رسائی حاصل کی جا سکتی ہے۔ دائرہ کار گلو کے طور پر برتاؤ کرتا ہے اور "ویو" اور "کنٹرولر" کو باندھتا ہے۔ بوٹسٹریپ اینگولر جے ایس بوٹسٹریپر کے ذریعے انجام دیا گیا کام ڈی او ایم کے لوڈ ہونے کے بعد تین مراحل میں انجام دیا گیا: ڈی او ایم کو سجانے والی ہدایات کا ایک نیا انجیکٹر مرتب کرنا اینگولر جے ایس کی ہدایات کے دائرہ کار میں تمام ہدایات کو جوڑنے سے ڈویلپر کو اپنی مرضی کے مطابق اور دوبارہ استعمال کے قابل ایچ ٹی ایم ایل جیسے عناصر اور صفات کی وضاحت کرنے کی اجازت ملی جو ڈیٹا بائنڈنگ اور پریزنٹیشن اجزاء کے رویے کی وضاحت کرتے ہیں۔ کچھ سب سے زیادہ استعمال ہونے والی ہدایات یہ تھیں: این جی-اینیمیٹ ایک ماڈیول موجودہ بنیادی اور اپنی مرضی کے مطابق ہدایات کے اندر جاوا اسکرپٹ، سی ایس ایس 3 ٹرانزیشن اور سی ایس ایس 3 کی فریم اینیمیشن ہک کے لیے مدد فراہم کرتا ہے۔ چونکہ این جی-* صفات ایچ ٹی ایم ایل کی خصوصیات میں درست نہیں ہیں، اس لیے ڈیٹا-این جی-* کو سابقہ کے طور پر بھی استعمال کیا جا سکتا ہے۔ مثال کے طور پر این جی-ایپ اور ڈیٹا-این جی-ایپ دونوں اینگولر جے ایس میں درست ہیں۔ این جی-ایپ اینگولر جے ایس ایپلی کیشن کے جڑ عنصر کو ظاہر کرتا ہے، جس کے تحت ہدایات کو پابندیوں کا اعلان کرنے اور رویے کی وضاحت کے لیے استعمال کیا جا سکتا ہے۔ این جی-آرا عام اے آر آئی اے صفات کی رسائی کی حمایت کے لیے ایک ماڈیول۔ این جی-بائنڈ ڈی او ایم عنصر کے متن کو ایک اظہار کی قدر پر سیٹ کرتا ہے۔ مثال کے طور پر، <span ng-bind = "نام"> </span> اسپان عنصر کے اندر 'نام' کی قدر ظاہر کرتا ہے۔ درخواست کے دائرہ کار میں متغیر 'نام' میں کوئی تبدیلی ڈی او ایم میں فوری طور پر ظاہر ہوتی ہے۔ این جی کلاس مشروط طور پر کلاس کا اطلاق کرتا ہے، جو کہ بولین اظہار کی قدر پر منحصر ہوتا ہے۔ این جی-کنٹرولر جاوا اسکرپٹ کنٹرولر کلاس کی وضاحت کرتا ہے جو ایچ ٹی ایم ایل کے تاثرات کا جائزہ لیتا ہے۔ این جی-آئی ایف بیسک اگر بیان کی ہدایت جو مندرجہ ذیل عنصر کو فوری طور پر ظاہر کرتی ہے اگر شرائط درست ہیں۔ جب شرط غلط ہوتی ہے تو عنصر کو ڈی او ایم سے ہٹا دیا جاتا ہے۔ جب درست ہوتا ہے، تو مرتب شدہ عنصر کا کلون دوبارہ داخل کیا جاتا ہے۔ جب عنصر کو شروع کیا جائے تو ng-init کو ایک بار کال کیا جاتا ہے۔ این جی-ماڈل این جی-بائنڈ سے ملتا جلتا ہے، لیکن ویو اور دائرہ کار کے درمیان دو طرفہ ڈیٹا بائنڈنگ قائم کرتا ہے۔ این جی-ماڈل-آپشنز ماڈل اپ ڈیٹس کیسے کیے جاتے ہیں اس کے لیے ٹیوننگ فراہم کرتا ہے۔ کسی مجموعہ سے فی آئٹم ایک عنصر کو ایک بار فوری طور پر دہرائیں۔ این جی-شو اور این جی-ہائیڈ مشروط طور پر کسی عنصر کو دکھائیں یا چھپائیں، یہ بولین اظہار کی قدر پر منحصر ہے۔ دکھائیں اور چھپائیں سی ایس ایس ڈسپلے سٹائل ترتیب دے کر حاصل کیا جاتا ہے۔ این جی-سوئچ مشروط طور پر انتخاب کے اظہار کی قدر کے لحاظ سے انتخاب کے ایک سیٹ سے ایک ٹیمپلیٹ کو فوری طور پر تبدیل کرتا ہے۔ این جی ویو بنیادی ہدایت جو ان راستوں کو سنبھالنے کے لیے ذمہ دار ہے جو مخصوص کنٹرولرز کے ذریعے چلائے جانے والے ٹیمپلیٹس کو پیش کرنے سے پہلے جے ایس او این کو حل کرتے ہیں۔ دو طرفہ ڈیٹا بائنڈنگ اینگولر جے ایس دو طرفہ ڈیٹا بائنڈنگ کی سب سے قابل ذکر خصوصیت تھی، جس سے سرور بیک اینڈ کو ٹیمپلیٹنگ کی ذمہ داریوں سے بڑی حد تک راحت ملتی ہے۔ اس کے بجائے، ٹیمپلیٹس کو سادہ ایچ ٹی ایم ایل میں ماڈل میں بیان کردہ دائرہ کار میں موجود ڈیٹا کے مطابق پیش کیا گیا تھا۔ اینگولر میں $سکوپ سروس نے ماڈل سیکشن میں تبدیلیوں کا پتہ لگایا اور کنٹرولر کے ذریعے ویو میں ایچ ٹی ایم ایل کے تاثرات میں ترمیم کی۔ اسی طرح، منظر میں کسی بھی تبدیلی کی عکاسی ماڈل میں کی گئی تھی۔ اس نے ڈی او ایم کو فعال طور پر جوڑنے کی ضرورت کو نظر انداز کیا اور ویب ایپلی کیشنز کی بوٹ اسٹریپنگ اور تیز رفتار پروٹو ٹائپنگ کی حوصلہ افزائی کی۔ اینگولر جے ایس نے موجودہ اقدار کا موازنہ ڈریٹی چیکنگ کے عمل میں پہلے محفوظ کردہ اقدار سے کرکے ماڈلز میں تبدیلیوں کا پتہ لگایا، اس کے برعکس Ember.js اور Backbone.js جس نے ماڈل کی اقدار کو تبدیل کرنے پر سامعین کو متحرک کیا۔ $واچ ایک کونیی طریقہ ہے جو گندی جانچ کے لیے استعمال ہوتا ہے۔ $دائرہ کار میں تفویض کردہ کوئی بھی متغیر یا اظہار خود بخود کونیی میں a ترتیب دیتا ہے۔ لہذا متغیر کو تفویض کرنا یا ہدایات وغیرہ کا استعمال کرنا۔ سبھی خود بخود کونیی دائرہ کار میں گھڑیاں بناتے ہیں۔ کونیی اشیا میں کونیی جے ایس میں دیکھنے والے کی وضاحت کرنے کے مختلف طریقوں کی ایک سادہ صف کو برقرار رکھتا ہے۔ واضح طور پر $کسی خاصیت کو دیکھیں۔ $دائرہ کار۔ $واچ ('person.username'، ویلڈیٹ یونک) ؛ اپنے ٹیمپلیٹ میں ایک انٹرپولیشن رکھیں (موجودہ $دائرہ کار پر آپ کے لیے ایک واچر بنایا جائے گا)۔ کوئی ہدایت طلب کریں جیسے کہ آپ کے لیے مبصر کی وضاحت کرنا۔ $ڈائجسٹ کونیی طریقہ ہے جسے اندرونی طور پر کونیی ج کے ذریعے بار بار وقفوں میں استعمال کیا جاتا ہے۔ طریقہ کار میں، کونیی اپنے دائرہ کار/چائلڈ دائرہ کار میں پوری طرح سے دہراتا ہے۔ لاگو $ایک کونیی طریقہ ہے جو اندرونی طور پر مدعو کرتا ہے۔ یہ طریقہ اس وقت استعمال کیا جاتا ہے جب آپ کونیی کو دستی طور پر بتانا چاہتے ہیں کہ گندی جانچ شروع کریں (سب کو انجام دیں) $تباہ کرنا کونیی میں ایک طریقہ اور واقعہ دونوں ہے۔ طریقہ، ایک دائرہ کار اور اس کے تمام بچوں کو گندی جانچ سے ہٹاتا ہے۔ جب بھی $گنجائش یا $کنٹرولر کو تباہ کیا جاتا ہے تو ایونٹ کو کونیی کہا جاتا ہے۔ اینگولر جے ایس کو اصل میں 2009 میں بریٹ ٹیک ایل ایل سی میں میسکو ہیوری نے ایک آن لائن جے ایس او این اسٹوریج سروس کے پیچھے سافٹ ویئر کے طور پر تیار کیا تھا، جس کی قیمت میگا بائٹ کے ذریعہ انٹرپرائز کے لیے آسان ایپلی کیشنز کے لیے ہوتی۔ یہ منصوبہ ویب ڈومین "GetAngular.com" پر واقع تھا، اور اس کے چند صارفین تھے، اس سے پہلے کہ دونوں نے کاروباری خیال کو ترک کرنے اور اینگولر کو اوپن سورس لائبریری کے طور پر جاری کرنے کا فیصلہ کیا۔ 1. 6 ریلیز نے اینگولر کے بہت سے تصورات کو اینگولر جے ایس میں شامل کیا، جس میں جزو پر مبنی ایپلی کیشن فن تعمیر کا تصور بھی شامل ہے۔ دوسروں کے درمیان اس ریلیز نے سینڈ باکس کو ہٹا دیا، جس کے بارے میں بہت سے ڈویلپرز کا خیال تھا کہ اس نے اضافی سیکیورٹی فراہم کی تھی، ان متعدد خطرات کے باوجود جو دریافت کیے گئے تھے جو سینڈ باکس کو نظرانداز کرتے تھے۔ اینگولر جے ایس کی موجودہ (مارچ 2020 تک) مستحکم ریلیز 1.7.9 ہے۔ جنوری 2018 میں، اینگولر جے ایس کو مرحلہ وار ختم کرنے کے لیے ایک شیڈول کا اعلان کیا گیا تھا: 1.7.0 جاری کرنے کے بعد، اینگولر جے ایس پر فعال ترقی 30 جون 2018 تک جاری رہے گی۔ اس کے بعد، 1.7 کو 31 دسمبر 2021 تک طویل مدتی سپورٹ کے طور پر سپورٹ کیا گیا۔ میراث براؤزر سپورٹ ورژن 1.3 اور بعد میں اینگولر جے ایس نے انٹرنیٹ ایکسپلورر 8 یا اس سے پہلے کی حمایت نہیں کی۔ جبکہ اینگولر جے ایس 1.2 نے آئی ای 8 کی حمایت کی، اس کی ٹیم نے نہیں کی۔ اینگولر جے ایس کے اینگولر اور اینگولر ڈارٹ کے بعد کے ورژن کو صرف اینگولر کہا جاتا ہے۔ کونیی کونیی جے ایس کا ایک غیر مطابقت پذیر ٹائپ اسکرپٹ پر مبنی دوبارہ تحریر ہے۔ کونیی 4 کا اعلان 13 دسمبر 2016 کو کیا گیا تھا، روٹر پیکیج کے ورژن کی غلط صف بندی کی وجہ سے الجھن سے بچنے کے لیے 3 کو چھوڑ دیا گیا تھا جو پہلے ہی v3.3.0 کے طور پر تقسیم کیا گیا تھا۔ اینگولر ڈارٹ ڈارٹ پر کام کرتا ہے، جو ایک آبجیکٹ پر مبنی، کلاس کی وضاحت شدہ، سنگل وراثت پروگرامنگ زبان ہے جو سی اسٹائل نحو کا استعمال کرتی ہے، جو کہ اینگولر جے ایس (جو جاوا اسکرپٹ استعمال کرتی ہے) اور اینگولر 2/اینگولر 4 (جو ٹائپ اسکرپٹ استعمال کرتی ہے) سے مختلف ہے۔ اینگولر 4 مارچ 2017 میں جاری کیا گیا، جس میں فریم ورک کا ورژن اس کے استعمال کردہ روٹر کے ورژن نمبر کے ساتھ منسلک ہے۔ اینگولر 5 یکم نومبر 2017 کو ریلیز ہوئی تھی۔ اینگولر 5 میں کلیدی بہتریوں میں ترقی پسند ویب ایپس کے لیے سپورٹ، ایک بلڈ آپٹیمائزر اور میٹریل ڈیزائن سے متعلق بہتری شامل ہیں۔ اینگولر 6 کو 3 مئی 2018 کو، اینگولر 7 کو 18 اکتوبر 2018 کو اور اینگولر 8 کو 28 مئی 2019 کو ریلیز کیا گیا تھا۔ کونیی معنی ورژننگ کے معیارات کی پیروی کرتا ہے، جس میں ہر بڑے ورژن نمبر ممکنہ طور پر بریکنگ تبدیلیوں کی نشاندہی کرتا ہے۔ اینگولر نے ہر بڑے ورژن کے لیے 6 ماہ کی فعال حمایت فراہم کرنے کے بعد 12 ماہ کی طویل مدتی حمایت فراہم کرنے کا وعدہ کیا ہے۔ بڑی ریلیزز ہر بڑی ریلیز کے لیے 1 سے 3 معمولی ریلیزز کے ساتھ دو سالہ ہوتی ہیں۔ اینگولر یونیورسل ایک عام اینگولر ایپلی کیشن براؤزر میں چلتی ہے، جبکہ اینگولر یونیورسل سرور سائیڈ رینڈرنگ (ایس ایس آر) کے ذریعے سرور پر جامد ایپلی کیشن پیجز تیار کرتی ہے۔ لائبریریاں اینگولر جے ایس میٹریل اینگولر جے ایس میٹریل ایک یو آئی جزو لائبریری تھی جس نے اینگولر جے ایس میں میٹریل ڈیزائن کو نافذ کیا۔ لائبریری نے دوبارہ استعمال کے قابل، اچھی طرح سے تجربہ شدہ، اور قابل رسائی UI اجزاء کا ایک مجموعہ فراہم کیا۔ جنوری 2022 میں لائبریری کو بند کر دیا گیا، جیسا کہ ان کی سرکاری ویب سائٹ پر اعلان کیا گیا تھا۔ اینگولر جے ایس میٹریل لائبریری ایک پختہ اور مستحکم پروڈکٹ ہے جو پیداوار کے استعمال کے لیے تیار ہے اور صرف اینگولر جے ایس 1. x کے ساتھ کام کرتی ہے۔ اینگولر میٹریل لائبریری اینگولر/میٹریل 2 گٹ ہب کے ذخیرے میں دستیاب ہے۔ کروم ایکسٹینشن جولائی 2012 میں، اینگولر ٹیم نے گوگل کروم براؤزر کے لیے بٹارنگ نامی ایک ایکسٹینشن بنائی، جس نے اینگولر کے ساتھ بنائی گئی ویب ایپلی کیشنز کے لیے ڈیبگنگ کے تجربے کو بہتر بنایا۔ توسیع کا مقصد کارکردگی کی رکاوٹوں کا آسانی سے پتہ لگانے کی اجازت دینا اور ایپلی کیشنز کو ڈیبگ کرنے کے لیے جی یو آئی پیش کرنا تھا۔ 2014 کے آخر اور 2015 کے اوائل کے دوران ایک وقت کے لیے، توسیع اینگولر کی حالیہ ریلیزز (v1.2.x کے بعد) کے ساتھ مطابقت نہیں رکھتی تھی۔ اس توسیع کے لیے آخری اپ ڈیٹ 4 اپریل 2017 کو کیا گیا تھا۔ پرفارمنس اینگولر جے ایس نے ڈائجسٹ سائیکل کی مثال قائم کی۔ اس سائیکل کو ایک لوپ سمجھا جا سکتا ہے، جس کے دوران اینگولر جے ایس نے چیک کیا کہ آیا تمام $دائرہ کار کے ذریعہ دیکھے گئے تمام متغیرات میں کوئی تبدیلی آئی ہے یا نہیں۔ اگر کسی کنٹرولر میں $scope.myVar کی وضاحت کی گئی ہے اور اس متغیر کو دیکھنے کے لیے نشان زد کیا گیا ہے، تو اینگولر ہر لوپ تکرار میں مائی وار پر ہونے والی تبدیلیوں کی نگرانی کرے گا۔ یہ نقطہ نظر ممکنہ طور پر سست انجام دینے کا باعث بنا جب اینگولر جے ایس نے ہر سائیکل میں $دائرہ کار میں بہت سے متغیرات کی جانچ پڑتال کی۔ میکو ہیوری نے کسی بھی صفحہ پر 2000 سے کم مبصرین رکھنے کا مشورہ دیا۔ یہ بھی دیکھیں React.js Vue.js پولیمر (لائبریری) جاوا اسکرپٹ فریم ورک کا موازنہ حوالہ جات مزید پڑھنا بیرونی لنکس ایجیکس (پروگرامنگ) گوگل سافٹ ویئر سافٹ ویئر ایم آئی ٹی لائسنس 2010 سافٹ ویئر جاوا اسکرپٹ لائبریریوں کا استعمال کرتے ہوئے