برنامه هاي كاربردي وب دسترسي پوياي وب پيج هاي مبتني برHTML از طريق يك مرورگر وب را ايجاد مي كند. از آنجا كه برنامه هاي كاربرديWeb Dbject شيء گرا بوده و به زبان جاوا نوشته مي شود، برنامه كاربردي شماWeb page هايي را با ايجاد نمونه هاي شي ها به نام مؤلفه هاي وب به وجود مي آورد.
مؤلفه وب تركيبي از زيرمجموعه هايWocomponent و قالبHTML جاوا است. مؤلفه هاي وب همه مؤلفه ها و عناصر استانداردHTML شامل انيميشنFlash، فيلم هاي Quichtime ، برنامه هايJava script و اپلت هاي جاوا را در برمي گيرد. مؤلفه هاي وب همچنين از كاسكاد ورقه هاي تعاريف(CSS) پشتيباني مي كند.
با افزودن عناصر خاصWebObject با همت هايHTML – به نام عناصر پويا- به مؤلفه‌هاي وب خود، محتواي پويا را به وب پيج هاي خود اضافه كنيد. برخي عناصر پويا فاقد همت هاي HTML بوده و صرفاً در كنترل ايجاد محتوا به كار مي رود. به عنوان مثال، محتوايي كه شرطي يا تكراري است. هنگام پاسخ دهي به درخواست هاي مرورگر كلانيت، محتواهاي پويا به HTMLايستا ترجمه و تبديل مي شود.

مي توانيد در ساخت مؤلفه هاي وب يا ازWebObject Builder ياDirect to Web استفاده كنيد. WebObject Builderيك ابزار گرافيكي در خلق مؤلفه هاي وب بوده و عناصر پويا را به متغيرها و متدهاي برنامه كاربردي شما محدود مي كند. Direct to Web يك ابزار ساخت سريع نمونه بوده كه برنامه كاربردي در حال كار وب را از مدل E0 ارائه شده خلق مي كند. براي تغيير محتواي مؤلفه هاي Direct to WebازWeb Assistant استفاده نماييد. همچنين مي توانيد صفحات را فريز كنيد- مؤلفه هاي وب را خلق كرده و به پروژه خود اضافه كنيد- و آنها را با استفاده ازWeb Object Builder اصلاح نماييد.

بايد قبل از معمول سازي برنامه كاربردي وب خود، درك بنياديني از معماري يك برنامه كاربردي داشته باشيد. اين قسمت معماري برنامه هاي كاربردي وب را تشريح كرده و چگونگي كار عناصر پويا را در زمينه حلقه درخواست- پاسخ برنامه كاربردي را توضيح مي دهد. هنگام پردازش يك درخواست و ايجاد صفحه پاسخ، شرح خلاصه اي از ترتيب متدها استنتاج مي شود. اين قسمت همچنين چگونگي كاربك تراك (پيمايش معكوس)Web Object ها را توضيح مي دهد.
اين سند چگونگي استفاده از ابزارهاي مختلف Web Object را توضيح نمي دهد. در مورد مراحل استنتاجي در خلق قالب ها و ساخت عناصر پويا، راهنماي كاربرWeb Object Boilder را مطالعه كنيد. در مورد چگونگي استفاده ازWeb Objects Direct to web Guid ,Direct to web (هدايت شيء هاي وب به راهنماي وب) را مطالعه نماييد.

معماري برنامه كاربردي
نه تنها برنامه وب شما محتواي پويايي ايجاد مي كند بلكه مي توانيد قالب ها را به كاربر ارائه داده كه محتواي مؤلف را براي آنها تأييد مي كند. داده هاي ورودي را از كاربراني بدست مي آوريد كه از قالب هايHTML، دكمه ها و ديگر عناصر پويا استفاده مي‌نمايند. مرتبط سازي عناصر قالب به متغيرها و متدهاي مؤلفه وب شما شبيه محدود كردن ديگر عناصر پوياست كه صرفاً محتوا را نمايش مي دهد.
با قرار دادن عناصر پويا در يك عنصر استاندارد قالب مؤلفه وب خود، قالب ها را خلق كنيد. مؤلفه وبHTML را ايجاد مي كند كه مرورگر هاي وب مي توانند آن را تغيير كرده و نمايش دهد. اين فرآيند از ترجمه ديتاي ثبتي كاربر يا انتخاب ها به متغيرهايي در برنامه شما تشكيل مي شود. اگر مؤلفه هاي وب را برنامه نويسي مي كنيد، اين برنامه نويسي به درك چگونگي پردازش ورودي كاربر توسط برنامه هاي وب كمك مي كند.

برنامه هايWeb Object مبتني بر رويداد(event driven) هستند اما به جاي پاسخ دهي به رويدادهاي ماوس و كيبورد به درخواست هايHTML (پروتكل انتقال ها پيرتكست) پاسخ مي دهند. برنامه درخواست عملHTML را دريافت مي كند، به آن پاسخ مي دهد و سپس منتظر درخواست بعدي مي شود. پاسخ دهي برنامه به درخواست ها ادامه مي‌يابد تا اينكه درخواست ها تمام شود. حلقه اصلي به كار گيرنده اين درخواست ها حلقه درخواست- پاسخ،WebObject محتواي عناصر پويا را پر مي كنند. اطلاعات انتشاري برنامه هاي شما در ديتابيس يا ديگر وسايل ذخيره سازي ديتا مقيم شده يا مي‌توان آن را هنگام دسترسي به صفحه ايجاد كرد. صفحات هم بسيار محاوره اي و فعل و انفعالي هستند- شما مي توانيد كاملاً روش را مشخص كنيد كه كاربر از طريق آنها هدايت شده و ديتاهايي كه آنها مشاهده و اصلاح مي كنند.

شكل يك وب سايت مبتني برWeb Object را نمايش مي دهد. مجدداً درخواست (در قالبURL) از مرورگر وب به وجود مي آيد. مرور وب كشف مي كند كه درخواست بايد توسط برنامه كاربردي Web Object به كار رفته و درخواست را به آداپتورHTTP بفرستد. آداپتور درخواست وارده را به شكلي پكيج مي كند كه برنامه Web Object بتواند آن را درك كرده و به برنامه كاربردي فوروارد كند. براساس مؤلفه هاي وب تعريف شما و ديتاي مربوطه از انبار ديتا، برنامه وب پيجي را ايجاد مي كند كه از طريق آداپتور به سرور وب منتقل مي شود. سرور وب صفحه را به مرورگر وب مي فرستد كه آن را ارائه مي دهد.

به اين نوع از برنامه كاربردي Web ObjectبرنامهWeb گفته مي شود زيرا نتيجه آن ايجاد يك سري وب پيج هايHTML پويا مي باشد.

حلقه درخواست- پاسخ
هر عمل اتخاذ شده از سوي كاربر از طريق سرور وب و آداپتور Web Objectبا برنامه كاربردي شما ارتباط برقرار مي كند. همه جزئيات مربوط به عمل كاربر- محتواي فيلدهاي تكست، وضعيت چك باكس ها و دكمه هاي راديويي و انتخاب در منوهاي pap-up همين طور اطلاعاتي پيرامونsession و دكمه يا لينك فعال شده در درخواست HTTP رمزگذاري مي شود.

درخواست با عمل آداپتور Web Objectو رفتار پيش فرض برنامه رمزگشايي مي شود. اين فرآيند رمزگشايي، كه در ايجاد صفحه پاسخ به حداكثر خود رسيده تا به مرورگر وب بازگشت داده شود- حلقه درخواست- پاسخ را مي سازد. شكل۲ ترتيب پيام هاي استنتاجي هنگام پردازش درخواست را نشان مي دهد.
Web Objects دو مدل پردازش درخواست دارد، عمل هدايت و عمل مؤلفه.

– مدل عمل مؤلفه به شما اجازه مي دهد وضعيت را در برنامه حفظ كنيد؛ از اين رو، به شيء هاي session نياز داشته و از آن استفاده مي كند. به طور پيش فرض، برنامه هاي وب از اين مدل استفاده مي كنند.
– مدل عمل مستقيم توسط برنامه هايي به كار مي روند كه به مديريت وضعيت- به عنوان مثال، موتورهاي جستجو، كاتالوگ هاي توليد، كتابخانه هاي پرونده و انتشار پويا- نياز ندارد. برنامه هاي استفاده كننده اين مدل به طور پيش فرض فاقد شيء هايsession هستند.

هنگام توسعه يك برنامه به يك مدل پردازش درخواست محدود نمي شويد برنامه ها مناسب ترين مدل را در پياده سازي مشخصه هاي خاص به كار مي گيرد. عمل هاي مولفه به طور كلي در برنامه هاي وب داراي مؤلفه هاي به هم پيوسته سودمند است. به هر حال، توانايي كنترل زياد جريان برنامه را به كاربر ارائه نمي دهد. به عنوان مثال، كاربر نمي تواند مستقيماً متد تعريف شده در فايل سرس جاواي يك مؤلفه وب را اجرا كند. از طرف ديگر، عمل هاي هدايت (Directactim) در ارائه چنين دسترسي به كاربران بهترين است. به عنوان مثال، با به كارگيريURL مناسب كاربران مي توانند شيوه هاي خاص يك برنامه را اجرا كنند.

URL هاي عمل مؤلفه
هنگامي كه يك برنامه وب را آرايش داده و از طريق مرورگر وب به آن دسترسي داريد، URL نمايش مرورگر از فرمت خاصي برخوردار است كه زمينه،session صفحه برنامه وب و حتي عنصر وب را مشخص مي كند.
URL همه اطلاعات ضروري برنامه كاربردي را در بر گرفته تا وضعيت مؤلفه هاي وب و session ايجاد شده براي كلانيت مشخص را بازستازي كند. ليست۱ مثالي ازURL عمل مؤلفه را نشان مي دهد.
• شكل۳- ص ۱۳- ساختار يكURL عمل مؤلفه

پيام هاي حلقه درخواست- پاسخ
جدول ۱ فازهاي فرآيند درخواست- پاسخ را فهرست مي كند. جدول۲ ترتيبي را نشان مي دهد كه متدهاي موجود در آن استنتاج مي شود. فرآيند به طور تفضيلي در “پردازش درخواست” ص۱۴ و “ايجاد پاسخ” ص۱۶ توضيح داده مي شود. شيء هاي اوليه دريافت كننده پيام ها از حلقه درخواست- پاسخ عبارتند از شي مؤلفه وب، session و برنامه شيء برنامه (application object) مثال برنامه اي است كه زير مجموعه WOApplication مي باشد. يكsession object مثالي ازsession بوده كه session زير مجموعه اي از WOApplicationمي باشد. هنگامي مثال Applicationخلق مي شود كه برنامه شما آغاز مي شود و مثالsession براي هر كاربر اوليه شكل مي گيرد. توجه كنيد كه ممكن استsession ها تايم اوت شوند. مي توانيد زمان تايم اوت را هنگام آرايش يك برنامه پيكربندي كنيد.

اگر يكي از قالب هاي برنامه هاي وب درXcode را هنگام ايجاد پروژه اي انتخاب كنيد، كلاس هايApplication, session به طور اتوماتيك به پروژه شما اضافه مي شود. در مورد چگونگي ايجاد پروژهWebobject Xcode قسمت “ايجاد پروژه ها” ص۱۹ را بخوانيد.
• جدول يك۱- فاز پردازش درخواست- پاسخ
فاز متد شرح
بيدار ص۱۳ شيء هاي مؤلفه،session و برنامه بيدار مي شوند.
منطق معمولي قالب بندي را مي‌توان به اين فاز اضافه كرد.
سنكرون ص۱۳ عناصرWebobject به ديتاي قالب خوانده شده در متغيرهاي مثال محدود مي شود.
عمل ص۱۳ عملي كه كاربر با لينك يا دكمه تأييد شروع كرده انجام مي شود. عمل مي تواند صفحه جديدي خلق كند.
پاسخ ص۱۳ صفحه پاسخ ايجاد مي شود. محتواي عناصر قالب به مقادير ذخيره در متغيرهاي مثال تنظيم شده كه عناصرWebobject به آن محدود مي شود. مقدار كليدي كدگذار شيوه هاي دست يابي استنتاج مي شود.

خواب ص۱۴ شيء هاي مؤلفه،Application, session به خواب مي‌روند. منطق بي اثر سازي معمولي را مي توان به اين فاز اضافه كرد.
• جدول۲- تايم لاين پردازش درخواست- پاسخ ص۱۴

پردازش درخواست
عمل پردازش درخواست در سه مرحله روي مي دهد: بيداري، سنكرون، و عمل
– Awake (بيداري)- هنگامي اين مرحله اجرا مي شود كهWeb object پيام هاي awakwe را به چندين شيء مي فرستد.
ضروري است كه از منابع محدود در سيستم چند كاربري تا حد ممكن به طور سودمند استفاده مي شود. برنامه ها صرفاً زماني فعال هستند كه كاري انجام دهند. يك سرور مجزا مي تواند چندين برنامه يا نمونه هاي زيادي از همان برنامه را اجرا كند. نمونه هاي برنامه صرفاً حين پردازش درخواست ها فعال هستند براي كسب اطلاعات بيشتر قسمت “ايجاد پاسخ” را ببينيد.

ابتدا شيوهawake شيء برنامه، سپس شيوهawake شيء session و متدawake مولفه وب براي درخواست هاي مبتني بر عمل مؤلفه استنتاج مي شود. شما مي توانيد متد را در هر يك از كلاس هاي متناظر متعارف (Custora) كنيد تا بر منطقي بيافزاييد كه ضروري است قبل از پردازش درخواست انجام شود ولو آنكه پياده سازي هاي پيش فرض اين متدهايawake كاري انجام ندهند، بايد پياده سازي كلاس بالا را قبل از اجراي منطق معمول استنتاج كنيد بدينگونه كه:
سنكرون- در طي اين مرحله متد take Values From Request استنتاج مي شود كه باعث شده مقادير ثبتي در عناصر قالب توسط كاربر در متغيرهاي نمونه متناظر كپي شود. در صورتي از اين مرحله پرسش مي شود كه مؤلفه فاقد عناصر قالب باشد يا مقادير عناصر قالب تغيير نكرده باشد.

Web Object متد take Values From Requestشيء برنامه را استنتاج مي كند. سپس برنامه شيوه متناظر شيءsession را استنتاج مي كند كه در عوض، متد مولفه وب (براي درخواست هاي مبتني بر عمل مؤلفه) را استنتاج مي نمايد. مؤلفه هر يك از متد take Values From Request عنصر پويا را استنتاج مي كند كه باعث مي شود عناصر قالب مقادير درخواست را در اتصالات مناسب مؤلفه كپي كند.web objects از كد گذاري مقدار كليد- پياده سازي شده توسط رابطNSKeuValue Coding در(com-webobjects.foundation – استفاده كرده تا چگونگي تنظيم مقدار اتصال را مشخص كند.

– عمل- طي اين مرحله، عمل انتخاب كاربر به وسيله استنتاج متدinvoke Action اجرا مي شود.

Webobject مانند شيوه take Values From Request شيوه invoke Action برنامه را استنتاج مي كند. سپس، برنامه متدsession را استنتاج كرده كه در عوض متد مؤلفه مبتني بر وب (براي درخواست هاي مبتني بر عمل مؤلفه) را استنتاج مي كند. سپس مؤلفه invoke Action را به هر يك از عناصر پوياي خود مي فرستد.
هنگامي كه متد invoke Action عنصر پوياي راه انداز درخواست- به عنوان مثال، يك دكمه تأييد- استنتاج مي شود، عنصر پويا پيام محدود را به صفتaction خود مي‌فرستد.

ايجاد پاسخ
بعد از اينكه مقادير قالب جمع آوري شده و متد عمل استنتاج مي شود، برنامه صفحه پاسخ را خلق مي كند. اين مؤلفه وب برگشت داده شده توسط متدaction است. فرآيند ايجاد پاسخ از دو فاز تشكيل مي شود: پاسخ و خواب.
– پاسخ- صفحه پاسخ در طي اين فاز به وجود مي آيد. همه متدهاي appendtoReponse عنصر پويا استنتاج مي شود بنابراين، محتواي خود را به وب پيج رندر و ارائه شده مي افزايد.

Web object متد appendtoReponse برنامه را استنتاج مي كند. سپس، برنامه متد session را استنتاج مي كند كه در عوض متد مؤلفه وب را استنتاج مي كند. مؤلفه از طريق HTML خلق كننده محتواي صفحه خود پيش مي رود. هنگامي كه مؤلفه عنصر WEBOBJECT را مي يابد، متد appendtoReponse خود را استنتاج مي كند بنابراين مقادير محدوديت هاي خود را به دست آورده و محتواي حاصل را به صفحه مي افزايد. فرآيند به طور برگشتي ادامه مي يابد تا اينكه كل صفحه پاسخ ايجاد شود.
مجدداً هنگاميWebobject از كدگذاري مقدار كليد استفاده مي كند كه ضروري بوده متغير تنظيم يا قابل دسترس شود. هنگامي كه مقدار كليدي به نامkey درخواست شود، كدگذاري مقدار كليد ابتدا شيوهaccessor را جستجو مي كند. اگر شيوه اي پيدا نشود، به خود متغير نمونه دسترسي پيدا مي كند. ترتيبي كه كدگذاري مقادير كليدي سعي مي‌كند مقدارkey را به دست آورد.

– sleep (خواب)- هنگامي كه فرآيند پاسخ كامل شود، متدهايsleep شيء هاي برنامه session و مؤلفه وب استنتاج مي شود (ترتيبي كه متدsleep شيء در آن فراخواني مي شود متضاد ترتيبي است كه متدهايawake در آن در فاز بيداري استنتاج مي شود) هنگام لغو متدsleep بايد پياده سازي سوپر كلاس را در انتهاي متد قرار دهيد. كه در ليست۲ نشان داده مي شود. بعد از آنكه همه شيء هاي استنتاجي در فرآيند درخواست پاسخ به خواب رفتند، صفحه جديد به آداپتورwebobject ارسال مي شود.

بك تراك كش
webobject از استفاده دكمهBack مرورگر وب با نگهداري كش صفحات اخيراً مشاهده شده در سرور پشتيباني مي كند. اين فرايندback tracking ناميده مي شود. يك كش به طور پيش فرض پيكربندي مي شود تا ۳۰ صفحه در هر جلسه در برداشته باشد اما مي‌توان آن را براي تأمين نيازهاي شما بهبود بخشيد. براي تغيير سايز پيش فرض كش، كد را به سازنده كلاس Application اضافه كنيد. به عنوان مثال، براي تغيير اندازه كش صفحه به۴۵ صفحه، اين سطر كد را اضافه كنيد:
هنگامي كه صفحه پاسخ ايجاد مي شود، صفحه پاسخ و اطلاعات وضعيت آن به كش اضافه مي شود. به اين طريق، هنگامي كه كاربر دكمهBack مرورگر را كليك مي كند، webobject مي تواند مؤلفه صحيح وب و وضعيت آن را نگهدارد.

براي كار صحيح بك تراك با ديتاي پويا، كش خود مرورگر وب بايد غيرفعال شود به طوري كه همه درخواست هاي صفحه به سرور وب و بنابراين، برنامه شما مي شود. شما مي توانديد اين را با افزودن اين كد به متد سازنده كلاسApplication انجام دهيد:
هنگامي كه كش پر مي شود، قديمي ترين صفحه در آنdircard شده تا فضايي براي خود ذخيره سازي يك صفحه جديد ايجاد كند. هنگامي كه بك تراك هاي كاربر از قديمي ترين صفحه در كش مي گذرد، webobject با صفحه خاص به كاربر هشدار مي‌دهد.
براي كسب اطلاعات بيشتر پيرامون بك تراك، قسمت “مديريت كش و بك تراك” را مطالعه كنيد.

ايجاد پروژه ها
يك پروژه webobjects همه فايل هاي مورد نياز ساخت و اجراي كاربردي شما را در برمي گيرد. در ايجاد پروژه جديد webobjectsاز Xcode استفاده كنيد. درXcode قالب مناسب پروژه webobjectsرا انتخاب نماييد و دستياري از طريق فرآيند ايجاد پروژه شما را راهنمايي مي كند. انواع فايل هاي اضافه شده به پروژه Xcode و سازمان دهي شما به الگو و قالب انتخابي شما بستگي دارد. اگر چه ممكن است چار چوب ها، مقصدها و پيكربندي هاي ساخت اندكي متفاوت باشند ولي سازمان دهي برنامه هاي وب- برنامه‌هايي كه محتواي پوياي HTML ايجاد مي كند- خيلي به هم شبيه هستند.
اين مقاله چگونگي استفاده Xcode در خلق برنامه هاي وب را توضيح مي دهد. اين مقاله قالب هاي مختلفي را تشريح مي كند، دستور العمل مرحله به مرحله ايجاد پروژه شما را ارائه مي دهد، سازماندهي فايل هاي موجود در پروژه را توضيح مي دهد، مقاصد خاص برنامه وب را شرح مي دهد، و ترفندهايي براي ساخت و نصب برنامه شما را در برمي گيرد.

انتخاب يك قالب
هنگامي كه پروژه اي به زبان Xcode به وجود مي آيد، انتخاب قالب و الگوي مناسب webobjects در assistant ضروري است. قالب هاي خلق كننده يك برنامه كاربردي وب عبارتند از برنامهDirect to web، برنامهDisplay Group ، و برنامه webobject. همچنين مي توانيد از چارچوب webobjectsاستفاده كنيد.
– اگر يك مدلEO داريد كه قبلاً يا باEOModeler يا Xcodeايجاد شده و مي خواهيد يك نمونه سريعي بسازيد، برنامهDirect to web را انتخاب كنيد. اين انتخاب خوبي براي برنامه نويسان جديد در webobjects به شمار مي آيد.
– اگر مدلEO داريد يا مي خواهيد يكي ايجاد كنيد- يعني مي خواهيد وب پيج هاي خود را با محتوايي از ديتابيسback-end (انتهاي برگشتي) مشهور كنيد- و مي خواهيد مؤلفه هاي متعارف وب را بسازيد، برنامهDisplay Group را انتخاب كنيد.
– اگر نمي خواهيد از شيء هاي سازماني استفاده كنيد، برنامه webobjectsرا انتخاب كنيد.

– اگر مي خواهيد چارچوبي ايجاد كنيد، webobjects fromework را انتخاب كنيد. به طور نمونه، اين قالب را براي ايجاد چارچوب داراي منطق كاري خود- مدلEO و شيء هاي سازماني خود- انتخاب كنيد كه مي توان آن را دوباره در انواع ديگر برنامه ها نظيرwebservise به كار برد. همچنين مي توانيد چارچوبي از مؤلفه هاي قابل استفاده مجدد وب را ايجاد كنيد.

ايجاد يك پروژه برنامه وب
هنگامي كه پروژه اي را از قالبي خلق مي كنيد،Xcode Assistant با نمايش تعدادي از كادرها شما را از طريق فرآيند راهنمايي مي كند. اولين كادرهاي معدود براي همه گونه هاي برنامه هاي وب يكسان است. كادرهاي بعدي مي تواند بر اساس قالب انتخابي شما تغيير كند. تنظيمات پيش فرض Assistant در اكثريت برنامه ها كار مي كند. به طور نمونه، صرفاً لازم است نام پروژه را وارد كرده و دكمهNext را كليك كنيد و در كادر نهايي، رويFinish كليك كنيد. اين مراحل عمومي را براي خلق يك برنامه وب دنبال كنيد. براي كسب جزئياتي پيرامون استفاده الگويDirect to web Guide webobjects, Direct to web Application را مطالعه كنيد.
۱- Xcode واقع در/Developer/Application را شروع كنيد.
۲- منويFile> new peroject را انتخاب كنيد.
پنلAssistant در حال نمايش كتبي از الگوها و قالب ها آشكار مي شود.
۳- يكي از قالب ها و الگوهايwebobjects را انتخاب كرده و Next را كليك كنيد.
اگر مطمئن نيستيد از چه قالبي استفاده مي كنيد، قسمت“انتخاب قالب” را مطالعه كنيد.
۴- نظير شكل۲ نام پروژه و موقعيت را وارد كرده وNext را كليك كنيد. اگر الگوي webobject Famenework را كليك كرده و به مراحل مانده پرش كنيد.
۵- اگر مي خواهيد برنامه وب خود را در كانتينر سرولت J2EE آرايش دهيد، گزينهin “Deploy a servlet container” در كادر مجتمع سازيJ2EE را انتخاب كرده و سپس Next را كليك كنيد.
۶- اگر برنامه شما يك سرويس وب است، گزينه “Add web service support” را در كادر web service support انتخاب كنيد. اگر برنامه شما از سرويس وب استفاده مي‌كند، بر روي “Add web service client support” را كليك كنيد. سپس نظير شكل۳ Next را كليك كنيد.
استفاده از سرويس هاي وب اختياري است.
۷- اگر از آداپتور JDBC استفاده مي كنيد، در كادرChoose EOAdaptor گزينهJava JDBCAdaptor. Framework را انتخاب كنيد. اگر از آداپتورJNDI استفاده مي كنيد، Java JNDIAdaptor. Framework را انتخاب كنيد.
آداپتور پيش فرض ديتابيسJDBC است زيرا اكثريت ديتابيس هاي مدرن ازJDBC پشتيباني مي كنند. اگر مطمئن نيستيد از چه ديتابيسي استفاده مي كنيد، فقطNext را كليك كنيد.

۸- اگر نياز است چارچوب هاي اضافي را به پروژه خود- به عنوان مثال، چارچوب‌هاي ديتابيس دسته سوم- اضافه كنيد، نظير شكل۴ در كادرChoose Franework رويAdd كليك نماييد. در غير اين صورت، براي ادامهNext را كليك كنيد.
Assistant چار چوب هاي مناسب webobject و جاوا را به پروژه شما اضافه مي كند كه به الگوي انتخابي شما بستگي دارد. اگر افزودن چارچوب هاي بيشتري ضروري نيست، صرفاً Next را كليك كنيد.
۹- سپس با كليك Add در كادرEOModels، يك مدلEO را اضافه كنيد.
اگر مدلEO موجودي داريد كه يا با استفاده ازXcode ياEomodeler خلق كرديد، حالا مي توانيد آن را به پروژه خود اضافه كنيد. اگر الگوي Direct to web Application يا Display Group Application انتخاب كرديد، سپس انتخاب مدلEO الزامي است.
۱۰- اگر الگوي web Application را انتخاب كرديد، Finish را كليك كرده و به مراحل بعدي برويد.
۱۱- اگر الگوي Direct to web Application را انتخاب كرديد، سپس كادرهاي معدود خاصي در Direct to web پديدار مي شود. براي چگونگي خلق يك برنامه‌
webobjects Direct to web Guide, Direct to web را مطالعه كنيد.
۱۲- اگر الگوي Direct to web Application را انتخاب كرديد، بعداً كادرهاي معدود خاص پيكربندي يك گروه نمايش پديدا مي شود.
۱۳- مدخل اصلي در كادر Choose the main EOEntity را انتخاب كنيد. مدخلي را انتخاب كنيد كه شيء هاي ريشه را نشان مي دهد وNext را كليك كنيد.
۱۴- در كادر Choose a layout طرح اوليه اي براي صفحه انتخاب كنيد.
۱۵- ويژگي هايي براي نمايش صفحه مشابه پيكربندي برنامهDirect to web را در كادرChoose Attributes to display را انتخاب كنيد. سپس Finish را كليك كنيد.
هنگامي كه دكمهFinish را كليك كرديد، پنلAsisstant بسته شده و پنجره پروژه شامل همه فايل هاي برنامه شما باز مي شود. در مورد تشريح فايل هاي پروژه شما، قسمت“فايل ها و گروه هاي پروژه” را مطالعه كنيد.

فايل ها و گروه هاي پروژه
فايل ها و گروه هاي نمايش درXcode متفاوت هستند كه به نوع الگويwebobject انتخابي شما هنگام خلق پروژه Xcode بستگي دارد. اين قسمت برخي از گروه هايي را تشريح مي كند كه هنگام خلق يك برنامه وب آشكار مي شود.
كلاس ها
همانطور كه در شكل۵ نشان داده مي شود گروهClases از كلاس هاي جاوايي تشكيل مي گردد كه با مؤلفه هاي وب تناظري ندارند. به طور نمونه، اين گروهDirect Action. Java, Session. Java Application. Java را در برمي گيرد. كلاس هاي متناظر با مؤلفه هاي وب در گروه web Components قرار دارند. به عنوان مثال، Main. Java در web Components / main قرار دارد.
كلاس هاي پيش فرض در پروژهwebobject عبارتند از:
– Application. Java زير مجموعه اي از WoApplication است. هنگامي شيء برنامه به طور اتوماتيك خلق مي شود كه برنامه شما آغاز شده و با نمونه برنامه متناظر است.

– Session. Java زير مجموعه اي ازWo Session است. هنگامي شيء Session به طور اتوماتيك خلق مي شود كه كاربر ارتباطي با برنامه وب شما برقرار كند.
– Direct Action. Java زير مجموعه اي ازWo Direct Action است.

مؤلفه هاي وب
همان طور كه در شكل۶ نشان داده مي شود، گروه مؤلفه هاي وب همه فايل هايي را در بر مي گيرد كه به مولفه هاي وب متعلق است. يك مؤلفه وب، يك صفحه يا بخشي از يك صفحه را در برنامه شما نشان مي دهد. يك برنامه مي تواند از يك يا چندين مؤلفه وب برخوردار باشد.
به عنوان مثال، هر برنامهwebobject حداقل مؤلفه اي به نامMain دارد كه در گروه Webxomponents وجود دارد. يك فولدر مؤلفه وب از چند فايلي تشكيل مي شود كه رفتار و ظاهر مؤلفه را مشخص مي كند. هر فايلي از پيشوند مشابه اما با پسوندهاي مختلفي برخوردار است. اينها فايل هاي موجود در يك فولدر مؤلفه وب هستند:
– مؤلفه وبي با پسوند.wo كه طرح اوليه عناصرHTML و اتصال ها را در عناصر پويا ذخيره مي كند.
– فايل كلاسي با پسوند.java كه رفتار مؤلفه را پياده سازي مي كند. هر يك از مولفه ها زير مجموعه اي ازWoxomponent است. به طور نمونه، كلاس شما متغيرها و متدهاي محدود به عناصر پويا را پياده سازي مي كند.

– يك فايلAPI با پسوند.api كه كليدهاي تعريف شده توسط مؤلفه اي كه مؤلفه هاي ديگر به آن متصل شده و فرمان هايي براي اتصال كليدها را دربرمي گيرد. webobjects Builder از اين فايل ها استفاده كرده تا چك كند كه آيا مؤلفه قابل استفاده مجدد به درستي به كار رفته است يا خير.
به طور نمونه مؤلفه اي را با استفاده از webobjects Builder ويرايش كنيد- فقط روي فولدري با پسوند.wo دوبله كليك كنيد تا آن را در webobjects Builder ويرايش نماييد. به هر حال، اگر فرمت را درك كنيد، گاهي مي توانيد اين فايل ها را مستقيماً ويرايش كنيد. به عنوان مثال، اين ها فايل هاي فولدرMain.wo هستند:
-main. Html الگويHTML براي مؤلفه است. اين فايل درست مثل هر وب پيجي از تگ هايHTML برخوردار است. به علاوه مي تواند تگ هاي عناصر پويا را دربرداشته باشد.
– main.wod فايل اعلام هايي است كه ارتباطات بين عناصر پويا و متغيرها يا متدهاي را در فايل جاوا شما مشخص مي كند.
– mian.woo براي ذخيره سازي اطلاعات در مورد گروه هاي نمايشي- مثلاً، اگر پروژه شما به ديتابيسي دسترسي داشته باشد- و رمز گذاري براي الگوهاي HTML به كار مي‌رود. به ندرت اين فايل را مستقيم ويرايش كنيد.

منابع(Resources)
گروه Resources فايل هايي را در بر مي گيرد كه برنامه شما در زمان اجرا به آن نياز دارد اما وجود آن در ريشه پرونده سرور وب ضروري نيست و از اين رو، كاربران به آن دسترسي نخواهند داشت. فايل هاي Resources مي تواند فايل هاي متفرقه پيكربندي، فايل هاي مدلEO و آيكون ها را در بر داشته باشد.

منابع سرور وب
گروهweb server Resources فايل هايي نظير تصاوير و صوت را در بر مي گيرد كه بايد تحت ريشهdocument سرور وب در زمان اجرا باشد. هنگام توسعه برنامه، اين فايل‌ها را در دايركتوري پروژه خود قرار داده و آنها را به گروهweb server Resources پروژه اضافه كنيد. هنگامي كه پروژه خود را مي سازيد، Xcode فايل هاي اين گروه را در فولدر web server Resources پوشه برنامه خود كپي مي كند.