PDA

View Full Version : از حرفه ایها جهت شرکت در تاپیک «مقایسهء عملی ASP.NET و PHP با نمونه کد» دعوت میشود!



eshpilen
چهارشنبه 25 اسفند 1389, 21:53 عصر
خب فکر میکنم از عنوان و توضیحاتی که در تاپیک مربوطه هست همه چیز مشخص باشه و نیازی به توضیح بیشتر نیست. از حرفه ایهای ASP.NET دعوت به شرکت و کمک در تاپیک مقایسهء عملی ASP.NET و PHP با نمونه کد (http://barnamenevis.org/showthread.php?279112-%D9%85%D9%82%D8%A7%DB%8C%D8%B3%D9%87%D8%A1-%D8%B9%D9%85%D9%84%DB%8C-ASP.NET-%D9%88-PHP-%D8%A8%D8%A7-%D9%86%D9%85%D9%88%D9%86%D9%87-%DA%A9%D8%AF)میکنم.
قصد بنده و پیشنهادم برای ایجاد این تاپیک این بود که با مقایسهء عملی و نمونه کد بتونیم واقعا دید واقعی تر و موثق تری نسبت به تفاوت و مزایا و معایب ASP.NET و PHP نسبت به هم بدست بیاریم.
بحثهای کلی و بدون مقایسهء عملی و نمونه کدهای کاربردهای واقعی و متداول، زیاد انجام شده و میشن و از این بحثها چیز بیشتری حاصل نمیشه.
از اونجایی که برنامه نویسی و علم نرم افزار یک زمینهء کاملا عملی و با هزینهء کم در دسترس همگان هست، اینطور مقایسه های عملی کاملا ممکن و بنظر بنده مفید هستن.

قبلا بطور مثال نظیر چنین مقایسه ای رو درمورد دو کتابخانه/فریمورک مختلف (Qt و GTK+) انجام داده بودم و پیشگام این روش عملی و جسورانه بودم. و باید بگم نتیجهء خوبی داشت و حداقل اطلاعات و دانش خودم خیلی راحت و سریع درمورد ساختار و کدهای کتابخانهء دیگری که ازش اطلاع کافی نداشتم رشد کرد و نسبت به درستی برداشت و تصمیم خودم اطمینان یا حداقل بینش بیشتری بدست آوردم. در بیشتر موارد آدم هرچی منبع و رفرنس بخونه بازم دید کامل و دقیق و مطمئنی نداره و نمیتونه دو چیز مختلف ولی دارای کاربردهای مشابه رو بقدر کافی مقایسه کنه. پس چرا وقتی برنامه نویسان و مطلعان هردو چیز وجود دارن، به هم برای درک این امور کمک نکنن؟ آیا از رویارویی هراس دارن یا افشا شدن حقیقت؟
هرکس میتونه بقدر وقت و انرژی و دانش و تجربهء خودش در اینطور تاپیک ها شرکت کنه و فکر نمیکنم این هزینهء کم به کسی ضرر خاصی بزنه. و درمقابل انتظار میره نتایج خوبی برای هر دو طرف بدست بیان.

eshpilen
چهارشنبه 25 اسفند 1389, 22:06 عصر
بنده مواردی رو که قصد داشتم در درجهء اول مطرح کنم، مثلا Partial page rendering بود در ASP.NET که میدونید درواقع همون AJAX هست. میدونید که این کار در ASP.NET چقدر راحت با کنترل UpdatePanel انجام میشه و تقریبا نیازی به هیچ دانش سطح پایین و کدنویسی دربارهء AJAX و جاوااسکریپت و حتی HTML نداره. و همهء کارها بصورت خودکار توسط دات نت با کدهای امن و کامل و مستقل از مرورگر انجام میشن. قصد داشتم یک نمونه کد از مثالهایی که در رفرنس کلاسهای دات نت در MSDN آمده رو در این مورد درج کنم (کلا منبع اصلیم رفرنس و مثالهای کلاسهای دات نت در MSDN هست).
موارد دیگه مثل وب کنترل های ولیدیشن ورودی های فرمهای صفحات HTML که توسط کاربر وارد میشن.
مورد دیگه مثلا وب کنترل DataGrid که اطلاعات دیتابیس رو بصورت جدول و صفحه بندی شده با امکانات ویرایشی کامل نمایش میده.
کنترل های رجیستر و لاگین و غیره که از نظر امکانات و امنیت کامل و قابل سفارشی سازی کامل هستن.
خلاصه هرکار متداول و مفیدی که ASP.NET برامون راحت کرده.
هرکس خواست و وارد بود میتونه هر یک از این موارد یا موارد دیگری رو که خودش میخواد و سراغ داره در تاپیک مربوطه مطرح کنه تا حرفه ایهای PHP هم بهترین روش و فریمورک PHP ای رو که برای انجام اون کار سراغ دارن با نمونه کد نشون بدن.

eshpilen
چهارشنبه 25 اسفند 1389, 22:18 عصر
راستی بعنوان اولین کمک در مقایسهء عملی مورد نظر، از دوستان عزیز کسی پاسخی برای این مورد که جناب طرفدار PHP مطرح کرده نداره؟:


توی PHP به ابتدای فایل config.php خودتون (یا هر فایلی که توی همه صفحات سایت include شده باشه)، این کد رو اضافه کنید:


date_default_timezone_set('Asia/Tehran');
$hour=strftime('%H');
if($hour>=21)
{
die('It\'s time to sleep.');
}

همین کار ساده باعث میشه بعد از ساعت 9 شب دیگه سایت شما Load نشه. برای همین کار ساده، توی ASPX باید برای صفحه رویداد Load ایجاد کنید و اون رو با یک متد #C یا VBdotNET مرتبط کنید و اونجا کدهای لازم رو با اون زبان (نه ASPX) بنویسید که قطعاً به سادگی کاری که توی PHP انجام میشه نیست. تازه دردسرهای کار با webconfig و... رو هم توی ASPX درنظر بگیرین (برای اینکه در همه صفحات این کد درنظر گرفته بشه).
مثالها از این دست زیاده دوست عزیز.بهترین راه حل برای انجام مشابه همین کار در ASP.NET چی هست؟
یعنی میخوایم بعد از ساعت 9 شب به وقت تهران، تمام صفحات سایت یه پیام خاص رو بدن و چیز دیگری لود و اجرا نشه.

aserfg
پنج شنبه 26 اسفند 1389, 08:21 صبح
دوست عزیز ، مقایسه بین این دو که بخواین نتیجه گیری کنید کدوم یک برتر ه کاری نادرسته
صرف این که یه کاری راحت تر در زبانی انجام بشه نمی شه نتیجه گیری کرد .
در asp.net یه کنترل login روی فرمت می زاری و برنامه رو اجرا کنی خودش بانکت رو می سازه و زیرساختهای امنیتی بسیار زیادی رو براش فراهم می کنه از قبیل ذخیره پسورد در بانک به صورت هش شده و...
آیا در php هم به همین راحتیه ؟

اشتباه نکنید نمی خوام نتیجه گیری کنم asp.net بهتره . همون طور که گفتم هر کدوم در جای خودشون خوب هستند .

eshpilen
پنج شنبه 26 اسفند 1389, 09:17 صبح
ببینید خب بخاطر همین چیزا بود که بنده فهمیدم و ادعا میکنم که برنامه نویسان PHP نمیتونن در بازار کار عادی (سایتها و اپلیکیشن های وب عادی - سطح کوچک تا متوسط) با برنامه نویسان ASP.NET رقابت کنن از نظر تجاری. چون برنامه نویسان دات نت میتونن پروژه ها رو سریعتر و راحتتر با امکانات و کیفیت و امنیت کافی ارائه بدن. در PHP باید خودت پیاده سازی کنی و تازه امنیت و کامل بودن امکاناتش هم اگر به حد کنترل های از پیش آمادهء دات نت برسه شاهکار کرده طرف و End حرفه ای بوده. حتی از بهترین و کاملترین فریمورک های PHP هم استفاده کنی فکر نمیکنم به راحتی و خوانایی و انسجام و اصولی بودن و کامل بودن امکانات ASP.NET برسه در کل. دات نت اساسا از پایه اینطور طراحی شده از نظر ساختاری و همهء امکانات استاندارد رو آماده داره.
وگرنه بهرحال PHP هم کاربردهای خودش رو داره و چیز خوبی هست و میشه باهاش تقریبا همه کار کرد. اما در بحث رقابت تجاری در بازار کار معمول بنظرم به مشکل میخوره.

amirjalili
پنج شنبه 26 اسفند 1389, 11:13 صبح
من میخواستم تو این تایپیک شرکت کنم چون یه بخشش که همون "انجام کارهایی که در php میشه کرد با asp.net" آموزنده هست. اما مقایسه کردن زبان ها من که ندیدم سود بخش باشه.
همین facebook با php نوشته شده و حرف هم نداره و من نمیدونم مگه چند تا پروژه تحت وب بزرگ تر از facebook تو دنیا وجود داره؟
پس اینکه میگن php واسه پروژه های عظیم بدرد نمیخوره کاملا اشتباهه. نمونه های پروژه هایی مثل facebook زیاده.



ببینید خب بخاطر همین چیزا بود که بنده فهمیدم و ادعا میکنم که برنامه نویسان PHP نمیتونن در بازار کار عادی (سایتها و اپلیکیشن های وب عادی - سطح کوچک تا متوسط) با برنامه نویسان ASP.NET رقابت کنن از نظر تجاری.

اتفاقا از نظر تجاری رقابت های بسیار خوبی میکنن چون فریم ورک هاش به اندازه کافی سرعت برنامه نویسی و در نتیجه تولید نرم افزار رو افزایش داده.



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

شما احتمالا مدت زیادی با دنیای سورس باز کار نکردید یا درگیری کمتری باهاش داشتید چون این خیلی واضح هست که زبان های سورس باز و فریم ورک ها و استودیو های مربوط به اون بسیار سریع تر پیشرفت دارن میکنن. همین جاوا چندین راه برای کار با وب سرویس ها در شرایط و معماری های مختلف داره. همچنین به لحاظ امنیت همین که php , java میتونن رو سرورهای linux , unix و ... که بسیار امن تر از سرور های ویندوزی هستند راه اندازی بشن به اندازه کافی دلیل بر امنیت بیشتر php, java در شرایط مشابه هست.


وگرنه بهرحال PHP هم کاربردهای خودش رو داره و چیز خوبی هست و میشه باهاش تقریبا همه کار کرد. اما در بحث رقابت تجاری در بازار کار معمول بنظرم به مشکل میخوره.

شما چند تا وب اپلیکیشن تجاری با ASP.NET اسم ببر که مطمئن هستی از وب اپلیکیشن هایی که با PHP , JAVA و حتی پایتون نوشته شده به لحاظ تجاری موفق تر بوده و بالعکس.
بعلاوه اگه شما مجبور بودی مثل یه آمریکایی بابت visual studio , windows , sqlserver , .... پول های هنگفت بدی که نتیجه اون افزایش هزینه های یادگیری اون زبان و بعد بالارفتن حقوق های برنامه نویسان بود که اونوقت ممکن بود که هنوز رو visual استودیو 2005 و sql2000 متوقف شده باشی و نتونی دائما از امکانات دات نت و ویژوال استدیو و... لذت ببری چون بابت این لذت مجبور بودی کلی پول خرج کنی و اونوقت نتیجه این میشد که میخواستی این هزینه رو از مشتری تقبل کنی و اونوقت بود که مشتری میگفت "ما با شما تماس میگیریم" و بعد بلافاصله میرفت یه نرم افزار که با php , java که قیمت بسیار ارزون تری واسش دارن رو میخرید.

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

به هر حال من راهی برای ایجاد schedule راحت با ASP.NET میشناسم که به راحتی کار با PHP هست رو اون در جواب اون دوستمون اینجا قرار خواهم داد.

eshpilen
پنج شنبه 26 اسفند 1389, 11:48 صبح
ببینید این بحثها رو قبلا زیاد کردم و این تاپیک هم در اینمورد نیست.
فعلا هدف اصلی و چیزی که بنده درش قصد فعالیت بیشتر، البته با کمک دیگر دوستان، رو دارم مقایسهء عملی میان روش دات نت و PHP در انجام کارهای متداول هست. اجزای متداول بیشتر پروژه های عادی. اینکه دات نت در سطح شرکتهای بزرگ یا پروژه های خاص بکار نمیره یا مناسب نیست، دلیل نمیشه که برای کارهای معمولی برتری نداشته باشه. ضمنا ما شرایط جاری مملکت خودمون رو مد نظر داریم. چون بنظرم برای کسی که دنبال شغل و درآمد هست بحثهای دیگه اهمیتی ندارن و اولویت اولش با این فرض شکل میگیره که ویندوز و دات نت و ویژوال استودیو کاملا مجانی هستن. هرکس هم میگه باید خلاف این فرض کرد بگه برای چی باید چنین فرضی بکنیم؟

alonemm
پنج شنبه 26 اسفند 1389, 11:49 صبح
راستی بعنوان اولین کمک در مقایسهء عملی مورد نظر، از دوستان عزیز کسی پاسخی برای این مورد که جناب طرفدار PHP مطرح کرده نداره؟:

بهترین راه حل برای انجام مشابه همین کار در ASP.NET چی هست؟
یعنی میخوایم بعد از ساعت 9 شب به وقت تهران، تمام صفحات سایت یه پیام خاص رو بدن و چیز دیگری لود و اجرا نشه.

میتونید این رو در فایل Global.asax در دات نت پیاده سازی کنید.

eshpilen
پنج شنبه 26 اسفند 1389, 12:28 عصر
منظورت global.asax هست؟

alonemm
پنج شنبه 26 اسفند 1389, 13:55 عصر
بله در همین فایل در


Application_Start

actros
پنج شنبه 26 اسفند 1389, 15:35 عصر
من میخواستم تو این تایپیک شرکت کنم چون یه بخشش که همون "انجام کارهایی که در php میشه کرد با asp.net" آموزنده هست. اما مقایسه کردن زبان ها من که ندیدم سود بخش باشه.
همین facebook با php نوشته شده و حرف هم نداره و من نمیدونم مگه چند تا پروژه تحت وب بزرگ تر از facebook تو دنیا وجود داره؟
پس اینکه میگن php واسه پروژه های عظیم بدرد نمیخوره کاملا اشتباهه. نمونه های پروژه هایی مثل facebook زیاده.
اتفاقا از نظر تجاری رقابت های بسیار خوبی میکنن چون فریم ورک هاش به اندازه کافی سرعت برنامه نویسی و در نتیجه تولید نرم افزار رو افزایش داده.


شما احتمالا مدت زیادی با دنیای سورس باز کار نکردید یا درگیری کمتری باهاش داشتید یه نگاهی به اینجا بنداز:


http://myup.ir/images/13653596720161942429.png


weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code-for-the-net-framework-
libraries.aspx
http://social.msdn.microsoft.com/Forums/en-US/refsourceserver/threads?page=1
http://referencesource.microsoft.com/netframework.aspx از این گذشته خود شما تا حالا چه خدمتی به جامعه اپن سورس کردی؟
چند تا باگشو گرفتی؟
بالاخره نمیشه که فقط استفاده کرد و پز اپن سورس بودن رو داد.

چون این خیلی واضح هست که زبان های سورس باز و فریم ورک ها و استودیو های مربوط به اون بسیار سریع تر پیشرفت دارن میکنن.ASP کلاسیک با PHP 3 رقابت میکرد و ASP.NET 4 داره با PHP 5 رقابت میکنه به نظرت کدومشون تو این 10 ساله بیشتر پیشرفت کرده.
به قول یکی شباهت ASP کلاسیک و ASP.NET تنها در سه حرف A و S و P یه
تا چند وقت دیگه Mono Rail میاد بیرون و در کنار ASP.NET MVC دو پلتفرم تر و تمیز MVC خواهیم داشت ولی PHP تو این زمینه چی داره ؟ یه Zend که تازه اونم پولیه :دی

همین جاوا چندین راه برای کار با وب سرویس ها در شرایط و معماری های مختلف داره.جاوا یه زبانه با چندین فریمورک.
NET. یه فریمورکه با چندین زبان.
به نظرت کدوم بهتره؟این که بتونی با یه زبان دلخواه تو تمامی برنامه های یه زبان برنامه نویسی کار کنی بهتره یا اینکه برای هر فریمورک مجبور به یادگیری چارچوب های اون بشی؟

همچنین به لحاظ امنیت همین که php , java میتونن رو سرورهای linux , unix و ... که بسیار امن تر از سرور های ویندوزی هستند راه اندازی بشن به اندازه کافی دلیل بر امنیت بیشتر php, java در شرایط مشابه هست.
میشه یه آمار از درصد سرورهای هک شده ویندوز و لینوکس ارائه بدی؟
به نظرت اگه این همه موج منفی که پشت سر مایکروسافته علیه لینوکس بود وضعیت به چه شکل در میومد؟



شما چند تا وب اپلیکیشن تجاری با ASP.NET اسم ببر که مطمئن هستی از وب اپلیکیشن هایی که با PHP , JAVA و حتی پایتون نوشته شده به لحاظ تجاری موفق تر بوده و بالعکس.
بعلاوه اگه شما مجبور بودی مثل یه آمریکایی بابت visual studio , windows , sqlserver , .... پول های هنگفت بدی که نتیجه اون افزایش هزینه های یادگیری اون زبان و بعد بالارفتن حقوق های برنامه نویسان بود که اونوقت ممکن بود که هنوز رو visual استودیو 2005 و sql2000 متوقف شده باشی و نتونی دائما از امکانات دات نت و ویژوال استدیو و... لذت ببری چون بابت این لذت مجبور بودی کلی پول خرج کنی و اونوقت نتیجه این میشد که میخواستی این هزینه رو از مشتری تقبل کنی و اونوقت بود که مشتری میگفت "ما با شما تماس میگیریم" و بعد بلافاصله میرفت یه نرم افزار که با php , java که قیمت بسیار ارزون تری واسش دارن رو میخرید.
میگم طرفدارای اپن سورس تعصب کورکورانه دارن همینجاست دیگه.اگه یه بار به آدرس زیر سر میزدی متوجه میشدی که نسخه Express آخرین ورژن برنامه ها رو میتونی رایگان دان کنی.

http://www.microsoft.com/express/با نسخه Express همه کار میشه کرد.
همین الان با یک کلیک میتونی Visual Studio 2010 Express SP1 + SQL Server 2008 r2 64bit داشته باشی.تنها چیزی که نیاز داری یه ویندوزه.تازه اگه نخای رو پلتفرم Mono کار کنی.
کارائی که نیاز به خرید نسخه بالاتر داشته باشه مطمئن باش با اولین سفارش هزینشو در میاره.


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

eshpilen
پنج شنبه 26 اسفند 1389, 19:05 عصر
بله در همین فایل در
Application_Start

اتفاقا این روش رو همون اول بنظرم رسید و کمی بررسی کردم. خواستم از شیء Response استفاده کنم اما پیام خطا داد که Response در این Context وجود نداره.
شما اگر میتونی کد کاملش رو بذار. فکر نمیکنم چیز مشکل و زیادی باشه. من چون تازه کار هستم باید بیشتر مرور و تلاش کنم. بعدشم فعلا میخوام موارد مد نظر خودم رو مطرح کنم.
البته فکر میکنم با یک ایمپورت سادهء یک کلاس که این کار رو انجام میده مشکل به راحتی حل بشه.
فقط دستور خاتمه دادن به اجرا داریم در ASP.NET و چی هست؟

eshpilen
پنج شنبه 26 اسفند 1389, 19:11 عصر
البته دوست عزیز actros (http://barnamenevis.org/member.php?138297-actros)، شما که ظاهرا کد منبع دات نت رو گذاشتید و صحبت از بازمتن بودن هست حتما باید بدونید که در تعریف بازمتن و نرم افزارهای آزاد، در دسترس بودن کد منبع فقط یکی از شرایط چندگانه هست و شرایط دیگر هم خیلی مهم هستن و درواقع اگر اون شرایط/آزادیها وجود نداشته باشن کد منبع ارزش چندانی نداره (نرم افزار آزاد/بازمتن بحساب نمیاد).

تاجایی که دیدم ظاهرا مجوزهای میکروسافت برای این کدها از نوع بازمتن/آزاد نیستن یا حداقل برای تمامش اینطور نیست و فقط بخشهایی از اون مجوزهای بازمتن دارن.

On 3 October 2007, Microsoft announced that much of the source code (http://en.wikipedia.org/wiki/Source_code) for the .NET Framework Base Class Library (http://en.wikipedia.org/wiki/Base_Class_Library) (including ASP.NET (http://en.wikipedia.org/wiki/ASP.NET), ADO.NET (http://en.wikipedia.org/wiki/ADO.NET), and Windows Presentation Foundation (http://en.wikipedia.org/wiki/Windows_Presentation_Foundation)) was to have been made available with the final release of Visual Studio 2008 (http://en.wikipedia.org/wiki/Visual_Studio_2008) towards the end of 2007 under the shared source (http://en.wikipedia.org/wiki/Shared_source) Microsoft Reference License (http://en.wikipedia.org/wiki/Microsoft_Reference_License).[1] (http://en.wikipedia.org/wiki/.net_framework#cite_note-sourcerelease-0) The source code for other libraries including Windows Communication Foundation (http://en.wikipedia.org/wiki/Windows_Communication_Foundation) (WCF), Windows Workflow Foundation (http://en.wikipedia.org/wiki/Windows_Workflow_Foundation) (WF), and Language Integrated Query (http://en.wikipedia.org/wiki/Language_Integrated_Query) (LINQ) were to be added in future releases. Being released under the non-open source Microsoft Reference License means this source code is made available for debugging purpose only, primarily to support integrated debugging of the BCL in Visual Studio (http://en.wikipedia.org/wiki/Visual_Studio).

---

The licenses associated with the offerings range from being closed-source,[2] (http://en.wikipedia.org/wiki/Shared_source#cite_note-1)[3] (http://en.wikipedia.org/wiki/Shared_source#cite_note-2) allowing only viewing of the code for reference, to allowing it to be modified and redistributed for both commercial and non-commercial purposes.

---

Two Microsoft Shared Source Licenses are considered as Open Source (http://en.wikipedia.org/wiki/Open_source_license) by the Open Source Initiative (http://en.wikipedia.org/wiki/Open_Source_Initiative)[11] (http://en.wikipedia.org/wiki/Microsoft_Reference_License#cite_note-osi-approval-10) and Free (http://en.wikipedia.org/wiki/Free_software_license) by the Free Software Foundation (http://en.wikipedia.org/wiki/Free_Software_Foundation).

Microsoft Public License (Ms-PL)

Microsoft Reciprocal License (Ms-RL)

---

The other Microsoft Shared Source Licenses have various limitations that make them non-Open Source (http://en.wikipedia.org/wiki/Open_source_license) according to the Open Source Initiative (http://en.wikipedia.org/wiki/Open_Source_Initiative) and non-Free (http://en.wikipedia.org/wiki/Free_software_license) to the Free Software Foundation (http://en.wikipedia.org/wiki/Free_Software_Foundation).

Microsoft Reference Source License (Ms-RSL)

Microsoft Limited Public License (Ms-LPL)

Microsoft Limited Reciprocal License (Ms-LRL)


منابع:
http://en.wikipedia.org/wiki/.net_framework
http://en.wikipedia.org/wiki/Microsoft_Reference_License

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

Slytherin
جمعه 27 اسفند 1389, 12:36 عصر
همین facebook با php نوشته شده و حرف هم نداره و من نمیدونم مگه چند تا پروژه تحت وب بزرگ تر از facebook تو دنیا وجود داره؟
من خودم در فیسبوک صفحاتی با فرمت ASPX هم دیده ام. بعید می دونم فیسبوک صرفا بر اساس 1 زبان باشد...

joker
جمعه 27 اسفند 1389, 13:23 عصر
ینید خب بخاطر همین چیزا بود که بنده فهمیدم و ادعا میکنم که برنامه نویسان PHP نمیتونن در بازار کار عادی (سایتها و اپلیکیشن های وب عادی - سطح کوچک تا متوسط) با برنامه نویسان ASP.NET رقابت کنن از نظر تجاری. چون برنامه نویسان دات نت میتونن پروژه ها رو سریعتر و راحتتر با امکانات و کیفیت و امنیت کافی ارائه بدن.يك سر به سايت (http://www.phpclasses.org/)php classis (http://www.phpclasses.org/browse/) بزنيد ، نظرتون عوض ميشه

eshpilen
جمعه 27 اسفند 1389, 17:06 عصر
یعنی شما مطالعه و یادگیری چند نوع فریمورک و کلاس و اینترفیس رو اونم از منابع غیررسمی و غیرقابل اعتماد، با برنامه نویسی در چهارچوب یک فریمورک منسجم با یک استاندارد مشترک یکی فرض میکنید؟
بنده در این سایت قبلا ایمیلم رو داده بودم که هر از چند گاهی معرفی چنتا کلاس جدید رو به ایمیلم میفرسته که ظاهرا هرکس دلش میخواد طراحی و سابمیت میکنه. باید بگم خیلی از اونا هم واقعا کلاسهای ناقص و یا برای کاربردهای بیخودی هستن.
از طرف دیگه از کجا معلوم باگ توی این کلاسها نباشه؟ آیا کسی تضمین میکنه؟ از کجا معلوم حفرهء امنیتی نداشته باشن؟
دات نت از همهء اینا راحتتره. چون یه بار یاد میگیری و بعد برای عمدهء کاربردهای عادی هیچ کم و کسری نداری و نیاز نیست مدام دنبال یک کلاس و نمونه کد برای بخشی از یک کار خاص بگردی و یاد بگیری و سرهمشون کنی. هرکس یجور کد نوشته، یک روش اینترفیس داره، یک روش نامگذاری، ... و نهایتا کدت میشه مجموعه ای از کارهای مختلف که هیچ هماهنگی ای با هم ندارن. ضمنا واقعا من هنوز نفهمیدم چطور میشه به کیفیت کافی این کدهای آماده اتکا کرد و لابد باید آدم باید بشینه خط به خطشون رو خودش مطالعه کنه! بنده قبلا به موردی از یک کتابخانه برخورد کرده بودم که توش باگ امنیتی داشت. همینطوری که از توی اینترنت و هرکس هرچی تولید کرد نمیشه برداشت و فکر کنی مشکلی نداره. بعضیاشون واقعا کم کیفیت هستن.

asif1358
جمعه 27 اسفند 1389, 18:35 عصر
سلام دوستان؛ من پیشنهاد می کنم به جای اثبات برتری این یا آن زبان، بهتر است نمونه کدهای مشابه دو زبان را باهم مقایسه کنیم تا بار آموزشی داشته باشد

joker
جمعه 27 اسفند 1389, 18:42 عصر
اين حرف وقتي معتبره كه سيستم عامل ويندوز ، صاحب همون توليد كننده دات نت به اندازه حجم كلش و گاها حتي بيشتر !!! ، سرويس پك براي رفع باگها و نواقص امنيتي نداده باشه.
توي اين كلاسها لااقل برنامه نويس php خودش ميتونه يه نگاهي بكنه ، ولي دات نت نه . هرچي ميكروسافت داده بايد بدون قيد شرط بپذيره.

eshpilen
جمعه 27 اسفند 1389, 21:39 عصر
اين حرف وقتي معتبره كه سيستم عامل ويندوز ، صاحب همون توليد كننده دات نت به اندازه حجم كلش و گاها حتي بيشتر !!! ، سرويس پك براي رفع باگها و نواقص امنيتي نداده باشه.
توي اين كلاسها لااقل برنامه نويس php خودش ميتونه يه نگاهي بكنه ، ولي دات نت نه . هرچي ميكروسافت داده بايد بدون قيد شرط بپذيره.
خودش یه نگاهی بکنه دیگه؟ عزیز برادر نگاهی کردن که کافی نیست. باید وارد باشی. باید دانش و مهارت لازم رو داشته باشی و خط به خط بخونی و تحلیل کنی. برای هر کلاس و هر قطعه کد. فکر کردی از هر 100 نفر چند نفر میتونن این کار رو بکنن؟ هم باید تواناییش رو داشته باشن و هم وقت و انرژیش رو.
بعدم بنظر من برنامه نویسان میکروسافت هرچی هم باشن از اینهمه افراد بی نام و نشانی که ریختن و برنامه نویسی و کارهای پراکنده میکنن و هرکدوم یه تیکه برنامه برای یه بخشی از کاری میدن به کارشون بیشتر اعتبار هست.
اگر ویندوز باگ زیاد داره، بجای برنامه نویسان میکروسافت این افراد دیگه میخواستن ویندوز رو درست کنن از کجا معلوم توش چند برابر باگ درنمیامد؟ مگه تاحالا روی پروژه ای به بزرگی و پیچیدگی و سطح کار ویندوز کار کردن؟

میدونید من چرا میگم سایت توسعه داده شده توسط دات نت کارها میتونه امن تر و با کیفیت تر از سایت PHP کارها باشه؟ بخاطر اینکه هر دو دسته کم‌سواد زیاد دارن، اما در دات نت حداقل خیلی از کارهای پایه و استاندارد بصورت خودکار هست و خیلی بیشتر میشه بهش اعتبار کرد تا کدهایی که مثلا یه برنامه نویس PHP سرهم میکنه یا از جایی گیر میاره و کپی و پیست میکنه.
شما میگی کد رو بخونه و ایرادها و حفره های امنیتی اون رو کشف و برطرف کنه.
من میگم دلت خوشه ها! بنظر من اصلا حداقل 50% از کسانی که دارن با این زبانها کار میکنن کلا اینقدری سردرنمیارن که بخوان ایراد منطقی و حفرهء امنیتی کشف و رفع کنن!
جلوی چششون بذاری نمیفهمن!
بنده خودم اینا رو بارها دیدم.
طرف رفرنس رو میخونه برعکس تفسیر میکنه یا میبینی نصفش رو نفهمیده!
40% هم یا تنبل و بی انگیزه هستن و یا وقت این کارا رو ندارن.

eshpilen
جمعه 27 اسفند 1389, 21:57 عصر
سلام دوستان؛ من پیشنهاد می کنم به جای اثبات برتری این یا آن زبان، بهتر است نمونه کدهای مشابه دو زبان را باهم مقایسه کنیم تا بار آموزشی داشته باشد
داریم در تاپیکی که استارت و معرفی کردم همین کار رو میکنیم دیگه.
هدف هم این نبوده که با تعصب بخوایم بگیم یکی بهتره. بنده هر دو رو یاد گرفتم و تازه بیشتر دوست دارم PHP برنده بشه، بخاطر اینکه اساسا به نرم افزار آزاد/بازمتن علاقه دارم. ولی متاسفانه دات نت بنظر بنده امکانات بیشتر و ساختار اصولی تری داره؛ حداقل برای کارهای عادی. اگر داریم مقایسه میکنیم واقعا برای من هدف این نیست که سعی کنم یکی رو برتر جلوه بدم، بلکه میخوام واقعیتش روشن بشه. البته خودم زیاد شک ندارم دربارهء نظرم، ولی بهرحال بعنوان یک بحث و حیطهء تخصصی باید با دیگران تبادل نظر و همکاری داشته باشیم و در مشخص شدن واقعیت ها به همدیگر کمک کنیم. و بهرحال در جریان مقایسه با نمونه کد دو طرف میتونن چیزهای متعدد واقعا مهم و مفیدی یاد بگیرن و بنده همزمان دنبال این جنبه هم هستم.

V0R73X
جمعه 27 اسفند 1389, 22:03 عصر
ببینید وقتی داریم این 2 تا رو مقایسه میکنیم فقط باید اشکال های هر کدوم رو تو حیطه خودش بگیریم، چرا که هر زبان برای استفاده خاص و در موقعیت خاصی طراحی شده:
PHP یه زبان اپن سورسه که برای طراحی وب همگانی ساخته شده، در صورتی که کاربرد ASP.NET تو حیطه تجاریه، خوب من اگه بودم اول به خودم میگفتم: "من واسه چی میخوام برم طراحی وب یاد بگیرم؟"
خوب برای این سوال جواب های مختلفی وجود داره: کسی که میخواد بره تو یه شرکت کامپیوتری به عنوان برنامه نویس وب کار کنه معمولا میره asp یاد میگیره، ولی کسی که میخواد واسه خودش یه سایت بزنه، یا میره cms یاد میگیره، یا اگه بخواد به عنوان یه برنامه نویس طراحی وب انجام بده میره PHP یاد میگیره.
و معلومه که طرفداران و کلا تعداد افرادی که از PHP استفاده میکنند بیشتره چون معمولا جوابشون به سوال اول، گزینه دوم هست! با این حال چیزی که دوستمون eshpilen میگه به نظر من جالبه چون میفهمیم چطور یه کدی رو که مثلا تو php به راحتی مینویسیم به کد asp تبدیل کنیم مخصوصا برای کسانی که هردو رو میخوان یاد بگیرن، خیلی جالبه!

binyaft
دوشنبه 01 فروردین 1390, 10:41 صبح
خودش یه نگاهی بکنه دیگه؟ عزیز برادر نگاهی کردن که کافی نیست. باید وارد باشی. باید دانش و مهارت لازم رو داشته باشی و خط به خط بخونی و تحلیل کنی. برای هر کلاس و هر قطعه کد. فکر کردی از هر 100 نفر چند نفر میتونن این کار رو بکنن؟ هم باید تواناییش رو داشته باشن و هم وقت و انرژیش رو.
باز خوبه تو PHP از هر 100 نفر 1 نفر میتونه کد هاشو نگاه کنه و تحلیل کنه و... و دانسته ها شو به اشتراک بزاره! ، Asp که کدش بسته هست چی؟


اگر ویندوز باگ زیاد داره، بجای برنامه نویسان میکروسافت این افراد دیگه میخواستن ویندوز رو درست کنن از کجا معلوم توش چند برابر باگ درنمیامد؟ مگه تاحالا روی پروژه ای به بزرگی و پیچیدگی و سطح کار ویندوز کار کردن؟

خب یه نفری میاد یه چیزی درست میکنه ، باگ داره ، بقیه ایراد میگیرن ، شما میگی بیا خودت بنویس!؟
منظورت کدوم افراد هست ، اگه دنیای اپن سورس رو میگی که لینوکس بس هست برای همه .

40% هم یا تنبل و بی انگیزه هستن و یا وقت این کارا رو ندارن.
عجب امار های دقیقی :لبخند:

mmnoody2006
دوشنبه 01 فروردین 1390, 22:17 عصر
بی دلیل می گم asp.net بهتره :قلب:

eshpilen
سه شنبه 02 فروردین 1390, 13:19 عصر
باز خوبه تو PHP از هر 100 نفر 1 نفر میتونه کد هاشو نگاه کنه و تحلیل کنه و... و دانسته ها شو به اشتراک بزاره! ، Asp که کدش بسته هست چی؟

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

unishomal
چهارشنبه 03 فروردین 1390, 15:44 عصر
جفتشونو کار کردم شک نکنید که asp بهتره.

binyaft
پنج شنبه 04 فروردین 1390, 11:05 صبح
از این نظر خوبه و نقطهء وقت دنیای بازمتن همینه که افراد حرفه ای میتونن کد رو بخونن و نقص و ضعف اون رو برطرف کنن یا بر مبنای اون چیز جدیدی ایجاد کنن.
بالاخره باگ سریعتر تعمیر میشه .

ولی حداقل فکر میکنم اعتبارش از کار تودهء افرادی که ریختن و برنامه نویسی میکنن بیشتر باشه.
اعتبار او چیزی که نمیبینی بیشتره یا چیزی که میبینی!؟!؟!
کار توده افراد!؟؟!؟! درسته که هر کسی میتونه PHP رو ( اگه بلد باشه ) توسعه بده ، اما این بدین معنی نیست که همه کد رو کامپایل کنن بزارن رو سایت PHP ، اونم به صورت رسمی!
فکر هم نکنم برنامه نویسان دات نت از اینا کمتر باشن!
http://www.php.net/credits.php
پی اچ پی یه تیم داره که اونو توسعه میدن :لبخندساده:

اون برنامه نویسهای حرفه ای هم دیگه استثناء هستن و میتونن از زبانهای دیگر هم استفاده کنن و از پس کارهایی مثل تولید کدهای کامل و امن و با کیفیت یا درموارد ضرورت مطالعه و اصلاح کد امکانات بازمتنی که استفاده میکنن خیلی بهتر برمیان.

بحث ما این نیست که اونا تا چه حد میتونن کد رو امن کنند ، بحث اینه که پی اچ اوپن سورسه و همین تعداد کم میتونن به توسعه اون کمک کنند و اشکالات رو برطرف کنند!
بله که بهتر بر میان!

نمیشه این افراد و کارها و چیزهایی مثل گنو/لینوکس رو که افراد حرفه ای و بهترین ها روشون کار میکنن با تودهء برنامه نویسان بی نام و نشان مقایسه کنید.
بی نام نشان!؟ لینکی که دادم یه نگاه بندازید لطفا :D
فکر کنم منظورت اینه که برنامه نویسان PHP بیان بشینن ویندوز بنویسن بعد شما و بقیه باگ پیدا کنی!؟؟؟ :))

eshpilen
پنج شنبه 04 فروردین 1390, 12:36 عصر
منظورم خود PHP و تیم و اجزای رسمی اون نبود، منظورم اون سایتها و کلاسها و کدهایی بود که جزو رسمی PHP نیستن و هرکس ممکنه تولید کرده باشه و معلوم نیست واقعا امن و بدون باگ باشن و تست و ارزیابی کیفیت کامل و دقیقی روشون انجام شده باشه. تازه خیلی از این کلاسها که من دیدم یا مشابه همدیگر هستن و هرکدوم نقص و ضعف مختلفی دارن و یا کلاسهایی برای کارهای خیلی موردی یا نسبتا مسخره! یعنی میخوام بگم اینکه تعداد زیادی از این کلاسها و کدهای آماده در این سایتها وجود دارن چیز خیلی مفید و قابل اتکایی نیست که بخوایم مزیت بزرگی برای PHP بدونیم و بخصوص با امکانات ASP.NET که برنامه نویسان حرفه ای و مسئول نوشتن و کنترل شده هستن برابر فرض کنیم از نظر امنیت و کیفیت.

sia_2007
پنج شنبه 04 فروردین 1390, 12:46 عصر
در این که ASP.Net بهتر از php هست؛ برای من شکی نیست؛ به خصوص با آمدن ASP.Net MVC 3 و اون View Engine معرکش
لکن به علت Open Source بودن؛ و Free بودن اکثریت امکانات و هم چنین وجود امکانات بیشتر و هم چنین تعداد برنامه نویسان بیشتر؛ php در خارج از ایران وضع خیلی خیلی بهتری نسبت به ASP.Net داره؛ و مسئله اینه که وضعیتش مدام در حال بهتر شدن هست و سرعت رشدش هم بیشتر از ASP.Net هستش.
موفق باشید؛ شرمنده که وقت ندارم مستندات ارائه کنم

binyaft
پنج شنبه 04 فروردین 1390, 19:01 عصر
منظورم خود PHP و تیم و اجزای رسمی اون نبود، منظورم اون سایتها و کلاسها و کدهایی بود که جزو رسمی PHP نیستن و هرکس ممکنه تولید کرده باشه و معلوم نیست واقعا امن و بدون باگ باشن و تست و ارزیابی کیفیت کامل و دقیقی روشون انجام شده باشه.

کد ها رو بقیه مینویسن ، حساب افراد رو از تیم پی اچ پی جدا کنید .


یعنی میخوام بگم اینکه تعداد زیادی از این کلاسها و کدهای آماده در این سایتها وجود دارن چیز خیلی مفید و قابل اتکایی نیست که بخوایم مزیت بزرگی برای PHP بدونیم و بخصوص با امکانات ASP.NET که برنامه نویسان حرفه ای و مسئول نوشتن و کنترل شده هستن برابر فرض کنیم از نظر امنیت و کیفیت.

خب اینا ربطی به تیم اصلی پی اچ پی نداره .

eshpilen
پنج شنبه 04 فروردین 1390, 19:43 عصر
خب اینا ربطی به تیم اصلی پی اچ پی نداره .
مگه من گفتم ربطی داره؟
من اصلا درمورد تیم اصلی PHP صحبتی نکردم.

komeil64
جمعه 05 فروردین 1390, 02:37 صبح
تا اونجایی که آشنایی دارم php قابلیتی مثل Entity Framework رو توی ASP.NET نداره