براي نداشتن مشكل بعد از فـيلتر شدن سايت و ورود راحت به جاي كلمه test هر عنواني را دوست داريد تايپ كنيد و وارد سايت شويد . http://test.kingin3at.info
.
Image and video hosting by TinyPic Image and video hosting by TinyPic
.
Image and video hosting by TinyPic Image and video hosting by TinyPic
.
Image and video hosting by TinyPic Image and video hosting by TinyPic
.
آخرين ارسالات انجمن

بازگشت   ..:: شــوکـا سـیـسـتـم ::.. > بخش کامپیوتر > طراحی سایت

پاسخ
قدیمی 07-26-2010, 01:35 PM   #1
Bavaria
عضو نیمه فعال
 
آواتار Bavaria
 
تاريخ عضويت: Sep 2007
پست ها: 67
امتیاز: 2,361, سطح: 4
امتیاز: 2,361, سطح: 4 امتیاز: 2,361, سطح: 4 امتیاز: 2,361, سطح: 4
صعود به سطح بالا: 38%, 439 امتیاز مورد نیاز
صعود به سطح بالا: 38% صعود به سطح بالا: 38% صعود به سطح بالا: 38%
فعالیت: 1%
فعالیت: 1% فعالیت: 1% فعالیت: 1%
تشکرها: 174
از ایشان در 58 پست 178 بار تشکر شده
قدرت امتیاز: 3 Bavaria
پيش فرض پرسش و پاسخ در مورد طراحی وب

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

اولین سوال رو خودم طرح میکنم. میخواستم از عزیزانی که تجربه بالایی در مورد طراحی وب دارند بپرسم که روش کار سایت رپیدباز چجوریه؟ تا اونجایی که من میدونم سایت هایی مثل رپیدشر اشتراکشون رو از طریق یوزرنیم و پسورد ارائه میدن و از طریق پراکسی اشتراک ارائه نمیدن. حالا اگر هم من اشتباه میکنم شما بگین لطفاً. به هر حال میخوام بدونم که سایت رپیدباز از سایت هایی مثل رپیدشر و مگاآپلود چجور اشتراکی برای خودش میگیره و چجوری فایل ها رو به سرور خودش منتقل میکنه.
با تشکر
Bavaria آفلاين است  
پاسخ با نقل قول
تعداد 4 کاربر از Bavaria عزیز به دلیل ارسال این پست مفید تشکر کرده اند :
تبلیغات
قدیمی 07-27-2010, 03:47 PM   #2
تایسون
نـاظـرفـنـی و مشـاور سایت
 
آواتار تایسون
 
تاريخ عضويت: Sep 2007
محل سكونت: F A R D I S
پست ها: 6,681
حالت من:
امتیاز: 71,708, سطح: 39
امتیاز: 71,708, سطح: 39 امتیاز: 71,708, سطح: 39 امتیاز: 71,708, سطح: 39
صعود به سطح بالا: 37%, 2,592 امتیاز مورد نیاز
صعود به سطح بالا: 37% صعود به سطح بالا: 37% صعود به سطح بالا: 37%
فعالیت: 100%
فعالیت: 100% فعالیت: 100% فعالیت: 100%
تشکرها: 10,506
از ایشان در 5,298 پست 16,897 بار تشکر شده
قدرت امتیاز: 18 تایسون عضو فعالتایسون عضو فعالتایسون عضو فعالتایسون عضو فعالتایسون عضو فعالتایسون عضو فعالتایسون عضو فعالتایسون عضو فعال
پيش فرض

سلام

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

در هر صورت اکانت وجود داره

اکانت ها هم هک شده و برای خودشون استفاده میکنند،اکانت هایی که مردم میخرند و بعضی ها هک میکنند

این اسکریپت هم نوشته شده و کار شخص است جایی نیست که بخوای دانلود کنی
__________________
[برای دیدن ادامه مطلب و یا لینکها باید ثبت نام کنید. ]

[برای دیدن ادامه مطلب و یا لینکها باید ثبت نام کنید. ]

[برای دیدن ادامه مطلب و یا لینکها باید ثبت نام کنید. ]



=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[برای دیدن ادامه مطلب و یا لینکها باید ثبت نام کنید. ]
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[برای دیدن ادامه مطلب و یا لینکها باید ثبت نام کنید. ]
تایسون آفلاين است  
پاسخ با نقل قول
تعداد 7 کاربر از تایسون عزیز به دلیل ارسال این پست مفید تشکر کرده اند :
قدیمی 08-11-2010, 06:43 PM   #3
sib
كانديد معاونت شبكه بلوتوث شوكا
 
آواتار sib
 
تاريخ عضويت: Sep 2007
پست ها: 195
حالت من:
امتیاز: 3,149, سطح: 5
امتیاز: 3,149, سطح: 5 امتیاز: 3,149, سطح: 5 امتیاز: 3,149, سطح: 5
صعود به سطح بالا: 44%, 451 امتیاز مورد نیاز
صعود به سطح بالا: 44% صعود به سطح بالا: 44% صعود به سطح بالا: 44%
فعالیت: 44%
فعالیت: 44% فعالیت: 44% فعالیت: 44%
تشکرها: 915
از ایشان در 196 پست 683 بار تشکر شده
قدرت امتیاز: 4 sib نیمه فعالsib نیمه فعال
پيش فرض

با سلام
چنانچه ممكنه آموزش نرم افزار شرپوينت ديزاينر 2007 را بصورت فايل متني يا هر طور كه صلاح مي دونيد براي دوستان قرار بديد.
با تشكر
sib هم اکنون آنلاين است  
پاسخ با نقل قول
تعداد 3 کاربر از sib عزیز به دلیل ارسال این پست مفید تشکر کرده اند :
قدیمی 08-26-2010, 01:53 PM   #4
mrc
كانديد مديريت بخش كامپيوتر
 
آواتار mrc
 
تاريخ عضويت: Jul 2010
محل سكونت: ايساتيس
پست ها: 659
حالت من:
امتیاز: 22,004, سطح: 20
امتیاز: 22,004, سطح: 20 امتیاز: 22,004, سطح: 20 امتیاز: 22,004, سطح: 20
صعود به سطح بالا: 76%, 396 امتیاز مورد نیاز
صعود به سطح بالا: 76% صعود به سطح بالا: 76% صعود به سطح بالا: 76%
فعالیت: 100%
فعالیت: 100% فعالیت: 100% فعالیت: 100%
تشکرها: 502
از ایشان در 440 پست 1,044 بار تشکر شده
قدرت امتیاز: 0 mrc عضو جدیدmrc عضو جدید
Wink آمزش شیرپوینت

در انجمن های سایت و همچنین وبلاگهای شیرپوینتی بحثهای زیادی در زمینه های مختلف شیرپوینت مطرح شده، احساس کردم خوبه در یک مقاله روش نصب شیرپوینت رو در محیط Virtual PC برای افرادی که تصمیم دارند کار با شیرپوینت رو شروع کنند و یا علاقمندند که شیرپوینت رو جهت فعالیت های شخصی و یا برنامه نویسی بر روی PC و یا Laptop شخصیشون نصب کنند، تشریح کنم. به همین دلیل من در این مقاله روش نصب رو به صورت مرحله به مرحله براتون توضیح میدم. در پایان اگر سوال یا مشکلی بود، مطرح کنید .
قبل از هر جیزی ما نیاز به ابزارهای زیر برای نصب شیرپوینت در یک محیط مجازی یا Virtual داریم :(محیطهای مجازی که میتوان شیرپوینت رو بر روی آن نصب کرد Virtual PC 2007 و VMWare می باشند. نصب VPC راحت و سریعتر انجام میشه ولی نصب VMWare نیاز به جزئیات بیشتری داره. به همین دلیل من در این مقاله محیط VPC رو انتخاب کرده ام. اگر در مورد پیاده سازی در محیط VMWare هم سوالی داشتید می تونید با من مکاتبه کنید)
  1. نرم افزار Microsoft Virtual PC 2007
  2. نرم افزار Microsoft Office SharePoint Server 2007
  3. نرم افزار SQL Server 2005 Express or Enterprise
  4. Microsoft Windows Server 2003 Enterprise
  5. NET Framework 2.0
  6. NET Framework 3.0

گام اول - نصب و تنظیم Virtual PC 2007
فرض می کنیم شما یک PC با ویندوز XP یا Vista دارید. پس از دانلود [برای دیدن ادامه مطلب و یا لینکها باید ثبت نام کنید. ] آنرا مانند سایر نرم افزارها نصب کنید.پس از اتمام عملیت نصب، از منوی Programs گزینه Microsoft Virtual PC را کلیک کنید. تا کنسول برنامه باز شود. بر روی گزینه New کلیک کنید تا پنجره خوش آمدگویی باز شود. دکمه Next را کلیک کنید.(شکل 1)

گزینه اول یعنی Create a Virtual Machine را انتخاب و next را کلیک کنید.
پنجره زیر باز شده و نامی را برای ماشین مجازی وارد کنید به عنوان مثال Win2003 Server .بر روی next کلیک کنید.

در پنجره باز شده (شکل زیر) سیستم عاملی که می خواهید بر روی این ماشین مجازی نصب کنید را انتخاب نمایید.( برای نصب شیرپوینت ما نیاز به نصب ویندوز 2003 سرور داریم.)

windows server 2003 را انتخاب کنید و next را کلیک کنید تا پنجره زیر باز شود. در این پنجره مقدار فضای حافظه ای از RAM که تصمیم دارید برای این ماشین مجازی اختصاص بدید رو مشخص کنید.مقدار پیش فرض 256 مگابایت هست. من مقدار 1500 مگابایت از کل 2870 مگابایت سیستم رو اختصاص دادم. ( شکل زیر)

پس از کلیک بر روی next پنجره ای باز شده و در آن گزینه A New Virtual Hard Disk را برای ساخت فضای هارد دیسک جدید انتخاب نمایید.next را کلیک کنید تا پنجره زیر نمایش داده شود :

در پنجره فوق، شما می توانید فضایی از هارد دیسک را برای این ماشین مجازی اختصاص دهید. مقدار ماکزیمم 130 گیگابایت می باشد. پیشنهاد می کنم مقدار 15 گیگابایت را برای این منظور انتخاب کنید.چون ممکن است نیاز به توسعه سرور مجازی داشته باشید. البته این مقدار رو بعداً هم میتونید افزایش بدید. بر روی next کلیک کنید تا پنجره Completing به صوت زیر نمایش داده شود.

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




گام دوم - نصب ویندوز 2003 سرور بر روی ماشین مجازی
پس از نصب برنامه VPC حال باید ویندوز 2003 را بر روی آن نصب کنیم. ابتدا از کنسول برنامه VPC گزینه Start را انتخاب نمایید تا ماشین مجازی راه اندازی شود. سپس CD یا DVD ویندوز 2003 سرور اینترپرایز را بر روی PC خود که به آن host می گوییم، قرار دهید. به طور خودکار ماشین مجازی با CD ویندوز خود را بوت می کند و وارد محیط نصب ویندوز سرور می شود.
نکته : اگر شما نسخه Image با فرمت .ISO از ویندوز 2003 سرور هم داشته باشید، میتوانید با انتخاب گزینه CD از منو و انتخاب Capture an ISO Image و سپس مسیر فایل ISO ، ماشین مجازی را با این فایل image بوت و ویندوز را نصب کنید.
حال عملیات نصب ویندوز را مانند سایر ویندوزها در ماشین مجازی ادامه دهید. پس از تکمیل شدن عملیات نصب ویندوز سرور 2003 وارد گام بعدی شوید.


گام سوم - نصب و راه اندازی IIS
پس از نصب ویندوز و تکمیل عملیات نصب، حال اولین کاری که باید انجام دهید، نصب Internet Information Service یا IIS می باشد. برای اینکار مراحل زیر را انجام دهید :
1- از منوی start وارد all programs شده، سپس Administrative Tools و سپس گزینه Configure Your Server Wizard را کلیک کنید.شکل زیر نمایش داده می شود :

2- گزینه next را کلیک کنید و در پنجره بعد Next را کلیک کنید تا شکل زیر نمایش داده شود، گزینه Application Server را انتخاب و next را بزنید.

3- در صفحه بعد گزینه Enable ASP.NET را انتخاب کنید و Next را 2 بار فشار دهید.

4- در انتها هم CD ویندوز سرور 2003 را جهت نصب IIS و اتمام عملیات نصب قرار دهید.

گام چهارم - نصب NET Framework 2.0 و NET Framework 3.0
برای نصب شیرپوینت شما نیاز به Framework 2.0 بر روی ویندوز سرور دارید. برای اینکه بتوانید از امکانات WWF(Windows Workflow Foundation) و ASP.NET استفاده کنید، نیاز به نصب Framework 3.0 دارید. برای اینکار مراحل زیر را اجرا کنید :
1- با استفاده از CD حاوی Framework 2.0,3.0 ابتدا فایلها را بر روی ماشین مجازی کپی نمایید و سپس فایل Setup.exe مربوط به Framework 2.0 را اجرا کنید.
نکته : اگر نیاز دارید تا فایلها را از روی PC خود یا ماشین Host بر روی ماشین مجازی کپی کنید، باید از طریق منوی Settings ماشین مجازی وارد قسمت Shared Folders شوید و از طریق آن فایلهای خود را با ماشین مجازی اشتراک بگذارید و در آنجا کپی نمایید.
2- پس از اتمام عملیات نصب Framework 2.0 حال Framework 3.0 را نصب نمایید.

3- پس از اتمام عملیات نصب هر دو Framework گزینه Exit را انتخاب نمایید و وارد گام بعد شوید.

گام پنجم - فعال سازی ASP.NET 2.0 Web Service Extensions در محیط IIS
از منوی Start وارد Run شده و تایپ کنید inetmgr و سپس Enter را بزنید.
حال وارد محیط IIS شده اید. از ستون سمت چپ، گزینه Internet Information Service را باز کنید، سپس نام ماشین را باز کنید و بر روی Web Service Extensions کلیک کنید. با اینکار شکلی مانند شکل زیر را مشاهده خواهید کرد.
از ستون سمت راست، بر روی ASP.NET v2.0.50727 کلیک نمایید. حال دکمه Allow را کلیک کنید.



گام ششم - نصب SQL Server 2005
پس از اتمام مراحل نصب فوق، حال شما باید SQL Server را به عنوان نرم افزار مدیریت بانک اطلاعاتی شیرپوینت نصب کنید.
بر حسب اینکه نیاز به کدام Feature ها و قابلیت های SQL برای محیط شیرپوینت خود دارید، می توانید نسخه های Express یا Enterprise را نصب کنید.
اگر نیاز به استفاده از قابلیت های Reporting Service و Analyze Service و Replication و ... دارید، نسخه Enterprise را نصب کنید. در غیر اینصورت نسخه Express را نصب نمایید که به صورت رایگان از آدرس زیر قابل دانلود است :
[برای دیدن ادامه مطلب و یا لینکها باید ثبت نام کنید. ]
سرویس پک 3 این نسخه رو هم از آدرس زیر می تونید دانلود کنید :
[برای دیدن ادامه مطلب و یا لینکها باید ثبت نام کنید. ]
یا می تونید هر دو مورد فوق رو یکجا و از آدرس زیر دانلود کنید :
[برای دیدن ادامه مطلب و یا لینکها باید ثبت نام کنید. ]
اگر نیاز به کنسول مدیریتی SQL Server داشتید اونرو از آدرس زیر دانلود و نصب کنید :
[برای دیدن ادامه مطلب و یا لینکها باید ثبت نام کنید. ]
پس از نصب SQL Server و اتمام عملیات نصب وارد گام بعدی شوید.

گام هفنم - نصب Microsoft Office SharePoint Server 2007
DVD یا CD حاوی MOSS 2007 رو داخل درایو قرار دهید و آنرا در محیط ماشین مجازی مشاهده خواهید کرد.
پنجره ای جهت شروع مراحل نصب باز خواهد شد و از شما License شیرپوینت را درخواست می کند. آنرا وارد کنید و Next را کلیک کنید :

موافقت خود را با انتخاب گزینه I accept the terms of agreement اعلام و Continue را کلیک کنید.
در پنجره بعدی، گزینه Advance را به عنوان روش نصب انتخاب نمایید :

در صفحه بعد و در قسمت Server Type گزینه اول یا Complete را انتخاب نمایید و دکمه Install Now را کلیک کنید :

حال شیرپوینت 2007 بر روی سرور شما نصب خواهد شد. پس از اتمام عملیات نصب، شکل زیر را مشاهده خواهید کرد :

با بستن پنجره فوق پنجره دیگری به نام SharePoint Products and Technology Configuration جهت انجام تنظیمات نصب شیرپوینت مانند شکل زیر باز خواهد شد :

با زدن دکمه Next پیغام هشداری به صورت زیر جهت Reset شدن 3 سرویس ویندوز در حین تنظیمات به شما نمایش داده می شود، Next را جهت ادامه عملیات فشار دهید :

در پنجره بعدی ، Connect to a Server Farm ، گزینه No,I want to Create a new Server farm را انتخاب نمایید.

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

در قسمت Database Server نام سرور دیتابیس را وارد کنید. همان Instance Name مربوط به SQL می باشد. به عنوان مثال Server1\SQLEXPRESS . در قسمت Database Access Account هم Username و Password سرور دیتابیس رو وارد کنید. در اینجا Account مدیر سرور یا Administrator را وارد نمایید.
دکمه Next را کلیک کنید تا پنجره زیر نمایش داده شود :

در قسمت Specify Port Number می توانید عددی برای پورت سایت Central Administration وارد کنید. این عدد باید بین 1 تا 65535 باشد. می توانید از پورت پیش فرض انتخاب نمایید و این قسمت را بدون تغییری با انتخاب Next نکمیل کنید.Security Settings را همان NTLM انتخاب نمایید.
در پنجره بعدی گزینه Next را جهت تایید انتخاب ها کلیک نمایید.
پس از آن ، Configuration ، مراحل خود را از 1 تا 9 تکمیل خواهد کرد و پس از اتمام درست و کامل 9 مرحله پیغام Configuration Successful را مشاهده خواهید کرد.
حال دکمه Finish را جهت تکمیل مراحل نصب شیرپوینت کلیک نمایید.
خُب، خسته نباشید... مراحل نصب شیرپوینت بر روی ماشین مجازی به پایان رسید. قبل از شروع به هر کاری و اعمال تغییرات در محیط مجازی بهتره یک نسخه پشتیبان از هارد ماشین مجازی بگیرید. برای اینکار وارد آدرس هارد ماشین مجازی که در گام اول آنرا ایجاد کرده بودید، شوید و سپس فایل Win2003 Server Hard Disk.vhd را کپی و بر روی یک DVD و یا درایو دیگری از هارد ذخیره نمایید.
نکته : اگر نیاز به نصب Windows SharePoint Services 3.0 به جای MOSS 2007 داشتید، می تونید نرم افزار اونرو از آدرسهای زیر دانلود کنید و سپس مانند مراحل گام هفتم آنرا نصب نمایید :
  • [برای دیدن ادامه مطلب و یا لینکها باید ثبت نام کنید. ]
  • [برای دیدن ادامه مطلب و یا لینکها باید ثبت نام کنید. ]
  • [برای دیدن ادامه مطلب و یا لینکها باید ثبت نام کنید. ]

موفق باشید.
mrc آفلاين است  
پاسخ با نقل قول
کاربر روبرو از mrc عزیز به دلیل ارسال این پست مفید تشکر کرده است:
قدیمی 08-26-2010, 01:55 PM   #5
mrc
كانديد مديريت بخش كامپيوتر
 
آواتار mrc
 
تاريخ عضويت: Jul 2010
محل سكونت: ايساتيس
پست ها: 659
حالت من:
امتیاز: 22,004, سطح: 20
امتیاز: 22,004, سطح: 20 امتیاز: 22,004, سطح: 20 امتیاز: 22,004, سطح: 20
صعود به سطح بالا: 76%, 396 امتیاز مورد نیاز
صعود به سطح بالا: 76% صعود به سطح بالا: 76% صعود به سطح بالا: 76%
فعالیت: 100%
فعالیت: 100% فعالیت: 100% فعالیت: 100%
تشکرها: 502
از ایشان در 440 پست 1,044 بار تشکر شده
قدرت امتیاز: 0 mrc عضو جدیدmrc عضو جدید
Wink افزایش سرعت و کارایی برنامه نویسی در شرپوینت ( بخش اول )

با سلام امکانات Object Model شرپوینت به شما این امکان را میدهند تا بتوانید نرم افزارهایی بر طبق این تکنولوژی ایجاد کنید ، در همین راستا مقالات بسیار زیادی هم در اینترنت در مورد نحوه استفاده صحیح از این امکانات وجود دارد ، به طور مثال Best Practices نمونه ای از این مقالات است که توسط مایکروسافت عرضه میشود و به برنامه نویسان شرپوینت این امکان را می دهد تا بتوانند نرم افزارهایی با قدرت و کارایی بالا ایجاد نمایند .
بیشتر سناریوهایی که برای ایجاد یک نرم افزار به کار گرفته میشود در مورد لیست هاست که شامل نمایش و تغییرات در آنها میباشد که متاسفانه بیشتر مشکلات و همچنین عدم کارایی را در این قسمت میتوانیم مشاهده کنیم زیرا از امکانات آبجکت مدل شرپوینت به خوبی استفاده نمیشود و این موضوع باعث کاهش کارایی نرم افزار می شود .
در مقاله ی امروز در مورد استفاده بهتر از امکانات آبجکت مدل شرپوینت صحبت خواهیم کرد و سعی میکنم تا تجربیات خود و همچنین مطالب ارزشمندی که در این زمینه موجود است را خدمت شما دوستان عزیز ارائه کنم و در مقالات بعد آن را تکمیل تر نمایم .
1 – چه تعداد آیتم در لیست ذخیره شده است ؟
جواب های مختلفی میتوان به این سوال داد ، در واقع راه های مختلفی برای به دست آوردن پاسخ این سوال وجود دارد ، به عنوان مثال در زیر میتوانید کدی را مشاهده نمایید که این کار را برای ما انجام می دهد :
int noOfItems = SPContext.Current.List.Items.Count;
این کد به ما تعداد آیتم هایی که در این لیست وجود دارد را نمایش میدهد اما حقیقت این است که این کد تمام آیتم های این لیست در دیتابیس را به ما برمیگرداند ، شکل زیر به ما نشان میدهد که در هنگام اجرا کردن کد و دسترسی به مشخصه Count چه اتفاقی می افتد :
این کد در مواقعی که لیست های ما تعداد آیتم های کمی داشته باشند مشکلی ایجاد نخواهد کرد ولی به مرور زمان و با زیاد شدن تعداد آیتم های لیست مشکلاتی را برای ما به وجود خواهد آورد .
اما راه حل چیست ؟
مایکروسافت یک ویژگی بسیار خوب را برای ما فراهم کرده است و آن ItemCount از شی ء SPList می باشد که در زیر میتوانید نحوه استفاده از آن را ملاحظه بفرمایید :
int noOfItems = SPContext.Current.List.ItemCount;
در این کد شرپوینت فقط میبایست به یک رکورد از دیتابیس رجوع کند ، در واقع شما با استفاده از این کد به راحتی میتوانید فقط با کوئری زدن به یک رکورد اطلاعات لازم در مورد تعداد آیتم ها را بدست آورید و احتیاج به استخراج تمام داده های ذخیره شده در لیست نیست .
2 – نمایش تعداد آیتم های یک لیست با استفاده از SPList
راه های بسیار زیادی برای نمایش آیتم های یک لیست وجود دارد ، شما با استفاده از یک حلقه میتوانید محتویات یک لیست را به دست آورده و نمایش دهید ، این کار ممکن است در کامپیوتری که برای توسعه در نظر گرفتید و یا برای لیست های کوچک بسیار خوب کار کند اما باید به شما بگویم که با افزایش تعداد آیتم های لیست به شدت کارایی نرم افزار شما کاهش میابد !
برای اثبات این موضوع بیایید با هم نگاهی به کد زیر بیاندازیم که 100 آیتم اول لیست جاری را به ما نمایش میدهد :
SPList activeList = SPContext.Current.List;
for (int i = 0; i < 100 && i < activeList.Items.Count; i++)
{
SPListItem listItem = activeList.Items[i];
htmlWriter.Write(listItem["Title"]);
}
فرض کنید که کمتر از 100 آیتم در این لیست موجود باشد ، فکر میکنید چند بار ارتباط با دیتابیس برقرار میشود تا بتوانید 100 عنوان اول این لیست را نمایش دهید ؟ با آنالیز تراکنش های کد بالا متعجب خواهید شد که تقریبا 200 بار این اتفاق رخ می دهد !
این مشکل به این خاطر می باشد که با هر اجرای این حلفه ما یک نمونه جدید از SPListIemCollection را فراخوانی میکنیم که در واقع به خاطر استفاده از Items این اتفاق رخ می دهد .
صفت Items کش نمی شود و به همین خاطر با هر درخواست این عمل تکرار می شود ، در شکل میتوانید این موضوع را به خوبی ملاحظه نمایید :
همانطور که ملاحظ میکنید زمان بسیار زیادی برای اجرای این کد به کار گرفته می شود که در نهایت باعث کاهش کارایی برنامه شما می شود .
راه حل چیست ؟
مسلما بهترین راه برای حل این مشکل استفاده از SPListItemCollection میباشد ، با استفاده از شی ء دیتابیس فقط یکبار کوئری میزند و با شمارش حلقه نتیجه در این کالکشن ذخیره می شود ، نمونه کد اصلاح شده را در زیر میتوانید مشاهده نمایید :
SPListItemCollection items = SPContext.Current.List.Items;
for (int i = 0; i < 100 && i < items.Count; i++)
{
SPListItem listItem = items[i];
htmlWriter.Write(listItem["Title"]);
}
در شکل زیر میتوانید نحوه اجرای برنامه پس از تغییر کد را ببینید :
در شکل بالا کاملا مشخص است که صرفه جویی بسیار زیادی در مدت زمان دریافت اطلاعات از دیتابیس را داریم و شما به عنوان یک برنامه نویس همیشه باید بهترین راه حل را برای بالا بردن کارایی داشته باشید .
3 – استفاده از SPQuery و SPView برای دریافت اطلاعاتی که به آنها نیاز دارید
یکی از مهمترین مسائلی که در تمام نرم افزارها وچود دارد جستجوی اطلاعات مورد نیاز کاربر از دیتابیس می باشد ، در واقع گزارشاتی که کاربران و مدیران از یک نرم افزار میخواهند ، روش های زیادی برای این کار وجود دارد ولی شما به عنوان یک برنامه نویس باید به این نکته توجه داشته باشید که چه راه حلی برای نرم افزار شما بهتر است .
اگر با دقت به 2 مسئله قبلی نگاه کرده باشید متوجه میشوید که با هر کوئری که بر روی دیتابیس اجرا میکنید ، دیتابیس تمام اطلاعات را مورد پردازش قرار می دهد ، به دستور Select در دو مسئله قبلی توجه کنید ( Select Top 2147483648 )
راه حل چیست ؟
یکی از راه های مناسب محدود کردن تعداد آیتم هایی است که مورد پرداش قرار خواهند گرفت که این کار را میتوانید با استفاده از صفت SPQuery.RowLimit انجام دهید .
به مثال زیر توجه کنید :
SPQuery query = new SPQuery();
query.RowLimit = 100;
SPListItemCollection items = SPContext.Current.List.GetItems(query);
for (int itemIx = 0; itemIx < items.Count; itemIx++)
{
SPListItem listItem = items[itemIx];
}
با اجرای این دستور میتوانید نتیجه متفاوتی را مشاهده نمایید :
اگر به برنامه هایی که مینویسید توجه کنید ، شما همیشه احتیاج به این ندارید که تمام آیتم های یک لیست را نمایش دهید یا مورد پردازش قرار دهید و با این تکنیک کوچک ولی کاربردی میتوانید کارایی برنامه خود را بالا ببرید . کد بالا برای مواقعی که میخواهیم از تمام ستون های یک لیست برای پردازش اطلاعات استفاده کنیم مناسب است ، اما حالا مسئله دیگری را در نظر میگیریم ، اگر فقط برخی از ستونهای یک لیست را برای گزارش احتیاج داشته باشیم چگونه میتوانیم کدی با کارایی بالاتر بنویسیم ؟
دو روش برای محدود کردن تعداد فیلدها وجود دارد :
1 – استفاده از کلاس SPView به صورت زیر :
SPQuery query = new SPQuery(SPContext.Current.CurrentView.View);
2 – استفاده از صفت SPQuery.ViewFields به صورت زیر :
SPQuery query = new SPQuery();
query.ViewFields = "<FieldRef Name='ID'/><FieldRef Name='Text Field'/><FieldRef Name='XYZ'/>";
با اجرای هر کدام از روشهای بالا کوئری شما محدوده کمتری از اطلاعات را مورد پردازش قرار داده و در نتیجه کارایی برنامه شما بالاتر می رود ، به شکل های زیر توجه کنید :
خوب ، امیدوارم تا اینجا این مقاله برای شما مفید بوده باشه ، در مقالات بعدی تکنیک های بیشتری را مورد بررسی قرار خواهم داد .
موفق و پیروز باشید .

ویرایش توسط mrc : 08-26-2010 در ساعت 02:10 PM.
mrc آفلاين است  
پاسخ با نقل قول
کاربر روبرو از mrc عزیز به دلیل ارسال این پست مفید تشکر کرده است:
قدیمی 08-26-2010, 01:58 PM   #6
mrc
كانديد مديريت بخش كامپيوتر
 
آواتار mrc
 
تاريخ عضويت: Jul 2010
محل سكونت: ايساتيس
پست ها: 659
حالت من:
امتیاز: 22,004, سطح: 20
امتیاز: 22,004, سطح: 20 امتیاز: 22,004, سطح: 20 امتیاز: 22,004, سطح: 20
صعود به سطح بالا: 76%, 396 امتیاز مورد نیاز
صعود به سطح بالا: 76% صعود به سطح بالا: 76% صعود به سطح بالا: 76%
فعالیت: 100%
فعالیت: 100% فعالیت: 100% فعالیت: 100%
تشکرها: 502
از ایشان در 440 پست 1,044 بار تشکر شده
قدرت امتیاز: 0 mrc عضو جدیدmrc عضو جدید
Wink افزایش سرعت و کارایی برنامه نویسی در شرپوینت ( بخش دوم )

با سلام در این مقاله ادامه مبحث قبل در مورد سرعت و کارایی برنامه نویسی در شرپوینت را مورد بررسی قرار میدهیم .
4 – استفاده از Paging در جستجو ها
همانطور که میدانید لیست های شرپوینت میتوانند هزاران آیتم را ذخیره نمایند ، اما همه ما شنیدیم که برای اینکه کارایی لیست در بهترین شرایط باشد تعداد آیتم ها نباید از 2000 بیشتر باشد . وقتی که تعداد این آیتم ها از این حدود تجاوز میکند کارایی پایین میاد و برای اینکه بتونم بهترین بهروری را داشته باشیم میتونیم از تکنیک ایندکس کردن ستون ها و نماها استفاده کنیم .
در کنار رعایت کردن این موارد خیلی مهمه که در هنگام دسترسی به داده ها نیز مواردی را رعایت کنیم تا کارایی را در برنامه خود افزایش بدیم ، همانطور که قبلا نیز اشاره شد دسترسی به داده هایی که شما نیاز دارید بار نسبتا سنگینی را بر دیتابیس می گذارد ، اما خوشبختانه در مدل شی گرا شرپوینت امکاناتی فراهم شده است تا بتوانید این موارد را به خوبی برطرف کنید .
صفحه بندی کردن اطلاعات یا Paging یک تکنیک بسیار خوبی است که در نرم افزارهای کلاینت و وب استفاده می شود ، مثل کنترل GridView که با صفحه بندی کردن اطلاعات پیمایش اطلاعات را برای کاربران آسان تر می کند که اگر به درستی پیاده سازی بشود بار اضافی بر روی دیتابیس را کاهش می دهد .
کلاس SPQuery مشخصه ای بنام ListItemCollectionPosition دارد که این امکان را برای شما فراهم میکند تا صفحه ی آغازین را مشخص کنید و همانطور که قبلا نیز گفته شد RowLimit مشخص میکند که در هر صفحه چند آیتم نمایش داده شود ، بیایید با هم نگاهی به یک مثال بیاندازیم :
SPQuery query = new SPQuery();
query.RowLimit = 10; // that is our page size
do
{
SPListItemCollection items = SPContext.Current.List.GetItems(query);
// do something with the page result
// set the position cursor for the next iteration
query.ListItemCollectionPosition = items.ListItemCollectionPosition;
} while (query.ListItemCollectionPosition != null)
List.GetItems هر بار با گرفتن Query فقط 10 آیتم به به ما ارائه می کند و ListItemCollectionPosition همانند یک اشاره گر عمل کرده و صفحه بعدی که باید اجرا شود را در خود نگهداری میکند ، در شکل زیر میتوانید فعالیت های دیتابیس را ملاحظه کنید :
و اگر نگاه دقیق تری به دستورات SQL بیاندازیم میبینیم که آیتم ها از صفحه معین شده ********** می شوند :
5 – بروز رسانی تعداد زیادی آیتم
در مورد قبلی در مورد بهترین نحوه دسترسی به اطلاعات صحبت کردیم و حالا میخواهیم در مورد بهترین نحوه بروز رسانی دیتابیس را مورد بررسی قرار دهیم .برای اضافه کردن یا بروز رسانی آیتم ها راه های متفاوتی وجود دارد ، به طور مثال برای بروز رسانی از SPlistItem.Update و برای اضافه کردن آیتم از SPListItemCollection.Add استفاده میکنیم ، به طور مثال :
for (int itemIx = 0; itemIx < 100; itemIx++)
{
SPListItem newItem = items.Add();
// fill all the individual fields with values
newItem.Update();
}
اگر نگاه دقیقی به کدهایمان بنداریم متوجه خواهیم شد که با هر بار اجرا شدن متد Update یک متد داخلی به اسم SPListItem.AddOrUpdateItem نیز اجرا می شود که یک stored procedure برای انجام این عملیات را صدا میزند .
در این مثال اضافه کردن 100 آیتم به یک لیست 4.5 ثانیه طول می کشد .
اگر شما احتیاج دارید تا تعداد زیادی آیتم را بروز رسانی کنید بهتر است به جای استفاده از متد Update از تابعی به نام ProcessBatchData که توسط کلاس SPWeb قابل دسترسی می باشد استفاده کنید .
ProcessBatchData متدی که با فرمت XML ساخته می شود را اجرا میکند ( در [برای دیدن ادامه مطلب و یا لینکها باید ثبت نام کنید. ] میتوانید توضیحات بیشتری در این ضمینه کسب کنید ) ، نگاهی به مثال زیر بیاندازید :
StringBuilder query = new StringBuilder();
for (int itemIx=0;itemIx<100;itemIx++) {
query.AppendFormat("<Method ID=\"{0}\">" +
"<SetList>{1}</SetList>" +
"<SetVar Name=\"ID\">New</SetVar>" +
"<SetVar Name=\"Cmd\">Save</SetVar>" +
"<SetVar Name=\"{3}Title\">{2}</SetVar>" +
"</Method>", itemIx, listGuid, someValue, "urn:schemas-microsoft-com:office:office#");
}
SPContext.Current.Web.ProcessBatchData(string.Format(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
"<ows:Batch OnError=\"Return\">{0}</ows:Batch>", query.ToString()));
پس از اجرای این کد و مقایسه آن به روش قبلی میتوانید متوجه شوید که تقریبا 2 ثانیه اختلاف وجود دارد :
استفاده از این روش برای به روز رسانی تعداد زیادی آیتم بسیار مناسب می باشد ولی در هنگام استفاده از این روش باید نکات زیر را رعایت کنید :
- حتما از StringBuilder استفاده کنید نه String .
- فراخوانی ها را به قطعات کوچک تر تقسیم کنید تا با خطای حافظه مواجه نشوید .
- به عنوان پیشنهاد دیگر شما میتوانید از متد UpdateListItems وب سرویس نیز استفاده کنید .

6 – کدام لیست ها کند هستند ، چرا از آنها استفاده میکنیم و چرا کند هستند ؟
همانطور که میدانیم کارایی لیست ها با بالا رفتن تعداد آیتم ها کاهش می یابد ، در بیشتر سایت ها و بلاگ ها صحبت از 2000 آیتم میباشد اما این تعداد آیتم مشکل اصلی ما نمی باشد ، در حالت عادی شما میتوانید بیشتر از این هم آیتم در لیست ذخیره کنید ، همه ی اینها بستگی به این داره که چطور این لیست ها نمایش پیدا میکنند .
اما سوال اصلی در اینجا اینه که : چطور میتونیم مشخص کنیم کدام لیست ها باعث کاهش کارایی می شوند و به صورت عادی چگونه مورد استفاده قرار می گیرند ؟
در ابتدا ما نیاز به این داریم که نحوه استفاده از این لیست ها را مورد بررسی قرار داده و مشکلات ناشی از آن را استخراج کنیم .
راه های زیادی برای بررسی عملکرد و نحوه دسترسی به داده ها در شرپوینت وجود دارد ، شما میتوانید از فایل های IIS Logs استفاده کنید ( برای اطلاعات بیشتر [برای دیدن ادامه مطلب و یا لینکها باید ثبت نام کنید. ] را مطالعه کنید ) یا از [برای دیدن ادامه مطلب و یا لینکها باید ثبت نام کنید. ] استفاده کنید .
بهترین راه برای مانیتور کردن کارایی لیست ها آنالیز زمان پاسخ دهی HTTP به آدرس لیست و نما ها میباشد . آدرس یک لیست شرپوینت فرمتی به صورت زیر دارد :
[برای دیدن ادامه مطلب و یا لینکها باید ثبت نام کنید. ].
شما میتوانید توسط ابزار های مختلفی به آنالیز این زمان بپردازید ، در اینجا ما از ابزار [برای دیدن ادامه مطلب و یا لینکها باید ثبت نام کنید. ] محصول شرکت DynaTrace استفاده می کنیم ، در شکل زیر میتوانید نمایی از این سناریو را ملاحظه کنید :
نتایج بالا اشاره خوبی به لیست ها و نماهایی که به صورت معمول مورد استفاده قرار میگیرند دارد و اینکه چطور آن ها به خوبی اجرا می شوند ، همچنین در این انالیز فقط درخواست های HTTP مربوط به صفحات نمایش لیست ها و نماها مورد بررسی قرار گرفت ، ما میتوانیم کارایی لیست ها را با استفاده از وب پارت ها یا صفحات اختصاصی و همچنین دسترسی به بیش از یک لیست مورد بررسی قرار دهیم .
ما میتونیم این کار را توسط کلاس های شرپوینت مثل SPList ، SPView یا SPRequest.RenderViewAsHtml انجام بدیم . شکل زیر آنالیز لیست با استفاده از متد SPRequest را نمایش می دهد :
در شکل بالا به ما شناسه یکتای لیست نمایش داده شده ، هر لیست و نما در شرپوینت دارای یک شناسه یکتا از نوع GUID است . راه های زیادی برای بدست آوردن نام لیست وجود دارد ، به طور مثال شما میتوانید با قراردادن شناسه لیست در آدرس بار و رفتن به تنظیمات لیست نام آن را بدست آورید :
http://servername/_layouts/listedit.aspx?List={GUID}
با مشخص شدن لیست ها و نماهایی که دسترسی به آنها بیشتر است میتوانیم مواردی که باعث کاهش کارایی می شوند را بررسی و مشکلات مربوط به آنها را برطرف کنیم . مواردی که باعث کند شدن لیست ها می شوند اغلب شامل موارد زیر است :
- تعداد زیادی آیتم در نمای لیست ها نمایش داده شود .
- بالا بودن تعداد آیتم ها بدون داشتن **********گذاری و ایندکس کردن ستون ها
- دسترسی نادرست به داده ها از طریق وب پارت
مدل شی گرا شرپوینت امکانات بسیار زیادی را برای توسعه دهندگان فراهم کرده است تا بتوانند تغییرات مورد نظر را در محیط شرپوینت اعمال کنند و برای این کار راه های بسیار زیادی را در اختیار شما قرار داده است اما بسیار مهم است که هنگام پیاده سازی نرم افزارهای مبتنی بر شرپوینت کارایی آن را نیز مدنظر داشته باشید .
امیدوارم که این مطلب مورد استفاده شما عزیزان قرار گرفته باشد .
موفق و پیروز باشید .

ویرایش توسط mrc : 08-26-2010 در ساعت 02:11 PM.
mrc آفلاين است  
پاسخ با نقل قول
تعداد 2 کاربر از mrc عزیز به دلیل ارسال این پست مفید تشکر کرده اند :
قدیمی 08-26-2010, 02:01 PM   #7
mrc
كانديد مديريت بخش كامپيوتر
 
آواتار mrc
 
تاريخ عضويت: Jul 2010
محل سكونت: ايساتيس
پست ها: 659
حالت من:
امتیاز: 22,004, سطح: 20
امتیاز: 22,004, سطح: 20 امتیاز: 22,004, سطح: 20 امتیاز: 22,004, سطح: 20
صعود به سطح بالا: 76%, 396 امتیاز مورد نیاز
صعود به سطح بالا: 76% صعود به سطح بالا: 76% صعود به سطح بالا: 76%
فعالیت: 100%
فعالیت: 100% فعالیت: 100% فعالیت: 100%
تشکرها: 502
از ایشان در 440 پست 1,044 بار تشکر شده
قدرت امتیاز: 0 mrc عضو جدیدmrc عضو جدید
Wink افزایش سرعت و کارایی برنامه نویسی در شرپوینت ( بخش سوم )

با سلام
در ادامه مجموعه مقالات افزایش کارایی و برنامه نویسی در شرپوینت امروز میخواهم در مورد وب پارت مطالبی را خدمت شما ارائه کنم .
همه ما در ایجاد نرم افزارهای تحت شرپوینت نیاز به ایجاد وب پارت پیدا خواهیم کرد ، اما آیا تاکنون به فکر این بوده اید که چطور یک وب پارت با قابلیت و کارایی بهتر بنویسید ؟ برای پاسخ به این سوال به ادامه مقاله توجه کنید .
ASP.Net یا شرپوینت ؟
برای ایجاد وب پارت شما 2 انتخاب متفاوت دارید ، وب پارت ASP.Net و وب پارت شرپوینت !
اولی از فضای نام System.Web.UI.WebControls.WebParts استفاده میکند و دومی از فضای نام Microsoft.SharePoint.WebPartPages .
در واقع وب پارت های شرپوینت از زیر ساخت وب پارت های ASP.Net به ارث میبرند که در شکل زیر کاملا مشخص شده است :
چه موقع از وب پارت های ASP.Net استفاده می کنیم ؟
یکی از مهمترین مزیت هایی که این وب پارت ها برای ما دارند این است که شما میتوانید آنها را در پروژه های دات نت نیز به کار ببرید در واقع با یک تیر دو نشان بزنید . این مورد بیشتر زمانی استفاده می شود که شما بخواهید از وب پارتی که ایجاد میکنید برای مقاصد تجاری استفاده کنید و آن را محدود به شرپوینت نکنید . یکی دیگر از موارد استفده هنگامی است که میخواهید از این وب پارت برای کارهای ساده مثل کار با داده های لیست ها و سایر کامپوننت ها و امکانات شرپوینت استفاده کنید ، وقتی شما با استفاده از ویژوال استودیو و ابزار Visual Studio Extension for sharepoint اقدام به ایجاد وب پارت میکنید به صورت پیش فرض از کلاس System.Web.UI.WebControls.WebParts استفاده میکند .
چه موقع از وب پارت های شرپوینت استفاده می کنیم ؟
این نوع وب پارت ها که به نوعی از کلاس System.Web.UI.WebControls.WebParts به ارث برده می شوند البته همراه با قابلیت هایی که به آن اضافه گردیده برای شما امکانات بیشتری را فراهم میکند و در موارد زیر از این نوع وب پارت ها استفاده میکنیم :
· ارتباط بین وب پارت ها خارج از Webpart Zone
· وب پارت هایی که فقط قابلیت اجرا در محیط شرپوینت را داشته باشند .
· استفاده از ارتباطات کلاینت
· استفاده از زیرساختهای کش کردن اطلاعات
کش کردن اطلاعات
اما مهمترین موضوع مورد بحث ما در مورد کش کردن اطلاعات در وب پارت ها می باشد ، موضوعی که کمتر به آن اهمیت داده می شود و در برخی از موارد مشاهده شده که علت اصلی کند شدن سیستم و گذاشتن بار زیاد بر روی سرور می باشد .
فرض کنید وب پارتی را طراحی کرده اید که به طور مثال تمام وظایف یک شخص را در سطح فارم جمع آوری کرده و در وب پارت نمایش می دهد ، با فرض این مسئله متوجه خواهید شد که با هر بار لود شدن صفحه چه باری بر روی سرور گذاشته خواهد شد ؟
اما راه حل این موضوع استفاده از استراتژی های کش کردن اطلاعات برای افزایش کارایی می باشد .
اما راه های مختلفی برای استفاده از این امکانات وجود دارد ، یکی از این موارد استفاده از Output Cache می باشد که میتوانید آنرا در فایل Master Page قرار دهید تا برای تمام صفحات اعمال شود .
راه دیگر استفاده از کد در وب پارت با استفاده از آبجکت System.Web.Caching.Cache می باشد که در مورد این موضوع صحبت خواهیم کرد .
توابعی که برای کش کردن داده ها در اختیار شما قرار داده شده است شامل PartCacheRead ، PartCacheWrite و PartCacheInvalidate می باشد که به ترتیب برای خواندن داده ها از کش ، نوشتن بر روی آن و حذف اطلاعات از کش استفاده می شود .
در این قسمت ما وب پارتی ایجاد کرده و کدهای زیر را در قسمت Page Init وارد می کنیم :
if (this.PartCacheRead(Storage.Shared, "MyKey") == null)
{
this.PartCacheWrite(Storage.Shared, "MyKey", DateTime.Now.ToLongTimeString(), TimeSpan.FromSeconds(10));
}
در این مثال ما ابتدا چک میکنیم که درون کش مقداری ذخیره شده است یا خیر و اگر نباشد مقدار مورد نظر خود را درون کش ذخیره میکنیم .
متد PartCacheRead 2 پارامتر دارد که شامل موارد زیر است :
Storage : این پارمتر شامل سه مقدار Shared ، Personal و None می باشد که به ترتیب مقدار کش را برای همه کاربران ، به ازای هر کاربر و هیچ بر می پرگرداند که در مثال بالا مقدار کشی که برای همه کاربران ذخیره شده و به نوعی حالت عمومی دارد را در اختیار ما قرار میدهد .
Key : نام مقداری که درون کش ذخیره شده و باید فراخوانی شود .
با استفاده متد PartCacheWrite نیز مقدار دلخواه خود را در کش قرار میدهیم که شامل 4 پارامتر می باشد ، پارامترهایStorage و Key مانند متد PartCacheRead می باشد ، علاوه بر این دو متد ، متدهای دیگر این متد عبارتند از :
Value : آبجکتی است که میخواهیم درون کش ذخیره کنیم که از نوع System.Object میباشد .
TimeOut : زمانی بر اساس system.TimeSpan میباشد که بازه زمانی که مقدار کش به روز میشود را مشخص میکند .
در مثال بالا ما زمان حال را در کش قرار داده و هر 10 ثانیه یکبار آن را به روز میکنیم ، در واقع هر 10 ثانیه یکبار اطلاعات به روز میشوند و اگر قبل از این زمان صفحه دوباره لود شود عملیات دریافت اطلاعات انجام نمیشود ، این زمان بستگی به نحوه استفاده شما دارد که میتواند زمان بسیار بیشتری باشد ، به طور مثال اگر شما اطلاعاتی دارید که به صورت روزانه به روز میشوند دلیلی ندارد که زمان کمی را برای کش کردن در نظر بگیرید و به این صورت کارایی کدهای خود را بالا برده و سرور خود را از وجود بار زیاد حفظ میکنید .
اما اگر بخواهید در بین زمان تعیین شده اطلاعات را به روز کنید چه ؟ فرض کنید قسمتی را در وب پارت خود در نظر گرفته اید که کاربر علاوه بر اینکه وظایف خود را میبیند بتواند وظیفه ی جدیدی از طریق وب پارت شما ایجاد کند و پس از ایجاد بتواند آن را در لیست وظایف خود ببیند ، برای این کار شما کافیست در قسمتی که میخواهید اطلاعات به روز شوند از متد PartCacheInvalidate استفاده کنید ، این متد نیز از دو پارامتر Storage و Key تشکیل می شود :
void Button1_Click(object sender, EventArgs e)
{
this.PartCacheInvalidate(Storage.Shared, "MyKey");
}
پس از اجرای این متد مقدار MyKey از بین رفته و با اطلاعات جدید به روز می شود .
شما میتوانید وب پارتی که در این مقاله مثال زده شد که در واقع نمونه ی ساده ای از استفاده از کش کردن اطلاعات میباشد را [برای دیدن ادامه مطلب و یا لینکها باید ثبت نام کنید. ]دریافت کنید .
وب پارت ها یکی از مهمترین امکانات شرپوینت به حساب می آیند که کارایی بسیاری دارند و میتوانند در هر جایی از صفحات شما استفاده شوند و به این دلیل شما می بایست نهایت دقت را در پیاده سازی وب پارت ها انجام دهید و از تمام تکنیک های موجود استفاده کنید تا بهترین کارایی را برای شما داشته باشد .
از دیگر مقالات بسیار خوب و کاربردی می توان مقالات زیر را معرفی کرد که امیدوارم آنها را به دقت مطالعه کنید :
[برای دیدن ادامه مطلب و یا لینکها باید ثبت نام کنید. ]
[برای دیدن ادامه مطلب و یا لینکها باید ثبت نام کنید. ]
امیدوارم این مقاله برای شما مفید بوده باشه .
موفق و پیروز باشید .

ویرایش توسط mrc : 08-26-2010 در ساعت 02:12 PM.
mrc آفلاين است  
پاسخ با نقل قول
کاربر روبرو از mrc عزیز به دلیل ارسال این پست مفید تشکر کرده است:
قدیمی 08-26-2010, 02:02 PM   #8
mrc
كانديد مديريت بخش كامپيوتر
 
آواتار mrc
 
تاريخ عضويت: Jul 2010
محل سكونت: ايساتيس
پست ها: 659
حالت من:
امتیاز: 22,004, سطح: 20
امتیاز: 22,004, سطح: 20 امتیاز: 22,004, سطح: 20 امتیاز: 22,004, سطح: 20
صعود به سطح بالا: 76%, 396 امتیاز مورد نیاز
صعود به سطح بالا: 76% صعود به سطح بالا: 76% صعود به سطح بالا: 76%
فعالیت: 100%
فعالیت: 100% فعالیت: 100% فعالیت: 100%
تشکرها: 502
از ایشان در 440 پست 1,044 بار تشکر شده
قدرت امتیاز: 0 mrc عضو جدیدmrc عضو جدید
Wink افزایش سرعت و کارایی برنامه نویسی در شرپوینت ( بخش چهارم )

با سلام خدمت دوستان و همراهان عزیز و گرامی .
در ادامه مجموعه مقالات افزایش کارایی در شرپوینت امروز نکات دیگری را برای افزایش سرعت و کارایی در شرپوینت به شما دوستان عزیز ارائه خواهم کرد و امیدوارم از این مقاله نیز استفاده لازم را ببرید .
در مقاله امروز زیاد با برنامه نویسی کاری نداریم و نحوه بهینه سازی محتوای صفحات شرپوینت قبل از ارسال به مرورگر را بررسی خواهیم کرد( admin های عزیز شرپوینت حتما این مقاله را بخوانند ! ) ، در بیشتر موارد این کار بین 50 تا 80 درصد کاهش ترافیک و تقریبا 30 درصد افزایش سرعت را در بر خواهد داشت !
به طور خلاصه برای اینکار شما احتیاج هست که دو مورد زیر را انجام دهید :
1 – فعال کردن Blob Caching
2 – فعال کردن فشرده سازی ( بیشتر برنامه نویسان دات نت خوب با این موضوع آشنایی دارند )
- فعال کردن Blob Caching
Blob یا Binary Large Objects Cache یکی از مهمترین امکانات برای کش کردن آبکجت هایی مثل تصاویر ، صداها و ویدئو ها می باشد که این اطلاعات را یکبار از دیتابیس فراخوانی کرده و بر روی سرور و یا کلاینت ذخیره میکند ، در واقع Blob Caching توانایی انجام کارهای زیر را دارد :
1- ذخیره آبجکت ها بر روی هارد دیسک سرور ( به منظور کاهش فراخوانی های دیتابیس )
2- کش کردن آیتم ها در کلاینت ( برای کاهش درخواست ها به سرور )
اما چطور میتونیم این امکان رو در شرپوینت فعال کنیم ؟
ابتدا یک کپی از فایل Web.config سایت مورد نظر بگیرید و سپس آن را باز کنید و در قسمت configSectionsبه دنبال <sectionGroupname="SharePoint">بگردید ، و در این تگ و قبل از بسته شدن آن تگ زیر را وارد کنید ( البته اگر این تگ وجود داشت این مرحله را نادیده گرفته و به مرحله بعدی بروید ) :
<sectionname="BlobCache"type="System.Configuration.SingleTagSectionHandler, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ />
سپس به دنبال تگ BlobCache بگردید ، BlobCach به صورت پیش فرض غیرفعال می باشد و برای فعال کردن ان شما می بایست مقدار Enable را به True تغییر دهید :
<BlobCachelocation="C:\blobCache" path="\.(gif|jpg|png|css|js)$" maxSize="10" max-age="86400" enabled="true"/>
Location محل ذخیره سازی فایل های کش شده می باشد .
Path **********ی است برای مشخص کردن فایل هایی که می خواهید کش شوند .
maxSize مقدار فضایی است که میخواهید برای کش کردن اطلاعات اختصاص دهید ( به گیگابایت ) .
Max-age : ماکسیمم زمانی است که مرورگر کلاینت اطلاعات کش شده را دریافت میکند ( به ثانیه )
Enable برای فعال و یا غیرفعال کردن این ویژگی به کار میرود .
- فعال کردن فشرده سازی
فشرده سازی یکی از امکانات بسیار خوب IIS نسخه 6 می باشد که به صورت پیش فرض غیر فعال است .
با فعال کردن فشرده سازی IIS فقط فایل های زیر را میتواند فشرده سازی کند :
- فایل های استاتیک مثل HTM ، CSS ، txt
- فایل های داینامیک مثل asp ، dll و یا exe
به خاطر داشته باشید که شرپوینت هم فایل های استاتیک و هم فایل های داینامیک را رندر میکند ، تقریبا تمام فایل هایی که از _Layouts و _Vti_bin رندر می شوند استاتیک هستند . تمام فایل هایی که در ریشه قرار دارند داینامیک هستند و با فعال کردن فشرده سازی ، این امکان برای فایل های استاتیک و داینامیک در شرپوینت فعال می شود .
قبل از اینکه این امکان را فعال کنیدحتما یک نسخه پشتیبان از سایت خود بگیرید ، Command Prompt را باز کنید و به آدرس به systemdrive%\inetpub\AdminScripts تغییر دهید .
برای فایل های استاتیک دو دستور زیر را اجرا کنید :
  • CSCRIPT.EXE ADSUTIL.VBS SET W3Svc/Filters/Compression/GZIP/HcFileExtensions "css" "htc" "htm" "html" "js" "txt"
  • CSCRIPT.EXE ADSUTIL.VBS SET W3Svc/Filters/Compression/DEFLATE/HcFileExtensions "css" "htc" "htm" "html" "js" "txt"
و برای فایلهای داینامیک دستورات زیر را :
  • CSCRIPT.EXE ADSUTIL.VBS SET W3Svc/Filters/Compression/DEFLATE/HcScriptFileExtensions "asp" "asmx" "aspx" "dll"
  • CSCRIPT.EXE ADSUTIL.VBS SET W3Svc/Filters/Compression/GZIP/HcScriptFileExtensions "asp" "asmx" "aspx" "dll"
در برخی موارد اضافه کردن فایل های dll ممکن است کارایی شما را کاهش دهد ، برای درک بهتر مفهوم فشرده سازی و استفاده بهتر از آن پیشنهاد میکنم مقالات [برای دیدن ادامه مطلب و یا لینکها باید ثبت نام کنید. ]و [برای دیدن ادامه مطلب و یا لینکها باید ثبت نام کنید. ]را مطالعه کنید .
بعد از فعال کردن فشرده سازی میتوانید میزان فشرده سازی را با دستورات زیر تعیین کنید :
  • CSCRIPT.EXE ADSUTIL.VBS SET W3Svc/Filters/Compression/GZIP/HcDynamicCompressionLevel "9"
  • CSCRIPT.EXE ADSUTIL.VBS SET W3Svc/Filters/Compression/DEFLATE/HcDynamicCompressionLevel "9"
مقدار فشرده سازی بین 0 تا 10 است ( به صورت پیش فرض 0 می باشد ) ، اگر میزان آنرا بر روی مقادیر کمتر تعیین کنید منابع پردازنده و حافظه کمتر اشغال می شوند و اگر بر روی مقادیر بالا تنظیم شود میزان استفاده از پردازنده و حافظه بیشتر میشوند و فایل های کوچک نیز فشرده میشوند در حالی که در مقادیر پایین تر بیشتر فایلهای بزرگ فشرده سازی میشوند .
و در آخرین مرحله می بایست دستور IISReset را اجرا کنید .
اگر مشکلی با دریافت فایلهای Zip در شرپوینت به وجود آمد میتوانید [برای دیدن ادامه مطلب و یا لینکها باید ثبت نام کنید. ] را بخوانید .
- اصلاح MasterPage و Page Layouts
این کار کمی سخت تر و زمان گیر تر میباشد اما نتایج بسیار مثبتی دارد ، آیا تاکنون به وجود تعداد بسیار زیاد آیکون ها توجه کرده اید ؟ شما می بایست فایل های اضافی Layouts را پاک کنید ، در گوگل به دنبال عباراتی مثل [برای دیدن ادامه مطلب و یا لینکها باید ثبت نام کنید. ]و [برای دیدن ادامه مطلب و یا لینکها باید ثبت نام کنید. ]بگردید و بینید در مقالاتی که مطرح شده چه کارهایی را انجام دادند ، به طور مثال کارهایی که میتوانید در طراحی مجدد صفحات انجام دهید شامل موارد زیر است :
- پاک کردن وب پارت های مخفی از صفحات ( بعضی از صفحات ممکن است بیش از 20 مگابایت اطلاعات را لود کنند ! و این ممکن است به شدت کارایی شرپوینت را کاهش دهد )
- حذف وب پارت مدیریت محتوا ( content editor webpart ) – [برای دیدن ادامه مطلب و یا لینکها باید ثبت نام کنید. ] میتوانید دلیل آن را بخوانید .
- تعداد master Page های سایت خود را به 1 کاهش دهید ( بله ، این نکته هم بسیار تاثیر گذار است ، مخصوصا در سایت های اینترنتی )
اما نتایجی که شما بعد از عملیات 1 و 2 ( به جز مورد آخر ) به دست می آورید شبیه این موارد خواهد بود :

Original
Optimised
Improvement
Request Count
32
5
84%
Bytes Sent
16,969
3,360
80%
Bytes Received
172,899
31,223
82%
Aggregate Session time
00:00:01:4420
00:00:00:9213
36%
منابع و مقالات مرتبط :
[برای دیدن ادامه مطلب و یا لینکها باید ثبت نام کنید. ]
[برای دیدن ادامه مطلب و یا لینکها باید ثبت نام کنید. ]
[برای دیدن ادامه مطلب و یا لینکها باید ثبت نام کنید. ]
[برای دیدن ادامه مطلب و یا لینکها باید ثبت نام کنید. ]
[برای دیدن ادامه مطلب و یا لینکها باید ثبت نام کنید. ]
[برای دیدن ادامه مطلب و یا لینکها باید ثبت نام کنید. ]
[برای دیدن ادامه مطلب و یا لینکها باید ثبت نام کنید. ]
منتظر نظرات شما هستم .
موفق و پیروز باشید

ویرایش توسط mrc : 08-26-2010 در ساعت 02:13 PM.
mrc آفلاين است  
پاسخ با نقل قول
کاربر روبرو از mrc عزیز به دلیل ارسال این پست مفید تشکر کرده است:
قدیمی 08-26-2010, 02:03 PM   #9
mrc
كانديد مديريت بخش كامپيوتر
 
آواتار mrc
 
تاريخ عضويت: Jul 2010
محل سكونت: ايساتيس
پست ها: 659
حالت من:
امتیاز: 22,004, سطح: 20
امتیاز: 22,004, سطح: 20 امتیاز: 22,004, سطح: 20 امتیاز: 22,004, سطح: 20
صعود به سطح بالا: 76%, 396 امتیاز مورد نیاز
صعود به سطح بالا: 76% صعود به سطح بالا: 76% صعود به سطح بالا: 76%
فعالیت: 100%
فعالیت: 100% فعالیت: 100% فعالیت: 100%
تشکرها: 502
از ایشان در 440 پست 1,044 بار تشکر شده
قدرت امتیاز: 0 mrc عضو جدیدmrc عضو جدید
Wink Backup و Restore از طریق آبجکت مدل

با سلام خدمت دوستان عزیز و گرامی
امروز میخواهم برای شما مطالبی در مورد Backup و Restore از طریق آبجکت مدل شرپوینت ارائه کنم .
اگر شما نیاز به کپی یا انتقال یک وب یا سایت داشته باشید انتخاب های محدودی پیش رو خواهید داشت :
- استفاده از امکانات Backup و Restore موجود در Central Administration
- استفاده از stsadm و دستور backup و Restore
- استفاده از شرپوینت دیزاینر و امکاناتی که در این نرم افزار برای Backup و Restore در نظر گرفته شده
در هر کدام از موارد بالا محدودیت ها و مشکلاتی در پیشروی شما قرار دارد ، به عنوان مثال با استفاده از امکانات Central Administration شما نمیتوانید از سایت ها و وب ها به صورت تکی نسخه پشتیبان تهیه کنید و حتما میبایست یک Web Application را به صورت کامل backup بگیرید .
یا در استفاده از دستورات stsadm مشکلاتی در ضمینه حجم backup گیری وجود دارد که شما نمیتوانید سایتی که بیش از 15 گیگابایت حجم داشته باشد را backup بگیرید و یا اگر از سرویس پک 2 استفاده میکنید باید از setsitelock استفاده کنید که در این صورت سایت شما تا انتهای عملیات به صورت فقط خواندنی تغییر خواهد یافت ، در ضمن Alert و فرایند ها نیز در Backup گیری نادیده گرفته می شوند ! و برای Restore کردن هم مشکلات زیادی وجود خواهد داشت .
با استفاده از شرپوینت دیزاینر هم میتوانید عملیات Backup و Restore را انجام دهید که البته مشکلات کمتری هم نسبت به دو مورد بالا دارد ( البته بسیار عجیب است که این امکانات در شرپوینت دیزاینر 2010 حذف شده ! )
اما شما میتوانید از کلاسهای SPExport و SPImport نیز استفاده کنید ، این دو کلاس در فضای نام Microsoft.SharePoint.Deployment قرار دارد . این کلاس های به صورت پیش فرض توابعی را برای گرفتن Backup و Restore از سایت ، وب ، لیستها و بیشتر آبجکت های موجود در شرپوینت در خود دارند .
به مثال زیر توجه کنید :
SPExportSettings settings = new SPExportSettings();
settings.FileLocation = @"C:\SPBackup";
settings.SiteUrl = "http://myServer/mySite";
settings.FileCompression = true;
settings.OverwriteExistingDataFile = true;
settings.BaseFileName = "export";
SPExport export = new SPExport(settings);
export.Run();
برای تنظیمات مربوط به Backup ما از کلاس SPExportSettings استفاده میکنیم ، با اجرای کد بالا فایلی با نام export.cmp در c:\SPBackup ایجاد میشود که در واقع از سایتی با آدرس http:/myServer/mySite یک نسخه پشتیبان گرفته میشود . با استفاده از FileCompression از تکنیکهای فشرده سازی نیز برای backup استفاده میشود ، OverwriteExistingDataFile مشخص میکند که اگر فایلی با این وجود داشته باشد فایل جدید را جایگزین فایل قبلی کند و سایر تنظیمات مثل FileLocation ، SiteUrl و BaseFileName نیز به ترتیب مشخص کننده محل ذخیره فایل Backup ، آدرس سایت و نام فایل می باشد .
در مثال زیر ما با استفاده از کلاس SPImport سایتی را که از آن نسخه پشتیبان تهیه کرده بودیم ، Restore میکنیم :
SPImportSettings settings = new SPImportSettings();
settings.FileLocation = @"C:\SPBackup";
settings.BaseFileName = "export";
SPImport import = new SPImport(settings);
import.Run();
در این مثال هم پارامترهای یکسانی برای تنظیمات نحوه Restore وجود دارد ، اما تنظیمات دیگری هم برای این 2 کلاس وجود دارد ، مانند CommandLineVerbose که اگر مقدار True داشته باشد مراحل اجرا را در کنسول به شما نمایش می دهد ، در واقع در این مثال ما از تنظیمات پیش فرض استفاده کردیم ، شما میتوانید با توجه به نیازهای خود این تنظیمات را اعمال کنید .
موفق و پیروز باشید .

ویرایش توسط mrc : 08-26-2010 در ساعت 02:13 PM.
mrc آفلاين است  
پاسخ با نقل قول
تعداد 2 کاربر از mrc عزیز به دلیل ارسال این پست مفید تشکر کرده اند :
قدیمی 08-26-2010, 02:07 PM   #10
mrc
كانديد مديريت بخش كامپيوتر
 
آواتار mrc
 
تاريخ عضويت: Jul 2010
محل سكونت: ايساتيس
پست ها: 659
حالت من:
امتیاز: 22,004, سطح: 20
امتیاز: 22,004, سطح: 20 امتیاز: 22,004, سطح: 20 امتیاز: 22,004, سطح: 20
صعود به سطح بالا: 76%, 396 امتیاز مورد نیاز
صعود به سطح بالا: 76% صعود به سطح بالا: 76% صعود به سطح بالا: 76%
فعالیت: 100%
فعالیت: 100% فعالیت: 100% فعالیت: 100%
تشکرها: 502
از ایشان در 440 پست 1,044 بار تشکر شده
قدرت امتیاز: 0 mrc عضو جدیدmrc عضو جدید
Wink تغییر آیکون فایل های ناشناخته در شرپوینت 2010

یکی از مواردی که در هنگام کار کردن با شرپوینت با آن مواجه میشوید این است که اگر فایلی را که نوع آن در شرپوینت موجود نیست در یک مخزن اسناد آپلود کنید آیکون آن به صورت blank نمایش داده میشود مثل فایل های PDF که همچنان در شرپوینت 2010 هم آیکونی برای آن در نظر گرفته نشده :
برای تغییر این آیکون ها برای فایلهای PDF و یا هر نوع فایل دیگری ابتدا به مسیر زیر بروید :
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\IMAGES
تصویری با اندازه 16 * 16 در این فولدر قرار دهید ( اکثر آیکون هایی که در فولدر برای انواع مختلف فایل ها وجود دارند با ic شروع شده اند ، شما نیز میتوانید از همین استاندارد استفاده کنید که دراین مثال ما نام فایل را icpdf.gif قرار می دهیم )
بعد از کپی کردن تصویر به آدرس زیر بروید :
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\XML
فایل docIcon.xml را باز کنید و خط زیر را در تگ ByExtension اضافه کنید ( Backup گرفتن از این فایل را فراموش نکنید ):
<Mapping Key="pdf" Value="icpdf.gif"/>
بعد از ذخیره کردن این فایل می بایست دستور IISReset را اجرا کنید و بعد میتوانید به مخزن اسناد رفته تا فایل های خود را با آیکونی که به آنها اختصاص دادید مشاهده کنید ، شما میتوانید همین مراحل را برای انواع دیگر فایل ها نیز به کار ببرید .
موفق و پیروز باشید .

ویرایش توسط mrc : 08-26-2010 در ساعت 02:14 PM.
mrc آفلاين است  
پاسخ با نقل قول
تعداد 2 کاربر از mrc عزیز به دلیل ارسال این پست مفید تشکر کرده اند :
پاسخ

علاقه مندی ها (Bookmarks)


كاربران در حال ديدن تاپیک: 1 (0 عضو و 1 مهمان)
 
ابزارهاي تاپیک
نحوه نمايش

قوانين ارسال
شما نمیتوانید موضوع جدیدی ارسال کنید
شما امکان ارسال پاسخ را ندارید
شما نمیتوانید فایل پیوست در پست خود ضمیمه کنید
شما نمیتوانید پست های خود را ویرایش کنید

BB code is فعال
شکلکها فعال است
كد [IMG] فعال است
كدهاي HTML غير فعال است

مراجعه سریع


زمان محلی شما با تنظیم GMT +4.5 هم اکنون 12:42 AM میباشد.


Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
شــوکـا سـیـسـتـم