آی تی نرد

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

تاریخ و تقویم شمسی برای BlogEngine - Frontend

اصولا می بایست با تغییر فرهنگ(Culture) یک برنامه ی Asp.net که در زمان تغییر زبان برنامه صورت میگیرد، تمام محیط برنامه که از این فرهنگ پشتیبانی میکند به فرهنگ مورد نظر تغییر یابد.

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

این هم به این دلیل هست که کلاس PersianCalendar ی که مایکروسافت به صورت پیشفرض در دات نت قرار داده دچار مشکل هست یا به هر حال کامل نیست به همین دلیل با فیکس کردن این کلاس و اختصاص آن به فرهنگ fa-ir این مشکل یا ضعف برطرف خواهد شد.

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

ابتدا کلاس PersianCulture رو از انتهای پست دانلود کنید. بعد اون رو به پروژه ی وب و در پوشه ی برای مثال app_code اضافه کنید.

در مرحله ی بعد هم کلاس site.master.cs مربوط به تم مورد نظرتان را باز کرده و دو خط کد زیر رو به قسمت لود صفحه اضافه کنید(این کد چک میکنه که اگر فرهنگ برنامه به فارسی تغییر کرده، فرهنگ به همراه تاریخ اصلاح شده رو با فرهنگ جاری جایگزین میکنه):

بیشتر...

رفع مشکل اسکرول شیرپوینت در مرورگرهای غیر 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){
		
}

 

ویجت نمایش آماری کاربران آنلاین و بازدیدها برای BlogEngine 2

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

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


English Content:
Visits and Online Users Statistics Widget. In technical terms this widget uses a HttpModule to provide unprocessed Analytics Data in Memory, then the widget will proccess and use this data in order to show this Statistics:

  • Online Users count
  • Guest Users count
  • Today Visits count
  • Yesterday Visits count
  • Total Visits count

After processing it will clear the memory and dump statistics to file and it will repeat this steps periodically.

If you install the widget by admin section of blog(admin/Extensions/WidgetGallery.cshtml) it will not gonna update web.config file(probably can't change it's own config).

If this is the case then you have an useless file(web.config.transform) is added to your root, you can open it with notepad and see the place where its Module Tag should go.
Mentioned Module Tag must be added to the "<modules runAllManagedModulesForAllRequests="true">" section of web.config file like this:

بیشتر...





راهکار مدیریت اجرای(شروع) گردش کارها در شرپوینت 2010

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

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

برای رفع این ضعف(البته شاید واقعا ضعف نباشه چون مایکروسافت عمدا این امکان رو از شرپوینت 2007 به بعد برداشت، احتمالا به دلایل امنیتی) من راهکاری نوشتم که این مشکل رو حل و مرتفع میکنه.

این راهکار وظیفه ی مدیریت شروع و رویداد شروع(Start event) گردش کارها رو بر عهده داره مخصوصا برای کاربر ناشناس. لیست زیر برخی از ویژگی ها و امکانات این راهکار رو شرح میده:

  1. اسکوپ راهکار در سطح سایت هست و نه مجموعه سایت بنابراین امکان استفاده از راهکار در تمامی ساب سایت ها به صورت مجزا هم هست.
  2. نصب و پیکره بندی بسیار راحت، فقط کافیه نصب کنید و پس از فعال سازی ویژگی اون، راهکار آماده ی استفاده هست(نیازی به ایجاد لیست اضافه و یا تنظیم خاصی نداره).
  3. امکان تعریف چندین تنظیم گردش کار، برروی یک لیست.
  4. قابلیت تعیین OnBehalf یا شخص شروع کننده ی گردش کار به جای کاربر ناشناس.
  5. امکان توقف موقت تنظیم گردش کار برروی لیست.
  6. امکان مدیریت شروع تمام گردش کارها و نه فقط گردش کارهایی که برای کاربر ناشناس تنظیم شده است.

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

بیشتر...

ابزاری برای Pack و Unpack کردن فایلهای wsp شرپوینت

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

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

به همین منظور شما با استفاده از ابزار ساده ای که من نوشتم میتونید به راحتی این عملیات رو انجام بدید(البته حداقل دات نت فریم ورک 3.5 مورد نیاز هست).

روش کار هم بسیار ساده هست، دو تب برای Unpack و Pack کردن در پنجره ی اصلی برنامه وجود دارد که با کشیدن و رها کردن فایل wsp در تب Unpack مابقی اطلاعات ورودی مورد نیاز به صورت پیشفرض مقدار دهی خواهد شد و شما فقط کافیه که روی دکمه ی Unpack کلیک کنید تا محتویات فایل به صورت unpack شده در کنار فایل اصلی قرار بگیره بعد تغییرات مورد نیاز رو اعمال کنید و در تب pack روی دکمه ی pack کلیک کنید تا مجددا فایل wsp ایجاد بشه(البته حواستون باشه overwrite نشه).

بیشتر...