PDA

View Full Version : گفتگو: مقایسه Asp.net و php



maryshayegh
جمعه 03 دی 1389, 08:07 صبح
سلام به همه ی دوستان
من نیاز به یه مقایسه کامل از این دو دارم ، ممنون میشم از کسایی که تجربه و اطلاعات و منابع مفیدشون رو در اختیار بنده قرار بدن...

((از اونجایی که این انجمن ، صرفا مختص Asp.net است ، اگر از مزایا و معایب Asp.net (هر چی که به ذهنتون میرسه) هم بنویسین خیلی خوبه ، خودم میرم دنبال PHP :لبخندساده:))

Slytherin
جمعه 03 دی 1389, 10:07 صبح
مقایسه و انتخاب ابزارهای توسعه نرم افزار همواره یکی از بحثهای داغ برنامه نویسان و توسعه دهندگان نرم افزار بوده است. از مقایسه C و پاسکال تا مقایسه VB و ++VC و Delphi و با ورود به عصر اینترنت مقایسه امکانات perl،پیتون،PHP،ASP و ASP.NET، JAVA بحثهای بوده است که در فرومها و سایتهای تخصصی همواره به آن پرداخته شده است. البته خیلی اوقات این قضیه از یک بحث فنی تبدیل به بحثی صرفا براساس علاقه و تعصب برنامه نویسان تبدیل شده یا اینکه مقایسه تبلیغاتی برای نمایش ضعف رقیبان و قدرتهای یک ابزار خاص بوده است.
به نظرم مهم است که یک برنامه نویس و توسعه دهنده نرم افزار به زبانها و پلاتفرمهای توسعه نرم افزار صرفا به عنوان یک ابزار نگاه کند و براساس نیازهای کمپانی یا تیم نرم افزاری و نیازهای نرم افزار پلاتفرم و ابزارهای لازم را انتخاب کنند. مباحثی مثل علاقه شدید به مایکروسافت یا ضدیت با آن به نظرم شیوه حرفه ای و درستی برای انتخاب ابزارهای طراحی و توسعه نرم افزار نیست. این روزها در ایران مقایسه و انتخاب دو زبان و تکنولوژی خاص یعنی PHP و ASP.NET بحث داغی هستند و البته با گذشت زمان تقریبا هر گروه (بیشتر براساس سیاست شرکتهایی که در آن کار میکنند) یکی از این تکنولوژی ها را به عنوان ابزار اصلی توسعه نرم افزار و سایتها انتخاب کرده است. بارها از من پرسیده شده است که کدامیک از این زبانها انتخاب بهتری است و دلایل آن چیست؟ به عنوان برنامه نویسیکه در سالهای قبل علاوه بر ASP با زبان PHP نیز کار می کردم و در این زمینه مقاله (http://www.ccwmagazine.com/Issues/Issue14/software/PHP.ASP)، سمینار معرفی کوچکی و فعالیتهای در انجمن سابق ایران PHP (مانند تابع سورت فارسی (http://www.iranphp.net/articles/code_examples/Articles001.pdf)) داشته ام و همچنین در سالهای اخیر نیز عموما از 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 در ایران نیز در مقایسه بیشتر است.
شاید سوال پیش آید که چرا با وجود برخی برتریهای ASP.NET همچنان تعداد زیادی برنامه نویس PHP و نرم افزارهای تحت وب با این زبان نوشته می شود. یکی از مهمترین دلایل آن همانطور که قبلا اشاره شد ارزانی کار با ترکیب PHP و لینوکس است که به آن اختصارا LAMP گفته می شود. اجرا و طراحی یک وب در بستر ویندوز با در نظرگرفتن هزینه لایسنس ویندوز سرور، SQL Server و محیط توسعه Visual Studio در قیاس با ارزانی و حتی رایگان بودن سیستم عامل لینوکس و MYSql و محیطهای توسعه PHP دلیل مهمی برای انتخاب ترکیب PHP و لینوکس بخصوص برای برنامه نویسان مستقل در خارج از کشور است. اما قاعدتا در مورد پروژه ای بزرگ و شرکتهای بزرگ نرم افزاری این هزینه ها آنقدر قابل توجه نیست و بنابراین این شرکتها استفاده از پلاتفرمهای حرفه ای تر مانند JAVA و دات نت را انتخاب می کنند.

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

کدامیک را انتخاب کنیم؟
انتخاب یک ابزار یا بستر توسعه نرم افزار (یا وب سایت) همانطور که گفته شد بایستی براساس نیاز نرم افزار یا وب سایت باشد. بطور مثال اگر لازم است سایت در سرور لینوکس اجرا شود و یا در آینده سایت از یک محیط (مثل ویندوز به یونیکس) منتقل شود با توجه به شرایط روز شاید بهتر باشد PHP انتخاب شود. اگر قرار است پروژه ای بزرگ با استفاده ازمتدها و ابزارهای مهندسی نرم افزار پیاده سازی شود باشد و هزینه اجرا ارجحیت نخست نیست شاید ASP.NET گزینه بهتری باشد. در عین حال فکر میکنم دانشجویان و مهندسان نرم افزار ایرانی با توجه به بازار خوبی که در خارج از کشور و همچنین ایران وجود دارد و اینکه یادگیری دانت فقط پیاده سازی صفحات وب نیست و امروز یکی از رایجترین ابزارهای توسعه نرم افزارهای تحت ویندوز است یادگیری دات نت را به عنوان یک گزینه مهم بایستی مد نظر داشته باشند.
منبع - وبلاگ علیرضا شیرازی - مدیر بلاگفا و پارسیک (http://www.shirazi.blogfa.com/post-198.aspx)
پی نوشت: توجه کنید که بلاگفا بزرگترین سایت ایرانی می باشد و در جهان نیز رتبه ای در حدود 170 دارد، پس من فکر می کنم نظر اقای شیرازی، نظر نا صحیحی نباشد.

maryshayegh
جمعه 03 دی 1389, 22:46 عصر
دیگر موارد
یکی از خصوصیات PHP کدباز یا Open Source بودن آن است که توسط طرفداران PHP به عنوان یک مزیب به شمار می رود. این قضیه این امیدواری را ایجاد میکند که PHP با عدم پشتیبانی در آینده مواجه نخواهد بود و به روند رو به توسعه خود ادامه خواهد داد اما از طرفی با نگاه واقعگرایانه خواهیم دید که مفسر اصلی و برخی از مهمترین ابزارهای PHP توسط یک شرکت خاص (Zend )عرضه می شود و در عین حال مایکروسافت توانسته پیشرفت قابل توجهی در مقایسه در ابزارها و بسترهای توسعه نرم افزار خود ایجاد کند.همچنین نکته ای که برای فارسی زبانان قابل توجه است پشتیبانی ذاتی دات نت از یونی کد و رشته های فارسی است. در PHP اگرچه ارسال یا دریافت اطلاعات فارسی امکان پذیر است اما در واقع خود PHP درک درستی از آن ندارد و این قضیه در زمان کار پیچیده با رشته ها مشخص تر است.

بســـــــــیار ممنونم از پاسخ دلسوزانه و عالی شما کاربر دائمی .
لطفا در رابطه با Open Source ذهن من را باز کنید ، در این رابطه شنیدم ولی چندان معنای اون برای من روشن نیست
بازم ممنونم از پاسختون - انشالله موفق باشین

aminghaderi
جمعه 03 دی 1389, 23:02 عصر
تا بحال 100 بار به طرق مختلف در این سایت asp.net رو با php و زبان ها و پلت فروم های دیگه قیاس کردند ، لطفا جای نوشتن تاپیک و تکرار مکافات ، یه سرچی در سایت بفرمایید ، اگر در سایت نتونستید پیدا کنید ، یه سرج در گوگل بر دامنه سایت انجام بدید تاپیک ها قدیمی رو می یاره مثال:
http://www.google.com/search?sitesearch=barnamenevis.org&q=%D9%85%D9%82%D8%A7%DB%8C%D8%B3%D9%87+php+%D9%88+ asp.net&submit.x=0&submit.y=0&domains=barnamenevis.org

open source نیز به همین شکل.
موفق باشی.

Mr.Moghadam
جمعه 03 دی 1389, 23:20 عصر
سلام
با بعضی از قسمتهای این مقاله مخالفم.


عموما طراحان وب سایت به دلیل سادگی استفاده و یادگیری PHP آنرا فرا میگیرند و برنامه نویسان حرفه ای و مهندسان نرم افزار هم علاقه بیشتر به دات نت و JAVA دارند.

اینجا اومده زبان برنامه نویسی PHP رو با دوتا فریم ورک مقایسه کرده که از پایه این مقایسه اشتباهه(نظر شخصی)




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

(مگه خود دات نت از کلاسهای از پیش نوشته شده درست نشده؟ مگر این کلالسهایی رو که دات نت برای استفاده برنامه نویسا قرار داده برای راحتی کار نیست؟)

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

یه چیز دیگه هم هست که این جور مقالات درسته که یه آشنایی کوچیک به ما میده ولی به نظر من برای انتخاب یکی از این دوتا باید بشینی با دوتاش یه پروژه بنویسی ببینی کدومش با سلیقه خودت سازگاری داره یا بیشتر با هاش حال میکنی.

aminghaderi
جمعه 03 دی 1389, 23:49 عصر
یه چیز دیگه رو بگم اینه که من خودم شخصا وقتی که با دات نت کار میکنم اصلا احساس نمیکنم دارم برنامه نویسی میکنم فکر میکنم دارم یه پازل رو سر هم میکنم که این اصلا برای من حس خوبی نیست برا همین سمت ای اس پی دات نت نرفتم.(ولی از سی شارپ هنوز دل نکندم).این به این خاطر هست که شما از روش استفاده از جادوگر ها یا همون ویزارد ها کار کردی که همچین مشکلی برخوردی ، همشهری.
اگر مثل بنده خودت گرید ویو رو شبیه سازی می کردی حس مرتب کردن پازل بهت دست نمی داد.
و در ثانی قیاس دو برنامه یا زبان یا ... زیاد جالب نیست وقتی که گویندگان در دو مورد قیاس استاد نباشند.
من اگر بخوام نقاط قوت و ضعف دات نت رو بگم ، شاید حدود 3 صفحه بگم و شاید فقط 3 تا 4 خط از مشکلات دات نت بنویسم.
ولی حقیقت حوصله نیست.

Slytherin
جمعه 03 دی 1389, 23:54 عصر
من به این دلیل این مقاله را قرار دادم چون فکر می کنم آقای شیرازی فرد با تجربه و موفقی در ضمینه برنامه نویسی وب هستند.
در مورد سوال جناب maryshayegh باید بگم که،
مفهوم آن جمله این است که در PHP همه می توانند در پیشفرت زمان برنامه نویسی PHP نقش داشته باشند اما ASP.Net صرفا در اختیار ماکروسافت هست.
منظور این است که ممکن است PHP پیشرفت های بیشتر و متنوع تری داشته باشد، هرچند که ماکروسافت نیر تیم قوی و منسجمی دارد...

eshpilen
شنبه 04 دی 1389, 10:49 صبح
لطفا در رابطه با Open Source ذهن من را باز کنید ، در این رابطه شنیدم ولی چندان معنای اون برای من روشن نیست
بازم ممنونم از پاسختون - انشالله موفق باشین
Open Source يا همان بازمتن (متن‌باز نيز گفته ميشود) به نرم افزارهايي گفته ميشود كه داراي اختيارات تقريبا كامل براي استفاده‌كنندگان هستند و همراه با امكان دسترسي كامل به كد منبع آن نرم افزارها ارائه ميشوند (چون براي استفادهء عملي از بعضي از اين اختيارات، به در دسترس بودن كد منبع نياز است). منظور از اختيارات مثلا حق تغيير و كپي و تكثير نامحدود و استفاده در هركاربردي اعم از تجاري و غيرتجاري، بدون نياز به كسب اجازه از ايجاد كنندگان آن نرم افزار يا پرداخت هرگونه مبلغي براي دريافت يك مجوز مي باشد.
با اينكه رايگان بودن جزو شرايط نرم افزارهاي بازمتن نيست، اما اختيارات اعطا شده در عمل در بيشتر موارد به رايگاني اين محصولات منجر ميشوند. اما بايد درنظر داشت كه اين يك اثر جانبي است و ضرورت ندارد و در بعضي موارد ميتواند وجود نداشته باشد؛ بطور مثال وقتي نرم افزاري را بصورت سفارشي براي شخص يا شركتي مي‌نويسيد، ميتوانيد بابت آن هر مبلغي كه توافق مي‌كنيد دريافت كنيد، و در عين حال نهايتا آنرا با مجوزهاي نرم افزار بازمتن در اختيار مشتري قرار دهيد. اما درمورد نرم افزارهاي عمومي كه منتشر ميشوند اغلب اين امكان عملا وجود ندارد چون افراد ميتوانند با دريافت يك نسخه از نرم افزار، بدون محدوديت آنرا تكثير و توزيع كنند؛ در اينصورت مگر براي اولين نسخهء نرم افزار كسي حاضر شود پول پرداخت كند كه آنهم مشكل و محل ابهام است، چون آن شخص ميداند كه توليدكننده نهايتا نرم افزار را بصورت بازمتن منتشر خواهد كرد و ديگران بصورت رايگان به آن دسترسي پيدا خواهند كرد. ضمنا اغلب توليدكنندگان بازمتن انگيزه هايي دارند كه باعث ميشود دنبال پول زياد نباشند، وگرنه ميتوانستند نرم افزار خود را بجاي بازمتن بصورت انحصاري ارائه كنند.

جنبش ‹‹بازمتن›› بعد از جنبش ‹‹نرم افزار آزاد›› بوجود آمد و سعي كرد اسم و رابطهء بهتري را براي كساني كه نميخواهند نظرات سياسي و فلسفي و اجتماعي نرم افزار آزاد را مطرح كنند و/يا ميخواهند با شركتهاي تجاري كه معمولا منافع آنها با بيان اينطور ايدئولوژي ها و اصطلاحات مثل آزادي و عدم انحصار تطابق ندارد، رابطه و همكاري بهتر و گسترده تري برقرار كنند ارائه نمايد؛ وگرنه بازمتن و نرم افزار آزاد در بيشتر موارد عملا با هم تفاوتي ندارند. فرق بازمتن و نرم افزار آزاد اغلب فقط در اينست كه نرم افزار آزاد يك جنبش سياسي داراي اهداف اخلاقي و اجتماعي و حاوي فلسفه اي مشخص داراي بالاترين اولويت و تاحد زيادي مستقل از ابعاد فني و تجاري صرف است، اما بازمتن يك جنبش فاقد اين مفاهيم است كه به بعد فني و پيشرفت علمي و نهايتا به علاقمندي صرف براي كار و همكاري آزاد در زمينهء نرم افزار مي‌پردازد.

جهت اطلاعات بيشتر دربارهء جنبش و فلسفهء نرم افزار آزاد ميتوانيد به اين تاپيك مراجعه كنيد: http://barnamenevis.org/showthread.php?231500

eshpilen
شنبه 04 دی 1389, 11:27 صبح
بطور كلي تاجايي كه ديدم، دات نت قويتر و كاملتر از PHP هست.
اما اين قدرت بيشتر در كاربردهاي گسترده و پيشرفته برجسته ميشه.
و با درنظر گرفتن اينكه بخش بزرگي از كاربردها، كاربردهاي كوچك تا متوسط و معمولي و محدود هستن، PHP ابزار پراستفاده و مفيدي هست كه مزاياي رايگان بودن و بازمتن بودن رو داره كه اين مزايا ميتونن درمقابل قدرت بيشتر دات نت غلبه پيدا كنن. ضمنا يادگيري PHP سريعتر و راحتتر هست و بنابراين خيلي ها كه هدفشون سطح خيلي حرفه اي و كارهاي بزرگ و پيچيده نيست، به سمت PHP ميرن يا اينطور احساس ميكنن كه دات نت چيزي جز زحمت و خشكي بيشتر نداره (شايد چون كامل و اصولي ياد نگرفتنش و كاربرد تمام امكاناتش در كاربردهاي بزرگ و پيچيده رو تصور نميكنن).

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

ضمنا يه چيز ديگه رو هم بگم و اون اينكه، برنامه نويسان واقعا قوي و دانشمندان اين رشته، اونقدري قوي هستن كه ميتونن بدون استفاده از امكاناتي مثل دات نت هم هركاري رو كه ميخوان به انجام برسونن. هر برنامه و پروتكلي كه بخوان خودشون ابداع ميكنن؛ با زبانها و فريمورك هاي مختلف آزادي كه هست. و اين كار رو واقعا خوب و كامل و نسبتا سريع انجام ميدن؛ احتمالا نه به سرعت و راحتي استفاده از فريمورك هايي مثل دات نت، اما بهرحال اونقدري راحت و سريع هست كارشون كه كفايت ميكنه و بخاطر همين شاهد هستيم كه پروژه ها و سايتهاي بزرگي با استفاده از ابزارها و فناوريهاي آزاد/بازمتن ايجاد ميشن. مزيت رايگان بودن و آزاد و بازمتن بودن هم خيلي كمك ميكنه كه هزينه هاي بيشتر توسعه توجيه منطقي پيدا كنن.

با اينكه دارم دات رو ياد ميگيرم و قدرت و كامل و اصولي بودن و ابتكارات متعدد بكار رفته در اون رو ميبينم و اينها از نظر فني قابل ستايش هست، اما آرزو ميكنم چيزهايي مثل PHP (كه قبل از دات نت اون رو ياد گرفتم و باهاش كار كردم و هنوزم گهگاه برحسب نيازهاي كوچك و موردي كارهايي ميكنم و احتمالا در آينده هم ازش خواهم كرد) هم هميشه وجود داشتن باشن و همپاي نرم افزارهاي انحصاري پيشرفت كنن.
يادگيري و استفاده از نرم افزارهاي انحصاري از روي اجبار و محدوديت هاي عملي موجود هست، وگرنه آزاد و رايگان بودن بنظر بنده مسلما هيچوقت عيب نيست و يك مزيت بزرگه؛ چون در كل چيزي رو بشريت نميگيره، بلكه امكانات و اختيارات بيشتري رو در دسترس عموم مردم ميذاره. بينش من ميگه كه نرم افزارهاي آزاد/بازمتن، براي حفظ سلامت تمدن بشر و آزادي و عدالت و پيشرفت علم بسيار مفيد يا حتي ضروري هستن.

اون آزادي و مصلحت و اخلاق و آرمانهاي بشري و سود عمومي اي كه توسط فلسفهء نرم افزار آزاد مورد اعلام و ستايش و حمايت واقع ميشن و نرم افزارهاي بازمتن هم عملا باعث حفظ و پيشرفت اونها هستن، چيزي هست كه هرگز در نرم افزارهاي انحصاري وجود نداشته و بنظرم نخواهد داشت!
شايد بعضيا با اين نظر موافق نباشن و بگن وجود نرم افزارهاي انحصاري هم لازم هست. اين نظر قابل تعمق و بررسي هست و لزوما غلط نيست، اما تقريبا شكي در اين ندارم كه وجود همزمان نرم افزارهاي آزاد هم بسيار مفيد و اصلا ضروري هست براي بشريت.