فریم ورک Ruby On Rails چیست؟
الگوی طراحی برنامههای این فریمورک نیز MVC یا Model View Controller است. (شکل۱)
RoR بر اساس دو اصل مهم استوار است:
اول، اصل؛ DRY یا Don’t Repeat Yourself به این معنا که اطلاعات، در یک مکان مشخص و منفرد قرار دارد و نیازی نیست که مثلاً برنامهنویس، نام ستون اطلاعات را مشخص کند و به جای آن Ruby میتواند این اطلاعات را از پایگاه داده استخراج کند.
دوم، CoC یا Convention over Configuration به اینمعنا که فریمورک هوشمند است و برنامهنویس فقط باید جنبههای نامشخص برنامه را مشخص کند.
RoR از دو جزء اصلی تشکیل شده است: اول زبانی به نام Ruby با Syntax بسیار تمیز و کاملاً شیءگرا که شاید بتوان Ruby را ترکیبی از مزایای زبانهای برنامهنویسی دیگر دانست؛ مثلاً سادگی Pythons، عملکرد Perl و ظرافت مفهمومی Smaltalk.
جزء دوم، Rails است؛ فریمورکی با منبع باز برای Ruby جهت طراحی برنامههای تحت وب و برنامههایی که به صورت مستقیم با پایگاه داده در ارتباطند یا به قول معروف Database-Driven هستند.
یکی از مزایای Rails نسبت به فریمورکهای دیگر این است که با آن میتوان با سرعت بیشتر، تقریباً ده برابر، برنامهنویسی کرد. علت این سرعت بالا، شاید در استفاده از زبان Ruby و پشتیبانی از دو اصل مهمی است که قبلاً ذکر شد (CoC و DRY).
در RoR، با خطوط کمتری از کد، میتوانیم برنامه تحت وب خود را بسازیم و طبیعتاً از آنجایی که کدهای ما کم است، برای آن بهراحتی قابل درک خواهد بود و خطای کمتری را در خود خواهد داشت و Debugging آسانتر خواهد شد.
در حالت کلی RoR نسبت به دیگر فریمورکهای برنامهنویسی تحت وب چیز جدیدی ندارد و تنها فرق آن با دیگر فریمورکها، تعاملی است که بین Ruby و Rails در آن وجود دارد. تنها قابلیت RoR این نیست که سریعتر از فریمورکهای دیگر است، بلکه کدهای برنامه در آن بسیار واضحترند و قابلیت تعمیرپذیری بالاتری نیز دارند.
Rails فریمورکی است که از مدل MVC پیروی میکند و به صورت جامع، تمامی لایههای این مدل را پشتیبانی میکند. در صورتی که فریمورکهای دیگر معمولاً تنها قسمتی از این مدل را پشتیبانی میکنند و برنامهنویس را مجبور به هماهنگ کردن اجزای سیستم میکنند.
اضافه بر این، همانطور که قبلاً نیز بحث شد RoR به صورت CoC است و به این ترتیب، نیازی نیست که برنامهنویس به صورت دستی، جداول پایگاه داده را به اشیای برنامه، مرتبط کند چراکه برنامه این عمل را به صورت خودکار انجام خواهد داد.
همچنین در Rails، تهیه برنامهها بر خلاف فریمورکهای دیگر فقط یک مرحله دارد. در Rails کافی است برنامه خود را تغییر داده و نتیجه آن را مستقیماً مشاهده کنید.
یکی دیگر از امتیازات Rails درخصوص تهیه برنامههای تحت وب این است که عملیات CRUD یا Delete ،Create – Retrieve – Update و نمایی از پایگاه داده به صورت خودکار آماده میشود.
Rails، خود از اجزایی تشکیل شده است که با همدیگر در ارتباط نزدیک هستند؛ البته این اجزا میتوانند به صورت مستقل نصب شوند. برخی از این اجزا عبارتند از:
- ORM :Active Record و ارتباطدهنده مدل (model) به جداول بانک اطلاعاتی
- Action Pack: سازنده View و Controller در معماری MVC
- Prototype سازنده اجزای داخل صفحه وب از جمله ایجکس
-Action Mailer: مسئول دریافت و ارسال ایمیل
- Action Web Service: پشتیبان SOAP ،XML و WSDL
قطعه کد زیر نمونهای از کدهای RoR را نشان میدهد که عبارت Hello World را نمایش میدهند:
منابع: ماهنامه شبکه
کدامیک از Framework های PHP را برگزینیم؟

فریم ورک
های بسیار زیادی برای PHP نوشته شده است که هر کدام ویژگیها و امکانات
خاص خودشان را دارد. برای برگزیدن یکی از آنها، نیاز به بررسی همه و
آشنایی نسبی با آنها دارد. در این
نوشته پنج Framework مشهور را برگزیده و بررسی شده است. این بررسی
میخواهد یک Overview کلی از هر کدام را نشان دهد تا برای دیگران، انتخاب
آسانتر شود.
همچنین این Framework از PHP 4 پشتیبانی نمیکند و تنها در PHP 5 اجرا میشود. با توجه به تلاشهای زیاد این (یکی از مزایای Zend این است که شما فقط از کتابخانه های مورد نیازتان استفاده می کنید و این امر برنامه ها را سبک تر می کند) بد نیست بدانید که در بین سایتهای ایرانی، سایت مشهور کلوب با کمک Zend Framework درست شده است. ولی به سیمفونی از ORM مشهوری به نام Propel خوب حدس
طبیعتا Zend Framework سرشناسترین و بالاترین گزینه ما است؛ چون که Zend،
شرکتی که پشت PHP است آن را طراحی و تولید کرده است. این Framework
امکانات زیادی داشته و بسیار قدرتمند است و هر آن چه که برای تولید یک
پروژه بزرگ لازم داشته باشید در خود دارد. License آن هم BSD است که به شدت انعطاف پذیر بوده و شرط میکند که در صورت توسعه آن باید کد تولید شده کاملا انعطاف پذیر باشد.
اخیر برای ارتقاء به PHP 5 در سرورها شاید این مسئله کمتر به چشم بیاید
ولی به هر روی ناهماهنگی با یکی از گستردهترین نسخههای PHP در این
Framework به چشم میخورد.
Framework و کامپوننتهای فراوان آن برای پروژههای خیلی خیلی بزرگ مناسب
است ولی برای خیلی از پروژهها چیزهایی را ارائه میکند که خیلی بیشتر از
نیاز آنها است و همچنین به طور نسبی از پیچیدگیهایی برخوردار است. خیلی
از چیزهایی که Zend Framework داره، خیلی کم کاربرد است. در هر حال، گزینه
برگزیده من Zend Framework نیست. به باور من Zend Framework خیلی خوش دست
نیست و یاد گرفتن آن زمان زیادتری میبرد و زمان زیادی لازم هست تا بفهمید
دقیقا چگونه کار میکند. این پیچیدگی مخصوصا اگر بخواهید با یک تیم کار
کنید، سبب میشود تا زمان زیادی برای آموزش تیم از بین برود. همچنین این
Framework شما را به پیروی از MVC اجبار نمیکند. این مساله اگر چه از یک
سو سبب انعطافپذیری میشود ولی از سوی دیگر هم ممکن است کار شما را غیر
استاندارد کند.
یکی از مشهورترین و محبوبترین Frameworkها و یکی از بهترین برابرهای Rails
در PHP به شمار میآید. از MVC کامل پشتیبانی میکند. کاربران خیلی زیاد و
فعالی دارد که ویژگی مهمی به حساب میآید. اگر چه من اصلا از Mambo خوشم
نمیآید ولی این CMS محبوب Mambo هم قرار است در نسخههای آینده از CakePHP استفاده کند.
اما این سیستم دو تا اشکال کوچک هم دارد. یکی این که بیش از اندازه کند
است (برای خواندن گزارش یک Benchmark خوب بین CakePHP، Zend Framework و
CodeIgniter اینجا
را ببینید). این مساله در صورتی که هزینه سرور برای شما اهمیت داشته باشد،
خودش را بیشتر نشان میدهد. دوم این که اسامی کلاسهایی CakePHP خیلی عمومی
طراحی شده است. برای نمونه کلاس Database که اگر شما هم کلاس مشابهی داشته
باشید، سبب ایجاد ناهماهنگی در کد شما میشود و به طور کلی چنین اسمگذاری
و به کار نگرفتن پیشوند مناسب مانند Cake سبب بدبینی نسبی من به طراحی این
سیستم شده است.
همچنین ORMی که در CakePHP طراحی شده است، توارث را پشتیبانی نمیکند و به
باور من چندان استاندارد نیست. (با Hackهایی میتوان مشکل توارث ORM در
CakePHP حل کرد. در این باره رک: Kelnishi.com)
طور کلی نصب CakePHP خیلی ساده است و راه انداختن اولیه سایت باهاش کار
ساده و آسانی است. بر خلاف Zend Framework که نمیدانستید از کجا باید
آغاز کنید، در CakePHP خیلی سریع میتوانید یک سایت ساده راه بیاندازید.
ولی انجام کارهای پیشرفتهتر به دلیل نبودن مستندات کافی و راهنماهای
مناسب کمی با CakePHP دشوار است. در هر حال گزینه انتخابی من CakePHP هم
نیست.
از همه گزینههای دیگر متفاوت است. بر پایه MVC درست نشده است. طراح Prado
این کار را برای پروژه دکترایش انجام داده است و در طراحی آن Delphi را مد
نظر داشته و تلاش کرده تا یک Framework کاملا Object Oriented و Event
Driven درست کند. اگر با ASP.NET کار کرده باشید، Prado را خیلی مشابه با
آن خواهید یافت. در Prado همه چیز حتی یک Label و Button هم Object است که
Propertyها و Eventهای خاص خودش را دارد. همچنین زبانی شبیه به HTML برای
طراحی ظاهر صفحات دارد (دقیقا شبیه به ASP.NET و Tagهای asp: این زبان)
من اگر چه ASP.NET را دوست دارم و باهاش کار هم میکنم و اگر چه فکر
میکنم Prado سیستم خیلی قشنگ و تمیزی است ولی Prado هم گزینه برگزیده من
نیست؛ چون پشتیبانی یک سیستم از MVC برایم اهمیت زیادی دارد.
این Framework خیلی شبیه به CakePHP و از آن سادهتر و کوچکتر است و به
همین خاطر هم از لحاظ سرعت از CakePHP خیلی بهتر است ولی خوب به همان
اندازه هم امکانات کمتری دارد. این Framework شما را مجبور به پیروی کامل
از MVC نمیکند، بنابراین برای یادگیری نوآموزان بهتر است. از Ajax هم
مستقیما پشتیبانی نمیکند. ولی Code Igniter ویژگیهای خوبی هم دارد. این
Framework در PHP 4 هم کار میکند و از لحاظ سبک برنامهنویسی به سبک
برنامهنویسی PHP 4 نزدیک است. به همین خاطر برای Port کردن کدهای قدیمی
به یک Framework گزینه مناسبی است. همچنین دارای Community بزرگی است و
کامپوننتها و مثالهای فراوانی برایش پیدا میشود. این Framework هم همانند
CakePHP گزینش من نیست.
این Framework امکانات بسیار زیادی دارد و ماژولهای جداگانه را برای
انجام کارهای خودش به کار میگیرد: مانند DB Layer که با امکانات زیاد
خودش واقعا لایه بانک اطلاعاتی شما را به بهترین شکل پشتیبانی میکند و
امکان نوشتن برنامه مستقل از بانک اطلاعاتی را به شما میدهد. (اگر چه این
ویژگی در Frameworkهای دیگر هم هست).
برای انجام پروژههای بزرگ symfony به خاطر امکانات زیادش، گزینه خیلی
خوبی است ولی با این حال، پیچیدگیهای Zend Framework را هم ندارد. این
Framework هم تنها بر روی PHP 5 کار میکند. License آن هم MIT است که
License خوب و انعطافپذیری به حساب میآید. همچنین این Framework به خوبی
AJAX را پشتیبانی میکند و امکاناتی برای ساختن صفحات Admin سایت دارد که
کار طراحی بخش مدیریتی سایت را خیلی آسان میکند.
بهره میگیرد که به باور من سیستم بسیار قدرتمندی است. اگر چه در CakePHP
هم ORM هست ولی در آن جا از یک سیستم داخلی استفاده شده است. به کار گیری
یک ORM بیرونی سبب افزایش سرعت توسعه سیمفونی شده است؛ چون که Propel
سیستم خیلی مشهوری بوده و به طور عادی خودش در حال توسعه هست. این مساله
همچنین هوشمندی طراحان سیمفونی را نشان میدهد.
زدنش سخت نیست. Framework برگزیده من symfony است. طراحی دقیق و محکم،
سرعت مناسب، امکانات خیلی زیاد، مستندات و Community بزرگ آن، وجود ویژگی
Admin Generator و سیستم کنترل دسترسی که سبب میشود من بتوانم در زمان
طراحی صفحات سایت به مسائل مهمتر و افزودن ویژگیهای اصلی بپردازم، از
دلایل این گزینش من است.
نگاهی گذرا بر برخی قابلیت های جدید در ASP.NET 4

نسخه جدید ASP.NETقابلیت های خوبی به وب فرم ها و visual web developer
اضافه شده که در زیر بعضی از اونها رو بررسی میکنیم
۱- توانایی ست کرد Meta tag
2-کنتر بیشتر روی View state
3-کنترل بیشتر روی Id ایجاد شده برای کنترل ها
۴-کنترل بیشتر روی تگ های ایجاد شده برای بعضی کنترل های دیتابیسی
۵- تمپلیت های جدید برای پروژه ها
در قسمت بعدی چند نمونه از این تغییرات را با هم خواهیم دید.
است. در asp.net 4 یک خاصیت جدید به نام ViewStateModeبه کنترل ها اضافه
شده که به کمک آن میتوانید عملکرد Viewstate هر کنترل را به طور جداگانه
تعیین نمایید. این خاصیت سه مقدار Desable,Enable,Inherit را میپذرد و
تعین میکند که Viewstate از صفحه به ارث برده شود، فعال باشد یا غیر فعال.
قابلیت بعدی کنترل روی ID ایجاد شده برای کنترل ها میباشد. در نسخه های
قبلی اگر کنترلی داخل یوزرکنترل قرار میگرفت یا کنترل درون صفحه ای قرار
میگرفت که درون یک مستر پیچ قرار داشت، به نام آن کنترل پیشوند هایی اضافه
میشد تا یکتا بودن نام آن کنترل را در صفحه تضمین کند. این نامها در بساری
از مواقع خوانایی کمی داشتند و مهم تر از همه هیچ کنترلی روی این نام ها
نداشتیم. در نسخه جدید ASP.NET این قابلیت برای برنامه نویس فراهم شده است
که کنترل دقیقی برو روی نام های ایجاد شده برای کنترل ها داشته باشد.
برای این منظور از خاصیت جدید ClientIDMode استفاده میکنیم که تعیین میکند
نام به صورت اتوماتیک ایجاد شود، ثابت باشد، به ارث برسد یا از قاعده ما
پیروی کند.
و در آخر تمپلیت های جدید نیز برای انواع جدید از پروژه ها به این نسخه
اضافه شده است. مانندDynamic Data, ASP.NET MVC,Entity Templatesو …
برای آشنایی کامل تری با این امکانات میتوانید به اینجا مراجعه کنید.
همین دیگه! تموم شد.
مقدمه ای بر Xml
• HTML برای نمايش اطلاعات و برای تمركز روی چگونگی ديده شدن اطلاعات طراحی شده است.
قبل از ادامه اين بحث، شما بايد مقداری درك پايه ای از موارد زير داشته باشيد:
• WWW,HTML و اساس ساخت صفحات وب
• زبانهای اسكريپت وب مانند JavaScript , VBScript
XMLچيست؟
• XML برگرفته شده از كلمات Extensible Markup Language است.
• XML يك Markup Language مانند HTML است.
• tag (برچسب) های XML از قبل تعريف شده نيستند، شما خودتان بايد آنها را تعريف كنيد.
• XML از يك (Document Type Definition) DTD برای شرح اطلاعات استفاده ميكند.
• XML با يك DTD طراحی ميشود تا خود-توصيف باشد.
تفاون اصلی بين XML و HTML
• XML برای حمل اطلاعات طراحی شده است.
• XML يك جايگزين برای HTML نيست.
• XML و HTML برای هدفهای مختلفی طراحی شده اند.
• HTML برای نمايش اطلاعات و XML برای شرح و حمل و نقل اطلاعات است.
XML كاری انجام نميدهد!
شايد اين موضوع برای درك كردن كمی مشكل باشد، اما XML كاری انجام نميدهد. XML ساخته نشده تا كاری انجام دهد. XML به عنوان يك راه برای سازماندهی كردن، ذخيره كردن و فرستادن اطلاعات ساخته شده است. مثال زير يك يادداشت از Jani به Tove است كه در ساختار XML ذخيره شده است:
Tove Jani Reminder Dont forget me this weekend!
XML آزاد و قابل گسترش
• برچسبهای XML از قبل تعريف شده نيستند، شما بايد برچسبها را خودتان درست كنيد.
• برچسبهايی كه در HTML بكار ميروند از پيش تعريف شده هستند و مؤلف سندهای HTML فقط ميتواند از برچسبهای تعريف شده در HTML استاندارد استفاده كند ( مانند
و
).
• XML به مؤلف اجازه ميدهد تا برچسبهای خود و ساختار آنها را تعريف كند.
• برچسبهای مثال بالا ( مانند و) در XML استاندارد تعريف شده نيستند، اين برچسبها توسط مؤلف سند XML تعريف شده اند.
XML يك مكمل برای HTML
• XML يك جايگزين برای HTML نيست.
• درك اينكه XML يك جايگزين برای HTML نيست خيلی مهم است.
• در آينده گسترش وب احتمال داده ميشود كه XML برای شرح اطلاعات به كار خواهد رفت،درحاليکه كه HTML برای فرمت و نمايش اطلاعات به كار خواهد رفت.
• شايد اين بهترين تعريف از XML باشد: ابزاری مستقل از سخت افزار و نرم افزار برای انتقال اطلاعات است.
XML ميتواند اطلاعات را از HTML جدا كند
• با XML اطلاعات شما در خارج از HTML ذخيره ميشود.
• هنگامی كه HTML برای نمايش اطلاعات استفاده ميشود، اطلاعات در درون HTML ذخيره شده است. با XML اطلاعات ميتواند در فايلهای جدای XML ذخيره شود. در اين روش شما ميتوانيد HTML را به عنوان لايه ای روی اطلاعات و برای نمايش آنها فرض كنيد و مطمئن باشيد كه تغيير در اطلاعات لايه های زيرين احتياج به تغيير HTML شما نخواهد داشت.
XML يك مكمل برای HTML
• XML يك جايگزين برای HTML نيست.
• درك اينكه XML يك جايگزين برای HTML نيست خيلی مهم است.
• در آينده گسترش وب احتمال داده ميشود كه XML برای شرح اطلاعات به كار خواهد رفت،درحاليکه كه HTML برای فرمت و نمايش اطلاعات به كار خواهد رفت.
• شايد اين بهترين تعريف از XML باشد: ابزاری مستقل از سخت افزار و نرم افزار برای انتقال اطلاعات است.
XML ميتواند اطلاعات را از HTML جدا كند
• با XML اطلاعات شما در خارج از HTML ذخيره ميشود.
• هنگامی كه HTML برای نمايش اطلاعات استفاده ميشود، اطلاعات در درون HTML ذخيره شده است. با XML اطلاعات ميتواند در فايلهای جدای XML ذخيره شود. در اين روش شما ميتوانيد HTML را به عنوان لايه ای روی اطلاعات و برای نمايش آنها فرض كنيد و مطمئن باشيد كه تغيير در اطلاعات لايه های زيرين احتياج به تغيير HTML شما نخواهد داشت.
13 افزونه برتر برای Firefox برای طراحان وب
اگرچه من به عنوان کاربر وب از افزونه های زیادی استفاده می کنم، اما به عنوان یک طراح وب استفاده از برخی افزونه ها دردسر های طراحی وب را به شدت کم می کنند و مطمئن هستم بدون این افزونه های فایرفاکس واقعا نمی توانم کار طراحی وب را انجام بدهم.
در ادامه لیستی از 14 افزونه برتر برای فایرفاکس برای طراحان وب را قرارداده ام.
Web Developer:

اگر بخواهم از بین افزونه های موجود برای Firefox فقط یکی را انتخاب کنم، مطمئنا آن یک گزینه فقط Web Developer است. از جمله ویژگی هایی از این افزونه که معمولا از آنها استفاده می کنم، تغییر در CSS و مشاهده تغییرات بر روی صفحه در حین ایجاد تغییرات، و همینطور برای HTML است. از دیگر ویژگی های آن امکان غیر فعال کردن موقت javascript است. دستکاری کوکی ها، دستکاری فرم ها و ایجاد تغییرات بسیار زیاد در آنها، حذف کوکی ها با تعیین شرایط خاص، غیر فعال کردن تصاویر، مشخص کردن عناصر خاص در صفحه که کادر قرمزی دور آنها کشیده شود و نیز استفاده از لینک های در دسترس برای بررسی Validate بودن صفحه از جمله ویژگی هایی است که معمولا به طور روزانه از آنها استفاده می کنم.
البته ویژگی های Web Developer محدود به همین موارد نیست و حتما باید آن را نصب کنید و امتحان کنید تا به قدرت آن پی ببرید!
Firebug:

اگرچه این افزونه برای رفع اشکالات در javascript معروف تر است، اما به این کاربرد محدود نیست. از جمله کاربردهای این افزونه پیدا کردن کد مربوط به یک عنصر در صفحه با اشاره کردن به آن عنصر توسط ماوس است.
معمولا طراحی وب بدون وجود این افزونه بسیار مشکل است و اگرچه آن را در ردیف دوم بعد از Web Developer معرفی کردم، اما اصلا کم ارزش تر از آن نیست. نکته جالب توجه در مورد این افزونه این است که افزونه های دیگری برای Firebug نوشته شده اند که قابلیت های جدیدی به Firebug اضافه می کنند!
ScrapBook:

یکی از برترین افزونه هایی که به نظر من همه ی مرورگرها باید نظیر آن را داشته باشند، Scrapbook است. معمولا طراحان وب لیست عظیمی از صفحات وب را باید در رایانه شون نگهداری کنند که مدیریت و نگهداری اون کار بسیار سختی است. علاوه بر اون معمولا وقتی از گزینه Save برای ذخیره کردن صفحه ای استفاده کنیم، هیچ وقت صفحات به طور کامل ذخیره نمی شوند.
اما Scrapbook این مشکل را حل کرده است. علاوه بر این که ذخیره کردن صفحات به راحتی و به طور کامل توسط این افزونه انجام می شود، این افزونه مدیریت بسیار قوی را بر صفحات ذخیره شده در اختیار ما قرار می دهد. قابلیت جستجوی متن خاص در کل سایت های ذخیره شده هم از قابلیت های Scrapbook است. علاوه بر این ها امکان تعیین عناصری که در خود صفحه وجود ندارند و لینکی از اونها در صفحه وجود دارد نیز ممکن است. حتی می توان عمق ذخیره سازی را معین کرد تا این افزونه تا عمق خاصی در لینک هایی که پیدا می کند پیش برود و همه ی آنها را تحت یک نام ذخیره کند.
در یک کلام، این افزونه فوق العاده است!
Fiddler:

برخلاف مواردی که تا به حال معرفی شدند، Fiddler یک افزونه نیست. بلکه یک نرم افزار مجزا از Firefox است. اما به علت نیازی که به آن وجود دارد تصمیم گرفتم در این لیست قرار بدهمش. البته بی دلیل هم نیست، چون در ابتدا قصد داشتم افزونه Live Http Headers رو در لیست قرار بدم. اما چون ویژگی های Fiddler بسیار بیشتر است، Fiddler جای Live Http Headers را گرفت. بعد از نصب نرم افزار، افزونه ای هم بر روی Firefox نصب می شود که به راحتی می توان Fiddler را فعال یا غیر فعال کرد.
در یک کلام، Fiddler برای نشان دادن کل ترافیک ارسالی و دریافتی مرورگر استفاده می شود. برای ساختن نرم افزارهای تحت وب واقعا چنین چیزی فوق العاده مورد نیاز است.
FireFTP:

ساده، ولی بسیار کارآمد! یک مدیر FTP در Firefox.
Window Resizer:

مسلما همه ی کاربران وب از یک Resolution به صفحه ی وب نگاه نمی کنند. برای اینکه بدانیم سایت ما در Resolutionهای مختلف چطور نمایش داده می شود، می توانیم از این افزونه ساده استفاده کنیم. البته همین قابلیت در Web Developer هم وجود دارد، اما کار با این افزونه کمی راحت تر است.مخصوصا که اندازه های پیش فرض را هم از قبل تعریف شده دارد.
YSlow:

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

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

در صورتی که بخواهیم بدانیم سایتی در مرورگر Internet Explorer به چه شکلی نمایش داده می شود، اما نخواهیم Firefox را ترک کنیم، می توانیم از این مرورگر استفاده نماییم.
GA?:

افزونه کوچکی که نشان می دهد آیا Google Analytics برای سایتی که در حال دیدن آن هستیم فعال است یا خیر
Selenium IDE:

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

این افزونه اطلاعاتی را مرتبط با SEO به طراح وب می دهد. اطلاعاتی نظیر PageRank در سایت های مختلف، قیمت تقریبی محاسبه شده سایت، امکانات SEO نصب شده در سایت و موارد دیگر
LiveClick:

بسیاری از طراحان وب مجموعه ای از RSS Feed ها را به نوار Bookmark در Firefox اضافه کرده اند. بررسی تک تک آنها برای بررسی آن که آیا به روز رسانی شده اند یا خیر فقط وقتی تعدادشان محدود باشد معقول به نظر می رسد. اما برای طراح وبی که نوار ابزار خودش را با 14 مورد پر کرده باشد که بعضی از آنها هم مجموعه ای از RSS Feedها باشند، بررسی دستی آنها فقط یک کابوس است! استفاده از این افزونه باعث می شود تا به طور خودکار Feedها بررسی شوند و در صورتی که مورد جدیدی در آنها وجود داشته باشد، به رنگ قرمز نمایش داده شوند.
استفاده از PHP در Visual Studio.net!
البته در صورتی که ویژوال استدیو رو رو سیستمتون دارید کارتون راحت تره چون فقط یه فایل 35 مگابایتی رو برای VS.net 2005 دانلود میکنین. در غیر اینصورت باید فایل 85 مگابایتی رو که محیط Runtime دات نت 2.0 رو هم داره بدانلودین!
حتی نسخه ای از این نرم افزار برای VS.net 2003 هم وجود داره .
واقعا احمقانه اس اگه فکر کنیم که این نرم افزار رایگانه! فقط تا 30 روز میتونین نسخه آزمایشیشو استفاده کنین.

ترفند های php

.
این ترفندها رو شاید تا حالا دیده باشید ولی برای کاربرانی که میخواهند تازه شروع کنند به یادگیری PHP میتونه خیلی مفید و جذاب باشه. خوب شروع میکنیم.
ترفند ۱ : شمارش کاراکترهای یک رشته
اغلب برنامهنویسان برای این کار از تابع strlen() استفاده میکنند اما یک راه حل راحتتر وجود داره. البته در این روش بایستی تعداد کاراکتری که میخواهید کنترل کنید را داشته باشید.
ترفند ۲ : استفاده از Echo به عنوان یک تابع$string = ‘testing’;if(isset($string[6]))
echo “The string ‘$string’ is at least 7 characters long.”;
else
echo “The string ‘$string’ is less than 7 characters long.”;
?>
همیشه برای اتصال رشتهها در PHP معمول شده است که از نقطه (.) استفاده شود. اما شما در تابع echo میتوانید رشتههایتان را به صورت کاما (,) از هم جدا کنید.
ترفند ۳ : تا جایی که ممکن است از نقل قول تکی (‘) به جای نقل قول دوتایی (“) استفاده کنید$string1 = ‘test-string1′;
$string2 = ‘test-string2′;
$string3 = ‘test-string3′;echo ‘String #1: ‘, $string1, ‘
’;
echo ‘String #2: ‘, $string2, ‘
’;
echo ‘String #3: ‘, $string3, ‘
’;
?>
بوسیلهی استفاده از کاراکتر نقل قول تکی زمان پارس کردن رشتهها توسط PHP را کاهش میدهید. این کار نه تنها برنامههایتان را سریعتر میکند بلکه برای برنامهنویس هم امکان تشخیص سریعتر اینکه در یک رشته از چه متغیرهایی استفاده شده است را فراهم میکند.
همچنین هنگامی که از آرایههای انجمنی (ایندس بوسیلهی رشته) استفاده میکنید همیشه از کاراکترهای نقل قول تکی استفاده کنید. این کار شما به PHP کمک میکند تا دقیقا بداند که منظور شما چه بوده است.
ترفند ۴ : متغیر متغیر در PHP
از این روش زمانی میتوانید استفاده کنید که اسم متغیرهای شما بایستی تغییر کنند ولی دیگر نیاز ندارید که همهی متغیرهای قبلی استفاده شده را هم تغییر بدهید. بلکه متغیری از نوع متغیر ایجاد کرده و به آن اشاره میکند ( شبیه اشارهگر عمل میکند )
$var1 = ‘nameOfVariable’;خروجی این برنامه همان رشتهای است که در متغیر nameOfVariable قرار گرفته است.
$nameOfVariable = ‘This is the value I want!!!’;
echo $$var1;
?>
ترفند ۵ : استفاده از آرایه در فیلدهای فرمها
نه تنها میتوانید فیلدها را به صورت آرایه در PHP بگیرید بلکه میتوانید به صورت مستقیم نیز در همان فرم به آنها را به صورت آرایه تعریف کنید. این کار برای عناصری مانند checkbox ها در فرم ها مفید است که کاربر میتواند بیش از یک گزینه را انتخاب کند.
هنگامی که این فرم به یک صفحهی PHP پست میشود میتوانید تمامی مقادیر checkbox ها را در یک آرایهی hobbies داشته باشید.
ترفند ۶ : بافر کردن خروجی در PHP
خیلی پیش میآید که خروجی که میخواهید نمایش دهید دقیقا آن جایی نیست که میخواهید نمایش دهید. البته در اغلب کتابهای پیشرفتهی PHP این مورد به عنوان یک مطلب مهم مورد پوشش قرار گرفته. ولی برای کاربرانی که تازه آشنا میشوند بگم که این مورد به خصوص برای زمانی که برنامهی شما میخواهد با Cookie ها یا Session ها کار کند ، نباید قبل از ارسال سرآیند http هیچگونه خروجی به مرورگر ارسال شود. بوسیلهی این ترفند میتوانید هرجا که خواستید echo بزنید ولی فقط زمانی که شما بخواهید نمایش داده شود :
قبل از بافر کردن بایستی ob_start را فراخوانی کرده و سپس در انتها با تابع ob_get_contents() خروجی که ارسال کردهاید را بگیرید و بافر کردن را با ob_end_clean() پایان بدهید و سپس هرجا که خواستید متغیر ذخیره شده را به خروجی ببرید.ob_start();echo ‘Print to the screen!!!’;
$getContent = ob_get_contents();
ob_end_clean();// Do whatever you want…
// Do something with the printed content (only if you want)…echo ‘Now: ‘ . $getContent;?>
آموزش Vb.net (بخش سوم)
برای تعريف يک متغير در ويژوال بيسيک دات نت از عبارت Dim استفاده می شود. برای مثال چمله زير يک متغير جديد به نام myVar تعريف می کند:
Dim myVar
هنگامی که يک متغير مانند فوق بدون در نظر گرفتن نوع آن تعريف شود، آن متغير بعنوان يک شئ (Object) در نظر گرفته می شود. يک متغير از نوع شئ در دات نت می تواند شامل انواع داده از قبيل رشته، عدد يا انواع پيچيده تر مانند کلاس باشد.
اغلب نيازی نيست که از متغيرهای از نوع شئ در برنامه استفاده شود چرا که اين متغيرها باعث کاهش کارآيی و سرعت برنامه می شود. هنگامی که از يک متغير از نوع شئ استفاده شود، نوع مناسب آن متغير در زمان اجرا تشخيص داده می شود و اين باعث کندی می شود. بنابراين بهتر است که نوع داده را از ابتدا مشخص کنيم.
جهت مشخص نمودن نوع داده از کلمه کليدی As استفاده می کنيم. بعنوان مثال يک متغير از نوع رشته بصورت زير تعريف می شود:
Dim myVar As String
مجموعه دات نت انواع داده ای زير را پشتيبانی می کند:
• Boolean: جهت مقادير درست يا نادرست
• Byte: جهت مقادير صحيح صفر تا ۲۵۵ (تنها مقادير مثبت)
• Char: جهت مقادير نويسه ها يا حروف يونيکد
• Date: جهت مقادير تاريخ و زمان بين اول ژانويه ۰۰۰۱ و ۳۱ دسامبر ۹۹۹۹
• Decimal: جهت مقادير صحيح بين صفر و مثبت و منفی ۷۹,۲۲۸,۱۶۲,۵۱۴,۲۶۴,۳۳۷,۵۹۳,۵� �۳,۹۵۰,۳۳۵ (۱۶ بايت)
• Double: جهت مقادير اعشاری با دقت مضاعف
• Integre: جهت مقادير صحيح بين +۲,۱۴۷,۴۸۳,۶۴۷ و -۲,۱۴۷,۴۸۳,۶۴۸ (۴ بايت)
• Long: جهت مقادير صحيح بين -۹,۲۲۳,۳۷۲,۰۳۶,۸۵۴,۷۷۵,۸۰۸ و +۹,۲۲۳,۳۷۲,۰۳۶,۸۵۴,۷۷۵,۸۰۷ (۸ بايت)
• Short: جهت مقادير صحيح بين -۳۲,۷۶۸ و +۳۲,۷۶۷ (۲ بايت)
• Single: جهت مقادير اعشاری با دقت واحد
• String: جهت مقادير رشته ای با تعداد حروف صفر تا دو ميليارد حرف
پر کاربردترين انواع داده ای عبارتند از Integer، Decimal، Date، Boolean و String.
دقت کنيد که نوع داده ای Currency يا Money برای مقادير پولی در نظر گرفته نشده است و شما می توانيد برای مقادير پولی از نوع Decimal استفاده کنيد.





