صفحه 2 از 5 اولاول 1234 ... آخرآخر
نمایش نتایج 41 تا 80 از 199

نام تاپیک: مقایسهء عملی ASP.NET و PHP با نمونه کد

  1. #41

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

    ضمناً براي انعطاف پذيري آرايه ها هم توي دات نت اگه اشتباه نكنم راه معادل امكانات PHP اينطوري هست:

    $x['id']=5;
    $x['name']='ali';
    $x['grade']=19.25;
    $x['deleted']=false;
    foreach($x as $key=>$value)
    {
    echo $key.' => '.$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) بنويسيم. اين يعني مقيد بودن كامل به نوع و دقيقاً معناي عدم آزادي عمل در نوع متغير رو خواهد داشت.
    موفق باشيد.

  2. #42

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

    نقل قول نوشته شده توسط MMSHFE مشاهده تاپیک
    اشتباه نكنيد، اين سيستم فرمان و نظارت كامل كه ميگين پشت صحنه ASPdotNET نشسته، محيط IDE قدرتمندي به نام VSdotNET هست نه امكانات خود اين زبان!
    خیر به ویژوال استودیو ربطی نداره. بلکه اینا حاصل امکانات محیط اجرای دات نت و کل فریمورکش هست.

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

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

  3. #43

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

    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:27 عصر

  4. #44

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

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

  5. #45
    کاربر دائمی آواتار V0R73X
    تاریخ عضویت
    آبان 1389
    محل زندگی
    Houston, TX
    پست
    192

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

    خودتون می گید 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 رو بدهید، لطفا

  6. #46
    کاربر دائمی آواتار V0R73X
    تاریخ عضویت
    آبان 1389
    محل زندگی
    Houston, TX
    پست
    192

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

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

  7. #47

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

    با سلام، مسئله اصلي همينه كه 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 ميتونيد مشخص كنيد كه تغييرات پارامترها در بدنه متد روي آرگومان متناظر با اون اعمال بشه يا نشه (برحسب تمايلتون و بدون نياز به تغيير بدنه متد).
    موارد از اين دست هم زياده كه به مرور ذكر خواهد شد. خوشحال ميشم براي اين موارد هم در دات نت معادلي ذكر بشه.
    موفق باشيد.

  8. #48
    کاربر دائمی
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    سطل قهوه!!!
    سن
    92
    پست
    354

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

    نقل قول نوشته شده توسط V0R73X مشاهده تاپیک
    راستی مشکلات بعدی که باید در نظر گرفته شوند:
    1.ASP به دو زبان C#‎ و VB نوشته میشه PHP چی؟؟
    asp نيست و asp.net
    بزار اين مشكل رو reverse كنيم، يعني php خودش زبان ـه و براي استفاده لازم ني زبون ديگه اي ياد گرفت

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

  9. #49
    کاربر دائمی
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    سطل قهوه!!!
    سن
    92
    پست
    354

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

    اين سورس طفلي رو نيگاه كنيد
    <?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 چجوري هست!
    آخرین ویرایش به وسیله UnnamE : یک شنبه 29 اسفند 1389 در 04:16 صبح

  10. #50
    کاربر دائمی آواتار binyaft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    سیم مسی
    پست
    1,761

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

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

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


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

  11. #51
    کاربر دائمی آواتار binyaft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    سیم مسی
    پست
    1,761

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

    1.ASP به دو زبان C#‎ و VB نوشته میشه PHP چی؟؟
    فکر کنم منظورت این هست که .net رو میشه رو 2 تا زبان یا بیشتر پیاده کرد! asp خودش رو دات نت هست!
    من جواب انعطاف پذیری آرایه ها رو دادم، بقیش رو هم یار عزیزم Eshpilen گفت، شما هم جواب امنیت Php رو بدهید، لطفا
    Dim StriTest as string()={"Str1", "Str2"}

    شما فقط یه ارایه نوشتی با نوع داده str ، نمیدونم شاید تعریفی از انعطاف ندارید یا با یه کلمه ی دیگه اشتباه گرفتید!
    شما که اینقد تسلط داری رو PHP و کامل میشناسیش و میگی امنیت پایینی داره ، یه سوراخ نام ببر من خودم جوابتو میدم! :D
    جناب Eshpilen که چیزی نگفت ، فقط کد جناب MMSHFE رو تایید کرد!
    قایون از دوستان عزیز خواهش میکنم در جواب به موضوعات مطرح شده زیر آبی نروند! اگر من ضعفی رو مطرح کردم خواهشا به همون ضعف پاسخ بدین نه اینکه یه ضعف دیگه از ASP جلو بکشین بگین "این به اون در"!!!
    یه مورد زیر آبی مطرح کنید لطفا!
    شما کودوم ضعف رو مطرح کردید!؟
    ما که هنوز نگفتیم این به اون در!
    آخرین ویرایش به وسیله binyaft : یک شنبه 29 اسفند 1389 در 08:31 صبح

  12. #52

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

    نقل قول نوشته شده توسط MMSHFE مشاهده تاپیک
    با سلام، مسئله اصلي همينه كه 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:32 عصر

  13. #53

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

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

  14. #54

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

    خب حالا که چی؟ نتیجهء عملی؟
    بنده اون مورد 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 كارها صحبت نكنيد. كلي صحبت كردن اصلاً عادت خوبي نيست.
    موفق باشيد.

  15. #55
    کاربر دائمی آواتار ghasemweb
    تاریخ عضویت
    تیر 1388
    محل زندگی
    تهران
    پست
    608

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

    نخود نخود هر که رود خونه خود .........!

  16. #56
    کاربر دائمی آواتار V0R73X
    تاریخ عضویت
    آبان 1389
    محل زندگی
    Houston, TX
    پست
    192

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

    بعلاوه PHP درسته كه براي نوع متغير سختگيري نميكنه ولي به اين معني هم نيست كه نشه نوع رو تشخيص داد. اگه اينطور بود عملگرهايي مثل === و ==! و... توش وجود نداشتن كه علاوه بر مقدار، نوع رو هم بررسي ميكردن.
    ببینید حرف منو تغییر ندین من نگفتم که نمیشه نوع متغیر رو تشخیص داد گفتم که PHP نوع ضعیف هست، یعنی این که شما برای جلوگیری از ارور منطقی باید هی ازین عملگرایی که گفتین استفاده کنین تا حساب متغیر ها دستتون باشه، ولی ASP.NET نوع قویه بنابراین یه بار Define میکنی خودتو راحت میکنی ارور ها رو خودش Debug میکنه
    نقل قول نوشته شده توسط UnnamE مشاهده تاپیک
    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 به عهده خود برنامه نویس هست)...

  17. #57
    کاربر دائمی آواتار binyaft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    سیم مسی
    پست
    1,761

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

    شما آیا میتونید تو سایتتون مپ بزارین؟ میتونین سرور 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 هستم .

    موفق باشی جیگر .
    آخرین ویرایش به وسیله binyaft : سه شنبه 02 فروردین 1390 در 13:12 عصر

  18. #58

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

    نقل قول نوشته شده توسط MMSHFE مشاهده تاپیک
    خوشحال ميشم بدونم چطور تست كردين. تا درموردش بحث و تبادل نظر كنيم.
    به روشی ساده و روشن!
    دقت کردم متوجه شدم وقتی در ویژوال استودیو میخوای سایت رو تست کنی و دکمهء اجرا رو میزنی، یک وب سرور مخصوص تست رو اجرا میکنه که روی پورتی که تعیین میشه و برای اون سایت خاص که درحال طراحیش هستیم اجرا میشه و بعد آدرس در مرورگر باز میشه که درواقع از طریق این وب سرور مخصوص تست و توسعه، اجرا و خروجی به مرورگر ارسال میشه (تصویر این برنامه رو میتونید در فایل ضمیمهء پست ببینید). خب من گشتم و فایل اجرایی این وب سرور رو پیدا کردم. اول در لیست پراسسهای ویندوز در تسک منیجر اسم فایل اجرایی اون وب سرور درحال اجرا رو پیدا کردم که اسمش 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 بكوبيد؟
    باشه روش فکر میکنم ببینم یک مثال خوب میتونم پیدا کنم.
    البته فعلا ضرورت و اولویتی نداره برام و مثالهای دیگه بقدر کافی داریم.
    ضمنا شما خودت داری میگی معادلسازی. بنظر شما این معادلسازی واقعا درحد خوانایی و راحتی و سرعت توسعه و کیفیت روش مستقیم ساپورت مالتی ترد هست؟ حداقلش اینه که در روش شما چند درخواست و ارتباط بین سرور و کلاینت اضافه تر خواهیم داشت. و البته در عمل مسلما بیش از این جزییات و محدودیت وجود خواهد داشت و کدنویسی ما رو ناخواناتر و پیچیده تر کرده و بخشهای مختلفی از کد عملیات مورد نظر رو در جاهای مختلفی پراکنده میکنه.
    به این میگن یه راهکار کثیف و ضعیف با سرهمبندی!
    عکس های ضمیمه عکس های ضمیمه
    آخرین ویرایش به وسیله eshpilen : سه شنبه 02 فروردین 1390 در 21:03 عصر

  19. #59
    کاربر دائمی آواتار ghasemweb
    تاریخ عضویت
    تیر 1388
    محل زندگی
    تهران
    پست
    608

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

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

  20. #60
    کاربر دائمی
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    سطل قهوه!!!
    سن
    92
    پست
    354

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

    يه كلاس ساده نشونتون دادم
    نتونستين جواب بدين، بحث و عوض ميكنيد
    بعدش هم ميگين فلان توانايي رو ندارم؟
    يا تسلط كافي نيست؟
    كسي كه نتونه يه data mapper رو پياده كنه خو ديگه چرا باس بياد تاپيك وا كنه.
    برين يكم ياد بگيريد، بريد!

  21. #61

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

    نقل قول نوشته شده توسط UnnamE مشاهده تاپیک
    كسي كه نتونه يه data mapper رو پياده كنه خو ديگه چرا باس بياد تاپيك وا كنه.
    برين يكم ياد بگيريد، بريد!
    چی داداش با منی؟

  22. #62
    کاربر دائمی آواتار L u k e
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    قزوین
    سن
    30
    پست
    559

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

    باز هم این موضوع کلیشه ای ...
    گفتم یه نظری داده باشم
    Php فقط یه زبون اسکریپتی محبوبه که از شی گرایی پشتیبانی می کنه ( پشتیبانی می کنه )
    Asp امکانات خوبی داره در کد نویسی و طراحی هیچ چیز کم نداره فقط مشکلش اینه که ( به نظر من ) برنامه نویسی وب رو خیلی Wizard وار باهاش تجربه می کنید یعنی یه سری کارها رو خودش انجام می ده ( و در صورت عادی برنامه نویسی خالصی از وب رو ارائه نمی ده ) البته مجبور نیستید و دست شماست همه چیش ولی Default ش همینه اینم از نظر بعضی ها عیب نیس و یه مزیت ه
    فکر نمی کنم 2 تا شونم چیزی کم داشته باشن فقط می شه گفت سرعت php در بیشتر مواقع از .net بیشتر ه

  23. #63
    کاربر دائمی آواتار V0R73X
    تاریخ عضویت
    آبان 1389
    محل زندگی
    Houston, TX
    پست
    192

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

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

  24. #64
    کاربر دائمی آواتار V0R73X
    تاریخ عضویت
    آبان 1389
    محل زندگی
    Houston, TX
    پست
    192

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

    مثال: متغیر ها و آرایه ها توی 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:01 صبح

  25. #65
    کاربر دائمی آواتار V0R73X
    تاریخ عضویت
    آبان 1389
    محل زندگی
    Houston, TX
    پست
    192

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

    ASP.NET از شیئی به نام StringBuilder هم پشتیبانی میکنه که اینطوری تعریف میشه:
    Dim strB as New StringBuilder()

    تابع New برای این شیء هم از یک سری آرگومان که Override هم میشن پشتیبانی میکنه از جمله مقدار اولیه، طول پیشنهادی، ماکسیمم طول و...
    مهم ترین تابعش هم Append هست که Stringی رو به عنوان آرگومان گرفته به رشته اصلی اضافه میکنه.
    strB.Append("ASP")
    StrB.Append(".NET")

  26. #66
    کاربر دائمی آواتار binyaft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    سیم مسی
    پست
    1,761

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

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

  27. #67

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

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

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

    بهرحال PHP زبانی با سیستم نوع weak هست و C#‎ زبانی با سیستم نوع strong و این مسلما تفاوتهایی رو ایجاد میکنه. دربارهء مزایای این دو نوع هم در مقاله ای که تازگی ترجمه کردم اطلاعات مفیدی هست. البته این دو روش طرفداران و مخالفان خودشون رو دارن طبیعتا که هرکدوم استدلالهای خاص خودشون رو دارن (مثلا بحث امنیت و احتمال پنهان موندن بعضی باگها رو قبلا مطرح کردم). من خودمم شک دارم که بالاخره کدوم بهتره. فکر میکنم به کاربرد هم بستگی داره، و البته نظرم بیشتر متمایل به مزیت نوع weak در چنین حیطه ها و سطوحی از برنامه نویسی هست و اینکه زبانهایی با چنین خصوصیاتی بطور اکثریت در این حیطه ها بکار میرن خودش میتونه نشانهء مناسب بودن اونها برای چنین حیطه ها و کاربردهایی باشه.
    درمورد دات نت هم فکر میکنم بخاطر اینکه دات نت چند حیطه ای تر هست و مثلا برای برنامه نویسی دسکتاپ و بعضی کارهای سطح پایینتر هم درنظر گرفته شده، از سیستم نوع strong استفاده کرده که ضمنا میتونه با توجه به پیچیدگی و سطح و گستردگی سیستم دات نت، به افزایش سرعت اون هم کمک کنه.
    البته شاید دلایل دیگری هم داشته. بهرحال محصولات میکروسافت هم لزوما بدون اشتباه و ضعف نیستن. هر زبان و نرم افزاری میتونه در طراحی دچار اشتباهات و نقصهای کوچک و بزرگی باشه.
    شما فرض کنید این یکی به نفع PHP. بنده حرفی ندارم.
    پس بهتره به موارد دیگه بپردازیم.
    فعلا همون رگولار اکسپرشن حروف فارسی در PHP رو یکی تحویل بده ببینیم
    آخرین ویرایش به وسیله eshpilen : پنج شنبه 04 فروردین 1390 در 12:07 عصر

  28. #68
    کاربر دائمی آواتار binyaft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    سیم مسی
    پست
    1,761

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

    جناب 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';

    حالا شما یه مالتی ترد بزارید ، البته اگر قانع شدید !

    موفق باشید

  29. #69

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

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

  30. #70

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

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

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

  31. #71
    کاربر دائمی آواتار binyaft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    سیم مسی
    پست
    1,761

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

    ببین نوع گذاری قوی نیاز داره که نوع متغییرها پیش از استفاده تعریف بشه، بنابراین ما نمیتونیم یه آرایه رو بدون از پیش تعریف کردن اعضای اون و ساختار خودش به هر شکلی که میخوایم و هر متغییری هرجا میخوایم و تو در تو و غیره تعریف کنیم.
    خلاصه یه همچین چیزایی!! گرفتی؟
    حالا 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 ، حالا میگی بیخیالش شدم ، ولی حتما ، حتما یه مثال بزن .

  32. #72

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

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

    خب شما اونو تست کن ، حروف فارسی + اعراب ها رو پشتیبانی میکنه { طبق گفته نویسنده }
    تا اینجا که بررسی کردم ظاهرا بدون مشکله.
    آخرین ویرایش به وسیله eshpilen : پنج شنبه 04 فروردین 1390 در 19:00 عصر

  33. #73

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

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

  34. #74

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

    خب نمونه کد بعدی!
    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;&n bsp;&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>


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



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

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



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



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

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

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

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

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

  35. #75
    کاربر دائمی آواتار binyaft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    سیم مسی
    پست
    1,761

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

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

    موفق باشید

  36. #76

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

    ببین قربونت، من قبلا چند بار گفتم الانم میگم.
    این بحث برای این هست که کسانی که میخوان بین 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 مطرح میشه. اونم توسط افرادی که ادعا میکنن دات نت رو میشناسن و سالها باهاش کار کردن.

  37. #77

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

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

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

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

  38. #78
    کاربر دائمی آواتار binyaft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    سیم مسی
    پست
    1,761

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

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

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

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

    موفق باشید

  39. #79

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

    با سلام، اين هم كد معادل نمونه AJAX شما كه در ASPX توضيح داده بوديد. سعي كردم تا جايي كه ميشه همون ساختار كد شما رو داشته باشه. ميبينيد كه كار اصلاً سختي در اين بين وجود نداره. ضمناً از jQuery و... هم استفاده نكردم. با مرورگرهاي مختلف هم سازگاري كامل داره (ميتونيد امتحان كنيد).
    ajaxinphp1.jpg ajaxinphp2.jpg ajaxinphp3.jpg
    واقعاً هر چي بيشتر ميريم جلو، بيشتر به اين نتيجه ميرسيم كه بعضي از دوستان انگار PHP رو با HTML اشتباه گرفتن! اين هم شد مثال؟!
    توي كد PHP دقيقاً ميبينيد كه چه اتفاقي داره ميفته و AJAX چطوري كار ميكنه و چطور بايد به روش POST اطلاعات رو ارسال كرد و از اون طرف صفحه مقصد خروجي لازم رو چطور توليد ميكنه و نهايتاً دوباره با JS چطور در مكاني كه ميخواين، اطلاعات بازگشتي از سرور رو جايگذاري ميكنيد، اما ASPX چي؟ UpdatePanel؟
    اينطور كه dotNET داره كاربران خودش رو (با عرض شرمندگي) تنبل بار مياره، چند وقت ديگه احتمالاً توي كنفرانس مطبوعاتي Microsoft خواهيم شنيد كه اعلام ميشه: از اين به بعد طراحان سايت عزيز كافيه با ميكروفون به موتور ASPX بگن چي ميخوان و اون يك سايت آماده در قالب فايل ZIP بهشون تحويل بده. همه طراح وب خواهيم شد! همه خوشحال خواهيم بود!!!
    موفق باشيد.
    فایل های ضمیمه فایل های ضمیمه

  40. #80

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

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

صفحه 2 از 5 اولاول 1234 ... آخرآخر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •