۱۳۸۸ دی ۴, جمعه

تکان

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

مصداق بارز این موضوع در استفاده از IE 6.0 است. با وجود اینکه IE 7.0 و 8.0 کاملا رایگان هستند باز هم در بیشتر ادارات هنوز از IE 6.0 استفاده می شود (البته شاید اگر رایگان نبودند بیشتر مورد توجه قرار می گرفتند). IE 6.0 حتی قادر نیست فایل های تصویری PNG را به صورت Transparent نمایش دهد و اگر بتوان گفت که استاندارد است، با استاندارد های قدیمی سازگار است. وجود IE 6.0 باعث می شود که طراح سایت یا برنامه نویس بعضی از ویژگی های جدید را از دست بدهد تا سازگاری را بدست آورد.

گاهی اوقات کارفرما تصور می کند این که توسعه دهنده می گوید IE 6.0 را پشتیبانی نمی کنم بخاطر تنبلی اوست!

اما باید برای آن دسته از کارفرمایان یا مدیران گفت که خوشبختانه یا متاسفانه حتی خود مایکروسافت نیز در SharePoint 2010 دیگر از IE 6.0 پشتیبانی نمی کند!

امید است که ادرات ما تکانی به خود بدهند.

۱۳۸۸ مهر ۱۰, جمعه

چگونگی آموزش #C به یک فرد کاملا مبتدی

این سوال همیشه در ذهنم بوده که اگر یک شخص  کاملا بی تجربه (به شرط داشتن حداقل هوش، استعداد و علاقه ی لازم)، در ابتدای دهه ی سوم از زندگی خود و در سال 2009 تصمیم به یادگیری برنامه نویسی داشته باشد باید از کجا شروع کند؟ ما در اواخر دهه ی 70 خورشیدی از انواع Basic یعنی GWBasic و QBasic و غیره شروع کردیم و به صورت رویه ای برنامه نوشتیم بعد به زبان های حرفه ای تر _اما همچنان رویه ای_ مانند Pascal و سپس C رجوع کردیم و به مرور زمان به زبان های شی گرا مانند ++C و در حال حاظر به #C رسیدیم و در این مسیر گاهی اوقات بدون اینکه بدانیم، Reverse Engineering کردیم! کسی هم در آن زمان نمی توانست بگوید مسیر غلطی پیمودیم.

تجربه ی ما چیزی در حدود 9 سال زمان برده و اگر شخصی که اکنون تصمیم به یادگیری گرفته تصور کند که چنین زمانی لازم دارد تا یک برنامه نویس حرفه ای شود احتمالا از تصمیم خود بر خواهد گشت (مخصوصا اگر هم سن و سال ما باشد).

بهترین کتابی که در تمام عمرم در مورد آموزش توسعه ی نرم افزار و تفکر در این مورد دیدم کتاب آموزش برنامه نویسی شی گرا با ++C نوشته آقای رابرت لی فور (Robert Lafore) بوده. “در این کتاب فرض شده خواننده حتی با زبان C هم آشنایی ندارد… شاید این اشتباه باشد که برنامه نویس ابتدا زبان های رویه ای را بیاموزد و سپس به سمت شی گرایی برود. برنامه نویس باید از ابتدا به صورت شی گرا تفکر کند و برنامه های خود را از پایه به صورت شی گرا بنویسد”. به شخصه هرچه زودتر با این کتاب آشنا می شدم کمتر وقتم را هدر میدادم. اما اکنون که برنامه نویسان نوپا مایل به برنامه نویسی در زبان های سطح بالاتر و جدیدتر مانند #C هستند جای چنین کتابی برای این چنین زبان هایی خالی به نظر می رسد!

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

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

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

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

1. اول کاربرد، بعد یادگیری (اول سوال بعد جواب)

نیاز مادر اختراع است (حداقل تا قبل از حوالی سال 2000 اینطور بوده)! درابتدا اول باید نیاز پیدا کنیم و بعد یادبگیرم که چطور نیازمان را برطرف کنیم وگرنه یادگیری به دردمان نخواهد خورد و به زودی فراموش می شود. مثلا اول باید در سر خود آرزوی ساختن یک ویروس کامپیوتری را داشته باشیم سپس شروع به یادگیری کنیم تا یک ویروس نویس و یا یک برنامه نویس امنیتی شویم، و یا به تجربه خودم و همکارم مثلا در شی گرایی اول بدانیم دسترسی protected کجا کاربرد دارد و بعد استفاده Syntax ی از آن را یاد بگیریم. (در واقع یعنی اول هدف را پیدا کنیم بعد حرکت کردن را یاد بگیریم در این صورت در هنگام حرکت، خود به خود با چیزهای جدیدتر هم آشنا خواهیم شد)

2. هرچیزی که می بینیم باید بتوانیم بسازیم یا حداقل بدانیم چطور بسازیم

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

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

مثلا وقتی می بینیم یک Object از نوع Form در #C این همه متد و خصیصه دارد نگران نشویم و تمام وقت خود را صرف یادگیری همه آنها نکنیم چون به مرور زمان و حتی ناخواسته با بیشتر آنها آشنا خواهیم شد. و از طرف دیگر در موارد ساده تر مثلا وقتی با #C از دستور Console.Write(“test”) استفاده می کنیم سعی کنیم بدانیم که چه اتفاقاتی می افتد تا کلمه test روی مانیتور نمایش داده می شود. البته در این مورد باید از زیاده روی جلوگیری کرد و این کار به مرور انجام شود، وگرنه ممکن است از راه اصلی دور شویم. (اما وقتی که حرفه ای تر شدیم باید همه چیز را بدانیم تا یک توسعه گر موفق باشیم و در همه جا جایی داشته باشیم)

4. جمله معروف “از یک چیز همه چیز و از همه چیز یک چیز”

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

۱۳۸۸ شهریور ۳۰, دوشنبه

حیله ی وصله ی دانلود

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

اگر نخواهم سر کسی به درد آید، به طور خلاصه یکی از فایل های دانلود شده مشکل داشت. چیزی در حدود 60MB انتهایی آن دانلود نشده بود. شدیدا علاقه داشتم که با VS2010 کار کنم و دوستی که در بالا اشاره شد نیز در دسترس نبود!

نمی دانم چرا حدس زدم شاید این حیله عملی باشد: با Firefox فایل مورد نظر که حدود 700MB بود را برای دانلود انتخاب کردم و به محض شروع دانلود آنرا Stop کردم، سپس به انتهای فایل ناقصی که از دوستم گرفته بودم پسوند .part اضافه کردم و به جای فایلی که Firefox ایجاد کرده بود Replace کردم و بعد دکمه Resume از Firefox Downloads را زدم! دانلود شروع شد اما از حدود 640MB به بعد. بعد از اتمام دانلود فایل به درستی اجرا شد!

۱۳۸۸ شهریور ۲۵, چهارشنبه

Microsoft Surface

Microsoft Surface یک کامپیوتر Multi-Touch انقلابی است که به حرکات طبیعی دست و اشیاء واقعی جهان پاسخ می دهد و به افرادی که با آن کار می کنند کمک می کند تا با یک ابزار دیجیتال ساده و قابل درک با یک User Interface افقی بزرگ در یک مکان و در یک زمان به همراه چند نفر بتوانند با یکدیگر بر روی یک سری اطلاعات مشخص کار کنند.

Microsoft Surface

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

و حالا تعبیر ما ، به بیان ساده تر یک میز به ابعاد (82.5cm:ارتفاع،124.5cm:طول،86cm:عرض) که صفحه روی این میز یک LCD با قابلیت Multi-Touch و با ابعاد (82.5cm:ارتفاع،124.5cm:طول،86cm:عرض) با بدنه فلزی حدود (82kg) که فقط در آمریکا و کانادا عرضه می شود و با با بدنه Acrylic که وزن آن به (90kg) میرسد.

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

Network Protocols and Standards
  • Network adapter: Intel Gb LAN
  • Wireless LAN connectivity supported: Yes
  • Networking and Data Protocols: IEEE802.11b,IEEE802.11g, Bluetooth 2.0, Gigabit Ethernet
I/O Connections
  • 2 headphone jacks
  • 6 USB 2.0 ports
  • RGB component video
  • S-VGA video (DB15 external VGA connector)
  • Component audio
  • Ethernet port (Gigabit Ethernet card [10/100/1000])
  • External monitor port
  • Bays for routing cables
  • On/Standby power button
AC Input Ratings
  • AC input: 100-240 VAC, 50/60Hz, 10A, 650W
Display
  • Type: 30-inch XGA DLP® projector
  • ATI X1650 graphics card with 256 MB of memory
  • Maximum resolution: 1024 x 768
  • Lamp mean-life expectancy: 6,000+ hours
  • Maximum pressure on the display: 50 pounds per
    square inch/3.5 kg per cm
  • Maximum load: 200 pounds
Input Devices
  • Camera-based vision system with LED infrared
    direct illumination
Computing System
  • 2.13-GHz Intel® CoreTM 2 Duo processor
  • Memory: 2 GB dual-channel DDR2
  • Storage: Minimum 250 GB SATA hard-disk drive
Audio
  • Output type: Stereo fl at panel built-in speakers
  • Output compliant standards: Stereo
  • Input: None

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

همان گونه که در بالا گفته شد مهمترین نکات این میز Digital قابلیت Multi-Touch بودن و هم کاری همزمان چند کاربر بر روی یکسری اطلاعات است به این گونه که سه یا چهار نفر در یک آن واحد می توانند بر روی یک موضوع واحد بر روی این میز شروع به کار کنند این میز توانایی شناسایی و مشاهده وسیله ای که آن را لمس می کند را داراست و برای این کار از تعدادی دوربین و تکنولوژی Infrared استفاده می کند.

پایه و بنای سیستم عامل این میز قدرتمن دیجیتال همان Windows Vista SP1 است که بسیار ساده و اختصاصی برای مدیریت ، پشتیبانی و توسعه آن ساخته شده و اسم آن را Microsoft Surface 1.0 Service Pack 1 گذاشته اند و علاوه بر آن یک واسط گرافیکی بسیار قدرتمند به مالکان این میز کمک میکند تا به نحو احسنت از این میز استفاده کنند.

و اما اصل مطلب یعنی چگونه می شود برای این Plat Form نرم افزار تولید کرد ؟

برای این کار احتیاج به Microsoft Surface SDK 1.0 SP1 دارید و البته یه Microsoft Surface برای تست پروژه هاتون.

ماکروسافت برای وسیع کردن دامنه برنامه نویسان این ابزار جدید آن را سازگار با خانواده ای از ابزار های توسعه مانند :

  • Microsoft® Windows Presentation Foundation (WPF)
  • Microsoft® XNA™
  • Microsoft® Visual C#® 2008 Express Edition
  • Microsoft® Visual Studio® 2008 SP1
  • Microsoft® Expression® Studio 2
  • Microsoft® Expression Blend™ 2

    ساخته است.

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

    Microsoft Surface


    پاورقی: این پست با نرم افزار Windows Live Writer ارسال شده.

  • ۱۳۸۸ شهریور ۲۱, شنبه

    Singularity OS

    قبلا در مورد هسته هایی که با #C ساخته شده اند (C# Kernels) یک پست ارسال کرده بودم. از بین چند Kernel توسعه داده شده Singularity از دیگران کاملتر است.

    این روزها بیشتر روی این سیستم عامل تحقیقاتی وقت سرف کردم. مخصوصا وقتی فهمیدم مایکروسافت به توسعه یک سیستم عامل Managed Code به نام Midori مشغول است که تقریبا نسخه تجاری Singularity به حساب می آید و بعضی اعلام می کنند که جایگزین Windows خواهد بود. به همین دلیل صرف وقت روی Singularity شاید شبیه وقت گذاشتن روی Source سیستم عامل Unix در سالهای ابتدایی اختراع آن باشد.

    مهمترین دلیل ساخت این سیستم عامل این است که طراحی سیستم عامل های کنونی ما به 40 سال قبل بر میگردد! از آن زمان تا کنون ما روی چند سیستم عامل اصلی پا فشاری کردیم مانند، Unix، Linux، Mac و Windows. که همگی دارای معماری قدیمی هستند. البته بخشی از این موضوع اجتناب ناپذیر است.

    مهمترین ویژگی Singularity این است که از ابتدا طراحی شده! این سیستم از نوع Language-Based است و سعی شده از خطای انسانی تا حد امکان جلوگیری شود. و برای پیاده سازی آن یک زبان به نام Sing# ساخته شده که از Spec# مشتق شده، و خود Spec# هم از C# .

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

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

    Capture1

    هر پردازه (Process) در قالب یک SIP (Software-Isolated Processe) اجرا می شود که بر خلاف سیستم عامل های کنونی که همیشه پردازه ها به صورت سخت افزاری Isolate می شدند، در اینجا به صورت نرم افزاری Isolate خواهند شد. اندازه فایل های اجرایی با فایل های تولید شده توسط ++C/C قابل مقایسه است.

    image

    کل سیستم عامل Singularity در یک فضای آدرس فیزیکی (Physical Address Space) اجرا می شود و مدیریت حافظه به صورت نرم افزاری صورت می گیرد (بر خلاف سیستم عامل های قبلی). حافظه مورد استفاده برنامه ها نیز قابل مقایسه با دیگر زبانهاست.

    image

    ارتباط بین پردازه ها (Processes) فقط توسط کانال ها (Channels) صورت می گیرد. به این ترتیب که یک پردازه شروع کننده ارتباط خواهد بود و طرف دیگر ارتباط را قبول میکند (مانند ارتباطات شبکه). در صورتی که حجم تبادلی داده زیاد باشد باز هم از حافظه اشتراکی (Shared Memory) استفاده نمی شود اما این انتقال به شکل کپی یا Pipe صورت نمی گیرد و در کمترین زمان ممکن اتفاق می افتد. یعنی سیستم عامل Singularity برای انتقال حجم زیاد داده بین پردازه ها تدابیر خوبی دیده و Performance در نظر گرفته شده. جدول زیر را مطالعه کنید.

    Capture3 
    در Singularity هر فایل اجرایی یک Manifest دارد. هیچ فایل اجرایی بدون Manifest اجرا نخواهد شد. به این برنامه ها Manifest-Based گفته می شود. Manifest برنامه، اطلاعاتی در مورد برنامه، مثلا اینکه به چه منابعی نیاز دارد در اختیار می گذارد.

    برای دیدن مقایسه Performance خواند و نوشتن روی دیسک بین Singularity و دیگر سیستم عامل ها، روی تصویر زیر Click کنید.

    Capture

    من توانستم 2.0 Singularity را روی VirtualPC بالا بیاورم، به سرویس شبکه آن IP بدهم و WebServer داخلی آنرا اجرا کنم و از روی سیستم Host خودم از Singularity سرویس HTTP دریافت کنم.

    اکنون مدتی از ارائه ی ویرایش دوم این سیستم عامل می گذرد و توسعه ی آن همچنان ادامه دارد.

    ۱۳۸۸ شهریور ۸, یکشنبه

    Visual Studio Team System Web Access 2008

    این هم یک پست بسیار مفید برای مدیران شرکت های نرم افزاری و یا کسانی که گروه های برنامه نویسی را مدیریت می کنند که البته به قول ما در قله تکنولوژی به سر می برند و از نرم افزار Microsoft Visual Studio Team System برای مدیریت پروژه ها و برنامه نویسان خود استفاده می کنند.
    شاید از اسم آن مشخص باشد که در مورد چه چیزی می خواهیم صحبت کنیم . به قول یکی از دوستان در دورانی از دنیای تجارت شرکت های تجاری بعد از تولید محصول خود و گرفتن Feed Back ها از مشتریان متوجه می شدند که مشتریان آنها و مردم به چه چیزهایی نیاز دارند تا آن قابلییت ها را در محصولات خود قرار دهند و در نتیجه دارای فروش خوب و سود خوبی باشند . اما هم اکنون وضع تغییر کرده و دنیای رقابت به هیچ شرکتی مجال نمی دهد تا چنین وقتی برای پیشرفت محصولات خود را صرف کند در نتیجه خود شرکت ها باید آستین را بالازده و به فکر بیفتند که چه چیزهایی برای مردم مورد نیاز است که خود مردم هم خبر ندارند تا آنها را در محصولات خود قرار دهند تا با فروش بالا و محبوبیت محصول خود مواجه شوند.
    زمانیکه ما با این نرم افزار که یکی از Accessories های VSTS است بر خورد کردیم به خود گفتیم چه جالب ما و مدیرهای دیگری که تعدادی پروژه و برنامه نویس در زیر دست خود دارند و نیاز به مدیریت همه جانبه آنها دارند چقدر به این نرم افزار نیاز داشتیم و خود خبر نداشتیم و این همان نکته ای است که در بالا در مورد آن صحبت کردیم.
    حالا برسیم به ( Web Access ) که با کلیک بر روی آن می تونید آن را دریافت کنید.
    کسانی که برای مدیریت پروژها و برنامه نویسان خود از نرم افزار Microsoft Visual Studio Team System استفاده می کنند
    یکی از مشکلاتشان برای مدیریت زمانیست که از شرکت خود خارج می شوند و نمی توانند به راحتی به سرور خود دسترسی پیدا کنند مگر اینکه تنظیماتی را برای سرور خود قرار دهند که خود ریسک های امنیتی خاص خود را دارد اما اینجاست که ابزار Web Access خود را نشان می دهد.
    بعد از دانلود کردن فایل TeamSystemWebAccess.msi را بر روی سرور خود اجرا کنید و آن را نصب کنید . به صورت پیش فرض این نرم افزار بر روی Port : 8090 نصب می شود که ما هم پیشنهاد می کنیم آن را تغییر ندهید مگر اینکه شما بر روی این Port نرم افزار دیگری را در حال اجرا دارید.
    بعد از نصب تنها با در دست داشتن اینترنت با باز کردن یک مرور گر و وارد کردن آدرس http://servername:8090/ و وارد کردن نام کاربری و کلمه عبور خود می توانید از تمامی قابلیت های VSTS برای مدیریت پروژه ها و برنامه نویس های خود که در داخل شرکت استفاده می کردید با امنیت بسیار بالا استفاده کنید :
    1. نمایش تمامی پروژه های در دسترس شما.
    2. بروز کردن تمام اطلاعات پروژه های در دسترس.
    3. اضافه کردن انواع Work Item برای پروژه های در دسترس.
    4. ساخت ، به اشتراک گذاشتن و اجرا کردن انواع Work Item Queries .
    5. دسترسی به Process Guidance.
    6. دسترسی بسیار آسان و دم دست و UI زیبا و به تمام معنا User Friendly .

    خیلی لذت بخش است که یک شرکت تمام نیاز های ما را شناخته و با ساخت و تولید نرم افزار های مورد نیاز ، نیاز ما را بر طرف می کند امیدوارم بعد از خواندن این پست نیاز شما هم بر طرف شده باشد.
    و در آخر هم باید اضافه کنم که SP1 این نرم افزار هم توسط شرکت ماکروسافت ارائه شده که پیدا کردن و نصب آن را به خود شما محول می کنم.
    البته مد نظر داشته باشید که برای این پست ما مبنا را بر این قرار دادیم که شما با محیط VSTS آشنا هستید و در صورتیکه شما همچنان با محیط VSTS آشنایی ندارید توصیه ما به شما این است که بعد از خواندن این پست تمام فعالیت های خود را کنسل کرده و به دنبال بدست آوردن این تکنولوژی برای خود باشید و بعد از بدست آوردن و استفاده نظر خود را در رابطه با این نرم افزار برای ما ارسال کنید.

    ۱۳۸۸ مرداد ۲۲, پنجشنبه

    نصب TFS 2008 بر روی Windows Server 2008 و SQL Server 2008

    حرکت بر نوک لبه ی تکنولوژی این دردسر ها را هم دارد!

    اولین مشکل پیدا کردن یک Activation درست برای Windows Server 2008 است. که به طور کلی سه مدل Activation برای ما وجود دارد.

    1. مدل اول که وقتی روی My Computer راست کلیک میکنید همیشه یک پیغام در مورد Active کردن Windows میبینید ولی نباید به آن اهمیت بدهید و همه چیز درست کار میکند حتی بعد از 60 روز.
    2. مدل دوم که پیغام گفته شده در بالا را نمی بینید ولی در عوض Windows Server 2008 تبدیل به یک Windows Vista Ultimate می شود و شما ویژگی های Server را از دست می دهید (ما این کار را کردیم، در ابتدا همه چیز رو به راه بود تا اینکه TFS را نصب کردیم و دیگر هیچ چیز رو به راه نبود).
    3. مدل سوم خرید یک Activation تقریبا سه میلیون تومانی است.

    البته روش آخر از همه بهتر است ولی فقط روش اول برای ما مقدور بود و کار کرد.

    دومین مساله اینکه برای نصب TFS 2008 بر روی SQL Server 2008 باید با دستان خود یک Pack جدید نصبی TFS 2008 SP1 ایجاد کنید. که خرجش 100MB دانلود SP1 و مقداری دستورات Commad ی است. به عبارت دیگر شما باید SP1 را جداگانه دانلود کرده و با استفاده از msiexec.exe آنرا را به خورد TFS 2008 ی که بدون SP1 است بدهید که به آن TFS 2008 and SP1 می گویند، و آنرا نصب نمایید. یا اینکه به بازار بروید و آخرین نسخه TFS 2008 به همراه سرویس پک را خریداری نمایید.

    در هنگام نصب اگر مراحل را درست دنبال کنید هیچ مشکلی مشاهده نمی کنید تا اینکه سیستم به درستی بالا می آید و همه چیز ظاهرا مرتب است به جز 2 مورد اصلی:

    1. اول اینکه بعد از نصب Team Explorer و ساخت یک Team Project جدید، وقتی در VS پروژه تیمی را باز میکنید یک ضرب در قرمز در کنار Reports مشاهده می کنید. البته این مورد با نصب VS 2008 SP1 رفع میشود.
    2. دوم اینکه هیچ گزارشی از TFS نمی توانید بگیرید. قسمت گزارش TFS کار نمی کند. برای این مشکل یک راه در اینجا ارائه شده http://blogs.microsoft.co.il/blogs/shair/archive/2009/06/25/cannot-open-database-quot-tfswarehouse-quot-requested-by-the-login.aspx

    اما مشکل دوم با راه حلی که ارئه شده حل نشد. فقط یک مورد کم داشت که به شرح زیر است:

    Connecting to Analysis services >  database > tfswarehouse > roles > set the tfswarehousedatareader role permissions to full control process database!

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