﻿<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#">
  <channel>
    <title>طراحی وب سایت سپید</title>
    <description />
    <link>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 2.0.0.36</generator>
    <language>fa-IR</language>
    <blogChannel:blogRoll>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.dotnetblogengine.net/syndication.axd</blogChannel:blink>
    <dc:creator>پیمان روئین تن</dc:creator>
    <dc:title>طراحی وب سایت سپید</dc:title>
    <geo:lat>0.000000</geo:lat>
    <geo:long>0.000000</geo:long>
    <item>
      <title>افزایش سرعت تولید نرم افزارهای تحت وب ASP.NET</title>
      <description>&lt;p&gt;بسیاری از اوقات نرم افزارهای تحت وب asp.net مجموعه ای از پروژه های web application هستند که تنها یکی از آنها web application نهایی است که همه ی کدهای نهایی پروژه ها را در خود دارد. گاهی تغییرات کوچکی در کد باعث ریست کل application و کامپایل مجدد کد و در نتیجه مدت زمان بسیار طولانی انتظار برای تغییرات کوچک اعمال شده می شود.&lt;/p&gt;
&lt;p&gt;اما با تنظیمات بسیار ساده نرم افزاری می توان سرعت تولید نرم افزار را افزایش داد و زمان انتظار را بسیار کم کرد.&lt;/p&gt;
&lt;p&gt;در کل در سه زمینه امکان بهبود سرعت را داریم:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;زمان کامپایل&lt;/li&gt;
&lt;li&gt;اولین زمان اجرای نرم افزار تحت وب&lt;/li&gt;
&lt;li&gt;کارایی نرم افزار / سرعت دسترسی به پایگاه داده&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;چیزی که در این مقاله برای ما اهمیت دارد موارد 1 و 2 هستند تا بتوانیم سرعت تولید نرم افزار را بالا ببریم.&lt;/p&gt;
&lt;p&gt;برای مورد سوم می توانیم از نرم افزارهای پر قدرتی نظیر &lt;a title="نرم افزار dotTrace" href="http://www.jetbrains.com/profiler/" target="_blank"&gt;dotTrace&lt;/a&gt; استفاده کنیم که به خوبی ما را در پیدا کردن گلوگاه های نرم افزار و رفع آنها کمک می کنند.&lt;/p&gt;
&lt;h2&gt;قرار دادن فایل های موقت IIS در یک Ramdisk&lt;/h2&gt;
&lt;p&gt;بسته به حجم نرم افزار تحت وب و نیز میزان حجم Ramای که دستگاه شما دارد، ممکن است استفاده از &lt;a title="نرم افزار dataram ramdisk" href="http://memory.dataram.com/products-and-services/software/ramdisk" target="_blank"&gt;RAM disk&lt;/a&gt; برای نگهداری فایل های موقت IIS باعث افزایش باور نکردنی سرعت اجرای نرم افزار تحت وب گردد.&lt;/p&gt;
&lt;p&gt;همانطور که از نام Ramdisk نیز مشخص است این نرم افزارها بخشی از حافظه Ram را در اختیار می گیرند و با آن مانند یک disk معمولی رفتار می کنند و بدین ترتیب با معرفی آدرس یک ramdisk به IIS برای نگهداری داده های موقت، تمامی این داده ها در RAM نگهداری خواهند شد و سرعت نوشتن و خواندن آنها به خوبی بهبود پیدا خواهد کرد.&lt;/p&gt;
&lt;p&gt;با تغییر تنظیمات زیر در فایل web.config می توانیم آدرسی که می خواهیم فایل های موقت در آن قرار گیرند را مشخص کنیم. به فرض q: آدرس Ramdisk ما است.&lt;/p&gt;
&lt;p&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;compilation&lt;/span&gt; ... &lt;span class="attr"&gt;tempDirectory&lt;/span&gt;&lt;span class="kwrd"&gt;="q:\temp\iistemp\"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; ... &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;compilation&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="kwrd"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;در صورتی که بخواهیم همه ی پروژه های تحت وب در سیستم از این Ramdisk استفاده کنند، می توانیم فایل web.config کل سیستم را تغییر دهیم. برحسب اینکه از نگارش 4 یا قبل از آن استفاده می کنید، و نیز برحسب اینکه از سیستم 32 بیتی یا 64 بیتی استفاده می کنید باید یکی از این فایل های web.config را تغییر دهید:&lt;/p&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Web.config&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\Web.config&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG\Web.config&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\Web.config&lt;/pre&gt;
&lt;h2&gt;تغییر یکی دو تنظیم مربوط به compilation در web.config&lt;/h2&gt;
&lt;p&gt;زمانی که یک سایت ASP.NET برای اولین بار فراخوانی می شود، تمامی صفحات و user controlها برای اولین بار کامپایل می شوند. زمانی که این کامپایل انجام شد، از آن به بعد نرم افزار همیشه سریعتر اجرا می شود. این موضوع وقتی سایت در محیط نهایی قرار گرفت فوق العاده است. اما وقتی هنوز در حال تولید و توسعه نرم افزار هستیم باعث اتلاف وقت زیادی می شود. چون وقتی در حال برنامه نویسی هستیم معمولا فقط یکی دو صفحه، یا چند خط کد تغییر می کنند. پس معمولا فرایند به صورت تغییر چند خط کد، کامپایل، فراخوانی سایت، تست و مجددا تغییر کد برای چندین بار در روز ادامه پیدا می کند. در چنین شرایطی وقتی کامپایل و اجرا دو دقیقه طول بکشد علاوه بر اینکه باعث اتلاف وقت می شود، باعث عدم تمرکز برنامه نویس می شود و معمولا نمی تواند به خوبی به کار خود برسد.&lt;/p&gt;
&lt;p&gt;تنظیمات زیر وقتی در حال توسعه نرم افزار هستید باعث می شود اولین اجرای نرم افزار بسیار بسیار سریعتر اتفاق بیفتد و زمان اجرای اولیه را بسیار کاهش می دهد.&lt;/p&gt;
&lt;p&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;compilation&lt;/span&gt; ... &lt;span class="attr"&gt;batch&lt;/span&gt;&lt;span class="kwrd"&gt;="false"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; ...&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;compilation&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;همچنین در صورتی که پروژه های شما در .NET 4 نوشته می شوند، می توانید از تنظیمات زیر نیز برای کاهش سرعت کامپایل و استفاده از بهینه سازی هایی برای جلوگیری از کامپایل مجدد استفاده کنید.&lt;/p&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;compilation&lt;/span&gt; ... &lt;span class="attr"&gt;optimizeCompilations&lt;/span&gt;&lt;span class="kwrd"&gt;="true"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; ... &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;compilation&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;البته لازم به ذکر است که ممکن است در شرایط خاصی کد دوم به درستی تشخیص ندهد و بعضی کدهایی که نیاز به کامپایل مجدد دارند را کامپایل نکند که در این شرایط و نیز یک بار قبل از نصب نرم افزار نهایی می توانید این تنظیمات را حذف کرده و یک بار کامپایل کامل انجام دهید.&lt;/p&gt;
&lt;p&gt;مطمئنا توسعه نرم افزارهای تحت وب پس از این تغییرات بسیار دلپذیرتر می شود.&lt;/p&gt;
&lt;h2&gt;کامپایل کردن تنها پروژه هایی که تغییر کرده اند&lt;/h2&gt;
&lt;p&gt;&lt;img src="http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/image.axd?picture=2012%2f2%2fconfiguration-manager.gif" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;معمولا پس از تعیین dependency tree همه ی پروژه ها بدون توجه به اینکه آیا تغییری در آنها ایجاد شده است یا خیر build می شوند. در چنین شرایطی می توان با مراجعه به منوی build وانتخاب configuration manager زیر build، فقط مواردی که می خواهیم build شوند را علامت بزنیم و علامت باقی موارد را برداریم. همچنین می توانیم برحسب شرایط مختلف configurationهای مختلفی را ایجاد و تعیین کنیم.&lt;/p&gt;</description>
      <link>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post/1390/11/22/افزایش-سرعت-تولید-نرم-افزارهای-تحت-وب-ASPNET.aspx</link>
      <comments>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post/1390/11/22/افزایش-سرعت-تولید-نرم-افزارهای-تحت-وب-ASPNET.aspx#comment</comments>
      <guid>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post.aspx?id=780c3abf-5846-433e-8324-27db763ff5e0</guid>
      <pubDate>Sat, 11 Feb 2012 15:29:00 +1700</pubDate>
      <category>.Net</category>
      <category>ASP.NET</category>
      <category>C#</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/pingback.axd</pingback:server>
      <pingback:target>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post.aspx?id=780c3abf-5846-433e-8324-27db763ff5e0</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/trackback.axd?id=780c3abf-5846-433e-8324-27db763ff5e0</trackback:ping>
      <wfw:comment>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post/1390/11/22/افزایش-سرعت-تولید-نرم-افزارهای-تحت-وب-ASPNET.aspx#comment</wfw:comment>
      <wfw:commentRss>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/syndication.axd?post=780c3abf-5846-433e-8324-27db763ff5e0</wfw:commentRss>
    </item>
    <item>
      <title>دامنه های فارسی</title>
      <description>&lt;p&gt;نام های دامنه ای که در آنها از حروفی به غیر از حروف ASCII (حروف معمول انگلیسی) استفاده شده باشد نام های دامنه بین المللی یا به اصطلاح IDN هستند.&lt;br /&gt;&lt;br /&gt;از آنجا که برای پیاده سازی حمایت از نام های دامنه بین المللی از جمله نام های دامنه فارسی نیاز به تغییر بسیاری از ساختارها وجود داشت، تصمیم بر این گرفته شد که استانداری برای تبدیل نام های دامنه فارسی به یک معادل ASCII وجود &lt;br /&gt;&lt;br /&gt;داشته باشد. بدین ترتیب وقتی یک کاربر نام دامنه ی فارسی را در مرورگر خود وارد می کند، مرورگر آن را بر اساس الگوریتمی به یک معادل ASCII تبدیل می کند و از آن پس به آن نام دامنه ASCII درخواست ها را ارسال می &lt;br /&gt;&lt;br /&gt;کند. به عنوان مثال وقتی در یک مرورگر مدرن که از این ویژگی پشتیبانی می کند این دامنه را وارد کنید:&lt;br /&gt;&lt;br /&gt;طراحیسایت.ایران.ir&lt;br /&gt;&lt;br /&gt;مرورگر شما در پس زمینه این نام دامنه را به معادل ASCII آن یعنی xn--mgbajksoy90jca.xn--mgba3a4f16a.ir تبدیل می کند و از آن پس درخواست ها را به این نام دامنه ارسال می کند. &lt;br /&gt;&lt;br /&gt;به این معادل ASCII نام دامنه، در اصطلاح punycode گفته می شود.&lt;br /&gt;&lt;br /&gt;البته همه ی مرورگر ها از این ویژگی پشتیبانی نمی کنند، مثلا مرورگر اینترنت اکسپلورر 6 (IE6) از این ویژگی پشتیبانی نمی کند و تنها مرورگرهای مدرن از آن پشتیبانی می کنند.&lt;br /&gt;&lt;br /&gt;امکان ثبت دامنه های بین المللی برای پسوندهای دامنه مختلفی وجود دارد. از جمله دامنه های .com و .net و دیگر دامنه ها. برای ثبت یک دامنه فارسی تحت نام .net و یا .com کافی است معادل punycode &lt;br /&gt;&lt;br /&gt;آن را بیابید و سپس با ثبت آن دامنه فارسی را در اختیار داشته باشید. برای بدست آوردن معادل punycode دامنه های فارسی می توانید از &lt;a title="سیستم تبدیل دامنه های فارسی به punycode" href="http://mct.verisign-grs.com/" target="_blank"&gt;سایت تبدیل دامنه های بین المللی به punycode&lt;/a&gt; استفاده نمایید.&lt;/p&gt;
&lt;p&gt;اما برای داشتن یک دامنه کاملا فارسی باید به سایت &lt;a href="http://www.nic.ir"&gt;ثبت دامنه های ایرانی&lt;/a&gt; مراجعه نمایید.&lt;/p&gt;
&lt;p&gt;البته تا به حال ثبت دامنه های کاملا فارسی با پسوند .ایران با یک پسوند اضافه .ir ثبت می شد. اما با &lt;a href="http://www.icann.org/en/announcements/announcement-15oct10-en.htm"&gt;موافقت مرکز بین المللی ثبت دامنه ها&amp;nbsp; ICANN و به رسمیت شناختن دامنه .ایران&lt;/a&gt; به زودی امکان ثبت دامنه های کاملا فارسی محقق می شود.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;(امکان ثبت دامنه های فارسی موقتا تا پیاده سازی کامل غیر فعال است)&lt;/p&gt;
&lt;p&gt;برخی مشکلات در استفاده از دامنه های نقطه ایران نیز وجود دارند. دامنه های اینترنتی فقط در وب استفاده نمی شوند و با پیاده سازی این الگوریتم توسط مرورگرهای وب همه ی مشکلات حل نمی شود. مثلا برنامه های پینگ، ایمیل، اف تی پی، و حتی نرم افزارهای مدیریت دانلودی که با وب سروکار دارند فعلا از دامنه های بین المللی پشتیبانی نمی کنند.&lt;/p&gt;
&lt;p&gt;البته این مشکل با استفاده از یک معادل انگلیسی برای سایت تا حدودی قابل حل است. مثلا می توان برای یک دامنه فارسی طراحیسایت.ایران.ir یک معادل انگلیسی sepidweb.ir هم معین کرد که هر دو به یک سایت اشاره می کنند.&lt;/p&gt;
&lt;p&gt;مشکل دیگر چپ به راست بودن پیش فرض نوار آدرس است و همچنین این موضوع که بسیاری از پوشه ها و صفحات سایت انگلیسی هستند و ترکیب عبارات فارسی و انگلیسی شکل خوانایی نخواهد داشت.&lt;/p&gt;
&lt;p&gt;به هر حال هنوز پشتیبانی کامل از دامنه های کاملا فارسی هنوز ایجاد نشده و باید دید چطور از این دامنه ها استقبال می شود و چقدر در عمل استفاده از آنها موفق خواهد بود.&lt;/p&gt;</description>
      <link>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post/1389/11/11/دامنه-های-فارسی.aspx</link>
      <comments>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post/1389/11/11/دامنه-های-فارسی.aspx#comment</comments>
      <guid>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post.aspx?id=85c91d93-91c7-45ad-8bfb-a940a77cda06</guid>
      <pubDate>Mon, 31 Jan 2011 17:00:00 +1700</pubDate>
      <category>url</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/pingback.axd</pingback:server>
      <pingback:target>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post.aspx?id=85c91d93-91c7-45ad-8bfb-a940a77cda06</pingback:target>
      <slash:comments>3</slash:comments>
      <trackback:ping>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/trackback.axd?id=85c91d93-91c7-45ad-8bfb-a940a77cda06</trackback:ping>
      <wfw:comment>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post/1389/11/11/دامنه-های-فارسی.aspx#comment</wfw:comment>
      <wfw:commentRss>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/syndication.axd?post=85c91d93-91c7-45ad-8bfb-a940a77cda06</wfw:commentRss>
    </item>
    <item>
      <title>رفع خطای سریال نامعتبر در Photoshop CS5</title>
      <description>&lt;p&gt;Photoshop CS5 دارای قابلیتی است که در صورتی که هنگام کار با آن به اینترنت متصل هستید، شماره سریال وارد شده را بررسی می کند و در صورتی که غیر معتبر باشد در هنگام ورود مجدد از شما شماره سریال جدید می خواهد.&lt;br /&gt;اما برای خلاصی از آن راه حل ساده ای وجود دارد! &lt;br /&gt; دسترسی photoshop به اینترنت را ممنوع کنید!&lt;/p&gt;
&lt;p&gt;اگر هنوز photoshop را نصب نکرده اید می توانید از شماره سریال های زیر استفاده کنید:&lt;br /&gt;2313-4367-9577-2338&lt;br /&gt;2345-4354-9565-2348&lt;br /&gt;2642-4624-9262-2648&lt;br /&gt;2313-4367-9577-2338&lt;br /&gt;2642-4624-9262-2648&lt;br /&gt;2534-4544-9235-2373&lt;/p&gt;
&lt;p&gt;در ادامه برای ممنوعیت دسترسی photoshop به اینترنت در windows 7 مسیر زیر را دنبال کنید:&lt;br /&gt;control panel -&amp;gt; windows firewall -&amp;gt; advanced settings &lt;br /&gt;سپس مطابق تصویر زیر از سمت چپ Outbound Rules&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.sepidweb.ir/blog_images/photoshopCS5install/advanced-windows-firewall.png.ashx?version=0.11" target="_blank"&gt;&lt;img src="http://www.sepidweb.ir/Blog_Images/photoshopCS5install/advanced-windows-firewall-thumb.gif.ashx?version=0.11" alt="advanced windows firewall" width="501" height="359" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;را انتخاب نمایید و از سپس از سمت راست New Rule را انتخاب کنید &lt;br /&gt;&lt;br /&gt;در پنجره بعد مطابق تصویر زیر program را انتخاب نمایید و next را بزنید&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.sepidweb.ir/blog_images/photoshopCS5install/step-1---new-rule.png.ashx?version=0.11" target="_blank"&gt;&lt;img src="http://www.sepidweb.ir/Blog_Images/photoshopCS5install/step-1---new-rule-thumb.gif.ashx?version=0.11" alt="windows firewall new rule" width="478" height="375" /&gt;&lt;/a&gt;&lt;br /&gt;در پنجره بعد This program path را انتخاب نموده و مسیری که در آن photoshop نصب شده است را وارد کنید. به طور پیش فرض photoshop در مسیری که در تصویر زیر نشان داده شده است نصب می شود&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.sepidweb.ir/blog_images/photoshopCS5install/step-2-photoshop-new-rule.png.ashx?version=0.11" target="_blank"&gt;&lt;img src="http://www.sepidweb.ir/Blog_Images/photoshopCS5install/step-2-photoshop-new-rule-thumb.gif.ashx?version=0.11" alt="new rule for photoshop cs5" width="488" height="247" /&gt;&lt;/a&gt;&lt;br /&gt;در پنجره بعد Block the connection را انتخاب نمایید&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.sepidweb.ir/blog_images/photoshopCS5install/block-photoshop---step-3.png.ashx?version=0.11" target="_blank"&gt;&lt;img src="http://www.sepidweb.ir/Blog_Images/photoshopCS5install/block-photoshop---step-3-thumb.gif.ashx?version=0.11" alt="block the connection" width="497" height="364" /&gt;&lt;/a&gt;&lt;br /&gt;در مرحله بعد همه ی موارد را علامت&amp;nbsp; بزنید&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.sepidweb.ir/blog_images/photoshopCS5install/step-4---all-domains.png.ashx?version=0.11" target="_blank"&gt;&lt;img src="http://www.sepidweb.ir/Blog_Images/photoshopCS5install/step-4---all-domains-thumb.gif.ashx?version=0.11" alt="block everything" width="499" height="294" /&gt;&lt;/a&gt;&lt;br /&gt;و در پنجره بعد نام و توضیحات مناسبی را وارد نمایید. می توانید از توضیحاتی که من برای خود انتخاب کرده ام و در تصویر زیر وجود دارد استفاده کنید.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.sepidweb.ir/blog_images/photoshopCS5install/step-5.png.ashx?version=0.11" target="_blank"&gt;&lt;img src="http://www.sepidweb.ir/Blog_Images/photoshopCS5install/step-5-thumb.gif.ashx?version=0.11" alt="firewall block description" width="499" height="249" /&gt;&lt;/a&gt;&lt;br /&gt;finish را بزنید و تمام!&lt;br /&gt;دیگر photoshop پیغام ورود شماره سریال جدید را نمی دهد.&lt;/p&gt;</description>
      <link>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post/1389/03/29/رفع-خطای-سریال-نامعتبر-در-Photoshop-CS5.aspx</link>
      <comments>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post/1389/03/29/رفع-خطای-سریال-نامعتبر-در-Photoshop-CS5.aspx#comment</comments>
      <guid>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post.aspx?id=382da353-2909-49f7-9732-ed604ed15adc</guid>
      <pubDate>Sat, 19 Jun 2010 05:09:00 +1700</pubDate>
      <category>photoshop</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/pingback.axd</pingback:server>
      <pingback:target>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post.aspx?id=382da353-2909-49f7-9732-ed604ed15adc</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/trackback.axd?id=382da353-2909-49f7-9732-ed604ed15adc</trackback:ping>
      <wfw:comment>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post/1389/03/29/رفع-خطای-سریال-نامعتبر-در-Photoshop-CS5.aspx#comment</wfw:comment>
      <wfw:commentRss>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/syndication.axd?post=382da353-2909-49f7-9732-ed604ed15adc</wfw:commentRss>
    </item>
    <item>
      <title>گزارش سایت های اسپم به گوگل</title>
      <description>&lt;p&gt;احتمالا شما هم گهگاه به سايت هايي نظير http://agahibank.com و http://www.biyaaziz.net و نظایر آنها که با جمع کردن جستجو هاي کاربران سعي در کسب page rank بالاتري دارند برخورد کرده ايد. &lt;br /&gt;اشکال کار اين است که کاربر معمولا به جواب درستي نمي رسد و فقط در بين چند سايت که ليست نتايج جستجو را قرار داده اند مي چرخد. تعداد چنين سايت هايي براي زبان فارسي اخيرا زياد شده است و گاهي اوقات براي بعضي نتايج جستجو چند نتيجه اول فقط به اين سايت ها اختصاص دارد.&lt;br /&gt;در صورتي که شما هم علاقمند هستيد نتايج فارسي درستي دريافت کنيد مي توانيد با  &lt;a href="https://www.google.com/webmasters/tools/spamreport"&gt;گزارش این سایت ها به گوگل&lt;/a&gt; و اعلام آنها به عنوان سايت هاي doorway آنها را از لیست نتایج گوگل حذف نمایید.&lt;br /&gt; &lt;a href="http://googlewebmastercentral.blogspot.com/2010/05/call-for-webspam-reports-in-thai.html"&gt;درخواست رسمی گوگل برای اعلام سایت های فارسی&lt;/a&gt;&lt;/p&gt;</description>
      <link>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post/1389/02/27/گزارش-سایت-های-اسپم-به-گوگل.aspx</link>
      <comments>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post/1389/02/27/گزارش-سایت-های-اسپم-به-گوگل.aspx#comment</comments>
      <guid>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post.aspx?id=1258d10f-e3ab-4f00-8036-65eb9d06c95b</guid>
      <pubDate>Mon, 17 May 2010 01:16:00 +1700</pubDate>
      <category>SEO</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/pingback.axd</pingback:server>
      <pingback:target>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post.aspx?id=1258d10f-e3ab-4f00-8036-65eb9d06c95b</pingback:target>
      <slash:comments>4</slash:comments>
      <trackback:ping>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/trackback.axd?id=1258d10f-e3ab-4f00-8036-65eb9d06c95b</trackback:ping>
      <wfw:comment>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post/1389/02/27/گزارش-سایت-های-اسپم-به-گوگل.aspx#comment</wfw:comment>
      <wfw:commentRss>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/syndication.axd?post=1258d10f-e3ab-4f00-8036-65eb9d06c95b</wfw:commentRss>
    </item>
    <item>
      <title>آیا Internet Explorer با IE9 باز می گردد؟</title>
      <description>&lt;p&gt;&lt;img style="float:left; padding:0 15px 15px 0" src="http://www.sepidweb.ir/Blog_Images/IE9/IE9.jpg.ashx?version=0.11" alt="IE9" width="111" height="111" /&gt; بین همه ی طراحان وب یک چیز مشترک وجود دارد، نفرت از Internet Explorer!&lt;/p&gt;
&lt;p&gt;مایکروسافت مدت هاست که طراحان وب را از مرورگر خود مأیوس کرده است. در طی دورانی که با وب کار می کنم شاهد ظهور نگارش های بعد از IE6 بودم. امیدوار بودم که شاید مشکلات موجود در IE6 دیگر در IE7 وجود نداشته باشد. اما اصلا   اینطور نبود. نه تنها تعداد مشکلات رفع شده قابل توجه نبود، بلکه به مشکلات طراحان یکی دیگر هم اضافه شده بود! اینکه سایت های قدیمی و جدید را با IE7 هم سازگار کنیم. فراموش نکرده ام که وقتی دنبال نسخه ای از clearfix hack می گشتم که با   IE7 هم کار کند، چقدر دوست داشتم تا دیگر در هیچ کامپیوتری IE نصب نباشد. مدت ها همه ی طراحان وب آمار کاربران وب را دنبال می کردند تا بدانند چقدر از افرادی که از IE استفاده می کنند کم می شود و هر چه به کاربران Firefox اضافه می شد   مسلما ما هم خوشحال تر بودیم.&lt;/p&gt;
&lt;p&gt;IE8 اگرچه مرورگر بدی نیست، اما به نظر تنها تقلیدی ناقص از مرورگرهای دیگر است و همچنان ما از ترس آن که مبادا در نگارش بعدی Internet Explorer وضع بدتر شود، کاربران را به استفاده از Firefox ترغیب می   کنیم.&lt;/p&gt;
&lt;p&gt;اما گویا Microsoft قصد دارد به این وضع خاتمه دهد. من هم وقتی به &lt;a title="IE9 Test Drive" href="http://ie.microsoft.com/testdrive/"&gt;IE9   Test Drive&lt;/a&gt; مراجعه کردم از دیدن قابلیت های جدید IE9 تعجب کردم. برخلاف گذشته که رفتارهای Microsoft تنها در جهت مخالف استاندارد سازی بوده است و قصد ایجاد بازار جداگانه برای خود داشت، اما به نظر می رسد که حالا   قصد پشتیبانی صحیح و مناسب از استانداردها را دارد. و البته به همین هم اکتفا نکرده است و به سراغ ویژگی های دیگری رفته است که می تواند یک مرورگر وب را از دیگر رقبا ممتاز کند.&lt;/p&gt;
&lt;p&gt;استفاده از GPU برای بهینه سازی سرعت بارگزاری صفحات و تصاویر و نیز قرار دادن امکانات بسیار در خود IE که در Firefox مشابه آنها را از طریق Addonها داشتیم و به آنها وابسته شده ایم.&lt;/p&gt;
&lt;p&gt;توصیه می کنم مطالب &lt;a title="IEBlog" href="http://blogs.msdn.com/ie/"&gt;IEBlog&lt;/a&gt; را دنبال کنید. واقعا مطالب نوشته شده در آن جالب است. حداقل من که به شخصه بعد از   دیدن بعضی از این موارد دید منفی ام نسبت به IE از بین رفت و مشتاقانه منتظر دیدن IE9 نهایی هستم. آیا ممکن است IE جایگاه خود را دوباره پیدا کند و آیا ممکن است ما هم به عنوان حرفه ای های وب با وجود Firefox از Internet   Explorer استفاده کنیم؟ علاوه بر جالب بودن ویژگی های جدید IE9، این تصور که مناسب ترین مرورگر همانی باشد که از ابتدا بر روی سیستم کاربر نصب شده است، واقعا آرامش بخش است! البته به نظر می رسد حداقل باید چند سالی منتظر باشیم تا   windows xp منسوخ شود. چون IE9 در XP نصب نمی شود.&lt;/p&gt;
&lt;p&gt;برای تست سایت های خود می توانید &lt;a title="Install IE9 Preview" href="http://ie.microsoft.com/testdrive/info/ThankYou/Default.html"&gt;Internet explorer platform preview&lt;/a&gt; را   دریافت کنید و اگر اشکالی مشاهده کردید از طریق  &lt;a title="provide IE9 feedback" href="http://blogs.msdn.com/ie/archive/2010/03/16/IE9-  Platform-Preview-Feedback.aspx"&gt;Provide Feedback&lt;/a&gt; آنها را گزارش دهید.&lt;/p&gt;
&lt;p&gt;لطفا نظرات خود را در مورد این نوشته بیان کنید. متشکرم.&lt;/p&gt;</description>
      <link>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post/1389/02/10/ایا-Internet-Explorer-با-IE9-باز-می-گردد؟.aspx</link>
      <comments>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post/1389/02/10/ایا-Internet-Explorer-با-IE9-باز-می-گردد؟.aspx#comment</comments>
      <guid>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post.aspx?id=b5991fde-8fc7-45a0-8f92-2f8943fb3ba5</guid>
      <pubDate>Fri, 30 Apr 2010 19:22:00 +1700</pubDate>
      <category>طراحی وب</category>
      <category>مرورگرها</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/pingback.axd</pingback:server>
      <pingback:target>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post.aspx?id=b5991fde-8fc7-45a0-8f92-2f8943fb3ba5</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/trackback.axd?id=b5991fde-8fc7-45a0-8f92-2f8943fb3ba5</trackback:ping>
      <wfw:comment>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post/1389/02/10/ایا-Internet-Explorer-با-IE9-باز-می-گردد؟.aspx#comment</wfw:comment>
      <wfw:commentRss>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/syndication.axd?post=b5991fde-8fc7-45a0-8f92-2f8943fb3ba5</wfw:commentRss>
    </item>
    <item>
      <title>مزایا و معایب ASP.NET MVC</title>
      <description>&lt;p&gt;با وجود اینکه مدت زمان زیادی از پیاده سازی های MVC Design Pattern برای Web در زبان های مختلف نظیر جاوا می گذرد، اما مدت زمان چندانی نیست که Microsoft پیاده سازی خود را تحت نام ASP.NET MVC عرضه کرده است.&lt;/p&gt;
&lt;p&gt;بد نیست در مورد مزایا و معایب MVC بیشتر بدانیم.&lt;/p&gt;
&lt;h1&gt;ASP.NET Web Forms چیست؟&lt;/h1&gt;
&lt;p&gt;ASP.NET Web Forms در تلاش برای فراهم کردن بستری مشابه برنامه نویسی ویندوز (و البته راحتی به برنامه نویسی در VB) ایجاد شد که در آن برنامه نویس نیازی نیست تا خود را درگیر جزئیات وب نماید. در ASP.NET Web Forms برنامه نویس از eventها استفاده می کند، بدون اینکه در وب event ای وجود داشته باشد. در برنامه نویسی برای ASP.NET Web Forms برنامه نویس به session و viewstate دسترسی دارد، با وجودی که web در طبیعت خود session-state ندارد.&lt;br /&gt;کار کردن با ASP.NET Web Forms فوق العاده است. اما مشکلاتی نیز دارد که برای رفع بعضی از آنها می توان از مدل های دیگر برنامه نویسی نظیر MVC for Web استفاده کرد.&lt;/p&gt;
&lt;h1&gt;MVC چیست؟&lt;/h1&gt;
&lt;p&gt;&lt;img src="http://www.sepidweb.ir/Blog_Images/ASPNETMVC/MVC.gif.ashx?version=0.11" alt="MVC" width="300" height="185" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;قصد تشریح کامل MVC را ندارم. تنها مختصری در مورد آن. MVC مخفف Model-View-Controller است. model مسئول نگهداری وضعیت (state) با نگهداری داده ها و به هنگام سازی آنها در پایگاه داده است.&lt;br /&gt;controller مسئول انتخاب یک نمایش خاص، براساس وضعیت است، و view نمایش خاص داده ها است که توسط controller انتخاب می شود.&lt;br /&gt;&lt;br /&gt;برخلاف ASP.Net Web Forms که در آن View و Controller در یک صفحه قرار دارند (aspx معادل view است و aspx.cs معادل controller) در ASP.NET MVC این دو به دو جزء مجزا تقسیم می شوند، View و Controller که بر روی یک Model از داده ها کار می کنند.&lt;br /&gt;&lt;br /&gt;شاید بتوان گفت یک سایت را می توان با استفاده از ASP.NET Web Forms به گونه ای توسعه داد که مطابق با MVC Pattern طراحی شده باشد. اما استفاده از ASP.NET MVC برنامه نویسان را تا حد بسیار زیادی مجبور می کند تا MVC را پیاده سازی کنند.&lt;/p&gt;
&lt;h1&gt;مزایای ASP.NET MVC و معایب Web Forms&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;با توجه به ساختار MVC برنامه نویسان بیشتر مجبور خواهند شد تا کد خوانا تولید کنند. زیرا به طور طبیعی در ASP.NET MVC هر بخش باید کاری که بر عهده آن است انجام دهد و حداقل اطلاع از کاری که بخش های دیگر مسئول آن هستند داشته باشد. اما در Web Forms با ساختار Code-Behind در صفحات، Controller و View ترکیب شده اند.&lt;/li&gt;
&lt;li&gt;Unit Testing در صورت استفاده از ASP.NET MVC فوق العاده آسان تر است. &lt;a title="توسعه آزمایش محور" href="http://sirasad.wordpress.com/2010/03/01/%D8%AA%D9%88%D8%B3%D8%B9%D9%87-%D8%A2%D8%B2%D9%85%D8%A7%DB%8C%D8%B4-%D9%85%D8%AD%D9%88%D8%B1/" target="_blank"&gt;بیشتر بخوانید&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;در Web Forms صفحات در بین ارسال ها وضعیت خود را حفظ می کردند. کارها کمی آسانتر می شد، اما اینکه ارتباط client و server حقیقتا چگونه اتفاق می افتد مخفی بود. با حذف viewstate و postback توسعه وب برای متخصصان وب آسان تر خواهد بود و کنترل بیشتری بر ارتباط client و server وجود دارد. زیرا مطابق با طبیعت وب طراحی شده است.&lt;/li&gt;
&lt;li&gt;با حذف viewstate و postback خروجی HTML بسیار خواناتر خواهد بود&amp;nbsp; و کد HTML فارغ از کدهای اضافه مربوط به viewstate خواهد بود.&lt;/li&gt;
&lt;li&gt;تقریبا بر روی کد HTML تولید شده کنترل کامل خواهیم داشت که در ASP.NET Web Forms ممکن نیست.&lt;/li&gt;
&lt;li&gt;استفاده از javascript/ajax/jquery/asp.net ajax بسیار آسانتر خواهد بود. زیرا دیگر کدهای کنترل ها تغییر نخواهد کرد و دیگر چیزی شبیه به ctl501_panelContainer_GridView1 نخواهیم داشت.&lt;/li&gt;
&lt;li&gt;SEO و بهینه سازی آدرس ها برای سایت های جستجو آسانتر خواهد بود. در Web Forms نیازمند این بودیم که آدرس های اینترنتی rewrite شوند، اما در ASP.NET MVC به این کار نیازی نخواهد بود&lt;/li&gt;
&lt;li&gt;با کنترل کامل بر کد HTML تولید شده، امکان SEO بر اساس کد HTML نیز خواهیم داشت.&lt;/li&gt;
&lt;li&gt;با جدا شدن view از controller طراحی صفحات وب استاندارد و زیبا دیگر پیچیده نیست و طراح وب می تواند بدون توجه به کار برنامه نویس viewها را آنگونه که می خواهد ایجاد کند و برنامه نویس آنگاه viewها را به کار خواهد گرفت و دیگر کار آنها با هم تداخل نخواهد کرد.&lt;/li&gt;
&lt;li&gt;برای agile development فوق العاده است. زیرا در هر زمان باید یک قسمت کامل از نرم افزار ایجاد شود.&lt;/li&gt;
&lt;li&gt;ASP.NET MVC به علت حذف لایه بندی های اضافی در معماری، فوق العاده سریعتر اجرا می شود.&lt;/li&gt;
&lt;li&gt;آدرس های اینترنتی (urlها) RESTful هستند&lt;/li&gt;
&lt;li&gt;در ASP.NET MVC امکان استفاده از ویژگی های کنونی ASP.NET وجود دارد. ویژگی هایی نظیر forms/windows authentication, URL authorization, membership/roles, output and data caching, session/profile state management, health monitoring, configuration systme, the provider architecture.&lt;/li&gt;
&lt;li&gt;ویژگی های بسیاری در MVC Frameworkهای مشابه نظیر struts 2 وجود دارد که اگر توسط Microsoft پیاده سازی شود امکان کدنویسی برای سایت های پیچیده با حداقل کد امکان پذیر خواهد بود. ویژگی هایی نظیر انتقال خودکار داده ها، تبدیل خودکار انواع داده، تعیین صحت داده ها و موارد دیگر.&lt;/li&gt;
&lt;li&gt;ASP.NET Web Forms سعی می کند تا پیچیدگی های HTML را از برنامه نویس دور کند. اما اگر طراح قصد داشته باشد ظاهر کنترل ها را تغییر دهد، مخصوصا اینکه از روش های مرسوم Web 2.0 برای طراحی ظاهر صفحات استفاده کند، گاهی به پیچیدگی های بیشتری برخورد خواهد کرد.&lt;/li&gt;
&lt;li&gt;امکان تبدیل سایت های ساخته شده با استفاده از asp 3.0 به ASP.NET MVC راحت است.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;مزایای Web Forms و معایب ASP.NET MVC&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;RAD! (توسعه سریع نرم افزار). با استفاده از ASP.NET MVC همه ی لایه ها باید ساخته شوند تا بتوانیم اجرای نرم افزار را ببینیم. اما توسعه برنامه ها در ASP.NET Web Forms سریعتر است. در ASP.NET Web Forms می توانیم کنترل ها را بر روی فرم بکشیم و بعد فرم قابل استفاده است. ASP.NET Web Forms را می توانیم Visual Basic در وب نام نهیم.&lt;/li&gt;
&lt;li&gt;ASP.NET Web Forms در نرم افزارهای زیادی به کار گرفته شده است و اشکالات زیادی از آن رفع شده است، برنامه نویسان زیادی با آن آشنا هستند و توسعه نرم افزار در آن برای برنامه نویسانی که از برنامه نویسی ویندوز می آیند راحت تر است، اما برای استفاده از ASP.NET MVC برنامه نویسان باید آموزش ببینند. از آنجایی که ASP.NET MVC کمتر سعی می کند تا جزئیات http و html را از کاربر پنهان کند، استفاده از آن برای بعضی برنامه نویسان سخت تر است.&lt;/li&gt;
&lt;li&gt;در طی سالیان، کنترل های بسیاری برای آن ساخته شده است که در نرم افزارهای تحت وب مختلف می توان از آنها استفاده کرد، مانند کنترل های Telerik اما این کنترل ها اگر در آنها از postback یا viewstate استفاده شده باشد دیگر در ASP.NET MVC قابل استفاده نیستند.&lt;/li&gt;
&lt;li&gt;در ASP.NET MVC امکان استفاده از Eventها وجود ندارد.&lt;/li&gt;
&lt;li&gt;grid control و update panel هنوز برای ASP.NET MVC ایجاد نشده اند.&lt;/li&gt;
&lt;li&gt;برای استفاده از آن باید بسته جداگانه ای را دانلود کرد. (البته در نگارش های جدید به صورت پیش فرض همراه ASP.NET خواهد بود)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;br /&gt;نکات دیگری نیز قابل توجه است. استفاده از ASP.NET MVC با استفاده از Visual Studio Express نیز امکان پذیر است. &lt;br /&gt;سایت مشهور stack overflow با استفاده از ASP.NET MVC توسعه داده شده است.&lt;br /&gt;فراموش نباید کرد که نظر Microsoft این است که نه ASP.NET MVC بهتر از ASP.NET Web Forms است و نه جایگزین آن. بلکه هر دو اجزاء اساسی ASP.NET خواهند بود و تا مدت قابل توجهی هر دو پشتیبانی می شوند و توسعه داده خواهند شد.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <link>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post/1389/01/27/مزایا-و-معایب-ASPNET-MVC.aspx</link>
      <comments>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post/1389/01/27/مزایا-و-معایب-ASPNET-MVC.aspx#comment</comments>
      <guid>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post.aspx?id=881f4eda-dff1-4859-a49b-5843c4447b67</guid>
      <pubDate>Fri, 16 Apr 2010 17:29:00 +1700</pubDate>
      <category>.Net</category>
      <category>ASP.NET</category>
      <category>MVC</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/pingback.axd</pingback:server>
      <pingback:target>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post.aspx?id=881f4eda-dff1-4859-a49b-5843c4447b67</pingback:target>
      <slash:comments>5</slash:comments>
      <trackback:ping>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/trackback.axd?id=881f4eda-dff1-4859-a49b-5843c4447b67</trackback:ping>
      <wfw:comment>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post/1389/01/27/مزایا-و-معایب-ASPNET-MVC.aspx#comment</wfw:comment>
      <wfw:commentRss>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/syndication.axd?post=881f4eda-dff1-4859-a49b-5843c4447b67</wfw:commentRss>
    </item>
    <item>
      <title>تعیین تصویر دلخواه برای وضعیت  یاهو در ASP.NET</title>
      <description>&lt;p&gt;&lt;a title="SepidYahooStatus.dll" href="http://www.sepidweb.ir/blog_files/sepidyahoostatus.zip"&gt;SepidYahooStatus.dll&lt;/a&gt;&lt;br /&gt;یکی از امکاناتی که یاهو در اختیار کاربران خود قرار داده است، امکان تعیین وضعیت یک کاربر است که با قرار دادن کد مربوط به آن و تعیین شناسه مورد نظر، وضعیت فرد با تصاویر خاص به صورت آنلاین یا آفلاین نشان داده می شود.&lt;br /&gt;مثلا کد زیر وضعیت کاربر sepidweb را در یک صفحه وب نشان می دهد و کاربر با کلیک بر روی تصویر نشان داده شده می تواند از طریق یاهو مسنجر با آن کاربر ارتباط برقرار کند&lt;/p&gt;
&lt;p&gt;&lt;div class="code"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;a&lt;/span&gt; &lt;span class="attr"&gt;href&lt;/span&gt; = &lt;span class="kwrd"&gt;'ymsgr:sendim?sepidweb'&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;img&lt;/span&gt; &lt;span class="attr"&gt;src&lt;/span&gt;&lt;span class="kwrd"&gt;="http://opi.yahoo.com/online?u=sepidweb&amp;amp;m=g&amp;amp;t=14"&lt;/span&gt; &lt;span class="attr"&gt;border&lt;/span&gt;=&lt;span class="attr"&gt;0&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;a&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt; &lt;br /&gt;به طور پیش فرض یاهو 24 تصویر دارد که با تعیین پارامتر t در انتهای کد می توانیم معین کنیم کدام تصویر برای تعیین وضعیت نمایش داده شود. البته امکان دارد تعداد این تصاویر در آینده افزایش یابد.&lt;br /&gt;برای دیدن این تصاویر می توان آدرس&lt;br /&gt;&lt;a title="Sepidweb Status in yahoo" href="http://opi.yahoo.com/online?u=sepidweb&amp;amp;m=g&amp;amp;t=1"&gt;http://opi.yahoo.com/online?u=sepidweb&amp;amp;m=g&amp;amp;t=1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;را در مرورگر وارد کرد و با تغییر عدد انتهای آدرس که در آدرس بالا 1 است، باقی 23 تصویر ممکن را نیز دید.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;همانطور که در ستون سمت چپ این سایت نیز مشاهده می کنید، در سایت ما تصویر دلخواهی برای تعیین وضعیت یاهو نشان داده شده است. در این پست قصد دارم نحوه نمایش یک تصویر دلخواه برای وضعیت یاهو را شرح دهم.&lt;br /&gt;مراحل کار بسیار ساده است. ابتدا باید معین کنیم آیا فرد مورد نظر در یاهو آنلاین هست یا خیر. سپس براساس وضعیت فرد دو تصویر آنلاین و آفلاین دلخواه خود را نشان دهیم.&lt;br /&gt;تعیین آنلاین یا آفلاین بودن ساده است. کافی است آدرس یکی از تصاویر بالا را به طور نرم افزاری درخواست کنیم، و تصویر برگردانده شده را بررسی کنیم. اگر تصویر همانی بود که به عنوان آنلاین نشان داده می شود، پس فرد مورد نظر آنلاین است.&lt;br /&gt;برای این کار من از تصویر با t=5 استفاده می کنم. سپس دو تصویر آنلاین و آفلاین را در یک hex editor باز کردم تا اختلاف آن دو را مشاهده کنم. براساس اولین بایتی که اختلاف دارند معین می شود کدام تصویر برگردانده شده است.&lt;br /&gt;برای t=5 دو تصویر در بایت دوازدهم با هم اختلاف دارند و تصویر آنلاین مقدار بایت دوازدهم آن 109 است.&lt;/p&gt;
&lt;p&gt;کد زیر آنلاین یا آفلاین بودن کاربر یاهو را معین می کند&lt;/p&gt;
&lt;p&gt;(البته با دانلود &lt;a title="SepidYahooStatus.dll" href="http://www.sepidweb.ir/blog_files/sepidyahoostatus.zip"&gt;SepidYahooStatus.dll&lt;/a&gt; و استفاده از SepidWeb.Yahoo.IsOnline می توانید در کد خود معین کنید آیا کاربر مورد نظر آنلاین است یا آفلاین)&lt;/p&gt;
&lt;p&gt;&lt;div class="code"&gt;
&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Configuration;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Web;&lt;br /&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Net;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; SepidWeb&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// Gets the status of the provided yahoo id (either online or offline) &lt;span class="kwrd"&gt;in&lt;/span&gt; boolean. &lt;span class="kwrd"&gt;true&lt;/span&gt; &lt;span class="kwrd"&gt;for&lt;/span&gt; online.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Yahoo&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;bool&lt;/span&gt; IsOnline(&lt;span class="kwrd"&gt;string&lt;/span&gt; YahooId)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="kwrd"&gt;try&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="kwrd"&gt;string&lt;/span&gt; yahooStatusImageUrl = &lt;span class="str"&gt;"http://opi.yahoo.com/online?u="&lt;/span&gt; + YahooId + &lt;span class="str"&gt;"&amp;amp;m=g&amp;amp;t=5"&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HttpWebRequest YahooStatusRequest = (HttpWebRequest)WebRequest.Create(yahooStatusImageUrl);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; YahooStatusRequest.Accept = &lt;span class="str"&gt;"image/*"&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; YahooStatusRequest.AllowAutoRedirect = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HttpWebResponse YahooStatusResponse = (HttpWebResponse)YahooStatusRequest.GetResponse();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //first read 11 bytes which are equal &lt;span class="kwrd"&gt;in&lt;/span&gt; both online and offline streams.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; i = 0; i &amp;lt; 11; i++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; YahooStatusResponse.GetResponseStream().ReadByte();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //decide based on the different &lt;span class="kwrd"&gt;byte&lt;/span&gt;.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="kwrd"&gt;int&lt;/span&gt; decidingByte = YahooStatusResponse.GetResponseStream().ReadByte();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="kwrd"&gt;if&lt;/span&gt; (decidingByte == 109)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="kwrd"&gt;catch&lt;/span&gt; (WebException e)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //possibly theres a problem with the internet connection.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //simply show it offline.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.ToString();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;اکنون که می توانیم وضعیت یک کاربر را در یاهو تشخیص دهیم، تعیین تصاویر برای دو وضعیت آنلاین و آفلاین کار سختی نیست.&lt;br /&gt;کافی است براساس یک if ساده وضعیت کاربر معین شود و سپس براساس وضعیت وی آدرس تصویر مورد نظر استفاده گردد. مثلا&lt;/p&gt;
&lt;p&gt;&lt;div class="code"&gt;
&lt;br /&gt;&amp;lt;% &lt;span class="kwrd"&gt;if&lt;/span&gt;(SepidYahooStatus.Yahoo.IsOnline(&lt;span class="str"&gt;"sepidweb"&lt;/span&gt;) &lt;br /&gt;{%&amp;gt;&lt;br /&gt;&amp;lt;asp:Image ImageUrl=&lt;span class="str"&gt;"images/online.png"&lt;/span&gt; runat=&lt;span class="str"&gt;"server"&lt;/span&gt; /&amp;gt;&lt;br /&gt;&amp;lt;%}&lt;span class="kwrd"&gt;else&lt;/span&gt;(){ %&amp;gt;&lt;br /&gt;&amp;lt;asp:Image ID=&lt;span class="str"&gt;"Image1"&lt;/span&gt; ImageUrl=&lt;span class="str"&gt;"images/offline.png"&lt;/span&gt; runat=&lt;span class="str"&gt;"server"&lt;/span&gt; /&amp;gt;&lt;br /&gt;&amp;lt;%} %&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;/div&gt;&lt;/p&gt;</description>
      <link>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post/1388/12/23/تعیین-تصویر-دلخواه-برای-وضعیت-یاهو-در-ASPNET.aspx</link>
      <comments>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post/1388/12/23/تعیین-تصویر-دلخواه-برای-وضعیت-یاهو-در-ASPNET.aspx#comment</comments>
      <guid>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post.aspx?id=f9621411-4a1e-47a5-8d29-7450db8d32bd</guid>
      <pubDate>Sun, 14 Mar 2010 23:31:00 +1700</pubDate>
      <category>.Net</category>
      <category>ASP.NET</category>
      <category>C#</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/pingback.axd</pingback:server>
      <pingback:target>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post.aspx?id=f9621411-4a1e-47a5-8d29-7450db8d32bd</pingback:target>
      <slash:comments>7</slash:comments>
      <trackback:ping>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/trackback.axd?id=f9621411-4a1e-47a5-8d29-7450db8d32bd</trackback:ping>
      <wfw:comment>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post/1388/12/23/تعیین-تصویر-دلخواه-برای-وضعیت-یاهو-در-ASPNET.aspx#comment</wfw:comment>
      <wfw:commentRss>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/syndication.axd?post=f9621411-4a1e-47a5-8d29-7450db8d32bd</wfw:commentRss>
    </item>
    <item>
      <title>بهینه سازی تصاویر برای استفاده در وب</title>
      <description>&lt;p&gt;یکی از اساسی ترین کارهایی که برای کم کردن زمان بارگذاری صفحات وب باید انجام داد، بهینه سازی حجم تصاویر استفاده شده در صفحات وب است.&lt;br /&gt;منظور از بهینه سازی استفاده از روش هایی است که حجم تصاویر در فرمت های png, jpg و gif را بدون هیچ گونه تغییر در کیفیت آنها به حد بسیار قابل توجهی کاهش می دهند.&lt;br /&gt;البته نباید فراموش کرد که قبل از بهینه سازی تصاویر، ابتدا بایستی براساس کیفیت مورد نیاز آنها را در پایین ترین حجمی که کیفیت عکس در آن قابل قبول است ذخیره کرد، و سپس از ابزارهای بهینه سازی تصاویر استفاده نمود.&lt;br /&gt;گزینه save for web &amp;amp; devices... در photoshop معمول ترین جایی است که تصاویر را با حداقل حجم برای کیفیت مناسب ذخیره می کنیم.&lt;br /&gt;پس از آن نوبت به استفاده از ابزارهای بهینه ساز حجم تصاویر می رسد. با وجود ابزارهای بسیار متنوع، ابزارهایی که به شخصه از آنها بیشتر استفاده می کنم و کار با آنها به نظر راحت تر است و به نسبت بهینه سازی مناسب تری را انجام می دهند معرفی می کنم.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h1&gt;optipng برای فرمت png&lt;/h1&gt;
&lt;p style="text-align: left;"&gt;ابزار متن بازی که به خوبی کار بهینه سازی تصاویر png را انجام می دهد.&lt;br /&gt;برای بهینه سازی یک تصویر، باید از command prompt استفاده کرد و فایل png باید در همان پوشه ای باشد که optipng قرار دارد. سپس با دستوری مانند دستور زیر تصویر با حداکثر میزان ممکن بهینه سازی می شود.&lt;br /&gt;optipng -o7 my.png&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.sepidweb.ir/Blog_Images/optingimages/optipng.png.ashx?version=0.11" alt="optipng" width="500" height="291" /&gt;&lt;/p&gt;
&lt;p style="text-align: left;"&gt;&lt;a title="optipng" href="http://optipng.sourceforge.net/"&gt;http://optipng.sourceforge.net/&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;jpegtran برای فرمت jpeg&lt;/h1&gt;
&lt;p&gt;ابزار مناسبی برای بهینه سازی فایل های jpeg که تحت command prompt باید آن را اجرا کرد.&lt;br /&gt;به طور پیش فرض jpegtran نتیجه کار را در خروجی می نویسد. بنابراین برای این که نتیجه بهینه سازی را در یک فایل jpg ذخیره کنیم بایستی نام فایلی که می خواهیم در آن ذخیره شود را بعد از علامت &amp;lt; قرار دهیم&lt;br /&gt;jpegtran -copy none source.jpg &amp;gt; destination.jpg&lt;/p&gt;
&lt;p style="text-align: left;"&gt;&lt;img src="http://www.sepidweb.ir/Blog_Images/optingimages/jpegtran.png.ashx?version=0.11" alt="jpegtran" width="501" height="267" /&gt;&lt;br /&gt;&lt;a title="download jpegtran" href="http://sylvana.net/jpegcrop/jpegtran/"&gt;http://sylvana.net/jpegcrop/jpegtran/&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;Supergif برای فرمت gif&lt;/h1&gt;
&lt;p&gt;supergif که برخلاف دو مورد قبلی دارای رابط گرافیکی کاربر است.&lt;/p&gt;
&lt;p style="text-align: left;"&gt;&lt;img src="http://www.sepidweb.ir/Blog_Images/optingimages/supergif.png.ashx?version=0.11" alt="supergif" width="344" height="305" /&gt;&lt;br /&gt;از آدرس زیر می توانید آن را دریافت کنید&lt;br /&gt;&lt;a title="download Supergif" href="http://sylvana.net/jpegcrop/jpegtran/"&gt;http://www.boxtopsoft.com/supergif.html&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;smushit برای بهینه سازی آنلاین&lt;br /&gt;&lt;/h1&gt;
&lt;p&gt;در صورتی که بخواهید همه ی تصاویر سایت خود را پس از قرار دادن بر روی سرور بهینه سازی کنید می توانید از ابزار smushit که اکنون بخشی از افزونه yslow برای Firefox است استفاده کنید و تصاویر بهینه شده را در قالب یک بسته دریافت کنید.&lt;br /&gt;برای استفاده از آن باید پس از راه اندازی Firebug به yslow رفت و از طریق tools, All Smush.it را انتخاب کرد.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.sepidweb.ir/Blog_Images/optingimages/smushit1.png.ashx?version=0.11" alt="smushit1" width="505" height="324" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.sepidweb.ir/Blog_Images/optingimages/smushit2.png.ashx?version=0.11" alt="smushit2" width="503" height="421" /&gt;&lt;/p&gt;
&lt;p style="text-align: left;"&gt;افزونه yslow برای Firefox&lt;br /&gt;&lt;a title="yslow" href="https://addons.mozilla.org/en-US/firefox/addon/5369"&gt;https://addons.mozilla.org/en-US/firefox/addon/5369&lt;/a&gt;&lt;/p&gt;</description>
      <link>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post/1388/12/13/بهینه-سازی-تصاویر-برای-استفاده-در-وب.aspx</link>
      <comments>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post/1388/12/13/بهینه-سازی-تصاویر-برای-استفاده-در-وب.aspx#comment</comments>
      <guid>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post.aspx?id=be882622-e8d6-4cc7-bc58-f6d644945de6</guid>
      <pubDate>Thu, 04 Mar 2010 23:40:00 +1700</pubDate>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/pingback.axd</pingback:server>
      <pingback:target>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post.aspx?id=be882622-e8d6-4cc7-bc58-f6d644945de6</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/trackback.axd?id=be882622-e8d6-4cc7-bc58-f6d644945de6</trackback:ping>
      <wfw:comment>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post/1388/12/13/بهینه-سازی-تصاویر-برای-استفاده-در-وب.aspx#comment</wfw:comment>
      <wfw:commentRss>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/syndication.axd?post=be882622-e8d6-4cc7-bc58-f6d644945de6</wfw:commentRss>
    </item>
    <item>
      <title>برترین سیستم های متن باز برای دات نت</title>
      <description>&lt;p&gt;معمولا وقتی از من در مورد انتخاب بین asp.net و php می پرسند، برجسته ترین ویژگی هایی که برای انتخاب یکی از این دو ذکر می کنم این است که اگرچه ممکن است #C یا VB بهترین زبان برای کد زدن نباشند، ولی در مقابل visual studio اگر بهترین IDE&amp;nbsp; نباشد، حداقل یکی از بهترین هاست. به شخصه با IDE های مختلفی مخصوصا با IDEهای جاوا (که معمولا برای php نیز به کار می روند) کار کرده ام. شاید از نظر امکانات از Visual Studio کم نداشته اند، چه بسا امکانات بیشتری هم داشتند. اما هیچ وقت با آنها به اندازه Visual Studio راحت نبوده ام. به نظر تنها IDE جامعی است که تقریبا همه ی امکانات مورد نیاز را در دسترس برنامه نویس قرار می دهد. از این نظر asp.net بهترین است. اما مهمترین نقطه ضعف آن نبود سیستم های کد باز یا متن باز است. نبود سیستم هایی برای دات نت که طراحان و توسعه دهندگان وب بتوانند برای پروژه های خود از آنها استفاده کنند گاهی در مقابل سیستم های آماده php واقعا باعث حسرت می شد.&lt;br /&gt;&lt;br /&gt;از آن طرف همیشه بزرگترین نقطه قوت php وجود انواع و اقسام سیستم های متن باز است که همچنان بر تعداد و کیفیت آنها افزوده می شود. برخلاف مورد قبلی، هیچ وقت با سیستم های open source در net. احساس راحتی نمی کردم. راحتی نصب و کار کردن با wordpress با پیچیدگی، زشتی و مشکلات متعدد DotNetNuke قابل مقایسه نیست. DotNetNuke برخلاف wordpress به طور پیش فرض زشت است. معمولا تغییرات کوچک در DotNetNuke آن را بهتر و یا تغییر در ظاهر، آن را زیباتر می کند، اما در wordpress، عکس این موضوع صادق است.&lt;br /&gt;&lt;br /&gt;اما خوشبختانه سیستم های متن باز بسیار مناسبی برای .net نیز وجود دارند که به نظر می رسد تا مدتی دیگر دست کمی از رقبای php خود نداشته باشند. براساس تجربیاتی که با نرم افزارهای مختلف دات نت داشته ام سیستم های زیر به خوبی جوابگوی تولید کنندگان نرم افزار و نیز کاربران دات نت هستند.&lt;/p&gt;
&lt;h1&gt;وبلاگ&lt;/h1&gt;
&lt;p&gt;&lt;a title="BlogEngine.net" href="http://www.dotnetblogengine.net/"&gt;&lt;img style="text-align: left;" src="http://www.sepidweb.ir/Blog_Images/OpensourceSystems/blogenginelogo.gif.ashx?version=0.11" alt="BlogEngine.net" width="266" height="80" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;فروشگاه&lt;/h1&gt;
&lt;p class="MsoNormal"&gt;&lt;a title="nopCommerce" href="http://www.nopcommerce.com/"&gt;&lt;span&gt;&lt;img src="http://www.sepidweb.ir/Blog_Images/OpensourceSystems/nopCommercelogo.gif.ashx?version=0.11" alt="nopCommerce" width="310" height="60" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;مدیریت محتوا و پورتال&lt;br /&gt;&lt;/h1&gt;
&lt;p class="MsoNormal"&gt;&lt;a title="mojoPortal" href="http://www.mojoportal.com/"&gt;&lt;img src="http://www.sepidweb.ir/Blog_Images/OpensourceSystems/mojoPortalLogo.jpg.ashx?version=0.11" alt="mojoPortal" width="200" height="88" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;تالار گفتگو (Forum)&lt;br /&gt;&lt;/h1&gt;
&lt;p class="MsoNormal"&gt;&lt;a title="YAF" href="http://www.yetanotherforum.net/"&gt;&lt;img src="http://www.sepidweb.ir/Blog_Images/OpensourceSystems/YAFLogo.gif.ashx?version=0.11" alt="YAF" width="544" height="101" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;ویکی&lt;/h1&gt;
&lt;p&gt;&lt;a title="ScrewTurn" href="http://www.screwturn.eu/"&gt;&lt;img src="http://www.sepidweb.ir/Blog_Images/OpensourceSystems/ScrewTurnLogo.png.ashx?version=0.11" alt="ScrewTurn" width="200" height="200" /&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <link>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post/1388/12/07/برترین-سیستم-های-متن-باز-برای-دات-نت.aspx</link>
      <comments>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post/1388/12/07/برترین-سیستم-های-متن-باز-برای-دات-نت.aspx#comment</comments>
      <guid>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post.aspx?id=b3a5a76b-486c-43c5-921a-8925bba4be56</guid>
      <pubDate>Fri, 26 Feb 2010 12:12:00 +1700</pubDate>
      <category>.Net</category>
      <category>Opensource</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/pingback.axd</pingback:server>
      <pingback:target>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post.aspx?id=b3a5a76b-486c-43c5-921a-8925bba4be56</pingback:target>
      <slash:comments>6</slash:comments>
      <trackback:ping>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/trackback.axd?id=b3a5a76b-486c-43c5-921a-8925bba4be56</trackback:ping>
      <wfw:comment>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post/1388/12/07/برترین-سیستم-های-متن-باز-برای-دات-نت.aspx#comment</wfw:comment>
      <wfw:commentRss>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/syndication.axd?post=b3a5a76b-486c-43c5-921a-8925bba4be56</wfw:commentRss>
    </item>
    <item>
      <title>نمایش صحیح صفحات وب در IE6</title>
      <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img style="float: left;" src="http://www.sepidweb.ir/Blog_Images/IE6Fixes/noie6.jpg.ashx?version=0.11" alt="NoIE6" width="133" height="135" /&gt;&lt;/p&gt;
&lt;p&gt;یکی از بزرگترین مشکلاتی که طراحان وب با آن مواجه هستند، هیچ ارتباطی با طراحی ندارد. مرورگری به نام Internet Explorer 6. فقط به علت اینکه بسیاری از کاربران وب هنوز از این مرورگر استفاده می کنند، طراحان وب نمی توانند از تمام ظرفیت های CSS برای طراحی سایت هایشان استفاده کنند. شاید برای بسیاری از طراحان وب مثل خودم، بهترین راه مقابله با IE6 راهنمایی کاربران برای کنار گذاردن این مرورگر باشد. روش هایی نظیر نشان دادن سایت در پایین ترین ظرفیت ممکنه برای کاربران IE6، و یا نشان دادن هشدار به این عنوان که نمی توانید با استفاده از این مرورگر از امکانات سایت استفاده کنید، و یا حتی ارسال کاربران به &lt;a title="Break IE6" href="http://www.breakie6.com" target="_blank"&gt;breakIE6.com&lt;/a&gt; دلپذیرترین روش ها برای مقابله با این مرورگر است.&lt;/p&gt;
&lt;p&gt;اما به هر حال بسیاری از کاربران وب از این مرورگر استفاده می کنند و معمولا در بسیاری از اوقات مخصوصا در سایت های تجاری یا دولتی چاره ای نیست جز اینکه به هر طریق ممکن سایت را به گونه ای طراحی کرد که کسانی که از IE6 استفاده می کنند نیز بتوانند به سایت دسترسی داشته باشند.&lt;/p&gt;
&lt;p&gt;در ادامه سعی کرده ام تا برای بعضی مشکلات اساسی که در IE6 وجود دارد راه حل های موجود را بیان کنم.&lt;/p&gt;
&lt;h2&gt;نوشتن کد فقط برای IE6&lt;/h2&gt;
&lt;p&gt;خوشبختانه با وجود همه ی مشکلات اساسی موجود در IE6 و خودخواهی های مایکروسافت برای عدم انطباق با استانداردهای وب، راهی برای نوشتن کدهایی که فقط در IE6 دیده شوند وجود دارد. با استفاده از Conditional Comments.&lt;/p&gt;
&lt;p&gt;&lt;div class="code"&gt;&lt;br /&gt;&lt;span class="rem"&gt;&amp;lt;!--[if IE6]&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;Oops! Looks like you're still using Internet Explorer 6!&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;You deserve better!&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;&amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;بدین ترتیب می توان کدهایی در صفحات وب قرار داد که تنها در نگارش های خاص از IE دیده شود. مثلا در کد بالا، در صورتی که IE نگارش 6 باشد، کدی که در درون comment قرار دارد نیز جزئی از صفحه وب خواهد بود. اما بقیه نگارش های IE و باقی مرورگرها همه ی آن را به عنوان توضیحات درنظر می گیرند و چیزی در صفحه وب قرار نمی گیرد.&lt;/p&gt;
&lt;p&gt;با استفاده از این روش می توان یک کد javascript خاص، یا یک style sheet مجزا را برای نگارش خاصی از IE در صفحه وب وارد کرد. به عنوان مثال:&lt;/p&gt;
&lt;p&gt;&lt;div class="code"&gt;&lt;br /&gt;&lt;span class="rem"&gt;&amp;lt;!--[if IE6]&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;&amp;lt;link rel="stylesheet"&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;href="http://www.sepidweb.ir/LessEqualIE6.css" type="text/css"/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;&amp;lt;![endif]--&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;بعد می توان همه ی styleهایی که مربوط به IE6 هستند را در این فایل css قرار داد.&lt;/p&gt;
&lt;p&gt;البته Conditional comments فقط در IE6 کاربرد ندارند و می توان هر نسخه ای، یا مجموعه ای از نگارش های IE را تعیین کرد. مثلا نگارش های کمتر یا معادل IE7. برای اطلاعات بیشتر می توانید به &lt;a title="About Conditional Comments" href="http://msdn.microsoft.com/en-us/library/ms537512%28VS.85%29.aspx"&gt;Microsoft - About Conditional Comments&lt;/a&gt; مراجعه نمایید.&lt;/p&gt;
&lt;h2&gt;درست نمایش دادن تصاویر alpha-transparent PNG در IE6&lt;br /&gt;&lt;/h2&gt;
&lt;p&gt;این مشکل باعث می شود تا مناطقی از تصاویر PNG که از transparency یا همان شفافیت که باعث می شود قسمتهای شفاف دیده نشوند و تصاویر زیر آنها دیده شود استفاده می کنند، به مانند تصویر زیر نشان داده شوند:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.sepidweb.ir/Blog_Images/IE6Fixes/sepid_logo_notok.jpg.ashx?version=0.11" alt="Sepid Logo Not Displayed Correctly" width="184" height="153" /&gt;&lt;/p&gt;
&lt;p&gt;این مشکل برای فایل های تصویری PNG از نوع 32 بیتی است که برای حل این مشکل scriptهای خاصی نوشته شده اند که ازAlpha Image Loader filter که مخصوص IE است استفاده می کنند.&lt;/p&gt;
&lt;p&gt;یکی از بهترین آنها iepngfix است که تنها نیازمند قرار دادن دو فایل در وب سرور است، و پس از آن با تعیین کردن کلاس css می توان تصاویری که می خواهیم filter بر روی آنها اعمال شود را معین کنیم. بدین ترتیب تغییر بسیار ناچیزی در کد html وارد می شود. علاوه بر آن با انواع تصاویر مانند background و inline و غیره سازگار است.&lt;/p&gt;
&lt;p&gt;بنابراین در IE6 نیز می توان تصاویر Transparent 32bit PNG را نیز به درستی نمایش داد.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.sepidweb.ir/Blog_Images/IE6Fixes/sepid_logo_ok.jpg.ashx?version=0.11" alt="Sepid Logo Displayed Correctly" width="184" height="153" /&gt;&lt;/p&gt;
&lt;p&gt;برای اطلاعات بیشتر به &lt;a title="TwinHelix IE PNG Fix" href="http://www.twinhelix.com/css/iepngfix/" target="_blank"&gt;TwinHelix IE PNG Fix&lt;/a&gt; مراجعه نمایید.&lt;/p&gt;
&lt;h2&gt;Float Clear&lt;br /&gt;&lt;/h2&gt;
&lt;p&gt;مشکلی که نه فقط در IE6 و بلکه در مرورگرهای بسیاری وجود دارد، انجام ندادن clearing برای عناصر داخلی float شده است.&lt;/p&gt;
&lt;p&gt;بدین معنا که انتظار می رود که مثلا اگر یک تصویر را در یک div قرار دهیم و آن تصویر را به یک سمت float کنیم، آن div به طور کامل تصویر را در بر گرفته باشد و حداقل طول و عرض معادل تصویر داشته باشد.&lt;/p&gt;
&lt;p&gt;اما گاهی چنین اتفاقی نمیفتد و به اطلاح می گویند عنصر شناور داخلی به درستی توسط دربرگیرند خود clear نشده است.&lt;/p&gt;
&lt;p&gt;خوشبختانه راه حل بسیار مشهور clearfix وجود دارد که به اصطلاح یک css hack .است&lt;/p&gt;
&lt;p&gt;&amp;nbsp;برای استفاده از این css hack کافی است کد css مربوطه را در فایل های css قرار دهیم و سپس به کلاس های div کلاس clearfix را نیز اضافه کنیم.&lt;/p&gt;
&lt;p&gt;&lt;div class="code"&gt;&lt;br /&gt;.clearfix:after{&lt;br /&gt;content:" ";&lt;br /&gt;display:block;&lt;br /&gt;height:0;&lt;br /&gt;clear:both;&lt;br /&gt;visibility:hidden;&lt;br /&gt;}&lt;br /&gt;.clearfix{display:inline-table}&lt;br /&gt;/* Hides From IE-mac */&lt;br /&gt;* html .clearfix{height:1%;}&lt;br /&gt;.clearfix{display:block}&lt;br /&gt;/* End Hide From IE-mac */&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;البته راه حل ساده تر این است که برای خصیصه overflow از div مقداری تعیین کنیم.&lt;/p&gt;
&lt;p&gt;&lt;div class="code"&gt;&lt;br /&gt;overflow:hidden;&lt;br /&gt;width:100%;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;البته می توان مقادیر دیگری را نیز برای width و overflow تعیین کرد و یا حتی به جای width به height مقدار داد.&lt;/p&gt;
&lt;p&gt;همچنین در صورتی که مقداردهی به overflow باعث به هم ریختگی طراحی بشود، می توان تنها به یکی از overflow-x و overflow-y مقدار داد.&lt;/p&gt;
&lt;h2&gt;رفع مشکل دوبرابر شدن حاشیه&lt;/h2&gt;
&lt;p&gt;در صورتی که عنصری مانند &amp;lt;div&amp;gt; را در یک سمت float کنیم، و بعد در همان سمت یک حاشیه یا همان margin برای آن قرار دهیم، IE6 مقدار آن margin را دوبرابر می کند!&lt;/p&gt;
&lt;p&gt;ساده ترین راه حل برای این مشکل آن است که خصیصه display برای آن عنصر را از block به inline تغییر دهیم.&lt;/p&gt;
&lt;h2&gt;رفع بعضی از مشکلات IE6 با تعیین hasLayout&lt;/h2&gt;
&lt;p&gt;به عنوان آخرین نکته، بسیاری از مشکلات IE6 را می توان با به اصطلاح set کردن hasLayout رفع کرد. hasLayout یکی از تعیین کننده های داخلی مرورگر IE6 است که در صورتی که همه چیز به خوبی کار می کرد نیازی نبود تا هیچ وقت در مورد آن بدانیم.&lt;/p&gt;
&lt;p&gt;hasLayout یک خصیصه برای هر یک از عناصر html است که خود IE6 در درون خود برای بررسی نحوه نمایش عناصر مقدار آن را تعیین می کند. معمولا برای اینکه نمایش عناصر وقت گیر نباشد و بازدهی بالا رود، IE6 برای بعضی عناصر مقدار آن را false قرار می دهد.&lt;/p&gt;
&lt;p&gt;گاهی اوقات مشکلات نمایش عناصر در صورتی که hasLayout در آنها true باشد رفع می شود. بنابراین خوب است بدانیم چه طور می توانیم کاری کنیم که IE6 مقدار آن را true قرار دهد.&lt;/p&gt;
&lt;p&gt;با تعیین مقادیر زیر برای خصیصه های عناصر، آنها دارای layout می شوند&lt;/p&gt;
&lt;p&gt;&lt;div class="code"&gt;&lt;br /&gt;width: anything other than "auto"&lt;br /&gt;height: anything other than "auto"&lt;br /&gt;float: left or right&lt;br /&gt;display: inline-block&lt;br /&gt;zoom: anything other than "normal"&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;بنابراین یکی از سریع ترین روش ها برای حل مشکل نمایش در IE6 این است که فرضا برای آن عنصر width یا height تعیین کنیم.&lt;/p&gt;
&lt;p&gt;برای اطلاعات بیشتر در مورد hasLayout می توانید به &lt;a style="direction:ltr" title="The Concept of hasLayout in IE/Win" href="http://www.satzansatz.de/cssd/onhavinglayout.html" target="_blank"&gt;Concept of hasLayout in IE\Win&lt;/a&gt; مراجعه نمایید.&lt;/p&gt;
&lt;h2&gt;در پایان&lt;br /&gt;&lt;/h2&gt;
&lt;p&gt;در این نوشته سعی کردم اصلی ترین نکات مورد نیاز برای اینکه صفحات وب تا حد قابل قبولی در IE6 به درستی نمایش داده شود را بیان کنم. اگرچه مشکلات IE6 به همین موارد ختم نمی شود و البته راه حل ها هم بسیار است، ولی به عنوان یک نوشتار کلی، به نظر کافی می رسد.&lt;/p&gt;
&lt;p&gt;مخصوصا که عقیده دارم حالا که نمی توانیم کاربران IE6 را متقاعد کنیم تا از آن دست بردارند، و یا شاید برای آنها امکان این موضوع وجود نداشته باشد، بهتر است لااقل متوجه شوند که همه چیز در مرورگر آنها به درستی کار نمی کن.&lt;/p&gt;
&lt;p&gt;اکثر نکات از &lt;a title="Definitive Guide to Tamming The IE6 Beast" href="http://sixrevisions.com/web-development/definitive-guide-to-taming-the-ie6-beast/" target="_blank"&gt;Definitive Guide To Tamming the IE6 Beast&lt;/a&gt; گرفته شده است و البته براساس تجاربی که از طراحی وب برای IE6 داشتم مهمترین نکات آن را جدا کردم. در صورتی که بخواهید بیشتر بدانید حتما به مقاله اصلی سری بزنید.&lt;/p&gt;</description>
      <link>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post/1388/07/10/نمایش-صحیح-صفحات-وب-در-IE6.aspx</link>
      <comments>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post/1388/07/10/نمایش-صحیح-صفحات-وب-در-IE6.aspx#comment</comments>
      <guid>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post.aspx?id=d3fd4fca-2946-4ea7-92b5-fbe84f3cef76</guid>
      <pubDate>Fri, 02 Oct 2009 07:14:00 +1700</pubDate>
      <category>IE</category>
      <category>طراحی وب</category>
      <category>مرورگرها</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/pingback.axd</pingback:server>
      <pingback:target>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post.aspx?id=d3fd4fca-2946-4ea7-92b5-fbe84f3cef76</pingback:target>
      <slash:comments>4</slash:comments>
      <trackback:ping>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/trackback.axd?id=d3fd4fca-2946-4ea7-92b5-fbe84f3cef76</trackback:ping>
      <wfw:comment>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/post/1388/07/10/نمایش-صحیح-صفحات-وب-در-IE6.aspx#comment</wfw:comment>
      <wfw:commentRss>http://xn--mgbajksoy90jca.xn--mgba3a4f16a.ir/Persian/syndication.axd?post=d3fd4fca-2946-4ea7-92b5-fbe84f3cef76</wfw:commentRss>
    </item>
  </channel>
</rss>