بیش از 1000 متد کاربردی - C# Extension Methods Library

امروز توی صفحه ی اول کدپلکس مشغول بررسی برنامه ها و کتابخانه ها بودم که با یک کتابخانه ی کد #c بسیار عالی مواجه شدم. این کتابخانه ی کد شامل بیش از 1000 متد Extension کاربردی هست که سرعت کد نویسی رو وقعا زیاد میکنه.

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

      public static string ToStringForce(this object obj)
      {
         return obj == null ? "" : obj.ToString();
      }

خب همین متد ساده که وظیفه ی اون کاملا مشخص هست خیلی جاها از جمله زمان نوشتن کد Lambda خیلی کاربردی میتونه باشه. حالا تصور کنید بیش از 1000 تا از این متدها داشته باشید واقعا یک جعبه ابزار مفید برای یک برنامه نویس #c محسوب میشه.

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

Object extension:

Database extension:

 String extension:

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

http://zextensionmethods.codeplex.com/
http://zextensionmethods.codeplex.com/releases/view/117295

نکات برنامه نویسی Timer Job ها در شیرپوینت

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

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

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

  • اجرای این کدها در سروری که شیرپوینت در ان نصب می باشد.
  • کدها یا آبجکت مدل مورد نظر می بایست ابتدا حتما در GAC قرار داشته باشند.
  • ایجاد نمونه ی جدید جاب با دسترسی کاربر مدیر فارمی که بتواند در حالت نرمال و از طریق سنترال ادمین جاب ها را مدیریت کند.
  • یکی بودن Application Pool محیطی که در ان قرار هست جاب اجرا یا ایجاد شود با سنترال ادمین. برای مثال App Pool سایت کالکشن ایکس با سنترال ادمین یکی باشد.(که البته این کار از نظر توپولوژی و استاندارد های شیرپوینت مشکل دارد.)

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

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

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

ادامه مطلب ...

خطای 400 و XML Parsing Error: no element found در شیرپوینت

توی سنترال ادمین شیرپوینت 2010 مشغول ایجاد یک Web Application جدید بودم که در حین این کار با خطای زیر مواجه شدم:

HTTP 400 - Bad Request (Request Header too long)

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

خب در صورتی که بخواید طول Request رو زیاد کنید میتونید کد زیر رو در یک فایل با پسوند reg ذخیره و اجرا کنید:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP\Parameters] 
"MaxFieldLength"=dword:0000fffe 
"MaxRequestBytes"=dword:0007a120

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

XML Parsing Error: no element found
Location: http://.../_layouts/error.aspx?ErrorText=Failed...
Line Number 1, Column 1:

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

Failed to call GetTypes on assembly Microsoft.Office.InfoPath.Server, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c. Could not load file or assembly 'Microsoft.Office.InfoPath, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' or one of its dependencies....

خب همین خطا رو با کیورد شیرپوینت سرچ کردم و متوجه شدم مشکل همین جاست و زمانی که شیرپوینت 2010 نصب هست، نصب آفیس 2013 و به خصوص اینفوپس 2013 کار درستی نیست و این مشکل رو به وجود میاره به همین دلیل اسمبلی های این برنامه رو از پوشه ی C:\Windows\assembly\GAC_MSIL پاک و دوباره سعی کردم یک وب اپلیکیشن ایجاد کنم و خوشبختانه این بار بدون هیچ مشکلی عملیات انجام شد.

برای رفع این مشکل میباست اسمبلی های زیر رو در حالی که دسترسی ادمین دارید از پوشه ی اشاره شده پاک کنید و یا خود برنامه ی اینفوپس 2013 رو حذف کنید در هر حال با حذف این اسمبلی ها اینفوپس هم از کار خواهد افتاد:

Policy.14.0.Microsoft.Office.InfoPath
Policy.14.0.Microsoft.Office.InfoPath.Client.Internal.Host
Policy.14.0.Microsoft.Office.InfoPath.FormControl

در انتها هم IIS رو با دستور زیر در CMD ریست کنید:

iisreset /noforce

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

نصب استاندارد و اصولی شیرپوینت 2010 برروی windows server 2012 R2

در این مطلب به نصب شیرپوینت 2010 سرور به صورت کاملا استاندارد(Production Environment) برروی جدیدترین ویندوز سرور یعنی 2012 r2 خواهم پرداخت. ضمن اینکه نصب نسخه ی 2013 شیرپوینت نیز به همین صورت خواهد بود فقط پیش نیازهای اون مقداری متفاوت هست، در مطالب بعدی سعی میکنم بیشتر در مورد نصب 2013 روی 2012 R2 توضیح بدم یه نکته ای داره که البته اگر مشتاق باشید میتونید توضیحات کامل رو توی این مطلب مطالعه کنید: how-to-install-sharepoint-2013-on-windows-server-2012-r2

از Sql Server 2012 SP1 نیز استفاده خواهم کرد.

آماده سازی برای شروع:
ابتدا سعی کنید تمام نرم افزارهای مورد نیاز رو از این مطلب دانلود کنید و آماده داشته باشید و ویندوز رو هم میتونید از این لینک دانلود کنید. برای فعال سازی ویندوز هم از برنامه ی Microsoft Toolkit 2.5 Beta 5 و یا جدیدتر استفاده کنید.

ابتدا باید بگم تنها سرویس پک 2 شیرپوینت قابل نصب برروی این ویندوز می باشد. یعنی ستاپ ادغام شده به همراه سرویس پک 2 که البته یه خورده گیر آوردنش مشکل هست اما من اون رو از تورنت دانلود و مستقیم کردم از سایت رپیدباز می تونید در صورتی که عضو باشید دانلود کنید: دانلود شیرپوینت سرور 2010 سرویس پک 2

خیلی قبل تر از اجرای فایل ستاپ شیرپوینت:
بهتر هست برای هر پلتفرم یعنی Sql, SharePoint,Domain Controller یک سرور مجزا داشته باشید که توصیه میشود از یک سرور فیزیکی به همراه دو VM استفاده کنید. اما به صورت Single هم میشه نصب کرد. در صورتی که میتونید از سه سرور استفاده کنید سرور هاست رو به عنوان دومین کنترلر قرار بدید و سه کاربر در اکتیودایرکتوری ایجاد کنید(بهتر هست در حالت Single هم از این سه کاربر استفاده کنید در غیر اینصورت میتوانید از کاربر ادمین هم استفاده کنید):

  1. یک کاربر با دسترسی کاملا پایین یعنی تنها در گروه Domain Users کفایت می کند ایجاد کنید برای مثال با نام SqlServices که برای تمام سرویس های Sql استفاده خواهد شد.
  2. کاربری با نام مثلا SPFarm که به عنوان مدیر فارم استفاده خواهد شد و این رو هم در صورتی که شیرپوینت رو در یک سرور جداگانه نصب میکنید تنها کافی هست در دومین کنترلر به گروه Domain Users اضافه شود. در غیر اینصورت به گروه مدیران داخلی و نه Domain Admin اضافه کنید. در صورتی که شیرپوینت در سرور جداگانه قرار هست نصب شود این کاربر رو به گروه مدیران داخلی اون سرور اضافه کنید. البته این رو بگم که میتونه کاربر مدیر فارم، مدیر ویندوز هم نباشد اما می بایست گروهی با دسترسی های مورد نیاز ایجاد شود و به نظرم لازم نیست و همین قدر امنیت هم کفایت میکند :)
  3. در نهایت هم کاربری برای نصب و پیکره بندی شیرپوینت مثلا با نام SPAdmin با دسترسی پایین در اکتیو ایجاد کنید اما توجه کنید که در سرور شیرپوینت و Sql می بایست در گروه مدیران داخلی باشد و در سرور Sql هم مجوزهای dbcreator و securityadmin رو از طریق Managment Studio به اون اضافه کنید. مطمئنا در محیط تولیدی و استاندارد کاربر ادمین دومین کنترلر به مدیر شیرپوینت برای نصب اون داده نخواهد شد و اصلا هم نیازی به این کار نیست و کاربر Administrator بسیار حیاتی می باشد.

بسیار خب بعد از راه اندازی دومین و افزودن کاربران اشاره شده و ایجاد سرورهای مجازی شیرپوینت و Sql بهتر هست ابتدا با نصب Sql در سرور خودش شروع کنید، ابتدا با کاربر SPAdmin وارد سرور شوید و در صورتی که فقط برای استفاده ی معمولی شیرپوینت از Sql استفاده خواهید کرد تنها کافیست تا فیچرهای Database Engine و Management Studio Complete رو در هنگام نصب تیک بزنید. بعد از نصب، پورت 1433 رو در هردو صورت دسترسی ورودی و خروجی در فایروال باز کنید چون این پورت مخصوص Sql می باشد.

حالا با کاربر SPAdmin وارد سرور مجازی شیرپوینت بشید و ابتدا پیشنیازهای اون رو طبق این مطلب به ترتیب یا با استفاده از اسکریپت پاورشل موجود در مطلب نصب کنید. سپس در پوشه ی ستاپ شیرپوینت فایل "PrerequisiteInstaller.exe" رو اجرا کنید و تا انتها ادامه بدید تا با خطا مواجه بشید! خب ما فقط از این ابزار برای افزودن فیچرهای ویندوز سرور مورد نیاز شیرپوینت استفاده کردیم و نه نصب پیشنیازها.

ادامه مطلب ...

مقایسه ی Sql Server با MySql با استفاده از گفته های هر دو طرف

شاید در ابتدا به ذهن اغلب افراد بیاد که چه لزومی واقعا به این مقایسه هست؟ خب معلومه که Sql Server بهتره یا حتی برعکس MySql بهتر هست.

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

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

برای انتخاب صحیح باید از هر دو طرف اطلاعات داشت از همین رو در ادامه من از منظر Microsoft و Oracle مطلب رو ادامه خواهم داد و در انتها انتخاب درست مشخص خواهد شد.

ابتدا از منظر مایکروسافت بررسی و قضاوت کنیم:
ابتدا باید به یک سوال اساسی پاسخ داد کدام یک Open Source یا Commercial ؟ برای پاسخ باید ویژگی های هر کدوم رو بررسی کرد.

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

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

نکته ی دیگه ای که در مورد برنامه های سورس باز وجود دارد این هست که به دلیل اینکه تعداد برنامه نویسان داوطلب برروی این برنامه ها(البته برنامه های بزرگی مانند همین MySql) معمولا زیاد هست و شاید توانایی همه ی این برنامه نویسان در سطح مناسب نباشد به راحتی برنامه دارای باگ و یا حفره های امنیتی شود در صورتی که فرایند شروع کار برنامه نویس برروی برنامه های تجاری(پولی) مطمئنا سخت تر و دارای نظارت بیشتر می باشد.
برای مثال یکی از روزهای بد MySQL روزی بود که دیتابیس سایت Zappos.com هک شد و نزدیک به 25 میلیون اکانت در اختیار هکرها قرار گرفت.

ادامه مطلب ...

راهکار تغییر مجوز لیستها و زیرسایت هایی که ارث بری آنها قطع شده برای شرپوینت 2010

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

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

ادامه مطلب ...

روش ها و نگرانی های(Concerns) پیاده سازی در یک پروژه و ارائه راهکارها به طور خلاصه

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

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

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

  • ساده گرفتن: عدم پیچیده کردن و سخت دیدن و نوشتن کد.
  • عدم تکرار: عدم تکرار مواردی که میتوان به صورت abstract تعریف کرد و در یک مکان مشترک برای استفاده قرار داد. در واقع می بایست برای هر قسمت از تحلیل سیستم فقط یک قطعه پیاده سازی که آن را حل و پیاده سازی می کند وجود داشته باشد.
  • بیشتر بگید و نپرسید: می بایست وظیفه ی هر کلاس و قطعه کد به صورت کامل تعریف شده باشد و به کلاس گفته شود و نتیجه گرفته شود تا اینکه از وضعیت یک آبجکت پرسیده شود و براساس این وضعیتها نتیجه ایجاد شود.
  • نیازی نخواهید داشت: عدم نوشتن کدهایی که ممکن هست فکر شود در آینده لازم شود و درواقع می بایست با نوشتن کدهای Test کارایی و عملکرد سیستم را ثابت کرد و سپس تنها قسمتی از کد که باعث pass شدن Test میشود نوشته شود.
  • جداسازی نگرانیها: فرایند تقسیم نگرانیهای پروژه به قسمتهای کوچکتر و تعیین وظیفه و نحوه ی رفتار هر قسمت باعث میشود تا استفاده ی مجدد از یک کد بیشتر و یافتن مشکل و رفع آن راحتتر و همچنین قابلیت تست پذیری بیشتری داشته باشد.
  • و برخی موارد دیگر...

معماری که میتوان این اصول را در آن راحت تر رعایت و پیاده سازی کرد معماری چند لایه(N-Tier Architecture) می باشد. شرح این معماری و نحوه ی پیاده سازی آن در زیر آمده است:

یکی از انواع معماری های چند لایه معماری سه لایه هست(3-Tier) که حداقل تعداد لایه ها می تواند باشد.

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

ادامه مطلب ...

نصب مرحله به مرحله ی 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 و غیره بستگی به نیاز شما داره.

ادامه مطلب ...

استفاده از ماژول Ninject.Extensions.Factory و الگوی Factory در زمان اعتبارسنجی Model در MVC

استفاده از الگوی Repository و پیاده سازی Dependency Injection با استفاده از کتابخانه ی Ninject برروی یک پروژه ی نسبتا بزرگ MVC بسیار کارامد خواهد بود.
به هرحال هر کدوم از این الگوها مزایای مربوط به خودش رو خواهد داشت. استفاده از الگوی اشاره شده به مراتب بیشتر از الگوهای دیگر در برنامه هایی که محوریت بیشتر آن برروی استفاده و تحلیل داده ها در بانک های اطلاعاتی هست می باشد، و استفاده از Ninject هم که مزایای خودش رو به این پروژه اضافه خواهد کرد.

بخش مهم اعتبارسنجی داده ها قبل از افزوده شدن به منبع ذخیره سازی نهایی مورد توجه است، در کلاس های Metadata که از طریق Attribute ها یا DataAnnotations اعتبار سنجی های اولیه صورت میگیرد زمانی نیاز به پیاده سازی یک اعتبارسنجی سفارشی و استفاده از Repository و استخراج داده های مورد نیاز به عنوان بخشی از این اعتبارسنجی می باشد. که متاسفانه عملیات ایجاد نمونه ی جدید کلاس Repository از طریق Field Injection یا هر نوع دیگری از Injection صورت نمی گیرد و با خطای null reference exception مواجه خواهید شد.

برای روشن کردن توضیحاتم یه مثال بزنم:
سناریویی رو در نظر بگیرید که در اون مشتری میخواد یک محصول رو خریداری کنه، اما باید بررسی بشه که اگر در لحظه ی خرید، تعداد محصول برابر با 0 هست پیغام خطای مناسب نمایش داده شود.
بنابراین ما یک کلاس Customer و یک کلاس Product که مربوط به اعتبارسنجی می باشد به شکل زیر خواهیم داشت،

ادامه مطلب ...

نصب و پیکره بندی 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 هم آدرس پوشه ی مقصد هست.

ادامه مطلب ...