PDA

View Full Version : مقایسهء عملی ASP.NET و PHP با نمونه کد



eshpilen
چهارشنبه 25 اسفند 1389, 21:37 عصر
بسمه تعالی.
این تاپیک آغاز میشود.
هرچی بروبچ محل دارید برید صدا کنید بیان تو که طرفدارای دات نت و پی اچ پی میخوان قشون کشی کنن :لبخند:
نه حالا شوخی میکنم ولی بهرحال بنده از بقیهء حرفه ایهای ASP.NET تقاضای کمک خواهم کرد چون تنهایی ممکنه نتونم بقدر کافی جوابگو و مطرح کنندهء موارد باشم؛ بخصوص با توجه به اینکه تازه کار هستم و هنوز یادگیری دات نت رو هم تموم نکردم و تجربهء عملی خاصی هم ندارم.

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

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

موفق باشید.

MMSHFE
پنج شنبه 26 اسفند 1389, 09:33 صبح
با سلام، بنده هم موافقم که از این بحث به منظور افزایش دانش خودمون استفاده کنیم و نمونه کد / سایت با یکی از این دو مورد (PHP و ASPdotNET) ارائه بشه و معادل اون در طرف مقابل درخواست بشه.
موفق باشید.

رضا قربانی
پنج شنبه 26 اسفند 1389, 10:04 صبح
بخصوص با توجه به اینکه تازه کار هستم و هنوز یادگیری دات نت رو هم تموم نکردم و تجربهء عملی خاصی هم ندارم.

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


موفق باشید.

:لبخند: ببینید این چیزی که شما گفتید یعنی ASP انتها داره و یکی می تونه تکمیل شه

ولی ولی ولی

لاکردار PHP انتها نداره و هر چی یاد بگیری بازم کمه ( من جنگ رو شروع می کنم )

eshpilen
پنج شنبه 26 اسفند 1389, 10:19 صبح
PHP رو که خیلی وقت پیش تموم کردم :قهقهه:

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

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

رضا قربانی
پنج شنبه 26 اسفند 1389, 11:14 صبح
شما می گید من php رو تموم کردم و بنده هم عرض کردم !! تمومی نداره

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

شما هر چیزی که می گید با php نمی شه این کار رو کرد من می گم می شه اون رو انجام داد ، با php هر کاری که مربوط به وب هست می شه انجام داد (حالا یا سخت یا آسون)

شاید با asp یه چیزایی رو راحت تر انجام می نویسید و ولی با php مـــــــــــــــی تونید اون رو سخت تر بنویسید

خوبی php این هست که وقتی برنامه نویسیش رو طرف درک کنه و بتونه یه ایده و یک هدف رو پیاده سازی کنه تمامه.
همین بازی تراوین رو ببین : با php ساختن ، آیا می شد به این زیبایی و دقیق با asp در بیارن !! اصلا چرا با asp ننوشتن . وقتی یه طرف میاد بازی می کنه ، به طور کلی معتاد می شه و می تونید ببینید که چقدر داره پول می گیره (هدف و ایده ی خوب)

خلاصه بگم - ASP به گرد php هم نمی تونه برسه

وسلام

alonemm
پنج شنبه 26 اسفند 1389, 11:22 صبح
باسلام:
من خودم بر هردو زبان تسلط کافی دارم و تا اونجایی که دانش داشته باشم سعی میکنم توی این پست راهنمایی کنم.(البته اول با PHP شروع کردم)
در ضمن سعی میکنم در هر مورد نقاط ضعف و قدرت رو در هردو زبان بیان کنم.

با این نظر موافقم که PHP انتها نداره و هروز به توابع و در کل قدرتش اضافه میشه.
اما پشتیبانی بزرگترین شرکت نرم افزاری دنیا یعنی ماکروسافت رو هم نباید فراموش کرد که دات نت رو پشتیبانی میکنه.

eshpilen
پنج شنبه 26 اسفند 1389, 11:43 صبح
دوستان از حیطهء این تاپیک کاملا خارج شدیم.
در اینجا فقط روش پیاده سازی کارهای مختلف رو بین این دو زبان/فریمورک میخوایم با نمونه کد عملی مقایسه کنیم.
بحثهایی از این دست که شما دارید میکنید جاش توی اون یکی تاپیک (http://barnamenevis.org/showthread.php?278648-PHP-%DB%8C%D8%A7-asp.net) هست.
مواردی هم که مطرح میکنید بنظر بنده بهتره بیشتر به برنامه نویسی تجاری متداول، یعنی سایتها و اپلیکیشن های وب در سطح عادی، مرتبط باشه.
حالا اصرار دارید موارد دیگری رو مطرح کنید خود دانید؛ ولی بنظر بنده مفید نیستن. از اولشم بحث من روی کارهای خیلی بزرگ یا خاص نبوده. بلکه روی عمدهء فعالیت عادی بیشتر برنامه نویسان بوده.

alonemm
پنج شنبه 26 اسفند 1389, 12:00 عصر
دوستان از حیطهء این تاپیک کاملا خارج شدیم.
در اینجا فقط روش پیاده سازی کارهای مختلف رو بین این دو زبان/فریمورک میخوایم با نمونه کد عملی مقایسه کنیم.
بحثهایی از این دست که شما دارید میکنید جاش توی اون یکی تاپیک (http://barnamenevis.org/showthread.php?278648-PHP-%DB%8C%D8%A7-asp.net) هست.
مواردی هم که مطرح میکنید بنظر بنده بهتره بیشتر به برنامه نویسی تجاری متداول، یعنی سایتها و اپلیکیشن های وب در سطح عادی، مرتبط باشه.
حالا اصرار دارید موارد دیگری رو مطرح کنید خود دانید؛ ولی بنظر بنده مفید نیستن. از اولشم بحث من روی کارهای خیلی بزرگ یا خاص نبوده. بلکه روی عمدهء فعالیت عادی بیشتر برنامه نویسان بوده.

شما که این پست رو راه انداختید شروع به گزاشتن کدها کنید تا مقایسه رو شروع کنیم.

eshpilen
پنج شنبه 26 اسفند 1389, 12:51 عصر
باشه سرفرصت شروع میکنم دیگه. عجله دارید انگار!
البته من تاپیک رو زود استارت کردم گفتم شاید دیگران بخوان چیزی رو مطرح کنن. از تاخیر بیخودی خوشم نمیاد. بقول معروف باید تا تنور داغه نون رو چسبوند :لبخند:

MMSHFE
پنج شنبه 26 اسفند 1389, 18:06 عصر
با سلام، شما هم كه ما رو با اين Multi-thread كشتين! آخر هم نفهميديم كاربردش توي وب كجاست كه نشه با AJAX معادلسازيش كرد! حالا جداي از اين بحث كه به قول شما جاش توي تاپيك ديگه هست، نمونه كد بگذارين كه شروع كنيم.
موفق باشيد.

eshpilen
پنج شنبه 26 اسفند 1389, 21:27 عصر
بنام خدا این بحث فوق العاده خفن را با اولین نمونه کدها شروع میکنیم :لبخند:

بنده مناسب دیدم اول امکانات/روش ولیدیشن ورودیهای کاربر در دات نت رو نشون بدم. چون بهتر دیدم از یک مثال که جزو بزرگترین و پیچیده ترین امکانات در دات نت نیست شروع کنم و ببینیم چی میشه و بحث چطوری پیش میره تا بعدا انشاا... برسیم به موارد دیگه.

خب بنده تا الان تا فضای نام System.Web.UI.WebControls (http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.aspx) در دات نت رسیدم (خوندن رفرنس کلاسهای دات نت رو از ابتدا شروع کردم) و هنوز جلوتر نرفتم، ولی تمام وب کنترل های ولیدیشن باید در همین فضای نام باشن.
این وب کنترل ها که بصورت کلاس هستن اینها هستن:
CompareValidator (http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.comparevalidator.aspx) برای مقایسهء مقدار دو ورودی در فرم با همدیگر یا مقایسهء مقدار یک ورودی با یک مقدار ثابت بکار میره. مثلا ورودیهای پسورد و تکرار پسورد در یک فرم ثبت نام رو میتونیم با این کنترل مقایسه کنیم که اگر برابر نبودن پیام خطا بده و چنانچه مثلا جاوااسکریپت کاربر غیرفعال بود و فرم باوجود مشکل در مقدارهای ورودی سابمیت شد، در سمت سرور هم این خطا تشخیص داده بشه.
خوبی وب کنترل های ولیدیشن دات نت اینه که شما فقط پارامترهای اونا و ورودیهای فرم مورد نظر رو تعیین میکنید و بقیهء کارها شامل تولید کد جاوااسکریپت برای ولیدیشن سمت کلاینت و تولید کد سمت سرور برای ولیدیشن سمت سرور بصورت خودکار توسط ASP.NET در موقع اجرا تولید میشن. شما هیچی از این کدهای تولید شده در کدهای خودتون نمیبینید و تنها جایی که میشه اثری از اونها پیدا کرد کد خروجی ارسال شده به سمت کلاینت هست که طبیعتا شامل کد ولیدیشن سمت کلاینت هست. مزایای این سیستم اینه که کد سایت/اپلیکیشن وب شما شلوغ و پیچیده نمیشه بخاطر جزییات فنی ولیدیشن که با وجود تفاوت کد سمت سرور و کلاینت حجیمتر و پیچیده تر هم میشه و بعد اینکه نیازی نیست با یک زبان سمت سرور و یک زبان سمت کلاینت همزمان کار کنید و کد ولیدیشن رو نمینویسید بلکه تنها پارامترهاش رو تعیین میکنید. خب اینم خیلی خوبه که ولدیشن سمت کلاینت و سرور با هم کاملا منطبق هستن و از یک منبع مشترک تولید میشن، درحالیکه در PHP تاجایی که بنده تاحالا دیدم، بیشتر افراد کدهای ولیدیشن سمت کلاینت و سرور رو بصورت دستی و جداگانه مینویسن و این کدها هیچ ارتباط خودکاری با هم ندارن و از یک منبع مشترک حاصل نمیشن و بطور مثال موقع تغییر پارامترها باید یاد برنامه نویس باشه و کدهای هر دو سمت رو تغییر بده و با هم هماهنگ کنه. ضمنا کدهایی که دات نت برای ولیدیشن سمت سرور و کلاینت تولید میکنه کامل و امن و مستقل از مرورگر هستن و نیازی نیست شما کدتون رو برای اطمینان از کارکرد اون روی چند مرورگر مختلف تست کنید؛ یعنی میتونم بگم نسبت به کدهای بیشتر برنامه نویسان بیشتر این خواص رو دارن چون توسط برنامه نویسان حرفه ای و بصورت متمرکز نوشته و تست و تحلیل کافی شدن.

این کنترل رو میشه تنظیم کرد که با عملگرهای کوچکتر، کوچکتر یا مساوی، بزرگتر یا مساوی و غیره، مقدار دو ورودی یا یک ورودی و یک مقدار ثابت رو مقایسه کنه و اگر شرط/عملگر مورد نظر برقرار نبود پیام خطایی رو به کاربر نشون بده و در سمت سرور هم خطای ولیدیشن براحتی از طریق دستور سادهء Page.IsValid قابل تشخیص باشه. این کنترل میتونه مقدارهایی از نوع رشته ای، عدد صحیح، عدد اعشاری، تاریخ و مبلغ پول رو مقایسه کنه.

نمونه کد یک صفحه که دو ورودی پسورد رو مقایسه میکنه:


<%@ Page Language="C#" AutoEventWireup="True" %>
<html>
<head>
<title>CompareValidator Example</title>
<script runat="server">
void Button_Click(Object sender, EventArgs e)
{
if (Page.IsValid)
{
lblOutput.Text = "<b>نتیجه ولیدیشن سمت سرور: صحیح</b>";
}
else
{
lblOutput.Text = "<b>نتیجه ولیدیشن سمت سرور: خطا</b>";
}
}
</script>
</head>
<body>
<br /><br /><br />
<form id="form1" runat="server">
<dir dir="rtl">
پسورد:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<asp:TextBox id="TextBox1" TextMode="password" runat="server"/><br />
تایپ مجدد:
<asp:TextBox id="TextBox2" TextMode="password" runat="server"/>
<asp:Button id="Button1" Text="ارسال" OnClick="Button_Click" runat="server"/>
<br />
<div style="margin: 5px">&nbsp;&nbsp;
<asp:CompareValidator id="Compare1"
ControlToValidate="TextBox2"
ControlToCompare="TextBox1"
Text="خطا: ورودیهای پسورد یکسان نیستند"
ForeColor="red"
BackColor="yellow"
style="border: 3px solid red;"
runat="server"/>
</div>
<br />
<asp:Label id="lblOutput" runat="server"/>
</div>
</form>
</body>
</html>

در تصویر زیر میبینید که به محض اینکه در ورودی دوم پسوردی رو وارد میکنیم که با پسورد ورودی بالایی یکی نیست، یک پیام خطا در سمت کلاینت توسط جاوااسکریپت نمایش داده میشه. ضمنا کلیک کردن روی دکمهء سابمیت در این حالت اثری نداره و فرم سابمیت نمیشه:
http://barnamenevis.org/attachment.php?attachmentid=67611&stc=1&d=1300385890
اگر مقدار ورودی رو اصلاح کنیم پیام خطا هم ناپدید میشه.

وقتی فرم سابمیت میشه ولیدیشن در سمت سرور هم صورت میگیره.
تصویر زیر پیام ولیدیشن سمت سرور پس از سابمیت شدن فرم همراه با اطلاعات صحیح رو نشون میده:
http://barnamenevis.org/attachment.php?attachmentid=67612&stc=1&d=1300385952
بجز CompareValidator کنترلRangeValidator برای مقایسهء مقدار ورودی با یک مقدار ماکزیمم و مینیمم استفاده میشه (بطور مثال ورودی عددی بین 1 و 10 باشه - یا تاریخ و غیره)، کنترلRegularExpressionValidator برای تست یک Regular Expression بر روی یک ورودی بکار میره، وRequiredFieldValidator برای اطمینان از اینکه ورودی حتما مقداری داشته باشه و خالی نباشه.

خب مزایای این روش سیستم کنترل ولیدیشن دات نت رو هم که قبلا گفتم.

MMSHFE
جمعه 27 اسفند 1389, 11:11 صبح
با سلام، همش همين بود (شوخي ميكنم، ناراحت نشين)؟ اين همه ميگفتين Validation توي ASPX و سيستم يكپارچه سمت سرور و كلاينت و... ؟
فعلاً علي الحساب CompareValidator كه با PHP درست كردم رو بررسي كنيد. بقيه رو هم اگه فرصت كنم، آماده ميكنم كه فكر نميكنم سخت تر از اين مورد باشه.
موفق و مؤيد باشيد.

m.soleimani
جمعه 27 اسفند 1389, 11:53 صبح
شاید با asp یه چیزایی رو راحت تر انجام می نویسید و ولی با php مـــــــــــــــی تونید اون رو سخت تر بنویسید

خوب علت این که از asp.net استفاده می‌کنیم همین هست دیگه به قولی لقمه رو درو سرمون نمی‌گردونیم

eshpilen (http://barnamenevis.org/member.php?148005-eshpilen) عزیز و MMSHFE (http://barnamenevis.org/member.php?55504-MMSHFE) عزیز بحث خوب داره جلو می‌ره به زودی مشخص می‌کنیم که مثلن برای راه اندازی یه سایت کوچیک با همین امکانات ساده و پیش پا افتاده که الان مد نظر هست کدوم زبان کاراتر هست و وقت و هزینه کمتری برای برنامه نویسان پروژه و کلن تیم مدیریتی داره .

پ ن: دقت کنید گفتم برای برنامه نویسان و تیم مدیریتی نگفتم صاحب اصلی سایت چون برای خیلی‌هاشون تفاوت زیادی نمی‌کنه پس لطفن بحث تاپیک رو منحرف نکنید موفق باشید./

MMSHFE
جمعه 27 اسفند 1389, 12:20 عصر
با سلام، PHP هم موارد زيادي داره كه در ASPX به اين راحتي در دسترس نيست (بعنوان مثال كتابخانه GD و PDFLIB). به زودي نمونه اونها رو هم خواهم گذاشت. موفق باشيد.

eshpilen
جمعه 27 اسفند 1389, 16:50 عصر
فعلاً علي الحساب CompareValidator كه با PHP درست كردم رو بررسي كنيد. بقيه رو هم اگه فرصت كنم، آماده ميكنم كه فكر نميكنم سخت تر از اين مورد باشه.
موفق و مؤيد باشيد.
میشه یخورده بیشتر وقت بذارید و مثال تمیزتر و کاملی تهیه کنید؟ نگران نباشید ما عجله ای نداریم.
مثلا جزییاتی مثل درج برچسب نام ورودیها رو انجام بدید و اگر مثال بنده به زبان فارسی هست شما هم به زبان فارسی بذارید. البته اگر ترکیب فارسی و انگلیسی موقع کدنویسی سخته میتونیم توافق کنیم که از این به بعد مثالها رو فقط با متون انگلیسی تهیه کنیم.
سعی کنید مثال شما شبیه مثالی باشه که طرف مقابل ارائه کرده؛ هم از نظر امکانات و هم از نظر ظاهر.
ممکنه تعیین همین جزییات ظاهری مقداری کد رو حجیم و شلوغ بکنه و فردی که دو نمونه کد رو نگاه میکنه فکر کنه یکیش خواناتر/کوتاهتر هست، درصورتیکه حذف یکسری جزییات نمایشی باعث این امر بوده باشه.
فکر نمیکنم این کارا زیاد سخت باشه. ضمنا تست رو هم ساده تر میکنن.
و اما از نظر امکانات و طرز کار هم کد شما هنوز کامل نیست و شباهت کافی به مثال بنده نداره.
اشکالات:
- وقتی ورودی اول رو پر میکنی و هنوز اصلا به ورودی تکرار پسورد نرسیدی، پیام خطا میده.
- به ازای تایپ هر کاراکتر خطا میده، درحالیکه باید وقتی پر کردن ورودی توسط کاربر تموم شد و از اون ورودی خارج شد عملیات مقایسه صورت بگیره.
- وقتی خطایی در ورودی وجود داشته باشه فرم همچنان سابمیت میشه. شما باید در سمت کلاینت از سابمیت شدن فرم دارای خطا جلوگیری کنید (نمونه کد بنده اینطور هست و بهش اشاره کردم)
- وقتی هر دو ورودی خالی باشن در سمت سرور متغییر inppasswordدارای مقدار رشتهء تهی هست، نه رشتهء true یا false. باید در این حالت محتوی رشتهء true باشه.
- اگر عملیات ورود/ویرایش اطلاعات بجای کیبورد با ماوس انجام بشه، ولیدیشن شما کار نمیکنه.

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

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

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

MMSHFE
جمعه 27 اسفند 1389, 17:35 عصر
امان از دست شما! میشه بگین چند سالتونه؟ شرمنده ولی خیلی ایرادات بچگانه وارد میکنید! این کد فقط یک مثاله که ببینید میشه یک Validation منسجم سمت سرور و کلاینت همزمان نوشت و کاربر نخواد خودش عملیات رو انجام بده. اما جواب:
1- برای تنظیم پیغام فارسی باید از خاصیت Text شئ ایجاد شده از CompareValidator استفاده کنید (میتونید فارسی بگذارید).
2- همون کدی که شما میگین با اضافه کردن جزئیات خواناتر/کوتاهتر میشه، فقط ازنظر کاربر هست وگرنه توی فایل این کدها نوشته خواهد شد (توسط VSdotNET).
3- اگه به جای رویداد onKeyUp رویدادهای دیگه مثل onBlur رو با تابع تولیدشده مرتبط کنید، مشکل زمان تعیین اعتبار رفع خواهد شد و وقتی Focus از روی کنترل حرکت میکنه، عمل Validation انجام خواهد شد (یکی از مزایای کد بنده هم همینه که میتونید تعیین کنید در چه زمانی عمل تعیین اعتبار انجام بشه).
4- برای جلوگیری از Submit شدن هم کافیه که یک تابع دیگه اضافه کنم که اگه نتیجه Validation غیرمعتبر بود، خروجی false بده و رویداد کلیک دکمه Submit رو هم با اون تابع مقداردهی کنم.
5- میشه بگین سمت سرور بدون استفاده از JS چطور میخواد از نتیجه Validation سمت کلاینت مطلع بشه؟ شاید VSdotNET کلاً معماری وب رو بهم ریخته و امنیتش رو از بین برده (که بعید هم نیست) و ما خبر نداریم؟! خودتون با غیرفعال شدن JS عملیات Validation سمت سرور رو تست کردین؟ آیا ندیدین که یک کد ساده بهش اضافه میکنه (با یک شرط ساده بررسی میکنه که برابر هستن یا نه) که این کار هم به راحتی و بصورت دستی قابل انجامه!
6- کدی که من نوشتم ممکنه حجیم و طولانی بشه ولی این به کاربر ربطی نداره و فقط از کلاس ارائه شده استفاده میکنه و خاصیتهاش رو تنظیم میکنه (درست مثل شما که از کلاس مذکور در dotNET استفاده میکنید و نمیدونید که چه کدی توش نوشته شده و چطور این کار رو انجام میده و چطور حجیمه! تازه اینجا مزیتی وجود داره به نام OpenSource که کاربر میتونه ببینه اطلاعاتش چطور تعیین اعتبار میشن و اگه بخواد، تابع Validation سفارشی خودش رو بنویسه (مثلاً حساس به حروف کوچک و بزرگ نباشه و...).
7- میشه بگین طبق چه منبعی میگین PHP هنوز از Unicode پشتیبانی نمیکنه؟ چند وقته با UTF8 توی PHP کار نکردین؟ ضمناً تهیه RegularExpression به طور خودکار هم خیلی وقته انجام شده و کارم سخت نخواهد بود (کلاسش توی PHPClasses.org موجوده).
8- نیازی به استفاده از Framework نبود چون گزینه درخواستی بیش از حد ساده بود.
موفق باشید.

eshpilen
جمعه 27 اسفند 1389, 18:04 عصر
3- اگه به جای رویداد onKeyUp رویدادهای دیگه مثل onBlur رو با تابع تولیدشده مرتبط کنید، مشکل زمان تعیین اعتبار رفع خواهد شد و وقتی Focus از روی کنترل حرکت میکنه، عمل Validation انجام خواهد شد (یکی از مزایای کد بنده هم همینه که میتونید تعیین کنید در چه زمانی عمل تعیین اعتبار انجام بشه).از این به بعد مثالهاتون رو درست بذارید لطفا! اگر این کارها ساده هست پس خودتون قبل از درج مثال انجام بدید. اصلا معنی نداره که کاربر هنوز ورودی رو کامل نکرده پیام خطا بده! از اولش باید اون کار رو میکردی. ضمنا بعضی جزییات در تکمیل مثال روشن میشن.


4- برای جلوگیری از Submit شدن هم کافیه که یک تابع دیگه اضافه کنم که اگه نتیجه Validation غیرمعتبر بود، خروجی false بده و رویداد کلیک دکمه Submit رو هم با اون تابع مقداردهی کنم.آفرین این کار رو هم انجام بده.
من واسه چی میگم باید انجام بدی.
چون همهء اینا افزونگی کد شما رو زیاد میکنن.
الان شما بغیر از دو ورودی پسورد، در رویداد onsubmit تگ فرم یا رویداد کلیک دکمهء سابمیت هم باید تابع password() رو اضافه کنی. درحالیکه در دات نت شما فقط ورودیها رو به کنترل ولیدیشن معرفی میکنی و دیگه نیازی نیست چند جای دیگه چیزی اضافه کنی و یوقت یادت بره یا اشتباهی بشه.
همهء اینا مزیت هست. و فکر کن وقتی در این کدهای کوچک و ساده مزیت هست، در کل برنامه و چیزهای پیچیده تر هم هست و کلا جمع این موارد هست که حداقل با بخشی از مسائل خوانایی و پیچیدگی و نگهداری و گسترش کد و آمار باگ برنامه ها در ارتباطه.
لطفا سعی نکنید این مسائل رو کوچک نشون بدید. خیلی از مشکلات و اشتباهات بر سر همین مسائل کوچک هست. و در برنامه های بزرگ و پیچیده اثر این موارد جزیی بیشتر هم میشه، چون تعداد جزییات متعدد و مواردی که برنامه نویس باید یادش باشه یا اصلاح کنه بالا میرن و برنامه هم خیلی حجیم تر و پیچیده تر و کلا درهم تنیده میشه.


5- میشه بگین سمت سرور بدون استفاده از JS چطور میخواد از نتیجه Validation سمت کلاینت مطلع بشه؟ سمت سرور ما هیچ کاری با نتیجهء ولیدیشن سمت کلاینت نداریم.
برای چی باید کار داشته باشیم؟
شما در سمت سرور باید ولیدیشن کاملا مستقلی انجام بدید، چون به صحت چیزی که از سمت کلاینت میاد به هیچ وجه نمیشه اعتماد کرد.


خودتون با غیرفعال شدن JS عملیات Validation سمت سرور رو تست کردین؟بله تست کردم و کار میکنه. فکر کردی پس چی؟ یعنی اینقدر دات نت کشکی هست یا بنده ناشی هستم؟
اصلا مفهوم و اهمیت ولیدیشن سمت سرور همین هست.



آیا ندیدین که یک کد ساده بهش اضافه میکنه (با یک شرط ساده بررسی میکنه که برابر هستن یا نه) که این کار هم به راحتی و بصورت دستی قابل انجامه!خب شما همین رو در کدت پیاده کن دیگه. کاری کن بصورت خودکار این کد رو در سمت سرور هم تولید بکنه.
مگر بنده به مفهوم منبع مشترک اشاره نکردم؟ یعنی شما یک جا بصورت متمرکز پارامترهای ولیدیشن رو تعیین میکنی، نه اینکه بصورت دستی دو جا دو تا کد بنویسی و پارامترها رو تکرار کنی.
اگر دوجا دستی نوشتی، موقع تغییر یکی نیاز داری دیگری رو هم یادت باشه و اصلاح کنی.
ولیدیشن دات نت فقط برای مقایسهء برابر هم که نیست بلکه عملیات کوچکتر و بزرگتر و غیره رو هم میتونه بررسی بکنه، میشه اعداد رو مقایسه بکنه، تاریخ ها رو (که نیاز به پردازش بیشتری داره و نمیشه فقط با مقایسهء رشته ای بررسی کرد.



6- کدی که من نوشتم ممکنه حجیم و طولانی بشه ولی این به کاربر ربطی نداره و فقط از کلاس ارائه شده استفاده میکنه و خاصیتهاش رو تنظیم میکنه (درست مثل شما که از کلاس مذکور در dotNET استفاده میکنید و نمیدونید که چه کدی توش نوشته شده و چطور این کار رو انجام میده و چطور حجیمه!مطمئن باش کد دات نت از کد شما خیلی کاملتر و امن تر هست و ولیدیت سمت کلاینت اون روی مرورگرهای بیشتری کار میکنه. حجیم هم باشه به من چه؟ برای من مهم راحتی و سرعت برنامه نویسی هست و اینکه سایت کار کنه. کاربر هم کاری نداره به حجم و کد پشت صحنه.


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



7- میشه بگین طبق چه منبعی میگین PHP هنوز از Unicode پشتیبانی نمیکنه؟ چند وقته با UTF8 توی PHP کار نکردین؟PHP ساپورت Native از یونیکد نداره. بطور مثال فکر میکنید چرا تابع strlen مقدار اشتباهی رو برای رشته های فارسی برمیگردونه؟ چون بایت به بایت میشماره، درحالیکه هر کاراکتر فارسی چند بایت هست.
به همین ترتیب درمورد رگولار اکسپرشن ها هم مشکل داریم که جدی تره. درمورد strlen میشه از تابع mbstrlen بجاش استفاده کرد، اما درمورد رگولار اکسپرشن بنده شخصا چیزی ندیدم.

PHP currently does not have native support for Unicode (http://en.wikipedia.org/wiki/Unicode) or multibyte strings; Unicode support is under development for a future version of PHP

منبع: http://en.wikipedia.org/wiki/Php

ضمناً تهیه RegularExpression به طور خودکار هم خیلی وقته انجام شده و کارم سخت نخواهد بود (کلاسش توی PHPClasses.org موجوده).
شما همون مورد معادل کنترل ولیدیشن رگولار اکسپرشن دات نت رو با PHP بنویس تا بهت بگم.
اصلا همین الان یک رگولار اکسپرشن در PHP ارائه بده که تست میکنه رشتهء ورودی فقط از کاراکترهای حروف فارسی (الف تا ی) تشکیل شده باشه. ببینم همین مورد ساده و پایه رو میدونی فرقش چی هست یا نه!

m.soleimani
جمعه 27 اسفند 1389, 18:28 عصر
امان از دست شما! میشه بگین چند سالتونه؟ شرمنده ولی خیلی ایرادات بچگانه وارد میکنید!

دوست عزیز سعی کنید یکم منصف‌تر رفتار کنید یکبار به شما ثابت کردم تخریب کردن یه نفر آسون‌تر از خوردن یک لیوان آب هست اگر توانایی کدنویسی مرتب رو ندارید یا حوصلش رو ندارید از بحث بکشین کنار. اگر کنار نرفتین لطف کنید و اثبات کنید که زبان مورد نظر شما نیاز به پیچیدگی‌های زیادی نداره و اون مزایایی که دوست عزیزمون برای کدشون در نظر گرفتن رو شما هم به خوبی قادر به انجام دادنش هستین « در کل بحث اصلی سر همین موضوع بوده » من احساس می‌کنم شما قصد دارین به خوانندگان این تاپیک القا کنید که طرفتون کم سن و سال هست و خیلی ناشی در صورتی که داره چیز دیگه‌ای رو ثابت می‌کنه ممنون می‌شم با کلمات بازی راه نندازین.

موفق باشید و عید همگی مبارک باشه امیدوارم که همیشه خوش و خرم و برنامه نویس باشید./

eshpilen
جمعه 27 اسفند 1389, 18:44 عصر
ایشون باید در مسائل فنی دقیق و منصف باشن.
ایشون گاهی چیزایی میگه که بنده هم شک میکنم واقعا اینقدر بی سواد باشه و بیشتر فکر میکنم میخواد بحث رو منحرف کنه.
مثلا این مسئلهء ولیدیشن مستقل سمت سرور. من موندم یعنی ایشون که اینقدر با تجربه هست و از کدهایی که نوشتن هم معلومه تواناییشون بد نیست، تاحالا این رو نمیدونستن و در برنامه هاشون رعایت نمیکردن؟!
آقا جان سمت کلاینت باید سمت کلاینت انجام بشه و تموم. حالا یا انجام میشه یا نمیشه؛ میتونه توسط کاربر غیرفعال بشه یا اصلا هکر میتونه هر دیتایی رو که میخواد جعل کنه و به سایت شما ارسال کنه. شما که نباید نتیجهء اعتبارسنجی سمت کلاینت رو معیار قرار بدید در سمت سرور.
خوبی کنترل های ولیدیشن دات نت اینه که شما یک جا و فقط یک جا، پارامترها و ورودیهای مورد نظر رو تعیین میکنی، و بعد دات نت برات بقیهء کار رو انجام میده؛ کد ولیدیشن سمت کلاینت رو تولید میکنه، و کد ولیدیشن مستقل سمت سرور رو هم که هیچ وابستگی ای به سمت کلاینت نداره تولید میکنه. این کدهای سمت سرور رو شما در برنامتون نمیبینید، اما وجود دارن و اجرا میشن و میتونید نتیجهء اونها رو با Page.IsValid چک کنید (البته Page.IsValid نتیجهء کل ولیدیشن های موجود در صفحه رو برمیگردونه؛ برای یک ولیدیشن خاص میتونیم از بطور مثال Compare1.IsValid در سمت سرور استفاده کنیم).

eshpilen
جمعه 27 اسفند 1389, 21:22 عصر
اگر توانایی کدنویسی مرتب رو ندارید یا حوصلش رو ندارید از بحث بکشین کناربله این خیلی مهمه.
ما هم عجله ای که نداریم. این کار باید دقیق و اصولی انجام بشه. با آرامش و کامل. یه چیزی رو یک هفتهء دیگر هم جواب بدیم اشکالی نداره. منم از اولش گفتم که این بحث رو به تدریج و با فاصله پیش میبریم چون خودمم اینقدر وقت و انرژی نمیتونم روش بذارم و کاری نیست که معنی داشته باشه با عجله و سطحی پیش ببریم.
الان بطور مثال معلومه که ایشون کد دات نت بنده رو تست کافی نکردن که تازه میگن مگه سمت سرورش بدون JS سمت کلاینت کار میکنه!
و از طرف دیگه این جای سوال داره که ایشون که ادعا میکنن دات نت رو میشناسن و کار کردن چطور این رو نمیدونستن که کنترل های ولیدیشن دات نت این خاصیت رو دارن. منم قبلا گفتم که بنظرم ایشون به دات نت احاطهء کافی ندارن وگرنه اونقدر سطحی درمورد دات نت اظهار نظر نمیکردن که انگار فقط بحث ویژوال استودیو و چنتا ویزارد و تولید خودکار چنتا کد هست که از نظر ایشون بیشترش یا بخش بزرگی از اونا اضافی هست.
البته اینو بگم که این مشکل خیلی از برنامه نویسان هست و بنظرم حتی خیلی از افرادی که مدتهاست با دات نت کار میکنن واقعا به دات نت احاطه ندارن. چون اصولی یاد نمیگیرن. بطور مثال بنده وقتی میگم رفرنس رسمی رو کامل میخونم، اکثرا میگن نیازی نیست و کار مفیدی نیست و صرفه نداره. اما آدم اگر بخواد یه چیزی رو کامل بشناسه و دید کامل و دقیقی بدست بیاره، مطالعهء کامل رفرنس رسمی اگر لازم نباشه حداقل خیلی مفیده و به خوندنش می ارزه (حتی اگر آدم جزییات رو فراموش کنه). ضمنا خوشبختانه نمونه کد هم زیاد توش هست. این افراد فکر کنم تاحالا حتی یک رفرنس رسمی در هر موضوعی رو هم کامل نخوندن تا اصلا امتحان کرده باشن و ببینن چی توش هست و چی نیست و آیا مفید هست یا نه.
درمقابل، بنده کد ایشون رو هم عملا تست کردم و هم خط به خط خوندم و اون رو تحلیل و ارزیابی کردم تاجای ممکن و فکر میکنم PHP رو هم تا حد خوبی میشناسم. با فریمورک هاش کار نکردم، اما خود PHP رو درحد مطالعهء کامل رفرنس رسمی یادگیری داشتم.

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

MMSHFE
جمعه 27 اسفند 1389, 22:27 عصر
با سلام، دارم روي كلاس مربوطه كار ميكنم و به زودي كاملش ميكنم ولي يك نكته رو هم بايد قبول كنيد و اون اينكه VSdotNET به دليل كنترلي كه روي فايلها داره، ميتونه Validation سمت سرور رو هم تنظيم كنه چون ميتونه فايل مقصد فرم رو هم ويرايش كنه ولي در اينجا چون بايد دستي انجام بشه، من از JS استفاده كردم كه به قول شما، اشتباهه و دنبال راهي هستم كه سمت سرور رو هم تنظيم كنه ولي اين رو بايد بپذيريد كه به دليل استفاده نكردن از Framework اين كار خيلي مشكله اما حقيقتاً سعي دارم بدون Framework اين كار رو انجام بدم و ميدونم شدني هست (هر چند سخت). درواقع جداي از اينكه بخوام بحث يا خداي نكرده جدالي با كسي داشته باشم، دلم ميخواد كنترلهاي Validation موجود در ASPX رو با همكاري همديگه توي PHP شبيه سازي كنيم و در عين حال، يكسري مزاياي PHP رو هم مطرح كنيم و دنبال راه حل اونها در ASPX باشيم. اينطوري دانشمون در هر دو زمينه بالا ميره. از نظر لطفتون هم درمورد خودم متشكرم. اميدوارم با همكاري همديگه بتونيم بدون بحث و زير سؤال بردن هم، به ارتقاي دانش خودمون و سايرين در اين جامعه مجازي كمك كنيم. احتمالاً در ويرايش بعدي اين كلاس، امكان تعيين رويداد مربوطه و ساير خصوصيات مثل پنهان و آشكار شدن كادر خطا و... هم درنظر گرفته خواهد شد. در كل ميتونم بگم با اين بحث دارم يه جورايي حال ميكنم!
موفق و مؤيد باشيد.

Mr.Moghadam
شنبه 28 اسفند 1389, 01:13 صبح
سلام
بحث خیلی جالبیه
از اونجا که من در حد مبتدی با دات نت و php آشنا هستم خواستم ببینم نحوه پیاده سازی آرایه ها در دات نت به اندازه پی اچ پی انعطاف پذیر هست یانه؟
مثلا :

<?php
$arr = array("foo" => "bar", 12 => true);

echo $arr["foo"]; // bar
echo $arr[12]; // 1
?>
همینطور که همه دوستان میدونن آرایه ها در پی اچ پی خیلی انعطاف پذیره و توی خود سایتش (http://php.net/manual/en/language.types.array.php) اینو نوشته :

This type is optimized for several different uses; it can be treated as an array, list (vector), hash table (an implementation of a map), dictionary, collection, stack, queue, and probably more.]

ممنون میشم توضیح بدید
موفق باشید

V0R73X
شنبه 28 اسفند 1389, 05:08 صبح
لاکردار PHP انتها نداره و هر چی یاد بگیری بازم کمه ( من جنگ رو شروع می کنم )
کی گفته ASP انتها داره؟ آیا شما میتونی با اطمینان بگی: من میتونم با MVC و AJAX و Toolkit و CSS و JQuery و SQL و... کار کنم؟

با سلام، شما هم كه ما رو با اين Multi-thread كشتين! آخر هم نفهميديم كاربردش توي وب كجاست كه نشه با AJAX معادلسازيش كرد!ببخشین؟؟ مالتی-ترد کاربرد نداره؟؟!؟!؟! کلهم تکنولوژی AJAX و XMLhttpRequest روی مالتی ترد پایه گزاری شده!!! بدون مالتی ترد برنامه شما چیزی جز یه مشت دستور که پشت سر هم پس از شلیک شدن یه رویداد اجرا میشن نیست! بعدش میشه توضیح بدین چطور میشه مالتی-ترد رو با اجکس معادل سازی کرد، وقتی خود اجکس از مالتی-ترد اومده؟؟

با عرض پوزش این 2 تا رو باید جواب میدادم ولی نمیخوام دیگه از بحث دور شیم.
به نظر من یه چیزی که هست بحث امنیت هست که میتونیم مقایسه کنیم اینجا: ازونجایی که من طرف ASP هستم، با افتخار سیستم قدرتمند امنیتش رو معرفی میکنم:
آسان، و قوی، و راه های متعددی هم برای ایجاد امنیت وجود داره: MemberShip, WAT, CreateUserWizard
WATکه کاملا User-Friendly هست و با چند تا کلیک میتونی کاربر رو ایجاد و براش Role تعیین کنی (راستی بحث Role شد، تو PHP چطور به این آسونی Role درست میکنین؟؟)
CreateUserWizard هم فقط و فقط یه کنترله که میندازیش رو فرم، و همین!!!!!!!!!!!!!!!!!! کاربر میره اونجا اطلاعاتش رو وارد میکنه، و بقیه کار از ساخت DataBase گرفته تا Encode کردن پسورد به عهده خود asp هست!!
در مورد MemberShip، بعدا به اون میرسیم، اگر کسی پیدا شد واسه دفاع از Php...
کافیه به آمار سایت های هک شده دنیا یه نگاهی بندازین، ببینین چند تاشون PHP بودن چند تاشون ASP (البته این مدرک خوبی نیست چون ازونجایی که تعداد سایت های ساخته شده با PHP هم بیشتره، تعداد سایت های PHP هک شده هم بیشتره)
ولی در هر حال فکر کنم حتی خود PHP نویسان عزیز هم با من موافقند در مورد امنیت... البته باز هم یک چیز رو اضافه میکنم: این که امنیت یک سایت 85.24% به برنامه نویسش بستگی داره، ولی چیزی که من میخوام بگم، اینه که ASP این امنیت رو 90% خودش تضمین میکنه، و اینجا، هم در آسانی کار از PHP جلوتره هم از نظر امنیتی. اگر کسی میتونه در این مورد از PHP دفاع کنه نظرش رو بیان کنه تا من نمونه کد ها رو هم بزارم، وگرنه که 1-0 به نفع ASP.NET!

V0R73X
شنبه 28 اسفند 1389, 05:34 صبح
اينجور كه شروع كردين فك كردم يا php يا .net زنده ميرن بيرون
نه وجداني خواستين مثال بيارين، رفتين validate آوردين؟ نه اصلا؟
اين جور بند و بساط كه مث نقل و نبات تو نت ريخته، تو نت نباشه هم همه اين كارهاي به قول خودتون RAD و فلان رو ميشه تو همين كافيشاپ RADPHP پياده كرد
اينا مثال و فلان رو نشون بچه بدي خندش ميگيره مرد حسابي.
3-4 روزه هي دودور دادار راه انداختين =))
ببخشین؟؟؟؟ میشه خواهش کنم ادب رو رعایت کنین؟؟ اینجا فروم تخصصی برنامه نویسیه کافی شاپ که نیست!!
بعدشم یعنی چی که "خواستین مثال بیارین رفتین Validation آوردین"؟؟ پس چی بیاریم؟؟ اینک جزء برنامه نویسیه دیگه، نیست؟؟

V0R73X
شنبه 28 اسفند 1389, 05:36 صبح
سلام
همینطور که همه دوستان میدونن آرایه ها در پی اچ پی خیلی انعطاف پذیره و توی خود سایتش (http://php.net/manual/en/language.types.array.php) اینو نوشته :
موفق باشید
پس تو ASP خیلی خیلی انعطاف پذیره!!!!!!!!!
Dim StriTest as string()={"Str1", "Str2"}

ghasemweb
شنبه 28 اسفند 1389, 10:15 صبح
با احترام کامل به همه خاک خورده های php کار و asp کار به نظر من هیچ کدوم به طور قطع و یقین از دیگری سرتر نیست و مطمئنا هر کسی میخواد نقاط قوت زبانی که خودش کار کرده رو بگه ولی معایبش رو خوب نمیتونه ببینه و بپذیره ولی خوشحالم که در این زمینه همه دوستان نظر میدن و اینجوری میشه نتیجه گیریهای خوبی در آورد و نقاط ضعف رو هم به نقاط قوت تبدیل کرد.

راستی یه سوال آیا حphp یا asp بودن تفاوتی تو لودینگ و سرعت بارگذاری داره؟؟؟ اگه داره یه مثال عملی ارائه بدین. من خودم php کار میکنم دلیلش هم شاید به خاطر سادگی شروع به کار کردن و در دسترس بودن ابزارهاشه!!!

MMSHFE
شنبه 28 اسفند 1389, 10:16 صبح
پس تو ASP خیلی خیلی انعطاف پذیره!!!!!!!!!
Dim StriTest as string()={"Str1", "Str2"}
واقعاً به اين ميگين انعطاف پذيري؟ حالا توي PHP اينو داشته باشين:


$x['id']=5;
$x['name']='ali';
$x['grade']=19.25;
$x['deleted']=false;
foreach($x as $key=>$value)
{
echo $key.'&nbsp;=>&nbsp;'.$value.'<BR/>';
}

يا مثلاً اين كد:


$value=10;
echo $value.'<BR/>';
$value='ahmad';
echo $value.'<BR/>';
$value=15.5;
echo $value.'<BR/>';
$value=true;
echo $value.'<BR/>';

توضيح: اون رشته هاي خالي آخر عبارات echo تگ BR هستن كه اين اديتور جديد سايت (كه واقعاً خيلي بد شده) اونها رو درست نشون نميده.
همونطور كه ميبينيد، هر خونه يك آرايه در PHP ميتونه يك مقدار با نوع متفاوت داشته باشه يا حتي يك متغير ميتونه در بخشهاي مختلف برنامه، مقادير از نوع مختلفي بگيره. بعلاوه براي ايجاد آرايه انجمني توي PHP هيچ دردسري ندارين ولي توي ASPX بايد از كلاس Array و DictionaryEntry استفاده كنيد تا اين مورد رو شبيه سازي كنيد.
حالا هي بگين تو ASP خيلي خيلي انعطاف پذيره!!!!!!! :قهقهه:
شرمنده ولي مثالي كه دوست خوبم جناب eshpilen (http://barnamenevis.org/member.php?148005-eshpilen) گفتن (Validation)، واقعاً يك مسئله قابل بررسي هست و ميشه گفت يكي از مزاياي ASPX محسوب ميشه (كه البته توي PHP هم قابل پياده سازي هست و دارم مثالي كه گفتم رو تكميل ميكنم) ولي در اين مورد (تنوع در نوع متغيرها و آرايه ها) لطفاً صحبت ASPX رو نكنيد.

رضا قربانی
شنبه 28 اسفند 1389, 10:24 صبح
کی گفته ASP انتها داره؟ آیا شما میتونی با اطمینان بگی: من میتونم با MVC و AJAX و Toolkit و CSS و JQuery و SQL و... کار کنم؟


نخیر حاجی
شروع کننده ی همین تاپیک توی پست 4 گفته PHP رو که خیلی وقت پیش تموم کردم

در صورتی که اصلا اینطوری نیست حاجی !

چقدر خشونت حاجی


در مورد امنیتم که گفتید بگم :

به قول خودتون شما می گید بیشتر سایت های هک شده php هست ، چند تا دلیل بهش می دم :
1 : برنامه نویس هاش
2 : به خاطر شیرین بودن آقای php
3 : اکثر برنامه نویس ها دنبال آقای php هستن

توی هر زبانی ، برنامه نویس قوی داشته باشید می تونید امنیت رو به طور کامل برقرار کنید

خودتون می گید 90% امنیت asp رو خودش برامون برقرار می کنه و اینم خودش یعنی محدودیت

Mr.Moghadam
شنبه 28 اسفند 1389, 13:04 عصر
سلام
در اینکه asp.net از بیشتر لحاظ کارارو برای برنامه نویسان راحت تر کرده و از امنیت در کد نویسی بالاتری برخورداره هیچ شکی نیست.
اما در بعضی موارد مثل همین آرایه به پی اچ پی نمیرسه.البته شاید دلیلش به خاطر این باشه که برنامه نویسی دات نت ساخت یافته تر هست و برنامه نویس رو مقید کرده که از برنامه نویسی شلوغ دروی کنن.(البته دلیلش رو اگر دوستانی که حرفه ای تر با asp.net کارکردن،توضیح بدن ممنون میشم)


پس تو ASP خیلی خیلی انعطاف پذیره!!!!!!!!!
Dim StriTest as string()={"Str1", "Str2"}

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


$x['id']=5;
$x['name']='ali';
$x['grade']=19.25;
$x['deleted']=false;
foreach($x as $key=>$value)
{
echo $key.'&nbsp;=>&nbsp;'.$value.'';
}


موفق باشید

binyaft
شنبه 28 اسفند 1389, 15:59 عصر
کی گفته ASP انتها داره؟ آیا شما میتونی با اطمینان بگی: من میتونم با MVC و AJAX و Toolkit و CSS و JQuery و SQL و... کار کنم؟

اینهایی که گفتی یا روش هست یا یه زبان دیگه! تو هر زبانی هم میشه پیاده سازیشون کرد ( بعضی ها رو تحت وب )

مثلا من با اطمینان کامل میگم css,jquery,js,ajax,Mysql رو یاد دارم! به نظرت این عجیبه!؟ این ها فقط چند تا دستور العمل داره یاد بگیری تمومه ، بقیش رو باید تجربه کنی تا قدر تر بشی ، مثلا همین آژاکس ، چی داره مگه !؟

پی اچ پی بخاطر ابزار ها ی زیادش پایانی نداره ، مثل بقیه علوم کامپیوتری!

امنیت هم 99% دست برنامه نویس هست ، فکر نکنم Asp.net , PHP از نظر امنیت از هم سرتر باشن!

در مورد آرایه ها برای Asp.net اگر اینطوری باشه و مثل پی اچ پی انعطاف پذیر نباشه متاسفم!


موفق باشید

alonemm
شنبه 28 اسفند 1389, 18:13 عصر
در دات نت شما بايد Type ها رو مشخص كنيد.

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

eshpilen
شنبه 28 اسفند 1389, 19:19 عصر
اينجور كه شروع كردين فك كردم يا php يا .net زنده ميرن بيرون
نه وجداني خواستين مثال بيارين، رفتين validate آوردين؟ نه اصلا؟
اين جور بند و بساط كه مث نقل و نبات تو نت ريخته، تو نت نباشه هم همه اين كارهاي به قول خودتون RAD و فلان رو ميشه تو همين كافيشاپ RADPHP پياده كرد
اينا مثال و فلان رو نشون بچه بدي خندش ميگيره مرد حسابي.
3-4 روزه هي دودور دادار راه انداختين =))
من از مورد کوچک و ساده شروع کردم. بعدا به موارد بهتر هم میرسیم انشاا...
ضمنا حرف که معیار نیست. قرار شد فقط با نمونه کد نشون بدیم و اثبات کنیم. هنوز هم کدی که بقدر کد دات نت کوتاه و خوانا و سازگارتر با اصول مهندسی نرم افزار باشه ارائه نشده. شما سراغ دارید ارائه کنید.
برنامه های ویژوال هم همه کار نمیکنن، بلکه در نهایت ساختار و تمیزی زبان برنامه نویسی خیلی مهمه. برای نگهداری و تغییر و باگیابی و غیره بطور مثال.

eshpilen
شنبه 28 اسفند 1389, 19:29 عصر
سلام
بحث خیلی جالبیه
از اونجا که من در حد مبتدی با دات نت و php آشنا هستم خواستم ببینم نحوه پیاده سازی آرایه ها در دات نت به اندازه پی اچ پی انعطاف پذیر هست یانه؟
مثلا :

<?php
$arr = array("foo" => "bar", 12 => true);

echo $arr["foo"]; // bar
echo $arr[12]; // 1
?>
همینطور که همه دوستان میدونن آرایه ها در پی اچ پی خیلی انعطاف پذیره و توی خود سایتش (http://php.net/manual/en/language.types.array.php) اینو نوشته :

This type is optimized for several different uses; it can be treated as an array, list (vector), hash table (an implementation of a map), dictionary, collection, stack, queue, and probably more.]

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

hosseintdk775
شنبه 28 اسفند 1389, 19:34 عصر
بسم الله الرحمن الرحیم
سلام
دوستان یه پیشنهادی هم بکنم / وقتی کدی می دید ( و آماده برای اجرا هم هست ) زمان اجراش هم بزارید که متوجه بشیم چقدر طول می کشه تا کد/دستورات اجرابشن
و اینکه اگه بشه مشخص کرد که چقدر از منابع هم استفاده می کنن هم مفید خواهد بود.

eshpilen
شنبه 28 اسفند 1389, 19:37 عصر
VSdotNET به دليل كنترلي كه روي فايلها داره، ميتونه Validation سمت سرور رو هم تنظيم كنه چون ميتونه فايل مقصد فرم رو هم ويرايش كنه ولي در اينجا چون بايد دستي انجام بشه،
بله ساختار اجرای ASP.NET و محیط اون پیچیده تر و مجهزتر و منعطف تر از PHP هست. کنترل هوشمند و داینامیک بیشتری روی برنامه هست و چیزهای زیادی میتونن پشت صحنه بدون اینکه برنامه نویس حتی یک خط کد و یک فایل اضافه ببینه انجام بشن. درحالیکه PHP صرفا خط به خط برنامه رو از توی یکسری فایلهای متنی اجرا میکنه و هرچی هست و نیست برنامه نویس خودش باید به پروژه اضافه کنه و کدش موجود باشه.
پشت صحنهء ASP.NET یک سیستم فرمان و نظارت کامل نشسته و سرویسهای مختلفی رو منجمله تولید و اجرای کدهای لازم در مراحل مختلف اجرای برنامه ارائه میکنه.
پس فایل مقصد رو به اون صورت فیزیکی که شما میگید ویرایش نمیکنه، بلکه همهء اینا در محیط اجرای زنده و ناظر و هوشمند دات نت که کنترل زیادی در همهء مراحل اجرای برنامه داره در پشت صحنه انجام میشن و یا نهایتا کدهای اضافه شده در فایلهای کامپایل شده که بصورت بایت کد یا کد اجرایی حالا به هر شکلی هستن.

eshpilen
شنبه 28 اسفند 1389, 19:52 عصر
بسم الله الرحمن الرحیم
سلام
دوستان یه پیشنهادی هم بکنم / وقتی کدی می دید ( و آماده برای اجرا هم هست ) زمان اجراش هم بزارید که متوجه بشیم چقدر طول می کشه تا کد/دستورات اجرابشن
و اینکه اگه بشه مشخص کرد که چقدر از منابع هم استفاده می کنن هم مفید خواهد بود.
بنظر بنده اصلا مفید نیست. چون یک معیاری هست که به تنهایی ارزش و معنایی در این سطح و حیطهء برنامه نویسی نداره. بطور مثال در بحث برنامه نویسی وب، امنیت یکی از اولویت های اول هست. اگر سرعت یه برنامه ای 4 برابر برنامهء دیگری باشه ولی امنیتش حتی 50% هم کمتر باشه، بنده اون برنامه رو بهتر نمیدونم و ترجیح میدم از برنامهء دیگر استفاده کنم. چون مثلا اینکه برنامهء اول در یک دهم ثانیه اجرا میشه و برنامهء دوم در 4 دهم ثانیه، برای من تفاوت عملی مهمی ایجاد نمیکنه و این افزایش و کاهش سرعت مشکل خاصی رو بوجود نمیاره چون در نهایت 4 دهم ثانیه هم زمان کم و قابل قبولی هست، اما 50% کاهش در امنیت میتونه خیلی مهمتر باشه.
معیار مهم دیگر، راحتی و سرعت در برنامه نویسی هست و اینکه خوانایی و قابلیت نگهداری برنامه در حد خوبی باشه.
مسلما یک زبانی که امکانات سطح بالای کمتر و چک های امنیتی کمتری داره، سرعتش میتونه بالاتر بره. اما این چه ارزشی داره؟
بنده دقیقا نمیدونم سرعت این دو زبان کدومش بیشتر هست. بهرحال فکر نمیکنم اونقدری مهم باشه. برای مشتری و برنامه نویس این اولویت اول نیست، براشون مهم نیست هاست ویندوز قیمتش دو برابر هاست لینوکس باشه (فکر نمیکنم قیمت سایت درمقابل دستمزد برنامه نویسی چیز زیادی باشه و پول درشت بحساب بیاد). بلکه اولویت اول منطقی بنظر بنده، امنیت، و راحتی و سرعت توسعه هست و سرعت سایت در حدی که کافی باشه یعنی کافیه و مشکلی وجود نداره. مثلا شما در سایتهایی که با ASP.NET کار میکنن میرید با مشکلی از نظر سرعت برمیخورید و این سایتها براتون قابل استفاده نیستن و تفاوت مهمی با سایتهای PHP احساس میکنید؟
ما میتونیم با اسمبلی هم برنامه بنویسیم و سرعتمون حتی ده ها برابر بشه. ولی آیا کسی این کار رو میکنه و معقول هست این کار؟ پس مشخصه که سرعت در اینطور کارها معیار نیست. مگر اینکه واقعا سرعت اونقدری پایین بیاد که مشکل جدی و هزینه های سنگین ایجاد کنه.

binyaft
شنبه 28 اسفند 1389, 20:55 عصر
بلکه باید عملا کاربرد نشون بدید که مثلا فلان کار که در توسعهء وب نیاز هست در PHP چطور انجام میشه و بعد ببینیم آیا دات نت نمیتونه اون کار رو انجام بده

به نظر شما انعطاف پذیری آرایه ها در وب نیاز نیست!؟ در پی اج پی که خیلی عالی انجام میشه :D ، دات نت میتونه اینکار رو انجام بده!؟
یعنی بدون مشخص کردن نوع داده مشخصی بشه به ارایه مقدار داد!؟


$array=array('World',12,11.5,'Hello'); ?

MMSHFE
شنبه 28 اسفند 1389, 21:28 عصر
بله ساختار اجرای ASP.NET و محیط اون پیچیده تر و مجهزتر و منعطف تر از PHP هست. کنترل هوشمند و داینامیک بیشتری روی برنامه هست و چیزهای زیادی میتونن پشت صحنه بدون اینکه برنامه نویس حتی یک خط کد و یک فایل اضافه ببینه انجام بشن. درحالیکه PHP صرفا خط به خط برنامه رو از توی یکسری فایلهای متنی اجرا میکنه و هرچی هست و نیست برنامه نویس خودش باید به پروژه اضافه کنه و کدش موجود باشه.
پشت صحنهء ASP.NET یک سیستم فرمان و نظارت کامل نشسته و سرویسهای مختلفی رو منجمله تولید و اجرای کدهای لازم در مراحل مختلف اجرای برنامه ارائه میکنه.
پس فایل مقصد رو به اون صورت فیزیکی که شما میگید ویرایش نمیکنه، بلکه همهء اینا در محیط اجرای زنده و ناظر و هوشمند دات نت که کنترل زیادی در همهء مراحل اجرای برنامه داره در پشت صحنه انجام میشن و یا نهایتا کدهای اضافه شده در فایلهای کامپایل شده که بصورت بایت کد یا کد اجرایی حالا به هر شکلی هستن.
اشتباه نكنيد، اين سيستم فرمان و نظارت كامل كه ميگين پشت صحنه ASPdotNET نشسته، محيط IDE قدرتمندي به نام VSdotNET هست نه امكانات خود اين زبان! براي مثال، همين كلاس CompareValidator رو يكبار بصورت دستي (با NotePad) مورد استفاده قرار بدين تا ببينيد كه با چه دردسري براي توليد كنترل سمت كلاينت و سرور و هماهنگ كردن اونها مواجه خواهيد شد. امكانات VSdotNET رو با ASPdotNET اشتباه نگيرين! چنين امكاناتي در ZF هم تا جايي كه مستنداتش رو بررسي كردم، وجود داره. بحث اصلي سر اينه كه من دارم يك كد مينويسم كه بصورت دستي و بدون فريمورك اين كار رو انجام بده. كاري كه در دات نت امكان پذير نيست (بدون dotNET Framework بايد گفت ASPX = null).
موفق باشيد.

MMSHFE
شنبه 28 اسفند 1389, 21:39 عصر
ضمناً براي انعطاف پذيري آرايه ها هم توي دات نت اگه اشتباه نكنم راه معادل امكانات PHP اينطوري هست:


$x['id']=5;
$x['name']='ali';
$x['grade']=19.25;
$x['deleted']=false;
foreach($x as $key=>$value)
{
echo $key.'&nbsp;=>&nbsp;'.$value.'';
}

و معادلش در ASPX :

using System.Collections;
...
HashTable x = new HashTable();
x.Add("id",5);
x.Add("name","ali");
x.Add("grade",19.25);
x.Add("deleted",false);
foreach(DictionaryEntry de in x)
{
Console.WriteLine("Key = {0}, Value = {1}", de.Key, de.Value);
}

نكته: در صفحه وب به جاي كلاس كنسول بايد از كلاس خاصي كه براي نوشتن در صفحه وب هست استفاده كرد ولي اين مورد كه گفتم فقط يك مثاله كه ببينيد با چه دردسري به عناصر يك آرايه با انواع مختلف ميشه دسترسي داشت. تازه اين كل ماجرا نيست. خاصيت Value در عناصر DictionaryEntry از نوع object هست و بايد توسط عمليات Unboxing در زمان نياز، به نوع موردنظر تبديل بشه. مثلاً اگه بخوايم به مقدار عنصري از نوع عدد صحيح دسترسي داشته باشيم و اون رو توي يك عبارت محاسباتي استفاده كنيم، بايد قبلش (int) بنويسيم. اين يعني مقيد بودن كامل به نوع و دقيقاً معناي عدم آزادي عمل در نوع متغير رو خواهد داشت.
موفق باشيد.

eshpilen
شنبه 28 اسفند 1389, 21:46 عصر
اشتباه نكنيد، اين سيستم فرمان و نظارت كامل كه ميگين پشت صحنه ASPdotNET نشسته، محيط IDE قدرتمندي به نام VSdotNET هست نه امكانات خود اين زبان!

خیر به ویژوال استودیو ربطی نداره. بلکه اینا حاصل امکانات محیط اجرای دات نت و کل فریمورکش هست.


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



امكانات VSdotNET رو با ASPdotNET اشتباه نگيرين! چنين امكاناتي در ZF هم تا جايي كه مستنداتش رو بررسي كردم، وجود داره. بحث اصلي سر اينه كه من دارم يك كد مينويسم كه بصورت دستي و بدون فريمورك اين كار رو انجام بده. كاري كه در دات نت امكان پذير نيست (بدون dotNET Framework بايد گفت ASPX = null).
موفق باشيد.
اصلا ASP.NET که جزیی از دات نت هست بدون فریمورکش وجود خارجی نداره. درواقع این خود فریمورک هست و نه چیز دیگه. و این فرض به کل باطل هست و بی معنی که بخوایم چیزی رو که وجود خارجی نداره بدون این فریمورک فرض کنیم. شما یا دات نت رو دارید یا ندارید. دات نت کلا یک مجموعه هست که همش با هم و به هم وابسته هستن و به تنهایی فرض کردن هرکدام از این اجزاء، معنایی نداره و در واقعیت نه پیش میاد و نه کاربردی داره.
ضمنا اینکه میگید در دات نت امکان پذیر نیست مطمئن هستید؟ از کجا چنین حرفی میزنید؟ در دات نت هم شما میتونید هرچیزی رو که به سمت مرورگر میره و دریافت میشده خودتون دستی با تمام جزییات تولید و پردازش کنید. هیچ مجبور و محدود به استفاده از کنترل ها و رابطهای دات نت نیستید، اما وقتی این کنترل ها کافی و استفاده از اونا خیلی راحتتر و سریعتر هست دلیلی نداره این کار رو بکنید. حرف اشتباه شما این هست که میگید دات نت برنامه نویس رو محدود به استفاده از این کنترل ها و روشهای دات نت میکنه، درحالیکه این حرف کاملا بی اساس هست. شما میتونید در دات نت هم کلاس بنویسید، میتونید کدهای ایجکس رو خودتون مستقیما بنویسید، میتونید ورودی و خروجی رو مستقیما خودتون کنترل کنید، کی گفته نمیشه؟ چطوری نمیشه مثلا؟ مثلا من چیکار نمیتونم بکنم؟ فرستادن خروجی متن ساده به مرورگر که در دات نت امکان پذیر هست، و این متن میتونه هرکدی از نوع HTML یا جاوااسکریپت یا CSS و غیره باشه، تعریف کلاس هم امکان پذیر هست، پردازش مستقیم داده های ارسالی از مرورگر هم امکان پذیر هست. چیش کمه پس؟
مثلا همون ولیدیت رو بنده میتونم با کد خودم بنویسم. بنظر شما نمیشه؟ میخوای برات بذارم؟ یه چیزی مینویسم شبیه کد عادی PHP میشه. یعنی سمت کلاینت جاوااسکریپت بهش اضافه میکنم و سمت سرور هم خودم داده های POST رو بررسی میکنم.

eshpilen
شنبه 28 اسفند 1389, 22:09 عصر
using System.Collections;
...
HashTable x = new HashTable();
x.Add("id",5);
x.Add("name","ali");
x.Add("grade",19.25);
x.Add("deleted",false);
foreach(DictionaryEntry de in x)
{
Console.WriteLine("Key = {0}, Value = {1}", de.Key, de.Value);
}
اینطوری هم میشه نوشت (مجبور نیستی از متد Add استفاده کنی):

Hashtable x = new Hashtable();
x["id"]=5;
x["name"]="ali";
x["grade"]=19.25;
x["deleted"]=false;
foreach (DictionaryEntry de in x)
{
Console.WriteLine("Key = {0}, Value = {1}", de.Key, de.Value);
}


ولي اين مورد كه گفتم فقط يك مثاله كه ببينيد با چه دردسري به عناصر يك آرايه با انواع مختلف ميشه دسترسي داشت.کدوم دردسر؟ بگید دقیقا کجاش و چرا دردسر داره؟


تازه اين كل ماجرا نيست. خاصيت Value در عناصر DictionaryEntry از نوع object هست و بايد توسط عمليات Unboxing در زمان نياز، به نوع موردنظر تبديل بشه. مثلاً اگه بخوايم به مقدار عنصري از نوع عدد صحيح دسترسي داشته باشيم و اون رو توي يك عبارت محاسباتي استفاده كنيم، بايد قبلش (int) بنويسيم. اين يعني مقيد بودن كامل به نوع و دقيقاً معناي عدم آزادي عمل در نوع متغير رو خواهد داشت.یعنی چی؟ عدم آزادی عمل در چه کاری؟ مثلا کجا ما رو محدود میکنه یا مشکلی پیش میاره؟ مثال عملی بیارید.

eshpilen
شنبه 28 اسفند 1389, 22:20 عصر
راستی این دوستان که تاحالا گیر داده بودن به این سینتاکس آرایه ها فکر کنم تازه متوجه شدن که اشتباه کردن و درواقع در دات نت هم میشه به این شکل یک آرایه متشکل از عناصر با نوع متفاوت داشت. سینتاکسش هم درواقع خیلی شبیه PHP هست و نوشتنش چندان پیچیده تر و حجیم تر نیست همونطور که مشاهده میکنید.
البته بنده هم در فکر این داستان و ذخیره با نوع پایهء Object بودم که بگم، اما وقت و حالش رو نداشتم که خوشبختانه شما کار رو بجای بنده انجام دادید!! خدایی من خودم کف کردم گفتم دمت گرم بابا از دات نت دفاع کردی بیشتر تا اینکه ازش ایراد گرفته باشی :قهقهه:
چون بخش بزرگی از مسئله رو شما خودت حل کردی. فقط باقی موند یکسری جزییات مثل Cast کردن که اونم بحث تخصصی خودش رو داره بنظرم. در گذشته و حال بر سر اینطور تبدیل انواع بصورت خودکار یا صریح بحث زیاد هست و طرفداران و مخالفان خودش رو داره (البته بنظرم بستگی به زبان و حیطه و کاربرد هم داره)، چون بعضی معتقد هستن اگر تبدیل نوع بصورت خودکار انجام بشه احتمال یکسری حفره های امنیتی و باگهای پنهان بالا میره. مثلا جایی که دیتای شما باید رشته باشه بجاش عدد میاد و برنامه خطا نمیده و شما هم متوجه نمیشی و عدد بصورت خودکار به رشته تبدیل میشه و روش عملیات صورت میگیره و در دیتابیس درج میشه و غیره، درحالیکه این نشانهء یک خطا و حفره در برنامه بوده که به این شکل از چشم شما پنهان میمونه و بعدا باگیابی اینطور چیزها هم میتونه بسیار مشکل و پیچیده تر باشه. خلاصه داستانهایی داره واسه خودش.

V0R73X
شنبه 28 اسفند 1389, 22:49 عصر
خودتون می گید 90% امنیت asp رو خودش برامون برقرار می کنه و اینم خودش یعنی محدودیت
نه اینطور نیست شما حق انتخاب داری: خودت از سیستم امنیت ASP.NET استفاده کنی و آسانی کار و امنیت رو تضمین کنی (امتحان شده و 100% تضمین شدس) یا اگر به هر دلیلی بهش اطمینان نداری مجبور نیستی!! میتونی سیستم امنیت خودتو برقرار کنی! کداشو پشت صحنه بنویس، یا علی...

توی پی اچ پی از آرایه ها به عنوان آرایه ، استک،صف،دیکشنری و ... میشه استفاده کرد اما توی asp.net نمیشه اینجوری و با این انعطاف ازش استفاده کرد بلکه برای هرککدوم یه کلاس مخصوص داره .اینکه
این یعنی اینکه asp یک زبان نوع قوی است، مثل PHP همینجور کشک نیست که هر چی میخوای بکنی تو آرایه بعدش برنامت دچار ارور منطقی بشه و خروجی یه چیز هچل هفت در بیاد نفهمی از کجا خوردی!!
به راحتی میشه اینکارو کرد: Dim a as new Dictionary(of YourType)
Dim b as new List(Of Anything)
بعدش اگه بخوام میتونم یک لیست رو با اعضای این آرایه پر کنم به همین راحتی:
List1.DataSource=b
List1.DataBind()
مشتاقم بدونم تو php اینکار چطور امکان پذیره؟ و آیا عمل Binding هر موقع ما بخوایم صورت میگیره یا اینکه نمیتونیم کنترلش کنیم؟؟

مثلا من با اطمینان کامل میگم css,jquery,js,ajax,Mysql رو یاد دارم! به نظرت این عجیبه!؟ این ها فقط چند تا دستور العمل داره یاد بگیری تمومه ، بقیش رو باید تجربه کنی تا قدر تر بشی ، مثلا همین آژاکس ، چی داره مگه !؟
معلومه که شما عمقی مطالب رو نمیری دنبالش الان بهتون اثبات میکنم: بدون دوز و کلک، میدونید XMLHttpRequest چی هست و چطور میشه باهاش کار کرد؟؟ نه خدایی میدونی؟؟ نری گوگل کنی بزاریش اینجا! بعدش، آیا شما طرز استفاده از تمام کنترل های Ajax Toolkit رو بلدی؟؟ جون من بلدی؟؟ آیا میتونی با JS و نه JQuery افکت انیمیشن بسازی؟اینا دیگه یه مشت دستورالعمل نیست عزیز من...

اين سيستم فرمان و نظارت كامل كه ميگين پشت صحنه ASPdotNET نشسته، محيط IDE قدرتمندي به نام VSdotNET هست
خودتون دارین میگین IDE، آخه یه IDE چیکار به کد پشت صحنه داره؟ آیا میدونید تعریف IDE چیست؟

آقایون از دوستان عزیز خواهش میکنم در جواب به موضوعات مطرح شده زیر آبی نروند! اگر من ضعفی رو مطرح کردم خواهشا به همون ضعف پاسخ بدین نه اینکه یه ضعف دیگه از ASP جلو بکشین بگین "این به اون در"!!!
من جواب انعطاف پذیری آرایه ها رو دادم، بقیش رو هم یار عزیزم Eshpilen گفت، شما هم جواب امنیت Php رو بدهید، لطفا:چشمک:

V0R73X
شنبه 28 اسفند 1389, 22:51 عصر
راستی مشکلات بعدی که باید در نظر گرفته شوند:
1.ASP به دو زبان C# و VB نوشته میشه PHP چی؟؟
2.بعدا این پست رو ویرایش میکنم و نکات بعدی رو مینویسم!!

MMSHFE
شنبه 28 اسفند 1389, 23:31 عصر
با سلام، مسئله اصلي همينه كه ASPX اصلاً زبان نيست و كد پشت صحنه بايد با يك زبان ديگه مثل #C يا VB نوشته بشه ولي PHP خودش يك زبانه و كدهاي اون هم با زبان PHP نوشته ميشن.
اينقدر هم با كلمات بازي نكنيد. من خوب ميدونم كه IDE يعني چي! اينكه ميگم VSdotNET كارها رو انجام ميده بخاطر اينه كه شما وقتي يك پروژه رو توي اون باز ميكنيد، به كل فايلهاي اون دسترسي داره و درصورت نياز براي هماهنگ سازي، ميتونه يك فايل ديگه رو همزان با تغييرات فايل جاري، تغيير بده و تنظيم كنه و اين ربطي به ASPX نداره و جزو امكانات IDE هست. درست مشابه امتيازاتي كه در ZF در اختيار دارين. اين همه هم بقيه رو به جون خودتون قسم ندين. خوشبختانه توي PHP به قدري با ريزه كاريهاي برنامه نويسي درگير ميشين كه اگه كسي كاملاً XMLHTTPRequest رو درك نكنه، نميتونه به شكل درست ازش استفاده كنه. من خودم شخصاً تابحال از jQuery و AJAX Toolkit اصلاً استفاده نكردم و همه چيز رو خودم كدنويسي ميكنم. براي اين كار هم كتابخانه شخصي خودم رو ايجاد كردم. كليه منابع رسمي لازم رو هم براي درك كامل XMLHTTPRequest و روش تعامل مرورگرهاي مختلف با اون مطالعه كردم و بعد ازش استفاده ميكنم. به جرأت ميتونم بگم يه چيزي حدود 6-7 گيگابايت PDF زبان اصلي درمورد PHP و JS و DOM و CSS و... دارم و همه اش (تأكيد ميكنم همه اش) رو خوندم تا بتونم به شكل درست ازشون استفاده كنم. پس بي دليل نياين بگين بدون اطلاع كار ميكنيم. احتمالاً در اين مورد دوست خوبم جناب eshpilen بتونن حرف منو تأييد كنن (چون فكر ميكنم سبك كدنويسي بنده رو با مستندات سايت رسمي PHP و همچنين JS مقايسه كردن). بعلاوه PHP درسته كه براي نوع متغير سختگيري نميكنه ولي به اين معني هم نيست كه نشه نوع رو تشخيص داد. اگه اينطور بود عملگرهايي مثل === و ==! و... توش وجود نداشتن كه علاوه بر مقدار، نوع رو هم بررسي ميكردن. بحث سر سادگي و سهولت استفاده از متغيرهاي با نوع متغير هست. مثلاً شما توي dotNET نميتونيد از يك متغير همزمان براي ذخيره سازي رشته و عدد و... استفاده كنيد. حالا شايد با آرايه اي از نوع object و عمليات casting بشه تا حدودي (اون هم با كدهاي اضافه تر به دليل انجام عمليات casting در زمان نياز به مقدار متغير) بشه اين مشكل رو براي آرايه ها حل كرد ولي براي يك متغير، هيچ راهي ندارين كه بتونه انواع مختلف مقادير رو بدون casting بپذيره. تازه اين يكي از مزاياي PHP هست. درمورد آرگومانهاي ارجاعي متدها چي ميگين؟ مثلاً اين متد رو ببينيد:


function test($value)
{
echo $value;
$value++;
echo $value;
}
$x = 5;
test($x);
//$x is still 5
$y = 5;
test(&$y);
//$y is now 6

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

UnnamE
شنبه 28 اسفند 1389, 23:34 عصر
راستی مشکلات بعدی که باید در نظر گرفته شوند:
1.ASP به دو زبان C# و VB نوشته میشه PHP چی؟؟

asp نيست و asp.net
بزار اين مشكل رو reverse كنيم، يعني php خودش زبان ـه و براي استفاده لازم ني زبون ديگه اي ياد گرفت

البته من نه php‌ام نه asp.net كلا سوال كردي گفتم جواب بدم ثواب داره خيلي!

UnnamE
یک شنبه 29 اسفند 1389, 00:29 صبح
اين سورس طفلي رو نيگاه كنيد

<?php
abstract class CMS_Content_Item_Abstract
{
public $id;
public $name;
public $parent_id = 0;
protected $_namespace = 'page';
protected $_pageModel;
const NO_SETTER = 'setter method does not exist';
public function __construct ($page = null)
{
$this->_pageModel = new Model_Page();
if (null != $page) {
$this->loadPageObject($page);
}
}
public function loadPageObject ($page)
{
if (is_object($page) && $page instanceof Zend_Db_Table_Row) {
$row = $page;
$this->id = $row->id;
} else {
$this->id = intval($page);
$row = $this->_getInnerRow();
}
if ($row) {
if ($row->namespace != $this->_namespace) {
throw new Zend_Exception('Unable to cast page type:' . $row->namespace . ' to type:' . $this->_namespace);
}
$this->name = $row->name;
$this->parent_id = $row->parent_id;
$contentNode = new Model_ContentNode();
$nodes = $row->findDependentRowset($contentNode);
if ($nodes) {
$properties = $this->_getProperties();
foreach ($nodes as $node) {
$key = $node['node'];
if (in_array($key, $properties)) {
// try to call the setter method
$value = $this->_callSetterMethod($key, $nodes);
if ($value === self::NO_SETTER) {
$value = $node['content'];
}
$this->$key = $value;
}
}
}
} else {
throw new Zend_Exception("Unable to load content item");
}
}
protected function _getInnerRow ($id = null)
{
if ($id == null) {
$id = $this->id;
}
return $this->_pageModel->find($id)->current();
}
protected function _getProperties ()
{
$propertyArray = array();
$class = new Zend_Reflection_Class($this);
$properties = $class->getProperties();
foreach ($properties as $property) {
if ($property->isPublic()) {
$propertyArray[] = $property->getName();
}
}
return $propertyArray;
}
protected function _callSetterMethod ($property, $data)
{

$method = Zend_Filter::filterStatic($property, 'Word_UnderscoreToCamelCase');
$methodName = '_set' . $method;
if (method_exists($this, $methodName)) {
return $this->$methodName($data);
} else {
return self::NO_SETTER;
}
}
public function toArray ()
{
$properties = $this->_getProperties();
foreach ($properties as $property) {
$array[$property] = $this->$property;
}
return $array;
}
public function save ()
{
if (isset($this->id)) {
$this->_update();
} else {
$this->_insert();
}
}
protected function _insert ()
{
$pageId = $this->_pageModel->createPage($this->name, $this->_namespace, $this->parent_id);
$this->id = $pageId;
$this->_update();
}
protected function _update ()
{
$data = $this->toArray();
$this->_pageModel->updatePage($this->id, $data);
}
public function delete ()
{
if (isset($this->id)) {
$this->_pageModel->deletePage($this->id);
} else {
throw new Zend_Exception('Unable to delete item; the item is empty!');
}
}
}
?>
ته ساده اي هستش، فقط خواستم ببينم معادل اش در .net چجوري هست!

binyaft
یک شنبه 29 اسفند 1389, 08:17 صبح
معلومه که شما عمقی مطالب رو نمیری دنبالش الان بهتون اثبات میکنم: بدون دوز و کلک، میدونید XMLHttpRequest چی هست و چطور میشه باهاش کار کرد؟؟ نه خدایی میدونی؟؟ نری گوگل کنی بزاریش اینجا! بعدش، آیا شما طرز استفاده از تمام کنترل های Ajax Toolkit رو بلدی؟؟ جون من بلدی؟؟ آیا میتونی با JS و نه JQuery افکت انیمیشن بسازی؟
این عمقی که گفتی الان یعنی چه!؟
بدون کلک : همون اوایل رفتم دنبالش دیدم چیزه تخیلی ای هست ، حداقل من برای پیاده سازیش مشکل زیاد داشتم! وقتی جی کئوری هست دیگه چرا xmlhttprequest!؟
آره ، اتفاقا یه سایت کامل نوشته بودم ( پروژه شخصی ) ، فول آژاکس بود!
چه نیازی هست که من بیام 30 خط کد بنویسم برای ارسال یه درخواست آژاکس!؟
خب با جی کئوری مینویسم ، یه خط!! ( write less , do more )
$('#load-data').load('Server.php',{'name':'reza','id':123}) ;
دیدی چقد راحته!؟ تازه سرو کله زدن با اون IE ــه نفهم هم خودش به تنهایی پیر میکنه آدمو ( با جی کئوری کراس بروزر میشه انجام داد )

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


پ.ن : یه کم از این حالت تهاجمی بیا بیرون ، اینجا انجمنه!

binyaft
یک شنبه 29 اسفند 1389, 08:19 صبح
1.ASP به دو زبان C# و VB نوشته میشه PHP چی؟؟
فکر کنم منظورت این هست که .net رو میشه رو 2 تا زبان یا بیشتر پیاده کرد! asp خودش رو دات نت هست!

من جواب انعطاف پذیری آرایه ها رو دادم، بقیش رو هم یار عزیزم Eshpilen گفت، شما هم جواب امنیت Php رو بدهید، لطفا


Dim StriTest as string()={"Str1", "Str2"}
شما فقط یه ارایه نوشتی با نوع داده str ، نمیدونم شاید تعریفی از انعطاف ندارید یا با یه کلمه ی دیگه اشتباه گرفتید!
شما که اینقد تسلط داری رو PHP و کامل میشناسیش و میگی امنیت پایینی داره ، یه سوراخ نام ببر من خودم جوابتو میدم! :D
جناب Eshpilen که چیزی نگفت ، فقط کد جناب MMSHFE رو تایید کرد!

قایون از دوستان عزیز خواهش میکنم در جواب به موضوعات مطرح شده زیر آبی نروند! اگر من ضعفی رو مطرح کردم خواهشا به همون ضعف پاسخ بدین نه اینکه یه ضعف دیگه از ASP جلو بکشین بگین "این به اون در"!!!
یه مورد زیر آبی مطرح کنید لطفا!
شما کودوم ضعف رو مطرح کردید!؟
ما که هنوز نگفتیم این به اون در!

eshpilen
یک شنبه 29 اسفند 1389, 14:17 عصر
با سلام، مسئله اصلي همينه كه ASPX اصلاً زبان نيست و كد پشت صحنه بايد با يك زبان ديگه مثل #C يا VB نوشته بشه ولي PHP خودش يك زبانه و كدهاي اون هم با زبان PHP نوشته ميشن.

خب حالا که چی؟ نتیجهء عملی؟
بحث ما اینجا مقایسهء روش انجام پروژه های سایت و اپلیکیشن وب هست.
تاحالا هم موردی ارائه نشده که توسط ASP.NET قابل انجام نباشه.
تاحالا فقط یک مورد بنده ارائه کردم که دیدید با ASP.NET خیلی راحت و سریع و تمیز و سازگارتر با اصول مهندسی نرم افزار انجام میشه. و هنوز شما هیچ موردی نیاوردید جز بند کردن به تعاریف و جزییات بدون نشون دادن کاربرد واقعی و نمونه های کامل.
از دوستان هم تقاضا میکنم لطفا هرکدی میذارن کامل باشه. یعنی یک یا چند صفحهء وب کامل باشه که عملیات خاصی رو انجام میده. از طرف دیگه فرضا ممکنه طرف PHP بلد نباشه که بخواد قطعه کد بخونه و بفهمه چیکار میکنه. کاری که ما اینجا میکنم ارائهء مثالهای واقعی هست که کار خاصی رو که جزیی از کارهای مورد نیاز در ساختن یک وبسایت یا اپلیکیشن وب هست انجام میده. به تفاوت های درونی کد و سطح پایین کاری نداریم. چون اینطور مقایسه درست نیست. بطور مثال ممکنه شما مجبور باشید در PHP با ساختارهای سطح پایین زیاد کار کنید و بنابراین سینتاکس و انعطاف چیزهای ریز و سطح پایین براتون مهم باشه، اما بیشتر کارها در ASP.NET در سطح بالاتری یا کلا بصورت خودکار انجام میشن و بنابراین برای دات نت کارها این جزییات در عمل چندان مهم نیستن و فرضا نهایتا فقط 10% کار رو بطور متوسط در عمدهء پروژه های تجاری تشکیل میدن.


اينقدر هم با كلمات بازي نكنيد. من خوب ميدونم كه IDE يعني چي! اينكه ميگم VSdotNET كارها رو انجام ميده بخاطر اينه كه شما وقتي يك پروژه رو توي اون باز ميكنيد، به كل فايلهاي اون دسترسي داره و درصورت نياز براي هماهنگ سازي، ميتونه يك فايل ديگه رو همزان با تغييرات فايل جاري، تغيير بده و تنظيم كنه و اين ربطي به ASPX نداره و جزو امكانات IDE هست.بنده اون مورد CompareValidator رو تست کردم و آزمایشی انجام دادم تا مطمئن بشم به ویژوال استودیو وابسته نیست. شما هنوز اصرار دارید که ویژوال استودیو کد سمت سرور رو جایی در یکی از فایلهای برنامه اضافه میکنه؟
اگر خواستید براتون میگم چطور تست کردم و شما بهم بگید ویژوال استودیو چطور و کجا میتونسته کاری در این زمینه بکنه.


خوشبختانه توي PHP به قدري با ريزه كاريهاي برنامه نويسي درگير ميشين كه اگه كسي كاملاً XMLHTTPRequest رو درك نكنه، نميتونه به شكل درست ازش استفاده كنه. من خودم شخصاً تابحال از jQuery و AJAX Toolkit اصلاً استفاده نكردم و همه چيز رو خودم كدنويسي ميكنم. براي اين كار هم كتابخانه شخصي خودم رو ايجاد كردم. كليه منابع رسمي لازم رو هم براي درك كامل XMLHTTPRequest و روش تعامل مرورگرهاي مختلف با اون مطالعه كردم و بعد ازش استفاده ميكنم. به جرأت ميتونم بگم يه چيزي حدود 6-7 گيگابايت PDF زبان اصلي درمورد PHP و JS و DOM و CSS و... دارم و همه اش (تأكيد ميكنم همه اش) رو خوندم تا بتونم به شكل درست ازشون استفاده كنم. پس بي دليل نياين بگين بدون اطلاع كار ميكنيم.منم گفتم PHP برای یادگیری خوبه. اما نمیخوام سر هر پروژه و یه عمری با اینطور چیزای سطح پایین سر و کله بزنم. خیلی زبانها و حیطه های جالب دیگه هست که میشه بجاش یاد گرفت که توانایی های آدم رو گسترش میدن. ضمنا برای کار تجاری، مهم انجام هرچه سریعتر و راحتتر و امن تر کارهاست. بحث منم در اینجا همینه و بحث دیگه ای ندارم. اگر میگید PHP برای یادگیری خوبه، منم قبول دارم. اگر میگید کاربردهای خودش رو داره و مفیده و باید یاد گرفت، منم قبول دارم. من الان دوتا ابزار در اختیار دارم که میتونم از هرکدوم درجایی که مناسب تر هست استفاده کنم، اما شما یا تنها یک ابزار در اختیار دارید یا میخواید بگید فقط یکی از اونها برای تمام یا بیشتر کارها مناسب هست، و بنده این رو قبول ندارم. البته نه اینکه بگم 100% نظرم درست هست، اما شواهد و استنباط من این بوده و حالا هم اینجا هستیم برای همین کار و مقایسه و اینکه ببینیم نظرمون چطور و تا چه حد تغییر میکنه. نظر منکه تا اینجا تغییر نکرده، چون هنوز چیز زیاد و مهمی مطرح نشده جز جر و بحث سر جزییات و یک مورد مناسب هم که بود فقط بنده مطرح کردم که در اون تاحالا برتری ASP.NET رو دیدم. اگر بحث بر سر جزییات باشه بالاخره هر زبان نکاتی داره که دیگری درش ضعف داره. مثلا در یه چیزهای پایه ای و مهمی مثل یونیکد و مالتی ترد PHP هنوز نقص داره. همون رگولار اکسپرشن حروف فارسی رو که گفتم اگر کسی تونست بنویسه تا بهش بگم اشکالش در کجاست و اونوقت احتمالا خواهید دید که حتی یک نفر برنامه نویس PHP در اینجا پیدا نمیشه که بدونه چرا این رگولار اکسپرشن هایی که مینویسن اشکال داره و اشکالش چیه. شما هنوز فرق ساپورت Native یونیکد رو با چنتا تابع کمکی و کدهای سرهم بندی شده توسط افراد بی اطلاع نمیدونید.


احتمالاً در اين مورد دوست خوبم جناب eshpilen بتونن حرف منو تأييد كنن (چون فكر ميكنم سبك كدنويسي بنده رو با مستندات سايت رسمي PHP و همچنين JS مقايسه كردن). بعلاوه PHP درسته كه براي نوع متغير سختگيري نميكنه ولي به اين معني هم نيست كه نشه نوع رو تشخيص داد. اگه اينطور بود عملگرهايي مثل === و ==! و... توش وجود نداشتن كه علاوه بر مقدار، نوع رو هم بررسي ميكردن. بحث سر سادگي و سهولت استفاده از متغيرهاي با نوع متغير هست. مثلاً شما توي dotNET نميتونيد از يك متغير همزمان براي ذخيره سازي رشته و عدد و... استفاده كنيد. حالا شايد با آرايه اي از نوع object و عمليات casting بشه تا حدودي (اون هم با كدهاي اضافه تر به دليل انجام عمليات casting در زمان نياز به مقدار متغير) بشه اين مشكل رو براي آرايه ها حل كرد ولي براي يك متغير، هيچ راهي ندارين كه بتونه انواع مختلف مقادير رو بدون casting بپذيره.زیاد به جزییات گیر ندید. بنظر بنده معیار بقدر کافی گسترده و دقیقی نیستن و بحثشون هم خیلی تخصصی و سطح پایین هست که حتی بنده هم بهشون تسلط کافی ندارم. دیشب چنتا مقاله خوندم ولی بازم بحث پیچیده تر و گسترده تر از این حرفهاست. بهتره به چیزی که واقعا میتونیم و توش صلاحیت داریم و بعد عملی تر و واقعی تری نسبت به خودمون بپردازیم.


تازه اين يكي از مزاياي PHP هست. درمورد آرگومانهاي ارجاعي متدها چي ميگين؟ مثلاً اين متد رو ببينيد:


function test($value)
{
echo $value;
$value++;
echo $value;
}
$x = 5;
test($x);
//$x is still 5
$y = 5;
test(&$y);
//$y is now 6

چيزي كه اصلاً توي دات نت نيست. آرگومانهاي شما يا معمولي (مقداري هستن) يا ref و out (ارجاعي) بنابراين يا تغييرات روي پارامترها در بدنه متد، به آرگومانهاي متناظر اونها منتقل ميشه و يا نميشه ولي در PHP ميتونيد مشخص كنيد كه تغييرات پارامترها در بدنه متد روي آرگومان متناظر با اون اعمال بشه يا نشه (برحسب تمايلتون و بدون نياز به تغيير بدنه متد).
موارد از اين دست هم زياده كه به مرور ذكر خواهد شد. خوشحال ميشم براي اين موارد هم در دات نت معادلي ذكر بشه.بنظر من مثالی که زدید اصلا روش برنامه نویسی اصولی ای نیست. خوانایی و منطق برنامه رو مخدوش میکنه.
رفتار تابع باید روشن و ثابت باشه. و استفاده از چند روش رفتار به این شکل، مزیت و کاربرد آنچنانی نداره در مقابل اینکه خوانایی و باگیابی برنامه رو دشوار میکنه.
بنظرم برای تمام این قبیل کارها راههای تمیزتر و خواناتر و اصولی تری باشه. تایپ چند کاراکتر اضافه ارزشش رو داره که این استانداردها رو رعایت کنیم.
بطور مثال در این مورد تابع شما میتونه مقدار متغییر رو هم در پایان با دستور return برگردونه و هر وقت خواستید مقدار متغییر رو در خارج از تابع تغییر بدید کافیه که مقدار بازگشتی رو بهش نسبت بدید:
$x=test($x);
این روش استاندارد و کاملا متداولی برای اینطور کارها هست که همه جا میبینید و هیچوقت بنده ندیدم در هیچ کتابخانه و فریمورکی بیان و از روش شما استفاده کنن و واضحا روش اشتباهی هست از نظر برنامه نویسی اصولی. تقریبا مثل اینکه میگن از دستور goto استفاده نکنید و بجاش از حلقه استفاده کنید. البته goto هم در معدودی جاها ممکنه مناسب باشه ولی بهرحال کاربردش خیلی کم هست و اینطور چیزها جزییات کوچکی بحساب میان درکل و شاید در یک فریمورک و زبان و حیطه و سطح بالای کاری مثل دات نت، اهمیت و کاربرد اونها خیلی خیلی کمتر هم باشه (حدش میل میکند به صفر!).

eshpilen
یک شنبه 29 اسفند 1389, 14:27 عصر
اين سورس طفلي رو نيگاه كنيد
...
ته ساده اي هستش، فقط خواستم ببينم معادل اش در .net چجوري هست!
لطفا توضیح بیشتری بدید.
ضمنا بنده هنوز یادگیری دات نت رو هم کامل نکردم، چه برسه به اینکه باهاش MVC کار کرده باشم.
اما تاجایی که میدونم برای دات نت هم امکانات MVC وجود داره. شاید بهتر باشه در تالار ASP.NET مطرح کنید یا اگر کسی که وارد هست این بحث رو میخونه میتونه پاسخ بده.
ضمنا این منبع رو هم الان پیدا کردم: http://en.wikipedia.org/wiki/ASP.NET_MVC_Framework

MMSHFE
یک شنبه 29 اسفند 1389, 20:23 عصر
خب حالا که چی؟ نتیجهء عملی؟
بنده اون مورد CompareValidator رو تست کردم و آزمایشی انجام دادم تا مطمئن بشم به ویژوال استودیو وابسته نیست. شما هنوز اصرار دارید که ویژوال استودیو کد سمت سرور رو جایی در یکی از فایلهای برنامه اضافه میکنه؟
اگر خواستید براتون میگم چطور تست کردم و شما بهم بگید ویژوال استودیو چطور و کجا میتونسته کاری در این زمینه بکنه.
خوشحال ميشم بدونم چطور تست كردين. تا درموردش بحث و تبادل نظر كنيم.


مثلا در یه چیزهای پایه ای و مهمی مثل یونیکد و مالتی ترد PHP هنوز نقص داره. همون رگولار اکسپرشن حروف فارسی رو که گفتم اگر کسی تونست بنویسه تا بهش بگم اشکالش در کجاست و اونوقت احتمالا خواهید دید که حتی یک نفر برنامه نویس PHP در اینجا پیدا نمیشه که بدونه چرا این رگولار اکسپرشن هایی که مینویسن اشکال داره و اشکالش چیه. شما هنوز فرق ساپورت Native یونیکد رو با چنتا تابع کمکی و کدهای سرهم بندی شده توسط افراد بی اطلاع نمیدونید.
درمورد RegEx بايد بگم كه من خودم يك مورد براي كارهاي شخصي خودم نوشتم كه همه حروف فارسي رو تشخيص ميده و حتي حروفي مثل ك و ي كه در فارسي و عربي با هم يكسري تفاوتها دارن رو هم ميتونه از هم متمايز كنه ولي وقتي نميدونيد اين توابع جزو خود زبان PHP هستن و اونها رو با چندتا تابع به قول خودتون كمكي و كدهاي سرهم بندي شده توسط افراد بي اطلاع اشتباه ميگيرين، بهتره در اين مورد با هم بحث نكنيم.


زیاد به جزییات گیر ندید. بنظر بنده معیار بقدر کافی گسترده و دقیقی نیستن و بحثشون هم خیلی تخصصی و سطح پایین هست که حتی بنده هم بهشون تسلط کافی ندارم. دیشب چنتا مقاله خوندم ولی بازم بحث پیچیده تر و گسترده تر از این حرفهاست. بهتره به چیزی که واقعا میتونیم و توش صلاحیت داریم و بعد عملی تر و واقعی تری نسبت به خودمون بپردازیم.
بنظر من مثالی که زدید اصلا روش برنامه نویسی اصولی ای نیست. خوانایی و منطق برنامه رو مخدوش میکنه.
رفتار تابع باید روشن و ثابت باشه. و استفاده از چند روش رفتار به این شکل، مزیت و کاربرد آنچنانی نداره در مقابل اینکه خوانایی و باگیابی برنامه رو دشوار میکنه.
بنظرم برای تمام این قبیل کارها راههای تمیزتر و خواناتر و اصولی تری باشه. تایپ چند کاراکتر اضافه ارزشش رو داره که این استانداردها رو رعایت کنیم.
بطور مثال در این مورد تابع شما میتونه مقدار متغییر رو هم در پایان با دستور return برگردونه و هر وقت خواستید مقدار متغییر رو در خارج از تابع تغییر بدید کافیه که مقدار بازگشتی رو بهش نسبت بدید:
$x=test($x);
این روش استاندارد و کاملا متداولی برای اینطور کارها هست که همه جا میبینید و هیچوقت بنده ندیدم در هیچ کتابخانه و فریمورکی بیان و از روش شما استفاده کنن و واضحا روش اشتباهی هست از نظر برنامه نویسی اصولی. تقریبا مثل اینکه میگن از دستور goto استفاده نکنید و بجاش از حلقه استفاده کنید. البته goto هم در معدودی جاها ممکنه مناسب باشه ولی بهرحال کاربردش خیلی کم هست و اینطور چیزها جزییات کوچکی بحساب میان درکل و شاید در یک فریمورک و زبان و حیطه و سطح بالای کاری مثل دات نت، اهمیت و کاربرد اونها خیلی خیلی کمتر هم باشه (حدش میل میکند به صفر!).اونوقت ميشه بگين اگه به جاي يك مقدار قرار باشه چند مقدار تغيير كنن چه كاري ميكنيد؟ چندتا رو ميتونيد با return برگردونيد؟ حتماً ميدونيد كه بعد از اجراي return، از متد خارج ميشيم و نميشه بيش از يك return توي متد اجرا كرد.
بعد هم چرا اينهمه ميگين توي PHP بايد يك عمر با همه موارد سطح پايين سر و كله زد؟ من خودم براي كارهاي رايج توي PHP كلاس يا متد لازم رو مينويسم و به صورت مجموعه اي از كتابخانه هاي شخصي براي كارهاي خودم در آوردم و هر زمان نياز داشته باشم، كد مربوطه رو فراخواني ميكنم و نميخواد كه دوباره از ابتدا بنويسم.
دقت كنيد كه برخلاف تصور برخي، PHP هم كاملاً يك زبان ساخت يافته است و برخلاف ASPX كه مجبورين شئ گرا بنويسين، توي PHP اين اجبار وجود نداره ولي PHP به طور كامل از شئ گرايي پشتيباني ميكنه و درصورت نياز براي برنامه نويسي شئ گرا، محدوديتي از اين نظر نخواهيد داشت. اين همه هم بحث Multi-thread رو مطرح ميكنيد، يك مثال مطرح كنيد ببينيم آيا موردي وجود داره كه نشه با AJAX معادلسازيش كرد كه شما اين مسئله رو اينطور چماق ميكنيد و ميخواين توي سر PHP بكوبيد؟


همون رگولار اکسپرشن حروف فارسی رو که گفتم اگر کسی تونست بنویسه تا بهش بگم اشکالش در کجاست و اونوقت احتمالا خواهید دید که حتی یک نفر برنامه نویس PHP در اینجا پیدا نمیشه که بدونه چرا این رگولار اکسپرشن هایی که مینویسن اشکال داره و اشکالش چیه. شما هنوز فرق ساپورت Native یونیکد رو با چنتا تابع کمکی و کدهای سرهم بندی شده توسط افراد بی اطلاع نمیدونید.
راستي، اينقدر هم با اطمينان درباره عدم صلاحيت PHP كارها صحبت نكنيد. كلي صحبت كردن اصلاً عادت خوبي نيست.
موفق باشيد.

ghasemweb
سه شنبه 02 فروردین 1390, 01:10 صبح
نخود نخود هر که رود خونه خود .........!

V0R73X
سه شنبه 02 فروردین 1390, 06:53 صبح
بعلاوه PHP درسته كه براي نوع متغير سختگيري نميكنه ولي به اين معني هم نيست كه نشه نوع رو تشخيص داد. اگه اينطور بود عملگرهايي مثل === و ==! و... توش وجود نداشتن كه علاوه بر مقدار، نوع رو هم بررسي ميكردن.ببینید حرف منو تغییر ندین من نگفتم که نمیشه نوع متغیر رو تشخیص داد گفتم که PHP نوع ضعیف هست، یعنی این که شما برای جلوگیری از ارور منطقی باید هی ازین عملگرایی که گفتین استفاده کنین تا حساب متغیر ها دستتون باشه، ولی ASP.NET نوع قویه بنابراین یه بار Define میکنی خودتو راحت میکنی ارور ها رو خودش Debug میکنه

asp نيست و asp.net

میشه خواهش کنم آف نزارید؟ ASp.Net به طور خلاصه ASP هم گفته میشه (چون زبان یا نرم افزار دیگری با همین نام ولی بدون این پسوند وجود نداره)، مثل C# و C#.Net خودتون هم میدونید...

چرا هست ، خلاصه اینایی که گفتی چیزی نیست! علوم کامپیوتر پایانی نداره اما بعضی از اونا متنوع تر هستند مثل PHP! مثل ASP!!! شما آیا میتونید تو سایتتون مپ بزارین؟ میتونین سرور SMTP درست کنین؟ میتونین از وبسایت میل بفرستید؟ میتونین کد کپچا بزارین؟ اینکه تعریف شما از یه مشت دستورالعمل چیه، احتمالا با تعریف من فرق داره. درسته، دنیای کامپیوتر روی یه مشت کد 0 و 1 بنا شده، پس همه اینا در نهایت یه مشت کد هستند، ولی طرز استفاده ازشون دیگه به صورت کدنویسی خالص نیست، بعضی چیزا از بیرون میان، بعضیا رو باید درک کرد، بعضیا نیاز به یک سری نرم افزار دارن. نمیشه گفت یه مشت دستور، همونطوری که خودتون عرض کردین، بحث تجربه هم هست. در مورد XMLHttpRequest هم فقط گفتم بلد هستین یا نه، نگفتم که باید ازش استفاده کرد!!

فکر کنم منظورت این هست که .net رو میشه رو 2 تا زبان یا بیشتر پیاده کرد! asp خودش رو دات نت هست!دات نت که زبان نیست، فریم ورکه، درست نمیگم؟ این ASP.NET هست که به ما امکان طراحی وبسایت رو میده، مثلا WPF هم تو دات نته ولی دیگه زبان نداره که!

شما که اینقد تسلط داری رو PHP و کامل میشناسیش و میگی امنیت پایینی داره ، یه سوراخ نام ببر من خودم جوابتو میدم! :Dپست های قبلی بنده رو بخونید، کامل توضیح دادم. بحث سوراخ نیست، بحث آسانی برقراری امنیته. پست شماره 25
من متاسفانه زیاد PHP نمیدونم فقط از آمار دارم نتیجه گیری میکنم، یک بار دیگر پست 25 رو بخونید.
با همه اینها شما دشمن سرسختی هستین، مواردی که مطرح کردین منو بدجوری زمین گیر کرد، تا جایی که مجبور به کلیک دکمه تشکر شدم!!
پ.ن: ازین به بعد سعی میکنم دوستانه تر حرف بزنم ولی خوب ناسلامتی اینجا یه جنگه، یه بحثه، و کمی پرخاشگری تو بحث طبیعیه امیدوارم منو ببخشین.
در مورد انعطاف پذیری به پست دوستم Eshpilen نگاه کنین توضیحات کامل داده، و غیر ازون، من تاحالا 2 بار جواب این آرایه رو دادم: من ترجیح میدم 2 خط بیشتر بنویسم 2 تا آرایه جدا تعریف کنم تا از خروجی ایده آل برنامم مطمئن بشم، زیرآبی هم نرفتم!
حالا خواهشا امنیت Php رو یه جوری توجیه کنید بدجوری در مقایسه با ASP ضعیفه (منظور از ضعف سختی برقراری امنیت هست چون همه مراحل Serialization و ویزارد عضویت و قضیه Authentication به عهده خود برنامه نویس هست)...

binyaft
سه شنبه 02 فروردین 1390, 12:53 عصر
شما آیا میتونید تو سایتتون مپ بزارین؟ میتونین سرور SMTP درست کنین؟ میتونین از وبسایت میل بفرستید؟
:D منظورتو از سرور SMTP نفهمیدم ! اما تو پی اچ پی میشه SiteMap ( اگه درست فهمیده باشم ) تعریف کرد!
برای ارسال ایمیل هم که

mail('mail@box.com','Subject','Hi , .... ')
ارسال ایمیل تو asp.net چه طور هست!؟

میتونین کد کپچا بزارین؟
اقا شما پی اچ پی رو HTML فرض کردی!؟!؟!؟!؟
یه سرچ کن PHP captcha ، لطفا .


؟ اینکه تعریف شما از یه مشت دستورالعمل چیه، احتمالا با تعریف من فرق داره
هر زبانی یکسری دستور داره که تو سایت رسمی اش هست ! این یعنی یه مشت دستورالعمل! تعریف شما چیه!؟ میخوام بدونم :D

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

. نمیشه گفت یه مشت دستور، همونطوری که خودتون عرض کردین، بحث تجربه هم هست. در مورد XMLHttpRequest هم فقط گفتم بلد هستین یا نه، نگفتم که باید ازش استفاده کرد!!
باید گفت یه مشت دستورالعمل!
من بخوام آژاکس یاد بگیرم میرم دنبال فریم ورک های جاوا اسکریپت ! نمیرم از پایه xmlhttprequest رو یاد بگیرم! نه یاد ندارم !


دات نت که زبان نیست، فریم ورکه، درست نمیگم؟ این ASP.NET هست که به ما امکان طراحی وبسایت رو میده، مثلا WPF هم تو دات نته ولی دیگه زبان نداره که!
من هم میگم برخی از این زبان ها تحت این فریم ورک هستند ، نه asp تحت زبان های دیگه ،، که بشه توسط vb یا C# نوشت اش .


جواب پست 25 :


ببخشین؟؟ مالتی-ترد کاربرد نداره؟؟!؟!؟! کلهم تکنولوژی AJAX و XMLhttpRequest روی مالتی ترد پایه گزاری شده!!! بدون مالتی ترد برنامه شما چیزی جز یه مشت دستور که پشت سر هم پس از شلیک شدن یه رویداد اجرا میشن نیست! بعدش میشه توضیح بدین چطور میشه مالتی-ترد رو با اجکس معادل سازی کرد، وقتی خود اجکس از مالتی-ترد اومده؟؟
به قول جناب MMSHFE ، این همه که مالتی ترد رو چکش کردین میکوبین تو سره PHP ، یه نمونه ازش بزارید که نشه با آژاکس پیاده سازی شه .
این یکی رو حتما بزارید ، نشد من میام asp کار میکنم ;)


به نظر من یه چیزی که هست بحث امنیت هست که میتونیم مقایسه کنیم اینجا: ازونجایی که من طرف ASP هستم، با افتخار سیستم قدرتمند امنیتش رو معرفی میکنم:
...


آسان، و قوی، و راه های متعددی هم برای ایجاد امنیت وجود داره: MemberShip, WAT, CreateUserWizard
WATکه کاملا User-Friendly هست و با چند تا کلیک میتونی کاربر رو ایجاد و براش Role تعیین کنی (راستی بحث Role شد، تو PHP چطور به این آسونی Role درست میکنین؟؟)
CreateUserWizard هم فقط و فقط یه کنترله که میندازیش رو فرم، و همین!!!!!!!!!!!!!!!!!! کاربر میره اونجا اطلاعاتش رو وارد میکنه، و بقیه کار از ساخت DataBase گرفته تا Encode کردن پسورد به عهده خود asp هست!!
در مورد MemberShip، بعدا به اون میرسیم، اگر کسی پیدا شد واسه دفاع از Php...
من از این سه تا روشی که میگی اصلا خبر ندارم! اما میدونم ، امنیت پی اچ پی و asp زیاد فرقی نداره ( اما شاید نظر یه نفر یه چیزه دیگه باشه ! ) اون کار هایی که شما میکنی برای امنیت در asp با PHP شاید بهترش بشه ( قدرت مانور ) اما سخت تر هست چون خودت باید بشینی بنویسی ! اینجاست که کد رو درک میکنی .
هدف پی اچ پی این نیست که کاربر با چند تا کلیک کار هاشو انجام بده و ...!

شما که میگی باید کد رو درک کرد ، الان درک میکنی که بالا چی کار داری میکنی!؟ فقط میندازیش رو فرم!!؟!؟!؟
اگه شما با چند تا کلیلک امنیت رو تامین کنی ، کلی ذوق میکنی که من چه کدی زدم! هیچوقت هم نمیری کد رو نگاه کنی ، چون نیازی نمیبینی ، asp همه کارو میکنه دیگه! ....


کافیه به آمار سایت های هک شده دنیا یه نگاهی بندازین، ببینین چند تاشون PHP بودن چند تاشون ASP (البته این مدرک خوبی نیست چون ازونجایی که تعداد سایت های ساخته شده با PHP هم بیشتره، تعداد سایت های PHP هک شده هم بیشتره)
هک شدن یه بلاست!؟ حتما مدرک خوبی نیست!
هر چیزی که بیشتر استفاده بشه و جامعیت اش بیشتر باشه هکر ها بیشتر سعی میکنن اونو هک کنن ، خب این که خیلی عالیه ! اگه سرور های لینوکس هک میشن یا PHP ، باگ های زیادی هم کشف میشه و از بین میره ، اوووووووووووووه چقد پیشرفت!
مثلا همین کروم خودمون ! امسال کثیف ترین نرمافزار شناخته شده ، چون بیشترین هک و نفوذ بهش شده !!! چرا!؟ چون زیاد ازش استفاده شده ، گوگل داره پول میده میگه هک کنین! چرا!؟ چون باعث پیشرفت امنیتی نرمافزار هاش و به رخ کشیدن قدرت امنیتی اش میشه .
هک کردن خوبه ، به شرطی که باگ تعمیر بشه و باعث پیشرفت نرمافزار باشه .


این که امنیت یک سایت 85.24% به برنامه نویسش بستگی داره، ولی چیزی که من میخوام بگم، اینه که ASP این امنیت رو 90% خودش تضمین میکنه، و اینجا، هم در آسانی کار از PHP جلوتره هم از نظر امنیتی. اگر کسی میتونه در این مورد از PHP دفاع کنه نظرش رو بیان کنه تا من نمونه کد ها رو هم بزارم، وگرنه که 1-0 به نفع ASP.NET!
این آمار های دقیق رو از کجا میارید خدا میدونه!
ناقلا نکنه به سرور های آماری وصلی :))
شما یه کدی یا یه روش امنیتی ای بزار که با پی اچ پی نشه پیاده سازیش کرد! میشه پیاده سازی کرد اما باید خودت بشینی بنویسی! نه مثل asp بندازی رو فرم!
شما هر چیزی رو که با کلیک پیاده سازی کنید بنده کدش رو مینویسم!
الان فک کنم من دفاع کردم! کد هاتون رو بزارید ...


با همه اینها شما دشمن سرسختی هستین، مواردی که مطرح کردین منو بدجوری زمین گیر کرد، تا جایی که مجبور به کلیک دکمه تشکر شدم!!
کی من ؟؟؟ :))))) ، دشمن چیه آقا :D


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



من ترجیح میدم 2 خط بیشتر بنویسم 2 تا آرایه جدا تعریف کنم تا از خروجی ایده آل برنامم مطمئن بشم، زیرآبی هم نرفتم!
الان یعنی ما PHP کار ها که تو یه خط ارایه ای رو تعریف میکنیم که همه نوع داده رو پشتیبانی میکنه ، خروجی ایده الی نداریم :گریه: !؟ من نگفتم شما زیر آبی رفتید که ...



حالا خواهشا امنیت Php رو یه جوری توجیه کنید بدجوری در مقایسه با ASP ضعیفه (منظور از ضعف سختی برقراری امنیت هست چون همه مراحل Serialization و ویزارد عضویت و قضیه Authentication به عهده خود برنامه نویس هست)...
شما که مدعی هستی PHP ضعیفه ، باید ثابت کنی ! تاکید میکنیم! باید!
کد یا روش رو بزار ، توضیح بده ، مطمئن باش PHP کم نمیاره!
شما کدتون روبزارید بنده و دوستان ( که حتما از بنده بیشتر PHP کار کردن ) جواب شما رو میدن! شما با ویزارد برو جلو برو بچ کدشو برات مینویسن ;)

بی صبرانه منتظر روش ها و کد های امنیتی asp هستم .

موفق باشی جیگر . :قلب:

eshpilen
سه شنبه 02 فروردین 1390, 13:10 عصر
خوشحال ميشم بدونم چطور تست كردين. تا درموردش بحث و تبادل نظر كنيم.

به روشی ساده و روشن!
دقت کردم متوجه شدم وقتی در ویژوال استودیو میخوای سایت رو تست کنی و دکمهء اجرا رو میزنی، یک وب سرور مخصوص تست رو اجرا میکنه که روی پورتی که تعیین میشه و برای اون سایت خاص که درحال طراحیش هستیم اجرا میشه و بعد آدرس در مرورگر باز میشه که درواقع از طریق این وب سرور مخصوص تست و توسعه، اجرا و خروجی به مرورگر ارسال میشه (تصویر این برنامه رو میتونید در فایل ضمیمهء پست ببینید). خب من گشتم و فایل اجرایی این وب سرور رو پیدا کردم. اول در لیست پراسسهای ویندوز در تسک منیجر اسم فایل اجرایی اون وب سرور درحال اجرا رو پیدا کردم که اسمش WebDev.WebServer40.EXE بود. بعد این فایل رو در درایو C جستجو کردم که در آدرس C:\Program Files\Common Files\Microsoft Shared\DevServer\10.0\WebDev.WebServer40.EXE قرار داشت و بعد با کمی ور رفتن باهاش و سعی در گرفتن هلپ خط فرمان اون و البته نهایتا با نگاه کردن پیامهای داخل فایل اجرایی بوسیلهء یک ویرایشگر متن ساده فهمیدم که چه پارامترهایی رو باید چطوری بهش پاس کنم.
یک مثال از سینتاکسی که بنده برای اجراش استفاده کردم به این شکل هست:

WebDev.WebServer40.EXE /port:88 /path:"C:\aspnet_test"
یعنی ما پورتی رو که میخوایم و نیز آدرس ریشهء وب سایتی رو که میخوایم تست کنیم به اینصورت براش مشخص میکنیم.
خب بعدهم خیلی ساده کافیه که یک فایل و تنها یک فایل محتوی کد مثالی که بنده برای CompareValidator درج کردم در دایرکتوری C:\aspnet_test قرار بدید و بعد آدرس http://localhost:88/ رو در مرورگر خودتون وارد کنید. ویژوال استودیو هم که روحش در اینجا خبری نداره و اصلا درحال اجرا هم نیست!! پس هیچ کاری توسط ویژوال استودیو انجام نشده، و ضمنا فقط یک فایل دارید که کدهاش صرفا همون چند خط کد هست.

بعدم بنده نمیدونم چرا این مسئله برای شما اینقدر عجیبه. طرز کارش رو میشه بسادگی حدس زد. این کنترل CompareValidator یا یک هندلر رو برای اجرا در ابتدای پردازش صفحه رجیستر میکنه و یا باعث میشه کدهایی موقع کامپایل شدن صفحهء aspx به ابتدای اون اضافه بشن که کار ولیدیت سمت سرور رو انجام میدن. خیلی ساده و صددرصد عملی هست! نه؟ اصلا به اونطور هوشمندی و نظارت محیط اجرای ASP.NET هم که بنده گفتم لزوما نیازی نیست.

ضمنا باید بگم دوست عزیز که بنده خودم با انجام این کار فهمیدم که واقعا برنامه نویسی ASP.NET بدون ویژوال استودیو و با یک ادیتور برنامه نویسی ساده هم هیچ مشکل و پیچیدگی خاصی نداره. نیاز به ایجاد حتی یک دایرکتوری و فایل اضافه هم نبود و حتی فایل web.config هم وجود نداشت.
اینکه شما این مسائل رو در حرفهای قبلی خودتون مشکل و پیچیده نشون داده بودید بازم نشانهء عدم شناخت کافی شما از دات نت هست. باید بگم حتی چیزی مثل web.config هم چیز وحشتناک و دشواری نیست درواقع. این یک فایل پیکربندی مجتمع شده هست که شما میتونید درصورتیکه به تنظیم خصوصیات هر یک از اجزای دات نت منجمله کنترل های اون و یا تنظیمات اتصال DBMS و غیره و غیره و حتی اضافه کردن متغییرهای پیکربندی خاص و مستقل برنامهء خودتون نیاز داشتید، براحتی و بصورت امن این تنظیمات رو در این فایل درج کنید و سینتاکس تنظیم هر کلاس و موردی هم در رفرنس های مربوطه آمده و شما بیشتر وقتها جز کپی و پیست کردن چند خط خوانا و واضح xml و تغییر بعضی پارامترهای اون کار دیگری هم ندارید. دات نت همه چیزش اصولی هست و کلی از کارها رو از دوش برنامه نویس برداشته و این باعث امنیت بیشتر هم میشه. بطور مثال از فایل پیکربندی web.config محافظت میشه و دیگه مثل PHP شما نیازی به افزودن دستی کدهایی برای اینکه محتویات فایلهای پیکربندی شما بصورت مستقیم از طریق وب قابل خوندن نباشن ندارید. همینطور بطور مثال وقتی فایلی و بطور کلی منبع داده ای رو میخواید در برنامهء خودتون قرار بدید که باید ازش دربرابر دسترسی مستقیم وب محافظت بشه و فقط توسط برنامهء شما قابل دسترسی باشه، کافیه یک فولدر بنام app_data ایجاد کنید که این خاصیت رو بصورت خودکار تامین میکنه. نه نیازی به درج کد اضافی در هر فایل داده ای مورد استفاده دارید که یوقت ممکنه فراموش بکنید و نه درج دستوراتی در فایل .htaccess و نه ترفندهایی مثل قرار دادن فایلهای داده ای در خارج از دایرکتوری www و غیره. فولدر app_code هم که برای گذاشتن کلاسهای برنامهء شما در اون هست که از دسترسی مستقیم به این فایلها جلوگیری میشه. فولدر bin هم فکر میکنم برای فایلهای کامپایل شده (اسمبلی ها). و البته فولدرهای دیگری برای فایلهای خاص دیگری هم وجود دارن. نیازی نیست شما همهء اینا رو برای هر پروژه ای اضافه کنید، بلکه هروقت لازم شد میتونید این کار رو بکنید (البته ویژوال استودیو بصورت خودکار این فایلها و فولدرها رو همراه با امکانات آمادهء دیگری ایجاد میکنه). نیازی به هیچ ویرایش و تنظیم خاصی نیست، و حتی فایل web.config هم نیازی بهش نیست، مگر زمانی که واقعا به تنظیم خاصی نیاز پیدا میکنید.

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



درمورد RegEx بايد بگم كه من خودم يك مورد براي كارهاي شخصي خودم نوشتم كه همه حروف فارسي رو تشخيص ميده و حتي حروفي مثل ك و ي كه در فارسي و عربي با هم يكسري تفاوتها دارن رو هم ميتونه از هم متمايز كنهآفرین. خب بذارش ما هم ببینیم.


ولي وقتي نميدونيد اين توابع جزو خود زبان PHP هستن و اونها رو با چندتا تابع به قول خودتون كمكي و كدهاي سرهم بندي شده توسط افراد بي اطلاع اشتباه ميگيرين، بهتره در اين مورد با هم بحث نكنيم.فرار از بحث چرا؟
خیر بهتره بحث کنیم تا واقعیت مشخص بشه.
رگولار اکسپرشن مورد بحث رو بذارید تا ببینم از چه روشی استفاده کردید و اگر اشکالی درش دیدم عینا بهتون ثابت میکنم که اشکال داره و علتش رو هم براتون توضیح میدم. البته نوشتن رگولار اکسپرشن کاملا صحیح با PHP غیرممکن نیست، اما بخاطر عدم ساپورت Native یونیکد توسط PHP این کار نسبتا سخت و پیچیده هست و نیاز به دانش تخصصی درمورد یونیکد و انکدینگ اون و کار سطح پایین داره که تاحالا ندیدم هیچکس بجز بنده رگولار اکسپرشن های کاملا دقیق و کاملی در این زمینه ها ارائه کرده باشه. حالا مورد شما رو هم خواهیم دید.


اونوقت ميشه بگين اگه به جاي يك مقدار قرار باشه چند مقدار تغيير كنن چه كاري ميكنيد؟ چندتا رو ميتونيد با return برگردونيد؟ حتماً ميدونيد كه بعد از اجراي return، از متد خارج ميشيم و نميشه بيش از يك return توي متد اجرا كرد.برای چند مقدار میتونیم یک آرایه یا دیکشنری برگردونیم.
ولی بطور کلی مواردی که شما مطرح میکنید واقعا کمیاب هستن. در اغلب توابع و کاربردها روشهای ساده کاملا پاسخگو و خواناتر و اصولی تر هم هستن.
بهرحال این اصلا روش خوانا و متداولی نیست که تابع یک بار متغییر خارجی رو دستکاری بکنه و یک بار دیگه این کار رو نکنه! اونم معلوم نیست اصلا در داخل تابع چه بلایی سرش میاد. درحالیکه شما میتونید مثلا با سینتاکس مناسبی مثل دیکشنری بهتر نشون بدید که چه چیزی رو در داخل متغییر خودتون ریختید و تاحدی اینکه اون مقدار حاصل چه عملیاتی بوده.



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



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


اين همه هم بحث Multi-thread رو مطرح ميكنيد، يك مثال مطرح كنيد ببينيم آيا موردي وجود داره كه نشه با AJAX معادلسازيش كرد كه شما اين مسئله رو اينطور چماق ميكنيد و ميخواين توي سر PHP بكوبيد؟باشه روش فکر میکنم ببینم یک مثال خوب میتونم پیدا کنم.
البته فعلا ضرورت و اولویتی نداره برام و مثالهای دیگه بقدر کافی داریم.
ضمنا شما خودت داری میگی معادلسازی. بنظر شما این معادلسازی واقعا درحد خوانایی و راحتی و سرعت توسعه و کیفیت روش مستقیم ساپورت مالتی ترد هست؟ حداقلش اینه که در روش شما چند درخواست و ارتباط بین سرور و کلاینت اضافه تر خواهیم داشت. و البته در عمل مسلما بیش از این جزییات و محدودیت وجود خواهد داشت و کدنویسی ما رو ناخواناتر و پیچیده تر کرده و بخشهای مختلفی از کد عملیات مورد نظر رو در جاهای مختلفی پراکنده میکنه.
به این میگن یه راهکار کثیف و ضعیف با سرهمبندی!

ghasemweb
سه شنبه 02 فروردین 1390, 17:30 عصر
ظاهرا پست ما با مزاج بعضیا نساخته.
واسه چی میخوای جنجال درست کنی دوست عزیز

UnnamE
سه شنبه 02 فروردین 1390, 19:53 عصر
يه كلاس ساده نشونتون دادم
نتونستين جواب بدين، بحث و عوض ميكنيد
بعدش هم ميگين فلان توانايي رو ندارم؟
يا تسلط كافي نيست؟
كسي كه نتونه يه data mapper رو پياده كنه خو ديگه چرا باس بياد تاپيك وا كنه.
برين يكم ياد بگيريد، بريد!

eshpilen
سه شنبه 02 فروردین 1390, 20:48 عصر
كسي كه نتونه يه data mapper رو پياده كنه خو ديگه چرا باس بياد تاپيك وا كنه.
برين يكم ياد بگيريد، بريد!
چی داداش با منی؟ :لبخند:

L u k e
سه شنبه 02 فروردین 1390, 23:38 عصر
باز هم این موضوع کلیشه ای ...
گفتم یه نظری داده باشم
Php فقط یه زبون اسکریپتی محبوبه که از شی گرایی پشتیبانی می کنه ( پشتیبانی می کنه )
Asp امکانات خوبی داره در کد نویسی و طراحی هیچ چیز کم نداره فقط مشکلش اینه که ( به نظر من ) برنامه نویسی وب رو خیلی Wizard وار باهاش تجربه می کنید یعنی یه سری کارها رو خودش انجام می ده ( و در صورت عادی برنامه نویسی خالصی از وب رو ارائه نمی ده ) البته مجبور نیستید و دست شماست همه چیش ولی Default ش همینه اینم از نظر بعضی ها عیب نیس و یه مزیت ه
فکر نمی کنم 2 تا شونم چیزی کم داشته باشن فقط می شه گفت سرعت php در بیشتر مواقع از .net بیشتر ه

V0R73X
پنج شنبه 04 فروردین 1390, 04:23 صبح
آقا به نظر من تنها کسی که داره بحث رو درست پیش میبره خود آقای Eshpilen هست منم تاحالا بیخودی وقت دوستان رو گرفتم.
به نظر من بهترین کاری که الان میتونیم بکنیم اینه که اطلاعاتمون رو به اشتراک بزاریم بعدش قضاوت کنیم، همین خود من، از PHP هیچچی نمیدونم بعد میام اینجا میگم PHP به درد نمیخوره ASP.NET فلان و فلانه...
دوستان اگر با این ایده موافقید از دکمه تشکر استفاده کنید، وگرنه که میتونیم بحث رو همینطور متاصبانه ادامه بدیم.
برای شروع، من بحث های ساده رو پیشنهاد میکنم تا کم کم به جاهای پیشرفته تر هم برسیم:

V0R73X
پنج شنبه 04 فروردین 1390, 04:29 صبح
مثال: متغیر ها و آرایه ها توی ASP.NET به این طورت تعریف میشن:

Dim str As String="ABCDDS"
Dim int2(5) as Integer={0, 2, 154}
Dim str2 as string()={"ADS","DSAD","SADSF"}
Dim str3(3,8) as String
dim int3(4,58,42,23,3) as integer

توی خط 3 میبینید که آرایه خودش قابلیت تشخیص فضایی رو که باید به آرایه بده رو داره، بنابراین تعریف تعداد خونه ها برای آرایه الزامی نیست...
توی خط آخر تعریف آرایه چند بعدی رو میبینید
اگر از کلید واژه New استفاده کنیم با String به عنوان یک شیء برخورد میشود درست مثل جاوا، و ضمنا خود New یک تابع Override هست که اگر یه پارامتر بهش بدیم، یه کاراکتر میزاره تو String، اگه 2 تا بدیم دومی رو به عنوان تعداد تکرار شدن کاراکتر توی String در نظر میگیره، . اگر 3 تا بهش بدیم، اولی رو به عنوان آرایه ای از کاراکتر مورد نظر، دومی رو به عنوان اندیکس شروع تو آرایه و سومی رو به عنوان طول، یعنی تعداد کاراکترایی که از نقطه شروع میگیره.
Dim str4 as New String("D",25)
اگر از کلمه ReDim برای تعریف متغیر استفاده کنیم میتونیم متغیری رو با همون نام دوباره رو خودش تعریف کنیم ولی واضحه که با این کار متغیر قبلی دیگه از بین میره، و متغیر جدیدی با همون نام ساخته میشه.
Dim nsns(15) As Integer
ReDim nsns(50) As Integer
بخش تحسین برانگیز کار اینه که اگر از کلمه Preserve بعد از Redim استفاده کنیم میتونیم از از دست رفتن متغیر جلوگیری کرده، و از Redim برای تغییر متغیر استفاده کنیم!
Dim Nums () As Integer = {0,1,2,3,4}
ReDim Preserve Nums (25)
از دوست عزیزم Eshpilen خواهش میکنم کد C# رو بزارن من خیلی با C# کار نکردم میترسم سینتکسی رو اشتباه بنویسم دوستان دچار گمراهی بشن...
یه سوال هم همینجا از آقای Eshpilen بکنم: توجه کنید من آرایه 2 بعدی رو مقدار دهی نکردم، چون راهی برای مقدار دهیش به همان صورتی که آرایه تک بعدی رو مقدار دهی کردم پیدا نکردم، اگر شما بلدین خواهشا کد اون رو هم بزارین. غیر از این مسئله، آرایه 2 بعدی توی ASP.NET به صورت رایج، خونه به خونه مقدار دهی میشه
خوب، حالا آقایون PHP بگین تو PHp چطور متغیر و آرایه تعریف میکنید؟ خواهشا سعی کنید توضیحات ساده و کامل و مختصر باشن، من از PHP هیچ چیزی نمیدونم پس خواهشا بنده رو N00B فرض کنید D:
یه نکته رو هم خواهشا توجه کنید: توضیحاتتون رو دقیقا متناظر با مثال های بنده بدهید یعنی مثلا آرایه چند بعدی، شیء متناظر با StringBuilder مقدار دهی آرایه تو همون خط و... رو همه رو ذکر کنید که از بحث هم یعنی مقایسه دور نشیم.
اگر اشتباهی تو کد ها هست آقای Eshpilen و بقیه دوستان به بزرگی خودشون ببخشن بگین تصحیحشون میکنم.

V0R73X
پنج شنبه 04 فروردین 1390, 05:20 صبح
ASP.NET از شیئی به نام StringBuilder هم پشتیبانی میکنه که اینطوری تعریف میشه:
Dim strB as New StringBuilder()
تابع New برای این شیء هم از یک سری آرگومان که Override هم میشن پشتیبانی میکنه از جمله مقدار اولیه، طول پیشنهادی، ماکسیمم طول و...
مهم ترین تابعش هم Append هست که Stringی رو به عنوان آرگومان گرفته به رشته اصلی اضافه میکنه.
strB.Append("ASP")
StrB.Append(".NET")

binyaft
پنج شنبه 04 فروردین 1390, 10:30 صبح
آقا به نظر من تنها کسی که داره بحث رو درست پیش میبره خود آقای Eshpilen هست منم تاحالا بیخودی وقت دوستان رو گرفتم.
به نظر من بهترین کاری که الان میتونیم بکنیم اینه که اطلاعاتمون رو به اشتراک بزاریم بعدش قضاوت کنیم، همین خود من، از PHP هیچچی نمیدونم بعد میام اینجا میگم PHP به درد نمیخوره ASP.NET فلان و فلانه...
دوستان اگر با این ایده موافقید از دکمه تشکر استفاده کنید، وگرنه که میتونیم بحث رو همینطور متاصبانه ادامه بدیم.
برای شروع، من بحث های ساده رو پیشنهاد میکنم تا کم کم به جاهای پیشرفته تر هم برسیم:
خیلی دیر به این نتیجه رسیدی برادر!
جواب ما رو هم که ندادی!
بقیه دوستان فکر نکنم با این پیشنهاد موافق باشند ، باید دید بقیه چی میگن ؟ ، بالاخره بنده هم تابع جمع ام

eshpilen
پنج شنبه 04 فروردین 1390, 11:51 صبح
بنده به این بحث آرایه ها علاقه ای ندارم، و برام اولویتی هم نداره. موارد و مثالهای خودم رو دارم که درج کنم. بخصوص که این قضیه همونطور که گفتم بنظر بنده محل تردید در دقتش بعنوان یک معیار کلی هست، چون ساختار و سطح کار دو زبان مورد مقایسه باهم تفاوتهایی داره که باید در نتیجه گیری کلی و نهایی بحساب آورد (قبلا اشاره کردم که احتمالا در ASP.NET کمتر نیاز داریم با ساختارهای سطح پایین کار کنیم). از طرف دیگه اینطور جزییات یکی دوتا نیستن و اگر قرار به مقایسهء جزیی باشه باید تمام امکانات و ویژگیهای سطح ساختمان داده های هر دو زبان رو مقایسه کنیم. بدیهی هست به احتمال زیاد در بعضی موارد PHP بهتره و در بعضی موارد ASP.NET. البته به گمانم آرایه ها چیزهای مهم و پرکاربردی هستن؛ و ضمنا من اینو قبول دارم که آرایه های PHP یکی از منعطف ترین و راحتترین سینتاکس ها رو در دنیای جانوران در کرهء زمین دارا میباشد! از همون موقع که داشتم PHP یاد میگرفتم متوجه این انعطاف و راحتی سینتاکس شدم و خیلی کیف کردم!! و در تمام پروژه های خودم از انعطاف و راحتی این ساختار کاملا استفاده کردم.

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

بهرحال PHP زبانی با سیستم نوع weak (http://en.wikipedia.org/wiki/Weak_typing) هست و C# زبانی با سیستم نوع strong (http://en.wikipedia.org/wiki/Type_system#Strong_and_weak_typing) و این مسلما تفاوتهایی رو ایجاد میکنه. دربارهء مزایای این دو نوع هم در مقاله ای که تازگی ترجمه کردم (http://barnamenevis.showthread.php?279749-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%B3%D8%B7%D8%AD-%D8%A8%D8%A7%D9%84%D8%A7%D8%AA%D8%B1-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%82%D8%B1%D9%86-21) اطلاعات مفیدی هست. البته این دو روش طرفداران و مخالفان خودشون رو دارن طبیعتا که هرکدوم استدلالهای خاص خودشون رو دارن (مثلا بحث امنیت و احتمال پنهان موندن بعضی باگها رو قبلا مطرح کردم). من خودمم شک دارم که بالاخره کدوم بهتره. فکر میکنم به کاربرد هم بستگی داره، و البته نظرم بیشتر متمایل به مزیت نوع weak (http://en.wikipedia.org/wiki/Weak_typing) در چنین حیطه ها و سطوحی از برنامه نویسی هست و اینکه زبانهایی با چنین خصوصیاتی بطور اکثریت در این حیطه ها بکار میرن خودش میتونه نشانهء مناسب بودن اونها برای چنین حیطه ها و کاربردهایی باشه.
درمورد دات نت هم فکر میکنم بخاطر اینکه دات نت چند حیطه ای تر هست و مثلا برای برنامه نویسی دسکتاپ و بعضی کارهای سطح پایینتر هم درنظر گرفته شده، از سیستم نوع strong (http://en.wikipedia.org/wiki/Type_system#Strong_and_weak_typing) استفاده کرده که ضمنا میتونه با توجه به پیچیدگی و سطح و گستردگی سیستم دات نت، به افزایش سرعت اون هم کمک کنه.
البته شاید دلایل دیگری هم داشته. بهرحال محصولات میکروسافت هم لزوما بدون اشتباه و ضعف نیستن. هر زبان و نرم افزاری میتونه در طراحی دچار اشتباهات و نقصهای کوچک و بزرگی باشه.
شما فرض کنید این یکی به نفع PHP. بنده حرفی ندارم.
پس بهتره به موارد دیگه بپردازیم.
فعلا همون رگولار اکسپرشن حروف فارسی در PHP رو یکی تحویل بده ببینیم :لبخند:

binyaft
پنج شنبه 04 فروردین 1390, 13:21 عصر
جناب eshpilen من ربط مقایسه C# رو با PHP و نوع نوشتن اون دو تا رو به بحث نفهمیدم! :D

برای فارسی هم به صورت زیر عمل کنید { کد مال آقای طهماسبی هست ;) }

if(preg_match("#^[\s\x{0621}-\x{063A}\x{0640}-\x{0691}\x{0698}-\x{06D2}0-9]*$#u",'سلام'))
echo 'yes';
else
echo 'no';
حالا شما یه مالتی ترد بزارید ، البته اگر قانع شدید !

موفق باشید

eshpilen
پنج شنبه 04 فروردین 1390, 17:42 عصر
رگولار اکسپرشن شما درصورت بی نقص بودن بازم قابل مقایسه با رگولار اکسپرشن زبانهایی که ساپورت یونیکد بصورت Native دارن نیست، چون در اونها میتونیم حروفی رو که میخوایم بصورت مستقیم تایپ کنیم.
الان خودت بگو واقعا تهیهء اینطور رگولار اکسپرشن ها کار هرکسی هست؟ چرا اینقدر سخت شده؟
اگر به یکی بگیم یه رگولار اکسپرشن درست کن که مثلا فقط دو حرف «پ» و «ژ» رو قبول بکنه طرف میخواد چطوری درستش کنه؟ حداقل به سادگی تایپ کردن این دو حرف نیست.
خوانایی هم نداره اصلا. خودمم الان نگاه میکنم برام مشخص نیست دقیقا چه کاراکترهایی رو اجازه داده.

eshpilen
پنج شنبه 04 فروردین 1390, 17:59 عصر
جناب eshpilen من ربط مقایسه C# رو با PHP و نوع نوشتن اون دو تا رو به بحث نفهمیدم!ربطش آرایه ها بود دیگه :لبخند:
ببین نوع گذاری قوی نیاز داره که نوع متغییرها پیش از استفاده تعریف بشه، بنابراین ما نمیتونیم یه آرایه رو بدون از پیش تعریف کردن اعضای اون و ساختار خودش به هر شکلی که میخوایم و هر متغییری هرجا میخوایم و تو در تو و غیره تعریف کنیم.
خلاصه یه همچین چیزایی!! گرفتی؟


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

binyaft
پنج شنبه 04 فروردین 1390, 18:40 عصر
ببین نوع گذاری قوی نیاز داره که نوع متغییرها پیش از استفاده تعریف بشه، بنابراین ما نمیتونیم یه آرایه رو بدون از پیش تعریف کردن اعضای اون و ساختار خودش به هر شکلی که میخوایم و هر متغییری هرجا میخوایم و تو در تو و غیره تعریف کنیم.
خلاصه یه همچین چیزایی!! گرفتی؟
حالا PHP رو به یه صورت نوشتن ، اون یکی رو به یه صورت دیگه
مهم اینه که asp انعطاف پذیری اش کمه تو آرایه ها!

این کد ها رو تست کنید .
حروف فارسی + اعراب هاش!

<?php

if(preg_match("#^[\s\x{0621}-\x{063A}\x{0640}-\x{0691}\x{0698}-\x{06D2}]*$#u",'بابا آب داد'))
echo 'yes';
else
echo 'no';
// yes .


if(preg_match("#^[\s\x{0621}-\x{063A}\x{0640}-\x{0691}\x{0698}-\x{06D2}]*$#u",'baba aab داد'))
echo 'yes';
else
echo 'no';
// no .


if(preg_match("#^[\s\x{0621}-\x{063A}\x{0640}-\x{0691}\x{0698}-\x{06D2}]*$#u",'123456789900'))
echo 'yes';
else
echo 'no';
// no .

?>


نه اینکه یه چیزی بگم بعد بگی آهان نه خب اون این نیست که و از این حرفا! خلاصه تقلب مقلب نداریم.
خب شما اونو تست کن ، حروف فارسی + اعراب ها رو پشتیبانی میکنه { طبق گفته نویسنده }

خلاصه تقلب مقلب نداریم
میشه دقیقا تعیین کنی که کجاش تقلبه!؟


از طرف دیگه همین رگولار اکسپرشن شما هم قابل مقایسه با رگولار اکسپرشن زبانهایی که ساپورت یونیکد بصورت Native دارن نیست، چون در اونها میتونیم حروفی رو که میخوایم بصورت مستقیم تایپ کنیم و افرادی بدون دانش تخصصی درمورد یونیکد و انکدینگ UTF8 هم میتونن این کار رو انجام بدن.
خب قبول دارم که پی اچ پی تو نسخه 5 به صورت کامل از یونیکد پشتیبانی نمیکنه و نسخه 6 این مشکل رو حل کرده ، اما این به این معنی نیست که ما نتونیم Regex رو برای فارسی پیاده سازی کنیم.
بعلاوه توابع mb string هم تو php5 مشکل روبرای یونیکد حل کردن ، البته ضعف هایی هم هست .


الان خودت بگو واقعا تهیهء اینطور رگولار اکسپرشن ها کار هرکسی هست؟ چرا اینقدر سخت شده؟
خب نه ، اینطوریش سخته .

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

PHP هنوز امکان مالتی ترد نداره.

تازه کمبود مالتی ترد هنوز باقی هست.

تامین هدف اونها همین مالتی ترد بوده

ضمنا درمورد یه چیزهایی مثل نداشتن مالتی ترد فکر نمیکنم بشه براحتی چنین ادعایی کرد.

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

اینطور که معلومه کاربرد مالتی ترد در برنامه نویسی وب عادی خیلی کمه.
من بیخیالش شدم. البته شاید بعدا مثالی بنظرم رسید و گفتم.
بهرصورت اینطوری هم نیست که مالتی ترد هیچ کجای وب کاربرد نداشته باشه. ولی خوشبختانه در سایتها و اپلیکیشن های معمولی اغلب ضرورتی نداره.
از اول میکوبیدی تو سر PHP :لبخند: ، حالا میگی بیخیالش شدم ، ولی حتما ، حتما یه مثال بزن .

eshpilen
پنج شنبه 04 فروردین 1390, 18:47 عصر
خب قبول دارم که پی اچ پی تو نسخه 5 به صورت کامل از یونیکد پشتیبانی نمیکنه و نسخه 6 این مشکل رو حل کرده ، اما این به این معنی نیست که ما نتونیم Regex رو برای فارسی پیاده سازی کنیم.بله منم که نگفتم نمیشه. گفتم میشه، ولی یه مقدار پیچیده و سخت هست و افراد زیادی تاحالا دیدم در این زمینه اشتباه میکنن، مثلا کاراکترها رو مستقیما تایپ میکنن.
وگرنه خودم قبلا رگولار اکسپرشن فارسی رو نوشته و ارائه کرده بودم. چه بسا از روی روش بنده کپی برداری کرده باشن یا با توضیح و مثال بنده متوجه شده باشن که تایپ مستقیم کاراکترها مشکل داره.


خب شما اونو تست کن ، حروف فارسی + اعراب ها رو پشتیبانی میکنه { طبق گفته نویسنده }
تا اینجا که بررسی کردم ظاهرا بدون مشکله.

MMSHFE
جمعه 05 فروردین 1390, 12:10 عصر
دوستان شرمنده که یک مدت نبودم. اگه خدا بخواد از یکی دو روز دیگه دوباره به بحث ملحق میشم. ضمناً چند مورد از مزایای PHP هم دارم تهیه میکنم که توی ASPX وجود ندارن یا به قول جناب eshpilen باید با کلی دردسر پیاده سازیشون کرد که وقتی تکمیل شد، میگذارم تا روشون کار کنیم.
موفق باشید.

eshpilen
جمعه 05 فروردین 1390, 23:34 عصر
خب نمونه کد بعدی!
AJAX در ASP.NET رو با این مثال بهتون نشون میدم:


<%@ Page Language="C#" %>

<script runat="server">
void ShowInfo(Object sender, EventArgs e)
{
string spc = "<br>&nbsp;";
msg.Text = "Your posted info:<span style='color: red;'>"
+spc+name.Text+spc+ email.Text+spc+tel.Text+"</div>";
fields.Visible = false;
}
</script>

<html>
<head>
<title>UpdatePanel Example</title>
</head>
<body onload="alert('Page loaded.');">
<table align="center"><tr><td align="center">
<h3 style="color: #0a5">AJAX in ASP.NET</h3>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server" style="border: 3px solid #000; padding: 6px">
<ContentTemplate>
<div id="fields" runat="server">
Name:<asp:TextBox ID="name" runat="server" /><br />
Email:<asp:TextBox ID="email" runat="server" /><br />
Tel:&nbsp;&nbsp;&nbsp;&nbsp;
<asp:TextBox ID="tel" runat="server" /><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<asp:Button OnClick="ShowInfo" Text="Submit" runat="server" />
</div>
<asp:Label ID="msg" runat="server"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
</form>
</td></tr></table>
</body>
</html>


موقعی که صفحه رو برای اولین بار باز کنید این رو میبینید:


http://barnamenevis.org/attachment.php?attachmentid=67880&stc=1&d=1301081029


اون پیام alert رو گذاشتم در رویداد onload تگ body تا هروقت که کل صفحه رفرش میشه پیام بده و متوجه بشید.

بعد مقدارهایی رو در فرم وارد میکنیم:


http://barnamenevis.org/attachment.php?attachmentid=67881&stc=1&d=1301081307


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


http://barnamenevis.org/attachment.php?attachmentid=67882&stc=1&d=1301081334


موقعی که ما فرم رو سابمیت میکنیم و نتیجه رو مشاهده میکنیم فقط قسمتی از صفحه که در داخل کادر سیاهرنگ قرار داره عوض میشه و بقیهء صفحه ثابت هست و رفرش نمیشه و بنابراین ما هیچ پیام alert ای مبنی بر لود شدن صفحه دریافت نمیکنیم.
خب مشاهده کردید که ما براحتی قابلیت ایجکس رو میتونیم توسط قرار دادن قسمتی از صفحه که میخوایم تبدیل به ایجکس بشه در درون چند تگ ایجاد کنیم (و تاکید میکنم که این هیچ ربطی و نیازی به ویژوال استودیو نداره، بلکه امکانات فریمورک دات نت و کارایی خودکار کلاسهای مربوط به کنترل های وبی که داره هست). یعنی تگ asp:UpdatePanel و تگ درونی محتوای اون که ContentTemplate هست. میبیند که برای ایجکسی کردن یک قسمت از صفحه، نیازی به هیچ کد جاوااسکریپتی نیست. نیاز به تعیین هیچ رویداد و تابع اضافه ای نیست. نیاز به نگرانی درمورد تست و باگها و تفاوت های جاوااسکریپت در مرورگرهای مختلف نیست. نیازی به ایجاد هیچ کد و فایل اضافه ای در سمت سرور نیست. درواقع انگار نه انگار که چیزی فرق کرده و همون کدی که برای حالت غیر ایجکسی نوشتیم میتونه مستقیما برای ایجکس هم استفاده بشه. همه چیز خودکار و کامل و دقیق و امن هست و ضمنا در کد صفحهء ما هیچ چیزی اضافه نمیشه و کد تمیز و خلوت باقی میمونه. فقط در خروجی ای که به مرورگر میره کدهای لازم برای ایجکس مسلما وجود دارن، اما در فایلهای کد ما در سمت سرور هیچ چیزی در این ارتباط جز همون تگهای مخصوص که خودمون اضافه کردیم دیده و اضافه نمیشه. ضمنا اگر جاوااسکریپت در سمت کلاینت غیرفعال باشه، با زدن دکمهء سابمیت، کل صفحه رفرش میشه و بازهم امکانات صفحهء ما کار میکنه. یعنی تمام نکات و اصول و حالتهای ممکن درنظر گرفته شده و پیاده سازی شدن.

به نکتهء دیگری که میتونید در این مثال توجه کنید، سادگی کار با ورودیهای فرمهای HTML و اجزای دیگر صفحه در سمت سرور هست.
بطور مثال ما در سمت سرور پس از پردازش اطلاعات سابمیت شده، با عبارتی به سادگی msg.Text میتونیم پیامی رو در هر قسمتی از صفحهء نمایش داده شده در سمت کلاینت ایجاد کنیم. کدهای پردازش اطلاعات فرم و کد پیام دادن به کاربر در مکان مورد نظر از صفحه، هردو در یک جا و در تابعی که اطلاعات فرم رو پردازش میکنه درج شدن. یعنی نیازی نداریم مثل PHP مثلا پیغامی رو که میخوایم نمایش بدیم در یک بخش جداگانه و در جایی که اون پیام باید در متن صفحه درج بشه تولید کنیم. این باعث تمرکز تمام کدها و عملیات مرتبط در یک جا و در یک تابع مختص خودش میشه که مسلما از نظر خوانایی و سادگی و قابلیت نگهداری برنامه، اهمیت و فایدهء بزرگی داره.
به همین ترتیب بوسیلهء فرمان fields.Visible = false باعث شدیم که قسمت ورودیهای فرم، بعد از سابمیت شدن فرم دیگه تولید نشن و در صفحهء نتایج که محتوی پیام تولید شده توسط سمت سرور هست، کادرهای ورودی و دکمهء Submit دوباره ایجاد و نمایش داده نشن (کلا از تولید مجدد اونها جلوگیری میشه، نه اینکه اونها رو از نظر نمایشی نامریی کنه).

ما با نام هر قسمت از صفحه میتونیم در سمت سرور هم به اطلاعات سابمیت شده دسترسی داشته باشیم و هم به تنظیمات سمت کلاینت. یعنی اینطور نیست که لزوما مثل PHP مثلا وقتی میخوایم به مقدار یک ورودی متن در سمت سرور دسترسی پیدا کنیم از چیزی مثل $_POST['name'] استفاده کنیم و وقتی میخوایم ورودی name رو در فرم HTML دستکاری کنیم بهش دسترسی مستقیم در PHP نداشته باشیم و کد مقداردهی اولیه یا دستورات شرطی خروجی برای ایجاد یا عدم ایجاد اون رو در جای دیگری از کد (جاییکه اون ورودی در HTML خروجی تولید میشه) قرار بدیم.

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

ویرایش: نمیدونم به چه علتی تگهای <br> در کدهایی که درج میکنم حذف میشن. ظاهرا نرم افزار فروم مشکلی داره. بخاطر همین سورس رو بصورت یک فایل zip ضمیمه کردم.

binyaft
شنبه 06 فروردین 1390, 10:34 صبح
این چیز هایی که شما میگی در زبان های تحت وب میشه پیاده سازی کرد! حالا asp.net اومده با چند تا تگ کل این کار ها رو انجام میده و بقیه با تگ این کار رو انجام نمیدن و برنامه نویس خودش باید بنویسه ، مثل PHP
در مورد خوانایی کد هم که چون شما داری از فریم ورک استفاده میکنی یه چیز عادی هست ، تو پی اچ پی یا هر زبان دیگه ای هم که از فریم ورک استفاده بشه خوانایی کد بالا میره .
به نظر بنده اینکه طرفداران asp.net بیان یه مثال بزنن که کار با دو سه تا تگ انجام بشه و طرفداران پی اچ پی اون رو به صورت یه کلاس در بیارن درست نیست .
باید نمونه و مثالهایی زده بشه که ضعف ها رو معلوم کنه مثل عبارت با قاعده و مالتی ترد نه اینکه نشون بدیم کدوم آسونتره .
در مورد پست بالایی هم ، دوستان الان باید معادلسازی کنند در PHP ؟

موفق باشید

eshpilen
شنبه 06 فروردین 1390, 12:25 عصر
ببین قربونت، من قبلا چند بار گفتم الانم میگم.
این بحث برای این هست که کسانی که میخوان بین PHP و ASP.NET انتخاب کنن بتونن واقعیت رو درمورد هردوی اونها بدرستی ببینن و تصمیم درستی بر اساس اهداف و شرایط خودشون بگیرن.
وگرنه بله میشه تقریبا تمام کارایی ASP.NET رو در PHP هم با کدنویسی و/یا استفاده از فریمورک ها یا استفاده از کدهای دیگران بدست آورد. البته بازم بنظر من سطح و تمیزی کار به حد ASP.NET نمیرسه چون ASP.NET اساسا به این شکل طراحی شده و تمام سینتاکس و جزییاتش کاملترین هماهنگی رو برای این شکل از برنامه نویسی وب داره، اما بهرصورت با پی اچ پی هم میشه بحد نسبتا قابل قبولی رسید.
بهرحال باید به این توجه داشته باشید که جایگزین های خارجی و کدنویسی دستی خود برنامه نویس و شبیه سازی ها، اینطور نیست که هیچ فرقی با زبان و فریمورکی که از اول اینا رو بصورت رسمی و ساختاری در خودش داره نداشته باشن. کدنویسی سخته و وقت و انرژی زیاد میخواد بعلاوهء مهارت و دانش کافی؛ فریمورک رو باید پیدا کنی و یادگیری اضافه میخواد و وابسته به یه منبع خارجی برای توسعه و آپدیت و رفع باگهای اون هستی (نه منبع رسمی و صرفا خود PHP که همیشه همه چیز رو فراهم و درصورت لزوم آپدیت و چیزهای جدید رو اضافه میکنه)، فریمورک های متعددی وجود داره و کدها و روشها و کلاسهای متعددی توسط برنامه نویسان مختلف، که این برای کارهای تیمی و استخدام جالب نیست چون تعدد و پیچیدگی و ناسازگاری ایجاد میکنه و امنیت رو هم پایین میاره.

در نهایت مسلما اگر کسی راحتی ASP.NET رو بخواد، و تمایل یا شراییطش رو نداره سطح پایین کار بکنه و دنبال کد و فریمورک بگرده، خب چرا بره دنبال پی اچ پی؟ اگر دنبال ASP.NET بره هیچکدام از این پیچیدگی ها و نگرانی ها و هزینه های اضافه رو نداره و برای بازار کار هم مشکل خاصی نداره. شما اگر میتونید و میخواید، باید مزایا و برتری ها و چیزهای خوشایند PHP رو برای چنین افرادی مشخص کنید.

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

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

eshpilen
شنبه 06 فروردین 1390, 12:50 عصر
به نظر بنده اینکه طرفداران asp.net بیان یه مثال بزنن که کار با دو سه تا تگ انجام بشه و طرفداران پی اچ پی اون رو به صورت یه کلاس در بیارن درست نیست
باید نمونه و مثالهایی زده بشه که ضعف ها رو معلوم کنه مثل عبارت با قاعده و مالتی ترد نه اینکه نشون بدیم کدوم آسونتره .

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

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


در مورد پست بالایی هم ، دوستان الان باید معادلسازی کنند در PHP ؟
بنظر بنده ضرورتی نداره. اما اگر بخوان میتونن.
ضمنا دیروز داشتم بخش فریمورکی بنام Prado رو در همین فروم نگاه میکردم. ظاهرا فریمورکی برای شبیه سازی ساختار ASP.NET هست در PHP. نمیدونم تا چه حد شبیه و کامل هست و چه مزایا و معایبی داره و چقدر ازش استفاده میشه، بهرحال میتونید اون رو هم بررسی کنید. البته دوستی نوشته بودن ظاهرا توسط تیم توسعش بصورت نیمه کاره رها شده. خب بهرحال فریمورک ها و کدهای غیررسمی این مشکلات رو هم بیشتر دارن. یعنی نمیتونی چندان به آیندهء اونا مطمئن باشی.

binyaft
شنبه 06 فروردین 1390, 13:16 عصر
که چی بشه با این کار؟
ما در برنامه نویسی عادی وب و در کارهای تجاری نیاز خیلی کمتری داریم تا با دات نت در سطح پایین کار کنیم.
اگر فقط مثال از چنین چیزهای سطح پایینی بزنیم و مثلا نشون بدیم که آرایه های PHP بهتر از مال دات نت هست، لابد بحث تمومه و همه نتیجه میگیرن دات نت با اینهمه ادعاش از PHP هم ضعیف تره!!
آیا این است واقعیت؟
خب در اینکه asp با چند تا تگ و ... کار ها رو اسون انجام میده شکی نیست ، نیازی هم به مثال های متعدد نیست .
یعنی استفاده از ارایه ، یا همون انعطاف پذیری در ارایه ها تو کار های تجاری هست و سطح پایین!؟
حتما هم که regex برای فارسی خیلی زیاد استفاده میشه و همه برنامه نویسان PHP موندن توش ، تازه تو کار های تجاری و سطح بالا هم هست که مطرح شد !!!
بهتره مثال هایی مثل همین regex و ارایه ها و... زده بشه ....


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

بله باید همینطور باشه ، اما تو asp میشه دید که آژاکس داره چیکار میکنه!؟ اصل ماجرا رو میتونه به آسونی درک کنه!؟
یاد میگیره که اژاکس چطور کار میکنه!؟ یا فقط طرز استفاده از 2-3 تا تگ رو یاد میگیره !؟ من خودم اصلا با این برنامه های آماده طراحی کار نمیکنم چون میخوام بفهمم و درک کنم که الان داره چه چیزی اتفاق میافته ، شما هم الان میگی برو اسمبلی یاد بگیر ! درک کردن کار هایی که داره انجام میشه به این معنی نیست که من برم سر نخ رو از 0و1 دنبال کنم.
الان برنامه نویس های asp رو که updatepanel رو بلد هستن ، به اکثرشون بگی کد اژاکس رو بدون .net بنویس میتونن!؟
.net برنامه نویسی رو راحت کرده و برنامه نویس رو تنبل ، تو پی اچ پی شما خودت اژاکس رو پیاده سازی میکنی ، کلی هم قدرت مانور داری ، چون جاوا اسکریپت رو مستقیما مینویسی، حالا با فریم ورک های معروف جاوا اسکریپت یا با کد های ساده و میفهمی که الان اینی رو که پیاده سازی کردی یعنی چی!
این کاری که شما کردی برای کار با آژاکس منو یاد فرنت پیج انداخت :قهقهه: ، اون اولا که میخواستم طراحی وب یاد بگیرم فرانت پیج نصب کردم به راحتی میشد یه صفحه ساخت ، بعد قسمت سورس رو که نگاه میکردم گریه ام میگرفت .


. نه مثل ادعاهای متعدد اشتباهی که در این تاپیک و اون تاپیک دیگه مطرح شد و دیدید که بی اساس بودن و طرفها پای حرف خودشون نیاستادن چون نمیتونستن ثابت کنن
:قهقهه: بعضی ها هم تو همین تاپیک PHP رو شاخه ای از html فرض کرده بودن و بی امنیت و بعدا کلا بحث رو عوض کردند /.

موفق باشید

MMSHFE
شنبه 06 فروردین 1390, 16:19 عصر
با سلام، اين هم كد معادل نمونه AJAX شما كه در ASPX توضيح داده بوديد. سعي كردم تا جايي كه ميشه همون ساختار كد شما رو داشته باشه. ميبينيد كه كار اصلاً سختي در اين بين وجود نداره. ضمناً از jQuery و... هم استفاده نكردم. با مرورگرهاي مختلف هم سازگاري كامل داره (ميتونيد امتحان كنيد).
67906 67907 67908
واقعاً هر چي بيشتر ميريم جلو، بيشتر به اين نتيجه ميرسيم كه بعضي از دوستان انگار PHP رو با HTML اشتباه گرفتن! اين هم شد مثال؟!
توي كد PHP دقيقاً ميبينيد كه چه اتفاقي داره ميفته و AJAX چطوري كار ميكنه و چطور بايد به روش POST اطلاعات رو ارسال كرد و از اون طرف صفحه مقصد خروجي لازم رو چطور توليد ميكنه و نهايتاً دوباره با JS چطور در مكاني كه ميخواين، اطلاعات بازگشتي از سرور رو جايگذاري ميكنيد، اما ASPX چي؟ UpdatePanel؟ :لبخند:
اينطور كه dotNET داره كاربران خودش رو (با عرض شرمندگي) تنبل بار مياره، چند وقت ديگه احتمالاً توي كنفرانس مطبوعاتي Microsoft خواهيم شنيد كه اعلام ميشه: از اين به بعد طراحان سايت عزيز كافيه با ميكروفون به موتور ASPX بگن چي ميخوان و اون يك سايت آماده در قالب فايل ZIP بهشون تحويل بده. همه طراح وب خواهيم شد! همه خوشحال خواهيم بود!!! :قهقهه:
موفق باشيد.

MMSHFE
شنبه 06 فروردین 1390, 16:31 عصر
با سلام مجدد، يك سؤال داشتم، توي ASPX هم به راحتي PHP ميشه روي تصاوير كار كرد؟ منظورم چيزي شبيه GD هست. لطفاً كتابخانه هاي جانبي (Third-Party) رو معرفي نكنيد چون GD جزو خود PHP هست. منظورم امكانات داخلي (Built-in) هست. معادل PDFlib هم كلاسي در dotNET هست براي كار روي فايلهاي PDF و توليد و ويرايش اونها؟ پس سؤالات فعلاً اينهاست:
1- آيا در ASPX كلاسي معادل كتابخانه GD در PHP وجود دارد (بصورت توكار يا داخلي)؟ الف) بله [] ب) خير []
2- آيا در ASPX كلاسي معادل كتابخانه PDFlib در PHP وجود دارد (بصورت توكار يا داخلي)؟ الف) بله [] ب) خير []
موفق باشيد.

MMSHFE
شنبه 06 فروردین 1390, 18:51 عصر
با سلام دوباره، گفته بودم كه چند مورد در PHP پيدا كردم كه توي ASPX نيست يا اينكه بايد با كلي دردسر پياده سازي كرد. دو مورد رو كه در پست قبلي گفتم. اين مورد رو هم ببينيد:
كنترل كننده شخصي Session در PHP (http://www.php.net/manual/en/function.session-set-save-handler.php)
همونطور كه ميبينيد، در PHP ميشه كنترل كننده كاملاً سفارشي براي Session نوشت. مثلاً سايتتون رو طوري تنظيم كنيد كه Sessionها رو به جاي پوشه tmp توي پوشه خاص خودتون يا حتي توي DB ذخيره كنه. توي لينكي كه گذاشتم، مثال هم براي اين كار گذاشته شده. خوشحال ميشم بدونم ASPX براي اين قابليت چه معادلي ارائه كرده (البته اگه معادلي داشته باشه). اگه معادلي وجود نداشته باشه، ميشه گفت اين مورد يكي از مزاياي PHP هست كه نشون ميده امنيت PHP در كار با Sessionها بالاتر از ASPX هست.
موفق باشيد.

amir001
شنبه 06 فروردین 1390, 22:53 عصر
شک نکنید که PHP بهتره :دی

اما این بحث اینجا فایده ای نداره. من بحث را پیگیری نکردم اما فکر میکنم این باید جایی ایجاد بشه که هم PHP کارها زیاد اونجا سر بزنن و هم ASPX کارها.

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

cybertoos
یک شنبه 07 فروردین 1390, 02:25 صبح
با سلام و عرض خسته نباشید خدمت همه دوستان
پست های کوتاه رو خوندم اما پست های بلند مخصوصا پست های eshpilen عزیز رو نه
eshpilen چند وقتی که نوشته های شما رو دنبال می کردم از روحیه پژوهشگری شما خیلی خوشم اومد
و به شدت این روحیه شما رو تحسین می کنم امیدوارم موفق باشید اما یک سوال:
اگر من خط به خط PHP Manual رو خوندم(با تخفیف حذف User Contributed Notes) آیا حق دارم بگم PHP رو تموم کردم یا بخش مربوطه در MSDN برای محصولات مایکروسافت.
وآیا شما این کارو کردین؟
-----------------------------------------------------------------------------------------------------------------------
بزارین عنوان تاپیک رو اینطوری تصحیح کنم(چند پیشنهاد):

1- مقایسهء عملی ASP.NET و PHP.zend با نمونه کد(به نظر من این بهترینه)

2- مقایسهء عملی ASP.NET و PHP.symfony با نمونه کد

3- مقایسهء عملی ASP.NET و PHP.cake با نمونه کد

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

MMSHFE
یک شنبه 07 فروردین 1390, 10:11 صبح
با سلام، فكر كنم همين عنوان مناسب تر باشه چون يكي از مزاياي اصلي PHP كه مطرح شده، همين عدم وابستگي به فريمورك هست و قراره ASPX رو با فريمورك dotNET كه پشتش هست، با PHP ساده و بدون فريمورك مقايسه كنيم وگرنه مشخصه كه PHP.zend سر تر از ASPX خواهد شد!
موفق باشيد.

alonemm
یک شنبه 07 فروردین 1390, 10:32 صبح
باسلام:
در این پست این جوری که از اول روبه جلو رفته مقایسه توانایی اجرای کدها در زبان برنامه نویسی PHP و ASP.net بوده نه بحث فریم ورک ها.
درضمن دات نت چارچوب برنامه نویسی برای ASPX هست نه یک فریم ورک.

فریم ورک هاهم از خود زبان ساخته شده اند مثل کیک و ...

موفق باشید.

MMSHFE
یک شنبه 07 فروردین 1390, 12:11 عصر
با سلام، دوست گرامي اين حرفتون به نظرم صحيح نيست كه ميگين فريموركها از خود زبان ساخته شده اند.
كلاً تعريف Framework يعني چهارچوب كاري. حالا بعضي فريموركها مثل dotNET، يكسري زبان براساس استانداردهاي اونها ساخته ميشه و برخي مثل Zend و Cake و... ازطريق كدهاي يك زبان ايجاد ميشن. مهم اينه كه براي كدنويسي تحت هر چهارچوب كاري، بايد از توابع و ساختارهاي ارائه شده توسط همون فريمورك استفاده كنيد.
مجدداً تأكيد ميكنم ASPX رو يك زبان به حساب نيارين چون اصلاً Syntax و Semantics و... مخصوص به خودش كه تعاريف بنيادين يك زبان هستن رو نداره. ساختار طراحيش كه مال HTML هست و فقط يكسري تگ (با حفظ همون ساختار و عدم معرفي ساختار جديد) بهش اضافه كرده و كدهاي پشت صحنه هم با #C يا VBdotNET و... نوشته ميشه. درنتيجه نميشه اون رو يك زبان به حساب آورد.
موفق باشيد.

eAmin
یک شنبه 07 فروردین 1390, 18:34 عصر
با سلام، اين هم كد معادل نمونه AJAX شما كه در ASPX توضيح داده بوديد. سعي كردم تا جايي كه ميشه همون ساختار كد شما رو داشته باشه. ميبينيد كه كار اصلاً سختي در اين بين وجود نداره. ضمناً از jQuery و... هم استفاده نكردم. با مرورگرهاي مختلف هم سازگاري كامل داره (ميتونيد امتحان كنيد).
http://barnamenevis.org/attachment.php?attachmentid=67906&d=1301141843 http://barnamenevis.org/attachment.php?attachmentid=67907&d=1301141856 http://barnamenevis.org/attachment.php?attachmentid=67908&d=1301141878
واقعاً هر چي بيشتر ميريم جلو، بيشتر به اين نتيجه ميرسيم كه بعضي از دوستان انگار PHP رو با HTML اشتباه گرفتن! اين هم شد مثال؟!
توي كد PHP دقيقاً ميبينيد كه چه اتفاقي داره ميفته و AJAX چطوري كار ميكنه و چطور بايد به روش POST اطلاعات رو ارسال كرد و از اون طرف صفحه مقصد خروجي لازم رو چطور توليد ميكنه و نهايتاً دوباره با JS چطور در مكاني كه ميخواين، اطلاعات بازگشتي از سرور رو جايگذاري ميكنيد، اما ASPX چي؟ UpdatePanel؟ :لبخند:
اينطور كه dotNET داره كاربران خودش رو (با عرض شرمندگي) تنبل بار مياره، چند وقت ديگه احتمالاً توي كنفرانس مطبوعاتي Microsoft خواهيم شنيد كه اعلام ميشه: از اين به بعد طراحان سايت عزيز كافيه با ميكروفون به موتور ASPX بگن چي ميخوان و اون يك سايت آماده در قالب فايل ZIP بهشون تحويل بده. همه طراح وب خواهيم شد! همه خوشحال خواهيم بود!!! :قهقهه:
موفق باشيد.

قبل از اینکه وارد بحث بشم، بزارید یک چیزی رو برای دوستان توضیح بدم. ببنید من کلا با وجود چنین تاپیکهایی چه علمی و چه عملی مخالفم، چون مطمئنم بحث به کجا کشیده میشه! کاربر-برنامه نویس-توسعه دهنده خودش باید تصمیم بگیره که کدوم یک از اینها رو استفاده کنه، حالا بسته به نیاز یا سلیقه ی شخصی اش. و به مرور زمان وقتی در اون محیط خاص حرفه ای شد، خیلی خوب متوجه خواهد شد که کاری نیست که در این محیط بشه انجام داد و در محیط دیگر نه.
می دونم مخالفانی هم با نظر بنده وجود دارند، ولی بنده اونها رو ارجاع میدم به قسمتی که به حالت Bold شده در آوردم و در مورد اون تأمل کنند، چون حوصله توضیح دادن بیشتر از این رو ندارم.
---------------
wow!!
دوستان بهتره اول Asp.Net رو "ASPX" خطاب نکن، بعدا بیان در موردش اضهار فضل کنند!
دمت گرم، خیلی جلب بود. شما که اینقدر از چهارچوب و فریم ورک و اینها می دونید، می تونید اصلی ترین دلیل بوجود اومدن فریم ورک ها رو برای بنده توضیح بدید؟ ( اگر اینو می دونستید، هرگز چنین نظری رو در مورد ASP.NET نمی دادید! )
می خواید بنده همین الان کد Asp.NET رو همون طوری که شما در PHP پیاده کردید رو پیاده سازی کنم؟ تا یکمی با فلسفه پیدایش فریم ورکها آشنا بشید؟ چندین سال پیش همه بخاطر این فریم ورک بودن Asp.Net اون رو به مسخره می گرفتند و مثل شما بخاطر اینکه هیچی از اتفاقاتی که رخ داده اطلاع نداشتن، به تمسخر گرفته می شد، ولی حالا چطور شده که همونا تا بازار فریم ورکهای php گرم شد رفتن سراغ اونها؟!!
در ضمن کسی که برنامه نویس یا توسعه دهنده ی واقعی باشه، باید از اتفاقاتی که رخ می ده با خبر باشه در غیر اینصورت نمیشه بهش گفت برنامه نویس یا توسعه دهنده! بنظرت کسی که هیچ از برنامه نویسی سر در نمیاره می تونه با نرم افزاری که در وبسایت خودتون معرفی کردید، با کیفیتی برابر با کسانی که با برنامه نویسی بازی رو ایجاد می کنند، یک بازی ایجاد کنه؟

همونطور که گفتم شما در Asp.net قدرت انتخاب دارید که چطور web app خودتون رو ایجاد کنید و چطور پیش برید. اگر می خواید از تمامی اتفاقاتی که رخ می ده با خبر بشید خب با خیال راحت می تونید اینکار رو انجام بدید، ولی اگر وقت کافی ندارید، می تونید مانند مثال بالا از update panel استفاده کنید، تا کارتون رو هرچه سریعتر به اتمام برسونید.


ك سؤال داشتم، توي ASPX هم به راحتي PHP ميشه روي تصاوير كار كرد؟ منظورم چيزي شبيه GD هست. لطفاً كتابخانه هاي جانبي (Third-Party) رو معرفي نكنيد چون GD جزو خود PHP هست. منظورم امكانات داخلي (Built-in) هست. معادل PDFlib هم كلاسي در dotNET هست براي كار روي فايلهاي PDF و توليد و ويرايش اونها؟ پس سؤالات فعلاً اينهاست:
1- آيا در ASPX كلاسي معادل كتابخانه GD در PHP وجود دارد (بصورت توكار يا داخلي)؟ الف) بله [] ب) خير []
2- آيا در ASPX كلاسي معادل كتابخانه PDFlib در PHP وجود دارد (بصورت توكار يا داخلي)؟ الف) بله [] ب) خير []
موفق باشيد.

اینطور که معلومه شما حتی خود php رو هم به خوبی نمی شناسید! کی گفتی که gd یکی از امکانات داخلی php هست؟ میشه یک نشونه ای چیزی به بنده بدید؟ gd یک کتابخوانه 3rd party در php هست، حتی تا همین 4-5 سال پیش هم بعضی هاستهای اشتراکی در ایران اون رو غیر فعال یا پشتیبانی نمی کردند! یک phpinfo بگیر بعد برید قسمت gd تا همه چیز رو بفهمید!

1- نه تنها پشتیبانی میشه، بلکه یک چیزی سرتر از اون چیزی که شما در php بهش gd می گید وجود داره، که در Asp.net به اون میگن +GDI !!!
2- جدیدا درجریان نیستم که در ورژن 4 چه چیزهایی قرار داده شده، ولی در ورژن های قبلی هم مانند php بیشمار کلاس برای اینکار وجود داره.

در ضمن، میشه به من بگید که "توکار یا داخلی" یعنی چی؟!!


با سلام دوباره، گفته بودم كه چند مورد در PHP پيدا كردم كه توي ASPX نيست يا اينكه بايد با كلي دردسر پياده سازي كرد. دو مورد رو كه در پست قبلي گفتم. اين مورد رو هم ببينيد:
كنترل كننده شخصي Session در PHP (http://www.php.net/manual/en/function.session-set-save-handler.php)
همونطور كه ميبينيد، در PHP ميشه كنترل كننده كاملاً سفارشي براي Session نوشت. مثلاً سايتتون رو طوري تنظيم كنيد كه Sessionها رو به جاي پوشه tmp توي پوشه خاص خودتون يا حتي توي DB ذخيره كنه. توي لينكي كه گذاشتم، مثال هم براي اين كار گذاشته شده. خوشحال ميشم بدونم ASPX براي اين قابليت چه معادلي ارائه كرده (البته اگه معادلي داشته باشه). اگه معادلي وجود نداشته باشه، ميشه گفت اين مورد يكي از مزاياي PHP هست كه نشون ميده امنيت PHP در كار با Sessionها بالاتر از ASPX هست.
موفق باشيد.

هیچ وقت زود قضاوت نکنید، حداقل یک سرچی در گوگل انجام بدید!!!
http://www.codeproject.com/KB/aspnet/ExploringSession.aspx
http://msdn.microsoft.com/en-us/library/ms972429.aspx

آیا می دونستید که قبل از پیدایش PDO در php اگر نمی دونید pdo چیه بگید تا براتون توضیح بدم:قهقهه: برنامه نویسان و توسعه دهندگان Asp.net با Ado.Net کار می کردند؟ ( یک کپی کاملا آشکارا! ).
حالا یک سوال من از شما می پرسم، شما می تونید بدون استفاده از perl,cgi,python و بدون استفاده از کتابخوانه های مشابه مانند ACE ( اسم دقیقش نمی دونم یادم رفته، شاید اشتباه باشه ) یک اسکریپت آپلود به همراه progress bar بنویدسید؟ بزارید خودم جواب میدم، نخیر نمی تونید، چون با php نمی تونید به پوشه tmp که داده های فایل در حال آپلود، دارن منتقل می شوند دسترسی پیدا کنید! در حالی که اینکار در Asp.net بدون استفاده از هیچگونه کتابخوانه و یا زبانهای دیگر تنها با امکانات داخلی و low level در خود Asp.net اینکار انجام می شود!!!

ببنید من هم php و هم asp.net رو کار کردم، فقط می خوام بگم که: تعصب رو بزارید کنار، تنها کسی برنده است که با هر دو محیط آشنا باشه و با هردو کار کنه!

موفق باشید.

eshpilen
یک شنبه 07 فروردین 1390, 20:41 عصر
خب در اینکه asp با چند تا تگ و ... کار ها رو اسون انجام میده شکی نیست ، نیازی هم به مثال های متعدد نیست .

من اینجا کار و بحث دیگه ای ندارم.
اگر بنظرتون بحث مفیدی نیست پس ما هم بریم به کار و بار خودمون برسیم.
قصد من نشان دادن روش انجام کارهای مختلف در ASP.NET بود.
یعنی How to get the job done
کارفرما یا مشتری میگه فلان چیز رو درست بکن، دیگه کاری نداره شما اونو با چه روش و کدهای داخلی ای انجام میدی. کار نداره با PHP کلی دستی کد مینویسی یا ASP.NET با چنتا تگ برات انجام میده؛ مهم سرعت تحویل و امکانات و کیفیت و امنیت کار نهایی هست. ضمنا میتونم بگم امنیت با ASP.NET بطور طبیعی بیشتر هست، چون برای هرکدوم از امکانات ASP.NET اگر برنامه نویس بخواد در یک پروژهء کامل انبوهی کد بنویسه مسلما توش باگهای متعددی وجود خواهد داشت.


بله باید همینطور باشه ، اما تو asp میشه دید که آژاکس داره چیکار میکنه!؟ اصل ماجرا رو میتونه به آسونی درک کنه!؟
نه. ولی آیا این براش ضرورتی داره؟
ASP.NET یک زبان یا فریمورک هست که به روش کامپوننت وار کار میکنه و در سطحی بالاتر از PHP.
همینطور مثلا PHP هم نسبت به C زبان سطح بالاتری هست.
و C هم نسبت به اسمبلی زبان سطح بالاتری هست.
مسلما هر چه از نظر سطح زبان پایین تر بری و بخوای پروژهء یکسانی رو انجام بدی، با جزییات سطح پایین بیشتری سروکار پیدا میکنی و چیزهای بیشتری رو باید خودت پیاده کنی و دانش گسترده تری پیدا کنی، اما این دلیل بر بد بودن و عدم کاربرد زبانها و امکانات سطح بالاتر مثل کتابخانه های آماده نیست (در PHP هم شما از کلی کتابخانهء آماده دارید استفاده میکنید، آیا به طرز کار اون امکانات درک و بینش دارید؟) و دلیل بر عاقلانه بودن استفاده از زبانها و ابزارهای سطح پایین تر هم نیست.
ضمنا آدم نهایتش اگر به چیزی نیاز پیدا کرد که از قبل براش آماده نبود، میتونه بره یاد بگیره خب!!
از نظر من در این وادیها ASP.NET ضعفی نداره و چیز بدی نیست. چون این اصلا وظیفهء ASP.NET نیست که چیزی رو در این زمینه به برنامه نویس یاد بده. ASP.NET فقط یک ابزار برای استفاده هست، نه یک وسیلهء آموزشی. اگر آدمی که رانندگی بلد نیست رفت نشست پشت اتومبیلی که دنده و کلی چیز دیگش خودکار هست، این بدی و اشتباه اتومبیل نبوده که طرف رانندگی بلد نیست. غیر از اینه؟ از طرف دیگه اگر طرف با یک اتومبیل معمولی آموزش رانندگی یاد گرفت، دلیل بر این نمیشه که مجبور باشه همیشه با اتومبیل دنده دستی رانندگی کنه و یا این کار عاقلانه ای باشه.


یاد میگیره که اژاکس چطور کار میکنه!؟ یا فقط طرز استفاده از 2-3 تا تگ رو یاد میگیره !؟ من خودم اصلا با این برنامه های آماده طراحی کار نمیکنم چون میخوام بفهمم و درک کنم که الان داره چه چیزی اتفاق میافته ، شما هم الان میگی برو اسمبلی یاد بگیر ! درک کردن کار هایی که داره انجام میشه به این معنی نیست که من برم سر نخ رو از 0و1 دنبال کنم.

گفتم که این وظیفهء زبان نیست و بحث ما در اینجا صرفا مقایسهء دو زبان با هم هست، نه اینکه آدمهای بی سواد چطور با این زبان چیزی یاد نمیگیرن.
بطور مثال بنده خودم این مفاهیم رو بلد هستم و کار کردم. آیا من بی سواد هستم یا محکوم هستم همیشه با PHP کار کنم؟
نیازی نیست که آدم همیشه یه کاری رو که بلده تکرار کنه. ما جمع و تفریق و تقسیم بلدیم، اما میدیم این کارها رو رایانه و ماشین حساب برامون انجام بده. حداقل درمورد اعداد بزرگ و مسائل شغلی و مواردی که زیاد باید این اعمال رو انجام بدیم.
از طرف دیگه باید دید اصلا هیچوقت نیازی به انجام دستی اون کارها پیدا میکنیم یا نه. مثلا جایی پیش میاد که امکانات ASP.NET انعطاف کافی نداشته باشن و مجبور بشیم خودمون AJAX پیاد کنیم یا خیر. تازه حتی در اون صورت هم آدم میره یاد میگره خب! در ASP.NET هم شما میتونید همه کار رو خودتون انجام بدید. یادگیری این مسائل هم که وابسته به نوع زبان نیست.


الان برنامه نویس های asp رو که updatepanel رو بلد هستن ، به اکثرشون بگی کد اژاکس رو بدون .net بنویس میتونن!؟
نمیدونم.
منکه بلدم.
ضمنا شاید خیلی ها اصلا بخوان این چیزا یاد نگیرن! به خودی خودش اشکالی نداره. اشکال زمانی پیش میاد که در کارشون اثر منفی بذاره. همین الانش شما و بنده هم نمیدونیم که مثلا فلان توابع که استفاده میکنیم واقعا چطور کار میکنن، ولی نیازی نداریم برای تحویل یه پروژهء کامل و با کیفیت همه این چیزا رو از قبل بلد باشیم چه برسه به اینکه بخوایم دستی خودمون انجام بدیم.


.net برنامه نویسی رو راحت کرده و برنامه نویس رو تنبل ، تو پی اچ پی شما خودت اژاکس رو پیاده سازی میکنی ، کلی هم قدرت مانور داری ، چون جاوا اسکریپت رو مستقیما مینویسی، حالا با فریم ورک های معروف جاوا اسکریپت یا با کد های ساده و میفهمی که الان اینی رو که پیاده سازی کردی یعنی چی!
پاسخ شما رو تا اینجا دادم.


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

ASP.NET با فرانت پیج خیلی فرق داره.
درمورد فرانت پیج اینطور بوده چون کارها رو ویژوال انجام میدی و احتمالا چیزی زیادی هم از HTML نمیدونستی.
اما ASP.NET رو میشه مثل یک زبان/فریمورک برنامه نویسی کامل یاد گرفت و همهء کدهاش رو هم دستی نوشت و دقیقا میدونی هرچیزی چیکار میکنه. اجزاء بصورت کامپوننت هستن، اما کارایی و موارد استفادهء اونا کاملا مشخص هست و میتونی تا حد زیادی اونا رو سفارشی و تنظیم کنی. هیچ کد شلوغ و اضافه ای درکار نیست.


:قهقهه: بعضی ها هم تو همین تاپیک PHP رو شاخه ای از html فرض کرده بودن و بی امنیت و بعدا کلا بحث رو عوض کردند /.
منظورت چیه؟
کیا؟ :متفکر:

eshpilen
یک شنبه 07 فروردین 1390, 20:55 عصر
راستی من احتمالا دیگه خیلی کمتر به این تاپیک سر بزنم. چون بحث یخورده زیاد شاخه شاخه و حجیم و طولانی شد و مطالعه و پاسخگویی تمام موارد مطرح شده هم زمان و انرژی میبره. اخیرا این احتمال پیش آمده که در آیندهء نزدیک مجبور باشم شغل فعلیم رو رها کنم و دنبال کار دیگری بگردم و اونوقت بهتره یادگیری .NET رو تموم کرده باشم تا فرصتهای شغلی رو از دست ندم و اگر جایی تحت عنوان برنامه نویس استخدام شدم راحتی و شانس موفقیت بالاتری داشته باشم. بخاطر همین تصمیم گرفتم مطالعهء یک سوم نهایی رفرنس کلاسهای دات نت رو که باقی مونده هر چه سریعتر تموم کنم. یک سوم ازش مونده، ولی این یک سوم انگار اندازهء دو سوم کل رفرنس مطلب داره، چون رسیدم به اصل بحث برنامه نویسی وب و بعدش هم تازه کلاسهای برنامه نویسی ویندوز و GUI و اینها هست که باید حجم و اهمیت زیادی داشته باشن.
پس فعلا زیاد منتظرم نباشید. شاید دیگه فعالیت منو تا مدت نامعلومی در این تاپیک نبینید.
ضمنا بنده در تمام سوالات و انتقادات مطرح شده لزوما دانش و مهارت یا انگیزهء کافی برای پاسخگویی ندارم. فقط به چیزهایی جواب میدم و مواردی رو مطرح میکنم که بهشون احاطهء کافی احساس میکنم و بنظرم به اندازهء کافی مهم و مفید هستن. شما هم در اینجا به کاری مجبور نیستید و با میل خودتون فعالیت میکنید. هرکس خواست، از متخصصان ASP.NET یا PHP، میتونه تاپیک رو پیش ببره و موارد خودش رو مطرح کنه.

MMSHFE
یک شنبه 07 فروردین 1390, 22:01 عصر
چندین سال پیش همه بخاطر این فریم ورک بودن Asp.Net اون رو به مسخره می گرفتند و مثل شما بخاطر اینکه هیچی از اتفاقاتی که رخ داده اطلاع نداشتن، به تمسخر گرفته می شد، ولی حالا چطور شده که همونا تا بازار فریم ورکهای php گرم شد رفتن سراغ اونها؟!!
تنها بخشي كه به نظرم ارزش جواب دادن داشت (با عرض شرمندگي و توضيح اينكه قصد جسارت و احياناً اهانت ندارم)، همين بخشه و جواب بخشي كه پررنگ كردم، اينه كه توي Frameworkهاي PHP برخلاف ASPX (اين اسم رو خود مايكروسافت در خلاصه نويسيها انتخاب كرده و پسوند صفحاتي هست كه با ASPdotNET ساخته ميشه)، شما دقيقاً از كد پشت صحنه باخبرين چون Open Source هستن. بنابراين علاوه بر اطلاع از پشت صحنه ماجرا، ميتونيد بخش عمده اي از كار رو به عهده فريمورك بگذارين و روي جزئياتي كه بايد خودتون پياده سازي كنيد تمركز داشته باشيد.
راستي طبق چه مدركي ميگين توي PHP نميشه به پوشه tmp دسترسي داشت؟ خدا رو شكر كه اينهمه آپلودر AJAX با PHP همراه با Progress Bar طراحي شده و در سايتهاي مختلف كدش موجوده. لطفاً بدون اطلاعات، ذهن سايرين رو مخدوش نكنيد و اونها رو به اشتباه نيندازيد. به قول دوستمون eshpilen، بهتره با سند و مدرك و مثال عملي كار رو پيش ببرين.
بعلاوه شما امكانات GDI رو بيشتر از GD ميدونيد (بخصوص در زمينه سرعت)؟! جالبه. ضمناً جمله اي كه من گفتم، سؤالي بود. گفتم اگه معادلي نداشته باشه. حالا شما ميگين معادل داره، يك مثال پياده سازي كنيد كه Sessionها رو توي DB ذخيره ميكنه و هرموقع يك Session جديد ايجاد ميشه يك ركورد اضافه ميكنه و هرموقع حذف شد، ركورد حذف بشه و الي آخر. اينهمه لينك دادن نميخواد. لينكي هم كه دادين آنچنان مطلب بدرد بخوري نداشت. خوشبختانه من هم مثل شما با هر دو محيط كار كردم و مدت 7-8 ساله كه از هر دو استفاده ميكنم. پس مطمئنا باشيد كه با امكاناتشون نا آشنا نيستم.
راستي از اون بيشمار كلاسي كه براي كار با PDF هست، ميشه يكي رو مثال بزنيد؟ ميتونيد يك كد بنويسيد كه صفحه دلخواه وب رو به صورت PDF ذخيره كنه؟
گويا شما خيلي وقته كه از PHP دور موندين و نميدونين كه مدت زيادي هست كه GD توسط Zend داره ارتقاء پيدا ميكنه و جزو خود PHP شده. اگه عمري باقي باشه، توي نسخه 6 خواهيد ديد كه از ليست 3rdParty حذف خواهد شد.
موفق باشيد.

binyaft
یک شنبه 07 فروردین 1390, 23:49 عصر
من اینجا کار و بحث دیگه ای ندارم.
اگر بنظرتون بحث مفیدی نیست پس ما هم بریم به کار و بار خودمون برسیم.
قصد من نشان دادن روش انجام کارهای مختلف در ASP.NET بود.
یعنی How to get the job done

بنده گفتم بهتر هست ، مثال هایی زده بشه که ضعف ها و کمبود ها رو معلوم کنه ، گفتم بحث مفید نیست!؟


ASP.NET با فرانت پیج خیلی فرق داره.
درمورد فرانت پیج اینطور بوده چون کارها رو ویژوال انجام میدی و احتمالا چیزی زیادی هم از HTML نمیدونستی.
اما ASP.NET رو میشه مثل یک زبان/فریمورک برنامه نویسی کامل یاد گرفت و همهء کدهاش رو هم دستی نوشت و دقیقا میدونی هرچیزی چیکار میکنه. اجزاء بصورت کامپوننت هستن، اما کارایی و موارد استفادهء اونا کاملا مشخص هست و میتونی تا حد زیادی اونا رو سفارشی و تنظیم کنی. هیچ کد شلوغ و اضافه ای درکار نیست.
میدونم گفتم یاد اون افتادم ، گفتم که اون اوایل ، یعنی هیچی بلد نبودم .
تو asp.net هم وقتی از updatepanel استفاده کردید یاد اون افتادم.

منظورت چیه؟
کیا؟
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&p=1233743&viewfull=1#post1233743

eAmin
دوشنبه 08 فروردین 1390, 12:30 عصر
شما دقيقاً از كد پشت صحنه باخبرين چون Open Source هستن. بنابراين علاوه بر اطلاع از پشت صحنه ماجرا، ميتونيد بخش عمده اي از كار رو به عهده فريمورك بگذارين و روي جزئياتي كه بايد خودتون پياده سازي كنيد تمركز داشته باشيد.
بنده جواب این قسمت رو در پست قبلی خودم دادم: "در ضمن کسی که برنامه نویس یا توسعه دهنده ی واقعی باشه، باید از اتفاقاتی که رخ می ده با خبر باشه در غیر اینصورت نمیشه بهش گفت برنامه نویس یا توسعه دهنده!"
من با جوجه برنامه نویسها کاری ندارم.


راستي طبق چه مدركي ميگين توي PHP نميشه به پوشه tmp دسترسي داشت؟ خدا رو شكر كه اينهمه آپلودر AJAX با PHP همراه با Progress Bar طراحي شده و در سايتهاي مختلف كدش موجوده. لطفاً بدون اطلاعات، ذهن سايرين رو مخدوش نكنيد و اونها رو به اشتباه نيندازيد. به قول دوستمون eshpilen، بهتره با سند و مدرك و مثال عملي كار رو پيش ببرين.
شما خوب سوال من رو خوندید؟ "شما می تونید بدون استفاده از perl,cgi,python و بدون استفاده از کتابخوانه های مشابه"
اتفاقا چون این رو خیلی مطمئن بودم مطرح کردم، در غیر اینصورت خود بنده درجریان هستم که با استفاده php به همراه یکی از زبانهای فوق میشه اینکاررو انجام داد. منظور من به تنهایی بود نه با استفاده از perl و python.


بعلاوه شما امكانات GDI رو بيشتر از GD ميدونيد (بخصوص در زمينه سرعت)؟! جالبه. ضمناً جمله اي كه من گفتم، سؤالي بود.
این جوابی بود که من به شما دادم: "نه تنها پشتیبانی میشه، بلکه یک چیزی سرتر از اون چیزی که شما در php بهش gd می گید وجود داره، که در Asp.net به اون میگن +GDI !!!"
شما در اینجا هیچ اثری از سرعت می بینید؟ منظور من در قدرت بود!


حالا شما ميگين معادل داره، يك مثال پياده سازي كنيد كه Sessionها رو توي DB ذخيره ميكنه و هرموقع يك Session جديد ايجاد ميشه يك ركورد اضافه ميكنه و هرموقع حذف شد، ركورد حذف بشه و الي آخر. اينهمه لينك دادن نميخواد. لينكي هم كه دادين آنچنان مطلب بدرد بخوري نداشت. خوشبختانه من هم مثل شما با هر دو محيط كار كردم و مدت 7-8 ساله كه از هر دو استفاده ميكنم. پس مطمئنا باشيد كه با امكاناتشون نا آشنا نيستم.
دقیقا اون لینکها رو اینجا گذاشتم تا اینجا مثالی رو قرار ندم، چون در لینکهای قرار داده شده اینکار انجام شده! جالبه اگر 7-8 ساله که دارید با هردو کار می کنید پس چرا از امکانی مثل +GDI با خبر نبودید؟


راستي از اون بيشمار كلاسي كه براي كار با PDF هست، ميشه يكي رو مثال بزنيد؟ ميتونيد يك كد بنويسيد كه صفحه دلخواه وب رو به صورت PDF ذخيره كنه؟
http://www.developerfusion.com/code/4266/how-to-create-pdf-files-from-aspnet-pages/
http://www.google.com/#sclient=psy&hl=en&site=&source=hp&q=asp.net+pdf&aq=f&aqi=&aql=&oq=&pbx=1&fp=5f60ec788593df80
http://www.codeproject.com/KB/aspnet/Creating_PDF_documents_in.aspx
البته اگر باز نمی گید اینهمه لینک دادن نمی خواد.


گويا شما خيلي وقته كه از PHP دور موندين و نميدونين كه مدت زيادي هست كه GD توسط Zend داره ارتقاء پيدا ميكنه و جزو خود PHP شده. اگه عمري باقي باشه، توي نسخه 6 خواهيد ديد كه از ليست 3rdParty حذف خواهد شد.
بنده نمی دونستم که منظور شما ورژن 6 بود و نه 5 !!!

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

شما به بحث پربار عملی تون ادامه بدید، اینجور تاپیکها (مقایسه) از پایه و اساس مشکل دارند!

MMSHFE
دوشنبه 08 فروردین 1390, 15:26 عصر
بنده جواب این قسمت رو در پست قبلی خودم دادم: "در ضمن کسی که برنامه نویس یا توسعه دهنده ی واقعی باشه، باید از اتفاقاتی که رخ می ده با خبر باشه در غیر اینصورت نمیشه بهش گفت برنامه نویس یا توسعه دهنده!"
من با جوجه برنامه نویسها کاری ندارم.

ميشه دقيقاً منظورتون رو از جوجه برنامه نويس مشخص كنيد؟ فكر نميكنم اينجا جوجه برنامه نويس داشته باشيم. تا ببينيم نظر شما چيه؟!


شما خوب سوال من رو خوندید؟ "شما می تونید بدون استفاده از perl,cgi,python و بدون استفاده از کتابخوانه های مشابه"
اتفاقا چون این رو خیلی مطمئن بودم مطرح کردم، در غیر اینصورت خود بنده درجریان هستم که با استفاده php به همراه یکی از زبانهای فوق میشه اینکاررو انجام داد. منظور من به تنهایی بود نه با استفاده از perl و python.

شما كه سورس ASPX رو ندارين. از كجا ميدونيد كه امكانات به قول شما Low Level موجود در ASPX از همين زبانها براي انجام كار مذكور استفاده نكرده باشن؟!


این جوابی بود که من به شما دادم: "نه تنها پشتیبانی میشه، بلکه یک چیزی سرتر از اون چیزی که شما در php بهش gd می گید وجود داره، که در Asp.net به اون میگن +GDI !!!"
شما در اینجا هیچ اثری از سرعت می بینید؟ منظور من در قدرت بود!

من كه در GDI قدرتي نميبينم. اگه قدرت ميداشت كه براي برنامه نويسي گرافيك در ويندوز از موتورهاي گرافيكي استفاده نميشد! GDI فقط به درد كاردستي درست كردن ميخوره و بس! حالا اگه نياين بگين GDI رو نميشناسم چون 3 سالي هست كه روي ساخت Game دارم كار ميكنم و انواع و اقسام پردازنده هاي گرافيكي و موتورهاي بازي رو از GDI مسخره ويندوز گرفته تا DirectX و OpenGL و موتورهاي غول آسا مثل Unreal و... امتحان كردم. پس لطفاً در اين مورد بي دليل صحبت از قدرت GDI نكنيد.


دقیقا اون لینکها رو اینجا گذاشتم تا اینجا مثالی رو قرار ندم، چون در لینکهای قرار داده شده اینکار انجام شده! جالبه اگر 7-8 ساله که دارید با هردو کار می کنید پس چرا از امکانی مثل +GDI با خبر نبودید؟
http://www.developerfusion.com/code/4266/how-to-create-pdf-files-from-aspnet-pages/
http://www.google.com/#sclient=psy&hl=en&site=&source=hp&q=asp.net+pdf&aq=f&aqi=&aql=&oq=&pbx=1&fp=5f60ec788593df80
http://www.codeproject.com/KB/aspnet/Creating_PDF_documents_in.aspx
البته اگر باز نمی گید اینهمه لینک دادن نمی خواد.

باز هم فرا فكني! دوست گرامي، لينكهايي كه گذاشتين، يكيش با Crystal Reports فايل PDF ميسازه كه ربطي به dotNET نداره (گفتم توابع داخلي رو مطرح كنيد). يكي ديگه هم كلاسي هست به نام iTextSharp كه باز هم 3rdParty هست و جزو ASPX نيست. سومي هم كه لينك گوگل هست و نتايج جستجو رو آورده و اولين لينكش هم ActiveX مربوط به ASP هست كه همه ميدونن ActiveX به dotNET ربطي نداره و سالها قبل از به وجود آمدنش، بوده و هنوز هم استفاده ميشه و هنوز هم به دليل وابستگي كاملش به ويندوز و عدم پشتيباني در تمامي مرورگرها، كاربرد محدود خودش رو حفظ كرده و نتونسته به جايگاه قابل قبولي برسه.


بنده نمی دونستم که منظور شما ورژن 6 بود و نه 5 !!!

من گفتم مدت زيادي هست كه توسط تيم Zend داره توسعه پيدا ميكنه و از نسخه 6 به بعد رسماً از ليست 3rd Party خارج خواهد شد. نگفتم كه از نسخه 6 به بعد قرار Zend توسعه اش بده. پس همين الآن هم جزو امكانات داخلي PHP هست و همراه با خود PHP نصب ميشه و هيچ ابزار اضافه اي هم نياز نداره كه جداگانه نصبش كنيد. شايد اون زماني كه جدا از PHP بود شما با اين زبان كار نكردين كه بدونيد بايد GD رو جداگانه نصب ميكرديم تا بتونيم ازش استفاده كنيم.


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

eAmin
دوشنبه 08 فروردین 1390, 23:26 عصر
قرار بود من دوباره وارد بحث نشم، ولی مثل اینکه نمیشه.


ميشه دقيقاً منظورتون رو از جوجه برنامه نويس مشخص كنيد؟ فكر نميكنم اينجا جوجه برنامه نويس داشته باشيم. تا ببينيم نظر شما چيه؟!

چه زود به خودتون گرفتید، منظورم شما نبودید منظورم اشخاصی بودند که با نصب یک cms و یا ویرایش یک قالب خودشون رو برنامه نویس جا می زنند و یا فقط کار با update panel رو بلدن و چیزی از اصل کار انجام شده نمی دونند.


شما كه سورس ASPX رو ندارين. از كجا ميدونيد كه امكانات به قول شما Low Level موجود در ASPX از همين زبانها براي انجام كار مذكور استفاده نكرده باشن؟!

با این گفته تون کاملا دستم اومد که دارم با چه کسی بحث می کنم، فقط اگه نمی دونی بدون، سورس کدهای Asp.net موجود هست! شما می تونید از طریق خود ویژوال استودیو اقدام به دانلود اون سورس کدها کنید. البته با یکسری محدودیتها.
کدوم عقل سلیمی میاد این حرف رو میزنه؟ شما اصلا می دونید دارید چی می گید؟ توی Asp.net رویداید های مختلفی وجود داره یکی process request هست که شما می تونید در اون حجم فایل و تک تک بایتهای ارسالی از boundary رو جدا و در یک فایل ذخیره کنید و از این طریق می تونید بفهمید چند درصد از فایل موجود آپلود شده. حالا perl و python اینجا چه دخلی داره، نمی دونم!!


من كه در GDI قدرتي نميبينم. اگه قدرت ميداشت كه براي برنامه نويسي گرافيك در ويندوز از موتورهاي گرافيكي استفاده نميشد! GDI فقط به درد كاردستي درست كردن ميخوره و بس! حالا اگه نياين بگين GDI رو نميشناسم چون 3 سالي هست كه روي ساخت Game دارم كار ميكنم و انواع و اقسام پردازنده هاي گرافيكي و موتورهاي بازي رو از GDI مسخره ويندوز گرفته تا DirectX و OpenGL و موتورهاي غول آسا مثل Unreal و... امتحان كردم. پس لطفاً در اين مورد بي دليل صحبت از قدرت GDI نكنيد.

چی درست کرده ای حالا! شما که 3 سال با این موتورهای غول آسا مثل unreal کار کرده اید؟
هر وقت کار با الگوریتمها (ایجاد اشیائ دو بعدی و سه بعدی، پردازش تصاویر، و ...) رو فهمیدید و تونستید درک کنید، اون وقت بیاد در مورد قدرت GDI بحث کنید! شما اگر بجای اون 3 سال فقط 1 ماه بدرستی وقت می گذاشتید و GDI و یا همون gd خود php رو بدرستی یاد می گرفتید، اون وقت لذت چیزی رو که از پایه خلق می کنید، متوجه میشید که بیشتر از اون چیزی هست که شما با موتورهای گرافیکی و یا DX و GL ایجاد می کنید!
می دونید که موتورهای گرافیکی و ... مثل یک فریم ورک یا کتابخوانه می مونن. ( بالاخره نگفتید اصلی ترین دلیل پیدایش فریم ورکها چی بود؟! )
اگر GDI قدرت نداشته باشه(!) پس Canvas در html5 باید بره جلوش لونگ بندازه! چون کارهایی که به کمک canvas میشه انجام داد یک صدم کارهایی که با GDI میشه انجام داد نیست، ولی اگر شما کارهایی که با canvas انجام شده رو ببینید اونوقت شما میگید canvas بهتر از GDI+ هست!!!


باز هم فرا فكني! دوست گرامي، لينكهايي كه گذاشتين، يكيش با Crystal Reports فايل PDF ميسازه كه ربطي به dotNET نداره (گفتم توابع داخلي رو مطرح كنيد). يكي ديگه هم كلاسي هست به نام iTextSharp كه باز هم 3rdParty هست و جزو ASPX نيست. سومي هم كه لينك گوگل هست و نتايج جستجو رو آورده و اولين لينكش هم ActiveX مربوط به ASP هست كه همه ميدونن ActiveX به dotNET ربطي نداره و سالها قبل از به وجود آمدنش، بوده و هنوز هم استفاده ميشه و هنوز هم به دليل وابستگي كاملش به ويندوز و عدم پشتيباني در تمامي مرورگرها، كاربرد محدود خودش رو حفظ كرده و نتونسته به جايگاه قابل قبولي برسه.

ببینید کی داره به بنده میگه که فرافکنی میکنم!
pdflib از اول پیدایش یک کتابخوانه جدایی از php بود، به مرور زمان و بعدا بخاطر اینکه هیچ چیزی بصورت درونی در php برای کار با pdf نبود این کتابخوانه بصورت داخلی قرار داده شد! (البته هنوز هم به عنوان extension بکاربرده شده). اتفاقا crystal report خیلی هم به dotNet ربط داره! چون dll های مربوط کریستال بصورت خودکار با dotNet نصب می شوند! وقتی میشه با crystal report فایلهای pdf ایجاد کرد مایکروسافت بیاد دوباره اینکار رو بکنه؟
الان هرکسی که استاندارد و الگوریتم ایجاد فایلهای pdf رو بفهمه خیلی راحت می تونه این نوع فایلها رو ایجاد کنه! حتی با JavaScript هم میشه اینکار رو کرد. دیگه قرار دادن چنین چیزی برای مایکروسافت مثل آب خوردن هست.


من گفتم مدت زيادي هست كه توسط تيم Zend داره توسعه پيدا ميكنه و از نسخه 6 به بعد رسماً از ليست 3rd Party خارج خواهد شد. نگفتم كه از نسخه 6 به بعد قرار Zend توسعه اش بده. پس همين الآن هم جزو امكانات داخلي PHP هست و همراه با خود PHP نصب ميشه و هيچ ابزار اضافه اي هم نياز نداره كه جداگانه نصبش كنيد. شايد اون زماني كه جدا از PHP بود شما با اين زبان كار نكردين كه بدونيد بايد GD رو جداگانه نصب ميكرديم تا بتونيم ازش استفاده كنيم.

شما گفته بودید که از 3rd party خارج شده، نگفته بودید که قراره خارج بشه! خود بنده هم در جریان هستم که در ورژن 6 قرار از لیست 3rd party خارج بشه.


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

چشم استاد! من گفته خودم رو اصلاح می کنم: بعضیها

MMSHFE
سه شنبه 09 فروردین 1390, 09:57 صبح
دوست گرامي، شما كه اينهمه از موضع قدرت با سايرين صحبت ميكنيد، بد نيست بدونيد منظورم از سورس ASPX، سورس سايتي كه خودتون مينويسيد نيست. منظورم سورس dotNET Framework هست. نكنه ميخواين بگين كه مايكروسافت هم به جمع OpenSource پيوسته و ما خبر نداريم؟ همين رويداد ProcessRequest رو ميدونيد با چه زباني نوشتن كه اينقدر ادعا ميكنيد از Perl و CGI و... توش استفاده نشده؟ اگه يكم اصول طراحي وب سرور رو ميدونستيد، اونوقت متوجه ميشدين كه هيچ راهي به جز توابع Perl و CGI وجود نداره كه بشه مستقيماً با بايتهاي ارسالي و دريافتي سرور كار كرد. لابد ميدونيد كه CGI فايلهاي اجرايي روي سرور هستن كه به درخواستهاي كلاينت جواب ميدن و چون روي سرور مستقر شدن و مجوزهاي دسترسي لازم رو ازطرف سيستم عامل سرور دارن، ميتونن به داده هاي ارسالي ازطريق شبكه دسترسي داشته باشن. چيزي كه نه PHP و نه ASPX و نه هيچ زبان سمت سرور ديگري بهش دسترسي نداره. ضمناً در مورد كلاس GD و PDFlib هم من گفتم مدت زياديه كه توسط تيم توسعه خود PHP داره پيشرفت و توسعه پيدا ميكنه و اين يعني جزو PHP شده. نكنه Crystal Reports رو هم مايكروسافت داره توسعه ميده كه ميگين جزو VSdotNET هست؟ اگه بخوايم فقط نصب شدن همراه با نرم افزار رو حساب كنيم، وقتي خودتون توي VSdotNET يك Setup Project براي برنامه خودتون مينويسيد، به نحوي تنظيم ميشه كه dotNET Framework و SQL Express و... هم درصورت نياز همراه برنامه نصب بشه. بنابراين ميتونيد ادعا كنيد كه اين برنامه ها هم جزو برنامه شما هستن؟!
بعد هم نيازي نيست كارهايي كه توليد كردم رو به شما يا فرد ديگري معرفي كنم. فقط خواستم بدونيد با تمام اين موارد كه گفتين كار كردم. شما به من ميگين كه الگوريتمهاي ايجاد اشياء دو بعدي و سه بعدي و... رو نميدونم؟ شايد شما علم غيب دارين و من خبر ندارم. شايد هم راست بگين. در اين مورد، فعلاً يك تهمت به بنده زدين كه واقعاً اون رو شايسته خودم نميدونم. فقط به همين موضوع بسنده ميكنم كه چندين مقاله در سايت persian-designers.com درمورد ساخت بازي منتشر كردم و كتاب بنده هم درمورد آموزش ساخت بازي با #C و XNA چاپ شده و در بازار موجوده. الآن هم دارم با UDK كار ميكنم و يك پروژه ساخت بازي در سطح ملي داريم انجام ميديم كه وقتي به مرحله اجرا برسه، خواهيد ديد كه كيفيتي در حد Gears of War خواهد داشت. سعي هم بر اينه كه با حداقل نيازهاي سخت افزاري اجرا بشه. درنتيجه كمي كند پيش ميريم كه ارزشش رو داره. بنابراين وقتي ميگم GDI قدرت زيادي نداره، دقيقاً ميدونم كه چي دارم ميگم. GDI رو با Canvas مقايسه ميكنيد؟ خوب معلومه كه GDI قويتره چون اصلاً قرار نيست با HTML به تنهايي بشه هر كاري كرد وگرنه چرا زبانهاي ديگه طراحي وب توليد شدن؟ شما اگه به قول خودتون كاملاً با GD كار كرده باشين و كمي هم منصفانه قضاوت كنيد، اونوقت ميفهمين كه GDI قدرت آنچناني در مقايسه با GD نداره. در بحث سرعت هم كه كلاً بايد بيخيال مايكروسافت و محصولاتش بشيم.
راستي، واقعاً با JavaScript ميتونيد PDF بسازيد؟ چه جالب! لابد باز ميخواين لينك بدين و لينكي هم كه ميگذارين موضوعش يك چيز ديگه از آب در مياد!
اون محدوديتهايي كه هم درمورد دانلود سورس ASPX ازطريق ويژوال استوديو ذكر كردين هم بد نيست دوستان بدونن. اين محدويتها شامل اين ميشه كه شما فقط ميتونيد ساختارش رو دريافت كنيد نه سورس كدش رو. نكنه خداي نكرده در مفهوم سورس كد با هم اختلاف نظر داريم؟!
موفق باشيد.

alonemm
سه شنبه 09 فروردین 1390, 13:25 عصر
با سلام، دوست گرامي اين حرفتون به نظرم صحيح نيست كه ميگين فريموركها از خود زبان ساخته شده اند.
كلاً تعريف Framework يعني چهارچوب كاري. حالا بعضي فريموركها مثل dotNET، يكسري زبان براساس استانداردهاي اونها ساخته ميشه و برخي مثل Zend و Cake و... ازطريق كدهاي يك زبان ايجاد ميشن. مهم اينه كه براي كدنويسي تحت هر چهارچوب كاري، بايد از توابع و ساختارهاي ارائه شده توسط همون فريمورك استفاده كنيد.
مجدداً تأكيد ميكنم ASPX رو يك زبان به حساب نيارين چون اصلاً Syntax و Semantics و... مخصوص به خودش كه تعاريف بنيادين يك زبان هستن رو نداره. ساختار طراحيش كه مال HTML هست و فقط يكسري تگ (با حفظ همون ساختار و عدم معرفي ساختار جديد) بهش اضافه كرده و كدهاي پشت صحنه هم با #C يا VBdotNET و... نوشته ميشه. درنتيجه نميشه اون رو يك زبان به حساب آورد.
موفق باشيد.
سلام دوست من:
در مورد سخن شما باید بگم که PHP یک زبان اسکریپتی هست و نمیشه توی این مورد با ASPX مقایسه بشه.
چون در PHP مایک زبان اسکریپتی برای نوشتن با یک سینتکس خاص داریم.
اما در ASPX ما رفتار و کنترل های تحت وب داریم که برای کد نویسی و سینتکس از یکی از زبان های VB و یا C# استفاده میشه.
و دات نت فریم ورک چارچوب کاری و رفتارها و در کل سیتنکس برنامه نویسی ماکروسافت هست و در قالب چند مدل زبان برنامه نویسی از قبیل F# و vb و C# و ... ارائه شده.

پس فریم ورک ها رو که یک تیم برنامه نویسی با استفاده از خود زبان برنامه نویسی برای راحتی کار مینویسند رو با فریم ورک ماکروسافت که مختص به یک زبان خاص برنامه نویسی نیست اشتباه نگیرید.
(در ضمن من خودم با PHP 2 شروع کردم و با .net ver 1 و با هر دو زبان آشنا هستنم)

موفق و پیروز باشید.

MMSHFE
سه شنبه 09 فروردین 1390, 14:12 عصر
با سلام، حرفتون رو قبول دارم ولي به خدا همش تقصير مايكروسافته كه اسم اين تكنولوژي خودش رو گذاشته فريمورك! وگرنه من اصلاً اون رو يك فريمورك نميدونم چون با زباني نوشته شده كه از اون زبان در نوشتن پروژه ها استفاده نميشه! براي مثال، مسلمه كه dotNET Framework رو با #C يا VB يا #F يا حتي ++C (به تنهايي) ننوشتن!
موفق باشيد.

alonemm
سه شنبه 09 فروردین 1390, 15:32 عصر
با سلام، حرفتون رو قبول دارم ولي به خدا همش تقصير مايكروسافته كه اسم اين تكنولوژي خودش رو گذاشته فريمورك! وگرنه من اصلاً اون رو يك فريمورك نميدونم چون با زباني نوشته شده كه از اون زبان در نوشتن پروژه ها استفاده نميشه! براي مثال، مسلمه كه dotNET Framework رو با #C يا VB يا #F يا حتي ++C (به تنهايي) ننوشتن!
موفق باشيد.

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

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

موفق و پیروز باشید.

eshpilen
جمعه 12 فروردین 1390, 23:20 عصر
بحث فایل آپلود شده و دایرکتوری tmp و Progress Bar مطرح شد.
البته من خودم این ویژگی رو در دات نت ندیدم. شایدم خوندم و یادم نیست.
بهرحال فکر میکنم داستان به این ترتیب باشه که ASP.NET با یک API مخصوص با IIS در ارتباط هست (احتمالا توسط یک مدل Event) که اطلاعات آپلود درحال جریان رو ازش دریافت میکنه.
این معمولا وب سرور هست که تمام این کارهای سطح پایین رو انجام میده. زبانهای سمت سرور یا حتی CGI این کار رو نمیکنن. اگر بخوان این کارهای سطح پایین رو خودشون انجام بدن باید حداقل بخشی از پروتکل HTTP و کارهایی رو که یک وب سرور انجام میده پیاده سازی کنن که بنظرم بیش از حد پیچیده و حجیم هست و نمیشه بر دوش برنامه نویس وب گذاشت. برنامه نویسی وب در سطح سایت و اپلیکیشن به این چیزا دخلی نداره. اون میشه برنامه نویسی سیستمی.
و در عجبم از اینکه گفته شد این کارها در دات نت با پرل یا CGI انجام میشن!!
اگر این امکان در ASP.NET هست خب هست دیگه! قبول کنید که در ASP.NET بهرحال این امکان رو دارید و در PHP ندارید. شاید در آینده در PHP هم گذاشتن اگر بشه (احتمالا به وجود این امکان در آپاچی وابستگی داره). جدا امکان مفیدی بنظر میرسه!!

MMSHFE
یک شنبه 14 فروردین 1390, 12:03 عصر
با سلام، دوست گرامي اين مسئله ميشه همون موردي كه من بعنوان ضعف ASPX مطرح كردم (جزئيات طراحي از ديد شما پنهانه). نتيجه ميشه همين كه ميبينيد: شما ميگين با يكسري API با IIS در ارتباطه و دوستمون هم ميگن اصلاً از Perl و... استفاده نشده درصورتي كه اگه از جزئيات طراحي وب سرور و برنامه نويسي سيستمي اطلاع داشته باشين، دقيقاً ميدونيد كه هيچ راهي به جز Perl و CGI براي دسترسي به اطلاعات خاص سرور نيست و اين مسئله ربطي به API نداره. اميدوارم قبول كنيد كه پنهان كردن ريزه كاريهاي طراحي سايت، يك مزيت نيست.
موفق باشيد.

sadeg-h
یک شنبه 14 فروردین 1390, 12:25 عصر
سلام ،
همین کنترل کننده session توی asp هم هستش ( اینا یه چیزه کلی که بودنشون الزامی فرقی نداره که با چه زبانی باشه)

eshpilen
یک شنبه 14 فروردین 1390, 14:27 عصر
با سلام، دوست گرامي اين مسئله ميشه همون موردي كه من بعنوان ضعف ASPX مطرح كردم (جزئيات طراحي از ديد شما پنهانه).

جزییات طراحی چی؟
مگه در PHP شما به همین مورد وضعیت یک آپلود در جریان دسترسی دارید؟


نتيجه ميشه همين كه ميبينيد: شما ميگين با يكسري API با IIS در ارتباطه و دوستمون هم ميگن اصلاً از Perl و...
قربونت این مسائل در سطح برنامه نویس وب عادی نیست.
برمیگرده به طراحی وب سرور (آپاچی یا IIS) و/یا زبان سمت سرور مورد استفاده (مثلا مفسر PHP).
خلاصه طرز پیاده سازی اینطور چیزها به برنامه نویسی وب دخلی ندارن. برنامه نویس فقط نیاز به یک API در سطح برنامه نویسی داره که بتونه از این امکانات استفاده کنه. البته بطور مثال محیط اجرا کنندهء اون زبان هم ممکنه API خاص خودش رو داشته باشه که از وب سرور میگیره. خلاصه لایه لایه هست دیگه. سطوح مختلف برنامه نویسی و سرویس دهنده ها.


استفاده نشده درصورتي كه اگه از جزئيات طراحي وب سرور و برنامه نويسي سيستمي اطلاع داشته باشين، بابا ماشالا شما باید ۱۲۰ سالی سن داشته باشید.
آخه هیچ زمینه ای نیست که شما درش تخصص و اطلاع نداشته باشید.
میگی هفت هشت گیگ فقط کتاب در زمینهء PHP و اینا خوندی. نمیدونم شایدم عکس و فیلم زیاد داشتن :لبخند:
ماشالا از جزییات همه چیز اطلاع دارید؛ بابا تو دیگه کی هستی :متعجب:



دقيقاً ميدونيد كه هيچ راهي به جز Perl و CGI براي دسترسي به اطلاعات خاص سرور نيست و اين مسئله ربطي به API نداره.اطلاعات خاص؟ دقیقا چه اطلاعاتی؟
وضعیت آپلود در جریان رو میگی؟ این تاجایی که میدونم بر عهدهء نرم افزار وب سرور هست که عمدهء کارهای در سطح پروتکل HTTP رو انجام میده.


اميدوارم قبول كنيد كه پنهان كردن ريزه كاريهاي طراحي سايت، يك مزيت نيست.چه ربطی به طراحی سایت داره :لبخند:

MMSHFE
یک شنبه 14 فروردین 1390, 14:54 عصر
با سلام، موضوع اينه كه وقتي ميخوام درمورد مطلبي اظهار نظر كنم، همه جوانبش رو مطالعه ميكنم و بعد نظر ميدم. واقعاً هم اگه وقت بخواين بگذارين، نيازي نيست اينهمه عمر داشته باشين. بد نيست نگاهي به سايت flazx.com بندازين تا بدونيد اينهمه مطلب رو از كجا گير ميارم. البته اين فقط يكي از منابع هست. راستي، PDFهايي كه ميگيرم شامل عكس هستن ولي فيلم نه! عكسها هم اونقدر زياد نيست كه حجم خيلي زيادي اشغال كنه. خودتون كه اهل مطالعه ebook هستين و ميدونيد كه معمولاً متن خيلي زيادي دارن و از عكس و... زياد توشون خبري نيست. فقط محض اطلاع ميگم كه من 120 سال سن ندارم. 28 سال سن دارم ولي روزانه حداقل 3-4 ساعت مطالعه ميكنم.
موفق باشيد.

eAmin
دوشنبه 15 فروردین 1390, 16:15 عصر
من نمی خواستم دوباره وارد این بحث بشم ولی بهتره دوستمون رو کمی روشن کنیم.


بحث فایل آپلود شده و دایرکتوری tmp و Progress Bar مطرح شد.
البته من خودم این ویژگی رو در دات نت ندیدم. شایدم خوندم و یادم نیست.
بهرحال فکر میکنم داستان به این ترتیب باشه که ASP.NET با یک API مخصوص با IIS در ارتباط هست (احتمالا توسط یک مدل Event) که اطلاعات آپلود درحال جریان رو ازش دریافت میکنه.
بحث پوشه ی tmp در php مطرحه و در Asp.net اینطور نیست.
بطور کلی در asp.net به 2 صورت میشه فایلها رو آپلود کرد، 1: با استفاده از کنترل فایل آپلود و یا استفاده از متد Save و 2: شبیه سازی عملیات آپلود (در اینجا شما تمامی کارهایی که باید برای آپلود فایل انجام بشه رو پیاده سازی کنید.). و برای کار ماهم یعنی progress bar باید گزینه دوم رو انتخاب کنیم.
همونطور که قبلا هم توضیح دادم، در این روش چون اطلاعات رو خام (Raw) دریافت میکنیم، می تونیم اطلاعات دریافتی رو از header ها جدا کنیم. مثل Content-Length , Boundary و... محتوای فایلی که در حال آپلود شدن هست بین boundary وجود داره، حالا ما با استفاده از چند متد این داده ها رو استخراج و توسط FileStream این داده ها رو ذخیره می کنیم. خب می بینید که در اینجا هیچ نیاز به Perl و cgi نیست، و هر فرد بالغی این رو می دونه که برای اینکارها نیاز به وجود Http Parser در وب سرور هست! که آقای eshpilen هم بهش اشاره کردند: "وضعیت آپلود در جریان رو میگی؟ این تاجایی که میدونم بر عهدهء نرم افزار وب سرور هست که عمدهء کارهای در سطح پروتکل HTTP رو انجام میده."

حالا شما به من بگید که حرفی که کاربر MMSHFE (http://barnamenevis.org/member.php?55504-MMSHFE) میزنه درسته؟ هر کی ندونه فکر میکنه ما هیچی بارمون نیست.


درصورتي كه اگه از جزئيات طراحي وب سرور و برنامه نويسي سيستمي اطلاع داشته باشين، دقيقاً ميدونيد كه هيچ راهي به جز Perl و CGI براي دسترسي به اطلاعات خاص سرور نيست و اين مسئله ربطي به API نداره.
شما دیگه ترکوندی، حداقل یک حرفی می زدید که با عقل جور در بیاد!
اینو از دانشنامه ی آزاد برای شما نقل قول می کنیم، به قسمتی که پر رنگ شده دقت کنید:
"The Common Gateway Interface (CGI) is a standard (see RFC 3875: CGI Version 1.1) that defines how web server software can delegate the generation of web pages to a stand-alone application, an executable file. Such applications are known as CGI scripts; they can be written in any programming language, although scripting languages (http://en.wikipedia.org/wiki/Scripting_language) are often used."

حالا ما هیچ اطلاعی از جزئیات طراحی وب سرور نداریم یا شما؟


راستي، واقعاً با JavaScript ميتونيد PDF بسازيد؟ چه جالب! لابد باز ميخواين لينك بدين و لينكي هم كه ميگذارين موضوعش يك چيز ديگه از آب در مياد!
بله میشه با JavaScript فایلهای pdf ایجاد کرد، با استفاده از dataURI در مرورگرهایی که از این امکان پشتیبانی می کنن و در سرور با استفاده از CommonJS!
من هیچ لینک غیر مرتبطی به شما ندادم، این شمائید که نمیخواید خوب ببینید!
http://maraksquires.com/pdf.js/
البته اگر باز نگید "اینکه یکی از امکانات خود JavaScript نیست!"

eshpilen
دوشنبه 15 فروردین 1390, 19:32 عصر
حالا شما به من بگید که حرفی که کاربر MMSHFE (http://barnamenevis.member.php?55504-MMSHFE) میزنه درسته؟ هر کی ندونه فکر میکنه ما هیچی بارمون نیست.
بچه خوبیه، ولی ما دیگه عادت کردیم به ادعاهای عجیبش :لبخند:
میگم بچه خوبیه چون طرفدار بازمتنه، اومد بالاخره مشارکت کرد در یک بحث و کار عملی و بالاخره این جسارت و صداقت میخواد و بابت اینکه به خودش زحمت داده باید ازش متشکر باشیم، برنامه نویسیش هم بد بنظر نمیاد.
فقط یکسری ادعاهایی که میکنه و انگار روی هوا هستن یا ما رو دست انداخته با بقیهء چیزاش تناسب ندارن. اصلا سوژه تولید میکنه این بشر!!

MMSHFE
دوشنبه 15 فروردین 1390, 23:20 عصر
واقعاً براي خودم متأسفم كه با كساني دارم بحث ميكنم كه دانشنامه آزاد رو بعنوان منبع ذكر ميكنن. همونطور كه احتمالاً نميدونيد اين منبع، اصلاً موثق نيست چون هر كس ميتونه بياد و مطالب موردنظرش رو توش بنويسه. ضمناً همون مطلبي هم كه شما پررنگ كردين، گفته اغلب از زبانهاي اسكريپتي استفاده ميشه ولي براي كارهاي سيستمي نميشه از اين زبانها استفاده كرد چون اصولاً چنين زبانهايي بخاطر مسائل امنيتي چنين سطح دسترسي ندارند. طبيعي هست كه وقتي توي چنين بحثي با افرادي چنين كم اطلاع و بعضاً بي اطلاع شركت كنم، بايد هم منتظر باشم كه به من لقب «بچه» داده بشه.
به قول معروف، موسي به دين خود، عيسي به دين خود. شما بمانيد و همون ASPX محبوبتان تا همه كارها رو براي شما بطور خودكار انجام بده و ادعاي طراح وب بودنتون هم گوش فلك رو كر كنه.
اصولاً انگار اين عادت ايراني ملكه ذهنتون شده كه بايد وابسته باشين. خوب چه اشكالي داره، وابسته شركت بزرگي مثل Microsoft بودن هم براي بعضيها خودش يك مزيت بزرگه. محض اطلاع و براي اينكه كسي نگه از مزاياي OpenSource بودن PHP استفاده نميكنم بايد بگم كه يك تيم تشكيل داديم و داريم كلي از ساختارهاي PHP رو تغيير ميديم و حتي بخشهايي از اون رو بصورت كامپايل شده در مياريم كه سرعت بالاتر بره و همچنين يكسري توابع خاص خودمون رو داريم بهش اضافه ميكنيم. ديگران هم اميدوارم با دنبال كردن اين بحث فهميده باشن كي بچه است.
راستي از اون حرفتون هم كه گفتين برنامه نويسيش بد بنظر نمياد هم خيلي خنده ام گرفت. ممنون، شوخي جالبي بود. همين مونده بود كه شما برنامه نويسي من رو تأييد كنيد. متشكرم جناب كدنويس (حيفه اسم برنامه نويس رو خراب كنيم).
از مديران محترم اين سايت و بخصوص بخش PHP بابت لحن تندم عذرخواهي ميكنم.
موفق باشيد.

eshpilen
سه شنبه 16 فروردین 1390, 09:06 صبح
ببین شما خیلی سوژه ای انصافا.
مدام ادعا میکنی.
ولی در بیشتر ادعاهایی که کردی و بنده اطلاعی داشتم و بحث و تحقیق و آزمایش کردم ثابت شد که حرفات بی پایه بودن. مثل ادعای شناخت ASP.NET که مشخص شد چیز زیادی ازش نمیدونی. مواردش که مستند در همین تاپیک هست. کسی که نمیدونه بطور مثال کنترل های ولیدیشن دات نت ولیدیشن سمت سرور مستقل هم انجام میدن، کسی که ادعا میکنه نمیتونه اینطور باشه و میگه مگه میشه، کسی که ادعا میکنی اینا همه امکانات ویژوال استودیو هست، کسی که ادعا میکنه نمیشه در دات نت کد دستی نوشت و کارها رو مثل PHP خودمون و سطح پایین انجام بدیم، اغراق شدید در سختی و پیچیدگی کار با ASP.NET بدون استفاده از ویژوال استودیو، اغراق در حجم و نیاز و مشکل نسبت به ویرایش فایلهای و کدهای تولید شده بصورت خودکار...
معرفی کردن CRC32 بعنوان یک تابع امنیتی و رمزنگاری.

ادعا میکنی یک میلیون درخواست پروژهء PHP دریافت کردی؛ بگذریم از اینکه بعد مشخص میشه خودت یدونه پروژه هم در سایت freelancer انجام ندادی.
ادعا میکنی فقط هفت هشت گیگ مطلب راجع به PHP و مخلفاتش خوندی.
مدام میگی من فلان کار رو کردم یا دارم میکنم و من جزییات همه چیز رو میدونم.
همش ادعا.
در موارد محدودی که پیگیری کردیم مشخص شد ادعاهای شما تا چه حد قابل اعتماد هستن!
تازه اینا که گفتم چند مورد درشتی بود که الان حضور ذهن داشتم و یادمه. همهء ادعاهای شما رو جمع کنیم کلکسیون طنز و خنده میشه.
من نمیدونم شما چطور کتابا و منابع رو میخونی و ادعا میکنی تجربه داری اما در نهایت اینهمه ناآگاهی و اشتباه داری. بنظرم باید در روش مطالعهء خودتون تجدید نظر کنید. همینطوری روخوانی و تندخوانی کردن که نمیشه مطالعه و یادگیری درست و حسابی! لابد خودت رو خیلی نابغه حساب میکنی که اونطوری میخونی و فکر میکنی منابع چیزی ندارن!!
من میخواستم مثل شما فکر و مطالعه کنم تا الان ۲۰ گیگ مطلب خونده بودم!!

خلاصه سعی کن دست از این سوژه بازی برداری. میگن پیش قاضی و معلق بازی؟!
نمیدونم ظاهرا علاقهء زیادی به تبلیغات و زبان بازی داری که جاش اینجا نیست و انگار اشتباه گرفتی مکان و افراد رو و انتظارات بیجا داری. لابد اسم و آدرس دادی به دوست و آشنا و مشتری و شاگرد که بیاین من توی سایت برنامه نویس هستم و واسه همین فقط میخوای تبلیغات و ادعا کنی و ضایع نشی اینجا و دو نفر تحویلت بگیرن. توصیه میکنم که مسائل شخصی و کاری خودتون رو با این چیزا و مکانها و افراد دیگر قاطی نکنید.

سعی کن این نگرش و رفتار اشتباه رو که به ضرر خودت میشه برطرف کنی.

MMSHFE
سه شنبه 16 فروردین 1390, 09:26 صبح
با سلام، حيف كه ادب بهم اجازه نميده مثل شما صحبت كنم. لحن صحبت شما در ساير پستهايي كه دادين هم مشخصه. ترجيح ميدم در جواب بي ادبي شما فقط سكوت كنم. باز هم ميگم، شما كه اينهمه ادعاتون ميشه طراح وب هستين و صرفاً اقدام به آماده خوري محصولات مايكروسافت ميكنيد و منتظرين يك كلاس در dotNET براتون بنويسن و بعد ازش استفاده كنيد، بهتره در همون جهل خودتون غوطه ور باشين.
موفق باشيد.

eshpilen
سه شنبه 16 فروردین 1390, 09:28 صبح
ضمنا اینکه گفتم «بچه خوبیه» به هیچ وجه قصد تمسخر و توهین نداشتم. این رو بصورت یک اصطلاح کلی متداول و از روی تکیه کلامهایی که دارم بکار بردم. لحنم خودمانی بود.
بنده اصولا آدم صریحی هستم و از حقه بازی و کنایه زدن و پشت پرده سخن گفتن پرهیز میکنم.
اگر گفتم بچه خوبیه واقعا منظورم این بوده که آدم خوبی هستی درکل. اگر گفتم برنامه نویسیش بد نیست یعنی واقعا چیزایی بارته. اینکه گفتم بد نیست دقیقا بخاطر همون ادعاهای عجیبی و متعددی بود که در بحثها کردی و ثابت شد اشتباه بودن و بخاطر اینکه درکل برام مشخص شده یجورایی روی هوا و سطحی صحبت میکنی و/یا میفهمی. وگرنه میگفتم برنامه نویس خوبی هست. منکه از شما زیاد برنامه ندیدم، ولی آدم با اینهمه اشتباه فاحش بنظر من بعیده برنامه نویس خیلی خوبی باشه.

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

eshpilen
سه شنبه 16 فروردین 1390, 09:45 صبح
با سلام، حيف كه ادب بهم اجازه نميده مثل شما صحبت كنم. لحن صحبت شما در ساير پستهايي كه دادين هم مشخصه. ترجيح ميدم در جواب بي ادبي شما فقط سكوت كنم.

اینکه شما و خیلی افراد دیگه صراحت و رعایت انتظارات احساسی دیگران رو نکردن رو بی ادبی میدونن ناشی از ضعف و انتظارات بی جای خودتونه. هرکسی ضعفها و احساسات و انتظارات نادرستی داره، و نمیشه رعایت همه رو کرد؛ اونم در مکان و بحثهای تخصصی و جدی.
از نظر من هم بعکس قاطی کردن مسائل نادرست باهم و انتظارات بی جا هست که کار زشتی هست.
حق همه در اینجا استفادهء بهینه در راستای تعریف و هدف اصلی که بحث تخصصی و روشن شدن واقعیت ها می باشد هست. و کسانی که با داخل کردن مسائل دیگه در این امور خدشه وارد میکنن دارن به حقوق بنده و دیگران تجاوز میکنن (بخاطر منافع و احساسات و ضعف های شخصی خودشون).


باز هم ميگم، شما كه اينهمه ادعاتون ميشه طراح وب هستين و صرفاً اقدام به آماده خوري محصولات مايكروسافت ميكنيد و منتظرين يك كلاس در dotNET براتون بنويسن و بعد ازش استفاده كنيد، بهتره در همون جهل خودتون غوطه ور باشين.
موفق باشيد.
من ادعای خاصی نکردم.
بعدشم مقایسه و یاد گرفتن یه زبان و فریمورک دیگه بخاطر بازار کار و مزایایی که در کاربردهای مناسب خودش داره چه اشکالی داره؟ بنده PHP رو هم یاد گرفتم و استفاده کردم و میکنم و واقعا دوستش دارم و مفید و مناسب درجاهای خودش میدونم. بخصوص که طرفدار و معتقد جدی به لزوم و برتری نرم افزارهای آزاد/بازمتن هم هستم.
بعلاوه بنده با این بحث میخواستم کمکی هم به افرادی کرده باشم که میان انتخاب این دو گیر کردن و بخصوص ممکنه بر اثر شرایط و انتخاب اشتباهی که بکنن براشون مشکلات جدی (بخصوص از نظر مالی) پیش بیاد.

رضا قربانی
سه شنبه 16 فروردین 1390, 11:19 صبح
دوست عزیز MMSHFE و eshpilen (http://barnamenevis.member.php?148005-eshpilen)
شما دو نفری بودید که تاپیک رو آغاز کردید و دو پست اول برای شماست و خیلی هم تمایل داشتید و حالا با هم درگیر شدید و یواش یواش داره بالا می کشه که این اصلا خوب نیست.
بچه ها کم آوردید فحش بدید :لبخند: ( شوخی)

ما تا وسط های تاپیک دنبال کردیم و دیدیم که فایده ای نداره و وقت تلف کردن هست و از همین الآن هم می گم ادامش وقت تلف کردنه

منتها منتها ، شما توی این تاپیک می خوایید چه چیزی رو مشخص کنید ؟ روی هم رو کم کنید ؟ واسه خودتون دشمن درست کنید ؟ asp بالاتره و بهتره ؟ یا php ?
اول اینکه شما اومدین توی قسمت php این تاپیک رو ایجاد کردید که کار درستی نیست (انصاف برقرار نیست). من به شخصه php کار می کنم و شما میایید جولوی پیشرفت من رو می گیرید با حرف هاتون !!!!!!!!!!

آقا من می گم این تاپیک رو بی خیال شید . آقا شما می گید asp بهتره . خب برین سراغ asp و منم می گم بهتره . باز چی کار به ما دارید که می خوایید ایمان ما نسبت به آقای php بزرگ رو سست کنید ؟؟؟؟

هر کسی به چیزی علاقه داره ،asp بهتره خب یکی php رو بهتر یاد گرفته و می تونه بهتر با php کار کنه نسبت به asp و درخواست ها رو پیاده سازی کنه.


در کل می گم این کار اصلا درست نیست ، وقت زیادی رو دارین اینجا تلف می کنید که می تونید با هم دیگه طی این وقت یک سایت کامل بسازید!!!

بازم بنده از همه معذرت خواهی می کنم که چنین حرف هایی رو زدم .

موفق باشید دوستان

alonemm
سه شنبه 16 فروردین 1390, 13:50 عصر
باو منتظرين يك كلاس در dotNET براتون بنويسن و بعد ازش استفاده كنيد،
باسلام
فقط در جواب این حرف نادرست شما باید بگم:
که در دات نت شما خودتون با ایجاد کتابخانه کلاس ها میتونید هر کلاس و متدی بسازید و اونو به یک DLL تبدیل کنید و در هر پروژه ای استفاده کنید.
اگه هم ورژه جدید از دات نت بیاد که کلاس هایی جدید داشته باشه که چه بهتر.

موفق باشید.

MMSHFE
سه شنبه 16 فروردین 1390, 13:58 عصر
دوستان عزيز، من هم قبول دارم كه اين بحث داره به جاهاي بي ربط كشيده ميشه. عنوان بحث، مقايسه عملي با نمونه كد بود و تا اينجا هم ديديم كه ميشه با ارائه يكسري كدها و... اقدام به معادل سازي كرد (حالا چه راحت، چه توأم با دردسر و كدنويسي). پس نميشه بگيم بطور قطع يك مورد از ديگري برتر و بهتره. بنابراين پيشنهاد ميكنم اين بحث رو تموم كنيم چون كم كم داريم به توانايي هاي فرديمون هم توهين ميكنيم.
راستي، از سايت Zend مجوز گرفتم و دارم نسخه فارسي Help زبان PHP رو توليد ميكنم و براي اين كار هم آخرين نسخه از PHP Manual رو برام فرستادن. خوشحال ميشم اگه كسي از دوستان تمايل داره، در اين مورد همكاري كنه چون قراره اين راهنما روي سايت قرار بگيره و اسامي تيم ترجمه و... هم توي سايت php.net درج بشه.
موفق باشيد.

m.soleimani
سه شنبه 16 فروردین 1390, 15:04 عصر
راستي، از سايت Zend مجوز گرفتم و دارم نسخه فارسي Help زبان PHP رو توليد ميكنم و براي اين كار هم آخرين نسخه از PHP Manual رو برام فرستادن. خوشحال ميشم اگه كسي از دوستان تمايل داره، در اين مورد همكاري كنه چون قراره اين راهنما روي سايت قرار بگيره و اسامي تيم ترجمه و... هم توي سايت php.net درج بشه.


یه پرسشی برام پیش اومده مگه برای ترجمه کردن Help که مربوط به php هست باید از شرکت زند مجوز بگیرید؟
How to help translate the PHP Manual

If you're interested in helping translate a specific language, then please read the translation section of the PHP Documentation HOWTO (http://doc.php.net/php/dochowto/) and contact the appropriate mailing list. Whether or not your language is shown below, you are very welcome to help translate the PHP Manual from English to another language.

لینک اصلی

http://php.net/manual/help-translate.php

برای دریافت آخرین نسخه php manual هم فکر کنم بدون دردسر مجوز از این لینک بشه به انجامش رسوند

http://www.php.net/download-docs.php

بعد تا جایی که من در جریان هستم شما باید از یه مجراهایی تایید بشید برای مثال شما باید از واژه‌های بعضن بی ربط فرهنگستان زبان فارسی استفاده کنید اگر جزو شروط قرار بدن که نتیجه مطلوب رو نخواهد داد به هر حال امیدوارم همه موفق باشید./

MMSHFE
سه شنبه 16 فروردین 1390, 22:09 عصر
دوست گرامي مجوز به اون معنا كه شما مدنظرتون هست نه چون PHP تحت ليسانس GNU فعاليت ميكنه و هر فردي ميتونه در تكميلش مشاركت داشته باشه. منظور من اين بود كه با اطلاعشون دارم كار ميكنم و اسناد رسمي رو دريافت كردم و بعد از تكميل، اسم بنده و كساني كه توي اين پروژه با من همكاري كنن هم توي فهرست همكاران PHP در قسمت پيشگفتار ذكر خواهد شد. منظورم اينه كه اين كار سر خود و بدون پشتوانه رسمي Zend انجام نميشه. ضمناً نسخه اي كه برام فرستادن، همونيه كه توي سايت PHP.NET هست و امكان جستجو و... داره نه اوني كه ميشه دانلود كرد و معمولاً با قالب CHM عرضه ميشه.
موفق باشيد.

eshpilen
چهارشنبه 17 فروردین 1390, 10:21 صبح
ما تا وسط های تاپیک دنبال کردیم و دیدیم که فایده ای نداره و وقت تلف کردن هست و از همین الآن هم می گم ادامش وقت تلف کردنه

بنظر منکه اینطور نبود.
حداقلش اینه که حقایقی روشن شدن و بخصوص بعضی ادعاهای اشتباه و اغراق هایی درمورد ASP.NET روشن شد که بنظر بنده مهم بودن.
بعدم شما یک نفری که این حرف رو میزنی و نمیتونی از جانب بقیه این ادعا رو بکنی.
از طرف دیگه هنوز بحث تموم نشده و از نظر من موارد دیگری هم باقی موندن که ارزش مطرح کردن داشته باشن؛ مقدار زیادی بحثهای حاشیه ای شد و از طرف دیگه منم وقت نکردم بقیهء ماجرا رو سریع پیش ببرم، ولی ممکنه بعدا در هر زمانی که وقت کردم این کار رو بکنم. فعلا اولویت اول رو به تموم کردن یادگیری دات نت میدم.


منتها منتها ، شما توی این تاپیک می خوایید چه چیزی رو مشخص کنید ؟ روی هم رو کم کنید ؟ واسه خودتون دشمن درست کنید ؟ asp بالاتره و بهتره ؟ یا php ?
میخوایم مشخص کنیم هرکدوم واقعا چی هستن؛ چه ساختار و امکاناتی دارن و چطور ازشون استفاده میشه؛ چه مزایا و معایبی دارن و هرکدوم در کجاها مناسب تر هستن (از نظر فنی).


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

حرفای بچه گانه نزن دیگه!
یعنی چی کی چطوری جلوی پیشرفت شما رو میگیره؟
تازه باید ممنون باشی چیزی یاد میگیری.
از نظر من فرقی نمیکرد میتونستم این تاپیک رو در یکی از دو تالار ASP.NET یا PHP بزنم. جای دیگری هم براش سراغ ندارم. شما پیشنهاد دیگری دارید؟ اینکه تالار PHP رو انتخاب کردم شاید چون دیدم پاسخهایی که در اینجا به افراد بی اطلاع و مبتدی داده میشه که دنبال این هستن که کدوم زبان رو انتخاب کنن بقدر کافی دقیق و کامل و صحیح نیستن و بیشتر یکسری کلی گویی مبهم و سلیقه ای هستن. طرف هیچ چیزی عایدش نمیشد از این گفته ها و حتی ممکن بود از واقعیت و زبان مناسب شرایط و اهداف خودش ۱۸۰ درجه منحرف بشه.
البته این بحث بنظر من برای PHP کارهایی هم که چیز زیادی درمورد ASP.NET نمیدونن خوبه.
من خودم تا قبل از اینکه برم دنبالش نمیدونستم اینقدر با PHP فرق داره؛ البته چیزهایی رو از روی نتایج عملی حدس زده بودم.
و اینو بگم که خیلی افراد و جاها انتظار دارن که شما حداقل از اینکه ASP.NET واقعا چطوری هست در مقایسه با PHP و جاهایی که مناسب کاربرد یا اهداف شخص خاصی هست اطلاع داشته باشید.
بطور مثال بنده جایی کار میکردم که کدهای یک چیزی رو که با PHP درست کرده بودم به طرف نشون دادم و اون طرف خواست بدونه همون کار در ASP.NET چطور انجام میشه و از اینکه من هیچی در اینمورد نمیدونستم تعجب کرد و ناراضی بود. الان میدونم که همون کار در ASP.NET یک دهم PHP نیازی به کدنویسی نداره چون بصورت یک کامپوننت و سیستم آماده در اختیار هست.

m.soleimani
چهارشنبه 17 فروردین 1390, 13:03 عصر
منظورم اينه كه اين كار سر خود و بدون پشتوانه رسمي Zend انجام نميشه

عزیز دل برادر منظور من هم دقیقن همین هست زند این وسط چی کاره هست؟ محصول مال افراد دیگه هست ترجمه رو یک سری دیگه انجام می‌دن هیچ نفعی هم برای یه شرکت تجاری نداره! شما چرا بحث رو می‌پیچونی اگر برای مثال حرف شما رو سند کنیم پس این پشتوانه باید یه معنی واقعی داشته باشه یعنی شما رو ساپورت مالی کردن؟ « اگر بله!! جزییات لطفن » چون در غیر این صورت من معنی پشتوانه رو نمی‌فهمم « دقیقن برای ما توضیح بدین زند این وسط چی کاره هست همین !! »

مثلن اگر من فردا اومدم یه شرکت زدم که از php استفاده می‌کنه و یه محصول مرتبط با اون زبان رو توی شرکت خودم تهیه کردم این معنی رو می‌ده که من می‌تونم برای خودم مجوز ترجمه اون محصول که دقیقن متن باز و رایگان هم هست و هیچ ربطی هم به من نداره رو صادر کنم ؟!! « اگر دوباره میای یه پاسخ مثل قبلی بهم می‌دی بی‌خیال شو یه پاسخ کامل بده چون این جا شما و من نداره شما داری از طرف یه کشور و یه زبان جلو میری یه چندتا پرسش دارم ازت آیا توانایی انجام کار مورد نظر رو داری؟ آیا فقط خودت به این نتیجه رسیدی که این کار شماست و نه کس دیگه یا این که تعداد زیادی از دوستان متخصص از شما خواستن این کار رو انجام بدین؟ « چرا تا الان کسی به جز شما قصد انجام این کار رو نکرده یعنی تو مملکت ما با این همه طرفدار php و افراد متخصص توی این زبان « در حد کشورمون عرض می‌کنم » کسی پیدا نشده که به این کار دست بزنه »

و این که شما قصد داری با همین تعصب خشک و بدون قابلیت پیش‌رفت و انعطاف این کار رو انجام بدی یا انعطاف پذیری خودتون رو زیاد می‌کنید و برای شنیدن نظرات مخالف و دخیل کردنشون توی کار مورد نظر آمادگی لازم رو دارین؟

پرسش آخر نقش شما توی این جریان چی می‌شه مدیر, همکار, مترجم, هماهنگ کننده در کل چه مسولیتی رو برای خودتون در نظر دارین؟


بعد از تكميل، اسم بنده و كساني كه توي اين پروژه با من همكاري كنن هم توي فهرست همكاران PHP در قسمت پيشگفتار ذكر خواهد شد

در کل همه ایرانی‌ها دوست خواهند داشت که زبان فارسی رو جزو زبان‌های موجود در هر برنامه‌ای ببینن و اگر کسی اقدام به یه همچین کاری بکنه حقش هست ازش به هر شکلی سپاس‌گذاری بشه


ضمناً نسخه اي كه برام فرستادن، همونيه كه توي سايت PHP.NET هست و امكان جستجو و... داره نه اوني كه ميشه دانلود كرد و معمولاً با قالب CHM عرضه ميشه.


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

پ ن: پرسش‌هایی که شد از طرف یه ایرانی و به اندازه سهم خودش بود برای کاری که به نام همه ایرانی‌ها ثبت می‌شه و می‌تونه باعث غرور همه ما بشه یا با کم کاری‌ها و نداشتن تخصص‌های لازم باعث از بین رفتن شخصیت علمی و آبروی مردم ما بشه

موفق و سر بلند باشید./

MMSHFE
چهارشنبه 17 فروردین 1390, 13:32 عصر
عزیز دل برادر منظور من هم دقیقن همین هست زند این وسط چی کاره هست؟ محصول مال افراد دیگه هست ترجمه رو یک سری دیگه انجام می‌دن هیچ نفعی هم برای یه شرکت تجاری نداره! شما چرا بحث رو می‌پیچونی اگر برای مثال حرف شما رو سند کنیم پس این پشتوانه باید یه معنی واقعی داشته باشه یعنی شما رو ساپورت مالی کردن؟ « اگر بله!! جزییات لطفن » چون در غیر این صورت من معنی پشتوانه رو نمی‌فهمم « دقیقن برای ما توضیح بدین زند این وسط چی کاره هست همین !! »
يعني واقعاً نميدونيد كه Zend صاحب امتياز PHP هست؟

مثلن اگر من فردا اومدم یه شرکت زدم که از php استفاده می‌کنه و یه محصول مرتبط با اون زبان رو توی شرکت خودم تهیه کردم این معنی رو می‌ده که من می‌تونم برای خودم مجوز ترجمه اون محصول که دقیقن متن باز و رایگان هم هست و هیچ ربطی هم به من نداره رو صادر کنم ؟!! « اگر دوباره میای یه پاسخ مثل قبلی بهم می‌دی بی‌خیال شو یه پاسخ کامل بده چون این جا شما و من نداره شما داری از طرف یه کشور و یه زبان جلو میری
اينكه يك شركت بزنيد كه از PHP استفاده بكنه فرق ميكنه با اينكه خود PHP رو توليد كنيد. كاري كه ميخوام انجام بدم (البته اگه دوست و همكار پيدا بشه، بصورت جمعي و اگه نشد، بصورت فردي)، ترجمه Help خود PHP هست نه يك محصول كه از PHP استفاده ميكنه. بنابراين طبيعي هست كه شركت توليد كننده PHP بايد اين ترجمه رو تأييد كنه تا همه با اطمينان ازش استفاده كنن، وگرنه كتاب آموزشي و... كه تابحال خيلي زياد درمورد PHP نوشته شده.

یه چندتا پرسش دارم ازت آیا توانایی انجام کار مورد نظر رو داری؟ آیا فقط خودت به این نتیجه رسیدی که این کار شماست و نه کس دیگه یا این که تعداد زیادی از دوستان متخصص از شما خواستن این کار رو انجام بدین؟ « چرا تا الان کسی به جز شما قصد انجام این کار رو نکرده یعنی تو مملکت ما با این همه طرفدار php و افراد متخصص توی این زبان « در حد کشورمون عرض می‌کنم » کسی پیدا نشده که به این کار دست بزنه »
بله توانايي اين كار رو دارم. لابد كسي پيدا نشده كه من الآن ميخوام اين كار رو انجام بدم.

و این که شما قصد داری با همین تعصب خشک و بدون قابلیت پیش‌رفت و انعطاف این کار رو انجام بدی یا انعطاف پذیری خودتون رو زیاد می‌کنید و برای شنیدن نظرات مخالف و دخیل کردنشون توی کار مورد نظر آمادگی لازم رو دارین؟
اگه قراره همكار باشيم، قطعاً نظر سايرين هم در بحث دخيل خواهد بود ولي اونچه كه مسلمه، نهايتاً ترجمه ها توسط يك تيم كه اعضاي اون شامل مترجمين رسمي زبان انگليسي و چند نفر كه مدرك ZCE دارن خواهد بود، بايد مورد تأييد قرار بگيره تا ترجمه ها با هم هماهنگ باشه.


پرسش آخر نقش شما توی این جریان چی می‌شه مدیر, همکار, مترجم, هماهنگ کننده در کل چه مسولیتی رو برای خودتون در نظر دارین؟
دقيقاً اين مواردي كه گفتين، نقش بنده هست، يعني هم توي كار ترجمه مشغولم، هم مدير پروژه و هم توي تيم هماهنگ كننده كه گفتم، عضويت دارم. ضمناً همه هم با هم همكار هستيم ديگه.


در کل همه ایرانی‌ها دوست خواهند داشت که زبان فارسی رو جزو زبان‌های موجود در هر برنامه‌ای ببینن و اگر کسی اقدام به یه همچین کاری بکنه حقش هست ازش به هر شکلی سپاس‌گذاری بشه

خوب اين خيلي خوبه.


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

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

پ ن: پرسش‌هایی که شد از طرف یه ایرانی و به اندازه سهم خودش بود برای کاری که به نام همه ایرانی‌ها ثبت می‌شه و می‌تونه باعث غرور همه ما بشه یا با کم کاری‌ها و نداشتن تخصص‌های لازم باعث از بین رفتن شخصیت علمی و آبروی مردم ما بشه
موفق و سر بلند باشید./
در اين مورد نگران نباشين، اگه ترجمه مناسب نباشه، اصلاً تأييد نميشه كه بخواد شخصي و آبروي ما رو زير سؤال ببره. ضمناً خودم هم جزو همين جامعه هستم ها ! مطمئن باشين من هم به اندازه شما براي اعتبار و آبرومون ارزش قائلم وگرنه اصلاً دست به چنين كاري نميزدم و ميگفتم خوب خودم كه ميتونم باهاش كار كنم و از Document انگليسي اون استفاده كنم، چرا بيام ترجمه كنم؟!
موفق باشيد.

رضا قربانی
پنج شنبه 18 فروردین 1390, 00:36 صبح
آقای eshpilen (http://barnamenevis.member.php?148005-eshpilen) عزیز

شما سرور بنده هستید و ما اصلا قصد توهین به کسی رو نداشتیم و نخواهیم داشت !!!

عرضم به خدمت شما که ، من دارم چی می گم شما دارید چی می گید :لبخند:

میاد چند تا کلمه من رو نقل قول می کنی و مخالفت و سوژه و ما بقی رو ول می کنی - کاری که از اول تاپیک انجام دادید

ما اینجا در حال حاضر از بد و بیرای زیرکانه و روکم کنی رفتیم توی بحث فارسی کردن و این چیزا .
شما همگی سرور بنده هستید و روی چشمم جای دارید
ولی تاپیک به صفحه 12 کشید ... :لبخند:

eshpilen
پنج شنبه 18 فروردین 1390, 10:23 صبح
ولی تاپیک به صفحه 12 کشید ... http://barnamenevis.images/smilies/yahoo/109.gif
خب بکشه مگه چیه؟

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

zoghal
پنج شنبه 18 فروردین 1390, 12:07 عصر
سلام خدمت تمامی دوستان عزیز.

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

تمامی دوستان قبول کنند که هر یک از زبان های asp.net یا php دارای معایب و مزایای مختص خودشون هستند. که نشعت گرفته از پدیدآورندگان یا توسعه دهندگان و سیستم عامل ها و پلت فرم هایی هست که این زبان ها رو پشتیبانی میکنند.

پس زیاد خودتون رو سر این مسئله اذیت نکنید. و کل کل نکنید. چون نقطه آخری نداره این بحث.

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


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

1- در مورد GD , phplib : این دو کتابخانه به هیچ عنوان جز کتابخانه های اصلی پی اچ پی نیست و توسط زند هم توسعه نمیشه. کتابخانه GD به صورت کراس پلت فورم هست در اصل و با سی نوشته شده . وجود اکستنش GD در php دلیل بر توسعه این کتابخانه توسط توسعه دهندگان پی اچ پی (زند ) نیست. حتی اگر شما پی اچ پی رو به صورت دستی دریافت و نصب کنید. می بینید که باید این اکستنشن رو فعال کنید. در ضمن این کتابخانه برای خیلی از زبانهای دیگه هم قابل استفاده هست.


2- من اعتقاد دارم برنامه نویس باید طبق نیاز و شرایطش، زبان مورد نیازش رو انتخاب کنه. فرضا اگر به من بگن یک نرم افزار حسابداری تحت وب می خواهیم 100% به سمت دات نت یا دلفی (introweb) میرم یا بحث اتوماسیون به چند دلیل (استفاده از اسکیوال سرور ، استفاده از کامپننت ها و المنت های آماده و سریع و همچنین ویزاردی بودن کد نویسی و ....) اما اگر بگویند یک سیشوال نتورک بنویس 100% انتخابم پی اچ پی یا روبی خواهد بود.(جاوا رو اسم نمیبارم چون هم قدش نیستم). شاید خیلی ها بگویند که خوب مای اسکیوال اینجوری و اونجوری الان هم که innodb موتور اصلی مای اسکیوال شده و ترانزکشن رو ساپورت میکنه یا با extjs یا فریم ویک های این چنین میتونی راحت کار حسابداری رو ایجاد کنی . اما من میگم با تمام این تفاسیر واسه اینگونه کارها دات.نت رو ترجیح میدهم مخصوصا با کامپونت های atlas

3- در مورد آپلود فایل به صورت ایجکس در پی اچ پی 5.2 این قابلیت به کنم APC امکان پذیر هست.

http://www.ibm.com/developerworks/library/os-php-v525/index.html
یک اکستنشنی هم اومده برای این موارد

http://blog.liip.ch/archive/2009/01/22/uploadprogress-0-9-2-released.html

4-

چندین سال پیش همه بخاطر این فریم ورک بودن Asp.Net اون رو به مسخره می گرفتند و مثل شما بخاطر اینکه هیچی از اتفاقاتی که رخ داده اطلاع نداشتن، به تمسخر گرفته می شد، ولی حالا چطور شده که همونا تا بازار فریم ورکهای php گرم شد رفتن سراغ اونها؟!!

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


5- یک نکته در مورد Ado گفته شد . درست و منطقی بود اما از اون دوست عزیز می خواهم نیمه پر لیوان رو هم ببینید. گرایش دات نت به سمت MVC , ORM این ها هم کپی برداری از فریم ورک های زبان های اوپن سورس هست. دقیقا بعد از دوسال از جا افتادن معماری 3 لایه و orm در فریم ورک های متن باز تازه ماکروسافت گرایش پیدا کرد.

eshpilen
پنج شنبه 18 فروردین 1390, 12:32 عصر
پس زیاد خودتون رو سر این مسئله اذیت نکنید. و کل کل نکنید. چون نقطه آخری نداره این بحث.
هدف ما این نبوده که نقطهء آخری داشته باشه.
اصولا در خیلی مسائل اطمینان مطلق و نقطهء انتها لزوما درکار نیست، ولی این به معنای عدم فایدهء مقایسه و بحث اونها نیست.
مثلا در این بحث حداقلش یکسری ادعاهای نادرست تا اینجا روشن شد. اینکه روش دات نت واقعا چطوری هست هم مشخص شد. الان افرادی که قبلا بی اطلاع بوده باشن با خوندن این تاپیک میفهمن که بطور مثال این ادعا که در دات نت نمیشه کد سطح پایین نوشت و سیستمها رو خودمون پیاده کنیم و فقط محدود به روش و کامپوننت های دات نت هستیم و اگر چیزی از پیش موجود نباشه به بن بست میخوریم، تاحد زیادی بی اساس و اغراق یا فریبکارانه هست. یا مثلا این گفته که بدون ویژوال استودیو برنامه نویسی دات نت خیلی سخت و پیچیده هست یا نیاز داریم فایلها و کدهای بصورت خودکار تولید شدهء دات نت رو دستی ویرایش کنیم و غیره. اینا همش اگر کاملا اشتباه نباشن اما اغراق زیادی بودن. بنده خودم هم در این موارد مطمئن نبودم و بعضی موارد رو در جریان بحث این تاپیک تست کردم و فهمیدم.
بعد مسئلهء مفید دیگر برای اونی که میخواد بین PHP یا ASP.NET یکی رو انتخاب کنه اینه که میفهمه در دات نت کامپوننت ها آماده برای بیشتر کارهای مهم و متداول در برنامه نویسی سایت و اپلیکیشن های استاندارد هست که با کمترین کدنویسی و با نوشتن چنتا تگ و چنتا تنظیم میتونه استفاده کنه، و بنابراین این شخص اگر هدفش صرفا این باشه که بتونه سریع و راحت سایت و اپلیکیشن های عادی رو درست کنه و کمترین کدنویسی رو داشته باشه میدونه که انتخاب ASP.NET فرقش با انتخاب PHP چی هست. درمورد PHP نیاز هست کد بیشتری بصورت دستی نوشته بشه و این سیستمها رو طرف خودش پیاده کنه یا دنبال فریمورک و کد آماده بگرده که تعدد و نیاز به یادگیری و پیوند همهء اونا در یک پروژه دارن. تاجایی که من دیدم این خودش کار راحتی نیست و ضمنا هرچی هم باشه معمولا راحتی و خوانایی و کوتاهی اون به حد ASP.NET نمیرسه.
البته این بحث هنوز مختومه نشده و هنوز آخرین کدهایی رو که ارائه کردن بررسی نکردم و چند مورد دیگه هم حداقل هست که دوست دارم در آینده از کامپوننت های دات نت نشون بدم.

UnnamE
پنج شنبه 18 فروردین 1390, 15:23 عصر
رفيقمون eshpilen راس ميگه
براي بازاكار .net واقعا خوبه!
پروژه هايي كه نياز به نگهداري طولاني مدت و كار با اجزاي ريز و جزيي ندارن واقعا عاليه
بعنوان مثال درس كردن ACL / Auth توي دات نت با چند كليك انجام ميشه در صورتي كه در php اينجور ني
همچنين روي فرامورك هاي مختلف پياده سازي اش واسه افراد تازه كار يا حتي متوسط به بالا گيج كننده ميشه
واسه همين اگه كسي ميخواد سريع پروژه تحويل بده و همه چي به خوبي و خوشي تموم بشه .net

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

eshpilen
پنج شنبه 18 فروردین 1390, 16:56 عصر
یخورده لیبرالیست باشید بابا.
حالا مگه چی میشه؟
یخورده بایت و کاراکتر بیشتر به کسی صدمه نمیزنه. در دنیای دیجیتال اینا هزینه و مشکل اساسی ای محسوب نمیشه.
آدما هرجا بشینن دور هم و بحثی بکنن بالاخره کلی وقت گذرونی و تفریح هم میکنن و حرفای نامربوط هم میزنن. اینجا هم فرقی نمیکنه.
البته بنظر میاد همه عادت به خوندن مطالب حجیم و پیچیده ندارن و بیشتر پستها رو سطحی و ناقص میخونن و خیلی مسائل رو متوجه نمیشن. بهرحال بطور مثال بنده برام اینطور چیزا عادی هست و براحتی گیج یا خسته نمیشم و در میان انبوهی مطلب میتونم موارد مفید و موثق اون رو جدا کنم.
بنظر من اینا مهارت ها و توانایی هایی هست که هرکسی باید بدست بیاره.
ضمنا معلومه خوب کدنویسی و همچنین مطالعهء کد دیگران و تحلیل و بحث دربارهء اون کدها سخت هست و زمان میبره، ولی پستهای دیگه زدن و مطالب کلی گفتن باوجودی که حجمش شاید بنظر زیاد بیاد اما درکل انرژی خیلی کمتری مصرف میکنه و بنظر منکه زیادم وقتی نمیبره. واسه همینه که حجم موارد غیر عملی و بدون کد خیلی بیشتر میشه. ضمنا تعداد افرادی که بقدر کافی احاطه و جسارت داشته باشن تا بخوان کد و کدبازی کنن بنظرم از هر 10 نفر نهایت دو سه نفر بیشتر نیست.
هیچوقت نمیشه مدیریت مطلق همگانی داشت در جایی که مکانی عمومی هست و آزادی کافی برقراره. باید طبیعت آزادی و جامعه رو پذیرفت. اصلا درست نیست بخوایم دیگران رو محدود کنیم یا تاپیک رو ببندیم یا حتی پستهای افرادی رو پاک کنیم. چون بنظر من پستهای این افراد بندرت میتونه مطالب اصلی و مفید رو مخدوش کنه. پست های ما که سرجاش هست. البته شاید اگر مدیریت قوی بود و وقت و حوصلش رو داشت میتونست تاپیک رو مدیریت بکنه، اما آیا منابع این کار واقعا هست؟ چنین مدیر دقیقی با اینقدر وقت و انرژی که بخواد به این کار اختصاص بده هست؟
باید پذیرفت که آزادی سایدافکت های خودش رو داره، اما با این وجود خیلی بهتر از عدم آزادی هست.
خلاصه من نمیدونم شما از چی میرسید و چه مشکلی در این ارتباط دارید. خب اگر دوست ندارید میتونید مطالب نامرتبط رو نخونید. فقط اونایی رو که کد دارن و مستقیما روی کد بحث میکنن بخونید. چه مشکلی هست با عملی بودن این کار؟
دنیای مجازی تاحدود زیادی مثل یه محیط نامحدود از نظر ابعاد و حجم هست که افراد زیادی میتونن همزمان در یک فضای مشترک بدون اینکه کارشون با هم قاطی بشه فعالیت کنن. این بیشتر به تصمیم و توان خود ما برمیگرده که بتونیم و از این خاصیت چقدر استفاده کنیم یا نکنیم.

UnnamE
پنج شنبه 18 فروردین 1390, 17:03 عصر
220% حق با تو ـه، ولي الان همه بحث ميكنن روي حرف هم، وجداني هم بار علمي نداره 99.9% شون!
فقط حرف هاي ناپايدار و بدون سند!

$ M 3 H R D A D $
پنج شنبه 18 فروردین 1390, 17:22 عصر
php کار ها = سخت نویس = خود نویس == برنامه نویس !!!

اونوری ها هم هوووووووووووووووووووووووو وووووو :شیطان:

$ M 3 H R D A D $
پنج شنبه 18 فروردین 1390, 17:28 عصر
راستی اشپیلن آقا !
شما میدونی postback ها و input های مخفی یا wiestate تو دات نت یا حتی regx و کنترل پترن هایی که با جاوا اسکریپت تو سورس و exe صفحه asp میاد برای چیه ؟؟

اگه میدونستی ادعا نمیکردی برای valid با دیتا کلاینت و یا بهتر بگم با جاوا و ... کلری نداره و از حس ششمش میفهمه !!!

eshpilen
پنج شنبه 18 فروردین 1390, 18:08 عصر
اگه میدونستی ادعا نمیکردی برای valid با دیتا کلاینت و یا بهتر بگم با جاوا و ... کلری نداره و از حس ششمش میفهمه !!!
کجا ادعا کردم؟
من قبلا هم گفتم که این کدها رو دات نت بصورت خودکار تولید میکنه و به سمت کلاینت ارسال میشن و در سورس صفحه دیده میشن.
شما چرا همینطوری روی هوا و پستها رو نخونده از خودت حرف درمیاری؟
وب کنترل های ولیدیشن دات نت این کدهای سمت کلاینت رو تولید میکنن که با جاوااسکریپت کار میکنه، اما یک بخش ولیدیشن سمت سرور هم تولید میکنن که بصورت کلی مستقل از جاوااسکریپت و سمت کلاینت هست و اگر بطور مثال جاوااسکریپت مرورگر خاموش باشه یا حتی کدهای جاوااسکریپت بطور مثال توسط یک پراکسی حذف بشن بازهم این کدهای ولیدیشن سمت سرور بدون نقص کار میکنن و شرایطی رو که شما تعیین کردید روی ورودیهای فرم تحمیل میکنن. یعنی ولیدیشن سمت سرور به سمت کلاینت وابسته نیست (و مسلمه که باید هم اینطور باشه، وگرنه هیچ امنیتی نداره).
میتونی خودت تست کنی ببینی.
ضمنا راههای دیگه هم برای تست کردنش هست اگر خواستی نشونت میدم.
فقط ادعای خودت رو مشخص بکن که دقیقا چی هست! آیا شما ادعا میکنی ولیدیشن سمت سرور دات نت وابسته به سمت کلاینت و جاوااسکریپت هست؟

$ M 3 H R D A D $
پنج شنبه 18 فروردین 1390, 19:26 عصر
من دات نت کار نیستم که ادعا کنم تو این زمینه اما مطمئن نیستم صد درصد حق با شما هست
اما تست میکنم حتما
راستی ادعا من !!!
اینه که خودم همه چی و مینویسم و دیگه نمیگم فلان کد و دات نت سمت کلاینت تعولید میکنه و ندونم چطوری ؟

من برنامه نویس هستم نه اینکه بگم فقط کد نویس و یا پی اچ پی کار
و با هر زبونی که نیاز من و رفع کنه و طبق اصول مهندسی خاص مورد و پروژه خاص سازگار باشه با نیازم و یا حتی از نظر تکنولوژی مثل سیلور لایت برتری باشه ( در راحتی طراحی ) ازش استثبال میکنم اما قول شما دوست عزیز این بود که با مثال مقایسه بشه بین زبون ها نه کار به کل کل بشه
من کد یا سمپل زیادی نمیبینم جای بحث زیاد هست
من علاقه شدید به mvc و یا هر ساختار مناسب و راحت و قابل توسعه در دراز مدت هستم که دوست دارم بحث بشه بین اینکه دات نت مار ها درگیر این مثائل نیستد آیا خوبه و محدود شدنشون مناسبه و از ظرف ما این سختی کار خوبه یا بد ؟

UnnamE
پنج شنبه 18 فروردین 1390, 19:43 عصر
نه كلا دات نت كارها اكثرا چيزي بارشون ني!!
البته نبايد زحمت Drag/Drop رو نديده بگيريم!!

eshpilen
پنج شنبه 18 فروردین 1390, 21:47 عصر
تاجاییکه من دیدم وضع PHP کارها هم هیچ بهتر نیست!
فکر کردید دوتا کد سمبل کردن میشه برنامه نویسی و سواد رو خیلی میبره بالا؟
قبلا هم بهتون گفتم فکر نکنید فقط با PHP کار کردن و چیزهایی رو آدم خودش بنویسه لزوما پیشرفت مهمی میکنه.

eshpilen
پنج شنبه 18 فروردین 1390, 21:51 عصر
من علاقه شدید به mvc و یا هر ساختار مناسب و راحت و قابل توسعه در دراز مدت هستم که دوست دارم بحث بشه بین اینکه دات نت مار ها درگیر این مثائل نیستد آیا خوبه و محدود شدنشون مناسبه و از ظرف ما این سختی کار خوبه یا بد ؟ من در بخش MVC تخصص ندارم. ولی میدونم در دات نت هم میشه کد سطح پایین نوشت و چیزها رو خودمون مثل PHP پیاده سازی کنیم. اما کسی این کار رو نمیکنه و عاقلانه نیست بنظرم وقتی دات نت کامپوننت های تر و تمیز و کامل و امن داره واسه بسیاری کارها.
بعدشم دات نت یه ابزاره. قرار نیست ما خودمون رو به یک ابزار محدود کنیم. بحث من این بود که چطور یه برنامه نویس PHP میتونه با برنامه نویس ASP.NET که اینقدر کارش راحتتر و سریعتر هست رقابت تجاری داشته باشه. چون مسلما کار PHP کارها بیشتر هست و زمان بیشتری میبره در خیلی موارد. ضمنا دیگران هم اینو میفهمن و اگر دوست داشتن و هدفشون صرفا پول و بازار کار بود شاید برن دنبال دات نت و بیخودی وقتشون رو با PHP تلف نمیکنن. PHP بدرد هرکسی نمیخوره وقتی دات نت هست. بدرد کسی میخوره که خوره و علاقمند باشه و مایه بذاره و اصولی یاد بگیره و شاید بخواد کارهای شخصی و ویژه هم بکنه و غیره.

UnnamE
پنج شنبه 18 فروردین 1390, 22:22 عصر
در مورد اينكه ميگين برنامه نويسي با asp.net سريع هست و خوراك بر و يچه هاي بازار هست.
من چندتا وبسايت قبلا با php نوشتم و تقريبا 4-5 روز وقتم رو گرفت اون هم اينكه روزانه 2-3 ساعت كار ميكردم روشون
قابليت هايي مث auth/acl , polymorphism , uploading, graph هم داشتند
خب مثلا اگه من ميخواستم اينا رو با Asp.net بنويسم چقد وختم رو ميگرفت ؟ 5 ديقه؟

eshpilen
جمعه 19 فروردین 1390, 05:58 صبح
فقط یه چیزی رو راه انداختن که نیست.
بنده تقریبا همیشه در کدهایی که افراد PHP کار نوشتن ضعف و نقص و اشکالات امنیتی دیدم.
البته برنامه نویسان دات نت هم از این لحاظ فرقی نمیکنن، همه سر و ته یه کرباس هستن :لبخند:
ولی خب چیزی که هست حداقل دات نت خیلی کارایی های پایه و مهم رو بصورت کامپوننت های آماده در اختیار گذاشته که توسط برنامه نویسان حرفه ای نوشته و بررسی و تست شدن. بنابراین میشه گفت امنیت کارهای دات نت در کل بالاتر هست! البته باز کسی نیاد مغلطه کنه و اسم گوگل و فیسبوک و وی بالتین رو بیاره!! چه ربطی داره؟ ما داریم کارای امثال شما رو میگیم. هر وقت به سطح اون برنامه نویسان رسیدید و تونستید دوتا ولیدیشن رو هم درست بنویسید و گوگل استخدامتون کرد بیاید کارایی PHP تون با اونا مقایسه کنید.
ضمنا این ادعای شماست. معلوم نیست راست بگید و/یا برای بقیه هم همینطور باشه.
از طرف دیگه مقایسه کنید کارها رو با کامپوننت های دات نت. همین الان شما بخوای یه چیزی بنویسی که اطلاعات اجناس رو از دیتابیس به شکل جدول نمایش میده، جدول قابلیت مرتب سازی بر اساس هر ستون رو داره، قابلیت حذف و ویرایش و اضافه کردن رو هم میده، قابلیت تقسیم اطلاعات در چند صفحه رو داره. هرکدوم از این امکانات رو بخوای میتونی براحتی فعال و غیرفعال کنی. فرض کن دیتابیس و اطلاعاتش از قبل آماده هست و فقط میخوای این کارها رو انجام بدی. برای شما این چقدر وقت میبره؟ در دات نت این کار با یه کامپوننت آماده در چند خط انجام میشه! فکر نمیکنم دیگه سریعتر از این بشه. تازه مثلا وقتی میخوای همین رو ایجکسی کنی، میذاریش توی دوتا تگ و چنتا تنظیم انجام میدی و تمام! و کارهای مشابه دیگر. خلاصه برای تقریبا تمام سناریوهای استاندارد، دات نت کامپوننت و روشهای از پیش آماده داره که کار رو به حداقل ممکن میرسونن.
نمیدونم مثلا میخوای صفحه رو کش کنی، و این کش مثلا بر اساس آپدیت شدن یک جدول در دیتابیس یا تغییر نتایج یک کوئری باشه، میخوای بر اساس تغییر محتویات یک فایل باشه و غیره، همهء اینا هم باز روشهای سرراست و حداقل کدنویسی رو داره.
برای رجیستر و لاگین و تعیین رل هم بدیهی هست که دات نت کامپوننت آماده داره.
در PHP برای همهء این کارها یا باید دنبال فریمورک و کامپوننت بگردی و همه رو یاد بگیری و با هم ترکیب کنی و بنظرم بهرحال کدنویسی خیلی بیشتری خواهد داشت در کل، یا خودت بنویسی. دات نت از این نظر که اینا رو حاضر و آماده داره و یادگیری دات نت برای دستیابی و استفادهء بی دردسر از تمام اینا کافیه خیلی مناسب هست بخصوص برای افرادی که میخوان سریعا زبانی یاد بگیرن که بتونن باهاش براحتی وارد گرفتن سفارش های تجاری بشن. نیازی نیست خیلی گسترده و متنوع و میان فریمورک ها و کدها و کامپوننت های موجود متعدد جستجو و تحقیق کنن و چیزهای اضافه یاد بگیرن و چنتا رو امتحان کنن و همه رو با هم ترکیب کنن. همهء اینا آنچنان کار کمی هم نیست. خیلی افراد اصلا نمیخوان یا نمیتونن وقت و انرژی اضافه برای هرچیزی بذارن. وقتی کارشون رو دات نت بصورت استاندارد و قابل اطمینان و سرراست انجام میده، چرا برن دنبال چیز دیگه؟

رضا قربانی
جمعه 19 فروردین 1390, 11:56 صبح
به نظر من ASP یه مقدار بازار کار مارو خراب می کنه.

مثلا ما یه سایت داینامیک معمولی رو که باید یکی دوماه روش با php کار کنیم و 2 میلیون می گیریم و طرف می ره همون سایت رو با asp می زنه و یارو بهش 400-300 می گه.

همیشه آقای eshpilen (http://barnamenevis.member.php?148005-eshpilen) عزیز این رو در نظر داشته باشید که با php شما هر کاری که بخوایید می تونید انجام بدید ، با خودت می گی با asp هم می شه ولی در php شما وقتی جریان کلیش رو بگیری، خیلی راحت می تونی یه برنامه ریزی و درک کلی بکنی و همون رو پیاده کنی.
درک php راحت تر و کارآمد تره و کسی که می خواد برنامه نویسی تحت وب شروع کنه اول باید با php شروع کنه ! نه ASP
php برای ایده های جدید ساخته شده چون به برنامه نویس این امکان رو می ده که فکرش بازتر باشه چون php رو باید تک تک کلمات رو با دستمون بنویسیم و این باعث افزایش هماهنگی و ایده های جدید می شه.
نمی دونم تونستم معنی جمله خودم رو به شما ابلاغ کنم یا نه !!

UnnamE
جمعه 19 فروردین 1390, 12:23 عصر
ميگي Pagination و كاركردن با Database و اين بند و بساط كه خودم ننويسم ميرم از كلاس محترم Zend_Pagination , Zend_Db_Table استفاده ميكنم
توجه داشته باش نگفتم Framwork Zend گفتم فقط يكي از كلاس هاش!
اونوفت با e-texteditor هم، بدون هيچ visual و اين بند و بساط
اين يعني من پرستيژ دارم يا استفاده از كلاس ها آسونه ؟

eshpilen
جمعه 19 فروردین 1390, 13:28 عصر
به نظر من ASP یه مقدار بازار کار مارو خراب می کنه.

مثلا ما یه سایت داینامیک معمولی رو که باید یکی دوماه روش با php کار کنیم و 2 میلیون می گیریم و طرف می ره همون سایت رو با asp می زنه و یارو بهش 400-300 می گه.

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


همیشه آقای eshpilen (http://barnamenevis.member.php/?148005-eshpilen) عزیز این رو در نظر داشته باشید که با php شما هر کاری که بخوایید می تونید انجام بدید ، با خودت می گی با asp هم می شه ولی در php شما وقتی جریان کلیش رو بگیری، خیلی راحت می تونی یه برنامه ریزی و درک کلی بکنی و همون رو پیاده کنی.
دات نت رو هم خوب و اصولی یاد بگیری انعطاف و تمهیدات زیادی برای گسترش و سفارشی سازی داره.
در زمینهء اپلیکیشن فکر نمیکنم کم داشته باشه.
اما امکان داره در بعضی موارد و کاربردها PHP مناسب تر باشه. عمدتا کارهای خیلی ابتکاری و ویژه و غیره که از امکانات آمادهء دات نت نمیشه به اون صورت در اونا استفاده کرد. اونجا ممکنه PHP جذاب تر و راحتتر باشه و دنگ فنگ کمتری داشته باشه. ضمنا مثلا Weak type بودنش هم میتونه تاثیر خوبی داشته باشه. سی شارپ Strong type هست، ولی بخاطر اینکه در دات نت با کامپوننت های از پیش آماده و عالی کار میکنید با اینطور جزییات سطح پایین خیلی کمتر کار دارید و کمتر تاثیر میذارن. اما اگر قرار باشه زیاد سطح پایین و با تمام جزییات کار کنیم و عمدهء یه برنامهء بزرگ و پیچیده اینطور کارها باشه که از کامپوننت های آمادهء دات نت استفاده نمیکنیم، اونوقت میشه گفت PHP مناسب تره.
فکر میکنم دات نت بیشتر برای کارهای تجاری متعارف و استاندارد مناسب هست. شاید یه چیزایی که بیشتر خصیصهء کلیشه ای بودن رو دارن، اما خب بخش بزرگی از بازار کار رو تشکیل میدن.


درک php راحت تر و کارآمد تره و کسی که می خواد برنامه نویسی تحت وب شروع کنه اول باید با php شروع کنه ! نه ASP
php برای ایده های جدید ساخته شده چون به برنامه نویس این امکان رو می ده که فکرش بازتر باشه چون php رو باید تک تک کلمات رو با دستمون بنویسیم و این باعث افزایش هماهنگی و ایده های جدید می شه.
نمی دونم تونستم معنی جمله خودم رو به شما ابلاغ کنم یا نه !!درکش راحتتره، ولی خیلی افراد از یه سطح محدود و مقدماتی بیشتر پیش نمیرن و فکر میکنن برنامه نویسی همون سمبل کردن کدها و راه انداختن یه چیزی هست. چون واقعا فقط با سر و کله زدن با کدها نمیشه یه برنامه نویس واقعی شد. خیلی مسائل دیگه هست که خارج از اون باید دنبالشون رفت؛ از الگوریتم و رمزنگاری بگیر تا ساختمان داده و پروتکل ها و استانداردها و غیره. خیلی مسائل تئوریک وجود دارن که ده سال هم کار عملی بکنی نمیتونی بقدر کافی کامل و عمیق بفهمی.
الان از برنامه نویسان PHP همینجا کی نشسته مثلا RFC پروتکل HTTP1.1 رو بخونه؟ اصلا کدومشون اینقدر توانایی دارن که اینطور منابع رو بخونن و تقریبا کامل بفهمن؟ فکر میکنید RFC خوندن و فهمیدن کار هرکسی هست؟ این منابع برای Implementer ها و برنامه نویسان خیلی قوی و پیشرفته هستن؛ تا یه حدی باید دانشمند این رشته باشی تا اینکه صرفا کدنویس. و باید بگم سطحی که بنده درمورد سواد و توانایی حدود 80% افراد میبینم، خیلی از این حرفا فاصله داره. مثل اینکه طرف فقط الفبا و خوندن و نوشتن عادی رو بلد باشه و بعد ازش انتظار داشته باشیم کتاب درمورد ادبیات و شعر تالیف کنه! اصلا اینا برنامه نویس نیستن. باید برن غاز بچرونن بنظر بنده!! البته ببخشیدا که اینطور میگم. بهرحال فکر میکنم چون شخص خاصی رو نام نمیبرم مشکلی نداشته باشه. هرکس دوست داره خودش رو جزو اون 20% حساب کنه :لبخند:
آخه چیزایی مثل دوتا شرط گذاشتن و نام کاربری و پسورد چک کردن و ذخیره کردن هم شد معیار توان برنامه نویسی؟ استفاده از چنتا کد و فریمورک و کلاس آماده هم تازه روش. ما خیلی برنامه نویسی رو دست کم میگیریم. کدهای خیلی افراد پر از مسائل خنده دار یا نقصهای امنیتی هست.
طرف یه ایجکس درست میکنه فکر میکنه شاهکار کرده.
فکر میکنن مثلا اینکه اسم XMLHttpRequest رو بدونی و بدونی چطور چنتا تابع رو بهش وصل کنی تا ایجکس درست کنی اسمش برنامه نویس حرفه ای هست و بخاطر این برنامه نویسان PHP سوادشون از برنامه نویسان دات نت خیلی بیشتره!!

البته درکل منم موافقم که PHP برای یادگیری خیلی مناسبه و باید یادش گرفت. ولی همونطور که گفتم کافی نیست و باید تنها جزیی از یک برنامهء یادگیری اصولی خیلی قویتر و گسترده تری باشه. هرکس هم نمیتونه/نمیخواد این کار رو انجام بده، احتمالا همون بهتره که بره دنبال ASP.NET تا حداقل یه چیزی که چیز درست و حسابی هم توش باشه تحویل بده.

رضا قربانی
جمعه 19 فروردین 1390, 13:41 عصر
نظر کلی من و تجربه ثابت کرد ، کاربرانی که می خواهید برنامه نویسی تحت وب یاد بگیرید :

خودتون هم می دونید که مادر برنامه نویسی vb6 هست که شخص تازه راه میافته و اصول کلی رو متوجه می شه و بعد دستورات C++ رو ردیف باید یاد گرفت

حالا باید برنامه نویسی تحت وب شروع بشه که من می گم باید از php شروع کنید تا فکرتون آزاد و به راحتی مفهومات کلی برنامه نویسی رو یاد بگیرید و وقتی با php چند تا سایت راه انداختین ،،،،،،، در این زمان می تونید ASP شروع کنید چون خیلی راحت می تونید متوجه بشید و براتون کسل کننده نمی شه و مانند php براتون شیرین میشه که ما توی همین شیرینی گیر کردیم

من با این قضیه مخالفم که شخص از همون اول با ASP کار کنه !!!! یقینا یقینا تا یه حدودی می تونه پیش بره !!

این نظر و تجربه بنده بود برای اینکه به کاربرانی که هنوز زبان تحت وب خودشون رو انتخاب نکرده اند

موفق باشید

UnnamE
جمعه 19 فروردین 1390, 13:49 عصر
باريكلا مادر برنامه نويسي vb6 هست، آورين!!!

استفاده از چنتا کد و فریمورک و کلاس آماده هم تازه روش
مرد حسابي خودت ميفهمي چي ميگه آخه؟ پس كدهاي دات نت رو خدا آفريده؟ نكنه ميخواي بگي كه تو دات نت كلاس هاي دات رو به چپ حساب نميكني و خودت كلاس مينويسي؟

eshpilen
جمعه 19 فروردین 1390, 14:04 عصر
دارم میگم در PHP هم صرف کدنویسی و چنتا سمبل کردن اسمش برنامه نویسی حرفه ای نیست به هیچ وجه. قبلا هم گفتم فکر نکنید چون کسی با PHP کار میکنه و جزییات و چیزهای بیشتری رو خودش انجام میده باعث میشه خیلی پیشرفت کنه و حرفه ای بحساب بیاد.
وقتی هم بحث مقایسهء دات نت پیش میاد خودتون میگید که PHP هم فریمورک و کدها و کلاسهای آمادهء زیادی داره. خب در اینصورت پس برنامه نویس PHP هم که از فریمورک و کد و کامپوننت آماده استفاده میکنه بقول خودتون هنری نیست و باعث سواد و یادگیری عمیق و پایه ای زیادی نمیشه.

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

UnnamE
جمعه 19 فروردین 1390, 14:11 عصر
اين كه آره، برنامه نويس فرق نميكنه، اسمش برنامه نويس ـه، حالا ميخواد حسن كچل باشه يا شنل قرمزي
سطح مهارت هم فرق نميكنه، چون بستگي به كاري داره كه انجام ميدن، من جزييات خاصي نديدم تو php كه برنامه نويس بخواد انگولك اش بده
مثلا ارتباط با Db كه با دو تا متد باز و بسته ميشه، حالا تو دات نت با drag/drop

موضوع اينه كه ميگي دات نت باعث سرعت كار ميشه و بازار سبزي و اينا
خب با php هم ميشه همون كار رو با همون سرعت انجام داد، حداقلش برنامه نويسي open source در هر صورت تضمين نگهداري كد بالا رو داره
ولي دات نت framework از 3.5 كه رفت 4 ديگه واويلا ليلي!

eshpilen
جمعه 19 فروردین 1390, 14:12 عصر
در این تالار و در سابقهء بحثها نگاه کنیم مثلا عمدهء برنامه نویسان PHP مشخص هست که چیز خاصی از مسائل امنیتی و رمزنگاری و حتی روش حمله های متداول و معروف نمیدونن. مثلا بگی XSRF چی هست و چطور عمل میکنه و چطور جلوش رو میگیری، نهایت یه چیزی مبهم و کلی میگه یا لینک مقالهء ویکیپدیا رو میده و یا مطلبی رو کپی پیست میکنه و نهایت چیزی که بلده اینه که حفظ کرده مثلا باید فلان کد یا تابع رو بنویسه یا فلان کاراکترها رو حذف کنه و غیره.
به این نمیگن سواد و برنامه نویسی. به این میگن سرهم کردن! همون کاری که همین بشرها توی دات نت هم میکنن. با این تفاوت که در دات نت سرهمبندی خیلی کمتری بر دوش برنامه نویس هست و بقیش که از قبل انجام شده سرهمبندی نبوده.

eshpilen
جمعه 19 فروردین 1390, 14:13 عصر
ولي دات نت framework از 3.5 كه رفت 4 ديگه واويلا ليلي!
متوجه نشدم منظورت چیه!

UnnamE
جمعه 19 فروردین 1390, 14:14 عصر
الان دقيقا موضوع برنامه نويس ها ست يا زبون و اينا ؟

UnnamE
جمعه 19 فروردین 1390, 14:24 عصر
متوجه نشدم منظورت چیه!

يه پروژه با دات نت 2 فك كنم نوشته بودم، دقيقا يادم نمياد چه ورژني ولي قبل همين 3.5
وقتي همون پروژه رو خواستم با 3.5 تغييرش بدم، ديدم حالا حالا كار داره، واسه همين روي همون 2 توسعه اش دادم
البته اين معني اش نميشه پيشرفت فرامورك، اين يعني اينكه برنامه هاي توسعه داده شده با ورژن پايين تر به سطل زباله مراجعه فرمايند!

eshpilen
جمعه 19 فروردین 1390, 18:47 عصر
الان دقيقا موضوع برنامه نويس ها ست يا زبون و اينا ؟
بله موضوع شبه برنامه نویسها هستن.
اونایی که ادعا میکنن و اندر مدح PHP سخن ها میرانند اما خود مرد میدان و عددی نیستند :لبخند:
باید به این افراد گفت آخه عزیز برادر شما خودت از پس اینهمه گستردگی و پیچیدگی برنمیای یا تنبلیت میاد بری کامل و اصولی هرچیزی رو یاد بگیری، بعد از دات نت و دات نت کار ایراد میگیری که چرا ویزارد داره و دراگ و دراپ میکنه و با دوتا تگ کارش رو انجام میده. نکه شما بدون اینا خیلی کارهای شاهکاری ارائه میفرمایید. میکروسافت بد کرده حالا یه ابزاری درست کرده که بخش بزرگی از این بارها رو از دوش برنامه نویس حداقل در پروژه های استاندارد و عادی تجاری برداشته؟

binyaft
جمعه 19 فروردین 1390, 19:08 عصر
یادگیری برنامه نویس خیلی گسترده تر و عمیق تر و اصولی تر از این باید باشه که فکر کنیم فقط با کار کردن با زبانی مثل PHP و کدزنی کسی برنامه نویس درست و حسابی میشه. برنامه نویسی یه علم گسترده هست و بخشهای تئوریک اون هم بسیار گسترده و مهم هستن. اینا رو هرکس باید خودش دنبالش بره و یاد بگیره؛ PHP به شما یاد نمیده! صد سال کدبزنی ممکنه بازم یاد نگیری. اصلا صدسال هم کد اشتباه مینویسی و خودتم حالیت نمیشه!!

حالا که PHP یاد نمیده ، من بیام ASp.net یاد بگیریم ، یاد میده!؟
در مورد صد سال کد زدن ، طرف تو پی اچ پی بهتر میفهمه چیکار داره میکنه ، شاید یکم پیچیده باشه


قبلا هم گفتم فکر نکنید چون کسی با PHP کار میکنه و جزییات و چیزهای بیشتری رو خودش انجام میده باعث میشه خیلی پیشرفت کنه و حرفه ای بحساب بیاد.
به نظرم نسبت به asp.net کار ها بهتر هستند ، چون با بیشتر مسائل درگیرن !
همون روش های نفوذ ، تو php باید برنامه نویس بره یاد بگیره و پیاده کنه ، تو دات شاید همش همون اول بسته شه!


در این تالار و در سابقهء بحثها نگاه کنیم مثلا عمدهء برنامه نویسان PHP مشخص هست که چیز خاصی از مسائل امنیتی و رمزنگاری و حتی روش حمله های متداول و معروف نمیدونن. مثلا بگی XSRF چی هست و چطور عمل میکنه و چطور جلوش رو میگیری، نهایت یه چیزی مبهم و کلی میگه یا لینک مقالهء ویکیپدیا رو میده و یا مطلبی رو کپی پیست میکنه و نهایت چیزی که بلده اینه که حفظ کرده مثلا باید فلان کد یا تابع رو بنویسه یا فلان کاراکترها رو حذف کنه و غیره.
یعنی بریم تالار asp مسائل امنیتی رو مطرح کنیم ، همه میدونن که روش XXS , SQl injection , .... چی هست!؟؟!؟! :متعجب:


باید به این افراد گفت آخه عزیز برادر شما خودت از پس اینهمه گستردگی و پیچیدگی برنمیای یا تنبلیت میاد بری کامل و اصولی هرچیزی رو یاد بگیری، بعد از دات نت و دات نت کار ایراد میگیری که چرا ویزارد داره و دراگ و دراپ میکنه و با دوتا تگ کارش رو انجام میده.
ایراد گرفتن یه برنامه نویس از ویزارد های دات نت چه ربطی به تنبلی PHP کار داره این وسط !؟ :متفکر:

eshpilen
جمعه 19 فروردین 1390, 19:48 عصر
حالا که PHP یاد نمیده ، من بیام ASp.net یاد بگیریم ، یاد میده!؟
در مورد صد سال کد زدن ، طرف تو پی اچ پی بهتر میفهمه چیکار داره میکنه ، شاید یکم پیچیده باشه
بهتر میفهمه ولی فقط یه چیزایی رو. برنامه نویسی واقعی خیلی چیزای دیگه داره که صرفا با کار با PHP و کدزنی آدم یاد نمیگیره. اگر آدم چیزای دیگر رو هم واقعا یاد گرفت، اونوقت میتونه با PHP برنامه هایی بنویسه که بقدر کافی با کیفیت و اصولی و امن باشن.


به نظرم نسبت به asp.net کار ها بهتر هستند ، چون با بیشتر مسائل درگیرن !
همون روش های نفوذ ، تو php باید برنامه نویس بره یاد بگیره و پیاده کنه ، تو دات شاید همش همون اول بسته شه!
بنظر منکه اینطور نیست. چون بخش عمده ای از کارها و امکانات مهم در ASP.NET بصورت خودکار انجام میشن و کیفیت و امنیت اونا واقعا بالا هست. این چیزیه که مشهود هست و از نظر عقلانی هم قابل توجیه هست. چون این کامپوننت ها توسط برنامه نویسان واقعا حرفه ای و مسئول نوشته و کنترل کیفیت و تست شدن مسلما.
کارهای خیلی از برنامه نویسان PHP بنظر بنده از نظر کیفیت و امکانات لازم و امنیت، دچار نقص و ضعف و اشتباه هست. خیلی چیزا هم از زیر دستشون در میره. موقعی که کد کارهاشون رو جزء به جزء بررسی و تحلیل کنید این روشن میشه.
البته در بعضی مواردی که در همین تالار مطرح میشن هم میزان سواد پایین و اشکالات کدهاشون مشخص هست و اینکه واقعا مسائل امنیتی رو هم بصورت کامل و اصولی نمیدونن و صرفا سمبل و وصله و پینه میکنن و کورکورانه کارهایی انجام میدن. خب اینکه آمار دقیق این ضعفها و کدهای اشتباه چقدر هست و وضع چقدر وخیمه، بنده برآورد دقیقی ندارم؛ اما بنظرم باید بالا باشه.


یعنی بریم تالار asp مسائل امنیتی رو مطرح کنیم ، همه میدونن که روش XXS , SQl injection , .... چی هست!؟؟!؟!
نه. ولی نیاز اونا به دونستن این مسائل از یه برنامه نویس PHP کمتره.
یه PHP کار واقعا باید درحد بالایی باشه از نظر دانش گسترده و درک عمیق تمام مسائل درگیر. ولی در عمل اغلب اینطور نیست.


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

UnnamE
جمعه 19 فروردین 1390, 21:51 عصر
خوشم مياد كه هرچي ميگي رو اينقدر تكرار ميكني تا طرف بگه آقا تو دُرس ميگي
ولي فقط تعصب بچه محله اي داري، چيزايي رو هم كه بلد نيسي ازشون ميگذري و يه چي ديگه رو سوژه ميكني كه چشا بره يه ور ديگه
مثلا الان بايد من تاسف بخورم چرا .net ياد نگرفتم، آخي من چقدر اشتباه كردم
من ياد گرفتم استفاده كردم و ولش، اونوفت تو كه هي ميگي آقا اينجوره و اونجوره كلا حرفات رو از MSDN ميزني
خو MSDN كه هويج، كاراي كوچولو و بچه بازي بدرد همون بچه ها ميخوره كه فك ميكنن Wow, can you believe it? خب كاريش نميشه كرد
خودت هم تحت تاثير كاراي مبتدي قرار گرفتي، حالا هي من بگم خر ـه ميگي بدوشش
البته باز هم .net واسه برنامه هايي كه مدت نگهداري بالايي نميخوان عاليه! كه 220% اون ديگه اسمش برنامه ني
يه سورس ساده هم بزاره ميگي آقا توضيح بده و ياد بده و اين چيه و چرا در ديزي بازه و اين حرفا
انتظار نداشته باش بيايم از Hello World شروع كنيم ، اگه اينجوره حتما باس يه گوگل بسازيم كه بيايم بگيم اين php خيلي خوبه و به قرعان حرف نداره و اين چيزه
تهش هم ميگي نه .net
با پايكوبي و اشك زاري و بخدا و پير پيغمبر دات نت خوبه و اين چيزا دات نت خوب نميشه، نبود و عددي نيست و همچنين برنامه نويس هاش هم همونايي ان كه فك ميكنن جعفر نژاد نقطه چين مهندس واقعي ـه و كتاب هاش تريپ باحالي ان.
كاريت نميشه كرد ديگه

eshpilen
جمعه 19 فروردین 1390, 22:10 عصر
خوشم مياد كه هرچي ميگي رو اينقدر تكرار ميكني تا طرف بگه آقا تو دُرس ميگي این رو میشه به شما هم نسبت داد.
شما مدام استدلالها و ایرادهایی رو کم و بیش به شکل مشابهی تکرار میکنید که قبلا جواب دادم. منم فکر میکنم به شکل دیگری براتون توضیح بدم و رفع ابهام کنم. درواقع هردوی ما یک کار رو میکنیم و مدام حرفمون رو تکرار میکنیم. ولی بنظرم این شما هستید که روی یک چیزی بی دلیل پافشاری میکنید. هیچ چیز جدیدی نمیگید و قبلا پاسخ شما رو دادم.


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


من ياد گرفتم استفاده كردم و ولش، اونوفت تو كه هي ميگي آقا اينجوره و اونجوره كلا حرفات رو از MSDN ميزني
خو MSDN كه هويج، كاراي كوچولو و بچه بازي بدرد همون بچه ها ميخوره كه فك ميكنن Wow, can you believe it? خب كاريش نميشه كردمفهوم نبود! میشه بیشتر توضیح بدی؟


خودت هم تحت تاثير كاراي مبتدي قرار گرفتي، حالا هي من بگم خر ـه ميگي بدوشش
البته باز هم .net واسه برنامه هايي كه مدت نگهداري بالايي نميخوان عاليه! كه 220% اون ديگه اسمش برنامه ني
يه سورس ساده هم بزاره ميگي آقا توضيح بده و ياد بده و اين چيه و چرا در ديزي بازه و اين حرفا
انتظار نداشته باش بيايم از Hello World شروع كنيم ، اگه اينجوره حتما باس يه گوگل بسازيم كه بيايم بگيم اين php خيلي خوبه و به قرعان حرف نداره و اين چيزه
تهش هم ميگي نه .net
با پايكوبي و اشك زاري و بخدا و پير پيغمبر دات نت خوبه و اين چيزا دات نت خوب نميشه، نبود و عددي نيست و همچنين برنامه نويس هاش هم همونايي ان كه فك ميكنن جعفر نژاد نقطه چين مهندس واقعي ـه و كتاب هاش تريپ باحالي ان.
كاريت نميشه كرد ديگه اینا هم کلا مفهوم نبود!
اگر جوابی میخوای بیشتر توضیح بده. بجای طعنه و پشت پرده حرف زدن و ادعا کردن و شخصیت طرف مقابل رو مطرح کردن استدلال منطقی و علمی بیار.
تنها اون قسمتش که میگی واسه برنامه هایی که مدت نگهداری بالا نمیخوان... مفهومه و تازه اونم فقط یک ادعاست که نفهمیدم علتش دقیقا چیه. استدلال و سندت براش چیه؟


در کل من جواب به شما دادم، اما شما بجای اینکه بگی ادعا و استدلال من چرا غلط هست دوباره ادعای خودت رو به شکل دیگری تکرار میکنی.

UnnamE
جمعه 19 فروردین 1390, 22:13 عصر
آها ميبيني همين ات رو ميگم
يجور ميگي چيزايي كه بلد نيسم كه انگار دايرةالمعارف اطلسي و چيزي هستي :D
الان مشكل من شده نميفهمي؟

eshpilen
جمعه 19 فروردین 1390, 22:17 عصر
آها ميبيني همين ات رو ميگم
يجور ميگي چيزايي كه بلد نيسم كه انگار دايرةالمعارف اطلسي و چيزي هستي :D
شما یه یجوری گفتنش چیکار داری. خب اگر مورد واضحی هست بگو دیگه! مشکلی داری؟ شاید شما فکر میکنی یجوری میگم و یه منظوری دارم. نه من برام خیلی راحته بگم فلان چیز رو بلد نیستم و نمیتونم راجع بهش اظهار نظر کنم. بطور مثال درمورد MVC قبلا چندبار این رو گفتم.
الان هم واقعا برای خودم سازنده میدونم که شما دقیقا این موارد رو مشخص کنی.


الان مشكل من شده نميفهمي؟
چی مشکل شما شده؟
منظورت از مشکل من چیه؟
نه جون تو نفهمیدم :لبخند:

UnnamE
جمعه 19 فروردین 1390, 22:32 عصر
ببين بعضي وختا آدم ها از كتاب خوندن كه خسته ميشن، خسته ميشن، خو ديگه چون خسته شدن از كتاب خوني!
شايد از نظر تو فرهنگ كتاب خوني نداره حاجيمون، ولي خب اين نظر تو ـه و هيچ تاثيري روي كتاب خوني كتاب خون هاي اينچنيني نداره
يخورده كه بگذره ميبيني يارو كتاب خونيش داره بهتر ميشه و داره پيشرفت ميكنه از هر نظر و هر شكل ولي باز ام از نظر تو اينجوري شده..
فك ميكني نظرات تو روي كتاب خوني رفيقمون تاثير زاشته و حالا بهتر شده، ولي اصلا فك به ذهن ات خطور نميكنه كه نظرات تو واسه خودت بودن و اصلا از نظر خودش داره پسرفت ميكنه و حتي اگه باز هم فك كني تو دليل اش بودي باز هم داري اشتباه ميكني ، چون از همون اول هم نظر تو واسش مهم نبوده، خب چه دليلي داره كه تو اين افكار خودجوش رو در مورد خودت بكني، تنها دليل اش رو خودت ميدوني و اصلا چه ربطي به كتاب خوني و فرهنگ كتاب خوني داره
حالا موضوع خودت هم همينطوره، دقيقا الان نميدوني تو دو شخصيت بالا كه گفتن كدوم بودي، حتي نميدوني 2 شخصيت بودن يا 1 يكي
حالا تو ميگي من چجور حرف بزنم كه فرهنگ كتاب خوني خراب نشه ؟ اصلا لازم ـه ؟
باز هم ميگي نفهمديم، تازه جون من رو هم به خطر انداختي در پست قبلي ات!

رضا قربانی
جمعه 19 فروردین 1390, 22:39 عصر
داداشا بی خیال

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

eshpilen
جمعه 19 فروردین 1390, 22:39 عصر
UnnamE (http://barnamenevis.member.php?75439-UnnamE) میشه بیشتر و صریح تر توضیح بدی و معما طرح نکنی؟
این حرفا یعنی چی؟ منو دست انداختی؟
منکه نفهمیدم سر و تهش چی داری میگی و چه ربطی به چی داره اینجا :متفکر:
اگر داری با من صحبت میکنی و میخوای جواب بگیری روشنم کن. وگرنه که بیخود وقت خودت و منو و دیگران رو تلف نکن.
بعدشم تازه جون تو :لبخند:

eshpilen
شنبه 20 فروردین 1390, 11:54 صبح
ما که اینجا نمونه کد گذاشتیم و مقایسه کردیم. این یه کار عملی هست که هرکس خواست میتونه انجام بده. هرکس هم نمیخواد که مجبور نیست در بحث شرکت کنه. منم برای مجوز گرفتن نیازی به تایید و شرایط شما ندارم. اگر منو قبول نداری مجبور هم نیستی به حرف من توجه کنی، اما جلوی حرف زدن منو هم نمیتونی بگیری.
ضمنا نمونه کد بازهم هست که میتونم درج کنم.
بحث من در همین حد هست. هرکس پایه هست شرکت کنه، هرکس نمیخواد و بنظرش ارزش نداره بره به کار خودش برسه. من دنبال اثبات خودم نیستم چون برام نظر دیگران اهمیتی هم نداره.

billgivz
شنبه 20 فروردین 1390, 15:37 عصر
سلام به همه ی دوستان .

من تا اینجا بحث رو دنبال کردم بی ادبی نباشه منم یک چیزی گفته باشم.

php یا asp سوال هست قدیمی که هیچ موقعه به سرانجام نرسیده !

ولی من خودم php کار هستم و تعصب خاصی هم ندارم و تا حالا با هر asp کاری صحبت کردم بیشتر حرفاشون رو حول محدوه جغرافیایی خاص یعنی ایران میچرخه و بیشتر این قیاس رو میخوان با امکانات ایران با سواد برنامه نویسان ایرانی انجام بدن .

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

نکاتی که در پستای قبل در همین بخش در رابطه php و asp ایراد شده .

بنظر من خوبی php همون open source بودنش و استقلال اون از مایکروسافت هست به مثال شرکتی مثل گوگل و فیس بوک از php و از سرورهای linux استفاده میکنند که هر دو open source و دارای استقلال هستند.

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

پس باید نسبت به قضیه یک دید کلی داشت نه اینکه بگیم اینجا ایران هست ما که نمیخوایم google بسازیم ، یا همین asp کار ما رو راه میندازه یا ....

UnnamE
یک شنبه 21 فروردین 1390, 02:13 صبح
آها همين خوبه، يه سر به Avatar اين كاربر محترم tarhebartar (http://barnamenevis.org/member.php?56432-tarhebartar) بزنيد!
جواب همه سوال ها و etc توش ـه!

رضا قربانی
یک شنبه 21 فروردین 1390, 12:44 عصر
یه دوست ASP کارمون یه پست جالب داده که اینم به این مبحثمون مربوط می شه که واستون می ذارم و خودتون تصمیم بگیرید


با سلام خدمت اساتید PHP ...
من شخصا Asp.net کار میکنم ولی برای یه application که نیاز به dedicate server داره وقیمت بالای سرور های ویندوزی میخوام php کار کنم ... php رو همینجوری کار کردم قبلا ولی حالا میخوام از FramewORK های آماده استفاده کنم ...اینم لینکش هست و می تونید بهش سری بزنید : http://barnamenevis.org/showthread.php?281911-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-FrameWork

eshpilen
چهارشنبه 24 فروردین 1390, 19:12 عصر
این منبع رو هم الان گذری خوندم. بنظرم درکل بقدر کافی صحیح و منصفانه هست و اطلاعات خوبی توشه:
http://www.codeproject.com/KB/applications/php_asp_net.aspx
باشه بعدا سرفرصت بحث عملی رو ادامه بدیم انشاا...
درمورد استفادهء فیسبوک از PHP هم چیز قابل توجهی گفته:

As per my analysis, PHP is recommended for small-to-medium projects and ASP.NET and JSP for medium-to-big applications UPDATE: If you think about Facebook, please understand that:

it uses a re-written PHP and a
transformer+compiler called HipHop which transforms PHP code to highly optimized C++ code and then compiles with gcc. We are talking here about the PHP we get for application developers from PHP.NET (as it is).


خلاصش میگه:
که فیسبوک از یک PHP که خودشون دوباره نوشتن استفاده میکنه (م: ظاهرا مفسر PHP رو بهینه سازی کردن - و نمیدونم آیا سینتاکس و امکانات اون رو هم تغییراتی دادن یا خیر، و امکانش بنظر کم نیست که این کار رو هم کرده باشن).
و اینکه توسط برنامه ای بنام HipHop (م: که اینو هم خودشون نوشتن) کد PHP رو ابتدا به کد بسیار بهینه شدهء سی++ تبدیل میکنه و بعد اون رو کامپایل میکنه (م: بنابراین شما پرفورمنس سی++ رو دارید اونم با کد بهینه شده، و بنابراین اجرای کدهایی که توسط HipHop تبدیل شدن توسط مفسر خود PHP صورت نمیگیره).


خودتون میبینید که مواردی که بنده قبلا درمورد اینطور شرکتهای بزرگ گفته بودم چطور در این مطلب خودشون رو نشون میدن. بنده گفته بودم که شرایط و کارهای این شرکتها رو با افراد منفرد و شرکتهای کوچک مقایسه نکنید چون این شرکتها منابع زیاد و شرایط و نیازهای خاص دارن و منابع انسانی کافی و بهترین برنامه نویسان دنیا رو در زمینه ها و زبانهای مختلفی در اختیار دارن. گفته بودم که اونها میتونن از مزایای بازمتن حداکثر استفاده رو ببرن و مثلا PHP رو تغییر و گسترش بدن و براشون صرف داره و کاری طبیعی هست که فریمورک های کامل و گسترده و حرفه ای خودشون رو پیاده سازی کنن و زمان و هزینهء یادگیری پرسنل جدید رو هم (که میخوان فریمورک های اختصاصی اونا رو یاد بگیرن) تقبل کنن. نگفته بودم؟ میبینید حرفم اینجا چقدر جالب اثبات عملی شد!
اما نکتهء دیگری هم که گفتم این بود که تفاوت در مقیاس، تفاوت در مقرون به صرفه بودن ایجاد میکنه. اینم روشن و منطقی هست.

UnnamE
چهارشنبه 24 فروردین 1390, 21:19 عصر
آها در مورد اين HipHop من خيلي خوشم اومده ازش
من طبق راهنماي خودش wordpress رو به ++C كامپايل كردم و واقعا فك ام چسبيد رو كيبورد
HipHop هم OpenSource هستش و تا php 5.2 رو ساپورت ميكنه

يه سوال كوچولو داشتم حاج eshpilen اونم اينكه جريان اين ASP.NET كه Cross Platform هست چيه؟
آخه چجور اين رو روي لينوكس اجرا ميكنن؟
چون وبسايت stackoverflow رو چك كردم رو سرور هاي لينوكس اجرا ميشه

eshpilen
چهارشنبه 24 فروردین 1390, 21:50 عصر
يه سوال كوچولو داشتم حاج eshpilen اونم اينكه جريان اين ASP.NET كه Cross Platform هست چيه؟
آخه چجور اين رو روي لينوكس اجرا ميكنن؟
چون وبسايت stackoverflow رو چك كردم رو سرور هاي لينوكس اجرا ميشه
خبر ندارم. مگه با Mono نیست؟

UnnamE
چهارشنبه 24 فروردین 1390, 21:56 عصر
فك نكنم، آخه اون Mono كه API هاي .net رو آوردن ريختن روي لينوكس كه مثلا بگن ما open source رو هم حمايت ميكنيم و اينا
بيا اينو ببين
http://uptime.netcraft.com/up/graph?site=stackoverflow.com
بعضي از سرور ها هم Nginx كار ميكنن، ولي كلا لينوكس ان!!

اينو داشته باش
http://searchdns.netcraft.com/?host=bing.com&x=0&y=0
دامين اصلي Bing از روي Linux اجرا ميشه
من الان هنگ ميكنم...

eshpilen
چهارشنبه 24 فروردین 1390, 22:14 عصر
امروزه روز که اینطور چیزا دیگه عجیب نیست. کلا همهء عجایب رو در دنیای رایانه و برنامه نویسی شاهد بودیم. هزار و یک دلیل و روش میتونه داشته باشه. بخصوص درمورد شرکتهای بزرگ با منابع مالی و انسانی ای که دارن دیدن هرچیزی عجیب نیست.
بهرحال رایانه ها و سیستم عاملها و نرم افزارها در نهایت همه یک اساس دارن و پیوند و ترکیب اونها به هر صورتی غیرممکن نیست.
اما واقعیت های جاری و چیزهای عملی و مقرون به صرفه برای من و شما و شرکتهای کوچک خیلی تفاوت میکنن.

UnnamE
پنج شنبه 25 فروردین 1390, 01:28 صبح
درسته امروزه روز كه فلان و اين حرفا
ولي مسخره است مايكروسافت از Windows Server 2008 خودش استفاده نكنه!
حتما هم Database رو هم Oracle زاشتن!!!

binyaft
پنج شنبه 25 فروردین 1390, 07:50 صبح
من یه چیزی رو بسازم کلی تبلیغ کنم که از رقیبم بهترم ،بعد برای کارهام بیام از اون یکی استفاده کنم ، اونم واسه یه پروژه بزرگ که قدرت سیستم منو نشون میده :قهقهه:

eshpilen
پنج شنبه 25 فروردین 1390, 08:47 صبح
درسته امروزه روز كه فلان و اين حرفا
ولي مسخره است مايكروسافت از Windows Server 2008 خودش استفاده نكنه!
حتما هم Database رو هم Oracle زاشتن!!!
من کاری به علت این قضیه و درستی و نادرستیش ندارم. به من چه ربطی داره؟ مگه من مدافع ویندوز یا میکروسافت هستم؟ اتفاقا من طرفدار نرم افزار آزاد و بازمتن هستم و دوست دارم موفقیت برای اونا باشه.
بحث منم در این تاپیک درمورد ASP.NET در همین حد مقایسهء کارهای عادی تجاری بوده، نه کارهای بزرگ و خاص.
حد PHP هم از مقیاس کوچک هست تا متوسط. درمورد پروژه های بزرگ هم دیدید که مثلا فیسبوک از اون PHP که روی سرورهای معمولی هست و ما داریم استفاده نمیکنه (البته شاید بخشهایی از اون هم با PHP معمولی باشه، ولی نه همش).
کلا هم بنظر من بحث شرکتهای بزرگ و کارهای ویژه و پیشرفته واسه ما و بحث ما چندان معنادار نیست و وقت تلف کردن و انحراف بحثه. یجور مغلطه و حرف و ادعای زیادی هست واسه ما.
بهتره در همین سطح عادی و بازار کار خودمون مقایسه کنیم. و واقعیت گرا باشیم.
درمورد اینطور کارها آیا ما از نظر سرور ویندوز و ASP.NET مشکلی داریم؟ آیا بازار با اینا مشکلی داره؟ فکر میکنم بقدر کافی مشتری براش باشه و در عمل هم این سایتها فکر نمیکنم با مشکل حادی برخورد کرده باشن که بدنام شده باشن. بقول بعضی دوستان، تازه آمار سایتهای PHP هک شده بیشتر هم هست، که این با استنباط و استدلال بنده مبنی بر اینکه استفاده از کامپوننت های آمادهء دات نت درکل باعث افزایش امنیت کار ASP.NET کارها میشه مطابقت میکنه. یعنی من فکر میکنم حداقل یکی از دلایل اصلیش این باشه. برنامه نویسان PHP اکثرشون بقدر کافی برای زبانی مثل PHP قوی نیستن (اما خودشون رو با برنامه نویسان فیسبوک و امثالهم مقایسه میکنن) و کدهای ناقص و ضعیفی مینویسن. در دات نت هم برنامه نویسان از کرهء دیگری نیامدن، ولی حداقل خیلی بخشهای مهم و حساس سایت ها و اپلیکیشن های اونها با کامپوننت های آماده و حرفه ای و امن دات نت ساخته میشن و بنابراین امنیت درکل بالاتر میره.

UnnamE
پنج شنبه 25 فروردین 1390, 12:19 عصر
delphi php رو ديدي؟
نه نديدي چون اگه ديده بودي يا تاپيك ميزدي ASP.NET VS DELPHI PHP باور كن
همين كارهاي .net تازه بيشتر رو ميده
كامپوننت هم ريخته توش
كامپوننت هاي گوگل، فليكر، ياهو، توييتر
و لاگين و اين حرفا
خب حالا كه بحث پروژه هاي فسقلي ـه خيلي اون خوفه كه!

UnnamE
پنج شنبه 25 فروردین 1390, 12:57 عصر
من ديدم روحيه تحقيقاتي داري بهت گفتم :D
گفتي پروژه هاي فسقلي، گفتم delphi php

eshpilen
پنج شنبه 25 فروردین 1390, 13:01 عصر
فسقلی! به چی میگی فسقلی؟
لابد شما فوق فسقلی کار میکنی!
اکثر شما ۹۰٪ کارتون چه بخواید و چه نخواید درحد کارهای سایت و اپلیکیشن های عادی هست. یعنی نیاز و ظرفیت بازار کار اینه.
از اینهمه آدمی هم که همش میگن گوگل و فیسبوک و ادعای انجام کارهای بزرگ میکنن فقط چند درصدشون به زور اینقدر سواد خواهند داشت که بخوان خودشون رو در این حد بدونن و با اون شرکتها و برنامه نویسها مقایسه کنن.

UnnamE
پنج شنبه 25 فروردین 1390, 13:05 عصر
فسقلي همون پروژه هاي متوسط بازار تو هست كه هي ميگي
من اصلا فسقلي كار نميكنم، چه برسه فوق فسقلي
بعدشم چرا منو جز اكثريت قرار ميدي الكي مرد حسابي؟ اصلا كي گفته من رو دسته بندي كني ؟

حقيقت هيشكي به اندازه خودت اسم اين دو سايت كفر و پليد رو نمياره

eshpilen
پنج شنبه 25 فروردین 1390, 13:57 عصر
من اصلا فسقلي كار نميكنم، چه برسه فوق فسقلي
پس چی کار میکنی؟ نره غول؟ :لبخند:


بعدشم چرا منو جز اكثريت قرار ميدي الكي مرد حسابي؟
بخاطر اینکه فایدهء بحث ما دربارهء اکثریت هست.
اقلیت که همیشه اقلیت هستن. اگر یکی اومد که جزو اقلیت بود بحث و جوابش هم انفرادی میشه.


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

UnnamE
پنج شنبه 25 فروردین 1390, 14:03 عصر
پس چی کار میکنی؟ نره غول؟
نه گلم، ماده غول!

بخاطر اینکه فایدهء بحث ما دربارهء اکثریت هست.
خب مثلا الان چه ربطي داشت به من اين تيكه؟

هرکاری دلم بخواد میکنم تو هم نمیتونی جلوم رو بگیری.
خرج اش يه ترمز دستي و يه سنگ پشت ات، ديگه حركت نميكني :D

خب نگقتي در مورد پروژه هاي در حد سايت هاي كفر و باطل مردم باس چيكار كنن؟
ASP.NET كار نكنن ديگه نه؟

binyaft
پنج شنبه 25 فروردین 1390, 15:25 عصر
کلا هم بنظر من بحث شرکتهای بزرگ و کارهای ویژه و پیشرفته واسه ما و بحث ما چندان معنادار نیست و وقت تلف کردن و انحراف بحثه. یجور مغلطه و حرف و ادعای زیادی هست واسه ما.
بهتره در همین سطح عادی و بازار کار خودمون مقایسه کنیم. و واقعیت گرا باشیم.
بحث شرکت های بزرگ که واسه ما نیست!
بحث برنامه های فسقلی هم که واسه ما نیست!
بقیه هم که اینجا دارن برنامه فسقلی مینویسن!
کسی هم خودشو با برنامه نویس های شرکت ها مقایسه نکنه ( که مقایسه نکرده ، فقط گفته برنامه استفاده شده توسط این شرکت همونیه که ما داریم استفاده میکنیم! ) !
PHPکار ها چون خودشون باید برن یاد بگیرن طول میشکه تا یاد بگیرن ، اصلا حرفه ای نیستن چون اخرش همه چیزو یاد میگیرن ، اما دات نتی ها هیچی یاد نمیگیرن! ، دات نت کارا چون مثل هلو همه چیزو مینویسن ، از PHP کار ها و FB و Google حرفه ای تر هستن!!!!!!!!!!!!!!!!!!!!!!!!!
همه هم برید دات نت یاد بگیرید ، ثواب داره
!



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


از کجا میدونی حدش از مقایسه کوچک هست تا متوسط!؟؟
مثل فیسبوک شرکت زیاده ، سایت هم زیاده ، اون اگه اومده شخصی سازی کرده ، صلاح کارش در این بوده ، دلیل نمیشه که PHP داغون باشه یا خیلی عالی!
اگر فیسبوک اومده کد های PHP رو به C++ تبدیل کرده برای این بوده که بار و فشار سرور ها کمتر بشه!


برنامه نویسان PHP اکثرشون بقدر کافی برای زبانی مثل PHP قوی نیستن (اما خودشون رو با برنامه نویسان فیسبوک و امثالهم مقایسه میکنن) و کدهای ناقص و ضعیفی مینویسن.
من که اینجا ندیدم کسی خودشو با برنامه نویسای بزرگ مقایسه کنه ، اگر بحثی ام بوده سر شرکت و محصول مورد استفاده بوده!
همه دات نتی ها بلدن همه دات نتو!؟ با کسی هم مقایسه نمیشن!؟


در دات نت هم برنامه نویسان از کرهء دیگری نیامدن، ولی حداقل خیلی بخشهای مهم و حساس سایت ها و اپلیکیشن های اونها با کامپوننت های آماده و حرفه ای و امن دات نت ساخته میشن و بنابراین امنیت درکل بالاتر میره.
اگه قرار باشه هی کامپونت های دات نت رو بزنی تو سر PHP ، بهتره از این به بعد به جای خود PHP با CI مقایسه کنی ( فکر میکنم همین واسه دات نت بسه! ) و اگر هم با فریم ورک مقایسه نمیکنی PHP رو با ASP ساده مقایسه کن ، :چشمک:


اکثر شما ۹۰٪ کارتون چه بخواید و چه نخواید درحد کارهای سایت و اپلیکیشن های عادی هست. یعنی نیاز و ظرفیت بازار کار اینه.
نظرت چیه بشینیم گوگل بنویسیم ؟؟؟؟ بعد شما 90% کار هات همه در حد مایکروسافت هست دیگه!؟ همه کارهای بچه های اینجا رو خط به خط هم دیدی که جمع میبندی!؟


از اینهمه آدمی هم که همش میگن گوگل و فیسبوک و ادعای انجام کارهای بزرگ میکنن فقط چند درصدشون به زور اینقدر سواد خواهند داشت که بخوان خودشون رو در این حد بدونن و با اون شرکتها و برنامه نویسها مقایسه کنن.
به قول Unname بیشتر از همه خودت اسم اینارو میاری!
کسی اگه گفته گوگل O فیسبوک واسه این گفته که اینا دارن از PHP استفاده میکنن ، کسی ادعای نوشتن گوگل یا فیسبوک رو کرده!؟ کسی گفته من برنامه نویس این شرکت هستم!؟ اصلا کسی گفته من ابدارچی ــه اونجا بودم!؟

maysam.m
یک شنبه 28 فروردین 1390, 13:50 عصر
سلام

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

با تشکر از جناب eshpilen عزیز بابت ایجاد تاپیک و مدیریت خوبه اون و همچنین از سایر دوستانی که در این تاپیک شرکت کردند.

SianiD
یک شنبه 28 فروردین 1390, 18:39 عصر
1- سرعت PHPبه مراتب قابل مقایسه با ASP نیست علتش این است که Microsoft از یک Technology در اجرا کردن کدهای زبان ASP استفاده می کند که در آن هر موقع شما تصمیم به استفاده از یک عنصر خارجی مانند VBScript, MSSQL, ODBC و خیلی چیزهای دیگر که در حقیقت از Engine های خارجی استفاده می کنند دستور به آن Engine خارجی می دهد و جواب بدست آمده را بررسی و برای استفاده در اختیارادامه برنامه می گذارد . همین رفت و برگشت و اجرا کردن Engine های خارجی باعث کند شدن سرویس دهی می شود.
این مشکل در php وجود ندارد
2-در IIS4 اگر شما در یک صفحه مثلا ۲۰ بار یک صفحه را Include کنید این صفحه ۲۰ بار در حافظه بارگذاری می شود و درحقیقت حافظه شما ۲۰ برابر زیادتر اشغال می شود . همین امر باعث کند شدن سیستم می شود و در Load بالا مسلما مشکل زا خواهد شد .این مشکل به طور کلی در PHP وجود نداشته و ندارد و استفاده درست از Memory در هنگام اجرای یک کد باعث شده است که صفحات در Load بالا نیز به خوبی قابل رٶیت باشند.

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

4-OpenSource بودن PHP این امکان را به شما می دهد که شخصا اقدام به رفع مشکل کنید.(اگر asp یک پشتیبان بزرگ به نام مایکروسافت دارد php میلیون ها پشتیبان دارد )

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

هدف از این تاپیک اگر بالا بردن سطح علمی ماست پس چرا تعصبی حرف میزنین بیاین دلیل علمی بیارین .

تشکر یادتون نره :بوس::قلب::لبخند:

maysam.m
یک شنبه 28 فروردین 1390, 23:48 عصر
جهل ات مبارک ...

همچنین!

ما چی میگیم تو چی میگی!

آن کس که نداند و نداند که نداند
در جهل مرکب ابدالدهر بماند

SianiD
دوشنبه 29 فروردین 1390, 00:06 صبح
همچنین!

ما چی میگیم تو چی میگی!

آن کس که نداند و نداند که نداند
در جهل مرکب ابدالدهر بماند

دوست عزیز منظور دوستمون این بود که بیشتر تحقیق کن .
من در صفحه قبل با دلیل برتری php رو نشون دادم اما asp.net هم زبان ضعیفی نیست شما اگر دوست دارید میتونید asp کار کنید اما خدا کنه پشیمون نشی

maysam.m
دوشنبه 29 فروردین 1390, 00:18 صبح
دوست عزیز منظور دوستمون این بود که بیشتر تحقیق کن .
من در صفحه قبل با دلیل برتری php رو نشون دادم اما asp.net هم زبان ضعیفی نیست شما اگر دوست دارید میتونید asp کار کنید اما خدا کنه پشیمون نشی

دوست عزیز
مثل اینکه شما متوجه منظور من نشدید!
من خودم پی اچ پی کار میکنم و به تمام ویژگی های + اون واقفم! من فقط گفتم دیدم نسبت به دات نت تغییر کرد و این بار جدی تر یادگیریش رو دنبال میکنم.
من نه حرفی از این زدم که پی اچ پی بده و نه اینکه میخوام کلا دات نت رو انتخاب کنم!

اینکه آدم بیاد به کسی که میخواد یه تکنولوژی دیگری رو یاد بگیره بگه جهل ات مبارک، نمیدونم چه باید گفت!

SianiD
سه شنبه 30 فروردین 1390, 20:41 عصر
من فکر کردم تازه میخوای شروع کنی به یادگیری . من خودم هم هر دو رو بلدم و به خواست بعضی از مشتری ها مجبورم گاهی اوقات از Asp استفاده کنم و خیلی خوبه که هر دو رو بلد باشی

eshpilen
چهارشنبه 31 فروردین 1390, 20:36 عصر
با سلام، اين هم كد معادل نمونه AJAX شما كه در ASPX توضيح داده بوديد. سعي كردم تا جايي كه ميشه همون ساختار كد شما رو داشته باشه. ميبينيد كه كار اصلاً سختي در اين بين وجود نداره. ضمناً از jQuery و... هم استفاده نكردم. با مرورگرهاي مختلف هم سازگاري كامل داره (ميتونيد امتحان كنيد).
http://barnamenevis.org/attachment.php?attachmentid=67909&d=1301141944

خب من به قول و وظیفهء خودم عمل کردم و بالاخره نمونه کد شما رو دیدم.
بد نیست. بهرحال حجمش از کد دات نت بیشتره، و خوانایی کمتری هم داره.
بعدم اون فقط یه مثال کوچیک بود و جایی که هیچ امکانات و پیچیدگی دیگری درکار نبود جز ارسال و دریافت یکسری اطلاعات ثابت از جانب کاربر.
چیزی که هست، شما میتونید در دات نت خیلی چیزهای دیگه رو در داخل UpdatePanel بذارید و تفاوت حالت غیرایجکسی با حالت ایجکسی فقط همین هست. به همین سادگی میشه این تغییرات رو اعمال کرد یا برداشت. نیازی به هیچ تغییری در جای دیگری از کد و اضافه کردن فایل خاصی نیست. درواقع در دات نت بین ایجکس و حالت معمولی تفاوت خاصی وجود نداره جز تجربهء عینی اون برای کاربر.
شما میتونید یه کامپوننت پیچیده رو که با دیتابیس ارتباط داره به همین سادگی تبدیل به حالت ایجکس و برعکس بکنید. آیا در PHP هم میشه به سادگی اینکار رو کرد؟ آیا یه بخشی از سیستم که با دیتابیس ارتباط داره و اطلاعات رو میخونه و درج میکنه، میشه به همین سادگی و با حجم کد نزدیک به ASP.NET ایجکسی کرد؟ تاجایی که بنده اطلاع و تجربه دارم شما نیاز دارید کلی کد بنویسید و فایلهای جدید و مخصوص خودش رو ایجاد کنید؛ تازه مسائل امنیتی به کنار.


اينطور كه dotNET داره كاربران خودش رو (با عرض شرمندگي) تنبل بار مياره، چند وقت ديگه احتمالاً توي كنفرانس مطبوعاتي Microsoft خواهيم شنيد كه اعلام ميشه: از اين به بعد طراحان سايت عزيز كافيه با ميكروفون به موتور ASPX بگن چي ميخوان و اون يك سايت آماده در قالب فايل ZIP بهشون تحويل بده. همه طراح وب خواهيم شد! همه خوشحال خواهيم بود!!!هرکس بخنده یا نخنده بحث ما نیست.
بهرحال اگر اینطور بشه دیگه جایی برای برنامه نویسان PHP در بازار و رقابت تجاری باقی میمونه؟

UnnamE
چهارشنبه 31 فروردین 1390, 23:25 عصر
بهرحال اگر اینطور بشه دیگه جایی برای برنامه نویسان PHP در بازار و رقابت تجاری باقی میمونه؟
نه ديگه فقط برنامه نويس هاي php ميميونن!

MMSHFE
پنج شنبه 01 اردیبهشت 1390, 07:28 صبح
...
شما میتونید یه کامپوننت پیچیده رو که با دیتابیس ارتباط داره به همین سادگی تبدیل به حالت ایجکس و برعکس بکنید. آیا در PHP هم میشه به سادگی اینکار رو کرد؟ آیا یه بخشی از سیستم که با دیتابیس ارتباط داره و اطلاعات رو میخونه و درج میکنه، میشه به همین سادگی و با حجم کد نزدیک به ASP.NET ایجکسی کرد؟ تاجایی که بنده اطلاع و تجربه دارم شما نیاز دارید کلی کد بنویسید و فایلهای جدید و مخصوص خودش رو ایجاد کنید؛ تازه مسائل امنیتی به کنار.
...

بله اين كار هم به سادگي امكان پذيره. كافيه اطلاعاتي كه ميخوايم ارسال بشن رو توسط JS بفرستيم و تنها تفاوتي كه صفحه PHP مربوط به كار با DB با حالت معمول خواهد داشت اينه كه خروجي موردنظر رو توسط echo بصورت متن خام يا XML نمايش ميده و تگهايي ازقبيل HEAD‌ و HTML و BODY و... نخواهيم داشت (كه كار رو راحت تر ميكنه) و نهايتاً خروجي اين صفحه رو ازطريق xhr.ResponseText يا xhr.ResponseXML در محل موردنظر با كمك JS درج ميكنيم (xhr همون شئ XMLHttpRequest هست).
باز هم تأكيد ميكنم كه در اينجا، توسعه دهنده وب واقعاً ميفهمه AJAX داره چطور كار ميكنه و دقيقاً با مشخصاتي ازقبيل status و readyState و... اون كار ميكنه و تحقيق خواهد كرد و ميفهمه كه مثلاً مقدار 200 در status يا 4 در readyState به چه معنايي هست و ساير وضعيتها براي چه مواقعي به كار ميرن و ميتونه حتي براي اون وضعيتها هم كد بنويسه كه اگه براي مثال، AJAX نتونست درخواست رو تكميل كنه، چه كاري انجام بشه و... و مثل ASPX نيست كه با انداختن يك UpdatePanel روي صفحه و تنظيم خاصيتهاي PostBack و PartialRender اون، AJAX فعال بشه و اصلاً ندونه كه چطور داره كار ميكنه. روي صحبتم با شما نيست چون ميدونم از اين جزئيات اطلاع دارين. منظورم همون اشخاص تازه كاري هستن كه ميخوان طراح سايت بشن ولي با اين روشها، از جزئيات كار سر در نميارن و فقط در نقش كليك كننده و استفاده كننده از كلاسهاي آماده باقي خواهند ماند.
موفق باشيد.

eshpilen
پنج شنبه 01 اردیبهشت 1390, 08:22 صبح
باز هم تأكيد ميكنم كه در اينجا، توسعه دهنده وب واقعاً ميفهمه AJAX داره چطور كار ميكنه و دقيقاً با مشخصاتي ازقبيل status و readyState و... اون كار ميكنه و تحقيق خواهد كرد و ميفهمه كه مثلاً مقدار 200 در status يا 4 در readyState به چه معنايي هست و ساير وضعيتها براي چه مواقعي به كار ميرن و ميتونه حتي براي اون وضعيتها هم كد بنويسه كه اگه براي مثال، AJAX نتونست درخواست رو تكميل كنه، چه كاري انجام بشه و... و مثل ASPX نيست كه با انداختن يك UpdatePanel روي صفحه و تنظيم خاصيتهاي PostBack و PartialRender اون، AJAX فعال بشه و اصلاً ندونه كه چطور داره كار ميكنه. روي صحبتم با شما نيست چون ميدونم از اين جزئيات اطلاع دارين. منظورم همون اشخاص تازه كاري هستن كه ميخوان طراح سايت بشن ولي با اين روشها، از جزئيات كار سر در نميارن و فقط در نقش كليك كننده و استفاده كننده از كلاسهاي آماده باقي خواهند ماند.
موفق باشيد. این استدلال شما که بارها مطرح کردید برای من چندان مفهوم نیست و اون رو روشن و محکم نمیبینم.
آخه ببینید الان شما هم که فکر میکنی جزییات رو میدونی و خودت پیاده میکنی و کنترل کامل داری، و فکر میکنی این خوبه یا لازمه، داری در یه سطحی از برنامه نویسی کار میکنی، و پایینتر از سطح و زبان برنامه نویسی شما هم باز سطح هست که لابد برنامه نویسان اون سطح باید دربارهء شما همین فکر رو بکنن که شما مثلا چرا کارهای سطح پایین اونا رو بلد نیستی و این بده. قدیم هم با زبانها و امکانات خیلی کمتر و سطح پایینتری کار میکردن و با خیلی چیزها و جزییات سطح پایین سروکار داشتن و چیزهایی رو خودشون پیاده سازی میکردن که ما الان شاید حتی اسم بعضی از اونا هم به گوشمون نخورده باشه و برای بقیه هم از کتابخانه های آماده و توابع مخصوص و ویژگیها و جزییاتی که بصورت خودکار اداره میشن استفاده میکنیم.
هیچوقت بالا بردن سطح زبان و برنامه نویسی اونم در یه حیطهء سطح بالا و تخصصی به خودی خودش بد تلقی نشده، بلکه این تقریبا همیشه مطلوب تلقی شده و یک هدف اصلی و فرایند همیشگی و طبیعی این فناوری بوده.
ASP.NET هم میشه گفت سطحش از PHP بالاتره و کاملا کامپوننت گراست. در PHP نهایتش به شیء گرایی کامل میرسن و هنوز به اون صورت ذاتی و بهینه و کامل کامپوننت گرا محسوب نمیشه. البته با فریمورک های مخصوص میشه به این هدف رسید، اما بازم نه لزوما بحد بدون درز و بهینهء ASP.NET. چون ASP.NET از اولش به اینصورت طراحی شده و تمام جزییاتش با این ساختار مطابقت میکنه و امکانات درونی کاملی براش داره.
مثل اینه که ما بگیم سی++ هم میتونه با فریمورک خیلی سطح بالا بشه، اما این صحبت هم نسبی هست و باز مثلا درمقابل زبانی مثل سی شارپ و فریمورک دات نت کمتر سطح بالا هست. بعضی ویژگیهای بعضا مهم در سی شارپ و دات نت هست که سی++ با هر فریمورکی هیچوقت نتونسته به اون حد برسه. و این رو در برنامه نویسی عملی و تفاوت کدنویسی اونا در بعضی جاها خواهید دید.
دقیقا مثل همین بحث ما.
شما الان با PHP نمونه های معادل پیاده کردید که واقعا خوب بودن، اما اگر با نمونه کدهای ASP.NET مقایسه کنیم و منصف باشیم باید بگیم کدهای ASP.NET مختصرتر و خواناتر و منسجم تر هستن از نظر کامپوننت گرایی و سطح بالا بودن.

البته بنده در اینکه PHP هم خیلی خوبه و کاربردهای خودش رو داره و سطح پایینتر کار کردنش در بعضی جاها واقعا مطلوب هست حرفی ندارم. و در اینم که برنامه نویسی باهاش لذتبخش تره چون کنترل بیشتری داریم و کارهای بیشتری میتونیم بکنم و ضمنا چیزهای بیشتر مهمی یاد بگیریم حرفی ندارم. البته برای خوره ها و افرادی که دنبال توانایی انجام کارهای بیشتری از کارهای روتین تجاری و کلیشه ای هستن این ویژگیها مطلوبند. من هم خوره هستم و هم دنبال این توانایی ها. و البته سعی کردم همه چیز رو اصولی و عمیق یاد بگیرم و از کوچکترین جزییاتی نگذرم به همین خاطر. اما بنظر من خیلی از کسانی که اسم برنامه نویس روی خودشون میذارن حتی حاضر نیستن این راه و روش رو بپذیرن و درش تلاش کنن، تا چه برسه به اینکه واقعا درحدی باشن که بتونن از مزایا و کاربردهای خاص PHP استفادهء واقعی و بهینه ببرن. حالا شما مدام از لذت برنامه نویسی و شکوه و سواد برنامه نویسان سطح پایین بگو. این چه فایده ای داره برای بخش بزرگی از برنامه نویسان PHP که هیچوقت واقعا اینطور نبوده و نخواهند بود؟ بنظر من این افراد برن ASP.NET کار کنن بهتره برای خودشون و دیگران تا اینکه بخوان در این توهمات سیر کنن و دوتا کد سمبل میکنن فکر کنن کار درست و حسابی انجام دادن.
ببخشید رک صحبت میکنم. خب بنظر شما واقعیتش این نیست؟ من خودم اینقدر در این فروم و بطور کلی همیشه در همه جا حرفهای خنده داره و مطالب و کدهای اشتباه و ناشیانه دیدم، حتی از افرادی ظاهرا با تجربه و مدعی که کارهایی هم ظاهرا کردن، که اینطور میگم. افرادی که چیزهای ابتدایی رو هم درست نمیدونن و نمیتونن. حرفهایی میزنن آخر مضحک. که اصلا معلوم نیست اینا رو از کجا میارن. یه استدلال و تحقیق ساده رو هم بلد نیستن انجام بدن و از پیش پا افتاده ترین چیزها اطلاع درستی داشته باشن. خیلی وقتا منابعی رو میخونن و ناقص و ضعیف و حتی اشتباه و برعکس متوجه میشن یا نتیجه های بی پایه، نامربوط و اشتباه ازشون میگیرن. بعد نمیدونم دل شما به چی خوشه و چطور برنامه نویسان PHP رو بالاتر و کارهای اونا رو بهتر از برنامه نویسان ASP.NET میدونی و ادعا میکنی اونا برنامه نویسی واقعی میکنن. برنامه نویس واقعی که PHP واقعا براش مثل ابزار قدرتمندی در دست یه استاد خبره باشه، تعداد خیلی کمی هستن.
برنامه نویس باید مغزش مثل یک رایانه دقیق و منطقی باشه و قدرت استدلال و استنباط بالایی داشته باشه.
برنامه نویس باید درمورد جزییاتی که باهاشون کار میکنه دانش و بینش و مهارت کافی داشته باشه. نه در این حدود سطحی و ناقص!

UnnamE
پنج شنبه 01 اردیبهشت 1390, 09:05 صبح
آقا من يه سوال كردم جوابم رو نداديد
تا اينجاي بحث كه گفته شده براي پروژه هاي كوچك تا متوسط از asp.net استفاده بشه چون بصرفه و اينچيزاست
ميدونيد كه برنامه نويس چه اعم از جوجه گرفته تا فوق العاده حرفه اي ميخوان پروژه هاي غول آسا بسازن
حالا واسه اين دسته افراد باس چيكار كرد؟

eshpilen
پنج شنبه 01 اردیبهشت 1390, 11:15 صبح
آقا من يه سوال كردم جوابم رو نداديد
تا اينجاي بحث كه گفته شده براي پروژه هاي كوچك تا متوسط از asp.net استفاده بشه چون بصرفه و اينچيزاست
ميدونيد كه برنامه نويس چه اعم از جوجه گرفته تا فوق العاده حرفه اي ميخوان پروژه هاي غول آسا بسازن
حالا واسه اين دسته افراد باس چيكار كرد؟
قربونت جوجه که صلاحیت نداره پروژهء غول آسا درست کنه. اول باید از جوجگی دربیاد!
حتی درمورد برنامه نویسای حرفه ای هم برای چند درصد از این افراد و چند درصد از کارهای واقعیشون که در طول عمر خودشون انجام میدن، پروژه های غول آسا هست؟
بین خواستن و یه احساس و هیجان کور و توهم و ادعا و غرور و همچشمی و تبلیغات، تا عمل و واقعیت خیلی فاصله هست.
ضمنا شاید بد نباشه چند نمونه از این پروژه های غول آسا رو که بروبچ خودمون درست کردن، نه شرکتهای بزرگ و/با برنامه نویسان برتر دنیا، معرفی کنید.
بهرحال درکل هم شاید به ازای هر صدتا پروژهء کوچک تا متوسط که هست، یدونه پروژهء غول آسا باشه. حالا شاید کمتر و شاید بیشتر (دقیقش بنظر شما چقدر هست و بر اساس چه سندی؟). البته بستگی داره غول آسا رو چی تعریف بکنیم دقیقا. مرزش از کجا شروع میشه دقیقا؟
ضمنا ASP.NET هم احتمالا میتونه برای حداقل یکسری از پروژه های غول آسا مناسب باشه. ولی به شرطی که هزینهء سرورهاش و لایسنس های اجزای اون قابل پرداخت باشن. منظورم از هزینهء سرورهاش اینه که احتمالا نیاز به سرورهای قدرتمندتر یا بیشتری خواهد داشت چون ویندوز و تشکیلاتش با دات نت مجموعا سنگین تر هستن بنظرم.
نهایتش هم بد نیست بپرسیم جواب این پرسش چی هست چه دخلی داره به بحث ما حالا و از جواب بهش به چی میخواید برسید و چه نتیجه ای از چی چطوری بگیرید؟
شما هر زبانی که میخواید برای پروژه های غول آسا انتخاب کنید.
شاید این زبان PHP باشه، شاید پایتون، شاید جاوا، شاید حتی ASP.NET.
سوالی که پیش میاد اینه که، آیا بنظر شما دلیل میشه چون اون زبان/فریمورک/فناوری برای پروژهء غول آسا مناسب تره ما فقط همون زبان رو یاد بگیریم و در پروژه های دیگرمون هم از همون زبان استفاده کنیم؟

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

UnnamE
پنج شنبه 01 اردیبهشت 1390, 11:28 صبح
مثلا ما 100 تا گوني برنج مياريم ميپرسيم eshpilen اين واس چيه ؟
دقيقا ميري يه دونه برنج كه دم در افتاده مياري ميگي بچه ها اين دونه چقدر نازـه ؟؟؟؟

موضوع سوال من اين بود كه آقا شايد يكي بخواد يه پروژه بنويسه غول آسا، اصلا بزرگ، گنده، به بزرگي 200 سانتي متر، خب اين جونور آيا واسش دات نت خوبه
نگو بستگي به سرور ها و پول باباش داره !

eshpilen
پنج شنبه 01 اردیبهشت 1390, 11:31 صبح
میدونی مثلا من یه پروژهء سیستم رجیستر و لاگین درست کرده بودم. پروژه ای که هنوز هم وقت نکردم امکانات مهمی رو بهش اضافه کنم و یکسری ضعف های امنیتیش رو برطرف کنم.
من این پروژه رو به یکی از صاحبکارهای قبلیم نشون دادم. خوشش اومد، اما وقتی دید کار کردن با PHP و ساختن همچین پروژه ای کار هرکسی نیست و نیاز داره تمام جزییات رو خودت پیاده بکنی که طبیعتا نیاز به دانش و مهارت گسترده و میزان زیاد کدنویسی و سروکله زدن با مشکلات و باگها داره، پرسید این کار در ASP.NET چطور انجام میشه. خب من جوابی نداشتم بدم، چون اون موقع هیچی از ASP.NET نمیدونستم.
ولی حالا میدونم جوابش چیه. جوابش اینه که این سیستم بصورت یک کامپوننت آماده با امکانات و امنیت بیشتر در ASP.NET در دسترس هست و استفاده از اون خیلی راحتتر و سریعتر از نوشتن معادلش در PHP هست.
یه کسی مثل آقای MMSHFE (http://barnamenevis.org/member.php?55504-MMSHFE) در اینجا تاحالا مدام از برتری و مزیت PHP و برنامه نویسانش صحبت کرده به خاطر اینطور تفاوتها. اما آیا واقعا در محیط کار و تجارت و پیش همون کارفرمای من که برنامه نویس هم نبود واقعا این برتری و مزیت و احترام میتونه وجود داشته باشه؟بعکس همچین چیزی باعث تمسخر و تحقیر آدم میشه. طرف میگه خب وقتی میشه به این سادگی انجام داد چرا رفتی داری خودت رو عذاب میدی! و تازه اینقدر تلاش کردی هنوزم برنامت امکانات و امنیت معادل کامپوننت ASP.NET رو نداره.
آدم در اینطور موارد میبینه که ASP.NET چطور بازی رو از PHP میبره. و خب اینم زندگی و واقعیتش هست دیگه. من اگر بخاطر علاقمندی و کارهای شخصی دنبال PHP رفتم، بخاطر کار و درآمد و اینکه در هیچ محیطی و جلوی هیچ کسی کم نیارم، باید دنبال ASP.NET هم برم.
درسته PHP هم فریمورک و کامپوننت داره، اما من اونهمه مطالعه و کار کرده بودم و هنوز وقت نکرده بودم برم دنبال مطالعه و مقایسه و یادگیری این فریمورک ها. ولی ASP.NET رو که یاد میگیری دیگه کار اضافه نداری و تکلیفت معلومه و میتونی فورا با خیال راحت شروع کنی. وابسته به یک یا چند فریمورک غیررسمی نیستی واسه کارهات. اگر یه جایی میری استخدام بشی، به مشکل نمیخوری که با فلان فریمورک کار میکنی و یاد گرفتی اما نه با فلان فریمورک که مورد نظر اون شرکت هست یا برنامه نویسان دیگرشون کار میکنن. اینا همه در تجارت مسائل کوچکی نیستن. و الان شما بیکارید یا کار کم دارید و حوصله و عشق و علاقه دارید، اما بعدا نه وقتش رو دارید و احتمالا نه حوصله و انگیزش رو که برید هر روز یه چیزی یاد بگیرید. اون موقع هدف شما صرفا انجام قابل قبول کار از راحتترین و سریعترین راه ممکن هست.
ضمنا اون صاحبکار من میخواست برنامه نویسی وب رو یاد بگیره و چند جلسه هم آموزش براش گذاشتیم که درحد آشنایی بود. بیشتر میخواست روی کد و برنامه های واقعی یاد بگیره و زود راه بیفته، که خب اینم با PHP ممکن نیست. اما ASP.NET در این زمینه تفاوت داره. با ASP.NET میشد خیلی کارهای بیشتری کرد که طرف میخواست و راضی بشه. و خب اینطور افراد دنبال اینطور چیزها هستن که بیشتر برای ضرورت کارشون و درآمدزایی لازم دارن، نه از روی بیکاری و علاقه، و اصلا وقت یادگیری و کار با چیزهایی مثل PHP رو احتمالا هرگز نخواهند داشت. پس به این صورت، احتمالا حتی آموزش ASP.NET هم میتونه مشتری های بیشتر و کلفت تری داشته باشه و واسمون نون دربیاره!!

eshpilen
پنج شنبه 01 اردیبهشت 1390, 11:44 صبح
مثلا ما 100 تا گوني برنج مياريم ميپرسيم eshpilen اين واس چيه ؟
دقيقا ميري يه دونه برنج كه دم در افتاده مياري ميگي بچه ها اين دونه چقدر نازـه ؟؟؟؟

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

دوباره نیا بپرس که جوابت چی شد.
جواب همین بود. بنظر من یه چیزی غیر از ASP.NET و چیزی که کاملا بازمتن و غیرانحصاری باشه. اما این دلایل سیاسی هم داره و فقط از نظر بعد فنی این رو نگفتم. ممکنه بعضی ها به این دید سیاسی معتقد نباشن یا بهش اهمیت یکسانی ندن. هرچند بنظر من حتی از نظر بعد فنی و هزینه ای و تجاری و قانونی هم، بازم PHP برای پروژه های خیلی سفارسی/ویژه یا بزرگ بهتر هست.

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

maysam.m
پنج شنبه 01 اردیبهشت 1390, 20:12 عصر
سلام


من فکر کردم تازه میخوای شروع کنی به یادگیری . من خودم هم هر دو رو بلدم و به خواست بعضی از مشتری ها مجبورم گاهی اوقات از Asp استفاده کنم و خیلی خوبه که هر دو رو بلد باشی
منم همین رو میگم دیگه! :دی
موفق باشید


ببین جناب , ایب ییییییییییییییییی ! من و گوش کن ... !

از این تاپیک ها زیاد توی انجمن های نسبتا تخصصی و برنامه نویسی اومده و رفته ... !

نیازی نیست مثل بعضی ها بیایم شونصد خط بنویسیم که فلان بهتره یا فلانی بدتره !!! مهم اینه که وقتی عنوان تاپیک رو میبینی یه پوزخند به بچه هایی مثل شما بزنیم , بعد یه پست شاد بدیم.

موفق باشید ...


- من کلا منظور شما را متوجه نمیشم که چی میگید و منظورتون چیه و این حرفهای توهین آمیز یعنی چه!!؟
- اگر مشکل خاصی با من یا پستهای من دارید یا حرف خاصی میخواهید بزنید لطفا پ.خ بزنید .
- لطفا دیگر این بحث رو ادامه ندید و آف تاپیک نکنید.

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

موفق باشید

maysam.m
دوشنبه 05 اردیبهشت 1390, 00:53 صبح
سلام

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


آقا تو و کسایی که طرفداری Asp.net رو می کنید خدا هستید ...
چه کسی این حرف رو زد؟ حتی دوستان دات نت کار هم همچنین حرفی نزدند. من هم طرفداری نکردم و ظاهرا شما همینطوری یه چیزی گفتی یه چیزی گفته باشی!!



کسایی هم که پرچم php رو نگهداشتن دمشون گرم , ولی برای اینکه حرارت شما بخوابه میگیم هیچی بلد نیستن ...
کسی همچین چیزی نگفت که شما و پی اچ پی کارها هیچی بلد نیستند و حتی استارتر گفت که من طرفدار دنیای متن باز و پی اچ پی هستم!
من هم میگم دم همه ی پی اچ پی کارها گرم! :)

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

موفق باشید

aliramazani
جمعه 29 مهر 1390, 10:54 صبح
به نظرم توی این تاپیک کسانی باید نظر بدن که به هر دو زبان مسلط باشن.
من خودم با هر دو زبان کار کردم.
اول هم از php شروع کردم به دلایل زیر:

چون راحت تر و ساده بود
چون رایگان بود
سرورهاش ارزون بودن.

حالا با ASP.NET کار می کنم.

من نظرم واسه این که چرا PHP هنوز زنده مونده اینه:
PHP به خاطر کد باز بودنش طرفدار داره و داره توسعه پیدا می کنه. اگه کد باز نبود آیا کسی ASP.NET و مایکروسافت را رها می کرد؟ یا برعکس اگه ASP.NET کد باز بود اصلا کسی طرف PHP می رفت؟
ما کسانی هستیم که داریم توی ایران ویندوز سی دی 500 تومن نصب می کنیم! بدون استثنا هممون هم ویندوز XP یا SEVEN داریم. ولی اگه قرار بود واسه ویندوزمون پول بدیم یهو همه با هزار دلیل و منطق واسه ویندوز کلی عیب و اشکال پیدا می کردیم!!!!

به نظر من php داره به asp.net نگاه می کنه و Asp یک سری امکانات داره که php برای داشتن اونها کلی معادل سازی می کنه.

به نظر من هیچ سایتی نیست که با php نوشته نشده باشه و نشه با asp.net نوشتن. ولی بر عکس بعضی سایتهایی که با asp.net نوشته شدن را نمیشه با php نوشت. نه که نشه نوشت واسه نوشتنش باید کلی کد قاطی پاتی کرد!!!!

چرا php محبوبیت بیشتر داره؟؟؟ چون کد بازه و همه توسعش دادن.
چون استفاده کنندهاش بیشتره به همون دلایل بالا و کد باز بودنش.

فقط اینو می دونم که اگه asp هم مثل php کد باز بود هیچکی سراغ php نمی رفت.

از مقایسه فریم ورکش هم که بگیم دات نت فرم ورک کجا و ci و prado و zend

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

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

من تو پروژه هام بر حسب درخواست مشتری یا از php استفاده می کنم یا Asp
این تجربه منه که از هر دوش به صورت حرفه ای تا حالا استفاده کردم. دوستان لطف کنند هر دو زبان را یاد بگیرن بعدا نظر بدن.

MMSHFE
جمعه 29 مهر 1390, 12:15 عصر
به نظرم توی این تاپیک کسانی باید نظر بدن که به هر دو زبان مسلط باشن.
من خودم با هر دو زبان کار کردم.
اول هم از php شروع کردم به دلایل زیر:
چون راحت تر و ساده بود
چون رایگان بود
سرورهاش ارزون بودن.
حالا با ASP.NET کار می کنم.
دليل خوبي براي كار با PHP انتخاب نكردين.

من نظرم واسه این که چرا PHP هنوز زنده مونده اینه:
PHP به خاطر کد باز بودنش طرفدار داره و داره توسعه پیدا می کنه. اگه کد باز نبود آیا کسی ASP.NET و مایکروسافت را رها می کرد؟ یا برعکس اگه ASP.NET کد باز بود اصلا کسی طرف PHP می رفت؟
يعني واقعاً فكر ميكنيد سايتهايي مثل FB صرفاً بخاطر كد باز بودن سراغش رفتن؟ فرض محال كه اينطور باشه. مگه كدباز بودن مزيت كمي محسوب ميشه؟ كلاً محصولات مايكروسافت اگه يه روزي (فكر كنم بعد از قيامت باشه) كدباز بشن، باز هم بعيد ميدونم كسي براي پيشرفت اونها وقت بگذاره.

ما کسانی هستیم که داریم توی ایران ویندوز سی دی 500 تومن نصب می کنیم! بدون استثنا هممون هم ویندوز XP یا SEVEN داریم. ولی اگه قرار بود واسه ویندوزمون پول بدیم یهو همه با هزار دلیل و منطق واسه ویندوز کلی عیب و اشکال پیدا می کردیم!!!!
من نميگم از ويندوز استفاده نميكنم ولي براي ويندوزم 470 هزار تومان پول دادم و نسخه اوريجينال رو گرفتم. براي همين هست كه نسبت به كپي رايت حساسيت دارم. حالا شما اگه ويندوز 500 توماني نصب ميكنيد و بعد با همين ويندوز، كلي نرم افزارهاي Crackشده استفاده ميكنيد، طبيعي هست كه رايگان بودن PHP نبايد براتون دليل مهمي محسوب بشه.

به نظر من php داره به asp.net نگاه می کنه و Asp یک سری امکانات داره که php برای داشتن اونها کلی معادل سازی می کنه.
اون زماني كه PHP ساخته شد و پيشرفت كرد اصلاً ASP.NET وجود نداشت كه بخواد به اون نگاه كنه. اگه منظورتون هم ASP كلاسيك هست كه كلاً بهتره درموردش حرف نزنيم چون ارزش انرژي گذاشتن رو نداره.

به نظر من هیچ سایتی نیست که با php نوشته نشده باشه و نشه با asp.net نوشتن. ولی بر عکس بعضی سایتهایی که با asp.net نوشته شدن را نمیشه با php نوشت. نه که نشه نوشت واسه نوشتنش باید کلی کد قاطی پاتی کرد!!!!
چرا كدها رو قاطي پاتي كنيم؟ وقتي ميشه توي PHP كدهاي مرتب و كلاسهاي تميز نوشت، نيازي به كدنويسي بهم ريخته نيست. واقعاً معتقدين همه سايتهايي كه با PHP نوشته شده رو ميشه با ASP.NET نوشت و با همون سرعت اجرايي از اونها استفاده كرد؟ فكر ميكنيد FaceBook اگه با ASP.NET نوشته شده بود، ميتونست نزديك به يك ميليارد كاربر داشته باشه و سرعتش كاهش پيدا نكنه؟ درسته كه بخشهايي از PHP رو خودشون تغيير دادن و از نسخه خاص خودشون كه قسمتهايي از اون بصورت كامپايل شده در اومده و مفسري نيست استفاده ميكنن ولي همين امتياز هم در ASP.NET به دليل كد بسته بودنش وجود نداره. كلاً توي ASP.NET هميشه بايد چشمتون به دستان مايكروسافت باشه تا كي لطف ميكنه و يك ويژگي اضافه ميكنه كه بتونيد استفاده كنيد.

چرا php محبوبیت بیشتر داره؟؟؟ چون کد بازه و همه توسعش دادن.
چون استفاده کنندهاش بیشتره به همون دلایل بالا و کد باز بودنش.
فقط اینو می دونم که اگه asp هم مثل php کد باز بود هیچکی سراغ php نمی رفت.
فقط اين چيزا نيست برادر من. برخي (فقط برخي) از علتهاي محبوبيت PHP اينهاست:
- كدباز بودن
- سريعتر بودن
- ساده تر بودن
- زبان بودن (نه فريمورك بودن)
- وجود شئ گرايي بعنوان يك امتياز (نه يك اجبار)
- عدم نياز به يادگيري ساختار و زبان جداگانه (برخلاف ASP.NET كه بايد به يكي از زبانهاي تحت dotNET هم مسلط باشين)
- امكان اجرا روي تمامي سرورها و با تمامي سيستمهاي عامل منجمله لينوكس (امن تر - سريع تر - ارزان تر)
و كلي دلايل ديگه كه فكر ميكنم همينها كافي باشه.

از مقایسه فریم ورکش هم که بگیم دات نت فرم ورک کجا و ci و prado و zend
عزيز من فريمورك دات نت رو با Zend و... نبايد مقايسه كنيد چون اين فريمورك مخصوص ASP.NET نيست درحالي كه فريموركهاي PHP مخصوص اين زبان ساخته شدن. ضمناً PHP اينقدر قدرت داره كه بشه باهاش يك فريمورك ساخت ولي ASP.NET خودش داره از يك فريمورك قدرت ميگيره و چنين قابليتي مثل PHP نداره.

یه چیزی اگه بخواد پیشرفت کنه باید یک متولی داشته باشه. asp. دست مایکروسافته و بزرگترین دانشمندای دنیا دارن روش کار می کنن. (هر که اینو قبول نداره همین الان سیستم عامل ویندوزش را پاک کنه و از لینوکس استفاده کنه)
ولی php چی؟
هر که از راه رسیده یه چیزی بهش اظافه کرده.
خود من سالها از php استفاده کردم و به قول دوستمون انتها نداره!!! چر ا؟ چون هر روز یکی اومده یه چیزی بهش اظافه کرده که اصلا معلوم نیست این بابا کی بود؟
بزرگترين دانشمنداي دنيا توي مايكروسافتن؟ پس چرا اينقدر برنامه هاش باگ داره؟ اگه بزرگترين دانشمنداي دنيا توي مايكروسافت باشن پس لابد (نعوذ با...) خود خدا داره توي گوگل كار ميكنه! عزيز من اگه محصولات مايكروسافت رو مثل پارچه درنظر بگيريم و با هر نقص امنيتي و باگ يك سوراخ توي اون پارچه ايجاد كنيم، آخرش چيزي بجز يك تور ازش باقي نميمونه!!! ضمناً كي گفته هركي از راه رسيده يه چيزي بهش اضافه كرده؟ شما تابحال انگار اصلاً اسم شركت Zend رو نشنيدين. هيچ چيزي به اين زبان اضافه نميشه مگه اينكه مورد تأييد اين شركت قرار بگيره و بعد از سازگارشدن با بقيه قسمتها توسط خود اين شركت منتشر ميشه. اون چيزهايي كه هركسي بهش اضافه كرده رو بهش ميگن نسخه هاي سفارشي كه فقط مخصوص خود اون افرادي هست كه تغييرش دادن. مثل نسخه مورد استفاده FaceBook كه با وجود امتيازات بسيار، مورد تأييد نيست و درنتيجه بعنوان نسخه رسمي معرفي نميشه. شما كه مدعي هستين نميدونين هر ويژگي رو كي اضافه كرده، فايلهاي ChangeLog هر نسخه رو مطالعه كنيد (توي مستندات رسمي كه در سايت php.net موجوده) تا از اين موضوع مطلع بشين.

آره آدم گیج میشه چون نمودنه می خواد چکار کنه؟ از کدوم فریم ورک استفاده کنه؟ توی php باید کدوم خدا را پرستید؟ اینا چند تا خدا دارن؟
توي PHP چند تا خدا وجود نداره. فريموركهاي PHP همه با خود PHP نوشته شدن و برحسب نيازتون يكي رو كه باهاش راحتترين انتخاب ميكنيد و اگه نخواستين، با خود PHP و بدون وجود هيچ فريموركي هم ميتونيد سايت بسازين ولي ASP.NET بدون فريمورم دات نت مساوي هست با صفر مطلق! پس بحث چند خدايي مطرح نيست و تازه اگه باشه هم باز بهتر از خداي يكتاي ASP.NET به نام مايكروسافت هست كه اصلاً بنده هاش رو نميبينه! خود شما اگه يك ايرادي توي ASP.NET پيدا كنيد چيكار ميتونيد بكنيد؟ لابد ميگين به بخش Support مايكروسافت ايميل ميزنيم. خوب امتحان كنيد ببينيد چه جوابي ميگيرين. من بهتون ميگم: فقط مثل تلفن گوياي 117 (خرابي تلفن) بهتون ميگه اقدام خواهد شد. ولي مطمئن باشين كاري نميكنن چون يا بايد چندين نفر گزارش بدن و يا اينكه نماينده شركتي در حد Google باشين كه حرفتون رو بشنون. در كل تنها كاري كه ميتونيد انجام بدين منتظر موندن و دعا كردن براي رفع اون مشكل در نسخه بعدي هست.

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

idocsidocs
جمعه 29 مهر 1390, 14:11 عصر
دوستان طبق گفته ویکیپدیا 75 درصد سرورها از پی اچ پی استفاده می کنن و 20 میلیون دامین از آپاچی استفاده می کنن و مد ریرایت توی آپاچی محبوب ترین ماژولهای سرورهای وب هست.

با وجود این تعداد طرفدار توی دنیا، شما چرا بحث بی فایده می کنید؟

چیزی که مثل روز روشنه، بحث و تبادل نظر نداره !

صحبت شما مثل اینه که بگید بیاید در مورد روز و شب بحث کنیم و ببینیم الان روزه یا شب !

aliramazani
جمعه 29 مهر 1390, 14:45 عصر
دوست عزیز من نظرم را دادم. اگر نظر من دقیقا مثل شما بود که خود شما بودم نه یه آدم دیگه اون سر دنیا!
به هر حال همین نظرات هست که به پیشرفت کمک می کنه. عرض کردم که من با هر دوش کار کردم. php را دوسش دارم. چون اول بود. اولین ها همیشه محبوبن. من قبل از php با asp کلاسیک کار کردم ولی ازش حرفی نزدم! به دلایلی!

به هر حال نه من سازنده php هستم نه asp
هر جایی یکیش کاربرد داره. به نظرم این تاپیک را تو بخش asp.net هم بزنید تا با نظرات جالب دیگه ای هم رو به رو بشین.

Hooman.Prog
جمعه 29 مهر 1390, 18:39 عصر
فقط اینو می دونم که اگه asp هم مثل php کد باز بود هیچکی سراغ php نمی رفت.

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

MMSHFE
جمعه 29 مهر 1390, 18:52 عصر
دوست عزيز من اصلاً و ابداً قصد توهين يا ناراحت كردن كسي رو ندارم. اين نكاتي هم كه گفتم، به معناي تعريف صرف از PHP و عدم كارآيي و يا بد بودن ASP.NET نيست و هركدوم، در جايگاه خودشون كارآيي لازم رو دارن. تمام صحبت من اينه كه اگه قراره درباره هركدوم از اينها صحبت كنيم، دلايل مناسب براي برتري يا ضعفشون مطرح كنيم. براي مثال، متن باز بودن، ويژگي كوچكي نيست. حتي اگه تنها ويژگي PHP باشه (كه اينطور نيست). اگه قراره از هركدوم دفاع كنيم، بايد دلايلي بياريم كه واقعاً برتري باشن نه اينكه سليقه اي عمل كنيم. موفق باشيد.

itsurge
دوشنبه 13 خرداد 1392, 02:10 صبح
واقعا خنده داره کاراتون.نشستین کد نوشتید که بگید این خوبه اون بده!!!!! فکر کنم من چیزی از زبان برنامه نویسی نمی دونم!!! آخه ما ایرانی ها همیشه دوست داریم مقدمه همه چیزو ول کنیم بریم سراغ اصل کار:لبخند:
لطفا کمی فکر کنید بابا در تاریخچه زبان php نوشته شده بر گرفته از زبان C و نیز لازم به ذکر است که php زبان نیست و همچنین asp.net یادمون باشه کسی که php رو نوشته یکی از ........... بوده بعدش میام میگیم این خوبه یا نه شما اگه واقعا دنبال جواب هستید همین سوالتون رو توی فروم خارجی جستجو کنید خواهید دید برای خوب و برتر بودن به کد نگاه نمی کنند به عنوان مثال دوست عزیز اگه کد شما یک خط باشه و برای اجرا شدنش زمان ببره اون دیگه برتری نیست و یا راحت کد نوشتن در asp.net تمامی کار های موجود در دو زبان یکی هستند یکی رایگان یکی پولی یکی با موتور تفسیری یکی با موتور کامپایل شدنی و ...........
اما در آخر مهم نیست کدومشون برترند مهم اینکه کدومشون الان کارتو راه میندازه من از هر دو زبان استفاده کردم پیشنهادم asp.net چون توش امنیت به صورت پیشفرض اجرا شده و این خیلی خوبه برای کسانی که نمی دوندن امنیت چیه!!

itsurge
دوشنبه 13 خرداد 1392, 02:22 صبح
راستی یادم رفت بگم رایگان بودن دیگه ملاک نیست چون asp.net mvc رایگانه و همچنین نرم افزار هایی مثل MICROSOFT EXPRESSION در ضمن مایکروسافت php رو به ویژوال استدیو اضافه کرده و شماهم می تونید تحت اون کدهاتون رو بنویسید.
در ضمن اگه رشته تحصیلی شما مهندسی کامپیوتر باشه دیگه یک php اسکریپتی رو با تکنولوژی مهندسی مقایسه نمی کنید یاد نداشتنه کد دلیل برتری نمیشه اگه می خواهی کد رو مقایسه کنید این تالارتو از زیر مجموع php بیار بیرون تا جواب کد هاتو بدن بهت.!!! در اخر هم یادت تره اون نرم افزاری که باهش کد مینویسی با زبان های مایکروسافتی نوشته شده که همون زبانی هست که با asp.net کار میکنه