ورود به حساب کاربری        عضویت
مشاوره تلفنی    05136615381 - 09155249646 - 05136639567  

30
ژوئن

0
تاریخچه اینترنت

تاریخچه اینترنت

 

arm3

arm2

 

 

 

تاریخچه اینترنت :

طرحی محاسباتی از بخش کوچکی از شکل شبکه اینترنت. نقطه‌ها در تصویر نشانگر آدرس‌های آی‌پی، و خطوط میان آن‌ها نشانگر خط ارتباط بین دو آی‌پی می‌باشد.اتحاد جماهیر شوروی آن زمان موشکی با نام «اسپونیک» (Spotnik) را به فضا می‌فرستد و نشان می‌دهد دارای قدرتی است که می‌تواند شبکه‌های ارتباطی آمریکا را توسط موشک‌های بالستیک و دوربرد خود از بین ببرد. آمریکایی‌ها در پاسخگویی به این اقدام روس‌ها، موسسه پروژه‌های تحقیقی پیشرفته “ARPA” را به‌وجود آوردند. هدف از تاسیس چنین موسسه‌ای پژوهش و آزمایش برای پیدا کردن روشی بود که بتوان از طریق خطوط تلفنی، کامپیوترها را به هم مرتبط نمود. به طوری که چندین کاربر بتوانند از یک خط ارتباطی مشترک استفاده کنند. در اصل شبکه‌ای بسازند که در آن داده‌ها به صورت اتوماتیک بین مبدا و مقصد حتی در صورت از بین رفتن بخشی از مسیرها جابه‌جا و منتقل شوند. در اصل هدف “ARPA” ایجاد یک شبکه اینترنتی نبود و فقط یک اقدام احتیاطی در مقابل حمله احتمالی موشک‌های اتمی دوربرد بود. هر چند اکثر دانش امروزی ما درباره شبکه به‌طور مستقیم از طرح آرپانت “ARPPA NET” گرفته شده‌است. شبکه‌ای که همچون یک تار عنکبوت باشد و هر کامپیوتر ان از مسیرهای مختلف بتواند با همتایان خود ارتباط دااشته باشد واگر اگر یک یا چند کامپیوتر روی شبکه یا پیوند بین انها از کار بیافتاد بقیه باز هم بتوانستند از مسیرهای تخریب نشده با هم ارتباط بر قرار کنند.

این ماجرا با وجودی که بخشی از حقایق به‌وجود آمدن اینترنت را بیان می‌کند اما نمی‌تواند تمام واقعیات مربوط به آن را تشریح کند. باید بگوییم افراد مختلفی در تشکیل اینترنت سهم داشته‌اند آقای “Paul Baran” یکی از مهمترین آنهاست. آقای باران که در دوران جنگ سرد زندگی می‌کرد می‌دانست که شبکه سراسری تلفن آمریکا توانایی مقابله با حمله اتمی شوروی سابق را ندارد. مثلا اگر رییس جمهور وقت آمریکا حمله اتمی متقابل را دستور دهد، باید از یک شبکه تلفنی استفاده می‌کرد که قبلا توسط روس‌ها منهدم شده بود. در نتیجه طرح یک سیستم مقاوم در مقابل حمله اتمی روس‌ها ریخته شد.آقای باران (Baran) تشکیل و تکامل اینترنت را به ساخت یک کلیسا تشبیه کرد و معتقد بود، طی سال‌های اخیر هر کس سنگی به پایه‌ها و سنگ‌های قبلی بنا اضافه می‌کند و انجام هر کاری وابسته به کارهای انجام شده قبلی است. بنابراین نمی‌توان گفت، کدام بخش از کار مهمترین بخش کار بوده‌است و در کل پیدایش اینترنت نتیجه کار و تلاش گروه کثیری از دانشمندان است. داستان پیدایش اینترنت با افسانه و واقعیت در هم آمیخته شده‌است.

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

آقای باران (Baran) طی مقالاتی اینچنینی ساختمان و ساختار اینترنت را پیش‌گویی کرد. او از کار سلول‌های مغزی انسان به عنوان الگو استفاده کرد، او معتقد بود: وقتی سلول‌های مغزی از بین بروند، شبکه عصبی از آنها دیگر استفاده نمی‌کند و مسیر دیگری را در مغز انتخاب می‌کند. از دیدگاه وی این امکان وجود دارد که شبکه‌ای با تعداد زیادی اتصالات برای تکرار ایجاد شوند تا در صورت نابودی بخشی از آن، همچنان به صورت مجموعه‌ای به هم پیوسته کار کند. تا نیمه دهه ۶۰ میلادی کسی به نظرات او توجه‌ای نکرد. تا اینکه در سال ۱۹۶۵ نیروی هوایی آمریکا و«آزمایشگاه‌های بل» به نظرات او علاقه‌مند شدند و پنتاگون با سرمایه‌گذاری در طراحی و ساخت شبکه‌ای براساس نظریات او موافقت کرد .

ولی آقای باران بنابر دلایلی حاضر با همکاری با نیروی هوایی آمریکا نشد. در این میان دانشمندی با نام تیلور وارد موسسه آرپا شد. او مستقیما به آقای هرتسفلد رییس موسسه پیشنهاد کرد: آرپا هزینه ایجاد یک شبکه آزمایشی کوچک با حداقل چهار گره را تامین کند که بودجه آن بالغ بر یک میلیون دلار می‌شد. با این پیشنهاد تیلور تجربه‌ای را آغاز کرد که منجر به پیدایش اینترنت امروزی شد. او موفق شد در سال ۱۹۶۶، دو

کامپیوتر را در شرق و غرب آمریکا به هم متصل کند. با این اتصال انقلابی در نحوه صدور اطلاعات در دنیای ارتباطات رخ داد که نتیجه آن را امروز همگی شاهد هستیم. این شبکه به بسته‌هایی از داده‌ها که به وسیله کامپیوترهای مختلف ارسال می‌شدند اتکا داشت. پس از انکه ازمایشها سودمندی انرا مشخص کردند سایر بخش‌های دولتی و دانشگاهها پژوهشی تمایل خود را به وصل شدن به ان اعلام کردند . ارتباطات الکترونیکی به صورت روشی موثر برای دانشمندان و دیگران به منظور استفاده مشترک از داده‌ها در امد. در همان زمان که ARPAnet در حال رشد بود تعدادی شبکه پوشش محلی (LAN) در نقاط مختلف آمریکا به وجود امد. مدیران LANها نیز به وصل کردن کامپیوترهای شبکه‌های خود به شبکه‌های بزرگتر اقدام کردند . پروتوکل اینترنت ARPAnet IP زبان استاندارد حکمفرما برای برقراری ارتباط کامپیوترهای شبکه‌های مختلف به یکدیگر شد.تاریخ تولد اینترنت به طور رسمی اول سپتامبر ۱۹۶۹ اعلام شده‌است. زیرا که اولین “IMP” در دانشگاه “UCLA” واقع در سانتاباربارا در این تاریخ بارگذاری شده‌است.

از اوایل دهه ۱۹۹۰ رشد استفاده از اینترنت به صورت تصاعدی افزایش یافت . یکی از علل چنین استقبالی ابزار جستجویی مانند Gopher و archie بوده‌است اما اینها در سال ۱۹۹۱ تحت تاثیر word wide web قرار گرفتند که به وسیله CERN یا ازمایشگاه فیزیک هسته‌ای اروپا ساخته شد . با ان که اینترنت از ابتدا طوری بود که مبادله اطلاعات برای تازه واردان بسیار ساده باشد. بزرگترین جهش در وب در سال ۱۹۹۳ با عرضه نرم‌افزار موزاییک mosaic که نخستین برنامه مرورگر وب گرافیکی بود به وجود امد. برنامه موزاییک محصول تلاش دانشجویان و استادان بخش “مرکز ملی کاربردهای ابر کامپیوتر ” در دانشگاه ایلینویز آمریکا بود. برای نخستین بار موزاییک امکانات اشاره و کلیک (به وسیله موش) را فراهم کرد. کاربران می‌توانستند صفحات وب (web page) یا مجموعه‌ای از متن و گرافیک را کنار هم بگذارند تا هر کسی که میخواست انها را بتواند روی اینترنت ببیند. وقتی با موش روی کلمه‌ها یا تصاویر خاصی که hyper link نامیده می‌شد کلیک می‌کردند برنامه موزاییک به طور خود کار یک صفحه دیگر باز می‌کرد که به کلمه یا تصویر خاص و کلیک شده اختصاص داشت. بهترین بخش این سیستم انجا بود که hyper link ها می‌توانستند به صفحاتی روی همان کامپیوتر یا هر کامپیوتر دیگر اینترنت با خدمات وب اشاره کنند. صفحات وب هر روز متولد می‌شدند و مفهوم موج سواری یا surfing روی وب متولد شد. اواسط سال ۱۹۹۴ سه میلیون کامپیوتر به اینترنت وصل شده بود و در ان هنگام اجرای عملیات اهسته نشده بود. صفحات جدید وب که شامل همه چیز از اسناد دولتی تا مدارک شرکت‌ها و مدل‌های جدید لباس بود در سراسر دنیا چندین برابر شد . موزاییک و جانشینان ان مانند navigator محصول شرکت ” نت اسکیپ ” اینترنت را از قلمرو علمی به میان مردم اوردند. طبق اخرین امار ۵۱ درصد کاربران بعد از سال ۱۹۹۵ وارد این محیط شده‌اند. میلیون‌ها انسانی که از اینترنت استفاده می‌کنند نیازی ندارند که نکات فنی مانند TCP/IP را بدانند . امروزه شرکتهای خدمات دهنده اینترنت یا ISP این کار را به عهده دارند.رشد روز افزون ان و ساده تر شدن استفاده ان همچنان ادامه دارد . هر چه تعداد مردم بیشتری به اینترنت رجوع کنند تعداد شرکت‌های سازنده برنامه‌های اینترنت بیشتر می‌شود.با انکه بعضی از عاشقان اینترنت ان را نوعی شیوه زندگی می‌دانند. در نظر بیشتر کاربران منبع سرگرمی اطلاعات است ولی بیشترین مصرف ان پست الکترونیکی یا همان email است که یکی از ابزارهای ارتباطی کار امد به شمار می‌رود. پیامها از کامپیوتری به کامپیوتر دیگر با سرعت پرواز می‌کنند و منتظر میمانند تا شخص فرصت خواندن انها را پیدا کند . وب امکانات خوبی برای کپی از نرم‌افزارهای مجاز از لحاظ کپی فراهم میسازد. وقتی که می‌بینیم که در مدت کوتاهی اینترنت به چنین رشدی نایل آمده است، مطمئنا دشوار خواهد بود که آینده او را پیش بینی کنیم. طبق نظر کارشناسان ماهانه ۱۰ درصد به تعداد کاربران اینترنت افزوده می‌شود ولی تعداد دقیق کاربران که روزانه از آن استفاده می‌کنند مشخص نیست. هرچند که پاره‌ای از کارشناسان تعداد آنها را تا ۹۰۰ میلیون نفر حدس می‌زنند. تعداد رسمی کاربران اینترنتی را در سال ۲۰۰۰ کارشناسان ۵۰۰ میلیون نفر اعلام کرده بودند.

قطعا در سال‌های آینده تحولات شگرفی را در زمینه شبکه‌های اینترنتی شاهد خواهیم بود. به‌وسیله اینترنت انسان به راه‌های جدیدی دست پیدا کرد. در کنار این شانس جدید توسط اینترنت، باید بگوییم خطراتی نیز در رابطه با سیاست و اقتصاد و علم به دنبال خواهد داشت. فرم امروزی اینترنت مدیون همکاری تمام کاربران اینترنت در سرتاسر گیتی است که با این تصور که اطلاعات موجود در سطح جهان را به راحتی با یکدیگر مبادله کنند. این تصوری بود که آقای باران(Baran) از اینترنت داشت و امیدواریم در آینده نیز تکامل اینترنت در این مسیر باشد .

تاریخچه اینترنت در ایران :

سال ۱۳۷۱: تعداد کمی از دانشگاه‌های ایران، از جمله دانشگاه صنعتی شریف و دانشگاه گیلان، توسط مرکز تحقیقات فیزیک نظری و از طریق پروتکل UUCP به اینترنت وصل می‌شوند تا با دنیای خارج ایمیل رد و بدل کنند.

سال ۱۳۷۲ :در سال ۱۳۷۲ هجری شمسی ایران نیز به شبکه اینترنت پیوست. نخستین رایانه‌ای که در ایران به اینترنت متصل شد مرکز تحقیقات فیزیک نظری در ایران بود. در حال حاضر نیز این مرکز یکی از مرکزهای خدمات اینترنت در ایران است .مرکز تحقیقات فیزیک نظری و ریاضیات، بعنوان تنها نهاد ثبت اسامی قلمرو [ir.] در ایران به رسمیت شناخته می‌شود. این قلمرو مشخّصه تعیین شده برای هویّت ایران در فضای اینترنت است.

سال ۱۳۷۳ : مؤسسه ندا رایانه تأسیس می‌شود. پس از راه‌اندازی اوّلین بولتن بورد (BBS)، در عرض یک سال نیز اوّلین وب سایت ایرانی داخل ایران را راه‌اندازی می‌کند. همچنین، این مؤسسه روزنامه «همشهری» را به زبان فارسی در اینترنت منتشر می‌کند، که این اوّلین روزنامه رسمی ایرانی در وب محسوب می‌شود. در همین سال به‌دنبال اتصال به اینترنت از طریق ماهواره کانادائی «کد ویژن» (Cadvision)، مؤسسه ندا رایانه فعالیت بازرگانی خود را بعنوان اوّلین شرکت خدمات سرویس اینترنتی (ISP) آغاز می‌کند.

سال ۱۳۷۴ :مجلس ایران تأسیس شرکت «امور ارتباطات دیتا» تحت نظر شرکت مخابرات ایران را تصویب می‌کند و مسؤلیت توسعه خدمات دیتا در سطح کشور را بطور انحصاری در اختیار آن شرکت قرار می‌دهد.

سال ۱۳۷۷ :پروژه یونیکد در ایران با قرارداد شورای عالی انفورماتیک و همکاری بنیاد دانش و هنر واقع در انگلستان و با نظارت و مدیریت فنّی دانشگاه صنعتی شریف تحت عنوان «فارسی وب» آغاز می‌شود. هدف پروژه اینست که با گنجاندن کامل و جامع الفبای فارسی در استاندارد یونیکد، نشر فارسی در کامپیوتر، مخصوصاً اینترنت و وب، استاندارد شود و اصولاً مشکل قلم (فونت)های غیر استاندارد موجود در نرم‌افزارهای ایرانی حل شود .

اصول پیاده سازی نرم افزارهای مبتی بر وب :

بمنظور بررسی مقوله پياده سازی نرم افزار بر روی بستر وب بحث خود را بر روی دو موضوع عمده متمركز می كنيم: شناخت مدل های رايج جهت پياده سازی نرم افزار از ابتدا تا كنون و شناخت وب بعنوان بستر مربوطه بهمراه تكنولوژی هائی كه در اين زمينه مورد استفاده قرار می گيرند .

هدف ما رسيدن به نقطه ای است كه مشخص نمائيم، برای طراحی و پياده سازی نرم افزار بر روی بستر وب، اولا از چه نوع مدلی برای پياده سازی استفاده می گردد و ثانيا روند توسعه و تكامل وب را با تاكيد بر نيازهای نرم افراری از بعد ابزارشناسی دنبال كرده و از اين رهگذر جايگاه هر ابزار (تكنولوژی) تبين شده تا بدين وسيله بتوانيم از هر چيز در جايگاه خود و در زمان مربوطه استفاده كنيم. بهرحال وب يك واقعيت انكار ناپذير بوده و سايه حضور آن را در همه جا می توان احساس كرد. نرم افزار نيز مجری خواسته های انسانی در سرزمين سخت افزار است، اين بار با يك چالش جدی مواجه شده است : پاسخگوئی به خيل نيازهای جديد مطرح شده متكی بر بستر وب.

در بخش اول اين مقاله موضوع اول يعنی شناخت مدل های پياده سازی نرم افزار تشريح خواهد شد. به اين اميد كه از اين رهگذر به نقطه ای برسيم كه يك مدل مناسب جهت پياده سازی برنامه های تحت وب را معرفی و آن را بعنوان پايه و اسا س كار خود قرار دهيم. در ابتدا لازم است به اين اصل بديهی اشاره شود كه يك برنامه كامپيوتری حاصل تركيب داده ها و منطق است. منطق يك برنامه از طريق كدهای مربوطه كه به يكی از زبانهای برنامه نويسی نوشته خواهند شد، مسئول تحقق خواسته های تعريف شده برای يك نرم افزار از طريق انجام عمليات مورد نياز بر روی داده ها است. داده ها خود می توانند به اشكال و روش های متنوعی سازماندهی و در اختيار يك نرم افزار قرار گيرند.

Program = Logic(Code) + Data :

مدل های پياده سازی يك نرم افزار از ابتدا تاكنون متاثر از عوامل متفاوتی بوده است كه جايگاه سخت افزارها بعنوان پتانسيل هائی كه می بايست توان خود را در جهت بالفعل نمودن نرم افزارها قرار دهند، نقش برجسته ای دارد. مدل های پياده سازی نرم افزار را می توان در پنج گروه عمده بشرح زير تقسيم نمود :

MainFrame Architecture

در اين مدل دو عنصر فيزيكی مورد اهتمام جدی بودند: كامپيوتر اصلی كه با نام Host شناخته می شد و سخت افزارهای استفاده كننده از كامپيوتر اصلی كه با نام ترمينال شناخته می شدند. تمامی منطق يك برنامه (Logic) بهمراه داده های مربوطه (Data) بر روی Host نصب می شد و كاربران با استفاده از ترمينال ها كه بمنزله پايانه هائی جهت ورود و خروج ( نمايش ) اطلاعات بودند، قادر به ارتباط با سيستم و اجرای يك برنامه بودند. تمركز منطق برنامه در يك محل (Host) از مهمترين ويژگی های اين مدل است.

File Server Architecture :

از اين مرحله دو واژه معروف Server و Client پا به عرصه وجود گذاشتند. حيات و معنی اين واژه ها محدود به سخت افرار بود و به مرزهای نرم افزار نرسيده بود. در اين راستا كامپيوتری كه برای ديگران سرويس هائی را ارائه می كرد با نام Server يا در اين حالت خاص (File Server) و كامپيوترهائی كه از اين خدمات بهره مند می شدند را Client می گفتند. مدل فوق پاسخی اوليه به نيازهای كاربران يك شبكه كامپيوتری بود. در مدل فوق منطق يك برنامه بر روی يك Client نصب و داده ها بر روی Server قرار می گرفتند. دراين مدل داده ها در يك فايل ( با يك ساختار خاص) قرار گرفته و يك بانك اطلاعاتی را بوجود می آوردند و سرويس دهنده مسئول ارائه تسهيلاتی برای جابجائی و ارسال اطلاعات موجود در فايل ها بود. تمركز منطق برنامه در يك محل ( Client ) از مهمترين ويژگی های اين مدل است.

Client Server Architecture :

مدل فوق در پاسخ به اشكالات بوجود آمده در مدل قبل ارائه گرديد. در مدل فوق كامپيوتر ارائه كننده خدمات را همچنان Server و كامپيوترهای استفاده كننده را Client می ناميدند. داده های يك برنامه (بانك های اطلاعاتی) همچنان بر روی سرويس دهنده قرار داشت ولی در رابطه با منطق برنامه اصل توزيع پردازش مورد توجه جدی قرار گرفت. بنابر اصل فوق بخشی از منطق يك برنامه را در حد امكان بر روی سرويس گيرنده اجرا و بخش ديگر از منطق برنامه بر روی سرويس دهنده اجرا می گرديد. در مدل فوق برای اجرای يك برنامه دو پردازش جداگانه يكی بر روی سرويس دهنده و ديگری بر روی سرويس گيرنده فعال و هر يك نقشی در اجرای يك برنامه را برعهده می گرفت. مهمترين ويژگی مدل فوق مطرح كردن اصل پردازش توزيع شده است.

Two Tire Architecture :

در مدل فوق اصل تقسيم وظيفه بصورت يك واقعيت انكار ناپذير مورد توجه جدی قرار گرفت در اين مدل همچنان كامپيوترهای سرويس دهنده و سرويس گيرنده جايگاه قبلی خود را داشتند با اين تفاوت بسيار مهم كه حوزه انجام هر عمليات ( منطق) تا اندازه ای شفاف تر گرديد. مثلا جهت دستيابی به بانك های اطلاعاتی تمامی DataBase Engine بر روی سرويس گيرنده قرار می گرفت و سرويس گيرندگان جهت استفاده از داده های موجود در بانك اطلاعاتی نيازمند نصب امكانات نرم افزاری و آگاهی از ساختار بانك اطلاعاتی نبودند. از اين مرحله واژه های سرويس گيرنده و سرويس دهنده پا به عرصه نرم افزار نيز گذاشتند و مفاهيمی نظير سرويس دهنده بانك اطلاعاتی و رايج شد. مهمترين ويژگی مدل فوق تاكيد بر اصل تقسيم فعاليت در چهارچوب ارائه طبقات (Tires) بود.

Three Tire Architecture :

در مدل فوق اصل تفكيك مجموعه قوانين (سياست های) مربوط به عملكرد يك نرم افزار مورد توجه جدی قرار گرفت. بديهی است با حجيم شدن يك نرم افزار از يكطرف و افزايش تعداد كاربران از طرف ديگر و تغييرات متوالی در سياست های راهبردی و عملياتی يك نرم افزار در يك سازمان، مسائل مربوط به پشتيبانی و ارتقاء يك نرم افزار از مسائل بسيار مهم و حياتی در موفقيت افزايش طول عمر يك نرم افزار محسوب می گردد.

در مدل فوق همچنان واژه های سرويس دهنده و سرويس گيرنده حضور مستمر خود را ادامه دادند با اين تفاوت بسيار مهم كه حوزه عملكرد اين واژه ها در رابطه با نرم افزار بسيار برجسته گرديد. در اين مدل از سه لايه استفاده می گردد: لايه اول مسئول تماس و ارتباط با كاربر و ارائه دهنده محيط رابط كاربر، لايه دوم ( ميانی ) مسئول نگهداری و اجرای سياست ها و قوانين كليدی و راهبردی حاكم بر نرم افزار و لايه سوم مسئوليت نگهداری بانك اطلاعاتی و ارائه سرويس و خدمات به لايه متقاضی ( لايه دوم ) است. عملكرد لايه دوم ( ميانی ) بسيار گسترده بوده و می توان با همگرا نمودن اين عملكردها به چند بخش، لايه های ديگری را نيز در اين بخش داشته باشيم، در چنين حالتی اين مدل اصطلاحا N-Tire ناميده می شود.

مدل فوق بهترين انتخاب برای پياده سازی نرم افزار بر روی بستر وب است. كليد طلائی طراحی اين نوع نرم افزارها توانائی نوشتن عناصر (اجزا) بگونه ای است كه از يكطرف امكان بكارگيری آنها بسادگی در لايه ها و حتی چندين برنامه فراهم شده و از طرف ديگر امكان ارتباط اين عناصر با يكديگر صرفنظر از زبان برنامه نويسی استفاده شده و ساير موارد مرتبط فراهم گردد. ما می بايست جعبه های سياهی را طراحی كنيم كه صرفنظر از ماهيت درون هريك، قادر به استفاده از توان آنها در بخش يا بخش هائی از يك و يا چندين نرم افزار باشيم. مطلب فوق شايد مهمترين دليل رويكرد شركت های عظيم نرم افزاری جهت ارائه يك ساختار استاندارد برای توليد اين عناصر باشد. تكنولوژی Component Object Model يا COM پاسخ شركت مايكروسافت به اين نياز حياتی بود.

تكنولوژی COM :

مهمترين ويژگی تكنولوژی فوق قابليت استفاده مجدد و ارتباط متقابل برای عناصر( اشياء) توزيع شده است. بدين ترتيب پياده كنندگان نرم افزار اين امكان را پيدا خواهند كرد تا با در كنار هم قرار دادن اين عناصر و استفاده چندباره از آنان (حتی اگر توليدكنندگان آنها متفاوت باشند) قادر به خلق آثار ماندگار خود در سريعترين زمان ممكن و متكی بر اصول مهندسی نرم افزار باشند.

ريشه COM :

تكنولوژی COM بصورت ناگهانی مطرح نگرديد و ريشه در تلاش هائی دارد كه از مدت ها قبل بعنوان يك نياز مطرح شده بود. معرفی تكنولوژی Object Linking & Embedding يا OLE در سال 1991 اولين تلاش در اين زمينه بود كه توسط شركت مايكروسافت برای ارتباط و پيوستگی بين مستندات در چهارچوب مجموعه برنامه های آفيس مطرح گرديد. حوزه عملكرد تكنولوژی فوق بر روی مستندات (Documents) متمركز بود. در ادامه شركت مايكروسافت به اين نكته پی برد كه تكنولوژی فوق نبايد صرفا متمركز بر روی مستندات باشد و می تواند عملكردی جامع تر را تحت پوشش خود قرار دهد. بدين منظور نسخه شماره ۲، OLE در سال 1995 مطرح گرديد و اين نسخه در ادامه تمامی عناصر و اجزای موجود در محيط ويندوز را شامل گرديد و بدين ترتيب COM مطرح شد.

در اوايل، تكنولوژی فوق در رابطه با عناصر و اجزای توزيع شده امكانات قابل توجه ای ارائه نكرده بود. شايد يكی از مهمترين دلايل آن عدم عرضه يك سيستم عامل شبكه ای از طرف مايكروسافت تا آن زمان بود. همزمان با عرضه ويندوز 95 و ويندوز NT در سال 1996 و مطرح شدن امكانات شبكه ای و ضرورت توزيع، اجرا و ارتباط بين عناصر توزيع شده تكنولوژی Distributed COM يا DCOM مطرح گرديد. سرانجام در سال 1997 نسخه توسعه يافته اين تكنولوژی با نام +COM توسط شركت مايكروسافت ارائه گرديد.

در اين راستا شايد مناسب باشد كه به عملكرد هر Tire در نرم افزارها از بعد سرويس دهی متمركز شده و هر Tire را بعنوان مجموعه ای از سرويس ها در نظر بگيريم كه مسئول ارائه سرويس به عناصر موجود در Tire خود و يا ساير Tire های مرتبط باشد. با اين نگرش می توان گفت تمامی نرم افزارها خدمات و سرويس های خود را در سه بخش ارائه می نمايند:

• User Sevices
• Business Services
• Data Services

در مدل Three Tire مسئوليت ارائه هر يك از سرويس های فوق به يك Tire واگذار می گردد. عناصر موجود و مسئول ارائه سرويس و خدمات در هر Tire قادر به ارتباط و درخواست سرويس از عناصر موجود در Tire خود و ساير Tire های موجود در بالا و يا پايين خود خواهند بود. نكته بسيار مهم در رابطه با وضعيت فوق اين است كه يك درخواست جهت اخذ سرويس نمی تواند يك Tire را حذف و خود مستقيما با Tire ثانويه ( بعدی) مرتبط و اصطلاحا يك Tire را دور بزند. مثلا عناصر موجود در لايه User Services نمی توانند مستقيما درخواست خود را برای لايه Data Services ارسال دارند. البته لايه فوق نيز چنين امكانی را نخواهد داشت. هر يك از سه بخش فوق مسئوليت های خاصی را برعهده گرفته و در زمانيكه يك بخش به خدمات يك بخش ديگر نياز داشته باشد، درخواست خود را برای اخذ سرويس در اختيار بخش مورد نظر قرارداده و بخش مربوطه سرويس درخواستی را در قالب اجرای يك يا چندين عنصر انجام و ماحصل را در اختيار بخش مربوطه قرار خواهد داد .

Asp چیست :

ASP كه سرنام واژه های Active Server Pages میباشد برنامه ای است كه درون IIS اجرا میشود.IIS نیز سرنام واژه های Internet Information Services میباشد و IIS یكی از اجزاء سیستم عامل ویندوز ۲۰۰۰ است وIIS همچنین بخشی از Option pack موجود برای ویندوز ان تی ۴ می باشد(.PWS (Personal Web Serverیك روایت مختصرتر ازIIS می باشد كه آن را می توانید برروی سی دی ویندوز خود بیابید . با به كارگیری اسكریپت های روی سرویس دهنده ASP ، می توان صفحات وبی با اجزای پویا ساخت . اسكریپت های ASP می تواند توسط جاوا اسكریپت و VB اسكریپت ایجاد شود.: ASP یك فایل استاندارد HTML است كه با گروهی از تركیبات افزوده دیگر گسترش یافته است.

همانند فایل استاندارد HTML ، یك ASP می تواند شامل برچسب های HTML كه توسط مرورگر وب نمایش داده می شود باشد .
هر چیزی مثل اپلت ها جاوا ، متن چشمك زن ، اسكریپت ها و كنترل های اكتیواكس روی سرویس گیرنده ، كه بتواند در یك فایل HTML جای دهید ، در یك ASP نیز جای می گیرد .

ویژگی های Asp :

ASP می تواند اسكریپت های سمت سرویس دهنده را در بر داشته باشد .
با به كارگیری اسكریپت های روی سرویس دهنده ASP ، می توان صفحات وبی با اجزای پویا ساخت . اسكریپت های ASP می تواند توسط جاوا اسكریپت و VB اسكریپت ایجاد شود .
ASP شماری از اشیای تعبیه شده را فراهم كرده است.
با به كارگیری اشیای تعبیه شده دسترسی پذیر در یك ASP می توان اسكریپت ها را بسیار نیرومندتر كرد ، در میان اشیای دیگر ، این شیی ها به ما اجازه دریافت و ارسال اطلاعات به مرورگر را می دهد .                                                                                                                                                                                                                                               برای نمونه با استفاده از شیی Request می توان اطلاعاتی را كه یك كاربر با فرم HTML فرستاده است ، دریافت و به آن اطلاعات توسط یك اسكریپت پاسخ داد .
یك ASP می تواند توسط اجزای افزوده گسترش یابد .
ASP با شماری از اجزای اكتیواكس ، روی سرویس دهنده استاندارد دسته بندی شده است . این اجزا به ما اجازه انجام كارهایی مانند تصمیم گیری در مورد توانایی های مرور گرهای گوناگون یا گنجاندن یك شماره صفحه ، در صفحه وب را می دهد . این بدان معناست كه هیچ مرزی در چگونگی گسترش ASP ها وجود ندارد .
یك ASP می تواند اطلاعاتی را با پایگاه داده هایی مانند AQL Sarver یا Ms Access تبادل كند .                                                                                                                              با استفاده از مجموعه ویژه ای از اشیا كه اشیا داده ای اكتیواكس نامیده می شوند ، میتوان بسیار ی از پایگاه داده ها را در ASP به كار گرفت.
به كارگیری اكتیوایكس ها شكل توانمندی از ASP ها است . با ASP هایی كه می توانند با یك پایگاه داده ای داد و ستد كنند ، سایت های وب بسیار پیشرفته ای ایجاد خواهند شد .

Asp چگونه کار می کند :

شركت میكروسافت ، ASP را با سومین نسخه llS معرفی كرد . با این كار ، سرویس دهنده ای با محتوای ثابت و ایستا به یك سرویس دهنده با محتوای پویا و تأثیر پذیر تبدیل شد . مهمترین كار llS ، سرویس دادن به صفحات HTML استاندارد است .
هنگامی كه كسی نیاز به یك صفحه وب داشته باشد ، از سرویس دهنده llS استفاده می كند و آن فایل ثابت HTML را از حافظه به دست می آورد و به مرورگر مشخص می فرستد .             IIS  از دیگر سرویس دهنده های وب جدا است . مهم ترین هدف سرویس دهنده وب ، سرویس دهی به فایل HTML های است .

سرویس دادن به فایل های HTML با گام های زیر پیموده می شود :

۱ ـ یك كاربر ، نشانی اینترنتی فایل HTML ی كه می خواهد را درون خط نشانی می نویسد و با فشردن كلید Enter این درخواست را می فرستد .
۲ ـ مرورگر این درخواست را برای یك سرویس دهده وب مانند llS می فرستد .
۳ ـ سرویس دهنده وب در خواست را دریافت می كند و تشخیص میدهد كه یك فایل HTML درخواست شده است ، زیر پسوند HTM یا HTML دارد .
۴ ـ سرویس دهنده وب آن فایل را از دیسك یا حافظه دریافت كرده ، برای مرورگر می فرستد .
۵ ـ فایل HTML توسط مرورگر شخصی ترجمه و تعبیر می شود و نتیجه در پنجره مرورگر نمایش داده می شود .
البته این فرایند ها اندكی پیچیده تر هستند ، اما این گام ها كاركرد بخش به بخش یك سرویس دهنده وب را نشان می دهند . یك سرویس دهنده ، درخواست را از فایل های ویژه می گیرد و با به دست آوردن آن فایل از یك سخت افزار یا حافظه و فرستادن آن فایل ، پاسخ می دهد.

ASP.Net چيست؟

 

 

asp.netASP.NET تکنولوژی اسکریپت نویسی سمت سرور شرکت میکروسافت برای طراحی صفحات وب پویا است.                                                                                                                   شاید مفید باشد که ابتدا به توضیحات کلمات مهم در این جمله بپردازیم :
– اسکریپت :
مجموعه کدهایی که در داخل یک فایل متنی قرار گیرند و قایلیت اجرا داشته باشند.
– اسکریپت نویسی سمت سرور(Server Side):
اسکریپتی که روی دستگاه سرور اجرا می شود که از آن جمله می توان به ASP, PHP,JSP اشاره کرد.
– اسکریپت نویسی سمت مشتری(Client Side):
– صفحات ایستا(Static):
صفحاتی که در هر بار مراجعه کاربر برای او سفارشی نمی شوند و به صورت ثابت هستند.

– صفحات پویا(Dynamic):

منظور از محتویات پویا آیکن های متحرک نیست که در اغلب صفحات وب دیده می شود، بلکه محتویا پویا برای هر بیننده در هر بار دیدن صفحه سفارشی می شوند و یا با کاربر ازتباط برقرار می کنند.
مانند: صفحاتی نمایش اخبار(که با دیتا بیس ارتباط برقرار می کنند)، یا صفحاتی که دارای فرم های نظر خواهی از کاربر می باشند.

ASP.NET نسل بعدی Active Server Pages يا ASP است که توسط شرکت ميکروسافت ارائه شده است. اين محصول توسط ميکروسافت بعنوان شاخص اصلی فناوری در ساخت سايتهای وب در نظر گرفته شده است. با استفاده از ASP.NET می توان هم اينترانت کوچک يک شرکت را ساخت و هم يک سايت وب تجاری خيلی بزرگ را طراحی و پياده سازی نمود. مهمترين نکاتی که در طراحی اين محصول در نظر گرفته شده است راحتی استفاده و بالا بودن کارائی و قابليت آن می باشد. در زير برخی ويژگيهای ASP.NET را بررسی می کنيم.

• صفحات ASP.NET کامپايل می شوند.
هنگامی که يک صفحه ASP.NET برای اولين بارتوسط يک مراجعه کننده به سايت فراخوانی می شود، آن صفحه ابتدا کامپايل شده و بر روی سرور نگهداشته می شود و در فراخوانی های بعدی از آن استفاده می شود. اين بدين معنی است که صفحات ASP.NET خيلی سريع اجرا می شوند.

• صفحات ASP.NET با ابزارهای روی سرور ساخته می شوند.
با ابزارهای موجود در ASP.NET می توان صفحات پيچيده وب را براحتی طراحی نمود. بعنوان مثال با استفاده از ابزار DataGrid می توان به آسانی داده های موجود در يک بانک اطلاعاتی را تحت وب نمايش داد.

• مجموعهASP.NET عضوی از بدنه NET. است.
بدنه NET. دارای بيش از ۴۵۰۰ کلاس آماده جهت استفاده در ASP.NET است. اين کلاس ها تقريبا هر نيازی را در برنامه نويسی برآورده می کنند. بعنوان مثال از اين کلاس ها می توان جهت توليد تصاوير بر حسب تقاضا، به رمز درآوردن يک فايل و يا ارسال يک نامه استفاده کرد.

مقايسه ASP.NET و ASP کلاسيک:
ASP.NET نسل بعدی ASP يا ASP کلاسيک است. اما اين يک پيشرفت تکاملی است بطوريکه اين دو فناوری تقريبا از يکديگر متفاوتند. صفحات ASP با زبان های دستورالعمل نويسی مانند VBScript يا JScript ايجاد می شوند اما در ASP.NET ما يک فرايند کامل برنامه نويسی با زبانهای Visual Basic يا #C (سي-شارپ تلفظ شود) داريم. همچنين در ASP کلاسيک تنها پنج کلاس استاندارد (Request, Response, Application Session, Server) وجود دارد حال آنکه در ASP.NET می توان از بيش از ۴۵۰۰ کلاس استاندارد موجود در بدنه NET. بهره جست.همچنين عليرغم قدرت و امکانات زياد و متعدد ASP.NET، استفاده از آن در مقايسه با ASP کلاسيک بسيار آسانتر است. بعنوان مثال با استفاده از چند ابزار در يک صفحه ASP.NET می توان يک صفحه بسيار پيچيده HTML بدست آورد که ساخت آن در ASP کلاسيک ممکن است نياز به چند روز کار داشته باشد .

زبانهای برنامه نويسی در ASP.NET :

شما در ASP.NET می توانيد از هر زبان برنامه نويسی که با بدنه NET. سازگار باشد استفاده کنيد. اين زبانها عبارتند از Visual Basic.NET و #C و JScript.NET . اين بدين معنی است که شما جهت نوشتن برنامه در ASP.NET نياز به فراگيری زبان جديدی نداريد و اگر يکی از زبانهای ويژوال بيسيک يا ++C يا جاوا را می دانيد هم اکنون می توانيد در ASP.NET برنامه بنويسيد.از طرف ديگر تعدادی زبانهای ديگر توسط بعضی از شرکتهای فعال در اين زمينه به مجموعه زبانهای استاندارد ASP.NET افزوده شده است. بعنوان مثال اگر مايل باشيد حتی می توانيد از PERL و COBOL هم در ASP.NET استفاده کنيد.

ابزارهای ASP.NET :

سالهاست که برنامه نويسان ويژوال بيسيک جهت ساخت فرم های خود از ابزارهای ويژوال بيسيک مانند TextBox و ListBox استفاده کرده اند. در ASP.NET هم شما می توانيد از ابزارهای فراوان موجود در آن برای ساخت فرم ها و صفحات خود استفاده نمائيد. در ASP.NET چهار دسته عمده از ابزارها موجود است:

• ابزارهای اصلی مانند TextBox، RadioButton، ListBox و Button.
• ابزارهای اعتباری برای حصول اطمينان از ورود و تائيد صحت اطلاعات ورودی فرم ها.
• ابزارهای داده ای برای ارتباط با بانک اطلاعاتی و دستکاری داده.
• ابزارهای پيشرفته جهت نمايش عناصر پيچيده در واسط کاربر مانند تقويم و آگهی های تبليغاتي.

با استفاده از Visual Studio.NET شما براحتی می توانيد با چيدن تصويری اين ابزارها بر روی فرم مورد نظر، صفحه دلخواه خود را بسازيد. در صورت تمايل حتی می توانيد در يک ويرايشگر ساده متن مانند Notepad برنامه مورد نظر را نوشته و از اين ابزارها استفاده کنيد.

کتابخانه کلاس ها در NET :

کتابخانه NET. دارای بيش از ۳۴۰۰ کلاس آماده جهت استفاده در برنامه ها است. بعضی از اين کلاس ها همان کلاس های پايه مانند آرايه و رشته هستند. اما عمده اين کلاس ها به پياده سازی اعمال تخصصی مانند کار با فايل و يا توليد مستندات XML پرداخته اند.

• فضانام ها در NET :

انبوه کلاس های موجود در NET. به حال خود رها نشده اند بلکه اين کلاس ها در يک دسته بندی سلسله مراتبی به نام namespace يا فضانام چيده شده اند. بعنوان مثال کليه کلاس های مربوط به کار با فايل ها در فضانام System.IO دسته بندی شده اند. بنابراين با استفاده از نام کلاس و فضانام مربوطه هر کلاس بصورت منحصربفردی مشخص می شود. بعنوان مثال جهت دسترسی به کلاس File در فضانام System.IO می توان از عبارت System.IO.File استفاده کرد.يک دسته از فضانام ها بطور خاص برای برنامه نويسی در ASP.NET در نظر گرفته شده اند. اين فضانام ها با System.Web شروع می شوند. بعنوان مثال کليه ابزارهای HTML در فضانام System.Web.UI.HTMLControls و ابزارهای Web در فضانام System.Web.UI.WebControls قرار دارند.

  • • مجموعه ها در NET:
    کلاس های موجود در NET. در قالب مجموعه ها (Assemblies) جاسازی شده اند. نکته مهم اين است که در اينجا يک مجموعه با يک فضانام اشتباه نشود. يک مجموعه عبارت است از يک يا چند فايل که کد برنامه مربوط به کلاس ها در آن قرار دارد. برای مثال، کليه کلاس های موجود در فضانام System.IO در يک مجموعه بنام Mscorlib.dll قرار دارد. مجموعه Mscorlib.dll يک فايل معمولی است که در ديسک سخت يک کامپيوتر حاوی NET. در کنار ساير فايل ها قرار می گيرد. برای يک فضانام مهم نيست که کلاس های آن بروی ديسک چگونه ذخيره شده است. کلاس های يک فضانام ممکن است در قالب چند مجموعه ذخيره شده باشند و از طرف ديگر يک مجموعه ممکن است حاوی کلاس های چند فضانام باشد. يک فضانام عبارت است از دسته بندی منطقی کلاس ها در محيط برنامه نويسی در حاليکه يک مجموعه، دسته بندی فيزيکی کلاس ها بروی ديسک سخت است.
  • MSIL يا به اختصار IL نام دارد. MSIL مشابه کد زبان اسمبلی است. با اين تفاوت که دارای ويژگيهای شئ گرا است و مستقل از پردازنده کامپيوتر طراحی شده است. صفحات ASP.NET با هر زبانی که نوشته شوند در نهايت به کد MSIL تبديل می شوند. سپس کد MSIL در زمان اجرا توسط کامپايلری بنام JIT به کد زبان ماشين مربوطه تبديل می شود. در واقع اينکه صفحات ASP.NET قبل از اجرا به کد ميانی MSIL تبديل می شوند دلايل مهمی دارد. دليل اول اينکه اين مساله دست برنامه نويس را در انتخاب زبان برنامه نويسی باز می گذارد بدون آنکه تفاوتی در نتيجه چه از جهت سرعت و چه از جهت کارآئی برنامه احساس شود. بعنوان مثال شما می توانيد يک صفحه ASP.NET را با زبان ويژوال بيسيک بنويسيد در حاليکه سرعت اجرای آن همان سرعت برنامه ای است که با #C يا ++C نوشته شده است. و اين به آن دليل است که هر زبانی که برنامه نويس انتخاب کند در نهايت برنامه توليد شده به کد MSIL تبديل خواهد شد.
  • دليل دوم اينکه چون همه زبان های NET. به يک زبان ميانی تبديل می شوند، لذا اين زبان ها در کنار يکديگر بخوبی کار می کنند. بعنوان مثال شما می توانيد از کلاسی که به زبان ويژوال بيسيک نوشته شده است در زبان #C استفاده نمائيد.
  • ASP.NET و بررسی تفاوت های موجود با ASP کلاسيک :
  • آيا ASP.NET نسخه جديدی از ASP کلاسيک است ؟ در پاسخ به سوال فوق می بايست با صراحت اعلان نمود که ASP.NET بعنوان يک نسخه اصلاح شده و يا تکميلی نسبت به آخرين نسخه ASP کلاسيک يعنی ASP 3.0 نبوده و در حقيقت ASP.NET يک الگوی جديد برای پياده سازی برنامه ها تحت وب خصوصا” اسکريپت هائی که بر روی سرويس دهنده اجراء می گردند ، می باشد . در اين مقاله سعی خواهد شد که به بررسی مهمترين تفاوت های موجود بين ASP.NET و ASP کلاسيک پرداخته و در اين رهگذر نگاهی نيز بر اصول اوليه و اساسی برای ايجاد اين نوع صفحات داشته باشيم.
  • NET Common Language Runtime :
  • شرکت مايکروسافت در حال ايجاد يک زير ساخت سطح پايين (Low-Level) برای ويندوز است . اين زير ساخت جديد ، بعنوان حد واسط بين عمليات سطح پايين ويندوز و برنامه های کاربران ، قرار گرفته و ايفای وظيفه ( مديريت اجرای کدها ) خواهد کرد . زيرساخت فوق CLR ناميده شده است .CLR مسئول ايجاد يک سطح خاص از کپسوله سازی بين پياده کنندگان نرم افزار و سيستم عامل بوده و طبيعتا” باعث تسهيل در ايجاد برنامه های تحت ويندوز خواهد شد. در اين راستا پياده کنندگان نگران انجام عمليات سطح پايينی نظير : مديريت حافظه ،مديريت اشاره گرها ،تفاوت بين زبانهای برنامه نويسی و ساير عمليات رايج دردسر آفرين ! نخواهند بود. CLR يک محيط زمان اجراء بصورت Object-Oriented است . هر نوع داده در CLR بصورت يک شی بوده که در کنار خود مجموعه ای از متدها و خصايص را خواهد داشت . CLR امکان دستيابی به مجموعه ای حياتی از سرويس ها و خدمات ارائه شده توسط سيستم عامل نظير : امنيت ، تعيين اعتبار ،دستيابی به سيستم فايل ، دسترسی به اطلاعات شبکه ای و ساير عمليات مورد نياز را فراهم می نمايد .

نکته :

کدهایی که با استفاده از امکانات رائه شده clr نوشته می شوند را Managed Code و کدهایی را که از زیر ساختفوق استفاده نمی نماید را Unmanaged Code می گویند .

اولين برنامه در ASP.NET و شرح قسمتهای آن :

يک صفحه ASP.NET بطور عمده دارای دو بخش است: قسمت تعريف کد و قسمت اجرا. قسمت تعريف کد شامل تعريف کليه موارد و زيربرنامه هايی است که در قسمت اجرای کد استفاده می شوند. قسمت اجرای کد بخشی از صفحه است که در هنگام فراخوانی صفحه اجرا می شود و حاصل آن کد HTML است که به مرورگر ارسال می گردد.

بعنوان مثال در زير يک صفحه ASP.NET ساده آمده است که حاصل اجرای آن نمايش زمان جاری است. اين صفحه به ويژوال بيسيک نوشته شده است :

<Script Runat=”Server”>
Sub Page_Load
myLabel.text() = Date Time.Now

                                                                                                                                     </Script>
<html>
<head/><title/>Simple.aspx<title><head>
<body>
<asp:Label
ID=”myLabel”
Runat=”Server”/>
</body>
</html>

قسمت تعريف کد :

قسمت تعريف کد در ليست ۱ آن قسمت از صفحه است که با برچسب <Script Runat=”Server”> شروع شده و با برچسب <Script/> تمام می شود. در ليست بالا يک زيربرنامه بنام Page-Load تعريف شده است که در هنگام فراخوانی صفحه، بطور خودکار اجرا می شود. اين زيربرنامه صفت Text مربوط به ابزار Label را با زمان و تاريخ جاری مقداردهی می کند.

قسمت اجرای کد :

قسمت اجرای کد در اين صفحه عبارت است از مابقی صفحه در زير قسمت تعريف کد. شما حتما تاکنون متوجه شده ايد که عمده قسمت اجرای کد می تواند همان HTML معمولی باشد. در اين قسمت از ابزار Label از مجموعه ابزارهای ASP.NET برای نمايش يک متن يا برچسب بروی صفحه HTML استفاده شده است. نحوه تعريف ابزار Label در زير آمده است:

<asp:Label ID=”myLabel” Runat=”Server”/>

هنگامی که اين صفحه اجرا می شود اين ابزار هم به کد متناظر HTML تبديل می شود.

ويژگی های امنيتی ASP.NET :

مقدمه :
امنيت يکی از مسائل اصلی برای توسعه دهندگان و معماران برنامه های کاربردی است. همانطور که تعداد بيشماری از سايتهای وب با انواع امنيت ها مورد نياز است، توسعه دهندگان نيز بايد بدانند چگونه با مقوله امنيت کار کنند و چه مدل امنيتی مناسبی برای برنامه های کاربرديشان انتخاب کنند .

بعضی از سايتهای وب اطلاعات خاصی را از کاربر معمولی دريافت نمی کنند، اما اطلاعات موجود در خود را منتشر می کنند. همانند موتورهای جستجو در حاليکه سايتهای ديگری وجود دارند که نيازمند جمع آوری اطلاعات حساس از کاربرانشان هستند (برای مثال شماره کارت های اعتباری و ديگر اطلاعات شخصی). اين سايتهای وب به پياده سازی امنيت مستحکم تری برای جلوگيری از حمله احتمالی موجوديت های خارجی نيازمندند .

تفاوت جريان امنيتی ASP و ASP.NET :

جريان امنيتی صفحات ASP.NET از جريان امنيتی ASP کلاسيک متفاوت است. در ASP، بصورت پيش فرض IIS خود را به عنوان يک کاربر معتبر معرفی می نمايد در حاليکه در ASP.NET توسعه دهنده کنترل بيشتری بر روی تنظيم امنيت در سطوح مختلف را دارا می باشد.

عمليات اساسی امنيتی ASP.NET :

Authentication :  عبارت است از روند اعتباردهی هويت يک کاربر به پذيرفتن يا رد کردن يک درخواست، يعنی دريافت گواهی نامه ها (برای مثال نام کاربر و کلمه عبور) از کاربران و اعتبار دهی آن. بعد از اينکه هويت بررسی شد و معتبر تشخيص داده شد، کاربر بصورت قانونی مطرح می شود و درخواست های دسترسی به منابع انجام می شود. بصورت ايده آل درخواست های آتی همان کاربر تا هنگام خروج از سيستم مرتبط با روند Authentication نيست .

Authorization: عبارت است از روند تضمين نمودن اينکه کاربران با هويت های معتبر مجاز به دسترسی به منابع مشخصی هستند.

Impersonation: اين روند يک برنامه کاربردی را قادر می سازد تا به نوبت هويت کاربر و درخواستهای بعدی او برای ساير منابع را تضمين کند. دسترسی به منابع متناسب با هويت کاربری که جايگزين شده است (Impersonated) تاييد يا رد می گردد. به عبارت ديگر Impersonation يک پروسه سرويس دهنده (Server Process) را قادر می سازد تا با استفاده از امنيت گواهی نامه سرويس گيرنده ها (Client) اجرا شود.

 

آشنایی با زبان برنامه نویسی PHP :

phpپی اچ‌ پی (PHP) یکی از پر طرفدارترین زبان‌های پردازه نویسی متن باز (Open Source) است که بیشتر برای طراحی برنامه‌های سمت سرور در وب سایت های پویا (Dynamic) مورد استفاده قرار می‌گیرد. PHP مخفف Hypertext Preprocessor (پیش‌پردازنده فرامتن) می‌‌باشد. PHP در سال ۱۹۹۴ ایجاد شد. رسموس لردورف (Rasmus Lerdorf) ایجاد کننده اولیه آن بوده است ولی در طی زمان این زبان برنامه‌سازی، توسط سایر کارشناسان و برنامه‌نویسان تکمیل گردیده و به شکل کنونی آن درآمده‌است.

PHP از زبان‌های اسکریپت‌نویسی تحت وب است. ساختار این زبان بسیار شبیه زبان سی (C) و زبان برنامه‌نویسی پرل (Perl) می‌‌باشد. شکل پذیری فوق العاده آن و نیز همگونی با اغلب بانک‌های اطلاعاتی از قبیل MySql قدرت آن را افزایش داده است.

» مشهورترین نرم‌افزارهای (بسته هاي) ایجاد شده با PHP عبارت‌اند از:
phpBB , SMF, Mambo , Joomla , PHPNuke , mybb و مدیاویکی (MediaWiki)

سادگی استفاده از PHP و شباهت آن به زبان C و Perl (و از نسخه ۵ آن به جاوا) باعث شده که اغلب برنامه نویسان با تجربه در کوتاه‌ترین زمان ممکن برنامه‌های کاملی را ایجاد کنند.
PHP تنها یک زبان اسکریپت‌نویسی نیست و با استفاده از PHP-GTK می‌توان برای طراحی برنامه‌های با ظاهر گرافیکی (GUI) و همچنین طراحی برنامه‌های خط فرمان شبیه پرل (Perl) یا پایتون (Python) از آن استفاده کرد.
PHP امکان استفاده از انواع مختلفی از پایگاه‌های داده را از جمله MySQL، Oracel، IBM DB۲ ،Microsoft SQL Server ،PostgreSQL و SQLite با دستورهایی ساده فراهم می‌‌سازد.
PHP روی بیشتر سیستم عامل‌های معروف از جمله لینوکس، یونیکس، ویندوز و Mac OSX و با اغلب کارگزارهای وب (Web Server) معروف، قابل اجراست.

PHP یک تاریخچه است :

PHP در آغاز جایگاه شخصی داشت.در ابتدای سال 1994 عموما مانند زبان برنامه نویسی C به صورت Binary توسط برنامه نویسان دانمارکی /گرینلندی به نام رسموس لردورف نوشته شد.لردروف در اصل این ابزار را ایجاد کرد تا یک مجموعه کوچکی از اسکریپت را جایگزین کند.او سعی می کرد که صفحات شخصی را حفظ کند. این ابزار برای این استفاده می شد که وظایفی مانند نمایش دادن خلاصه تجربیات و حفظ کردن اینکه چقدر از این صفحه مورد استفاده قرار می گیرد را انجام دهد. او این دو را با مفسرش ترکیب کرد تا PHP / FI را ایجاد کند چون بیشتر کاربرد داشت.PHP / FI شامل پیاده سازی برای زبان برنامه نویسی c بود و می توانست با پایگاه داده ارتباط یابد.قابلیت ساخت ساده و پویا برای کاربردهای وب .لردروف PHP را در 1995 رها کرد تا کد آنرا بهبود ببخشد و اشکالات انرا برطرف کند.این واگذاری به نسخه دوم PHP منجر شد و هم اکنون استفاده می شود.PHP متشکل از شبیه سازی و دستکاری کردن متغیر ها توانایی جاسازی HTML بود. ترکیب آن مانند پرل اما محدود تر ٬ساده تر و پایدار تر بود. زیو سوراسکی و اندی گاتمنز دو توسعه دهنده در تکنولوژی IIT اسرائیلی بودند که پارسر را در سال 1997 دوباره نوشتند و اساس PHP 3 را تشکیل دادند با تغییر دادن نام زبان به PHP بازگشتی : پیش پردازنده مافوق متن. گروه توسعه یافته رسما PHP / FI 2 را در نوامبر 1997 بعد از دو ماه تجربه و آزمایش منتشر کرد. پس از آن آزمایش عمومی PHP 3 آغاز شد و زبان رسمی در ژوئن 1998 تشکیل شد.سوراسکی و گاتمنز گروهی را برای باز نویسی PHP تشکیل دادند و ماشین Zend را در 1999 تولید کردند.آنها همچنین تکنولوژی آن را در اسرائیل تاسیس کردند. در 22 ماه مه 2000 PHP 4 که توسط ماشین Zend به کار آمده بود منتشر شد.در13 ژوئیه 2004 PHP 5 که توسط ماشین 2Zend نیرو گرفته بود منتشر شد.PHP 5 دارای ویژگی هایی مانند پشتیبانی از زبان شی گرا (برای پایگاه داده) و وسعت بسیار زیاد کارایی آن بود. نسخه ای که اخیرا توسط گروه PHP منتشر شده نسخه 4 آن است. در آگوست 2008 این نسخه به 4.4.9 توسعه یافت. در سال 2008 PHP 5 در دست توسعه بود .PHP 6 در کنار PHP 5 در دست توسعه است.تغییرات عمده آن شامل از بین بردن متغیر های رجیستری است. PHP کاملا از یونیکد یا رشته های چند بایتی حمایت نکرد.یونیکد در PHP 6 پشتیبانی خواهد شد. این نسخه در هر دو محیط 32 و 64 بیتی اجرا خواهد شد.

کاربرد php :

  1. PHP یک زبان اسکریپت نویسی برای وب است.
  2. PHP عمدتا برروی سرور وب اجرا می شود.
  3. PHP کد برنامه را به عنوان ورودی می گیرد و صفحات وب را به عنوان خروجی ایجاد می کند. همچنین می تواند برای اسکریپت کردن خط فرمان استفاده می شود.
  4. PHP می تواند بر روی صفحات وب و سیستم های عامل و یا پایگاهها مستقر شود. همچنین می تواند به عنوان سیستم مدیریتی پایگاه داده استفاده شود.PHP رایگان بوده و گروه PHP منبع کاملی از کد آن را در اختیار کاربر قرار می دهد.همچنین می توان از آن برای کاربرد های شخصی استفاده کرد.
  5. PHP عمدتا مانند یک فیلتر عمل می کند.به این صورت که ورودی را به صورت متن یا دستور العمل های PHP می گیرد و خروجی را تولید می کند.خروجی آن غالبا از نوع HTML می باشد. این زبان می تواند کد باینری را برای ماشین Zend تولید کند.
  6. از PHP عمدتا در طراحی وب استفاده می شود.

میزان بهینه سازی:

همزمان با اسکریپت کردن زبانها٬ساختار الگو گونه براى نمايش ترتيب حوادث PHP به طور طبیعی به صورت کد مرجع خوانا برای تولید سرورهای وب نگه داری می شود . بنابر این ساختار الگوگونه برای PHP در زمان اجرا توسط ماشین PHP کامپایل خواهد شد.کامپایل کردن در زمان اجرا دفعات اجرای فایل آغاز گر را افزایش می دهد.چون یک مرحله اضافه به زمان اجرا می افزاید. ساختار الگوگونه PHP می تواند قبل از زمان اجرا توسط مترجم هایی درست شبیه زبانهای برنامه نویسی همچون C ترجمه شود.( زبان برنامه سازی PHP برنامه دار است تا جائیکه برای تمدید کردن آن استفاده شود.) کد می تواند کیفیت کد کامپایل شده را با کم کردن اندازه آن و ایجاد کردن تغییراتی که بتواند زمان اجرا را کاهش دهد و کارایی را بهبود ببخشد بالا ببرد و بهینه نماید. نوع کامپایلر PHP آنچنان است که اغلب فرصت برای بهینه سازی کد آن وجود دارد.

به طور مثال می توان برای بهینه سازی کد بهینه ساز Zend را نام برد. شتابگر PHP می تواند سطح کارایی را با ذخیره کردن نوع کامپایل شده ای از ساختار PHP در حافظه تسهیم شده بالا ببرد تا از هزینه های تجزیه و کامپایل کد در زمان اجرا جلوگیری شود. ایمنی: میزان ناامنی نرم افزار نوشتاری PHP که توسط نرم افزار های رایج دیگر در معرض آسیب پذیری است به این صورت می باشد: 12 درصد در سال2003 20 در صد در سال 2004 28 در صد در سال 2005 43 در صد در سال 2006 36 در صد در سال2007 و 33 در صد در بخشی از سال 2008 بیشتر از یک سوم آسیب پذیری نرم افزار PHP به تازگی صورت گرفته .اغلب آسیب ها با پیروی نکردن از قوانین برنامه نویسی ایجاد می شود و این آسیب ها مرتبط با نسخه قدیمی PHP است. یکی از مهمترین این نا امنی ها متغیر های رجیستری هستند که از سال 2002در PHP نسخه 4.2 بدون استفاده شده اند.

ترکیب :

PHP می‌تواند قسمتی از یک کد HTML باشد. PHP کد را بدون تعیین حدود کردن تجزیه می کند.هر چیزی خارج از این محدوده به طور مستقیم به خروجی فرستاده می شود و توسط PHP تعیین نمی شوند.حدود رایج و مشترک <? و php?> است که به ترتیب بسته کردن و باز کردن می باشد. علائم کوتاه می تواند برای شروع کد به کار روند: =?> یا ?> و علامتی که برای پایان کد به کار می رود، <? می باشد. این علائم به طور رایج استفاده می شود.اما علائمی مانند <% و =% > یا %> کمتر مورد استفاده قرا می گیرند. به همین خاطر استفاده ازعلائم کوتاه و ASP کم شده است. هدف از این ها جدا کردن PHP و HTML می باشد. متغیر هایی که قبل از آن ها علامت $ به کار می رود لازم نیست مشخص شوند .بر خلاف نامها و توابع کلاس نام متغیر ها به کوچک و بزرگ بودن حروف حساس است. PHP در حالت زبان form free با خط جدید و فاصله سرو کار دارد( به جز در رشته ها) و جمله ها با سمی کالن تمام می شوند.PHP دارای سه نوع روش برای توضیحات می باشد.از /* */ و // برای توضیحات استفاده می شود.همچنین از # برای توضیحات کوتاه استفاده می شود. PHP در واژگان مانند زبانهای سطح بالا همچون C است .if شرطی – حلقه های while و for و توابع بازگشتی شبیه به زبان C و ++C است.

شیوه کار برنامه :

همانطور که گفته شد کد PHP می‌تواند بخشی از یک کد HTML باشد.
مثلاً در برنامه زیر تنها

php1به زبان PHP است و بقیه برنامه به زبان HTML نوشته شده است. برای جداسازی برنامه PHP و برنامه اچ‌تی‌ام‌ال باید قسمت PHP را بین php?> و <? قرار داد. لازم به ذکر است که بجای تگ آغاز که همانا php?> است، می‌‌توان از حالت خلاصه شده آن که به صورت ?> است استفاده نمود، ولی این کار استاندارد نبوده و بستگی به تنظیمات هنگام نصب php دارد. بنابر این توصیه می‌‌شود که از همان حالت کامل استفاده شود.

php2با صدا زدن صفحه‌ای با متن بالا از سرور به‌وسیله مرورگر در صفحه “Hello PHP” را می‌‌بینیم.

نوع داده:

نوع داده:
PHP همه متغیر‌ها را در یک محدوده مستقل ذخیره می‌کند .این محدوده به طور نمونه 32 بیت اعداد علامتدار است. اعداد بدون علامت در حالتهای معینی به مقادیر علامتدار تبدیل می‌شوند. این رفتار در زبانهای برنامه نویسی متفاوت است.متغیر‌های صحیح می‌توانند به صورت دهدهی (مثبت یا منفی) ٬هشت هشتی و شانزده شانزدهی مشخص شوند.
اعداد واقعی نیز در محدوده معینی ذخیره می‌شوند.آنها می‌توانند به دو صورت اعشاری و علمی استفاده شوند.PHP دارای نوع محلی به نام بولین می‌باشد که شبیه به بولین در زبان جاوا و ++C است.در نوع داده بولین مقدار غیر صفر به عنوان درست و مقدار صفر به عنوان نادرست استفاده می‌شود.همانطور که در پرل و ++C نیز همین طور است.
نوع داده null برای متغیر‌هایی که هیچ مقداری ندارند استفاده می‌شود.متغیر‌هایی با نوع مرجع به منابع خارجی اشاره می‌کنند.اینها نوعا توسط توابع ایجاد می‌شوند و تنها می‌توانند با همان تابع مورد استفاده قرار گیرند.مانند پوشه‌ها و عکسها و پایگاه داده.PHP آرایه‌ها و رشته‌ها را هم حمایت می‌کند.
کتابخانه استاندارد PHP (SPL) به منظور حل مسائل استاندارد و دسترسی به داده‌های موثر و کلاسها به کار می‌رود.

نسخه 5.2 و قدیمی تر :
توابع بهترین توابع نیستند و تنها می‌توانند با نامشان صدا زده شوند.توابع تعریف شده توسط کاربر می‌توانند بیرون از نمونه اولیه ایجاد شوند.توابع می‌توانند در درون بلوک‌ها تعریف شوند.توابع فراخوانی شده باید از پرانتز استفاده کنند.به جز آرگومان zero توابع سازنده کلاس با اپراتور new فراخوانده می‌شوند.در اینجا پرانتز‌ها اختیاری هستند.PHP توابع بی نام را که توسط دستور function_ creat ایجاد می‌شوند را هم پشتیبانی می‌کند.اگر چه درست نیستند چون توابع بی نام از اسم بر خوردار نیستند و توابع تنها میتوانند توسط نامشان صدا زده شوند.

نسخه 5.3 وجدیدتر:
PHP از توابع درجه اول و توابع بی نام حمایت می‌کند که توسط ساختار زیر پشتیبانی می‌شوند:

functionدر نمونه فوق تابع ( )getAdder یک پارامتر x$ ایجاد می‌کند که آرگومان y$ اضافی را می‌گیرد و آنرا به صدا زننده بر می‌گرداند.

اشیاء:

برنامه نویسی شی گرا به 4 PHP اضافه شد. اشیا در 5 PHP به طور کامل دوباره نوشته می شود.در نسخه قبلی PHP اشیا مانند تایپ های اولیه به کار برده می شوند.اشکال این روش این بود که وقتی یک متغیر تعریف می شود تمام اشیا کپی می شوند.در روش جدید اشیا با handle بازگشت داده می شوند نه با مقدار. 5 PHP متغیر های عضو خصوصی و حفاظت شده تعریف می کند.همچنین یک روش اساندارد برای معرفی سازنده و مخرب همانند زبان برنامه سازی ++C تعریف می کند. Interfrace های خاصی وجود دارد که به اشیا اجازه می دهد بر روی زمان اجرا اثر بگذارد.اگر توسعه دهنده یک کپی از یک شی با استفاده از کلمه محفوظ clone ایجاد کند ماشین Zend آنرا بررسی خواهد کرد که آیا روشی برای آن تعریف شده یا نه.اگر نشده بود یک Clone پیش فرض را صدا خواهد زد که ویژگی های آن شی را کپی می کند.اگر تعریف شده بود برای ویژگی های لازم اشیا ایجاد شده معتبر است.برای سادگی ماشین تابعی را تولید می کند که مشخصات شی مرجع را وارد می کند که برنامه نویس می تواند با یک مقدار مشابه شی مرجع آغاز به کار کند و تنها ویژگی هایی را که نیاز دارد تغییر دهد.

روش نصب PHP :

شما برای کار با PHP نیاز به یک سرور مجازی دارید که می توانید از IIS یا Apache استفاده کنید که ما آپاچی را توصیه می کنیم. همچنین به یک پایگاه داده نیاز دارید که برای این کار mysql بهترین گزینه است.                                                                                                                                                                                                                               شما می توانید با نصب Wampserver به راحتی همه این گزینه ها را یکجا داشته باشید. Wampserver یک نرم افزار رایگان است که با نصب Apache، PHP، MySql و PHP My Admin شما را از نصب تک تک این برنامه ها آسوده می کند.

مقايسه PHP و ASP.NET :

مقايسه و انتخاب ابزارهاي توسعه نرم افزار همواره يکي از بحثهاي داغ برنامه نويسان و توسعه دهندگان نرم افزار بوده است. از مقايسه C و پاسکال تا مقايسه VB و ++VC و Delphi و با ورود به عصر اينترنت مقايسه امکانات Perl ، پيتون PHP ، ASP ، ASP.NET ، JAVA بحث هایی بوده است که در فرومها و سايتهاي تخصصي همواره به آن پرداخته شده است. البته خيلي اوقات اين قضيه از يک بحث فني تبديل به بحثي صرفا براساس علاقه و تعصب برنامه نويسان تبديل شده يا اينکه مقايسه تبليغاتي براي نمايش ضعف رقيبان و قدرتهاي يک ابزار خاص بوده است. مهم این است که يک برنامه نويس و توسعه دهنده نرم افزار به زبانها و پلاتفرمهاي توسعه نرم افزار صرفا به عنوان يک ابزار نگاه کند و براساس نيازهاي کمپاني يا تيم نرم افزاري و نيازهاي نرم افزار ، پلاتفرم و ابزارهاي لازم را انتخاب کند. مباحثي مثل علاقه شديد به مايکروسافت يا ضديت با آن به نظرم شيوه حرفه اي و درستي براي انتخاب ابزارهاي طراحي و توسعه نرم افزار نيست. اين روزها در ايران مقايسه و انتخاب دو زبان و تکنولوژي خاص يعني PHP و ASP.NET بحث داغي است و البته با گذشت زمان تقريبا هر گروه يکي از اين تکنولوژي ها را به عنوان ابزار اصلي توسعه نرم افزار و سايتها انتخاب کرده است.

پي اچ پي PHP :

زبان PHP با هدف نوشتن اسکريپتهاي وب نوشته شد. در واقع هدف فرار از پيچيدگيهاي Perl و نوشتن CGI با زبانهايي مثل C و ارائه دستوراتي ساده براي طراحان صفحات وب بود. پي اچ پي اوليه زباني با دستورات محدود و ساده بود که بيشتر براي کارهاي ساده و براي طراحان وب سايتها و نه برنامه نويسان حرفه اي بود. اين زبان کم کم پيشرفت کرد و بخصوص Open Source بودن آن باعث شد تسريع اين حرکت شد. در مرحله اول تعداد دستورات و توابع اين زبان گسترش پيدا کرد بطوريکه امروز نيز براحتي کارهاي نسبتا پيچيده اي مثل کار با سوکتها يا تصاوير با توابع اين زبان قابل اجرا است. همچنين از لحاظ معماري اين زبان با پشتيباني از شي گرايي پيشرفت مهم ديگري داشته است. پي اچ پي به طور کلي يکي از زبانهاي معمول براي نوشتن اسکريپتهاي اجرايي در محيط يونيکس ، لينوکس (هرچند که در ويندوز نيز به خوبي اجرا مي شود) و کار با نرم افزار مديريت بانک اطلاعات MySQL است.

تکنولوژي ASP.NET :

دات نت نسل جديدي از ابزارهاي توسعه مايکروسافت است. دات نت فقط يک زبان نيست و در واقع يک فريم ورک يا پلاتفرم براي توسعه و اجراي نرم افزار است.دات نت شباهت زيادي با پلاتفرم جاوا دارد و در واقع در رقابت با اوست. ASP.NET نيز نسل جديدي از ASP کلاسيک در بستر دات نت است و از اين جهت پيشرفت بسيار زيادي نسبت به ASP کلاسيک شاهد هستيم.با ASP.NET و با وجود کتابخانه غني توابع و کلاسهاي دات نت تقريبا هر کاري در وب امکان پذير است. اگر چه مايکروسافت در معماري دات نت هدف اجرا در پلاتفرمها و سيستم عاملهاي مختلف را مد نظر داشته است اما حداقل تاکنون ميتوان دات نت را يک ابزار توسعه در سيستم عامل ويندوز دانست.                                                                                            البته پروژه هايي براي شبيه سازي و انتقال دات نت به محيط لينوکس نيز وجود دارد که مهمترين آنها پروژه Mono است که پيشرفت قابل توجهي داشته است.انتظار مي رود در آينده نزديک ASP.NET در هر سيستم عامل و پلاتفرمي قابل اجرا باشد.

سيستم عامل :

اگرچه اصولا انتخاب ابزار توسعه نرم افزار ارجحيت بيشتري بر انتخاب سيستم عامل دارد اما در دنياي واقعي قضيه به اين سادگي نيست و گاهي برنامه نويس براساس سيستم عامل ابزار خود را انتخاب ميکند. امروزه تقريبا دو بستر متفاوت داريم از طرفي سيستم عاملهاي سرور ويندوز و از طرف ديگر نسخه هاي مختلف لينوکس و يونيکس. ويندوز ابزار رايج و آشنايي براي کاربران و برنامه نويسان است و از طرفي يونيکس سيستم عامل ارزان تر و البته حرفه اي است. در ويندزو عموما ترکيبي از دانت نت ، IIS ، SQL Server داريم و در يونيکس PHP و Apache و MySql و مشخص است که هزينه نهايي پياده سازي و اجراي يک وب سايت در ترکيب لينوکسي ارزان تر است. پي اچ پي در ويندوز نيز قابل اجراست و بخصوص در نسخه هاي جديد PHP اين اجرا شکل بهتري نيز گرفته است. در حال حاضر نسخه اوليه از Mono (دات نت در محيط لينوکس) قابل اجرا است اما حداقل به اندازه PHP رايج نيست. از طرفي نيز ASP.NET ترکيب ايده آلي براي کار با ويندوز و IIS است و در واقع هماهنگي و همخواني اين ابزارها در ويندوز بخصوص اينکه همگي محصول يک شرکت هستند، شايد يکي از بهترين بسترهاي توسعه نرم افزار و وب سايت در ويندوز را پديد مي آورند.

معماري :

همانطور که اشاره شد پي اچ پي براي طراحان سايت و گريز از پيچيدگي هاي ابزارها و زبانهاي آن روزگار ايجاد شده است و بنابراين PHP اوليه يک ابزار ساده و نه چندان پيچيده بوده است. البته PHP در اين سالها ارتقاء پيدا کرده است اما هنوز نقصهاي اوليه اي را دارد، مثلا با وجود شي گرايي هنوز دستورات و توابع زيادي از آن ارتباطي با شي خاصي ندارد و يا خاصيتهاي حرفه اي شي گرا را ندارد، اما دات نت فراتر از يک زبان است و مجموعه از کتابخانه هاي استاندارد و زبانهايي که تقريبا تمام قابليتهاي زبانهاي روز دنيا را دارند. سينکس حرفه اي، استاندارد و جذاب #C و يا سينتکس ساده و کارآمد VB.NET و البته #J و ++C و چند زبان ديگر نيز وجود دارند. دات نت کاملا شي گرا است و معماري آن حرفه اي است و از اين جهت با JAVA ( آنرا را با جاوا اسکريپ اشتباه نگيريد ) قابل مقايسه است. در واقع از لحاظ معماري JAVA و دانت نت پلاتفرمهايي با معماري Enterprise هستند و PHP زباني ساده با تمرکز براي نوشت اسکريپهاي وب شرکت ZEND که در حال حاضر Engine اصلي PHP را ارائه ميدهند و برخي شرکتهاي ديگر تلاشهايي براي ارتقاء و ايجاد فريم ورک حرفه اي تري براي PHP دارند اما در کل و از لحاظ مهندسي نرم افزار معماري دات نت برتري محسوسي نسبت به PHP دارد. در بعد ديگر ابزارهاي کار با دات نت و آموزه ها و پتانسيل دات نت نوشتن نرم افزارهاي با معماري بهتر را امکان پذير ميکند و حتي بصورت پيش فرض معماري چند لايه در دات نت وجود دارد. همچنين نرم افزارهاي مهندسي نرم افزار مانند ابزار CASE Tools ، Rational و … همخواني با دات نت دارند.                                                                                                                                                                                                                يکي از مهمترين تفاوتهاي ASP.NET و PHP در شکل اجراي آنهاست. در PHP در هر بار اجراي اسکريپ کدهاي PHP تفسير مي شود ولي در دانت نت يکبار کدها کامپايل مي شوند و در دفعات بعد کدهاي اجرايي هستند که اجرا مي شود. از اين لحاظ بخصوص در نرم افزارهاي تحت وب با حجم کد بالا اجراي کدهاي کامپايل شده به مراتب سرعت بيشتري خواهند داشت. البته شرکتهاي مختلفي براي PHP ابزارهاي Accelerator و Caching نوشته اند اما به هر حال در دات نت اينکار بصورت ذاتي و بدون نرم افزار خاص ديگري انجام مي گيرد.

سرعت توسعه نرم افزار :

اگر قرار باشد فقط چند خط براي نوشتن در صفحه يا گرفتن پارامتري از کاربر داشته باشيم مطمئنا نوشتن با PHP ساده تر و سريعتر خواهد بود. اما هدف دات نت تسريع در نوشتن سايتهاي بزرگ با فرمها و اطلاعات متعدد است. در ASP.NET از طراحي صفحاتي که Web Form ناميده مي شوند تا حتي دسترسي به بانک اطلاعات و ماهيتهاي مختلف اطلاعات، نمايش اطلاعات (مانند جداول) ابزارهاي بصري وجود دارند که اين در نهايت کار را بسيار ساده تر ميکند همچنين برخي مسائل را به راحتي ميتوان به فريم ورک دانت نت سپرد (مانند Caching ، اعتبار سنجي اطلاعات ورودي Authentication و …) همچنين استفاده از کتابخانه غني دانت نت باعث مي شود که نياز چنداني به استفاده از کتابخانه توابع خارجي نباشد که اين در توسعه نرم افزار بصورت تيمي و پشتيباني يک مزيت به شمار مي رود. البته در PHP نيز ابزارهاي براي تسريع طراحي و نوشتن اسکريپتها وجود دارند اما هر کدام براي شرکتهاي مختلفي است و شکل کار متفاوت است.

سرعت اجراي نرم افزار :

همانطور که اشاره شده صفحات و کدهاي ASP.NET کامپايل مي شوند و قابل حدس است سرعت اجراي آنها نسبت به اجراي اسکريپت PHP بيشتر است و البته اين کاملا درست است. اما در واقع شرايط به همين سادگي نيست. در اسکريپتهاي PHP مفسر سريعا کدهايي که بايستي تفسير شوند را اجرا کرده و خروجي را مرورگر کاربر مي فرستند. اما در ASP.NET به غير از کدهاي نوشته شده توسط برنامه نويس چندين ماژول در لايه هاي ديگري نيز اجرا مي شوند، تنظيمات را ميخوانند. خروحي کنترلهاي وب فرمها را توليد (Generate) ميکنند، عتبار سنجيها را انجام ميدهند و اينها در سرعت اجرا موثر خواهند بود البته امکاناتي برای حذف و بهبود سرعت وجود دارد. بنابراين میتوان گفت در اسکريپتهاي ساده در حد چند خط و تعداد دفعات اجراي معمول سرعت اجراي PHP و ASP.NET آنقدرها اهميت خاص ندارد. توجه کنيد که به هر حال نرم افزارهاي بر تسريع اجراي PHP نيز وجود دارند. اما در اجراي نرم افزارهاي بزرگتر مانند Web Application هايي که از دهها يا صدها کلاس و لايه هاي مختلف تشکيل شده اند مطمئنا برتري با نرم افزارهاي کامپايل شده خواهد بود. البته ميدانيد که در نسخه هاي کامپايل شده نيازي به قرار دادن سورس کدها در وب سايت يا ارائه آن به مشتري نيست که اين قضيه براي بسياري شرکتها بخصوص براي حمايت از حقوق نرم افزار و همچنين امنيت يک مزيت به حساب مي آيد.

يادگيري :

پي اچ پي با هدف اوليه سادگي براي استفاده و يادگيري نوشته شده است و تاکنون نيز هدف را منظور کرده است بنابراين ميتوان به سادگي گفت که يادگيري و استفاده از PHP ساده تر از ASP.NET (حتي با وجود زباني با سينتکس ساده VB.NET) است.استفاده از ASP.NET نيازمند آشنايي با مفهوم اوليه شي گرايي و همجنين پيچيدگيهاي خاص دانت (مثل رويدادهاي اجراي صفحات به جاي اجراي خطي) است. در واقع يادگيري و استفاده از ASP کلاسيک ساده تر از ASP.NET و قابل قياس با يادگيري PHP است. عموما طراحان وب سايت به دليل سادگي استفاده و يادگيري PHP آنرا فرا ميگيرند و برنامه نويسان حرفه اي و مهندسان نرم افزار هم علاقه بيشتر به دات نت و JAVA دارند. همچنين يک نکته قابل توجه در PHP وجود هزاران خط کد و اسکريپت آماده به زبان PHP است که تقريبا در هر زمينه اي وجود دارند (از کارهاي ساده با بانک اطلاعاتي تا کار با تصاوير،سوکتها، وب سرويسها، XML و …) اين قضيه باعث شده بسياري از برنامه نويسان PHP به جاي نوشتن کدها بسياري اوقات اسکرپيتهاي آماده موجود در اينترنت را سر هم کنند و به هدف خود برسند و يا شيوه کار را فرا بگيرند. البته کم کم در مورد دانت نيز اين قضيه در حال اتفاق است و سايتهايي که کدهاي نمونه يا نرم افزارهاي آماده با سورس ارائه ميکنند در حال افزايش هستند.

بازار کار :

دو معيار براي سنجش بازار کار وجود دارد يکي سايتهاي خارجي و ديگري بازار ايران، اگر نگاهي ساده به سايتهاي کاريابي خارجي مانند (مونستر يا Yahoo Job) داشته باشيد خواهيد ديد که هم براي برنامه نويسان PHP و هم براي ASP.NET موقعيتهاي شغلي وجود دارد اما نکته قابل توجه حقوق بالاتر و همچنين شرکتهاي معتبري هستند که براي استخدام برنامه نويسان ASP.NET آگهي داده اند. در ايران نيز عموما شرکتهاي معتبر نرم افزاري که به شکل سنتي در پلاتفرم وابسته به ويندوز فعاليت مي کنند علاقه مند به استخدام برنامه نويسان ASP.NET هستند و شرکتهايي که روي ترجمه ، ارائه ابزارهاي پشتيبان يا تغييرات روي نرم افزارهاي Open Source معروف خارجي کار ميکنند و يا نيازمند به پياده سازي سايتهايي در لينوکس هستند علاقمند به استخدام برنامه نويسان PHP هستند.                                                                                                                                                               شايد سوال پيش آيد که چرا با وجود برخي برتري هاي ASP.NET همچنان تعداد زيادي برنامه نويس PHP و نرم افزارهاي تحت وب با اين زبان نوشته مي شود. يکي از مهمترين دلايل آن همانطور که قبلا اشاره شد ارزاني کار با ترکيب PHP و لينوکس است که به آن اختصارا LAMP گفته مي شود. اجرا و طراحي يک وب در بستر ويندوز با در نظر گرفتن هزينه لايسنس ويندوز سرور ، SQL Server و محيط توسعه Visual Studio در قياس با ارزاني و حتي رايگان بودن سيستم عامل لينوکس و MYSql و محيطهاي توسعه PHP دليل مهمي براي انتخاب ترکيب PHP و لينوکس بخصوص براي برنامه نويسان مستقل در خارج از کشور است. اما قاعدتا در مورد پروژه اي بزرگ و شرکتهاي بزرگ نرم افزاري اين هزينه ها آنقدر قابل توجه نيست و بنابراين اين شرکتها استفاده از پلاتفرمهاي حرفه اي تر مانند JAVA و دات نت را انتخاب مي کنند.

ديگر موارد :

يکي از خصوصيات PHP کدباز يا Open Source بودن آن است که توسط طرفداران PHP به عنوان يک مزيت به شمار مي رود. اين قضيه اين اميدواري را ايجاد ميکند که PHP با عدم پشتيباني در آينده مواجه نخواهد بود و به روند رو به توسعه خود ادامه خواهد داد اما از طرفي با نگاه واقعگرايانه خواهيم ديد که مفسر اصلي و برخي از مهمترين ابزارهاي PHP توسط يک شرکت خاص (Zend) عرضه مي شود و در عين حال مايکروسافت توانسته پيشرفت قابل توجهي در مقايسه در ابزارها و بسترهاي توسعه نرم افزار خود ايجاد کند. همچنين نکته اي که براي فارسي زبانان قابل توجه است پشتيباني ذاتي دات نت از يوني کد و رشته هاي فارسي است. در PHP اگرچه ارسال يا دريافت اطلاعات فارسي امکان پذير است اما در واقع خود PHP درک درستي از آن ندارد و اين قضيه در زمان کار پيچيده با رشته ها مشخص تر است.

۷ دلیل برتری PHP نسبت به ASP :

۱– سرعت ، سرعت ، سرعتاولین باری که یک کد به زبان PHP نوشتم بر روی یک کامپیوتر Pentium 166Mhz بود بر روی سیستم عامل Linux و بههمراه Apache Web Server . بسیار برایم جالب بود که چقدر کد های من سریع اجرا می شوند . یعنی در آن موقع بااگر شما یک Windows NT بر روی آن می توانستید سوار کنید و به فرض که IIS هم بر روی آن بالا می آمد فکر کنماصلا وقت Serve کردن صفحات عادی html را نداشت چه برسد به اینکه بخواهد ASP را هم اجرا کند . علتش این است که Microsoft از یک Technology در اجرا کردن کدهای زبان ASP استفاده می کند که در آن هر موقع شما تصمیم بهاستفاده از یک عنصر خارجی مانند VBScript, MSSQL, ODBC و خیلی چیزهای دیگر که در حقیقت از Engine هایخارجی استفاده می کنند دستور به آن Engine خارجی می دهد و جواب بدست آمده را بررسی و برای استفاده در اختیارادامه برنامه می گذارد . همین رفت و برگشت و اجرا کردن Engine های خارجی باعث کند شدن سرویس دهی می شود کهاین را شما به خوبی می توانید در استفاده از MSSQL به طرق مختلف احساس کنید . مثلا اگر شما خود MSSQL Extentions
برای استفاده از MSSQL استفاده کنید برای یک Query مشترک ۱.۸۸ ثانیه زمان تلف می شود و اگر همان را با استفادهاز ODBC اجرا نماﺋید زمانی در حدود ۹.۵۴ ثانیه تلف می شود که این خود نشان می دهد که ASP اینها را به تنهاﺋی اجراء نمی کند و از Engine های ویندوز استفاده می کند .

۲– استفاده بهینه از Memory :
در IIS4 اگر شما در یک صفحه مثلا ۲۰ بار یک صفحه را Include کنید این صفحه ۲۰ بار در حافظه بارگذاری می شود و درحقیقت حافظه شما ۲۰ برابر زیادتر اشغال می شود . البته شنیدم که این مشکل در ویندوز ۲۰۰۰ و IIS5 حل شده استاما بازهم برای کسانی که ASP را مینویسند و می خواهند آنرا بر روی سرور های Hosting که دارای سیستم عامل NT هستند اجرا کنند مشکل زا است و باعث کند شدن سیستم می شود و در Load بالا مسلما مشکل زا خواهد شد .
این مشکل به طور کلی در PHP وجود نداشته و ندارد و استفاده درست از Memory در هنگام اجرای یک کد باعث شده استکه صفحات در Load بالا نیز به خوبی قابل رٶیت باشند .

۳- خرج اضافی ندارید !
مثلا در ASP اگر بخواهید از امکاناتی نظیر Encryption یا File Uploading یا ارسال نامه توسط کد برنامه استفاده کنیدباید امکانات اضافی برای این کار خریداری کنید و نصب کنید تا این امکانات به IIS شما اضافه گردد . این در حالیست کهدر PHP همه اینها در هنگام Compile در نظر گرفته می شوند و همگی از امکانات Standard این زبان هستند و هیچ نصبیا خرج اضافی در کار نیست .

۴- MySQL بهترین انتخاب، بیشترین سرعت در اینجا قصد ندارد به مقایسه MySQL و MSSQL بپردازم . اما به خاطر قدرت خارق العاده MySQL و سازگار بودن اینDBMS با زبان PHP به صورتیکه PHP اتصال به MySQL را به صورت دستورات Internally پشتیبانی می کند و حتی نیازبه نصب Module اضافی برای این کار نمی باشد ، از سرعت بسیار بالاﺋی در کار با SQL برخوردار است که شاید بعدا درمورد MySQL مقاله ای نوشتم .

۵- نزدیک بودن Syntax به ++C/C و Java :
از آنجاﺋیکه اکثر برنامه نویسان از ++C/C استفاده کرده اند و بخاطر محبوب بودن بی حد Java معمولا با Syntax هایاین دو زبان اکثرا آشنا هستند . PHP هم اکثر Syntax های خود را شبیه به این زبانها انتخاب کرده است که برای یادگیریدوباره Syntax دستورات دچار مشکل نشوید که مسلما Microsoft اصلا برایش این مساﺋل مشکل حساب نمی شود .

۶- رفع ایرادات ، سریع ، بی دردسرتا حالا از Microsoft خواسته اید که ایرادی را در سیستمهای خود رفع کند ؟ مسلما اگر شرکت بزرگی مانند Boeing
نباشید حرف شما خیلی خریدار ندارد یا لااقل به این زودی ها به نتیجه نمی رسید .
OpenSource بودن PHP این امکان را به شما می دهد که شخصا اقدام به رفع مشکل کنید و آنرا برای دستندرکاران PHP
ارسال کنید و یا اینکه در Mailing List های عمومی PHP موضوع را مطرح کنید و خواهید دید که از سراسر دنیا برایرفع ایراد شما Patch ارسال می گردد .

۷- اجرا بر روی Platform های مختلفدرست است که خیلی از این ایرادات را Microsoft رفع خواهد کرد و Technology های جدیدتر اراﺋه خواهد کرد ( چهبسا این Net. که الان آمده همه را درست کرده باشد ) اما یک مشکل اساسی برای ASP وجود دارد و آن این است که
ASP بدون Windows یعنی هیچ ! بدلیل اینکه ASP نصفی از کدها را توسط Engine های ویندوز اجرا می کند که درسیستم عامل های دیگر خبری از آنها نیست . لذا ASP در سیستم عاملهای دیگر همیشه دارای ضعفهای بزرگی است .
اما PHP به دلیل آنکه توسط GNU C Compiler در همه Platform ها قابل Compile شدن است و از Engine های خاصهیچ سیستم عاملی برای اجرای کدها استفاده نمی کند قابلیت اجرا بر روی تعدا زیادی از OS ها را داراست که این یکمزیت برای برنامه نویس ها محسوب می شود .

Php_Gtk :

Php_Gtk : یک کتابخانه برای ساخت interface است .                                                                                                                                                                                                  gtk يك كتابخانه است كه خودش را با( c ) دقيقا نوشتند.اين كتابخانه را داخل زبان های دیگر هم استفاده كردند، مثلا براي c++ مي توانید از gtkmm استفاده كنید . البته در مورد c++ زياد نيازي نيست!! ضمن اينكه اصولا سرعت c بيشتر از c++ است .                                                                                                                                                                             اما اولین بار gtk در نسخه 0.6 گیمپ توسط اسپنسر کیمپبال و پیتر ماتیاس (که بعد جوش مک دونالد هم به آنها اضافه شد) معرفی شد و جایگزین motif اعلام گردید و در سال 1997 پروژه gtk به عنوان یک کار مستقل از گیمپ ادامه یافت تا اینکه در اواسط 1998 نسخه 1.0 هر دوی آنها ارائه شد.                                                                                                              علاوه بر بحث قدرت از نظر فنی کتابخانه‌های GTK از ابتدا تحت مجوز باز GNU/LGPL نوشته شده است که باعث می‌شه خیلی راحت بتوان از آن داخل برنامه‌های آزاد استفاده کرد. در صورتی که Qt همیشه از این نظر مشکلات زیادی داشته است.

از GTK برای ساخت GUI ها در Gnome استفاده می شود چون کتابخانه های مورد نیاز اش در این DE موجود هست, خود Gnome و Gimp رو هم با استفاده از GTK ساختن. اگه شما بخوای از GTK توی میزکار های دیگه مثل KDE استفاده کنید باید کتاب خانه های لازم را نصب کنید.

Perl  ( زبان برنامه نویسی ) :

perl

perl در سال ۱۹۸۷ توسط لری وال منتشر شد . زبان perl به طور وسیعی ساختار خود را از زبان C و بسیاری از خصوصیات خود را مدیون زبان های AWK , LISP , SED , SH می‌باشد . در حال حاضر می‌توان Perl را در بیش از ۴۰ سیستم‌عامل به کار گرفت ، و کتابخانه cpan بیش از ۱۱۰۰۰ ماژول را با کد منبع در اختیارتان می‌گذارد . در سال ۱۹۸۸ لری وال زبان برنامه نویسی به همگان معرفی کرد که می‌توانست به جای awk و sed به کار رود . در واقع Perl زبان مفسر داری است که برای کار بر روی فایل‌های متنی مناسب است . نسخه شماره ۲ برنامه در همان سال و چند ماه بعد از آن ارایه شد که شبیه نسخه‌های فعلی perl بود . و پیشرفت‌های بسیار خوبی داشت . تا جائی که زبان perl را برابر با زبان قدرتمند C می‌دانستند . و بی راه هم نبود چون ساختار زبان perl  شبیه زبان C می‌باشد.

قابلیت‌ها :                                                                                                                                                                                                                                                               یکی از کاربردهای مهم زبان برنامه نویسی perl در نوشتن اکسپلوییت‌ها و کدهای تخریب است . این زبان برنامه نویسی پیشینه‌ای قدیمی در unix دارد . اما عمر آن در ویندوز به ۷ سال هم نمی‌رسید . به طوری که زبان perl را زبانی جدا نشدنی از unix می دانند و به همین دلیل است که در linux هایی مثل red hat  نیز که اساس آنها unix است نیز این زبان برنامه نویسی هنوز که هنوز است در آنها جایگاه خاصی دارد .

کاربرد Perl :

Perl امروزه در زمینه‌های هوش مصنوعی ، ژنتیک ، نظامی ، تحقیقاتی ، صنعتی به طور گسترده‌ای کاربرد دارد . نوشتن یک بانک اطلاعاتی ، صفحه گسترده و یا یک وب سرور شاید با perl کار عاقلانه‌ای به نظر نرسد ، ولی امکان پذیر است  .

Perl به عنوان یک زبان چسبنده :

perl به عنوان یک زبان چسبنده می‌تواند در زبان‌های دیگر مورد استفاده قرار گیرد . به طور مثال می‌توانید در برنامه‌های NET . از perl برای پردازش متن و یا هر چیز دیگری استفاده کنید . این قابلیت تنها به NET . محدود نمی‌شود و perl را می‌توان در زبان‌های دیگر برنامه نویسی بدون در نظر گرفتن پلت فرم آن استفاده کرد .

Perl به عنوان یک زبان  ( Cross Platform ):

جالب است بدانید نرم‌افزاری که شما تحت سیستم‌عامل linux و یا mac نوشته‌اید روی سیستم‌عامل windows و unix هم اجرا می‌شود . قابلیت ( cross platform )  به شما امکان توسعه نرم‌افزارتان را بر روی هر سیستم‌عاملی فراهم می‌کند  .

Perl و CGI :

باپابه عرصه گذاشتن cgi به صفحات وب زبان perl به خاطرقدرت بالادرپردازش متن وتطبیق الگو ( regular expressions ) ، در جمله زبان هایی قرار گرفت که به طور وسیعی برای نوشتن cgi به کار گرفته می‌شود . در این صورت یک سیستم برنامه نویسی پویای تحت وب و با استفاده از تکنولوژی cgi پیاده سازی می شود .

Perl و شبکه :

به خاطر قدرت بسیار perl درزمینه برنامه نویسی سیستم‌های شبکه بسیاری از متخصصین شبکه و هکرها از این قافله عقب نمانده و امروزه شاهد این هستیم که بسیاری از برنامه‌های مدیریت شبکه ، سیستم‌های spidering و  اکسپلوییت ها به زبان perl نوشته می‌شود .
نکته‌ای که باعث محبوبیت زبان perl در میان برنامه نویسان شده‌است متن‌باز بودن این زبان می‌باشد .

اولين برنامه :

با استفاده از يک اديتور متنی ، فايلی را با نام test1.pl ايجاد و دستور زير را در آن قرار دهيد :

Print “hello World!\n ”       

به منظور اجرای برنامه فوق دستور per1 test1.pl ، را تايپ و در ادامه عبارت “Hello world” در خروجی نمايش داده خواهد شد. دستور Print امکان نوشتن اطلاعات مورد نظر در stdout را فراهم می نمايد. n\ برای ايجاد يک خط استفاده می گردد.

متغيرها :

برای استفاده از متغيرها ، ضرورتی به تعريف آنان نبوده و با استفاده از علامت “$” می توان آنان را مشخص کرد.

var1برنامه زير نحوه  تعريف و استفاده از بردار را نشان می دهد.

array1از کاراکتر #$ ، به منظور برگرداندن بالاترين ايندکس بردار استفاده می گردد.

ساختارهای  تکرار و شرطی:                                                                                                                                                                                                                           برای ايجاد حلقه های تکرار از for  و while   استفاده می گردد.

for

for2برنامه زير نحوه استفاده از ساختار if را نشان می دهد .

ifعملگرهای منطقی در Perl مشابه زبان C می باشند.

 

logicalsتوابع                                                                                                                                                                                                       با استفاده از sub می توان يک برنامه فرعی را ايجاد کرد. تمام پارامترهائی که به برنامه فرعی ارسال می گردند ، در برداری با نام “_”  ذخيره می گردند.

logical functin1برای تعريف متغيرهای محلی در يک تابع از کلمه local استفاده می گردد.

logical function2

برای فراخوانی يک تابع از & بصورت زير استفاده می گردد.

logical function3برای برگرداندن مقدار از يک تابع از Return استفاده می گردد.

خواندن اطلاعات از STDIN :                                                                                                                                                                                                                               به منظور خواندن اطلاعات از فايل استاندارد ورودی (stdin) از STDIN به صورت زير استفاده می گردد .

stdin1

STDIN در هر لحظه يک خط را می خواند . با استفاده از getc می توان يک کاراکتر را از ورودی خواند.

stdin2

خواندن متغيرهای محيطی :                                                                                                                                                                                                                                   در زبان PERL يک hash سراسری با نام ENV تعريف و از آن برای بازيابی مقادير مربوط به متغيرهای  محيطی استفاده می شود.

ENVخواندن آرگومانهای خط دستور :
در زبان PERL از يک بردار سراسری با نام ARGV بمنظور بازيابی آرگومانهای پاس داده شده به اسکريپت استفاده می گردد. ARGV#$ تعداد آرگومانها ( می بايست يک واحد از آن کم گردد ) ، [0]ARGV$  اولين آرگومان و [1]ARGV$  دومين آرگومان ( ساير آرگومانها نيز با تغيير ايندکس بردار بدست خواهند آمد )  را نشان می دهد .                                               Python   :

Pythonپایتون یک زبان برنامه نویسی تفسیری ، داینامیک و شی گرا می باشد که می توان از آن در محدودی وسعی از نرم افزار ها و تکنولوژی ها بهره برد . این زبان برنامه نویسی روشهای بسیار قدرتمند و حرفه ای را برای کار با زبانها و ابزار های مختلف را با آسانی هر چه تمام تر فراهم می کند . بدین منظور این زبان داره کتابخانه هایی بسیار گسترده می باشد که یادگیری و استفاده از آنها در عرض چند روز ممکن می باشد ! پایتون همچنین یک زبان بر اساس وجوز های نرم افزار آزاد و اپن سورس می باشد . کد های نوشته شده در این زبان در محدوده ای وسیع از پلتفرم ها چون لینوکس ، ویندوز ، مک ، و حتی گوشی های موبایل و … قابل اجرا می باشد . همکنون پایتون در شرکت ها و سازمانهای بزرگی چون ناسا ، گوگل ، یاهو و … بصورت گسترده مورد استفاده قرار می گیرد .

تاریخچه پایتون:                                                                                                                                                                                                                                                   پایتون زبان برنامه*نویسی تفسیری و سطح بالا ، شی*گرا و یک زبان برنامه*نویسی تفسیری سمت سرور قدرتمند است که توسط گیدو ون روسوم در سال ۱۹۹۰ ساخته شد. این زبان در ویژگی*ها شبیه پرل، روبی (رابی)، اسکیم، اسمال*تاک و تی*سی*ال است و از مدیریت خودکار حافظه استفاده می*کند. پایتون به شکل پروژه*ای متن باز توسعه یافته است و توسط بنیاد نرم*افزار پایتون مدیریت می*گردد.

نوشتن این زبان برای اولین بار در سال 1990 توسط فردی به نام گویدو ون رسوم کلید خورد. پایتون در یک محیط آموزشی ایجاد و توسعه یافته است . یعنی در کریسمس سال ۱۹۸9 (میلادی) در موسسه ملی تحقیقات ریاضی و رایانه (cwi) شهر آمستردام. در آن زمان گیدو یک محقق در cwi بود و در زمان بیکاری خود بر روی پروژه شخصی خود یعنی پایتون کار می کرد . اولین نسخه عمومی از پایتون در ماه فوریه سال ۱۹۹۱ منتشر شد . برای مدتی نسبتاً طولانی پایتون توسط موسسه ملی تحقیقات و ابتکارات (cnri) واقع در رستون ایالات متحده* امریکا توسعه می*یافت . برای مدتی نسبتاً طولانی پایتون توسط موسسه ملی تحقیقات و ابتکارات (cnri) واقع در رستون ایالات متحده* امریکا توسعه می*یافت . تا اینکه در سال 2000تیم توسعه دهنده پایتون به آزمایشگاه های پایتون منتقل شدند . نام پایتون از برنامه مورد علاقه سازنده آن یعنی مونتی پایتون که یک برنامه کمدی انگلیس بود گرفته شده است.

شی گرایی :                                                                                                                                                                                                                                                       ایتون یک زبان برنامه نویسی شی گرا است و از ویژگی های پیشرفته ایی چون وراثت، چند شکلی، سربار گزاری عملگر و … پشتیبانی می کند. یک از ویژگیهای پایتون که لقب چسب را برای پایتون به ارمغان آورده امکان استفاده از کد ها و کلاسهای نوشته شده در زبانهای دیگری چون سی پلاس پلاس و جاوا است که در حقیقت کار چسباندن قطعات کد جدا و فقط نوشتن بدنه اصلی به عهده پایتون است.

آزاد :                                                                                                                                                                                                                                                                   پایتون یک زبان برنامه نویسی آزاد و متن باز هست.میتوانید متن آن و خود برنامه را از اینترنت دریافت یا در توسعه آن همکاری کنید .

قابلیت حمل :                                                                                                                                                                                                                                                         چون پایتون با زبان قابل حمل ‏سی نوشته شده می تواند به صورت مجازی بر روی هر پردازش گردی همگردانی و اجر شود . ماشین مجازی (مفسر پایتون) متن برنامه را خوانده و همزمان تفسیر کرده و اجرا می کند. پس شما می تونید یک برنامه را در ویندوز بنویسید و سپس بدون تغییر روی لینوکس یا مکینتاش یا هر سیستم عامل و سخت افزار دیگری که پایتون روی آن نصب باشد اجرا کنید.

درونی سازی و گسترش :                                                                                                                                                                                                                                        این ویژگی یکی از پرکاربرد ترین و قوی ترین ویژگی های پایتون می باشد . شما می توانید قطعه از کد را در زبانی چون سی پلاس پلاس، سی و جاوا نوشته سپس از آن در برنامه نوشته شده با پایتون استفاده کنید. و یا میتوان از توابع کتابخانه ای و کامپوننت هایی چون COM API استفاده کرد. البته نوع این نوع برنامه نویسی (ماژول) با برنامه نویسی معمولی هر زبان متفاوت می باشد . می توان از کد های پایتون در زبانهای دیگر نیز استفاده کرد (درونی سازی)

سهولت یادگیری و استفاده:                                                                                                                                                                                                                                   بی شک و حداقل از نظر بسیاری از برنامه نویسان پایتون این زبان یکی از آسان ترین زبان ها برای یادگیری و استفاده می باشد و از آن به عنوان یک زبان سریع برنامه نویسی یاد می کنند . این زبان نیازی به [[کامپایلر ]] ندارد و شما مستقیما می توانید پس از نوشتن کد و با یک دستور آن را اجرا کنید . دستورات این زبان بسیار نزدیک به زبان انسان می باشد . برای مثال برنامه Hello World را که اولین برنامه ساده می باشد را در دو زبان سی و پایتون مقایسه کنید:

 

code

آزاکس Ajax :                                                                                                                                                                                                                                                           این واژه را اولین بار جسی جیمز گرت (Jesse James Garrett) برنامه نویسی از شرکت Adaptive Path در مقاله ای با عنوان “آژاکس :رهیافت جدیدی در برنامه های تحت وب” به کار برد. آژاکس سرنام عبارت Asynchronous Javascript And Xml و به معنی ترکیب نامتقارن جاوا اسکریپت و XML است. آژاکس یک زبان جدید نیست بلکه یک تکنولوژی جدید برای تولید و خلق برنامه های وب سریع تر و بهتر و شکلیتر با استاندارد کنونیست. آژاکس صفحات وب را جوابگوتر پویاتر و قابل لمس تر می کند. چرا که با تعویض عناصر در یک صفحه این قابلیت را به ما میدهد تا بدون بارکذاری مجدد کل صفحه به هدف مورد نظر برسیم.

چرا نامتقارن؟                                                                                                                                                                                                                                                     چون ترکیب این دو فناوری به شما کمک می کند قسمتی از یک صفحه وب را بروز کنید بدون اینکه لازم باشدهمزمان یا متقارن با این عمل کل آن صفحه از نو بارگذاری شود.این عملیات توسط شئ به نام XML Http Request انجام می شود که سال ها پیش هنگام معرفی نسخه 4 مرورگر اینترنت اکسپلورر وارد این نرم افزار شده و به دلیل قابلیت های جالبی که دارد این روزها تمام مرورگرهای معروف و قدرتمند وب مانند فایر فاکس و اپرا از آن پشتیبانی می کنند. به کمک این شئ می توانید برنامه هایی به زبان جاوا اسکریپت بنویسید که در پشت صحنه یک صفحه وب اطلاعاتی را به سرور بفرستند و داده هایی را دریافت کنند.

آژاکس و جاوا:                                                                                                                                                                                                                                                     آژاکس اساسا رهاوردی از دنیای جاوا است و بار دیگر فناوری جاوا و زبان اسکریپت نویسی وابسته به آنرا در کانون توجه برنامه نویسان قرار داده است. اما خبر خوب اینست که چون همه پلتفرم های برنامه نویسی وب از قبیل PHP, ASP.Net ,JSP از جاوا اسکریپت و XML پشتیبانی می کنند , فناوری آژاکس در همه این پلاتفرم ها پیاده سازی شده و حتی جالب است بدانید که تعداد ماژول های آژاکس نوشته شده برای .Net و PHP بیشتر از انواع جاوایی آن است.

Ajax Extension  :                                                                                                                                                                                                                                             مایکروسافت که سال ها پیش از شئ Xml Http Request در نرم افزار Outlook Web Access استفاده کرد و جزو اولین ترویج دهندگان این تکنیک به شمار می رود اخیرا Ajax Extension را معرفی کرده که مخصوص برنامه نویسی مبتنی بر آژاکس است. اما چون آژاکس بر اساس جاوا کار می کند بدیهی است که جنبش اپن سورس و خیل عظیم برنامه نویسان جاوا نیز بیکار نمانده و می کوشند تا دیر نشده Ajax را به قلب دنیای نرم افزارهای آزاد بیاورند و از انحصاری شدن آن جلوگیری کنند تا این فناوری به استاندارد جدید وب تبدیل شود.به نظر می رسد که آن ها موفق بوده اند زیرا حتی پیاده سازی دات نت آژاکس نیز اغلب به صورت اپن سورس است.

Ajax

 

مکانیزم Ajax :                                                                                                                                                                                                                                                     جسی جیمز گرت در مقاله معروف خود شیوه عمل آژاکس را چنین توضیح می دهد:”هر عمل از سوی کاربر که به طور معمول موجب تولید یک تقاضای HTTP شود به جای ارسال مستقیم به وب موجب فراخوانی یک فرمان جاوا اسکریپتی و هدایت آن به موتور آژاکس می شود. هر نوع پاسخ به کاربر از سوی سرور (مانند کنترل صحت داده های وارد شده در یک فرم اطلاعات ویرایش اطلاعات در حافظه و حتی برخی از انواع هدایت کاربر در سایت) نیازی به ارسال یک صفحه جدید به سمت کاربر ندارد و تنها همان قسمتی که باید تغییر کند بروز می شود. این تکنولوژی برنامه های اینترنتی را کوچکتر قابل انعطاف تر و دوستانه تر میسازد. همانطور که اشاره شد آژاکس تکنولوژی مرورگر است و مستقل از نوع نرم افزارهای سرویس دهنده کار می کند. به طور سنتی وقتی کاربر فرمی را پر می کندو به سایت ارسال می کند وب سرور با بارگذاری مجدد یا تازه سازی صفحه (Refresh) و نمایش یک پیغام و یا نتیجه پردازش اطلاعات به او پاسخ می دهد و به همین دلیل هم وقت سرور برای ارسال کل محتوای آن صفحه گرفته می شود و هم کاربر باید برای دریافت کامل آن صفحه منتظر بماند که نتیجه آن کاهش بازده سرور مصرف پهنای باند و تلف شدن وقت و هزینه است. اما به کارگیری تکنیک آژاکس این مشکل را به طرز قابل ملاحظه ای کاهش می دهد.” گرت می نویسد:”اگر موتور آژاکس برای پاسخ به کاربر نیازمند گرفتن اطلاعات از سمت سرور است اگر قرار است داده ها برای پردازش به سرور ارسال شوند اگر لازم است کدهای اضافی برای نمایش تغییرات اینترفیس بارگذاری شوند اگر نیاز به بازیابی و بیرون کشیدن اطلاعات از بانک اطلاعاتی باشد همه این کارها به طور اسنکرون و با استفاده از XML بدون اینکه وقفه ای در تماس میان کاربر و اینترفیس نرم افزار به وجود آید توسط موتور آژاکس انجام می شود.

jQuery  :

jQuery یک کتابخانه جاوا اسکریپت است که انجام یک سری کارها را برای شما بسیار آسان می‌کند و همچنین یک سری امکانات از پیش آماده شده را به شما اراده می‌دهد.
زبان برنامه نویسی JavaScript ، یک زبان برنامه نویسی خیلی پیچیده و گسترده است و یادگیری کامل آن به زمان و حوصله خیلی زیادی نیاز دارد. jQuery فریم‌ورکی که بر اساس زبان برنامه نویسی جاوا اسکریپت ایجاد شده است. به زبان ساده می‌توان گفت، برنامه نویس با استفاده از زبان برنامه نویسی جاوا اسکریپت، یک سری قائده و قانون تعریف کرده است و یک دستور زبان جدید ساخته که شما با آن قواعد یه کد به مراتب بسیار ساده‌تر می‌نویسید، سپس آن فایل فریم‌ورک دستورات شما را به دستورات استاندارد جاوا اسکریپت ترجمه می کند و سپس آن ها را اجرا می‌کند. همراه با یک مثال ساده، توضیح بیشتر ارائه می‌شود:

مثلا زبان فارسی را در نظر بگیرید که بسیار گسترده است. حال ما درنظر داریم یه کتاب کوچک بنویسم و برای 2000 لغت پرکاربرد زبان فارسی علامت های اختصاری در نظر بگیریم، به عنوان مثال برای لغت «در» یک معادل در نظر می‌گیریم:                                                                                                                                                                                                در = ^-^
با این علامت های اختصاری ما می توانیم کلمات و جملات خاصی را به صورت خیلی مختصیر و مفید بنویسیم. حال اگر یک متن را با این علامت های اختصاری بنویسیم و آن کتاب مرجع را نیز در اختیار شخص ثالثی قرار دهیم، آن شخص می تواند علامت ها را دیده و با مراجعه به کتاب مرجع، متن اصلی را مشاهده کنید.
کار JQuery هم در واقع به همین صورت است. جی کوئری یک فایل javascript چند هزار خطی هست که در آن یک سری کارهایی که طراحان وب با جاوا اسکریپت انجام میدادند را، خلاصه کرده است. به عنوان مثال برای مخفی کردن یک DIV کافی است که به اندازه یک نیم خط کد بنویسم (در حالی که قبلا باید ده‌ها خط کد جاوا اسکریپت برای این کار نوشته می‌شد)
خود فایل JQuery در واقع حکم همان کتاب مرجع را دارد. به همین خاطر است که اگر شما فایل اصلی جی کوئری را به صفحه لینک نکنید و دستورات خودتان را بر اساس قوانین جی کوئری بنویسید، اتفاقی نمی‌افتد و در واقع دستوران برای شما کار نخواهند کرد. (چون در این حالت دستورات هست ولی کتاب مرجع نیست که مرورگر وب بفهمد هر دستور چه معنایی می‌دهد)
البته باید در نظر داشت که خود فریم ورک‌ها هم محدودیت دارند، چون کل یک زبان برنامه نویسی را پوشش نمی‌دهند و یا گاها سنگین هستند (چون مثلا ما به همه توابع داخل یه فریم‌ورک احتیاجی نداریم (در مورد مثال کتاب مرجع هم ممکن است کسی به همه 2000 لغت احتیاجی نداشته باشد)                                                                                                                       در استفاده از JQuery ما دو تا فایل خواهیم داشت:
– یک فایل، خود فایل JQuery می‌باشد که باید در ابتدا به صفحه مورد نظر ما لینک شود.
– فایل دوم فایل JS ای هست که دستورات ما بر اساس قوانین Jquery داخلش نوشته شده است. (البته می‌تواند این دستورات را در داخل کدهای صفحه نیز قرار داد و یک فایل جداگانه نداشت)

 

آیا جی کوئری نوآوری‌های خاصی هم داشته است؟

– کد نویسی بر اساس دستور زبانی که jQuery ایجاد کرده، خیلی ساده است و در کمترین تعداد خط می‌توان بیشترین تغییرات را در صفحه ایجاد کرد.
– جی کوئری کاملا Unobtrusive می‌باشد یعنی شما هیچ کد جاوا اسکریپتی را داخل کدهای XHTML وارد نمی کنید. از این نظر کدهای شما کاملا مجزا از هم و مرتب خواهد بود و از طرفی وقتی JS روی مرورگر فعال باشد، کدهای شما اجرا میشود ولی اگر JS فعال نباشد، هیچ مشکلی برای سایت شما پیش نمی‌آید و سایت همچنان برای کاربر قابل استفاده خواهد بود. – در jQuery تگها را میتوان بر اساس همان قواعد CSS انتخاب نمود.

طریقه نصب و بکارگیری جی کوئری به این صورته که به سایت jQuery.com مراجعه می کنیم. آخرین نسخه اش رو داونلود می کنیم که یک فایل JS خواهد بود. این فایل رو توسط تگ <SCRIPT> به صفحه اضافه می کنیم و کدهای شخصی خودمون رو هم توسط یه تگ <SCRIPT> دیگه، بعد از <SCRIPT> قبلی قرار میدیم.

script

یه نکته ای وجود داره بعضی جاها میگن jQuery رو بجای <HEAD>، در آخر <BODY> بذاریم. می دونی که اون فایل jquery حدود 50 کیلوبایته و وقتی در <HEAD> قرار بگیره تا کامل لود و پردازش نشه، ادامه صفحه و <BODY> نمایش داده نمیشه و برای سرعتهای پایین، مدت زمانی وجود داره که باید صفحه سفید تماشا کنند اما وقتی این فایل در آخر <BODY> بذاریم، صفحه مسلما زودتر ظاهر میشه. اما این روش استاندارد و همیشه خوبی نیست. چون اولا یه استانداردی میگه همه تگهای <SCRIPT> باید در <HEAD> قرار بگیرند و دوما اینکه تصور کن ما کدهایی رو در جی کوئری نوشتیم که قراره با شروع صفحه دیده بشن و صفحه طولانی باشه اونوقت کاربر باید منتظر بمونه تا همه صفحه کامل لود شه و بعد بتونه افکتها و امکانات جی کوئری رو استفاده کنه که اصلا جالب نیست. در کل این بستگی به ساختار صفحه و سایت داره که کدوم روش براش بهتره.

جی کوئری بر پایه اجزای DOM بنا شده (اجزا یا Element های DOM بصورت خیلی خلاصه، همون اجزا و تگهای موجود در صفحه است). یعنی اولین قدم استفاده ازش انتخاب و پیدا کردن بخشی از صفحه است که می خوایم باهاش کار کنیم. به این صورت که تقریبا همه توابع جی کوئری به Element ها متصل می شوند .                                                                   یک تابع Global به نام jQuery وجود داره که اجزای DOM رو بهمون میده. در حالت عادی تابع $ هم وجود داره که دقیقا با تابع jQuery برابره. این تابع برای گرفتن Elementها از دو روش استفاده می کنه یه روش استفاده از Selectorهای معتبر در CSS است که جی کوئری برای این کار از یک Selector آماده(Standalone) به نام Sizzle بهره میبره. روش دوم دادن خود  Elementهای جاوااسکریپت به این تابع است.

مثلا می خوایم یه <DIV> که ID به نام myDiv داره رو انتخاب کنیم:

cssهر چهار خط بالا یه نتیجه داره که اون دو تا آخری جالب نیست ولی گاهی اوقات لازم میشه.

حالا Element رو پیدا کردیم و میخوایم توابعش رو استفاده کنیم. برای کسانیکه هیچی از جاوااسکریپت نمی دونن. این توابع با نقطه از هم جدا میشن. اصلی ترین تابع ready نام داره که خیلی پر کاربرده و کارش اینه که یک تابع (که ما میسازیم) رو میگیره و درست موقعیکه همه اجزای DOM کامل شناخته شدند، اجرا میشه یعنی زودترین موقعی که ما میتونیم مطمئن شیم همه تگهای موجود در صفحه رو مرورگر لود کرده و شناخته. گفته بودم که این فریم ورک به Elementها متصل میشه و این تابع هم باید به body متصل بشه. می تونیم body رو توسط Selectorها بگیریم ولی روش راحتتر استفاده از document.body است که یک مقدار استاندارد در مرورگرهاست که باید به روش دومی که بالا گفتم استفاده شه یعنی روش جاوااسکریپت:

 

scriptبرای مبتدی ها، تابع در جاوااسکریپت به این شکل ها ساخته میشه:

function java

و اینجوری استفاده میشن:

func1و می تونن مقادیری رو به عنوان پارامتر بگیرند:

func2اینجا someText به عنوان پارامتر قرار گرفته. پارامتر هر چی می تونه باشه. حتی میتونه خودش یک تابع باشه:

text func

که می تونیم بجای اینکه یه تابع بسازیم و نامش رو به عنوان پارامتر بدیم، خود تابع رو بین پرانتزها تعریف کنیم و مشکلی هم پیش نیاد:

text fun2اینجا ما خود تابع رو بجای اسمش استفاده کردیم.
اینا رو گفتم که با سینتکس جی کوئری راحتتر ارتباط برقرار کنیم.

حالا برمی گردیم به همون تابع ready که بالا میبینی. این تابع هم یک تابع دیگه به عنوان پارامتر میگیره.

ready

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

به عنوان اولین مثال، جی کوئری تابعی به نام css داره که هم مقدار CSS رو میده و هم اجازه میده تغییرشون بدیم:

JQ1این کد اول رنگ myDiv رو alert میده و سپس رنگش رو تغییر میده و چون داره در تابع ready این کار رو می کنه، در اولین فرصت این کار رو انجام میده یعنی اگر این کد رو اجرا کنی، همون اول نوشته رو قرمز میبینی که خیلی سریع کد اجرا شده.

توابع جی کوئری رو میشه بصورت زنجیروار هم استفاده کرد. مثلا تابعی وجود داره به نام addClass که کلاس CSS رو به Element اضافه می کنه. ما میخوایم هم رنگ myDiv رو عوض کنیم و هم کلاس بهش اضافه کنیم:

JQ2

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

مثالهای بیشتر و مفصل رو به آموزشهای همین بلاگ واگذار می کنم و بخش و توابع جی کوئری رو معرفی می کنم تا بفهمی این فریم ورک چه امکاناتی داره…
جی کوئری براساس طبقه بندی خودش شامل بخشهای زیره:

Core: شامل توابع اساسی و هسته که به بخشهای زیر تقسیم میشه:

  • تابع (…)$ یا تابع (…)jQuery:  شامل روشهای استفاده از تابع $.

JQ3خطهای اول و دوم روشهای گرفتن اجزای صفحه هستند.
خط سوم روش ساختن Element در صفحه است که توسط تابع appendTo به صفحه اضافه شده.
خط چهارم، یک تابع به $ داده شده که کدهای این تابع در زمان تکمیل DOM اجرا میشه. این روش دقیقا مشابه استفاده از تابع ready خواهد بود که بالا توضیح دادم.

  • توابع مربوط به دسترسی به شیء jQuery:  توابعی برای فعالیت اختصاصی با خروجی تابع $ مثل شمارش Elementهای پیدا شده، گرفتن نمونه خاصی از بین اونها، تبدیل خروجی به DOM و غیره.
    • توابع کنترل اطلاعات:  توابعی برای ذخیره و بازیابی اطلاعات خاصی برای Elementها. مثلا من یک کلمه رو به اولین <DIV> صفحه اضافه می کنم و بعدا وقتی این <DIV> رو انتخاب کردم می تونم اون کلمه رو هم ازش بخونم (کاربرد خاص داره). این بخش توابعی هم برای کنترل عملیاتهای پست سر هم ارائه داده.
  • ایجاد پلاگین:  دو تا تابع اساسی برای ایجاد پلاگین برای جی کوئری و توسعه اش.
  • تداخل: معرفی تابعی برای استفاده فریم ورکهای مختلف در صفحه بدون بوجود اومدن مشکل و تداخل به نام noConflict.

Selectors: معرفی چگونگی استفاده از Selectorهای قابل استفاده و معتبر برای تابع $:

SELECTOR1Attributes : امکاناتی برای دسترسی به مشخصه ها و اطلاعات Elementها مثل value، href، محتویات داخل تگ و غیره.

selector2Traversing:امکانات فوق العاده ای برای کار با نتیجه تابع $ مثل گرفتن Element بالادستی نمونه پیدا شده. عضو بعدی، قبلی، اولی، آخری و غیره. یادگیری این بخش خیلی اهمیت داره.

traversing

Manipulation: توابعی برای تغییر محتویات Elementها. این توابع امکان قرار دادن HTML یا Element رو در Elementهای دیگه میدن. مثلا بخوایم یک پاراگراف رو داخل یک کادر ببریم و غیره.

element1

CSS:  توابعی برای دسترسی و تغییر در مقادیر CSS.

element2Events:بخش بسیار مهمی برای تنظیم رویدادها برای Elementها مثل click و change و mouseover و غیره.

events

Effects:  انیمیشن سازی در jQuery شامل توابع محوسازی، اسلاید و تغییر تدریجی مشخصه های CSS.

effect

Ajax توابع آماده کار با AJAX. برخی از این توابع به Elementها متصل نمی شوند و مستقیما باید به خود شیء jQuery متصل گردند.

 

ajaxxUtilities: توابعی برای سهولت کار در جی کوئری مثل توابع شمارش آرایه و شیء، چک کردن نوع متغیرها، تبدیل شیء به کوئری و غیره.

 

utilityInternals: شامل توابعی که کاربرد خیلی خاص دارند مثل تابع data.

 

internalsمهمترین خصوصیت jQuery سادگی استفاده اشه. به این ترتیب که ما بدون بلد بودن جاوااسکریپت و فقط با یادگیری سینتکس جی کوئری می تونیم کارهای خیلی زیادی انجام بدیم و نگران چیزی نباشیم. این خصوصیت متمایز jQuery باعث شده تا تعداد کاربرانش خیلی بالا بره یعنی یه جورایی نمیشه از نظر تعداد کاربران، با فریم ورکهای دیگه مقایسه اش کرد.

جی کوئری امکان ایجاد پلاگین رو هم میده. مثلا من بیام تابعی بسازم که بیاد همه فرمها صفحه رو آژاکسی کنه و این پلاگین رو به تو بدم و تو فقط استفاده اش کنی. تعداد بالای کاربران تعداد خیلی بالای این پلاگینها رو موجب شده. یعنی اگر به بخش Plugin Repository سر بزنی، انقدر پلاگین میبینی که نمی دونی کدوم رو انتخاب کنی. خیلی پلاگینها توی سایت ثبت نشده اند و با سرچ باید پیداشون کرد. این حرف یعنی دامنه توابع و امکانات jQuery خیلی خیلی بیشتر از فهرست بالاست (فهرست بالا شامل همه توابع نیست و فقط یه معرفی از امکاناته). چون امکانی که در توابع خود جی کوئری وجود نداره، احتمالا پلاگینش وجود داره و یا بخاطر سادگی جی کوئری نوشتنش راحته.
مهمترین مشکلش که میتونه حسنش هم به حساب بیاد، اینه که جی کوئری کاملا برای DOM تعریف شده یعنی همه امکاناتش مخصوص اجزای صفحه است و اگر ما بخوایم یکم دسترسی بیشتری داشته باشیم، باید بریم سراغ کدهای عادی جاوااسکریپت. مثلا بخوایم Drag&Drop در صفحه داشته باشیم. باید یا از jQuery UI استفاده کنیم یا با کدهای خام جاوااسکریپت این بخش رو بنویسیم و اونجا تقریبا از جی کوئری هیچ خبری نیست.

این موضوع از این جهت بده که ما رو مجبور می کنه برای کارهای اضافی، کد خام بنویسیم یا فریم ورکهای دیگه ای به صفحه اضافه کنیم و از این جهت خوبه که جی کوئری رو یک فریم ورک مخصوص DOM معرفی می کنه. به این ترتیب که میگه من با خارج از DOM کاری ندارم ولی وقتی با خود DOM کار داری، من به بهترین شکل برات کار انجام میدم و نیازت رو برآورده می کنم.                                                                                                                                                                                                                                                     تمام بخشهایی که در بالا دیدی، خلاصه و معرفی بود. سعی می کنم در بخش جی کوئری همه اش رو مفصل آموزش بدم. اینها همه نظرات و دیدگاه شخص من از jQuery بود. میتونه کامل و عالی، ناقص و پیش پا افتاده یا غلط باشه. برای اطلاعات صحیح و بروز به سایت خود جی کوئری مراجعه کنید.

 

MooTools :

MooTools یک فریم ورک برای زبان جاوااسکریپته. کاربرها بخاطر APIهای خوب و پلاگینهاش سراغش میان ولی در واقع این فریم ورک بیشتر از این صحبتها میتونه مفید باشه.

MooTools توابع مفیدی برای کار با DOM داره، توابعی برای انیمیشن سازی و افکتهای متفاوت فراهم کرده. Ajax رو بصورت ساده و استاندارد درآورده و این به همراه توابعی برای اشیاء کاربردی جاوااسکریپت مثل String و Array و Function و غیره است. همه اینها البته بصورت Cross Browser! توی همه مرورگرها نتیجه یکسان داره.
خلاصه MooTools کار با جاوااسکریپت رو خیلی ساده می کنه. وقتی مثلا میخوایم برای یک سیستم نسبتا بزرگ جاوااسکریپت تعریف کنیم که به کدهای زیادی نیاز داره، MooTools واقعا ارزشمنده و کمک می کنه. زمانیکه توابع و کارکرد این فریم روک رو بشناسیم، خیلی خیلی کم پیش میاد که برای کاری مجبور بشیم از توابع و مشخصه های عادی جاوااسکریپت استفاده کنیم. تقریبا همیشه MooTools کافیه. البته نباید فراموش کرد برای کار با موتولز، بلد بودن اصول زبان جاوااسکریپت اهمیت داره چون همونجور که گفتم، این فریم ورک برای برنامه نویسی جاوااسکریپته.

از ویژگیهای این فریم ورک، ساختن ساده Extension های انعطاف پذیره. MooTools امکانی داره که میشه باهاش شیء رو مشابه زبانهای معروفی مثل PHP و Java ایجاد کرد یعنی توسط کلاس. این اشیاء قابلیتهای Extend و Implement و construct__ و امکان نمونه گیری و توسعه دارند.

یک فایل txt است که با تغییر فرمتش به js، توسط تگ <SCRIPT> به بخش <HEAD> صفحه اضافه می کنیم و کدهای شخصی خودمون رو هم توسط یک <SCRIPT> دیگه، بعد از <SCRIPT> قبلی در صفحه قرار میدیم:

script headیه نکته ای وجود داره بعضی جاها میگن MooTools رو بجای <HEAD>، در آخر <BODY> بذاریم. می دونی که اون فایل mootools حدود 70 کیلوبایته و وقتی در <HEAD> قرار بگیره تا کامل لود و پردازش نشه، ادامه صفحه و <BODY> نمایش داده نمیشه و برای سرعتهای پایین، مدت زمانی وجود داره که باید صفحه سفید تماشا کنند اما وقتی این فایل در آخر <BODY> بذاریم، صفحه مسلما زودتر ظاهر میشه. اما این روش استاندارد و همیشه خوبی نیست. چون اولا یه استانداردی میگه همه تگهای <SCRIPT> باید در <HEAD> قرار بگیرند و دوما اینکه تصور کن ما کدهایی رو در جی کوئری نوشتیم که قراره با شروع صفحه دیده بشن و صفحه طولانی باشه اونوقت کاربر باید منتظر بمونه تا همه صفحه کامل لود شه و بعد بتونه افکتها و امکانات جی کوئری رو استفاده کنه که اصلا جالب نیست.

اشیاء اصلی MooTools به ترتیب زیر هستند:

Core : توابع کاربردی که همگی با $ شروع می شوند و Global هستند. مانند type$ که نوع پارامتر رو میده یا merge$ که Objectها رو با هم ترکیب می کنه و غیره.

core

Browser: یک Object شامل اطلاعاتی برای تشخیص نوع و ویژگیهای مرورگر. برای مثال true بودن Browser.Platform.win به منزله اینه که کاربر داره از ویندوز استفاده می کنه یا Browser.Engine.trident5 نشاندهنده اینه که کاربر داره سایت رو با Internet Explorer7 میبینه و غیره.

browserArray : توسعه شیء Array در جاوااسکریپت. با توابعی مثل each بجای حلقه For یا contains برای چک کردن وجود یک مقدار خاص در آرایه و غیره.

array2Function: توسعه شیء Function. با توابعی مثل attemp برای اجرای یک تابع یا bind برای تغییر scope در تابع (که خیلی کاربردیه) و غیره.

scopeNumber : توسعه شیء Number با توابعی مثل toFloat و toInt که برای Number و String کار می کنه و غیره.

numberString: توسعه شیء String شامل توابعی مثل trim و contains برای جستجو در رشته یا hexToRgb و غیره.

stringHash: توسعه شیء Object در جاوااسکریپت. شیء Object به خودی خود قابل توسعه نیست. Hash روی Object های نرمال اعمال میشه و شیء جدیدی میسازه که قابل توسعه است. توابعی هم داره set و get برای تعیین و گرفتن مقدار از Hash یا extend برای اضافه کردن مقدار به شیء و غیره.

hashEvent: توسعه شیء Event با امکاناتی برای کنترل رویدادها در MooTools. این توسعه شامل نمونه استاندارد event و دکمه های کیبورده.

event

در موتولز میشه رویدادهای اختصاصی ساخت و توسط توابع خودش اجرا کرد مثل onClickDiv یا هر چیز دیگه ای. در بخش آموزش Event ها بیشتر توضیح میدم (انشاءالله). همچنین موتولز رویدادی اختصاصی برای شیء window داره به نام domready. این رویداد خیلی مهم موقع تکمیل ساختار DOM در صفحه فراخوانی میشه. با قرار دادن کدهامون در این رویداد مطمئن میشیم که کدها درست بعد از ایجاد شدن همه Nodeها اجرا میشن.

DomClass: شیءای برای تعریف توسعه از اشیاء موجود. این اصلی ترین بخش MooTools می تونه باشه که قابلیتهای توسعه و ارث بری رو توش ایجاد کرد. نمونه یک کلاس رو در زیر میشه مشاهده کرد:

classclass--class---Element: توسعه Elementهای DOM. این شیء با روشهای متنوعی از قبیل توابع $ و $$ یا ساختن Element توسط خود موتولز ایجاد میشه. در نسخه های جدید MooTools (در این تاریخ)، هر Element که بازیابی بشه، خودبخود در این شیء قرار میگیره. در نســــخه های جدید، متد document.id کاملا مشابه $ عمل می کنه.

element idتوابع خیلی زیادی برای این شیء وجود داره که همه اش کاربردیه:

element id2element id2-

توابعی مخصوص کار با رویدادها:

event3

Fx:  شامل توابعی اساسی برای ایجاد انیمیشن سازی در MooTools. خود این شیء تابع عمومی و پرکابردی نداره بلکه در زمان ساختن انیمیشن استفاده میشه ولی زیرمجموعه های این شیء در صفحه خیلی می تونن کاربردی باشند.

Fx

 

Request:  برای ارسال درخواستهای AJAX

request

اینها اشیاء اصلی بودند. همراه اینها اشیاء دیگه ای مثل Selector برای ایجاد امکان انتخاب Elementها توسط Selectorهای CSS، توابعی برای ترجمه JSON، کار با Cookieها و فلش و غیره وجود داره.
به همراه این موارد که بصورت خلاصه لیست شد، اشیاء و توسعه های دیگه ای هم هستند مثل توسعه شیء Date که چون زیاد پرکاربرد نیستند، در بخش More سایت قرار گرفتند. همچنین در اونجا پلاگینهایی هم توسط خود تیم MooTools تهیه شده که چون خیلی پرطرفدار هستند اونجا دیده میشوند. پلاگینهایی برای Slide و Drag & Drop و Tooltips و غیره.
پلاگینهای بیشتر در بخش Forge که اخیرا (در این تاریخ) راه اندازی شده قرار میگیرند.

تمام بخشهایی که در بالا دیدی، خلاصه و معرفی بود. سعی می کنم در بخش موتولز همه اش رو مفصل آموزش بدم. اینها همه نظرات و دیدگاه شخص من از MooTools بود. میتونه کامل و عالی، ناقص و پیش پا افتاده یا غلط باشه. برای اطلاعات صحیح و بروز به سایت خود موتولز مراجعه کنید.
MooTools در حال توسعه است و در آدرس http://MooTools.net قابل دسترسی و دریافت است. بخش دریافت امکانی داره که میشه اشیاء رو. انتخاب کرد. مثلا من احتیاجی به شیء Number ندارم، تیکش رو برمی دارم و اصلا توی فایلی که داونلود می کنم نیست. البته ابن بستگی به پیش نیازها داره یعنی اگر Element رو انتخاب کنم و Element به Number نیاز داشته باشه، نمیشه انتخابش نکرد. این امکان در صفحه Download و قسمت Core Builder و More Builder قرار گرفته.

مقایسه jquery و  MooTools :

mootools

توضیح: اول یه توضیح کوتاه درباره مفهوم فریم ورک (Framework) بدم برای کساییکه احتمالا با این واژه آشنایی ندارند. فریم ورک مجموعه ای از توابع و کدهایی هست که برای سهولت انجام کاری خاص طراحی میشه. مثلا همین jQuery، یه تابع معرفی کرده برای نمایش مطالب بصورت اسلاید. تمام کاری که ما باید بکنیم، استفاده از این تابع است. در حالیکه نوشتن چنین تابعی، به اطلاعات تجربه زیادی نیاز داره ولی استفاده اش نه! خلاصه فریم ورک، کار رو آسانتر می کند.

jQuery : اگر جاوااسکریپت بلد نیستی، یا کم بلدی، یا حوصله کد نویسی نداری ولی میخوایی افکتهای قشنگ جاوااسکریپت رو توی سایتت داشته باشی، این بهترین گزینه است. پیشنهاد می کنم معطل نکنی و بری تو بخش آموزش سایتش . تو کمتر از سه ساعت، زندگی تحت وبت تغییر می کنه. از اینکه توی مدت به این کمی، چیزایی یاد گرفتی که همیشه فکر می کردی مال از ما بهترونه، ذوق می کنی. باور کن. همین امروز و الان برو سراغ سایتش. ولی صبرکن! این مقاله رو تا آخر بخون بعد برو. بعدشم اون پایینو میبینی نوشته “تو چی فکر می کنی” ؟ اونو واسه خودم ننوشتم! نظرت رو بگو، قول میدم از اینکه دو خط کامنت تایپ میکنی نوک انگشتات خسته نشه….

jQuery امکانات خیلی خوب و سریعی برای کار با DOM ارائه میده ولی برای توسعه امکانات جالبی نداره. همینطور وقتی از محدوده DOM خارج میشیم، کار بیخ پیدا می کنه چون jQuery خارج از DOM، تقریبا هیچ تابعی نداره و باید از کدهای جاوااسکریپت معمولی استفاده کرد. اگر با این فریم ورک کار کرده باشی می دونی که تقریبا همه متدهاش، به المان یا اجزای DOM متصل می شوند و این به نظر من بزرگترین اشکالشه یعنی کل توانایی هامون بر روی اجزای صفحه قابل اجراست!

MooTools : این فریم ورک گسترده تر از بالاییه. متدهای خیلی زیادی برای خود جاوااسکریپت داره و نه صرفا برای DOM. تقریبا همه قابلیتهایی که jQuery داره، اینم داره به اضافه امکانات خیلی بیشتری برای کدنویسی جاوااسکریپت. این فریم ورک امکان تعریف کردن شیء و متد رو به سادگی میده. یعنی می تونی برای شیء Array متد بسازی و استفاده کنی یا برای اشیاء دیگه جاوااسکریپت. خواص ارث بری جاوااسکریپت رو به نوعی اصلاح کرده که شما با کلاسهای MooTools کارهای خیلی بیشتری می تونی بکنی.
بزرگترین عیبش در مقابل بالایی، دشوارتر بودنشه. همونجوری که گفتم، توی سه ساعت، حتی بدون زمینه قبلی، میشه jQuery رو یاد گرفت (اصولش رو) ولی برای MooTools اینطور نیست.                                                                                                                                                                                                                                                                          من چند وقت پیش کار کردن با MooTools رو شروع کردم و اصلا به اون سختی که توی مقاله تاکید شده، نبود ولی سادگی jQuery یه ویژگی خاصه.

اگر بخوای برای یک سایت، مجموعه امکانات جاوااسکریپت ایجاد کنی که به کدنویسی زیاد نیاز داره، بهتره که از jQuery استفاده نکنی چون در این زمینه، MooTools خیلی قدرتمندتره! ولی برای کارهای جزئی و سریع، فقط و فقط و فقط jQuery.

نسخه‌های جدید MooTools در مرورگرهای غیر از اینترنت اکسپلورر، یه امکانی دارند که jQuery نداره (تا این تاریخ). اون اینه که Elementها در jQuery از نوع Object هستند در حالیکه Elementها در MooTools از در واقع Elementهای توسعه یافته جاوااسکریپت هستند. به مثال زیر دقت کن. میخوایم شفافیت لینک زیر رو تغییر بدیم و آدرسش رو هم Alert کنیم:

alertو حالا چگونگی ارتباط این فریم ورکها با Elementهای DOM:

element in domهمونطوری که مشاهده می کنی، همه خصوصیات Element جاوااسکریپت در MooTools قابل دسترسه و این به نظر من خیلی فوق العاده است.
البته jQuery از نسخه 1.3 مشخصه ای به نام context داره که Element مورد نظر در DOM رو میده:

context

در آخر بحث مقایسه، این جمله کلیدی، خیلی از مفاهیم رو بیان می کنه:                                                                                                                                                                   بخش اعظمی از تفاوتها، به درک مفهوم فریم ورک و ابزار (Toolkit) مربوط میشه. به این صورت که، jQuery یک ابزاره و MooTools یک فریم ورک.

CSS :                                                                                                                                                                                                 مخفف کلمه Cascading Style Sheets و به معنی “برگه های پشت سر هم و مشبک ” است . ویژگی مربوط به HTML ( زبان نشانه گذاری متن ویژه وب ) که توسط کنسرسیوم وب (w3C) توسعه یافته و به نویسندگان اسناد HTML و کاربران آن امکان می دهد تا برگه های مشبک را به اسناد HTML خود متصل نمایند. برگه های مشبک ، شامل اطلاعات مربوط به آماده سازی چاپ و چگونگی ظهور صفحه مانند فونت متن داخل صفحه است . این ویژگی همچنین شیوه ترکیب برگه های مشبک شند HTML و برگه های مورد نظر کاربر را هدایت می کنند.

css2انواع استایلها:
همانطوری که قبلا نوشتم استایلها بر سه نوع میباشند:
۱. Inline Style:
این نوع استایل در داخل تگهای HTML به کار گرفته میشوند، و این استایل فقط بروی همان تگ به خصوص تاثیر خواهد گذاشت و به صورت زیر نوشته خواهد شد.

                                                                                                                                               This is a paragraph

در مثال بالا با استفاده از حالتهای مختلف در استایلها نوع فونت آنرا تغییر دادیم و همانطوری که در تعریف این نوع استایل نوشتم این استایل فقط و فقط تغییرات را بروی همین پاراگراف اعمال خواهد کرد.

۲. Embedded or Global Style:
در این نوع، استایل نوشته شده در تمامی صفحه تاثیر خواهد گذاشت، اینرا بین دو تگ (<head></head>) به صورت زیر نوشته خواهد شد.                                                                 این نوع حالت از تغییرات تعریف شده بروی تمامی تگها پاراگراف اعمال خواهد شد که رنگ متن: قرمز، جهت متن: چپ، و اندازه فونت ۸ پوینت خواهد بود. توجه داشته باشید در این مثال سه حالت مختلف یک استایل را برای تگ پاراگراف تعریف کردیم که با استفاده از (;) حالتهای مختلف آن از هم جدا شدند.

اگر بخواهید این حالت نوشته شده را برای چند تگ دیگر اعمال کنید می توانید تگها را بااستفاده از کاما (,) از هم جدا کنید برای مثال :

{ color: gold; font-family: sans-serif4,h3,h2,h1,h

۳. Linked or External style sheet:
نوع آخر هم معروف به استایلهای خارجی هستند که به صورت لینک فایل استایل را به صفحات خود لینک میدهید. فایلهای استایل با فرمت CSS ذخیره میشوند و به صورت زیر به صفحات لینک داده میشود.

<head><link rel=”stylesheet” type=”text/css” href=”mystyle.css”> </head>

در این نوع از استایلها بعد از اینکه فایل استایل خود را آماده کردید آنرا با فرمت CSS ذخیره کرده و آنرا همانند بالا فایل استایل را به قالب لینک می کنیم. برای راحت بود در کار می توانید ابتدا استایلها را به صورت Internal استفاده کرده و بعد از اینکه کارتان تمام شد کدهای نوشته شده بین دو تگ (<style></style>) را در نت پد کپی کرده و آنرا با فرمت CSS دخیره کرده و سپس با استفاده از فرمول بالا آن فایل را به قالب لینک دهید.

یکی از مزیتهای این نوع استایل این میباشد که می توانید با داشتن یک فایل استایل برای چندین صفحه استفاده کنید و از دیگر مزیت های آن با این کار کدهای قالب را به چند فایل تقسیم کرده و قالب را منظم تر میشود.

XMLچيست؟
• XML برگرفته شده از كلمات Extensible Markup Language است.
• XML يك Markup Language مانند HTML است.
• tag (برچسب) های XML از قبل تعريف شده نيستند، شما خودتان بايد آنها را تعريف كنيد.
• XML از يك (Document Type Definition) DTD برای شرح اطلاعات استفاده ميكند.
• XML با يك DTD طراحی ميشود تا خود-توصيف باشد.

تفاوت اصلی بين XML و HTML :
• XML برای حمل اطلاعات طراحی شده است.
• XML يك جايگزين برای HTML نيست.
• XML و HTML برای هدفهای مختلفی طراحی شده اند.
• HTML برای نمايش اطلاعات و XML برای شرح و حمل و نقل اطلاعات است.

 XML كاری انجام نميدهد!
شايد اين موضوع برای درك كردن كمی مشكل باشد، اما XML كاری انجام نميدهد. XML ساخته نشده تا كاری انجام دهد. XML به عنوان يك راه برای سازماندهی كردن، ذخيره كردن و فرستادن اطلاعات ساخته شده است. مثال زير يك يادداشت از Jani به Tove است كه در ساختار XML ذخيره شده است

XML

:

  يادداشت يك سرباره (header) و يك بدنه اصلی پيغام دارد، همچنين اطلاعات فرستنده و گيرنده را هم در بر دارد. اما هنوز اين سند XML كاری انجام نميدهد. آن فقط اطلاعات محضی است كه در برچسبهای XML قرار گرفته است.

XML آزاد و قابل گسترش
• برچسبهای XML از قبل تعريف شده نيستند، شما بايد برچسبها را خودتان درست كنيد.
• برچسبهايی كه در HTML بكار ميروند از پيش تعريف شده هستند و مؤلف سندهای HTML فقط ميتواند از برچسبهای تعريف شده در HTML استاندارد استفاده كند ( مانند و&lt;h1>).
• XML به مؤلف اجازه ميدهد تا برچسبهای خود و ساختار آنها را تعريف كند.
• برچسبهای مثال بالا ( مانند &lt;to>و&lt;from>) در XML استاندارد تعريف شده نيستند، اين برچسبها توسط مؤلف سند XML تعريف شده اند.

XML يك مكمل برای HTML
• XML يك جايگزين برای HTML نيست.
• درك اينكه XML يك جايگزين برای HTML نيست خيلی مهم است.
• در آينده گسترش وب احتمال داده ميشود كه XML برای شرح اطلاعات به كار خواهد رفت،درحاليکه كه HTML برای فرمت و نمايش اطلاعات به كار خواهد رفت.
• شايد اين بهترين تعريف از XML باشد: ابزاری مستقل از سخت افزار و نرم افزار برای انتقال اطلاعات است.

XML ميتواند اطلاعات را از HTML جدا كند
• با XML اطلاعات شما در خارج از HTML ذخيره ميشود.
• هنگامی كه HTML برای نمايش اطلاعات استفاده ميشود، اطلاعات در درون HTML ذخيره شده است. با XML اطلاعات ميتواند در فايلهای جدای XML ذخيره شود. در اين روش شما ميتوانيد HTML را به عنوان لايه ای روی اطلاعات و برای نمايش آنها فرض كنيد و مطمئن باشيد كه تغيير در اطلاعات لايه های زيرين احتياج به تغيير HTML شما نخواهد داشت.

برای داد و ستد اطلاعات
با XML اطلاعات ميتواند بين سيستم های ناسازگار داد و ستد شود.
در دنيای واقعی، سيستم های كامپيوتری و بانك های اطلاعاتی شامل اطلاعات در فرمت های ناسازگار هستند. يكی از وقت گيرترين چالش ها برای گسترش دهندگان، انتقال اطلاعات بين چنين سيستمهايی شده است.

XML و B2B
با استفاده از XML اطلاعات تجاری می تواند روی اينترنت داد و ستد شود. در آينده ای نزديك بايد منتظر شندن خبرهای بيشتری از XML و B2B)Business to Business) باشيم.
XML می رود تا زبان اصلی برای داد و ستد اطلاعات اقتصادی بين تجارت ها، روی اينترنت بشود. امروزه تعداد زيادی از برنامه های B2B در حال گسترش است.

XML برای توزيع اطلاعات
با XML ، فايل های متنی می توانند برای توزيع اطلاعات استفاده گردند (در اينجا منظور از توزيع، انتقال و پخش اطلاعات از يك نوع سيستم به سيستمهای نوع ديگر است).
زمانی كه اطلاعات در فايل های متنی ذخيره شود، XML يك روش مستقل از سخت افزار و نرم افزار برای انتقال و توزيع اطلاعات فراهم می كند.
اين روش باعث ميشود كه ايحاد و ساخت اطلاعاتی كه برنامه های كاربردی مختلف بتوانند با آن كار كنند بسيار آسان بشود. همچنين توسعه و ارتقاء يك سيستم به سيستم عامل، سرور، برنامه كاربردی و جستجوگرهای جديد را نيز آسانتر مينمايد.

XML برای ذخيره اطلاعات
با XML فايل های متنی ميتوانند برای ذخيره اطلاعات استفاده بشوند.
XML همچنين ميتواند برای ذخيره اطلاعات در فايلها و بانك های اطلاعاتی مورد استفاده قرارگيرد. برنامه هايی ميتواند نوشته شوند كه اطلاعات را در منابع ذخيره و فراخوانی كنند و برنامه های اصلی ميتوانند برای نمايش اطلاعات استفاده شود.

XML ميتواند اطلاعات شما را مفيدتر كند
XML اطلاعات شما را برای كاربرهای بيشتری قابل دسترس ميكند.
به دليل مستقل بودن XML از سخت افزار و نرم افزار و برنامه، شما ميتوانيد اطلاعات خود را برای برنامه هايی غير از جستجوگرهای HTML هم قابل دسترس نماييد.
به اين ترتيب اطلاعات شما در همه انواع برنامه های كاربردی ديگر قابل استفاده است، برای مثال يك برنامه كاربردی ميتواند اطلاعات شما را كه در يك بانك اطلاعاتی ذخيره شده است برای نابينايان به خروجی مخصوص خود انتقال دهد.

XML و زبان های جديد
XML مادر WAP و WML است. WML كه برای دستگاه های دستی مانند موبايل ها به منظور ارتباط با اينترنت مورد استفاده قرار ميگيرد، در XML نوشه شده است .

 

arm zakariaarm2