آی تی نرد

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

نصب مرحله به مرحله ی SharePoint Server 2010 به صورت Server Farm بر روی Windows 7 64bit

من خودم به عنوان یه Developer ترجیح میدم که شرپوینت رو روی ویندوز 7 ی نصب کنم که همه ی کارهای فنیم رو با اون انجام میدم منظورم اینه که کار کردن با ویندوزهای سرور اون هم با اون سنگینیش و کلی اضافات مثل اکتیودایرکتوری و غیره برای من به شخصه اذیت کننده هست. بنابراین من از طریق روشی که خیلی هم سخت و فنی نیست که در ادامه شرح خواهم داد شرپوینت رو روی ویندوز 7 نصب میکنم(جسارتا من توی این مقاله مخاطب خودمو یه Nerd در نظر گرفتم)، البته ناگفته نماند که در محیط های سازمانی و Production این روش درست نیست و بهتره به صورت نرمال و روی ویندوز سرور نصب بشه.

آماده سازی برای نصب شرپوینت:

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

  1. Windows 7 x64 SP1
  2. Sharepoint Server 2010
  3. Sql Server 2008 R2 OR Sql Server 2012

و پیش نیاز های شرپوینت که برای SQL 2008 و 2012 یکی هست:

  1. Microsoft Sync Framework Runtime v1.0 (x64)
  2. SQL Server 2008 Native Client
  3. Windows Identity Framework (Win2008 R2)
  4. ADO.NET Data Services v1.5 CTP2 (Win2008 SP2)
  5. Microsoft Chart Controls for the Microsoft .NET Framework 3.5
  6. Microsoft SQL Server 2008 Analysis Services ADOMD.NET

خب پس از نصب ویندوز، SQL Server رو نصب کنید که حداقل ویژگیهایی که میتونید تیک بزنید Database Engine و Managment Tools هست که مابقی مثل Reporting Service و غیره بستگی به نیاز شما داره.

بیشتر...

نصب و پیکره بندی Office Web Apps 2010 برروی ویندوز 7

توی این مطلب روش نصب OWA یا همان Office Web Apps رو روی ویندوز 7 شرح خواهم داد. تمام مراحل انجام شده در این مطلب به جز قسمت دستکاری فایل های کانفیگ ستاپ، قابل استفاده برای نصب به صورت معمولی و استاندارد در ویندوز سرور نیز خواهد بود.
توجه داشته باشید که این روش نصب برروی ویندوز 7 تنها می بایست در محیط های آزمایشی و تولید و توسعه استفاده شود و در محیط های سازمانی می بایست از همان روش استاندارد و معمولی استفاده کنید.

ابتدا خود نرم افزار OWA رو از سایت مایکروسافت به همراه سرویس پک 2 دانلود کنید البته من خودم از این نسخه استفاده نکردم ولی فکر نمیکنم تفاوتی داشته باشه، نسخه ی کامل به همراه سرویس پک 2 رو من توی رپیدباز توی این آدرس گذاشتم که البته باید حتما عضو باشید تا بتونید لینک اصلی دانلود رو ببینید:
دانلود از لینکدانی رپیدباز

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

"E:\Development\SharePoint 2010\OWA2010.exe" /extract:"E:\Development\OWA_Extracted"

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

بیشتر...



انتقال یک یا چند مجموعه سایت به دیتابیس دیگر و یا وب اپلیکیشن دیگر

سلام به دوستان

یه روزی به دلایلی نیاز داشتم که که چندتا مجموعه سایت رو که داخل یک دیتابیس بودند رو به یک وب اپلیکیشن دیگه منتقل کنم چندتا سرچ که کردم مطالبی که پیدا میشد مربوط به انتقال یک یا چند مجموعه سایت به یک دیتابیس دیگه بود. که دستوراتش به صورت زیر بود : (دستور زیر برای انتقال یک مجموعه سایت به دیتابیس میباشد)

Move-SPSite <http://ServerName/Sites/SiteName> -DestinationDatabase <DestinationContentDb>

 

که پارامتر اول نام مجموعه سایت و پارامتر دوم نام دیتابیسی که قصد انتقال به اون رو دارید هست.

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

Get-SPSite -ContentDatabase <SourceContentDb> | Move-SPSite -DestinationDatabase <DestinationContentDb>

 

بخش اول دستور تمام مجموعه سایت هایی که داخل دیبتابیس <SourceContentDb> باشه رو برمیگردونه و به بخش دوم دستور پاس میده از اونجایی که پارامتر پیشفرض دستور Move-SPSite نام مجموعه سایت یا آبجکت SPSite هست به ازای هر مجموعه سایت اونها رو به دیتابیس <DestinationContentDb> منتقل میکنه.

با تمام توضیحات که دادم هنوز مشکل من حل نشده بود چون من میخواستم چند تا مجموعه سایت رو به یک وب اپلیکیشن (WebApplication) دیگه منتقل کنم.

اگه دستورات بالا رو برای این منظور استفاده کنید به خطای زیر بر میخورید :

 The site collection being moved and the destination content database must be within the same Web application.

 

این پیغام میگه که مجموعه سایت و دیتابیس مقصد باید در یک وب اپلیکیشن باشند!

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

راه حلی که به ذهن من رسید این بود : 

بیشتر...

متد استخراج یا یافتن لیست و فیلد توسط مقادیر مختلف در شرپوینت

یکی از مشکلاتی که یک برنامه نویس شرپوینت باهاش زیاد مواجه میشه دسترسی و استخراج یا یافتن یک آبجکت شرپوینتی مانند لیست یا فیلد هست.
یه مفهومی که همیشه وجود داره این هست که اضافه کردن لایه های مختلف و دور کردن برنامه نویس از لایه های پایین هم باعث راحتی برنامه نویس و هم سختی بیش از حد اون خواهد شد.
برای مثال در Asp.Net Web Forms وجود لایه های بسیار برای راحتی کار برنامه نویس مثل داشتن کنترل های سروری به قیمت سختی یافتن مشکل و همچنین سنگین شدن برنامه ی نهایی تمام خواهد شد.

در این مورد برای دسترسی به یک لیست شرپوینت و عملیات برروی آن نیاز هست تا برنامه نویس مشخصاتی از قبیل نام نمایشی(DisplayName) یا نام ثابت(StaticName) و یا نام داخلی(InternalName) و یا شناسه ی لیست(ID or Guid) را داشته باشد.

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

بیشتر...

رفع مشکل اسکرول شیرپوینت در مرورگرهای غیر IE مانند کروم

سلام به دوستان

يکي از مشکلاتي که ممکنه کاربران علاقمند به شيرپوينت در کار با اون مواجه شده باشند کار با شيرپوينت در مرورگرهاي غير IE است که باعث برخي اختلالات ظاهري در استفاده از شيرپوينت ميشود.

اولين مشکل شيرپوينت با مرورگر کروم عدم نمايش اسکرول (Scroll) در برخي صفحات ميباشد که اين مشکل بخاطر اجرا نشدن به موقع برخي توابع جاوا اسکرييپتي شيرپوينت ميباشد.

براي رفع اين مشکل بايد تابع جاوا اسکريپت زير رو در پايان صفحه فراخواني کرد.

FixRibbonAndWorkspaceDimensions();

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

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

try{
			var str=window.location.href.toLowerCase();
			var IsDLG = true;
			if(str.search("isdlg=1") == -1)
			IsDLG = false;
			if(IsDLG == false)
			{
				FixRibbonAndWorkspaceDimensions();
			}
				
}catch(err){
		
}