تبلیغات
گروه نرم افزاری باران - مطالب آموزشی


استفاده از کلاس های Entity Framework CodeFirst در WCF

استفاده از کلاس های Entity Framework CodeFirst در WCF

مایکروسافت در نسخه Entity Framework 4.1 برای اولین بار کلاس DbContext را معرفی نمود که شیوه نوینی جهت برنامه نویسی برای پایگاه داده بوده و با نام CodeFirst شناخته می شود. این شیوه برنامه نویسی بسیار مورد استقبال برنامه نویسان گرفت و در نسخه های بعدی امکانات جالب فراوانی به آن اضافه شد و هم اکنون نیز در حال توسعه و بهینه سازی می باشد.

یکی از مشکلات کار با ابزار های ORM این است که کلاس های تولید شده معمولا از کلاس های پایه ای به ارث رفته اند و این موضوع باعث می شود که این کلاس ها به سادگی قابل انتقال از سمت سرویس به کلاینت نباشند و هزینه سریالایز (Serialize) و دی سریالایز (Deserialize) نمودن این کلاس ها نیز بسیار بالا است.

به همین دلیل این موضوع همواره مورد علاقه برنامه نویسان بوده است که بتوانند از کلاس های پایه خود (POCO) و بدون هیچ سربار اضافی به جای کلاس های پیشفرض تولید شده توسط Entity Framework استفاده نمایند.

با استفاده از روش CodeFirst براحتی می توان این قابلیت را ایجاد نمود. برای درک بهتر مسئله، به مثال زیر توجه کنید:

فرض کنید که دو کلاس به نام های Customer و Address داریم و به ازای این دو کلاس، دو جدول در پایگاه داده با همین نام ها وجود دارد. رابطه بین جدول Customer با جدول Address از نوع "یک به چند" می باشد یعنی هر مشتری می تواند چندین آدرس داشته باشد.

کلاس های مربوط به این جداول در روش CodeFirst مشابه قطعه کد زیر می باشند:

public partial class CustomerDBEntities : DbContext


{
public DbSet<Address> Addresses { get; set; }
public DbSet<Customer> Customers { get; set; }
}

public class Customer


{
public Customer()
{
this.Addresses = new HashSet<Address>();

}
public int CustomerId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public ICollection<Address> Addresses { get; set; }

}

public class Address


{
public int AddressId { get; set; }
public int CustomerId { get; set; }
public string Street { get; set; }
public string Alley { get; set; }
public int No { get; set; }
public Customer Customer { get; set; }
}

همانطور که در مثال بالا مشاهده می فرمایید، کلاس های Customer و Address از هیچ کلاس دیگری به ارث نرفته اند و دارای ویژگی های اضافه دیگری نیز نیستند و کاملا مناسب برای منظور ما یعنی استفاده در سرویس های WCF می باشند.

در ورش بالا چند محدودیت برای برنامه نویس ایجاد می شود، از جمله اینکه چون موجودیت ها از کلاس های پایه Entity Framework به ارث نرفته اند، پس قابلیت های Lazy Loading و Change Traking از کار افتاده اند و دیگر قابل استفاده نمی باشند.

برای اینکه قابلیت Lazy Loading را برای کلاس ها فراهم کنیم کافیست که خصوصیاتی ناوبری (Navigation Properties) را به شکل virtual در آوریم. لازم به ذکر است که خصوصیاتی ناوبری، همان خصوصیاتی می باشند که نمایانگر ارتباط بین کلاس ها (و احتمالا جداول پایگاه داده) می باشند. در مثال ما هر مشتری می تواند چندین آدرس داشته باشد و هر آدرس حتما مربوط به یک مشتری می باشد. بنابراین خصوصیت Addresses در کلاس Customer و خصوصیت Customer در کلاس Address نمایانگر این رابطه بوده و خصوصیاتی ناوبری می باشند.

تغییرات ما برای کلاس های Customer و Address به شکل زیر اعمال شده است.

public class Customer


{ public Customer()
{
this.Addresses = new HashSet<Address>();
}
public int CustomerId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public Vritual ICollection<Address> Addresses { get; set; }

}

public class Address


{
public int AddressId { get; set; }
public int CustomerId { get; set; }
public string Street { get; set; }
public string Alley { get; set; }
public int No { get; set; }
public virtual Customer Customer { get; set; }
}

شاید این سوال در ذهنتان بوجود آمده باشد که چگونه فقط با اضافه نموده کلمه کلیدی virtual این قابلیت Lazy Loading به کلاس های ما اضافه می شود؟!

با virtual نمودن خصوصیات ناوبری، Entity Framework هنگام اجرای برنامه (RunTime) کلاس هایی با عنوان "پروکسی های پویا" یا همان Dynamic Proxies به کلاس های Address و Customer اضافه می کند و بنابراین قابلیت Lazy Loading برای این کلاس ها در زمان اجرای برنامه فراهم می گردد.

تا اینجای کار توانستیم با تغییر کوچکی در کلاس ها قابلیت Lazy Loading را فراهم کنیم ولی با اضافه شدن پروکسی های پویا به کلاس های ما، مجددا مشکل ابتدای مقاله پدیدار می شوند و این کلاس ها قابلیت انتقال خود از طریق سرویس های WCF را از دست می دهند زیرا پروکسی های پویا به طور پیش فرض قابلیت سریالایز و دیسریالایز شدن را ندارند!

نکته:
قبل از این که به سراغ راه حل برویم بد نیست به این موضوع نیز اشاره کنیم که در صورتی که تمامی خصوصیات کلاس های خود را virtual کنیم، قابلیت Change Tracking نیز به کلاس های ما اضافه می شود ولی اضافه نمودن این قابلیت بر روی راندمان و کارایی برنامه تاثیر می گذارد.

خوشبختانه با استفاده کلاس DbContext می توانیم تولید کلاس های پروکسی را در زمان اجرای برنامه را فعال یا غیر فعال کنیم. بنابراین تنها کافیست که هر زمان نیاز به استفاده از آن ها در سرویس های WCF داشتیم، این قابلیت را به شکل زیر از کار بیندازیم. در اینصورت قابلیت Lazy Loading و برخی ویژگی های دیگر از کار افتاده و کلاس ها قابلیت استفاده در سرویس های WCF را خواهند داشت.


public Customer GetFirstCustomer()
{ using(var context = new CustomerDBEntities())
{
context.Configuration.ProxyCreationEnabled = false;
var firstCustomer = context.Customers.FirstOrDefault() return firstCustomer;
}
}

در متد بالا ویژگی ProxyCreationEnabled مربوط به کلاس DbContext را غیر فعال نموده ایم و بنابراین پروکسی های داینامیک تولید نخواهند شد و نتیجه کوئری قابل استفاده در سرویس های WCF خواهد بود.




طبقه بندی: برنامه نویسی، نرم افزار، مقالات، آموزشی،
برچسب ها: WCF، Entity Framework، استفاده از کلاس های Entity Framework CodeFirst در WCF، گروه برنامه نویسی باران، مهندس کوچکی، احمد مومنی، انجام پروژه های دانشجویی،

تاریخ : دوشنبه 30 شهریور 1394 | 12:31 قبل از ظهر | نویسنده : مهندس مؤمنی | نظرات


معماری ام وی سی MVC

معماری MODEL – VIEW – CONTROL یا (MVC)

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

  • MODEL : وظیفه کار با پایگاه داده را بر عهده دارد.
  • VIEW : وظیفه ارتباط با کاربر نهایی را بر عهده دارد.
  • Control : وظیفه کنترل View و Model و نحوه ارتباط آن دو را با هم بر عهده دارد.

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

اجازه دهید ببینیم خصوصیات یک نرم افزار خوب چیست ؟
نام بردن تمامی خصوصیات یک نرم افزار خوب در این مقال نمی گنجد اما تعداد محدود و مهمی از آنها عبارتند از:

  • قابل حمل بودن
  • قابل استفاده مجدد بودن
  • قابل تغییر بودن
  • بهینه بودن از لحاط حافظه و زمان (زمان مهمتر از حافظه)

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

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

MVC چیست ؟
MvC مخفف سه کلمه Model View Controller هست . در واقع MVC بر روی معماری های چند لایه ای جهت جداسازی قسمت های مختلف برنامه و به طور دقیق تر جدا کردن بخش ها منطقی برنامه اعم از دیتا ، permission ها ، چک کردن صحت داده ها و .... از لایه Presentation layer یا در واقع همان لایه ای که مستقیما با کاربر نهایی (End user) در ارتباط است ،قرار میگیرد. پس بر اساس توضیحات فوق می توانیم هر یک از بخش های معماری MVC یعنی Model و View و controller را به شکل زیر تعریف کنیم.

1. Model
در واقع بار اصلی معماری MVC بر عهده این بخش است . این بخش می تواند با داده ها در ارتباط باشد .الزاماً منظور از داده حتما ارتباط با پایگاه های داده همچون MSSQL و Access و ... نیست ، حتی منبع داده ها در بخش Model می تواند یک آرایه از اعداد و یا هر چیز دیگری باشد . همچنین Model وظیفه چک کردن داده ها جهت صحت درستی داده ها را هم بر عهده دارد (در این زمینه همکاری بیشتری با بخش Controller دارد) و همینطور وظایف دیگری که در مثال ها ی عملی که در آینده خواهم زد بیشتر آشنا خواهید شد.

2. View
این بخش که در واقع همان بخش Presentation Layer در معماری 3 لایه میباشد وظیفه بر قراری ارتباط با کاربر نهایی و گرفتن داده از کاربر و نمایش داده های اماده با کاربراز طریق برقراری ارتباط با دو بخش دیگر یعنی Model و controller است . در واقع نکته مهمی که در بخش View باید مد نظر داشت این است که این لایه مسئول کنترل صحت داده های وارد شده از طریق کاربر و همچنین مسئول صحت داده های نشان داده شده به کاربر نیست . در واقع این بخش با داده های خام کار میکند . یک مثال ساده خیلی از برنامه نویسان هنگامی که در فرم Login برنامه ،کاربر کلمه عبور خود را وارد میکند ، در همان فرم Login اقدام به چک کردن پسورد مبنی بر صحت آن و ... می کنند . که این عمل در معماری MVC قابل قبول نیست . در واقع برای حل مسئله فوق در معماری MVC در فرم Login هنگامی که کاربر کلمه عبور را وارد کرد و دکمه Login یا ورود را زد ، کلمه عبور داده شده بدون هیچ گونه اعمالی اعم از Encrypt کردن و ... به بخش های دیگر فرستاده میشود و فقط یک نتیجه ساده مبنی بر این که کاربر اجازه ورود دارد یا خیر را از بخش های دیگر دریافت میکند که بر اساس آن اجازه ورود کاربر به برنامه داده میشود .

3. Controller
این بخش همانطور که از اسم آن مشخص است یک بخش کنترل کننده می باشد ، و در واقع واسطی بین دو بخش Model و View میباشد. حال ببینیم روند اجرای برنامه در معماری MVC به چه نحوی خواهد بود . در معماری MVC روند کلی برنامه (جزئیات را در ادامه خواهید دید) به این شکل است که کاربر تقاضای خود را از طریق واسط های برنامه نویسی (نظیر Form ها و User Control ها و .. ) از برنامه (از بخش View)درخواست می کند . بخش View در خواست ها را به بخش Controller فرستاده و این بخش با برقراری ارتباط با بخش Model در خواست های کاربر را پردازش کرده و پس از پایان پردازش زمانی که خروجی درخواست داده شده آماده گردید بخش Controller بخش View را آگاه می سازد تا خود را بر اسا س تغییرات جدید که اصطلاحاً در معماری MVC به آن حال Model می گویند ، به روز سازد . در واقع چیزی که باعث میشود تا بخش Controller به بخش View اطلاع دهد که باید حالت جدید model را دریافت کند و خود را Update کند این است که بخش View باید قبلا خودش را در بخش Model اصطلاحا Register کرده باشد که البته عمل Register کردن توسط بخش Controller انجام میگیرد . نحوه register کردن بخش View به معماری آن محیط و همچنین زبانی که توسط آن برنامه را گسترش میدهید و همچنین قابلیت های آن زبان بستگی دارد.


طبقه بندی: برنامه نویسی، نرم افزار، مقالات، آموزشی،
برچسب ها: معماری ام وی سی، معماری MVC، MVC، انجام پروژه های برنامه نویسی، انجام پروژه های دانشجویی، مهندس کوچکی، گروه برنامه نویسی باران،

تاریخ : دوشنبه 30 شهریور 1394 | 12:23 قبل از ظهر | نویسنده : مهندس مؤمنی | نظرات

همه چیز درباره فایل متنی robots.txt

همه چیز درباره فایل متنی robots.txt

robots.txt فایل روبوت متنی چیست؟

همه چیز درباره robots.txt

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

تنطیمات روبات وب بسیار ساده است. روباتها برای فهرست بندی و ایندکس گذاری به سایت مراجعه می کنند و در هنگام مراجعه به سایت قبل از هر آدرسی مثلا http://YourSite.com/gallery.html فایل http://YourSite.com/robots.txt را می خوانند تا فیلترهای مشخص شده وب سایت را بدانند و بر اساس آن اقدام به فهرست بندی کنند.

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

چگونه یک فایل robots.txt بسازیم؟

ابتدا یک فایل به نام robots.txt در notepad یا هر ویرایشگر ساده دیگری ایجاد نمایید سپس دستورالعملی که به آن نیاز دارید را در فایل قرار دهید و فایل را به سایت منتقل نمایید.

محل فایل روبات کجاست؟

فایل روبات robots.txt در ریشه وب سایت قرار می گیرد که آدرس ریشه معمولا در وب سایتها پوشه www یا public_html می باشد و این همان محلی است که فایل صفحه اصلی یا index در آن قرار داده می شود.

همانطور که در مثال های پایین ملاحظه می کنید در خط اول user-agent روبات را مشخص میکند و کاراکتر ستاره * مشخص میکند که مخاطب دستور همه روباتها بدون مشخص شدن نمونه خاصی است.
خط دوم شامل دو بخش است، Allow که از ترجمه آن پیداست اجازه می دهده به مسیری که در اینجا روت یا ریشه سایت است و با علامت / مشخص شده دسترسی برای اصطلاحا خزنده های وب یا روباتها آزاد باشد:

User-agent: *
Allow: /


مخاطب دستور زیر همه روباتهای وب، دستور: (از هیچ صفحه ای در این سایت بازدید نکن)

User-agent: *
Disallow: /


برای درک بهتر کاربرد این فایل، نمونه هایی برای جلوگیری از نمایش عکس و تصاویر سایت در بخش تصاویر گوگل را مثال می زنیم، که این مثالها به روبات جستجوگر تصایر گوگل می گویند از چه بخشهایی بازدید نکند. مثال زیر در خط اول مخاطب را روبات جستجوگر تصاویر گوگل مشخص نموده و در خط دوم Disallow عدم اجازه به مسیر : /images


User-agent: Googlebot-Image
Disallow: /images


اگر عکس خاصی در پوشه فرضی images مورد نظر باشد به شکل زیر آدرس دهی می شود:

User-agent: Googlebot-Image
Disallow: /images/tasvir1.jpg

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


User-agent: Googlebot-Image
Disallow: /

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


User-agent: Googlebot-Image
Disallow: /*.gif$


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

User-agent: Googlebot
Disallow: /


جلوگیری از نمایش فایل اکسل در گوگل:

User-agent: Googlebot
Disallow: /*.xls$



در صورت عدم دسترسی به ساخت فایل robots.txt یا آپلود آیا می توانم از فیلتر دسترسی روباتها استفاده کنم؟

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


<meta name="googlebot" content="noindex">



دانلود یا مشاهده نمونه فایل robots.txt:

http://day.ir/robots.txt

لیست روباتهای وب Web Robots List:

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


ABCdatos BotLink
Acme.Spider
Ahoy! The Homepage Finder
Alkaline
Anthill
Walhello appie
Arachnophilia
Arale
Araneo
AraybOt
ArchitextSpider
Aretha
ARIADNE
arks
AskJeeves
ASpider (Associative Spider)
ATN Worldwide
Atomz.com Search Robot
AURESYS
BackRub
Bay Spider
Big Brother
Bjaaland
BlackWidow
Die Blinde Kuh
Bloodhound
Borg-Bot
BoxSeaBot
bright.net caching robot
BSpider
CACTVS Chemistry Spider
Calif
Cassandra
Digimarc Marcspider/CGI
Checkbot
ChristCrawler.com
churl
cIeNcIaFiCcIoN.nEt
CMC/0.01
Collective
Combine System
Conceptbot
ConfuzzledBot
CoolBot
Web Core / Roots
XYLEME Robot
Internet Cruiser Robot
Cusco
CyberSpyder Link Test
CydralSpider
Desert Realm Spider
DeWeb(c) Katalog/Index
DienstSpider
Digger
Digital Integrity Robot
Direct Hit Grabber
DNAbot
DownLoad Express
DragonBot
DWCP (Dridus' Web Cataloging Project)
e-collector
EbiNess
EIT Link Verifier Robot
ELFINBOT
Emacs-w3 Search Engine
ananzi
esculapio
Esther
Evliya Celebi
FastCrawler
Fluid Dynamics Search Engine robot
Felix IDE
Wild Ferret Web Hopper #1, #2, #3
FetchRover
fido
Hämähäkki
KIT-Fireball
Fish search
Fouineur
Robot Francoroute
Freecrawl
FunnelWeb
gammaSpider, FocusedCrawler
gazz
GCreep
GetBot
GetURL
Golem
Googlebot
Grapnel/0.01 Experiment
Griffon
Gromit
Northern Light Gulliver
Gulper Bot
HamBot
Harvest
havIndex
HI (HTML Index) Search
Hometown Spider Pro
ht://Dig
HTMLgobble
Hyper-Decontextualizer
iajaBot
IBM_Planetwide
Popular Iconoclast
Ingrid
Imagelock
IncyWincy
Informant
InfoSeek Robot 1.0
Infoseek Sidewinder
InfoSpiders
Inspector Web
IntelliAgent
I, Robot
Iron33
JavaBee
JBot Java Web Robot
JCrawler
Jeeves
JoBo Java Web Robot
Jobot
JoeBot
The Jubii Indexing Robot
JumpStation
image.kapsi.net
Katipo
KDD-Explorer
Kilroy
KO_Yappo_Robot
LabelGrabber
larbin
legs
Link Validator
LinkScan
LinkWalker
Lockon
logo.gif Crawler
Lycos
Mac WWWWorm
Magpie
marvin/infoseek
Mattie
MediaFox
MerzScope
NEC-MeshExplorer
MindCrawler
mnoGoSearch search engine software
moget
MOMspider
Monster
Motor
MSNBot
Muncher
Muninn
Muscat Ferret
Mwd.Search
Internet Shinchakubin
NDSpider
Nederland.zoek
NetCarta WebMap Engine
NetMechanic
NetScoop
newscan-online
NHSE Web Forager
Nomad
The NorthStar Robot
nzexplorer
ObjectsSearch
Occam
HKU WWW Octopus
OntoSpider
Openfind data gatherer
Orb Search
Pack Rat
PageBoy
ParaSite
Patric
pegasus
The Peregrinator
PerlCrawler 1.0
Phantom
PhpDig
PiltdownMan
Pimptrain.com's robot
Pioneer
html_analyzer
Portal Juice Spider
PGP Key Agent
PlumtreeWebAccessor
Poppi
PortalB Spider
psbot
GetterroboPlus Puu
The Python Robot
Raven Search
RBSE Spider
Resume Robot
RoadHouse Crawling System
RixBot
Road Runner: The ImageScape Robot
Robbie the Robot
ComputingSite Robi/1.0
RoboCrawl Spider
RoboFox
Robozilla
Roverbot
RuLeS
SafetyNet Robot
Scooter
Sleek
Search.Aus-AU.COM
SearchProcess
Senrigan
SG-Scout
ShagSeeker
Shai'Hulud
Sift
Simmany Robot Ver1.0
Site Valet
Open Text Index Robot
SiteTech-Rover
Skymob.com
SLCraw ler
Inktomi Slurp
Smart Spider
Snooper
Solbot
Spanner
Speedy Spider
spider_monkey
SpiderBot
Spiderline Crawler
SpiderMan
SpiderView(tm)
Spry Wizard Robot
Site Searcher
Suke
suntek search engine
Sven
Sygol
TACH Black Widow
Tarantula
tarspider
Tcl W3 Robot
TechBOT
Templeton
TeomaTechnologies
TITAN
TitIn
The TkWWW Robot
TLSpider
UCSD Crawl
UdmSearch
UptimeBot
URL Check
URL Spider Pro
Valkyrie
Verticrawl
Victoria
vision-search
void-bot
Voyager
VWbot
The NWI Robot
W3M2
WallPaper (alias crawlpaper)
the World Wide Web Wanderer
w@pSpider by wap4.com
WebBandit Web Spider
WebCatcher
WebCopy
webfetcher
The Webfoot Robot
Webinator
weblayers
WebLinker
WebMirror
The Web Moose
WebQuest
Digimarc MarcSpider
WebReaper
webs
Websnarf
WebSpider
WebVac
webwalk
WebWalker
WebWatch
Wget
whatUseek Winona
WhoWhere Robot
Wired Digital
Weblog Monitor
w3mir
WebStolperer
The Web Wombat
The World Wide Web Worm
WWWC Ver 0.2.5
WebZinger
XGET




طبقه بندی: برنامه نویسی، مقالات، آموزشی،
برچسب ها: روبوت متنی چیست؟، ربات متنی، گروه برنامه نویسی باران، انجام پروژه های دانشجویی، انجام پروژه های برنامه نویسی، مهندس مومنی، مهندس کوچکی،

تاریخ : دوشنبه 30 شهریور 1394 | 12:20 قبل از ظهر | نویسنده : مهندس مؤمنی | نظرات


بررسی متا تگهای مهم و موثر در سئو

بررسی متا تگهای مهم و موثر در سئو HTML Meta Tags



متا تگها نوعی متا دیتا هستند.

Meta Data متا دیتا چیست؟
متا دیتا به اطلاعاتی که در توصیف اطلاعات دیگر مورد استفاده قرار می گیرد گفته می شود.

تگهای متا کدها یا اصطلاحا تگهای زبان HTML هستند.
متا تگها Meta Tags یکی از کلیدی ترین و مهمترین ابزارهای سئو و بهینه سازی وب سایت برای موتورهای جستجو هستند.

انواع مختلفی از متا تگها وجود دارد و هر کدام بنا به مورد استفاده ممکن است برای وب مستر اهمیت داشته باشد.
در هر صفحه وب با هر فرمتی مثل php ,htm ,html ,ASP ,aspx ... از این تگهای HTML استفاده می شود.

محل قرار گرفتن تگهای HTML درون <head> است زیرا اطلاعات صفحه جاری طبق استاندارد W3C در این بخش قرار می گیرند و فرمت آن به این شکل:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html id="html" xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta name="keywords" content="سئو چیست ؟, Search Engine Optimization" />
<meta name="description" content="آشنایی با سئو و بهینه سازی صفحات وب سایت" />
<title>سئو چیست؟</title>
</head>
<body>
</body>
</html>


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

از مهمترین متا تگها در سئو موارد زیر را می توان نام برد:

عنوان Title
<title> عنوان صفحه</title>

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

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


نکات مهم برای انتخاب عنوان title صفحه در سئو سایت :


  • از کلمات مبهم مثل "Home" در صفحه اصلی اجتناب کنید، یا در صفحات داخلی عنوان عمومی و مبهم انتخاب نکنید به طور مثال برای صفحه در باره ما از عنوان about us استفاده نکنید بلکه با یک توصیف اختصاری نام شرکت را به کار ببرید مثلا درباره شرکت دی یا تاریخچه شرکت دی.


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

  • عدم استفاده از کلمات مشابه یا تکرار کلمات کلیدی در عنوان به طور مثال: fast food یا fastfood و fastfoods اگر هر 3 استفاده شود نه تنها کمکی نمی کند بلکه می تواند به عنوان اسپم امتیاز منفی برای صفحه منظور می شود.


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


  • از یک عنوان برای چند صفحه استفاده نکنید.


  • مطمئن شوید همه صفحات دارای عنوان هستند.اگر شما از آن دسته مدیران وبی هستید که تعداد صفحات وب زیادی در سایت دارید و نمی دانید برای کدام عنوان ندارید می توانید به سادگی با مراجعه به وب مستر تولز گوگل بخش HTML suggestions موارد بدون عنوان را مشاهده کنید.


  • دقت داشته باشید اجازه دسترسی به روباتهای جستجوگر داده شده باشد.


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

همانطور که گفته شد عنوان باید خلاصه و کوتاه باشد ولی حداکثر طول مجاز آن 150 کاراکتر می باشد، استاندارد W3C حداکثر آن را 65 کاراکتر اعلام نموده و گوگل بیشتر از 66 کاراکتر را نمایش نمی دهد.



2- تگ کلمات کلیدی meta keywords

<META name="keywords" lang="en-us" content="vacation, Greece, sunshine">
<-- For speakers of British English -->
<META name="keywords" lang="en" content="holiday, Greece, sunshine">
<-- For speakers of French -->
<META name="keywords" lang="fr" content="vacances, Gr&egrave;ce, soleil">

خبر خوب اینکه این تگ، کلمات کلیدی مهم مورد نظر مدیر سایت را برای موتور جستجو مشخص می کند.

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

تگ متا کیورد meta keyword که مشخص کننده کلمات کلیدی است نمایانگر کلمات شاخصی است که در یک صفحه استفاده شده و مرتبط با مطالب صفحه است، این تگ هنوز در برخی موتورهای قدیمی مورد استفاده قرار می گیرد و موتور جستجو با برسی آن محتوا را در اولویت قرار می دهد.

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

کوتاه بودن و کمتر بودن تعداد کلمات مهم است و زیاد بودن آن از دید گوگل خطای بزرگی است.

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

3- تگ توصیف محتوا Meta Description

<meta name="description" content="توصیف کوتاه درباره محتوای صفحه وب سایت" />


تگ "دسکریپشن" یا توصیف محتوای صفحه، در سئو تگ مهمی است.

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

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

نکات مهم در استفاده از تگ Meta Description:

  • مطمئن شوید صفحات وب سایت شما دارای توصیف و meta description هستند برای اطمینان از ابزار های گوگل مثل HTML suggestions در Web Master tools استفاده کنید.

  • از توصیفات مشابه در صفحات مختلف خودداری کنید و تا حد امکان برای هر صفحه یک توصیف جدا ایجاد نمایید.


  • استفاده از برچسبهای دقیق و مناسب.

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

    <meta name="Description" content="

    عنوان: کتاب آموزش برنامه نویسی ویژوال بیسیک,مترجم: مهندس پاشایی,

    تعداد صفحه: 1250, قیمت: 25 هزار تومان

    ">


متا تگهای مربوط به رباط های جستجوگر وب:

با استفاده از این تگ و مشخص نمودن موتور جستجوی مورد نظر به ربات جستجوگر اعلام میکنیم در خصوص صفحه مورد نظر چه رفتاری داشته باشد، راه کامل تر آن استفاده از فایل robots.txt است که در مقاله دیگری توضیح داده شده.
در این تگ meta name="robots" کلمه robots برای مشخص نمودن تمام موتورهای جستجو استفاده می شود و اگر قصد تعیین موتور خاصی مثل گوگل را داشته باشیم به این شکل :meta name="googlebot استفاده می کنیم.

<meta name="robots" content="nofollow" />

<meta name="googlebot" content="noarchive" />


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


noindex: این تگ جهت جلوگیری از ایندکس گذاری یا قرار گرفتن صفحه در فهرست موتورهای جستجو و جهت عدم نمایش صفحه در نتیجه جستجو استفاده می شود.


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


تفاوت noindex و nofollow چیست؟
اگر به کارکرد هرکدام بیشتر دقت کنیم تفاوت این دو تگ کاملا مشخص می شود در nofollow جلوی لینکها گرفته می شود ولی در noindex به موتور جستجو گفته شده این صفحه را نمایش نده.


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




noodp: با استفاده از این تگ به موتور جستجوی گوگل گفته میشود اگر وب سایت دارای توضیح و عنوان در وب دایرکتوری گوگل است آن را نادیده بگیرد و از عنوان همان صفحه استفاده کند.


noydir: با استفاده از این تگ به موتور جستجو گفته میشود اگر وب سایت دارای توضیح و عنوان در وب دایرکتوری یاهو است آن را نادیده بگیرد و از عنوان همان صفحه استفاده کند.


<meta name="google" content="notranslate" /> عدم نمایش گزینه ترجمه این صفحه در نتیجه جستجو



<meta http-equiv="content-type" content="text/html; charset=utf-8" /> مشخص نمودن نوع محتوا و کدینگ صفحه


تگهای اچ h1 h2 h3 h4 h5 تا h6 در سئو اهمیت دارند ولی باید دقت شود از تگ h1 بیش از یکبار در هر صفحه استفاده نشود.
برای حفظ زیبایی صفحات در تگ h1 می توانید از css استفاده نمایید، نمونه تگ h1 tag بهینه شده با css style

<h1><span style="font-size: 16px; color: #4f81bd;"> HTML Meta Tags</span></h1>


تگهای دیگری نیز در سئو وجود دارند که به دلیل عدم کارایی در داخل کشور به توضیح آنها نمی پردازم، از جمله:
twitter , twitter:site, fb:admins, og:url, og:site_name و ....



طبقه بندی: برنامه نویسی، مقالات، آموزشی،
برچسب ها: متا تگهای مهم در سئو، سئو، متا تگهای موثر در سئو، بررسی متا تگهای مهم و موثر در سئو، گروه برنامه نویسی باران، مهندس کوچکی، مهندس احمد مومنی،

تاریخ : شنبه 28 شهریور 1394 | 03:13 قبل از ظهر | نویسنده : مهندس مؤمنی | نظرات


سئو چیست؟ SEO

What is SEO

سئو چیست؟

SEO مخفف Search Engine Optimization است و همانطور که از ترجمه آن پیداست سئو به معنی بهینه سازی برای موتورهای جستجو است.


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

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


نکته مهمی که در خدمات رایگان موتور جستجو نهفته است میلیون ها دلار درآمدی است که در ازای پاسخ به جستجوی شما برای گوگل کسب می شود در هر بار جستجو که کلمه به کلمه آن توسط نرم افزارها و مهندسان با تجربه، تجزیه و تحلیل می شود نتیجه ای شامل میلیونها وب سایت یافت می شود!


کافیست برای نمونه کلمه Camera را جستجو نمایید:
نتیجه جستجو : About 1,800,000,000 results رقم یک میلیارد و هشتصد میلیون نتیجه شاید باورنکردنی باشد و تعداد صفحات یافت شده به نظر بیش از تعداد دوربینهای تولید شده می باشد. جالب است بدانید این تنها صفحاتی است که موتور جستجو آنها را پیدا کرده و میلیونها صفحه دیگر وجود دارد که به دلیل عدم رعایت اصول اولیه طراحی و سئو یا خواست مدیران سایت در موتورهای جستجو قابل نمایش نیستند. لازم به ذکر است دیده شدن در موتور جستجو و دیده شدن در بالاترین نتیجه جستجو 2 مبحث متفاوت ولی مهم در سئو هستند.

SearchEngine


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

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





پس چگونه باید در ردیف های بالا و اولیه جستجو دیده شویم؟

پاسخ: با کمک ابزارها و ترفندهای SEO

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


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




طبقه بندی: فناوری و تکنولوژی، برنامه نویسی، مقالات، آموزشی،
برچسب ها: سئو چیست؟، سئو، پیج رنک، What is SEO، گروه برنامه نویسی باران، انجام پروژه های برنامه نویسی، انجام پروژه های دانشجویی،

تاریخ : شنبه 28 شهریور 1394 | 03:05 قبل از ظهر | نویسنده : مهندس مؤمنی | نظرات


روش نصب تولبار یا نوار ابزار الکسا Alexa Toolbar


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

برای دانلود نوار ابزار الکسا چند نمونه کاربردی آن ایجاد شده:

نوار ابزار با خبر خوان سایتهای فارسی:


Get our toolbar!

نوار ابزار ساده با لینک Gmail و ایمیل یاهو:

Get our toolbar!


طبقه بندی: فناوری و تکنولوژی، نرم افزار، مقالات، آموزشی،
برچسب ها: روش نصب نوار ابزار الکسا، Alexa Toolbar، روش نصب تولبار الکسا، مهندس کوچکی، گروه برنامه نویسی باران، احمد مومنی، انجام پروژه های دانشجویی،

تاریخ : شنبه 28 شهریور 1394 | 02:59 قبل از ظهر | نویسنده : مهندس مؤمنی | نظرات
Alexa

Alexa الکسا چیست و چگونه کار میکند؟


الکسا یک وب سایت آنالایز کننده ترافیک وب سایت ها است و وب سایتها را بر اساس تعداد بازدید کاربران رتبه بندی می کند.

الکسا در سال 1996 توسط 2 نفر به نامهای Brewster Kahle و Bruce Gilliat پایه گذاری شد.
نام الکسا الهام گرفته از Royal Library of Alexandria بزرگترین کتابخانه مصر باستان قبل از میلاد یا کتابخانه سلطنتی اسکندریه است.
در سال 1999 الکسا توسط شرکت آمازون به مبلغ 250 میلیون دلار خریداری شد و بعد از آن همکاریهایی با گوگل، مایکروسافت، پروژه دایرکتوری بازDMOZ و ... داشته.

الکسا چگونه کار میکند؟


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


"Alexa computes traffic rankings by analyzing the Web usage of millions of Alexa Toolbar users and data obtained from other, diverse traffic data sources"

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



رتبه ترافیکی الکسا چیست؟


رتبه الکسا یا جایگاه در لیست الکسا بر اساس مجموع بازدیدهای 3 ماه گذشته از یک وب سایت توسط میلیونها کاربری که تولبار یا نوار ابزار الکسا را در مرورگر خود نصب کرده اند می باشد، به نحوی که کاربری که نوار ابزار را نصب کرده به هر صفحه ای که سر می زند یک مورد بازدید برای آن صفحه از آن سایت ثبت می شود و با توجه به نوع ورود به صفحه، اینکه از جایی لینک شده یا مستقیم وارد شده و ... این اطلاعات در الکسا ذخیره می شوند.
در اولین گام الکسا یک میزان Reach ریچ و دوم تعداد بازدید از هر صفحه وب در طول روز را محاسبه می کند و اصل رتبه بندی الکسا بر اساس همین 2 مورد است.


Reach در الکسا ریچ چیست؟



Reach ریچ میزانی برای اندازه گیری درصد بازدید کل کاربران اینترنت در جهان است.
در مثال بالا ریچ کاربران سایت یاهو در یک هفته اخیر کمتر از 20 درصد و در یکماه گذشته بیش از بیست درصد بوده است. و یعنی در ماه گذشته بیش از 20 درصد از کاربران کل اینترنت از سایت یاهو بازدید داشته اند.

pageviews یا بازدید از صفحات در الکسا چیست؟


الکسا تعداد صفحات بازدید شده توسط بازدید کنندگان سایت را pageviews در نظر می گیرد.
نکته:چندین بازدید از یک صفحه توسط یک کاربر در طول روز فقط یک بازدید محاسبه خواهد شد.
در مثال تصویر پایین تعداد میانگین بازدید صفحات در 3 ماه گذشته حدود 6.8 بوده است:


PageViews/User میانگین بازدیدهای منحصر به فرد هر کاربر در طول روز است و در مثال پایین تعداد صفحات بازدید شده هر کاربر حدود 15.6 است:


تفاوت سایت و وب هاست از دید الکسا چیست؟

از نظر الکسا دامین اصلی سایت است و زیر دامنه ها نیز جزوی از وب هاست هستند، برای مثال www.Day.ir و Support.Day.ir و portal.day.ir هر 3 وب هاستهای سایت day.ir هستند.
حتی وب سایتهایی که از نظر نام دامنه با هم متفاوت هستند ولی محتوای یکسانی دارند از نظر الکسا یک وب هاست محسوب می شوند.
این مورد یک استثنا هم دارد و آن وبلاگها و همینطور صفحات شخصی است که در صورت تایید هویت صفحات آن برای الکسا هر کدام از زیر دامنه ها را یک وب سایت در نظر می گیرد، همانطور که می دانیم در اکثر وبلاگها آدرس دهی به شکل زیر دامنه ای از سرویس دهنده وبلاگ است.


رتبه روزانه ترافیک Daily Traffic Rank

نمایانگر اطلاعات بازدید صفحات وب سایت در یک روز است:


آیا می توان الکسا را فریب داد؟

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

نام روبات وب یا خزنده وب الکسا چیست؟

در صورتی که به هر دلیل قصد جلوگیری از دسترسی روبات الکسا به وب سایت خود را دارید کافیست نام آن را در فایل روبوتهای خود قرار دهید:
ia_archiver نام روبات الکسا است، لطفا جهت اطلاع از تنظیمات robots به مقاله روباتهای وب رجوع فرمایید.

Bounce Rate بانس ریت در الکسا چیست؟


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



آیا نصب نوار ابزار الکسا واقعا در افزایش رتبه تاثیر دارد؟

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


تولبار الکسا را از کجا دانلود کنم؟

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



طبقه بندی: برنامه نویسی، آموزشی، مقالات،
برچسب ها: الکسا چیست، Alexa، what is Alexa، گروه برنامه نویسی باران، مهندس احمد مؤمنی، مهندس کوچکی، انجام پروژه های برنامه نویسی،

تاریخ : شنبه 28 شهریور 1394 | 02:56 قبل از ظهر | نویسنده : مهندس مؤمنی | نظرات
با رعایت نکات زیر امنیت خود در دنیای مجازی را افزایش دهید:


Choose Username / انتخاب نام کاربری

انتخاب نام کاربری اهمیت چندانی در امنیت ندارد ولی استفاده از نام های عامی مثل admin ,test ,root, user و امثال اینها امکان شکستن رمز عبور را برای نرم افزارهایی که به همین منظور ساخته شده اند بیشتر می کند و برعکس این موضوع استفاده از نام های کاربری پیچیده امکان فراموش کردن آن را افزایش می دهد.

Choose Bad Password / انتخاب رمز عبور نامناسب

لطفاً! لطفاً ! لطفاً!، از کلمات و حروف ساده به عنوان رمز عبور ایمیل ، اف تی پی ، بانک اطلاعاتی و یا هر بخش دیگری استفاده نفرمایید.
*استفاده از رمز عبور ساده مثل استفاده از نام کاربری و یا اعداد 123 و یا 123456 , test و امثال این دنیای مجازی شما را صد در صد به خطر می اندازد و اگر فکر می کنید شخصی فرصت امتحان کردن این موارد را ندارد در اشتباه هستید. نرم افزار های Brute Force که تعدادشان بسیار زیاد است به همین منظور ساخته می شوند و به راحتی و در کمترین زمان رمز های اینچنینی را می شکنند و علاوه بر نفوذ به وب سایت سرویس دهنده را نیز مورد تهدید قرار می دهند.
* استفاده ازنامهای قابل حدس زدن مثل حیوان خانگی، شماره تلفن هراه یا ثابت اسامی فرزندان و نزدیکان و امثال آن به هیچ عنوان توصیه نمیشود.

Best Password / بهترین رمز عبور از نظر کارشناسان امنیتی

رمز عبور حداقل باید بین 8 تا 12 کارکتر باشد و استفاده ترکیبی از اعداد و حروف و کارکتر های ویژه در آن توصیه می شود در صورتی که قصد استفاده از رمز عبور مناسب دارید و می خواهید یاد آوری آن ساده باشد می توانید از روش استفاده از حروف اول در جملات استفاده کنید به عنوان مثال آدرس منزل یا محل کار برای به خاطر سپردن مناسب است پس به این صورت عمل می کنیم:
No31,Mansour,Motahari,Valieasr,Tehran,IRAN
N31MmVTI حروف انتخاب شده حرف اول کلمات در آدرس بالا می باشد و از ترکیب اعدا و حروف نیز استفاده شده، که یادآوری آن به نسبت ساده تر است و امنیت آن نیز بالاتر. برای افزایش امنیت همین مورد، ترکیب حروف کوچک و یا بزرگ نیز می تواند موثر باشد.


Save Password / نگه داری کلمات عبور

*کلمات عبور و رمز های خود را هیچ گاه در ایمیل باکس هایی چون Yahoo و Gmail نگه داری نکنید.
*در صورتی که نام های کاربری مختلفی را در موارد مختلف استفاده میکنید هیچ گاه رمز عبور آن ها را یکی قرار ندهید به عنوان مثال از رمز ایمیل خود برای اف تی پی اکانت دیگر استفاده نفرمایید
* همچنین استفاده از دفتر تلفن یا کاغذ یادداشت برای نگهداری رمز و کلمات عبور توصیه نمی شود.
*در صورتیکه از تعداد زیادی رمز استفاده میکنید نرم افزارهایی برای نگهداری و مدیریت رمز وجود دارد ولی توجه داشته باشد که تنظیم صحیح آنها و استفاده از قفل های چند لایه مثل کلید رمز در usb برای این نرم افزارها ضروری است زیر استفاده از چنین نرم افزارهایی مثل صندوقی است که همه دارایی خود را در آن قرار داده اید.



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

تاریخ : شنبه 3 مرداد 1394 | 11:50 بعد از ظهر | نویسنده : مهندس مؤمنی | نظرات

حذف ایمیل و اکانت Gmail


به منظور حذف کامل ایمیل و اکانت Gmail خود مراحل زیر را انجام دهید:
وارد صفحه Gmail شوید.
1. نام کاربری اکانت مورد نظر را وارد نمایید.
2. رمز عبور اکانت مورد نظر را وارد نمایید.
سپس وارد اکانت Gmail مورد نظر خود شوید.

پاک کردن ایمیل

3. برای ورود به بخش تنظیمات (تصویر چرخ دنده) را مطابق تصویر انتخاب نمایید.
4. گزینه Settings را انتخاب نمایید.

حذف اکانت جیمیل

5. گزینه Other Google Account Settings را انتخاب نمایید.

حذف اکانت ایمیل

6. گزینه Close account and delete all services and information associated with it را انتخاب نمایید.

حذف ایمیل

7. تیک مربوط به گزینه Gmail را انتخاب نمایید.
8. رمز عبور را به منزله تایید درخواست وارد نمایید.
9. تیک مربوط به گزینه Yes , I want to delete my account را انتخاب نمایید.
10. گزینه DELETE GOOGLE ACCOUNT را انتخاب نمایید.

حذف ایمیل در گوگل میل

آدرس ایمیل شما در گوگل میل یا Gmail حدف شد .




طبقه بندی: فناوری و تکنولوژی، آموزشی،
برچسب ها: حذف اکانت gmail، مهندس کوچکی، مهندس مومنی، انجام پروژه های برنامه نویسی، انجام پروژه های دانشجویی، گروه برنامه نویسی باران، احمد مومنی،

تاریخ : جمعه 2 مرداد 1394 | 11:47 بعد از ظهر | نویسنده : مهندس مؤمنی | نظرات

حذف ایمیل یاهو و اکانت Yahoo


به منظور حذف کامل ایمیل اکانت Yahoo خود مراحل زیر را انجام دهید:
1. وارد لینک https://edit.yahoo.com/config/delete_user شوید.
2. نام کاربری اکانت مورد نظر را وارد نمایید.
3. رمز عبور اکانت مورد نظر را وارد نمایید.
4. بر روی Sign In کلیک نمایید.

پاک کردن ایمیل

5. رمز عبور اکانت مورد نظر را مجددا وارد نمایید.
6. کاراکترهای موجود در تصویر امنیتی ( captcha ) را در کادر مربوطه وارد نمایید.
7. دکمه Terminate this Account را انتخاب نمایید.

حذف اکانت جیمیل

آدرس ایمیل شما در یاهو میل یا Yahoo حدف شد .


حذف اکانت ایمیل





طبقه بندی: فناوری و تکنولوژی، آموزشی،
برچسب ها: احمد مومنی، حذف اکانت یاهو، گروه برنامه نویسی باران، انجام پروژه های برنامه نویسی، انجام پروژه های دانشجویی، مهندس کوچکی، مهندس احمد مومنی،

تاریخ : پنجشنبه 1 مرداد 1394 | 11:41 بعد از ظهر | نویسنده : مهندس مؤمنی | نظرات

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

( عدد 1- را برای مشخص کردن انتهای لیست اعداد در نظر بگیرید.)



#include<iostream>

int main( )

{ int num, counter = 0;

  float average, sum = 0;

 

  cout << "Enter a number (-1 to end):";

  cin >>num;

 

  while (num != -1){

    sum += num ;

    ++counter;

    cout << "Enter a number (-1 to end):";

    cin >> num;

  }

 

  if (counter != 0){

    average = sum / counter;

    cout << " sum of numbers is: " << sum << endl;
    cout << " average is: " << average << endl;

  }

  else

    cout << "No numbers were entered." << endl;

 

  return 0;

}

 

خروجی برنامه به صورت زیر خواهد بود:

 

Enter a number (-1 to end):20

Enter a number (-1 to end):50

Enter a number (-1 to end):65

Enter a number (-1 to end):70

Enter a number (-1 to end):90

Enter a number (-1 to end):100

Enter a number (-1 to end):1

Enter a number (-1 to end):6

Enter a number (-1 to end):-1

The average is 50.25

 

در برنامه این مثال عدد 1- به عنوان یک مقدار کنترلی به کار می رود و با وارد کردن این عدد اجرای برنامه به پایان می رسد و مجموع و میانگین اعداد در خروجی به نمایش در می آید. متغیر num اعداد را از ورودی دریافت می کند. متغیر counter وظیفه شمارش تعداد اعداد وارد شده را دارا می باشد و متغیر sum مجموع حاصلجمع اعداد را در خود قرار می دهد و در نهایت متغیر average، میانگین را در خود قرار می دهد. ساختار کنترلی if به کار رفته در برنامه، جلوی بروز خطای زمان اجرای تقسیم بر صفر را می گیرد ، یعنی اگر در اولین دستور cin به کار رفته عدد 1- وارد شود خروجی برنامه به صورت زیر خواهد بود:

 

Enter a number (-1 to end): -1

No numbers were entered.

 



امیدوارم برای شما دوستان عزیزم  مفید واقع شود.




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

تاریخ : جمعه 8 فروردین 1393 | 11:24 قبل از ظهر | نویسنده : مهندس مؤمنی | نظرات
مثال :  برنامه ای بنویسید که 10 عدد از ورودی دریافت کرده و مجموع و میانگین آنها را محاسبه و چاپ کند.
( تذکر مهم :  برای درک بهتر برنامه ، کدها را کپی کرده و داخل برنامه نوت پد ببرید. )

کد حل برنامه :

#include <stdio.h>
int main()
{
int a,i,sum=0;
float avg;
const int n=10;
printf("enter 10 numbers:");
for (i=1; i<=n; i++)
{
scanf("%d",&a);
sum=sum+a;
}
avg=(float)sum/n;
printf("sum of 10 numbers is: %d",sum);
printf("average is:",avg);
return 0;
}


خروجی برنامه:

enter 10 numbers: 10 20 30 40 50 60 70 80 90 100
sum of 10 numbers is: 550
average is: 55



امیدوارم برای شما دوستان عزیزم مفید واقع شود.



طبقه بندی: برنامه نویسی، آموزشی،
برچسب ها: نمونه برنامه به زبان سی C، برنامه نویسی به زبان سی C، C، C++، آموزش برنامه نویسی C++، برنامه ای بنویسید که 10 عدد از ورودی دریافت کرده و مجموع و میانگین آنها را محاسبه و چاپ کند.، آموزش برنامه نویسی C،

تاریخ : جمعه 8 فروردین 1393 | 11:00 قبل از ظهر | نویسنده : مهندس مؤمنی | نظرات
تاریخ : پنجشنبه 1 اسفند 1392 | 09:21 بعد از ظهر | نویسنده : مهندس مؤمنی | نظرات

تعداد کل صفحات : 6 :: ... 3 4 5 6

  • paper | فروش بک لینک | بک لینک
  • ابزار هدایت به بالای صفحه