ساخت وب اپلیکیشن های حرفه ای با ExtJS

کتاب ساخت وب اپلیکیشن های حرفه ای بافریم‌ورک ExtJS5

الگوی آموزش در این کتاب بر اساس ارائه‌ی مثال‌های کاربردی فراوان می باشد که برنامه‌نویس در دنیای واقعی با آن‌ها مواجه می شود. از این رو، حتی اگر فردی آشنایی کامل با جاوا اسکریپت و فریم‌ورکExt JS نداشته باشد، هم زمان با مطالعه‌ی کتاب و انجام دستورالعمل‌های ارائه شده در هر مبحث، قادر به اجرای پروژه‌های نسبتاً بزرگ می‌شود.

با توجه به اینکه این کتاب در مورد یکی از فریم ورک های جاوااسکریپت است و اپلیکیشن ساخته شده توسط جاوااسکریپت هم روی مرورگر اجرا می شود بنابراین تمام برنامه‌نویسان وب می‌توانند این کتاب را مطالعه کنند.

با فریم ورک Ext JS چه اپلیکیشن هایی می توان ساخت؟
Ext Js شرکت sencha فریم ورک Ext JS را ساخت و ارائه داد تا ایجاد وب اپلیکیشن هارا راحت تر, سریعتر و جذاب تر کند, شما با استفاده از امکانات فریم ورک Ext JS برنامه های قدرتمند تحت وب می توانید بسازید که هم از نظر ظاهر و هم از نظر مکانیزم کار شباهت بسیار زیادی به نرم افزار های سیستم عاملی دارند. Ext JS با داشتن کامپوننت های UI بسیار قوی و همچنین پشتیبانی از معماری هایی همچون MVC , MV و … ساخت هر گونه برنامه را در وب برای کاربران فراهم کرده است.خروجی فریم ورک Ext JS با هیچ فریم ورک دیگری قابل مقایسه نیست.
تفاوت sencha با Ext JS چیست ؟
Sencha به طور بسیارساده شرکت Sencha تولید کننده ی محصولی به اسم Ext JS است, جالب است بدانید که در ابتدا تنها یک تیم در حال ساخت فریم ورک Ext JS یا همان مخفف Extended JavaScript بودند که پس از پیشرفت و موفقیت این محصول, کار گسترش پیدا کرد و محصولات دیگری هم این شرکت تولید کرد و اسم مجموعه ی گروهشان را sencha گذاشتند که همان چای سبز ژاپنی است,در گذشته اسم وبسایت آنها هم www.extjs.com بود که هم اکنون به آدرس www.sencha.com ریدایرکت می شود.
آیا Ext JS فریم ورکی برای موبایل و تبلت هم دارد ؟
Ext Js به طور کلی شما در هنگام برنامه نویسی با فریم ورک Ext JS خیالتان از همه بابت راحت است, چرا که ده ها قدم از شما جلوتر فکر همه چیز را کرده است, شما با Ext JS برنامه ی خوبی ساخته اید, با همان گرامر و syntax می توانید از طریق فریم ورک sencha touch برنامه ای حرفه ای و قوی را برای دستگاه های touch پیاده کنید, جالب است بدانید یکی از هنرنمایی های سنچا ارائه ی محیطی است تحت عنوان sencha cmd که توسط آن می توانید یک workspace ایجاد کنید و plugin ها یا theme هارا به طور مشترک در یک پروژه بین sencha touch و ExtJS مورد استفاده قرار دهید. به طور کل یکی از خصوصیات مهم فریم ورک های حرفه ای جاوا اسکریپت, ارائه ی ابزاری با همان گرامر برای دستگاه های لمسی است که جالب است بدانید در رده بندی بین فریم ورک های دستگاه های لمسی فریم ورک sencha touch قویترین محیط ساخت وب اپلیکیشن های لمسی شده است.
ارتباط Sencha , Ext JS و sencha touch چیست ؟
Sencha Touch به طور خیلی ساده, شرکتی با نام sencha دو محصول بسیار قدرتمند دارد که یکی فریم ورک تحت وب Ext JS است که برای ساخت وب اپلیکیشن های مدرن بکار می رود و دیگری فریم ورک sencha touch است که برای ساخت وب اپلیکیشن های حرفه ای روی دستگاه های لمسی استفاده می شود.البته شرکت sencha محصولات بسیار مفید و قدرتمند دیگری هم در وب دارد.
آیا فریم ورک Ext JS محیط کد نویسی خاص خودش را دارد ؟
بله, Sencha Architect 3 قویترین و سریعترین محیط تولید اپلیکیشن های html5 است, برای اولین بار در دنیا می توان اپلیکیشن های مدرن تحت وب را با درگ دراپ عناصر به محیط برنامه ساخت. درست مانند تجربه ای که از کار با ویژوال استودیو دارد, اما این بار در وب.
نمودارهای حرفه ای

نمودارهای حرفه ای

بسته ی کار با نمودار فریم ورک Ext JS برنامه نویس امکان می دهد که انواع مختلفی از نمودار ها شامل Bar, Line, Pie و ... را در اپلیکیشن پیاده سازی کند. تمام این نمودار ها در انواع مختلف مرورگرها نمایش داده می شوند، شما نگران مبحث cross platform نباشید.

طراحی گرافیکی

طراحی گرافیکی

بسته ی طراحی و نقاشی موجود در Ext JS به برنامه نویس این امکان را می دهد که اشکال گرافیکی و طرح های مورد نیاز را در اپلیکیشن رسم کنیم. عملیات رسم در سیستم Draw Package با استفاده از قدرت المان SVG انجام می پذیرد. از این رو می تواند خیالتان راحت باشد که performance برنامه در هنگام تولید انیمیشن بسیار بالاست.

بسته های داده

بسته های داده

امکانات حرفه ای کار باداده یا همان data package به صورت کامل. با این امکانات شما قادر خواهید بود معماری هایی چون MVC و MVVM را در اپلیکیشن اتان به راحتی پیاده کنید. می توانید داده ها را ذخیره کنید، فیلتر کنید، یا در قالب های مختلفی به سمت سرور بفرستید. برای استفاده از این امکانات کلاس های مختلفی در Ext JS برای شما تعبیه شده است.

نمایش داده ها با Pivot Grid

نمایش داده ها با Pivot Grid

انواع کامپوننت Grid به شما کمک بزرگی در مدیریت داده ها می کنند. Ext JS به شما کمک میکند تا با استفاده از grid panel داده های جدولی را به زیباترین شکل ممکن نمایش دهید. همچنین نوع pivot grid داده های اپلیکیشن شما را به بهترین شکل خلاصه سازی می کنند و نمایش می دهند.

اسکرول بی نهایت

اسکرول بی نهایت

سیستم اسکرول در انواع کامپوننت های Ext JS می توانند با مدیریت حافظه و سرعت باعث شوند تا عمل اسکرول در نهایت لذت در برنامه انجام شود. شما قادر خواهید بود در سیستم اسکرول Page تعریف کنید. میزان cache برای نگه داری داده ها را مشخص کنید، سرعت لغزش را تعیین کنید. سیستم اسکرول در تمام کامپوننت های مورد نیاز وجود دارد.

ویرایش لحظه ای

ویرایش لحظه ای

انواع کامپوننت های مختلف Ext JS این قابلیت را دارند که بصورت UI و لحظه ای امکان ویرایش را فراهم کنند. زیباترین و جذاب ترین این کامپونت ها، قابلیت Row Editor در Grid panel است. البته به طور پیش فرض این امکان برای Grid panel فعال نیست و شما باید پلاگین مربوطه را در اپلیکیشن اتان فعال سازی کنید.

مدیریت DOM

مدیریت DOM

شاید باورتان نشود، فریم ورک Ext JS برای هر مرورگر نوع خاصی از عناصر Html را در نظر می گیرد و با توجه به نوع مرورگر بهترین و سریعترین رندر را برایتان فراهم می سازد. قطعا می دانید که یکی از سخت ترین قسمت های ساخت برنامه فراهم کردن cross browser برای اپلیکیشن است.

Theme های خوب برای برنامه

Theme های خوب برای برنامه

فریم ورک Ext JS به صورت پیش فرض به همراه تم های مختلفی عرضه می شود. بنابراین هیچوقت برنامه های شما ظاهر تکراری پیدا نخواهند کرد. سیستم Ext JS بر اساس منطق SASS ارائه شده است. لذا شما می توانید انواع تم های متنوع را برای اپلیکیشن هایتان ایجاد کنید.

کلاس بندی پیشرفته

کلاس بندی پیشرفته

از برنامه نویسی کاملا شی گرا در Ext JS لذت ببرید. همانطور که میدانید در جاوااسکرپیت نسخه ی فعلی (5) امکان تعریف کلاس وجود ندارد. در فریم ورک Ext JS هر سیستمی به صورت کلاس تعریف شده است تا کمبود این امکان برای برنامه نویس حس نشود. در Ext JS برای هر عملی یک کلاس بزرگ وجود دارد..

ساخت Form

ساخت Form

در فریم ورک Ext JS قادر خواهید بود انواع فرم را با لایه بندی های مختلفی همچون افقی، عمودی، چند خطه، ستونی و ... را به سرعت ایجاد کنید. Ext JS به طور پیش فرض از عناصر استاندارد Html5 برای این کار استفاده می کند. همچنین تعدادی گزینه های دیگر را برای تنظیمات بیشتر در اختیار کاربر قرار می دهد.

لایه بندی

لایه بندی

چیدمان المان ها در Ext JS بسیار راحت است. تصور کنید که هر مدل اپلیکیشنی را می توان با سیستم لایه بندی Ext JS پیاده سازی کرد. جالب است بدانید که به طور خودکار المان ها و container های موجود در برنامه Responsive ساخته می شوند.

Sandboxing

Sandboxing

به راحتی نسخه های مختلفی از Ext JS را در کنار یکدیگر اجرا کنید. برخی اپلیکیشن های تجاری وجود دارند که بنا به دلایلی نیاز پیدا می کنند تا هر قسمت برنامه را با هسته ی یک نسخه ی خاصی از Ext JS اجرا کنند. در این هنگام شما خیالتان راحت باشد. فریم ورک Ext JS خودش ساز و کارهایی را که نیاز دارید برایتان فراهم می کند.

معماری کپسوله شده

معماری کپسوله شده

اپلیکیشن های تولید شده توسط فریم ورک Ext JS تنها آن قسمتی از هسته ی فریم ورک را که نیاز دارند لود می کنند. جالب است زمانی که شما یک اپلیکیشن بزرگ می سازید و اضافه کردن فریم ورک Ext JS تنها 100 کیلوبایت به حجم برنامه اضافه می کند.

معماری کپسوله شده

دسترسی با کیبرد

با استفاده از مکانیزم focus manager به راحتی به کاربر قابلیت دسترسی به المان ها با استفاده از صفحه کلید بدهید. پیاده سازی این عمل با استفاده از جاوااسکریپت خام کار بسیار پیچیده ای است. تحقیقات نشان داده است هنگام کار با نرم افزارها سرعت کار با صفحه کلید بیشتر از کار با موس است.

مدیریت Z-Index

مدیریت Z-Index

ممکن است در یک وب اپلیکیشن چندین پنجره داشته باشید، نیاز است زمانی که کاربر روی هر کدام از این پنجره ها کلیک میکند مانند اپلیکیشن های ویندوزی، آن پنجره با محتویاتش به صورت کامل روی عناصر دیگر دیده شود. ساختن چنین سیستمی در وب سخت و پیچیده است.

با توجه به اینکه این کتاب در 700 صفحه تنظیم شده است و با توجه به کتاب هایی در این رده این قیمت کاملا مناسب و حتی پایین است و چنانچه تجربه ی خرید اینترنتی را داشته باشید می دانید که هزینه ی ارسال هم از خریدار دریافت می شود که ما برای ترویج و نشر دانش این فریم ورک و احترام به حقوق کاربران، هزینه ی ارسال را از خریدار دریافت نکرده و افردا فارغ از موقعیت مکانی خود می توانند این کتاب را در هر نقطه از کشور تنها با پرداخت 40 هزار تومان دریافت نمایند.
با توجه به تحقیقات صورت گرفته و همچنین خصوصیات فریم ورک Ext JS روند یادگیری این کتاب با مسائل ابتدایی شروع شده و با عناوین پیشرفته تری خاتمه می یابد, بنابراین قویا پیشنهاد می شود کسانی که قصد دارند از ابتدا فریم ورک Ext JS را فرا بگیرند براساس فصول تدوین شده ی همین کتاب پیش بروند چرا که هر فصل مقدمه ی فصل بعدی خود می باشد.
همانطور که میدانید فریم ورک Ext JS بسیار گسترده می باشد و ارائه ی تمام نکات آن حتی در این کتاب 700 صفحه ای هم کار مشکلی است, اما سعی بر این شده که تمام عناوین مهم و کاربردی برای ایجاد یک پروژه ی قوی و تبدیل شدن به یک متخصص Ext JS ارائه شود. با توجه به اینکه نویسندگان خود تجربه ی چندین ساله در این تکنولوژی دارند و همچنین شانس حضور در پروژه های بین المللی را داشته اند کاملا به این واقف بودند که بعد از اتمام یک پروژه برای اجرا نیازهای دیگری خودنمایی می کنند منجمله بحث افزایش کارایی و یا performance که بسیار مهم است و یا مبحث SEO که جاده ی پولسازی وبسایت هاست.ما در فصول انتهایی این کتاب مطالبی در این گونه مباحث ارائه کرده ایم و به طور کل سعی بر این بوده است که خواننده و کاربر تا انتهای پروژه تنها نباشد و همراهی همچون این کتاب داشته باشد.
به جرئت می توان گفت تا به حال کتابی در این سطح برای فریم ورک Ext JS حتی در سطح دنیا ارائه نشده است, نویسندگان این کتاب در حین نوشتن و تالیف, مراجع و رفرنس های بیشماری در زمینه فریم ورک Ext JS را مورد بررسی قرار دادند که بسیاری از انها هم کتاب های با ارزشی بودند و حتی از بخشهایی از انها در این کتاب استفاده شد اما هیچ یک به همراهی کاربر تا انتهای پروژه نپرداخته بودند, باعث مسرت است که ما علاوه بر توضیح وبررسی مثالهای مختلف و کاربردی, پا را یک قدم فراتر نهاده و نیازهای ثانویه ی یک پروژه را هم به چالش کشیده ایم و راه حل هایی هم ارائه داده ایم.
میدانید که اپلیکیشن های ساخته شده توسط Ext JS بصورت Single page یاتک صفحه ای ساخته می شوند, بنابراین درخواست ها از طریق شی XML Http Request مدیریت می شوند, نکته اینجاست: موتور جستجو و یا همان علم seo, موتور جستجو نمیتواند درخواست های Ajax را اجرا کند, پس چگونه محتوای وبسایت را می تواند متوجه شود ؟؟ما در فصل 14 این کتاب به طور مفصل راه حل این قضیه را با توجه به پروتکل های جدید موتورهای جستجو ارائه داده ایم
درنوشتن این کتاب منابع و کتاب های متعددی مورد مطالعه و بررسی قرار گرفتند تا اطمینان حاصل گردد که به طرح تمام مسائل پرداخته ایم, مثالهای زیادی در کتاب ها, مقالات , انجمن ها و ... دیدیم که بعضی از آنها جالب بودند و از آنها در قسمت های مربوط استفاده نمودیم, به این پی بردیم که تقسیم بندی استانداردی برای یادگیری Ext JS وجود دارد که اکثرا از آن استفاده می کنند پس از آن تقسیم بندی ما هم بهره بردیم, در پروژه های اجرا شده توسط خودمان فهمیدیم خصوصیات single page applicationهای ایجاد شده چیست بنابراین انها را به این کتاب اضافه کردیم.
همانطور که شما هم می دانید دنیای "وب سایت ها" با سرعت زیادی به سمت "اپلیکیشنهای تحت وب" پیش می رود ومیدانید که محیط جامعی برای این کار در وب وجود نداشت تا اینکه شرکت قدرتمند و رویایی sencha فریم ورک قدرتمند Ext JS را ارائه کرد, به نظر ما که چندین سال است از Ext JS استفاده می کنیم این محیط واقعا مانند ویژوال استودیوی دنیای وب است.
به طور قطع می توان گفت که فریم ورک Ext JS تمام امکانات و ابزارهای لازم برای ایجاد یک اپلیکیشن حرفه ای تحت وب را دارد.
با توجه به اینکه این فریم ورک در ایران کمی ناشناخته مانده است لذا تصمیم بر این گرفته شد تا به شناخت ابعاد فوق العاده ی این سوپرمن دنیای وب بپردازیم.
این فیل کنجکاو که هر بار در هر موضوعی استایل خاصی دارد نماد وب اپلیکیشن در وب است !
همانطور که می دانید و حس کرده اید ایجاد یک وبسایت حرفه ای و یا همان وب اپلیکیشن به طوری که تمام مسائل در آن به درستی رعایت شده باشد کار بسیار پیچیده و عذاب آوری است, به طوری که دست کمی از این ندارد که شما بخواهید چیزی شبیه به یک فیل عظیم الجثه را بسازید و کاری کنید که روی دو پایش بایستد و شروع به پرواز کند. در اولین کتاب از مجموعه کتاب های گروه summit این فیل با بال هایی از جنس sencha پرواز خود را شروع کرده است, این حسی است که به ما در حین کار با Ext JS دست می دهد. چرا که با این فریم ورک ایجاد مدرن ترین اپلیکیشن ها ی تحت وب به سادگی امکان پذیر است. حتما این ویدئو را مشاهده کنید.
تقریبا همه ی کسانی که به نوعی در وب مشغول کار هستند فارغ از اینکه در سمت سرور چه تکنولوژی ای مورد استفاده قرار می دهند می توانند از این تکنولوژی برای مدیریت اپلیکیشن در سمت کلاینت بهره ی کافی را ببرند. Ext JS سمت کلاینت برنامه ی شما را آنچنان قدرتمند می سازد که تفاوتی با یک برنامه ی سیستم عالی نکند و کاربر حتی باور نمیکند که این امکانات در یک برنامه ی تحت وب و از طریق مرورگر در حال اجرا است.فرقی نمیکند شما ASP کار می کنید یا PHP, به هر حال شما باید کدهای جاوا اسکریپت را هم در سمت کلاینت بنویسید و چه بهتر که این عملیات به Ext JS سپرده شود و شما تایم و زمانتان را صرف قسمتهای دیگر پروژه بکنید.
بله مسلما,در این کتاب ما سعی کرده ایم تمام عناوین, ابعاد وخصوصیات این فریم ورک را مورد بررسی و مطالعه قرار دهیم اما این فریم ورک انچنان گسترده و توانمند است که برای تخصص در هر قسمت بهتر است مراجع و منابع و کتاب های دیگری را هم مورد مطالعه قرار دهید...
آنچه که نویسندگان را بر این داشت تا یک سال از وقت خود را صرف نوشتن و تهیه ی این کتاب بکنند تجربه ی بسیار شیرین آنها در استفاده از این فریم ورک بوده است, بیشتر از 4 سال در پروژه های کوچک و بزرگ از معماری, کامپوننت های UI و امکانات دیگر Ext JS استفاده کردیم و در فروم ها و انجمن های خارجی و بین المللی میدییدم که روز به روز به تعداد برنامه نویسان و توسعه دهندگان افزوده می شود و این تکنولوژی فوق العاده در ایران کمی بیگانه مانده است, حیف از این موضوع که چرا چنین ابزار قدرتمندی در وب که می تواند هزاران پروژه را سرعت و قدرت ببخشد مرجع و منبعی به زبان فارسی ندارد. لذا تصمیم گرفتیم کتابی جامع, شایسته ی برنامه نویسان و توسعه دهندگان وب فارسی به رشته ی تحریر درآوریم.