چند کلام در رابطه با برنامه نويسي وب به زبان ASP .Net

4 Comments

وب يک دنياي متفاوت از دسکتاپ است اما ASP سعي کرده تا در محيط کاملا متفاوت وب، محيطي شبيه سيستم هاي دسکتاپ را ايجاد کند. اين مسئله البته به اصطلاح برنامه نويس را از درگيري هاي ذهني با عملکردها و تراکنش هاي خاص محيط وب دور نگه مي دارد اما دقيقا به همين اندازه او را از قابليت ها و توانايي هاي ويژه وب نيز دور مي کند.
کساني که برنامه نويسي وب را با ASP آغاز مي کنند احتمالا تا مدتها در درک تراکنش هاي خاص ويژه وب مشکل خواهند داشت. ASP .Net به ويژه بعد از نسخه 3.5 کاربر را کاملا از درک زيربناها دور مي کند و به جاي آنکه کاربر با عملکردها و تنظيماتي که مستقيما روي خروجي نهايي اثر گذارند درگير باشد، با عملکردها و تنظيمات ساختگي مايکروسافت که يک لايه اضافي روي حقايق وب هستند درگير مي شود. و از آنجايي که اين تنظيمات ساختگي به سليقه ي برنامه نويسان مايکروسافت تفسير مي شوند و با کامپاننت هاي واقعي دنياي وب جايگزين مي شوند نه بر اساس واقعيت هاي موجود وب؛ به راحتي امکان عدم کنترل نهايي روي خروجي واقعي بوجود مي آيد.
از طرف ديگر برنامه نويس با مشاهده محيط پرزرق و برق Visual Studio فريب اين مسئله را خواهد خورد که در زمينه طراحي گرافيکي محيط سريعتر عمل خواهد کرد در حالي که اين محيط تجملي کمک چنداني به طراحي نخواهد کرد و در نهايت اين تجربه برنامه نويس در کار با المانهاي واقعي وب (نه المانهاي ساختگي Visual Studio به تقليد از نرم افزار هاي دسکتاپ) است که يک ظاهر کامل و دقيق در خروجي ايجاد مي کند. به نظر نگارنده در اين زمينه نرم افزارهايي از قبيل Dreamweaver قدرت به مراتب بيشتري را در اختيار برنامه نويس قرار مي دهند.
اما از سويي ديگر ASP با ايجاد امکان استفاده از زبان قدرت مندي همچون C# در طرف سرور امکانات جالبي را در اختيار قرار مي دهد که شايد عمده ي اين قدرت خارج از نياز يک برنامه وب باشد.
در انتها بايد تذکر داد که شايد در حالي که بزرگترين سيستم حاکم دنياي وب سيستم هاي خانواده Unix از قبيل Linux هستند، بزرگترين ضعف برنامه هاي وب نوشته شده به زبان ASP عدم توانايي آنها در اجرا روي اين خانواده از سيستم هاي عامل است. در حالي که PHP غير از توانايي اجرا بر روي سيستم هاي ويندوزي و هم سيستم هاي خانواده Unix، با اجراي خود بر روي سيستم هاي عامل خانواده Unix سرعت و امنيت و پايداري فوق العاده بالاتري را خواهد داشت. هرچند تلاشهايي براي برطرف کردن اين ضعف بزرگ و قابل اجرا شدن کد هاي .Net روي خانواده سيستم هاي عامل Unix انجام شده اما هنوز هيچ تلاش کاملي در اين زمينه موجود نيست.

PHP در مقایسه با زبانهای دیگر وب

No Comments

امروزه PHP جذاب ترین زبان برنامه نویسی وب است. در حال حاضر بيش از 40% همه برنامه هاي وب و حدود 22 ميليون دامين فعال در دنیا از زبان PHP برای انجام کارهای خود بهره می گیرند، حدود 450 برنامه نويس به صورت دائم در حال توسعه آن هستند که تا کنون حدود 1 ميليون خط کُد نوشته اند.
PHP زباني بسيار ساده است و با يک بانک اطلاعاتي بسيار قدرتمندِ متن باز (MySQL) آميخته شده، PHP زباني متن باز است، هزارها پروژه متن باز از آن وجود دارد و تقريبا هرگونه نياز کاربر را به راحتي و با کمترين هزينه تامين مي کند.
اکثر برنامه نويسان PHP برنامه نويسان متن باز هستند، کساني که معتقدند علم انحصاري نيست، در نتيجه هرمشکل کاربر در اسرع وقت توسط حرفه ايي ها پاسخ داده مي شود.
PHP زباني پرتابل است، بر روي انواع سيستم ها عامل از Windows انحصاري مايکروسافت گرفته تا حرفه ايي ترين سيستم هاي پرقدرت و امن UNIX اجرا مي شود.
و مهم تر از همه PHP متن باز است يعني جاسوس ندارد، کنترل مخفي ندارد و در يک تاريخ مشخص از کار نخواهد افتاد.

همه اينها يعني PHP حتي اگر بهترين نباشد، يک از فوق العاده ترين هاست.
اما گذشته از PHP اگر بخواهيم يکي ديگر از زبانهاي فوق العاده براي برنامه نويسي وب را نام ببريم قطعا بايد از JSP نام برد.

ادامه دارد . . .

زبانهاي سمت سرويس گيرنده و سرويس دهنده ي مهم

No Comments

زبانهاي زيادي براي برنامه نويسي وب وجود دارند که بنده فقط به مواردي از آنها که به نظرم مهم ترين هستند اشاره مي کنم:

مهمترين زبانهاي سمت سرويس دهنده:

  • PHP يا Personal Home Page Tools زباني نزديک به C
  • JSP يا Java Server Page که با همان سينتکس زبان Java کار مي کند
  • ASP يا Active Server Page که از سينتکس .Net تبعيت مي کند

مهمترين زبانهاي سمت سرويس گيرنده:

  • Java Script که عمده ترين زبان سمت سرويس گيرنده است
  • ActiveX که مثل همه ي کارهاي مايکروسافت يک حرکت با تبليغ زياد و ظاهري زيبا اما توخالي بود

مهمترين مسئله براي کسي که مي خواهد از يک زبان سمت سرويس گيرنده استفاده کند اين است که مرورگري که کاربر از آن استفاده مي کند امکان اجراي آن را داشته باشد. امروزه ديگر کمتر سخني از ActiveX براي استفاده در وب به ميان مي آيد، در حقيقت اين تلاش مايکروسافت از يک طرف به دليل مشکلات امنيتي زيادي که داشت و از سمتي ديگر به دليل اينکه دنياي وب و دنياي مرورگرها محيطي تحت سيطره مايکروسافت نبود به تدريج بازي را به رقيب خوش ساخت خود يعني Java باخت و حتي تلاش مايکروسافت براي حذف Java از Windows نيز نتوانست کمکي به آن کند.
از طرف ديگر Java زباني بسيار کارآ مي باشد، هر چند براي کار با آن شما بايد يک حرفه ايي باشيد اما مزاياي بسيار زياد اين زبان مانند امکان اجرا روي هر سکو و در هر محيط مهم ترين عامل بُرد آن بود. امروزه ديگر همه مرورگر ها Java را ساپورت مي کنند و برنامه نويس Java دغدغه کمي براي عدم اجراي کُد خود دارد.
از طرف ديگر Java Script ذاتا يک زبان متن باز است و حتي اگر شما يک غير حرفه اي هم باشيد مي توانيد کد مورد نظرتان را به سادگي از منابع متفاوت بدست آوريد.

برنامه هاي وب سمت سرويس دهنده در مقابل برنامه هاي وب سمت سرويس گيرنده

No Comments

تا اينجا دانستيد که ابزارهايي بوجود آمدند که اين امکان را فراهم مي کنند تا برنامه نويس وب بتواند برنامه هاي طراحي کند که در محيط وب اجرا شوند و خدماتي را براي کاربر فراهم کنند. محيطي که براي يک برنامه وب در نظر گرفته مي شود حداقل از يک سرويس دهنده (Server) و يک سرويس گيرنده (Client) و يک مرورگر وب تشکيل مي شود.
شما براي مشاهده يک سايت درخواستتان را به کامپيوتري که سايت مورد نظرتان روي آن قرار دارد ارسال مي کنيد و آن کامپيوتر اطلاعات لازم را در اختيار شما قرار مي دهد. شما سرويس گيرنده ي آن کامپيوتر هستيد و آن کامپيوتر سرويس دهنده شما مي باشد.
مرورگر وب برنامه اي است که در کامپيوتر کاربر اجرا مي شود و محيطي را فراهم مي آورد که در آن برنامه وب يا نتايج آن به نمايش در مي آيد. انواع مختلفي از مرورگر وب را مي شناسيد: اينترنت اکسپلورر، فايرفاکس و اوپرا تنها سه مورد از دهها مرورگر موجود براي کار با وب مي باشند.
اگر به تعريف مرورگر وب دقت کنيد مشاهده مي کنيد که ما براي مرورگر وب دو وظيفه عمده قائل شديم: 1. نمايش نتايج برنامه وب و يا 2. اجراي برنامه وب
ايده ي اوليه و اصلي برنامه هاي وب اين است که برنامه در سرويس دهنده اجرا شود و نتايج آن به سرويس گيرنده ارسال و در مرورگر وب به نمايش درآيد اما نسل جديد برنامه هاي وب با تکيه بر زبانهاي غير وابسته به سکوي اجرا مانند جاوا، پا را فراتر گزاشتند و اين امکان فراهم شد که برنامه هاي وب در کامپيوتر سرويس گيرنده و در محيط مرورگر وب نيز اجرا شوند.
لذا برنامه هاي وب را در دو دسته بندي عمده ي سمت سرويس دهنده (Server Side) و سمت سرويس گيرنده (Client Side) تقسيم بندي مي کنند.
برنامه هاي وب سمت سرويس دهنده برنامه هايي هستند که تماما روي سرويس دهنده اجرا مي شوند و تنها نتايج اجراي آنها براي نمايش به دستگاه سرويس گيرنده ارسال مي شود.
برنامه هاي وب سمت سرويس گيرنده برنامه هايي هستند که روي دستگاه کاربر سرويس گيرنده اجرا مي شود و تنها تفاوت آن با يک برنامه دسکتاپ محدود بودن آن در محيط مرورگر وب مي باشد.
معمولا برنامه هاي سمت سرويس گيرنده به تنهايي و مستقلا عمل نمي کنند و همان طور که بعدا شرح داده مي شود به عنوان مکمل برنامه هاي سمت سرويس دهنده به کار گرفته مي شوند.

چرا برنامه نویسی وب؟

1 Comment

سالها وب سایتها به صورت استاتیک یا غیر پویا طراحی می شدند. یعنی یک صفحه وب طراحی می شد و برای مشاهده و استفاده عموم در اینترنت قرار می گرفت. در این صفحات همه چیز ثابت بود و یک صفحه جدید همواره باید یک پروسه طولانی شامل طراحی، پیاده سازی و قرار گرفتن در سایت را طی می کرد، اما این مسئله پاسخگوی نیاز های مالتی مدیا نبود. به زودی تلاش هایی برای ایجاد امکاناتی فراتر از این موارد آغاز شد. ما قصد بررسی تاریخچه ی این تلاش ها را نداریم اما به طور مختصر باید گفت کارهای انجام شده از مواردی خیلی اولیه و ساده مثل امکانات DHTML که مواردی ابتدایی مثل یک متن متحرک در یک صفحه و یا حرکت کردن یک متن از جایی به جای دیگر از صفحه و مانند آن را شامل می شد، آغاز شد تا در طول زمان در اثر تکامل تدریجی ابزارها، امکانات پیچیده ای مانند دسترسی به بانک های اطلاعاتی، خواندن و نوشتن فایل ها و تقریبا هر کاری که می توان در یک برنامه عادی انجام داد، در یک صفحه وب امکان پذیر شد.
این ابزارهای حرفه ای مقوله ی جدیدی را ایجاد کردند به نام «توسعه دهنده وب»(Web Developer). در دنیای وب، توسعه دهنده در برابر مفهوم «طراح وب» (Web Designer) معنا پیدا می کند. توسعه دهنده مفهومی شبیه به برنامه نویس را شامل می شود در حالی که طراح بیشتر به جنبه های ظاهری می پردازد.
مفهوم دیگری که با توسعه امکانات موجود برای طراحی وب بوجود آمد مفهوم «برنامه وب» (Web Application) در برابر مفهوم «برنامه میزکار» (Desktop Application) می باشد. برنامه وب برنامه ای است که روی یک سرویس دهنده و خارج از دستگاه کاربر اجرا می شود و کاربر صرفا نتایج آن را مشاهده می کند. در حالی که برنامه میزکار برنامه ای است که روی دستگاه کاربر اجرا می شود.
اما به تدریج و با پیشرفت امکانات برنامه های وب، شرایطی بوجود آمد که یک طراح وب همه لوازم برنامه های میزکار را در اختیار دارد و کم کم این ایده بوجود آمد که برنامه های وب، می توانند جای برنامه های میزکار را بگیرند.
امروزه با برنامه های وب بسیاری سرو کار دارید، سرویس های ایمیل، اجتماعات اینترنتی، محیط های چت، موتورهای جستجو و موارد بسیار دیگری که هر روز کارهای بسیاری را برای شما انجام می دهند.