چطور وقایع پیرامون ما در نتیجه تصمیم ما تاثیر می گذارند؟

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

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

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

تاثیر بر مدیران

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

تاثیر در برنامه نویسان

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

تاثیر بر فروشندگان

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

آنچه گفته شد بدین معنی نیست که :

- روش های موجود مدیریتی را تغییر ندهیم

- متدها، الگوها و ابزارهای جدید برنامه نویسی را نیاموزیم و از آنها استفاده نکنیم

- ایده های نوین فروش را آزمایش نکنیم.

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

 

چگونه در شیرپوینت 2013 سیستم تیکتینگ بسازیم؟

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

نیازهای یک سیستم تیکتینگ:

  • امکان اعلام مشکل (Issue) از طرف همه کاربران
  • مشکلات با وضعیت های (باز، پاسخ داده شده، بسته) قابل تفکیک باشند
  • پی گیری مشکل اعلام شده توسط درخواست دهنده
  • ارجاع مشکل توسط کارشناس توزیع درخواست ها به کارشناس مرتبط
  • ثبت پاسخ توسط کارشناس مرتبط

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

 
 طراحی فرم اعلام مشکل

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

مزایا:

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

معایب:

  • نیاز به فرم سرور برای نمایش فرم ها که به معنای نیاز به استفاده از نسخه Portal Server شیرپوینت است.
  • کندی نمایش فرم ها در مواردی که قرار است از شبکه اینترنت برای نمایش فرم ها استفاده شود.

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

  • "گروه"  را از نوع Choice با مقادیر مورد نظر خود مانند: شبکه، نرم افزار، اینترنت، سخت افزار و ... 
  • "شرح" را از نوع Text Box Multi Line 
  • "درجه اهمیت" را از نوع Choice با مقادیر "مهم، معمولی، کم"
  • "انجام دهنده" از نوع User
  • "پاسخ" را از نوع Text Box Multi Line 
  • "تاریخ انجام" را از نوع Date
  • "وضعیت" از نوع Choice با مقادیر "باز ، پاسخ داده شده، بسته"

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

رفع مسائل

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

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

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

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

    تکمیل راهکار

    برای تکمیل راهکار یک لیست از نوع Status می سازیم و برای نمایش تعداد کارهای پاسخ داده شده نسبت به کارهای باز از آن استفاده می کنیم.
    گردش کار کوچکی هم می سازیم و به لیست انتساب می دهیم که هر زمان آیتمی ایجاد شد یا تغییر کرد گردش شروع شود و در صورتی که کاربر تغییر دهنده با کاربر ایجاد کننده آیتم یکسان است وضعیت تیکت را به "باز" تغییر دهد"
     
     

    شیرپوینت 2013 - لیست گفتگو

    قبلا در پست شیرپوینت 2013 - لیست وظایف به معرفی ویژگی های شیرپوینت 2013 از منظر امکانات لیست وظایف پرداختیم. در ادامه بررسی قابلیت های شیرپوینت 2013 و در این پست به معرفی لیست گفتگو (Discussion List) می پردازیم​.

    لیست گفتگو برای ایجاد ساختارهایی نظیر FAQ و Forum در شیرپوینت مورد استفاده قرار می گیرد. و هدف از آن فراهم کردن امکان گفت و شنید بر روی موضوعاتی است که در این لیست ثبت می شوند.

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

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

    • موارد اخیر (Recent): موضوعاتی را که اخیر ایجاد شده و یا تغییر داده شده اند نمایش می دهد.
    • گفتگوهای من: موضوعاتی را نمایش می دهد که توسط کاربر جاری ثبت شده باشد.
    • سوالات بدون پاسخ: موضوعاتی را نشان می دهد که سوال هستند و تا کنون هیچ پاسخی برای آن ثبت نشده است.
    • سوالات پاسخ داده: موضوعاتی را نشان می دهد که سوال هستند و حداقل یک پاسخ برای آن ها ثبت شده است.
    • ویژه (Feautured): موضوعاتی را نمایش می دهد که در در زمان ثبت یا ویرایش به عنوان ویژه تعیین شده باشند.

     
    لیست گفتگو - مورد جدید
     
    همانند شیرپوینت 2010 فیلدهایی که برای ثبت موضوع جدید باید تکمیل شوند همان عنوان و متن هستند. البته در شیرپوینت 2013 فیلد جدیدی تحت عنوان  "آیا این موضوع یک سوال است؟" به فرم ایجاد موضوع جدید اضافه شده است که با استفاده از آن می توان سوالات را از دیگر مباحث جدا کرد. بدیهی است view هایی که برای سوالات بدون پاسخ و پاسخ داده شده و به طور کلی مرتبط با سوالات ساخته شده اند فقط بر روی این دسته از موضوعات کار می کنند.
     
    لیست گفتگو
     
     
    با کلیک روی عنوان هر گفتگو وارد صفحه مباحثه آن گفنگو می شویم. در انتهای این صفحه یک باکس با عبارت "ارسال پاسخ" وجود دارد که برای پاسخگویی به موضوع مطرح شده مورد استفاده قرار می گیرد. در انتهای هر نوشته ای که توسط کاربران نوشته شده است هم یک لینک "پاسخ" قرار دارد که می توان برای آن نوشته خاص پاسخ درج نمود.
     
    بهترین پاسخ
     
     
    یکی از ویژگی های شیرپوینت 2013 در لیست های گفتگو امکان تعیین بهترین پاسخ برای هر موضوع یا سوال است. با انتخاب یکی از پاسخ ها به عنوان بهترین پاسخ، شیرپوینت آن را درست بلافاصله بعد از سوال قرار می  دهد.
     

    با ساخت nuget شخصی، حرفه ای برنامه نویسی کنید.

    به عنوان یک برنامه نویس، حتماً با کتابخانه های مختلفی سر و کار داشته اید. در برنامه نویسی دات نت، فایلهای dll حاوی کدهای مشترک را می توانید به عنوان کتابخانه های زیرساختی به پروژه های خود اضافه کنید.

    مشکلی که همیشه در تیم های نرم افزاری وجود داشته، استفاده از آخرین نسخه کتابخانه های کد مشترک بوده است. برای رفع این مساله عموماً سه روش زیر استفاده می شود:

    1- پروژه حاوی کدهای مشترک را build می کنیم و dll اش را در یک پوشه share شده قرار می دهیم.
    2- پروژه حاوی کدهای مشترک را به solution خودمان اضافه می کنیم و refrence داخل پروژه ای می دهیم.
    3- هر دفعه که می خواهیم پروژه وابسته به کد مشترکی را شروع کنیم، پروژه حاوی کد مشترک را build می کنیم و به صورت دستی dll اش را اضافه می کنیم.
    هر سه روش بالا، مشکلاتی دارد که یک روش جدید آن را حل می کند.
     
    اگر اهل استفاده از کتابخانه های موجود در اینترنت باشد حتماً نام nuget (نیوگت تلفظ می شود) را شنیده اید. به عنوان یک افزونه به Visual Studio اضافه می شود و بعد می توانید خیلی راحت از مجموعه بیش از 12 هزار کتابخانه آماده استفاده کنید!
    تمام این کتابخانه ها در آدرس http://nuget.org/packages​ قابل مشاهده هستند.
    حالا روشی وجود دارد که بتوانید یک کتابخانه شخصی از کد ایجاد کنید که خروجی اش چیزی شبیه به تصویر زیر است:
    برای انجام این کار ابتدا برنامه Nuget Package Explorer را از این آدرس​ دریافت کنید. به کمک این برنامه می توانید یک package برای کتابخانه خود ایجاد کنید. بعد از ایجاد یک package جدید روی دکمه ویرایش metadata کلیک کنید تا بتوانید مشخصات این پکیج از جمله نام و نسخه آن را وارد کنید.
    در پنل سمت راست نیز می توانید فایل یا فایل های مورد نظر خود (اعم از dll و ...) را به عنوان Content یا Lib Folder به پکیج اضافه کنید.
    سپس نوبت به ذخیره سازی این فایل پکیج می رسد. پیشنهاد می شود فایل ها را در جایی که روی شبکه share شده باشد قرار دهید تا در صورت نیاز، سایر هم تیمی ها هم بتوانند از آن استفاده کنند.
    مرحله آخر، مرحله تنظیم Visual Studio برای امکان دریافت این dll هاست. در Visual Studio به Tools->Library Package Manager->Manage Packages بروید و به قسمت Package Sources آدرس محل قرارگیری فایل های پکیج nuget را بدهید.
    و تمام! حالا شما می توانید در هر پروژه ای که بخواهید به راحتی reference کتابخانه مورد نظر را از طریق nuget شخصی اضافه کنید. نکته جالبتر در خصوص nuget این است که اگر فایل پکیج نسخه جدیدتری از کتابخانه را قرار بدهید، nuget به صورت خودکار، در مراجعات بعدی، امکان استفاده از آخرین نسخه را به شما می دهد.

     

     

    شیرپوینت 2013 - لیست وظایف

    ​قبل از هر چیز از رابط کاربری شیرپوینت 2013 لذت ببرید، اکثر بخشها به صورت Ajax کار می کنند، Context Menu کلا تغییر داده شده و از یک منوی ساده به یک پنجره کاربردی تبدیل شده است. و هر جا که لازم باشد به شکل مناسبی نمایش داده می شود.
    فضای اشغال شده توسط ریبون در شیرپوینت 2010 حذف شده است و ریبون به شکل هوشمند در موقع لزوم نمایش داده می شود. همچنین ریبون بر روی بخش مروبط به Navigator و جستجو قرار می گیرد و اصطلاحا صفحه را به پایین هل نمی دهد.

    لیست وظایف شیرپوینت 2013
    و اما لیست وظایف ...
    اولین چیزی که در شیرپوینت 2013 بعد از ساختن لیست جلب توجه می کند Timeline بالای لیست است. آدم را یاد مایکروسافت پروجکت می اندازد که البته بدیهی است از آن الگو برداری شده است. می توان برخی از تسک ها را به انتخاب در تام لاین قرارداد و با این روش دید بهتری در خصوص زمان انجام آن ها و حجم کارهای یک بازه خاص پیدا کرد.
    در پایین تایم لاین لینک مورد جدید (New Item) قرار داده شده است. این لینک در شیرپوینت 2010 در انتهای لیست قرار داده شده بود. در مقابل "مورد جدید" لینک ویرایش لیست قرار داده شده است. کلیک روی این لینک لیست به مد ویرایش سریع می برد چیزی شبیه نمای دیتاشیت شیرپوینت 2010 ولی این نمای دیتاشیت نیست.
    در نوار پایین تر و درست بالای عناوین ستون های لیست، نام و لینک تعدادی از viewهای لیست قرار داده شده است که باز با هدف دسترس پذیری بیشتر این طراحی انجام شده است. 

    لیست وظایف در شیرپوینت 2013
    برای جستجو در آیتم های لیست یک باکس جستجو در مقابل نام viewها قرار داده شده است البته برای اینکه جستجوی شما نتیجه داشته باشد حتما باید ابتدا تنظیمات مربوط به سرویس جستجوی شیرپوینت را انجام دهید. در این قسمت رویکرد شیرپونت دوباره مانند شیرپوینت 2007 شده است.
    بر روی لینک "مورد جدید" کلیک می کنیم، فرم ایجاد آیتم باز می شود و فقط چهار ستون از مجموع ستون های لیست وظایف را نمایش می دهد و یک لینک SHOW MORE در انتهای آنها اضافه شده است و با کلیک روی آن کل فرم نمایش داده می شود.
    به جز تغییرات جزئی در ترتیب نمایش ستون ها و البته کاملا Ajax شدن ستون Assigned To بقیه موارد مانند شیرپوینت 2010 است.
    در شیرپوینت 2013 امکان اضافه کردن Sub Task برای وظایف وجود دارد. کافی است بر روی علامت "..." ؛این علامت جایگزین آن فلش رو به پایین مخفی در شیرپوینت 2010 شده است. که خوب مخفی هم نمی شود که لازم باشد دنبالش بگردیم، در جلوی عنوان هر وظیفه کلیک کنیم. Context Menu باز می شود و گزینه ای بر روی آن وجود دارد برای ایجاد Sub Task. انتخاب این گزینه باعث می شود که لیست وظایف به مد ویرایش برود و به سادگی با نوشتن و Enter زدن بتوان ریزوظایف را تعریف کرد.

    لیست وظایف در شیرپوینت 2013


     

    شیرپوینت 2013 -اَپ (APP) مدل چیست؟

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

    مروری بر وب پارت
    وب پارت های سنتی به صورت مستقیم در Front-end سرور شیرپوینت نصب می شوند و در نتیجه کد این وب پارت ها مستقیما در همان سرور اجرا می شود. میزان سنگینی این کد و باری که برای منابع سرور ایجاد می کند بسته به معماری آن می باشد. کد بعضی از وب پارت ها ممکن است بسیار سبک باشند و صرفا یک وب سرویس را فراخوانی کنند و نتیجه آن را نمایش دهند. اما کد بعضی دیگر دارای محاسبات پیچیده و سنگین بوده و در نتیجه مصرف CPU زیادی دارند. در مدل سنتی در واقع وظیفه تامین، کنترل و مدیریت مصرف منابع سرور به عهده administrator می باشد.

    مدل اپ شیرپوینت 2013 
     
     
    اَپ مدل شیرپوینت 2013 چه تغییری ایجاد کرده است؟
    ویژگی های مختلف اَپ مدل شیرپوینت 2013 به شرح زیر است:
    -    مشابه به اپ های فیس بوک تمام اپ های شیرپوینت 2013 که کد برنامه نویسی دارند، خارج از شیرپوینت 2013 اجار می شوند. اتصال و احراز هویت کد این وب پارت ها از طریق Client-side Object model و OAuth کنترل می شود.
    -     اپ ها از طریق IFrame به صفحات شیرپوینت متصل می شوند. و بایستی دامنه ای که این IFrameها به آن متصل هستند با دامنه سرور شیرپوینت 2013 متفاوت باشد. با این کار شیرپوینت 2013 از اپ هایی که بر روی آن نصب می شوند به صورت کامل ایزوله می شود. URL هر IFrame دارای اطلاعاتی است که اپ مربوطه از آن برای اتصال به شیرپوینت از طریق Client-side Object model استفاد می کند.
    -    اپ ها می توانند بر روی فروشگاه شیرپوینت مایکروسافت و یا هر فروشگاه اختصاصی قرار داده شوند. زمانی که فردی یک اپ را روی شیرپوینت نصب می کند. عملا در حال طی یک پروسه خرید است.
    ساختار جدبد اپ مدل شیرپوینت 2013 مجموعه ای از مزایا و البته محدودیت ها را به همراه دارد. از آنجا که اپ های شیرپوینت 2013 بوسیله IFrameی که به دامنه دیگری اشاره می کند محصور می شوند لذا مسائل مربوط به جدا سازی استایل های اپ از استایل های شیرپوینت، جدا سازی شناسه تگ های استفاده شده در اپ از شناسه تگ های شیرپوینت، جدا سازی فریم ورک جاوا اسکریپت، و حملات بالقوه  cross-site scripting به طور کل حل می شوند. اما در سوی دیگر باز به همان دلیل که اپ ها IFrame هستند، مسائل ساده ای چون داشتن یک تصویر کامل پس زمینه برای صفحه در زمانی که یک دیالوگ باز می شود ناگهان پیچیده و بعضا غیر ممکن می شود.
    اپ شیرپوینت 2013 
     
    با جدا شدن سرور اجرا کننده برنامه های اپ به صورت چشمگیری تامین و مدیریت front-end سرورهای شیرپوینت آسان می شود. هر چند که هنوز امکان اجرای کوئری های سنگین روی شیرپوینت از طریق Client Object Model وجود دارد.
    از دید برنامه نویسی نیز تحول چشمگیری برای اپ های شیرپوینت بوجود آمده است. هم اکنون برنامه نویسان می توانند منطق سمت سرور اپ ها را با استفاده از Asp.ent MVC و یا حتی PHP پیاده سازی کنند. 

    ویدئوی ذیل از سایت مایکروسافت به صورت زیبایی قابلیتهای اپ های شیرپوینت 2013 را به تصویر کشیده است.

    ویدئوی اپ شیرپوینت 2013
     

     

    گروههای کاربری در شیرپیونت

    یکی از مهمترین و کار آمدترین روش های کنترل کاربران در مجموعه های نرم افزاری استفاده از گروههای کاربری و اعمال حقوق دسترسی به این گروهها می باشد. در این خصوص در شیرپوینت هم گروههای کاربری خاصی وجود دارند که شما می توانید از آنها استفاده کنید و یا آنها را سفارشی کنید.
    در حقیقت گروههای شیرپوینتی Container هایی هستند که به مدیران وب سایت ها اجازه می دهند تا براحتی حقوق دسترسی و سطح اختیارات کاربران را مدیریت کنند. تعداد این گروهها در شیرپوینت بسیار زیاد است که در ادامه نمونه هایی از این گروههای شیرپوینتی معرفی می گردد .
    نمونه هایی از گروههای شیرپوینتی یه شرح زیر می باشند:
    - تمامی کاربران احراز هویت شده:
    گروهی از کاربران می باشند که باید حدافل حقوق دسترسی را داشته باشند. یعنی آنها فقط می توانند به عنوان تماشاگر بخش های مختلف سایت را مشاهده کنند.
    - تمامی اعضای یکی بخش :
    این گروه حقوق دسترسی بیشتری نسبت به گروه قبلی دارند. اعضای این گروه می توانند بخش های مختلف سایت را تغییر داده و یا درآنها اسناد خود را بارگذاری کنند
    - تمامی اعضای گروه C_Level (CEO, CFO, COO, CIO, etc.) :
    این افراد به اسناد و بخشهای حساس سایت دسترسی خاصی دارند
    - گروه سازندگان
    کاربرانی دراین گروه قرار می گیرند که صاحب و ایجاد کننده بخش های از سایت می باشند . این کاربران کلیه حقوق ایجاد، ویرایش و حذف بخش تولید شده توسط خود را دارند
    - گروه مدیران شیرپوینت
    این گروه از کاربران، مدیران سایت می باشند و می بایست به Site Collection یک سایت شیرپوینتی دسترسی داشته باشند. این گروه حقوق دسترسی مشابه گروه سازندگان دارند .
    یک مدیر سایت خوب از گروههای شیرپوینت برای ارائه مجوز به کاربران جهت دسترسی به سایت ها، لیست ها و کتابخانه ها استفاده می کند. حتی وی می تواند از این گروه ها، در تعیین وظایف گردش کارها در شیرپوینت استفاده کند همچنین می توان وظایف مختلف را به گروههای شیرپوینتی خاص اختصاص داد.
    نظام مندی به دست آمده از این ساختار به حدی برای مدیران سایت ها مفید است که توصیه می شود حتی برای اعمال حقوق دسترسی برای یک کاربر مشخص یک گروه کاری خاص ایجاد شده و کاربر، در آن قرار داده شود، در این صورت اگر نیاز به اختصاص این حقوق دسترسی به کاربر دیگری باشد و یا در صورت نیاز به سلب این حقوق دسترسی از شخص باشد اعمال تغییرات به آسانی و سرعت بالا صورت خواهد پذیرفت . همچنین از این گروهها می توان در قسمت های مختلف یک سایت استفاده کرد .
     

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

    چارت سازمانی یکی از بنیادی ترین اطلاعات یک سازمان است که اگر سیستمهای نرم افزاری یک سازمان به درستی طراحی و پیاده سازی شوند بایستی همگی از یک چارت سازمانی واحد برای اعمال کنترل های مختلف استفاده نمایند. در حال حاضر در اکثر شرکت ها و سازمان های ایرانی بیش از یک چارت سازمانی وجود دارد. مانند: چارت سازمانی اتوماسیون، چارت سازمانی منابع انسانی، چارت سازمانی فرآیندها و ...
    اما ظاهرا همه فراموش کرده ایم که Active Directory که به منظور مدیریت شبکه و دسترسی های روی شبکه مورد استفاده قرار می گیرد. خود یک چارت سازمانی پیشرفته است. و اگر دسترسی ها و سیاست های شبکه مهمتر از دسترسی های یک سیستم نرم افزاری نباشد، کمتر از آن نیز نیستند.
    البته اکتیو دایرکتوری با دیگر چارت های سازمانی تفاوت هایی نیز دارد.
    • همه ما عادت کرده ایم که نام کاربری شبکه ما همان نام شخصی ما باشد مانند RVahidi
    • در اکتیو دایرکتوری مفاهیم user, group و unit وجود دارد. که اگر unit را واحد سازمانی و group را نقش در نظر بگیریم. user را چه کنیم پست فرض کنیم یا شخص؟!
    • معمولا کنترل و مدیریت اکتیو دایرکتوری در اختیار تیم شبکه است که روی خوشی به راه حلهای نرم افزاری نشان نمی دهند.
    در کنار این مشکلات مزایای نیز وجود دارد:
    • در صورت وجود مجوز کافی به اطلاعات اکتیو دایرکتوری هم از طریق query پایگاه داده و هم از طریق برنامه نویسی دسترسی وجود دارد.
    • نرم افزارهای مایکروسافت که جزء لاینفکی از سازمان ها به شمار می آیند کاملا با اکتیو دایرکتوری سازگار و یکپارچه هستند.
    • استفاده از اکتیو دایرکتوری به عنوان چارت سازمانی باعث می شود تا تغییرات پست ها بر روی دسترسی های شبکه نیز اعمال شود.
    ما در پرنیان به صورت عملی و در چندین سازمان استفاده از اکتیو دایرکتوری به عنوان چارت سازمانی را عملیاتی کرده ایم. هر چند که در ابتدا مقاومت هایی وجود داشته اما در نهایت مزایای این راهکار بسیار بیشتر از آن است که بتوان از آن چشم پوشی نمود.
     

    سوء استفاده از پدیده متن باز (open source)

    سوء استفاده از پدیده متن باز (open source)

    مقوله متن باز (Open Source) بحث جدیدی برای رشته it نیست سال های زیادی است که برنامه نویسان غیر ایرانی با استفاده از این روش اقدام به تولید محصولات مختلفی نموده اند و هر روزه محصولات جدیدی بر پایه این روش وارد بازار می شود. محصولاتی که شاید از ابتدای حیات خود، نویسندگان متعددی داشته باشد. نویسندگانی که شاید هر یک نگرش و سبکی متفاوت در تولید نرم افزار دارند، در بعضی موارد این تناقضها نه تنها باعث زیر سوال رفتن ایده و نگرش اولیه محصول شده بلکه باعث ایجاد شکافها و تغییرات عمده ای در محصول نهایی می شود. که این امر باعث کوتاه شدن عمر نرم افزار و ارائه خدمات پشتیبانی ضعیف و یا عدم امکان پشتیبانی از نرم افزار می شود.
    برای رفع مشکلات یاد شده قوانین و لایسنس های متعددی وضع شده که در ادامه بخشی از این قوانین با صرف نظر از نوع لایسنس آنها ارائه می گردد.
        1- توزیع مجدد آزاد
        نرم‌افزار باید بدون نیاز به حق امتیاز یا هر گونه پرداختی برای فروش، امکان توزیع به صورت آزاد را داشته باشد
        2- کد منبع
        کد نرم‌افزار باید شامل نرم‌افزار باشد و اجازه توزیع کد نرم‌افزار داده شود
        3- کار مشتق‌شده
        اعمال تغییرات و کارهای بعدی روی نرم‌افزار امکان‌پذیر باشد و این نرم‌افزار جدید را بتوان تحت همان شرایط نرم‌افزار اولیه و اصلی تکثیر کرد.
        4- نگهداری تمامیت کد منبع نویسنده اصلی نرم‌افزار
        تغییرات انجام شده در نرم افزار اصلی نباید باعث زیر سوال رفتن و تغییر ماهیت نرم افزار اصلی شود
        5- بین افراد و گرو‌ه‌ها تبعیضی گذاشته نشود
        اجازه‌نامه نباید بین افراد یا گروه‌ها تبعیضی بگذارد
        6- هیچ تبعیضی در نوع استفاده از نرم‌افزار وجود نداشته باشد.
        هیچ گونه تبعیض و تمایزی بین هر فعالیتی که در راستای نرم‌افزار انجام می گیرد، وجود نداشته باشد. برای مثال تولید کنندگان نرم‌افزار نباید بین استفاده تجاری از یک محصول و استفاده تحقیقاتی از محصول همان محصول برای کاربران تبعیض قائل شوند
        7- توزیع اجازه‌نامه
        مجوز بهره برداری از محصول باید به هرکسی که یک کپی از نرم‌افزار را دریافت می‌کند نیز اختصاص یابد، بدون اینکه آن‌ها نیاز به توافق و هماهنگی با اجازه‌نامه دیگری داشته باشند
        8- اجازه‌نامه نباید مخصوص یک محصول باشد
        اگر محصولی دارای زیر مجموعه هایی جهت توسعه است، اجازه نامه می بایست شامل کلیه زیر مجموعه های نرم افزار باشد.
    حال با در نظر گرفتن این قوانین آیا می توان گفت محصولی که بر پایه متن باز تهیه شد است را می توان به عنوان یک محصول تجاری خاص وارد باز کرده و به فروش رساند ؟ آیا اساسا می توان محصولات تجاری دیگر شرکت ها را با اعمال تغییرات مختصر، به نام خود فروخت ؟ آیا متن باز بودن یک محصول و پایبند بودن به قوانین بالا می تواند توجیه اقتصادی در بازار ایران داشته باشد ؟ و مهمترین موضوع، آیا در بازار و فرهنگ ایران این قوانین رعایت می شود؟ آیا توسعه یک محصول بر پایه متن باز از امنیت مناسبی برخوردار است ؟ طول عمر یک محصول متن باز چقدر است ؟ آیا پشتیبانی از یک محصول متن باز که دچار تغییرات متعددی توسط کاربران مختلف شده است مقرون به صرفه است و یا اصولا می توان پشتیبانی مناسب انجام داد ؟
    همه این سوالات، چالش هایی است که کارشناسان سازمانها باید در نظر داشته باشند و برای رفع نیاز سازمانی خود پاسخ مناسبی برای آنها پیدا کنند.
     
     

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

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

       3) CREATE 

    خاصیت تولید شبکه اجتماعی شیرپوینت شامل تولید وبلاگ ها ، ویکی ها ، فایل های مدیای دیجیتالی ( مانند ویدیو و ... ) و همچنین تولید و ایجاد سایت های تیم (Team Sites ) و موارد زیر می باشد .

    •    Ratings
    مایکرو سافت قابلیت رتبه بندی را برای همه لیست ها در شیرپوینت معرفی کرده است .
    یکی از دم دست ترین و پر مخاطب ترین ویژگی ها برای سایت های انتشار یافته برای کاربران ، همین قابلیت رتبه بندی محتویات است .
    مشتریان و کاربران معمولا از یک رنج از 1 تا 5 ستاره برای مقیاس رتبه بندی محتویات استفاده می کنند .
    ratings1_thumb.png
    •    Office Web Apps
    شما می توانید در سازمان ، شیرپوینت 2010 خود را با برنامه های کاربردی وب آفیس گسترش دهید . کاربران می توانند از این طریق با استفاده از یک بروزر وب ، از هر جایی به اسناد و مدارک  دسترسی  و مشاهده داشته باشند .
     
    •   
    Note Board
    در کنار همه ویژگی های شبکه اجتماعی در شیرپوینت ، افزونه نت برد نیز معرفی شد .
    افزونه نت برد ، یک افزونه عمومی هست که می تواند در بقیه سایت ها مانند پرتال های انتشار یافته ، سایت های تیم  و ... استفاده شود و کاربران را قادر به گذاشتن یادداشت های کوتاه ، قابل مشاهده برای عموم و یا کامنت هایی برای صفحه ای که افزونه قرار دارد ، میکند .
     
    noteboard_24182819.png

        4) NETWORK

    •    My Network , My Profile
    در Newsfeed  ، تحت عنوان  My Network شما فقط فعالیت های همکارانتان و جدید ترین آنها را می توانید مشاهده کنید .
    اما اگر شما به My Profile سوییچ کنید ، تگ ها و یادداشت هایی که مشاهده می کنید ، در واقع همه فعالیت های شما و همکارانتان طی ماه ها است . طوری که قابل اصلاح توسط شما نیز هستند . به عنوان مثال فیلتر کردن همه یادداشت ها که امکانی برای پیداکردن دوباره محاوره های قدیمی روی نت برد های دیگر است.

    •    Activities Feeds
    یکی از جالب ترین ویژگی های شیرپوینت 2010 ، وظیفه اطلاع رسانی ( Activities Feeds ) به نوعی مانند اطلاع رسانی اخبار در فیس بوک می باشد که همه اتفاقات در کل سیستم را پوشش می دهد و به صورت مرتب شده در قسمت My Site  کاربران قرار می گیرد و می تواند شامل اتفاقات و رویداد هایی که توسط همکاران یک کاربر تولید میشود نیز باشد .

     از دیگر ویژگی های خاصیت شبکه می توان به امکان هشدار (Notifications & Alerts ) برای مطلع ساختن کاربران از آخرین تغییرات به روز شده سایت ، استفاده از عکسها ، اطلاعات تماس و پشتیبانی از سرویس میکروبلاگینگ ( نوشتن متن های کوتاه ) در قسمت به روز رسانی وضعیت ها ( Microblogging status updates ) و ... اشاره کرد .



     

    آخرین نظرات

    Comment RSS