View Full Version : سوال: آیا سایت هایی که با ASP.net ساخته میشه بابرخی مرورگرها مشکل داره؟
asefy2008
دوشنبه 19 مرداد 1388, 20:05 عصر
سلام دوستان من چند وقت پیش از چند نفر شنیدم سایت هایی که با ASP.NET نوشته میشه با برخی مرورگرها کامل باز نمیشه یا مشکل داره،آیا درسته؟
اصلا در سیستم عامل های دیگه درست باز میشه، مشکلی نداره؟
وضعیت سرعت و پشتیبانیش چطوره؟
اگر مقاله هم در این مورد سراغ دارید معرفی کنید عالی میشه؟
در انتها میشه چند سایت معتبر که با ASP.NET نوشته شده معرفی کنید؟
ببخشید تعداد سوالات زیاد شد.
Chabok
دوشنبه 19 مرداد 1388, 21:24 عصر
با سلام
در اینجا ذکر یک نکته ضروری است و آن این است که :
مسائلی از قبیل نحوه نمایش در مرورگر ها و همچنین سیستم عامل های مختلف هیچ ربطی به زبان برنامه نویسی سمت سرور یک وب سایت ندارد .
زیرا در وب ، یک سری پردازش روی سرور انجام می شود که می توان گفت همان زبان برنامه نویسی مورد نظر ما است .
سپس برای کاربر که به عنوان کلاینت شناخته می شود تنها کدهای مربوط به نمایش اطلاعات که به زبان HTML است فرستاده می شود .
تنها دلیلی که برخی از افراد تازه وارد بر این نظر هستند که در ASP.net صفحات وب بخوبی در مرورگر ها نمایش داده نمی شود ناشی از آن است که اغلب این کاربران در ابتدا با برنامه نویسی ویندوز در دات نت آشنا می شوند .
سپس به ASP.net مراجعه می کنند و دقیقاً مانند طراحی فرم ها در ویندوز عمل می کنند .
یعنی در محیط Visual Studio شروع به چیدن کنترل ها روی صفحه می کنند .
این عمل به خودی خود مشکلی ایجاد نمی کند .
مشکل از آن جایی ناشی می شود که نمی توان با این سبک طراحی ، یک صفحه وب خوب طراحی کرد .
زیرا شما باید آنقدر به کدهای HTML مسلط باشید که بتوانید بدون نیاز به چنین نرم افزارهایی و مثلا در محیط Notepad کدهای خود را ایجاد نمایید .
قصد من ایراد گرفتن به محیط طراحی و اینجور مسائل نیست .
بلکه به تسلط کامل داشتن بر روی طراحی وب است .
زیرا شما در ASP.net می توانید به سادگی به سبک php کد بنویسید .
خودتان به صورت کامل کد نویسی را بر عهده گرفته و به چنین مسائلی نیز برخورد نکنید .
به هر حال این قدرت ASP.net را نشان می دهد که شما می توانید به صورت کنترلی طراحی وب انجام دهید .
ولی در صورتی که به صورت ناشیانه از این قدرت استفاده کنید مطمئناً به مشکل برخواهید خورد .
پس نتیجه می گیریم که ظاهرا طراحی وب ، ربطی به زبان یا تکنولوژی برنامه نویسی شما ندارد و چیزی که روی صفحه مرورگر نمایش داده می شود تفسیر کدهای HTML ی است که برای کاربر ارسال شده است .
موفق و پیروز باشید .
asefy2008
پنج شنبه 29 مرداد 1388, 20:50 عصر
ممنون از شما دوست من به خاطر توضیحاتتون
من داشتم یک کتاب مربوط به ASP.NET رو مطالعه می کردم که به مطلب زیر برخوردم:
محدودیت های CSS و سبک های کد سمت سرویس دهنده
وقتی با استفاده از CSS سایتی را سبک بندی می کنید، می توانید نحوه ظاهر شدن عناصر خاص بر روی صفحه را مشخص کنید. این کارها تنها برای یک وب سایت HTML ایستاء مناسب و خوب است، ولی وقتی به عناصر سمت سرویس دهنده برسید، با مشکلاتی که مواجه خواهید شد. برای مثال، یک کنترل ASP.NET Panel را در نظر بگیرید. اگر این کنترل را بر روی صفحه ای قرار دهید، متنی را اضافه کنید و در نهایت صفحه را در دو مرورگر مختلف (مثلا Internet Explorer و یک مرورگر قدیمی تر یا محدودتر مثل Links) مشاهده کنید، در هنگام رویت منبع(source) صفحه، با نتایج متفاوتی برخورد خواهید کرد. به کد زیر نگاه کنید:
<form id="form1" runat="server">
<asp:panel ID="Panel1" runat="server" Height="50px" width="125px">this text is contained within an ASP.NET Panel control
</asp:Panel>
</form>
حال، اگر در internet Explorer6 و Firefox 1.0.2 مشاهده کنید، کد زیر تولید شده است:
<form method="post" action="styledPanels.aspx" id="form1">
<div>
<input type="hiden" name="_VIEWSTATE" id="_VIEWSTATE" value="/wEPDwULLTEeODU4OtkxMzRkZHehxD/ShmjEeZzCKx7+bB752B3R"/>
</div>
<div id="Panel1" style="height:50px";width:"125px;">
This text is contained within an ASP.NET Panel control
</div>
</form>
حال اگر همین صفحه را در یک مرورگر قدیمیتر مثل Mozilla 5.0 مشاهده کنید، دارید:
<form name="form1" method="post" action="StyledPanels.aspx" id="form1">
<input type="hidden" name="_VIEWSTATE" id="_ViEWSTATE" value="/wEPDwULLTEwODU4OTkxMzRkZHBovyeleyCJNtOpi+uco+1/zE5a"/>
<div id="Panel1">
This text is contained within an ASP.NET Panel control
</div>
</form>
دقت کنید، چگونه کنترل Panel در هر دو مورد به یک کنترل <div> تبدیل شده است. اما در مورد دوم، طول )height) و عرض (width) اطلاعات از دست رفته است. در این مورد این تغییر بسیار کوچک است، ولی در ASP.NET 1.1 ، که برای اجرای جداول HTML مربوط به کنترل های ASP.NET panel ، بر روی مرورگرهای قدیمی تر استفاده می شود، پیشرفت زیادی صورت گرفته است. برای مثال:
<table id "panel1" cellpadding="0" cellspacing="0" height="50" width="125">
<tr><td>
This text is contaned within an ASP.NET Panel control
</tr></td>
</table>
هر چند هم اکنون ASP.NET 2.0 بشیاری از این موضوعات را در برنامه نویسی روزمره ما حذف کرده است، مشکل هنوز باقی است و آنچه که در سمت سرویس گیرنده می بینید، همان چیزی نیست که در سمت سویس دهنده دیده می شود، و نمی توانید تضمین کنید که عناصر بر روی هر نوع مرورگری به یک شکل اجرا خواهند شد. آنچه ASP.NET 2.0 تلاش می کند انجام دهد، مهیا کردن مکانیزمی است تا از طریق آن بتوان ظاهر هر عنصر را براساس نوع کنترل سمت سرویس دهنده اش مشخص کرد نه براساس نوع کنترل سمت سرویس گیرنده اش ، تا اجرای کنترل بر روی مرورگرهای مختلف یکسان باشد و تا آنجا که ممکن است سازگاری و یکنواختی حفظ گردد.
به نظر من طبق نوشته های این کتاب امکان پیشامد مشکل وجود داره ،اگر اشتباه می کنم دوستان راهنمایی کنند.
parniyan2
جمعه 30 مرداد 1388, 00:11 صبح
مشکلی که به وجود میاد توی نمایش کنترل ها و برخی از تنظیمات سبک صفحات است. من سایتمو با ASP.net طراحی کردم. توی اینترنت اکسپلورر مشکلی نداره ولی توی مرورگرهای دیگه طرز نمایشش فرق می کنه. می تونی به سایت من سر بزنی
www.parniyan.net (http://www.parniyan.net)
asefy2008
جمعه 30 مرداد 1388, 00:30 صبح
سلام، خوب منظور من هم همین هست.می خوام ببینم آیا این تغییر در طرز نمایش به طراحی ما بر می گرده یا اینکه در کل فرقی نمی کنه ؟
طبق اون چیزی که کتاب داره میگه، گویا فرقی نمی کنه.
آیا کسی سایتی که با ASP.NET نوشته شده رو در سیستم عامل های دیگه بازکرده؟(اگر این طور هست لطفا نظرش رو بگه)
Chabok
جمعه 30 مرداد 1388, 01:36 صبح
با سلام
مثال هایی که شما ذکر کردید همگی بر قدرت و انعطاف کنترل های ASP.net دلالت دارند .
زیرا با این نحوه خروجی ها سعی دارند در همه حال ظاهر کنترل ها در شرایط مختلف به یک نحو نمایش داده شوند .
در این حین ممکن است در برخی حالات نیز مشکلاتی پیش بیاید .
مثلا همین مثال شما در مورد Mozilla 5.0 که اطلاعات ارتفاع و عرض را تولید نکرده است .
ولی در اکثر حالا سعی بر آن است که در حالت فعلی کنترل ها به بهترین نحو نمایش داده شوند .
برای مثال چون در مرورگرهای قدیمی حالات نمایش توسط استایل ها بخوبی پشتیبانی نمی شده یا نمی شود کنترل Panel بجای اینکه کنترل Div باشد و با استایل ها عرض و ارتفاع آن مشخص شود توسط Table نمایش داده می شود و پارامترهای Width , Height خود Table مقدار دهی می شوند .
این اتفاقاً یک مزیت محسوب می شود که کاربر را از این مسائل خارج می کند .
ولی خب شاید باگ هایی هم نیز در این زمینه موجود باشد .
در ضمن مهمترین مطلب این است که این جور مشکلات فقط در ASP.net نیست .
بلکه ASP.net با این حرکات سعی در یکسان سازی نحوه نمایش کنترل ها در همه حالات دارد .
برای مثال اگر شما php کار می کنید و تصمیم دارید چنین پنلی نمایش دهید چیکار می کنید ؟
اگر توسط استایل ها طول و عرض بدین شاید در مرورگر های قدیمی خوب ظاهر نشه .
اگر هم برای مثال بصورت قدیم مشخصه ها رو ذکر کنید با استانداردهای جدید سازگار نیست .
اینجا ارزش کاری که ASP.net انجام میده معلوم میشه .
ولی به هر حال من توصیه میکنم اگر فکر می کنید با چنین منطقی که در ASP.net هست کنار نمی آیید خودتون همه چیز رو در دست بگیرید و خودتون تگ div بسازید و مطابق استانداردهای روز استایل های آن را تعریف کنید .
ولی همین طور که خود شما در مثالتون اشاره کردید در مرورگر های قدیمی یک سری اشکالاتی پیش میاد .
و در مرورگر های جدید ظاهراً مشکلی از این نظر وجود نداره .
و به نظر من بهتره مرورگر های قدیمی رو به تدریج فراموش کنید .
حتی الان بعضی ها IE6 رو هم قبول ندارن و سایتشون رو برای IE7 به بالا و Firefox نسخه های جدید آماده می کنند .
حال دیگه تصمیم با خود شماست که متناسب با نیاز خودتون ببینید باید از کنترل های ASP.net استفاده کنید یا شخصاً کد آن ها را بنویسید .
در ضمن یک نکته دیگه رو عرض کنم و اون این است که :
شخصاً اطلاع نداشتم کنترل های ASP.net در قبال مواجهه با مرورگرهای مختلف کدهای مختلفی تولید می کنند و اگر عرائض بنده با پست قبلی دچار تعارض هایی هست به همین دلیل عدم اطلاع من بوده است که پیشاپیش عذر خواهی میکنم .
موفق و پیروز باشید .
احمد سامعی
جمعه 30 مرداد 1388, 11:21 صبح
مسائلی از قبیل نحوه نمایش در مرورگر ها و همچنین سیستم عامل های مختلف هیچ ربطی به زبان برنامه نویسی سمت سرور یک وب سایت ندارد .
زیرا در وب ، یک سری پردازش روی سرور انجام می شود که می توان گفت همان زبان برنامه نویسی مورد نظر ما است .
سپس برای کاربر که به عنوان کلاینت شناخته می شود تنها کدهای مربوط به نمایش اطلاعات که به زبان HTML است فرستاده می شود .
سلام همانطور كه دوست عزيز اشاره كردن ربطي به زبان برنامه نويسي نداره چون مثلاً در PHP شما كنترلي نداريد و بايد از كنترل هاي HTML استفاده كنيد پس تنها تفاوت باز هم به نحوه اجراي شما باز مي گرده و نحوه تنظيم خواص كنترل ها، جدولها و DIV هاي شما.
مشکلی که به وجود میاد توی نمایش کنترل ها و برخی از تنظیمات سبک صفحات است. من سایتمو با ASP.net طراحی کردم. توی اینترنت اکسپلورر مشکلی نداره ولی توی مرورگرهای دیگه طرز نمایشش فرق می کنه. می تونی به سایت من سر بزنی
www.parniyan.net (http://www.parniyan.net)
مشكل عمده اي كه در طراحي شما ديده مي شه استفاده تمام كدها در يك فايل يا همون سند هست منظور اين كه شما قسمت هاي مربوط به Java و CSS جدا نكرديد و در مرحله بعد شما بايد نحوه رفتار نسخه هاي مختلف مرورگرها رو بشناسيد تا در طراحي در نظر بگيريد.(از تگ <center> استفاده كنيد)
منظور از رفتار طرز تفسير و شناخت تگها و خواص CSS مي باشد.
البته اين بايد مد نظر داشت كه به مرور زمان مرورگرهاي مختلف از پراكندگي به سمت يكساني در شناخت قوانين CSS پيش مي روند و در آينده مشكلات كمتر خواهد بود و احتياج به بكارگيري شرط در CSS براي مرورگرهاي مختلف نيست اما بايد توجه داشت به دليل هزينه نسبتاً زياد نرم افزار در دنيا مردم دير به دير نسخه هاي جديد مي گيرند(برعكس ايران كه حق كپي رايت نيست و با پانصد تومان مي شه هر چي خريد...:قهقهه::گریه::عصبانی++: البته ابن براي ما مصيبت)
شما اگر به آمارهاي جهاني و حتي سايت هاي خودتون نگاه كنيد مثلاً براي من حدود 30% از بازديدكنندگان از IE6 و 30% از IE7 و 25% FF و 6% Opera و 9% بقيه از مرورگرها استفاده مي كنند و اين نشون مي ده به راحتي نمي شه از IE6 يا FF در طراحي گذشت
h.jaza
شنبه 31 مرداد 1388, 11:26 صبح
نکات مذکور عموما درسته و در تکمیل حرف های دوستان باید اشاره بکنم که اساسا یک طراح خوب، به کسی میگن که سایتی رو که طراحی می کنه در همه ی مرورگر های پر کاربرد مثل IE، Fx، Safari و غیره، به درستی و با کمترین اختلاف نشون داده بشه.
همچین سایت هایی (http://www.parniyan.net/)، نشان از طراحی آبگوشتی، بی دقت، آماتورانه و بسیار ضعیف شخص برنامه نویس داره. استفاده از دستوراتی که در نسخه های جدید HTML و CSS دیگه منقرض و منسوخ شده، صرفا جهت راحتی طراحی و عدم کشیدن زحمت، نشان از چیزی جز ضعف برنامه نویس و عدم درک استاندارها، نداره.
ASP.NET موجودیت فوق العاده ایه که خواسته با در دسترس قرار دادن امکانات یکتا و متمایزی در دست ما برنامه نویس، مشکلات و سختی های طراحی رو بر داره نه اینکه ما بیاییم و با استفاده از امکاناتی که اون در اختیار ما قرار میده، بریم مستقیم تو فضای Design و شروع به Drag & Drop بکنیم و همش Wizard ای کار بکنیم و یه روز یه سایت طراحی بکنیم. اگر تفاوتی هست که هست به خاطر تفاوت طرز فکر هر مرورگره اما ASP.NET این امکان رو به ما میده تا بتونیم با استفاده از ابزار های وسیع اون، این تفاوت ها و اختلافات رو به مینیمم کاهش بدیم.
در واقع شما می بایست خودتون با بهره گیری از امکانات فوق العاده ی ASP.NET مسیر یکسان سازی رو بسازین نه اینکه صرفا از اون امکانات برای راحتی کار و عدم توجه به استاندار ها استفاده بکنین.
mehrdad201
یک شنبه 12 مهر 1388, 00:23 صبح
همونطور که دوستان و اساتید گفتن نمایش کدهای HTML بین مرورگرهای مختلف متفاوت هست.
حتی در کدهای CSS هم تفاوت اشکار وجود دارد. به عنوان نمونه در فایرفاکس کدهای round corner داریم اما در IE نه.یا در IE ما فیلتر های مختلف داریم اما در فایر فاکس نه
از طرفی نمیشه هم از اینها به راحتی گذشت.
اما راه چاره چیه ؟ به نظر من استفاده از اسکین های مجزا برای هر بروزر هست. (البته کار اسونی نیست و وقت گیره)
به عنوان نمونه اسکین شماره یک برای بروزر IE و اسکین شماره دو برای بروزر FireFox کاربرد دارند. برای هر بروزر دیگه هم میتونید اسکین جدید بسازید و اینطوری همه بروزرها ساپورت میشن.
asefy2008
پنج شنبه 23 مهر 1388, 09:11 صبح
دوست عزیز به نظر خودتون این کار مناسب هست گذشته از این که و وقت گیره؟راه حل شما چه مشکلات جانبی رو به وجود میاره؟
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.