یہ مواد "انٹرپرائز ڈویلپمنٹ کا تعارف" سیریز کا حصہ ہے۔ پچھلے مضامین:
- نیٹ ورک کے بارے میں
- سافٹ ویئر فن تعمیر کے بارے میں
- HTTP/HTTPS پروٹوکول کے بارے میں ؛
- Maven کی بنیادی باتوں کے بارے میں
- servlets کے بارے میں (ہم ایک سادہ ویب ایپلیکیشن لکھ رہے ہیں) ؛
- سرولیٹ کنٹینرز کے بارے میں
MVC کی تاریخ
MVC کے لیے خیالات Trygve Reenskaug نے 70 کی دہائی کے آخر میں زیروکس PARC میں کام کرتے ہوئے وضع کیے تھے۔ ان دنوں میں، کمپیوٹر کے ساتھ کام کرنا ایک تعلیمی ڈگری اور بڑی دستاویزات کے مسلسل مطالعہ کے بغیر کرنا ناممکن تھا۔ Reenskaug نے بہت مضبوط ڈویلپرز کے ایک گروپ کے ساتھ مل کر جو مسئلہ حل کیا وہ کمپیوٹر کے ساتھ اوسط صارف کے تعامل کو آسان بنانا تھا۔ ایسے اوزار بنانے کی ضرورت تھی جو ایک طرف تو انتہائی آسان اور قابل فہم ہوں اور دوسری طرف کمپیوٹر اور پیچیدہ ایپلی کیشنز کو منظم کرنا ممکن بنائیں۔ Reenskaug نے ایک ٹیم پر کام کیا جس نے "ہر عمر کے بچوں کے لیے" ایک پورٹیبل کمپیوٹر تیار کیا - Dynabook کے ساتھ ساتھ ایلن کی کی قیادت میں سمال ٹاک زبان۔ یہ تب اور وہیں تھا کہ ایک دوستانہ انٹرفیس کے تصورات مرتب کیے گئے تھے۔ Reenskaug کے اپنی ٹیم کے ساتھ کام نے IT فیلڈ کی ترقی کو بہت متاثر کیا۔ آئیے ایک دلچسپ حقیقت پیش کرتے ہیں جو براہ راست MVC سے متعلق نہیں ہے، لیکن ان پیش رفت کی اہمیت کو واضح کرتی ہے۔ 2007 میں، ایپل آئی فون کی پیشکش کے بعد، ایلن کی نے کہا: "جب میکنٹوش سامنے آیا، نیوز ویک نے پوچھا کہ میں اس کے بارے میں کیا سوچتا ہوں۔ میں نے کہا: یہ پہلا ذاتی کمپیوٹر ہے جو تنقید کے لائق ہے۔ پریزنٹیشن کے بعد اسٹیو جابز سامنے آئے اور پوچھا: کیا آئی فون تنقید کے قابل ہے؟ اور میں نے کہا، اسے پانچ بائی آٹھ انچ کرو اور تم دنیا کو فتح کر لو گے۔ تین سال بعد 27 جنوری 2010 کو ایپل نے 9.7 انچ کا آئی پیڈ متعارف کرایا۔ یعنی اسٹیو جابز نے تقریباً لفظی طور پر ایلن کی کے مشورے پر عمل کیا۔ Rennskaug جس پراجیکٹ پر کام کیا وہ 10 سال تک جاری رہا۔ اور اس کے تخلیق کاروں سے MVC کے بارے میں پہلی اشاعت ایک اور 10 سال بعد شائع ہوئی۔ سافٹ ویئر فن تعمیر پر متعدد کتابوں اور مضامین کے مصنف مارٹن فاؤلر نے ذکر کیا ہے کہ اس نے سمال ٹاک کے ورکنگ ورژن سے MVC سیکھا۔ چونکہ ایک طویل عرصے سے بنیادی ماخذ سے MVC کے بارے میں کوئی معلومات نہیں تھی، اسی طرح کئی دیگر وجوہات کی بناء پر، اس تصور کی مختلف تشریحات کی ایک بڑی تعداد سامنے آئی ہے۔ نتیجے کے طور پر، بہت سے لوگ MVC کو ڈیزائن اسکیم یا پیٹرن سمجھتے ہیں۔ کم عام طور پر، MVC کو ایک جامع پیٹرن یا کئی پیٹرن کا مجموعہ کہا جاتا ہے جو پیچیدہ ایپلی کیشنز کو لاگو کرنے کے لیے مل کر کام کرتے ہیں۔ لیکن درحقیقت، جیسا کہ پہلے کہا گیا ہے، MVC بنیادی طور پر آرکیٹیکچرل آئیڈیاز/اصولوں/طریقہ کاروں کا ایک مجموعہ ہے جسے مختلف نمونوں کا استعمال کرتے ہوئے مختلف طریقوں سے لاگو کیا جا سکتا ہے۔MVC کیا ہے: بنیادی نظریات اور اصول
- VC ایک صارف انٹرفیس کے ساتھ پیچیدہ معلوماتی نظام کی تعمیر کے لیے تعمیراتی نظریات اور اصولوں کا ایک مجموعہ ہے۔
- MVC ایک مخفف ہے جس کا مطلب ماڈل-ویو-کنٹرولر ہے۔
مرحلہ 1: ایپلیکیشن کی کاروباری منطق کو صارف کے انٹرفیس سے الگ کریں۔
MVC کا کلیدی خیال یہ ہے کہ صارف کے انٹرفیس کے ساتھ کسی بھی ایپلیکیشن کو، پہلے اندازے کے مطابق، 2 ماڈیولز میں تقسیم کیا جا سکتا ہے: ایک ماڈیول جو ایپلیکیشن کی کاروباری منطق کو نافذ کرنے کا ذمہ دار ہے، اور ایک صارف انٹرفیس۔ پہلا ماڈیول ایپلی کیشن کی اہم فعالیت کو نافذ کرے گا۔ یہ ماڈیول سسٹم کا بنیادی مرکز ہو گا، جس میں ایپلیکیشن ڈومین ماڈل کو لاگو کیا جاتا ہے۔ MVC تصور میں، یہ ماڈیول ہمارا حرف M ہو گا، یعنی ماڈل دوسرا ماڈیول پورے یوزر انٹرفیس کو نافذ کرے گا، بشمول صارف کو ڈیٹا کی نمائش اور ایپلی کیشن کے ساتھ صارف کے تعامل کی منطق۔ اس علیحدگی کا بنیادی مقصد اس بات کو یقینی بنانا ہے کہ نظام کی بنیادی (MVC اصطلاحات میں ماڈل) کو آزادانہ طور پر تیار اور جانچا جا سکے۔ اس طرح کی تقسیم کے بعد ایپلیکیشن کا فن تعمیر اس طرح نظر آئے گا:مرحلہ 2۔ آبزرور پیٹرن کا استعمال کرتے ہوئے، ماڈل کی اور بھی زیادہ آزادی حاصل کریں، نیز یوزر انٹرفیس کی ہم آہنگی
یہاں ہم 2 مقاصد کا تعاقب کرتے ہیں:- ماڈل کی اور بھی زیادہ آزادی حاصل کریں۔
- یوزر انٹرفیس کو سنکرونائز کریں۔
مرحلہ 3۔ انٹرفیس کو ویو اور کنٹرولر میں تقسیم کرنا
ہم ایپلیکیشن کو ماڈیولز میں تقسیم کرتے رہتے ہیں، لیکن درجہ بندی کی نچلی سطح پر۔ اس مرحلے میں، یوزر انٹرفیس (جسے مرحلہ 1 میں الگ ماڈیول میں الگ کیا گیا تھا) کو ایک ویو اور کنٹرولر میں تقسیم کیا گیا ہے۔ کسی منظر اور کنٹرولر کے درمیان سخت لکیر کھینچنا مشکل ہے۔ اگر ہم یہ کہتے ہیں کہ منظر وہی ہے جو صارف دیکھتا ہے، اور کنٹرولر وہ طریقہ کار ہے جس کے ذریعے صارف سسٹم کے ساتھ تعامل کرسکتا ہے، اس میں کچھ تضاد ہے۔ کنٹرولز، جیسے کہ ویب صفحہ پر بٹن یا فون اسکرین پر ورچوئل کی بورڈ، بنیادی طور پر کنٹرولر کا حصہ ہوتے ہیں۔ لیکن وہ صارف کے لیے بالکل اسی طرح نظر آتے ہیں جتنا کہ کسی بھی منظر کا حصہ۔ یہاں ہم فنکشنل ڈویژن کے بارے میں مزید بات کر رہے ہیں۔ صارف انٹرفیس کا بنیادی کام سسٹم کے ساتھ صارف کے تعامل کو یقینی بنانا ہے۔ اس کا مطلب ہے کہ انٹرفیس میں صرف 2 افعال ہیں:- صارف کو سسٹم کے بارے میں معلومات کو ظاہر اور آسانی سے ظاہر کرنا؛
- سسٹم میں صارف کا ڈیٹا اور کمانڈ داخل کریں (ان کو سسٹم میں منتقل کریں)؛
- MVC کے اصولوں پر عمل کرتے ہوئے، نظام کو ماڈیولز میں تقسیم کرنے کی ضرورت ہے۔
- سب سے اہم اور آزاد ماڈیول ماڈل ہونا چاہیے۔
- ماڈل سسٹم کا بنیادی حصہ ہے۔ آپ کو انٹرفیس سے آزادانہ طور پر اسے تیار کرنے اور جانچنے کی صلاحیت کی ضرورت ہے۔
- ایسا کرنے کے لیے، نظام کی علیحدگی کے پہلے مرحلے پر، آپ کو اسے ایک ماڈل اور ایک انٹرفیس میں تقسیم کرنے کی ضرورت ہے۔
- اگلا، آبزرور پیٹرن کا استعمال کرتے ہوئے، ہم ماڈل کو اس کی آزادی میں مضبوط بناتے ہیں اور یوزر انٹرفیس کی ہم آہنگی حاصل کرتے ہیں۔
- تیسرا مرحلہ انٹرفیس کو کنٹرولر اور ویو میں تقسیم کرنا ہے۔
- سسٹم میں صارف سے معلومات داخل کرنے کے لیے جو کچھ درکار ہے وہ کنٹرولر میں ہے۔
- سسٹم سے صارف تک معلومات پہنچانے والی تمام چیزیں نظر میں ہیں۔
GO TO FULL VERSION