# Native Code > برنامه نویسی موبایل > Windows Phone و Windows Mobile >  کار با محیط ویژوال استودیو و ساخت اولین پروژه

## ramtinak

مشکلات برنامه نویسی ویندوزفون:
1.	وقتی شما برنامه ای رو به پایان میرسونید نمیتونید اون رو مستقیم توی گوشیتون نصب کنید، برنامه حتما باید برای استورِ ماکروسافت ارسال بشه و اونها برنامه رو توی استور قرار بدن تا شما بتونید اون رو امتحان کنید!
2.	برنامه نویس ها نمیتونن مجانی برنامه هاشون رو بزارن توی استور. کسایی هم که الان توی ایران هستن که میتونن برنامه رو توی استور بزارن از قبل اکانت دارن.(اکانت دانشجو که میشده رایگان برنامه رو توی استور قرار داد اما الان دیگه کار نمیکنه و نمیشه این اکانت رو ساخت)
3.	هر کاربر برای ارسال برنامه به استور، باید 19 دلار آمریکا بپردازه که البته این 19دلار فقط برای یکبار هست که ماکروسافت اعلام کرده این 19دلار برای همیشه هست(قبلا فقط برای یک سال بود.)
4.	همونطور که میدونید آمریکا ایران رو حتی توی W.C رفتن هم تحریم کرده، پس حتی اگه بتونید به کسی پول بدید تا اکانت توسعه دهنده ایه پولی واستون بسازن، اگه ماکروسافت بفهمه که شما از ایران هست، اکانتتون رو بلاک(مسدود) میکنه و اون 19دلارتون میپره و نمیتونید برنامه به استور ارسال کنید. پس اگه یه روزی اکانت خریدید واسه ارسال برنامه هاتون به استور حتما از *** استفاده کنید.
چیزه دیگه ای به ذهنم نمیرسه که بخوام براتون از مشکلاتش بگم.
راستی تیم هایی هم هستن که اگه برنامه رو برای اونها ارسال کنید میتونن برنامه هاتون رو رایگان توی استور بزارن اما توی استور به اسم اونا ثبت میشه! واسه اینکه تبلیغ هیچکدوم رو نکنم اسمشون رو نام نمیبرم.


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


دانلود SDKها و ویژوال استودیو


ویژوال استودیو(حالا چه 2012 چه 2013 چه نسخه های پایین تر) یکی از قوی ترین و زیباترین محیط های برنامه نویسی در دنیاست.
دانش استفاده از ویژوال استودیو برای یک برنامه نویس بسیار حائز اهمیت است.


ساخت اولین پروژه:
من در کامپیوترم هم نسخه ی 2013 و هم 2012 رو دارم اما چون خیلی وقته با 2012 کار میکنم، آموزش ها رو هم با این نسخه میزارم که
در کل با 2013 فرق آنچنانی نداره.


همونطور که در عکس زیر میبینید هنگامی که نرم افزار ویژوال استودیو رو باز میکنید(چه 2012 چه 2013) با محیط زیر روبه رو میشید:

برای ساخت پروژه میتونید روی New Project مانندِ عکس بالا کلیک کنید یا اینکه برید به منو File قمست New و Project رو انتخاب کنید.


طبق تصاویر برای ساخت یک پروژه جدید عمل کنید:








و در آخر با این صفحه روبه رو میشوید:





آموزش ویژوال استودیو:
منوها:
منو های File و Edit چیز خاصی ندارند که بخوام براتون توضیح بدم.


View: این منو به شما دسترسی آسان به پنجره های Solution Explorer ، Properties ، Error و... را میدهد.


Project: این منو به شما اجازه میدهد تا فایل های مختلف از قبیل Page ها یا کلاس ها یا حتی کتابخانه ها رو به پروژه اضافه کنید.


Build: مهم بودن این منو برای ساخت فایل نصبی یا اجرا کردن برنامه یا... است.


Debug: این منو به شما این امکان رو میده تا کدهای نوشته شده رو خط به خط اجرا کنید و آنها را خطایابی کنید.


بقیه منو ها فعلا به کارِ ما نمیاد پس فعلا کاری به اونها نداریم.


نوار ابزارها:



1. پروژه جدید
2. باز کردن فایل
3. ذخیره کردن فایل
4. ذخیره کردن تمامی فایل ها
5. لغو آخرین عمل
6. بازگرداندن آخرین عمل
7.  Emulator: شبیه ساز، چون من دارم با SDK 7.1 آموزش میدم، زده Emulator 7.1 (Emulator 8.0 روی کامپیوتر من نصب نشد، چون سخت افزارم قدیمیه)
8. پیکر بندی راه حل
9.  داشبورد شبیه ساز ( که میتونید نوع پیکربندی اینترنت( 2g,3g,wifi و...) و ... رو پیکربندی کنید
10. جستجو در تمامی پرونده ها و فایل ها
11. ساخت اولیه پروژه
12. ساخت تمامیه راه حل ها
13. نمیدونم چیه! چون تا حالا باهاش کار نکردم
14. لغو
15. نشان دادن اطلاعات یک کد
16. دقیق نمیدونم چیه
17. واسه گذاشتن توضیحات میان کدها
18. برداشتن توضیحات میان کدها


نوارهای 17 و 18 در جلوتر میبینید که واسه کارهای بیشتری انجام میدهند که در کل میشه گفت هنگامی که // قبل از متنمون بیاد ، اون قسمت کدی رو اجرا نمیکنه و همشون رنگ سبز میگیرن.


پنجره های کاربردی در محیط ویژوال استودیو(محیط طراحی):
1. Solution Explorer 



این پنجره نمای درختی از راه حل های شما را نشان میدهد که میتواند شامل چندین پروژه باشد. هر پروژه میتواند دارای چندین کلاس،Page، کتابخانه و... باشد. چنانچه این پنجره رو مشاهده نمیکنید از منو VIEW روی Solution Explorer کلیک کنید.


2. ToolBox



جعبه ابزاری که کنترل های مورد نیاز رو میتونیم توی این پیدا کنیم(مثلا دکمه، لیست و ....). چنانچه این پنجره رو مشاهده نمیکنید از منو VIEW روی ToolBox کلیک کنید.
اگه جای تصویر بالا، این تصویر یا تصویر دیگه ای اینجا بود، روی ToolBox کلیک کنید:





مثله عکس بالا روی Toolbox کلیک کنید.
اگه اینجوری بود:



بازم روی ToolBox کلیک کنید و روی این یکی کلیک کنید:





  جعبه ابزار ویندوزفون شامل 27 کنترل میباشد که 11 تایی که بیشترین کاربرد رو دارن، جدا قرار گرفتن.
1. Border: بعدا توضیح داده میشه
2. Button: دکمه، پیشوند Btn 
3. Canvas: بعدا توضیح داده میشه
4. CheckBox: جعبه انتخابی، پیشوند Chk
5. ContentControl:
6. Ellipse: بعدا توضیح داده میشه
7. Grid: بعدا توضیح داده میشه
8. HyperlinkButton: دکمه ای برای قرار دادن لینک
9. Image: تصویر، پیشوند Img
10. ListBox: جعبه لیست، پیشوند Lst
11. MediaElement: پخش کننده فایل های صوتی و تصویری
12. MultiScaleImage: بعدا توضیح داده میشه
13. Panorama: مثله Page هست اما در کنار هم قرار میگره
14. PanoramaItem: ایتم پانوراما هست که در کنار یکدیگر قرار میگره و میشه با لمس و کشیدن به سمت چپ، به صفحه ی بعدی در برناممون رفت(مثله خیلی از برنامه های ویندوزفونی)
15. PasswordBox: جعبه رمز، پیشوند Psw
16. Pivot: یه جورایی شبیه به پانوراما است
17. PivotItem: ایتمِ Pivot هست مثله ایتمِ پانوراما
18. ProgressBar: نوار پیش رونده(پیشرفت) ، پیشوند: Pb
19. RadioButton: دکمه رادیویی، پیشوند Rdb
20. Rectangle: بعدا توضیح داده میشه
21.  ScrollBar: اسکرول بار
22. ScrollViewer: بعدا توضیح داده میشه
23. Slider: اسلایدر - بعدا توضیح داده میشه
24. StackPanel: بعدا توضیح داده میشه
25. TextBlock: بلاک متن، پیشوند Txtb
26. TextBox: جعبه متنی، پیشوند Txt
27. WebBrowser: بروزر وب، پیشوند Wb


خب حالا که اولین پروژه رو ایجاد و با محیط VS آشنایی پیدا کردید، وقتشه یه برنامه کوچولو به نام HelloWorld  بسازیم.
برای ساخت این برنامه، ما نیاز به سه کنترل TextBox(برای گرفتن نام از کاربر)، TextBlock(برای نمایش اطلاعات به کاربر) و Button(برای کلیک کردن کاربر روی دکمه و نمایش اطلاعات) نیازمندیم.
برای اضافه کردن کنترل به برناممون باید اون کنترل رو از پنجره ToolBox بگیریم و بکشیم توی پنجره اصلی و اون رو رها کنیم، یا اینکه دوبار روی کنترل کلیک کنیم تا خودش به Pageـمون اضافه بشه.




اگه نمیدونید چطوری اینکار رو انجام بدید، فیلمِ شماره یک رو نگاه کنید. 
هر کنترل در سی شارپ دارای خاصیتی به نام Name میباشید که میتوان آنرا تغییر داد، که توی ویندوزفون هیچ نامی برای کنترل ها در اول کار تعریف نشده، پس کارِ خودِ ماست که خاصیت Name رو واسشون تعریف کنیم.( برای تغییرِ نام اول روی کنترلِ مورد نظر کلیک میکنیم بعد به پنجره ی Properties اون کنترل رجوع میکنیم)
واسه 3 کنترلی که روی Page قرار دادیم، اسم اون ها رو به اسم های زیر عوض میکنیم:
TextBlock رو txtB میزاریم
TextBox رو txt میزاریم
Button رو btn میزاریم
اگه نفهمیدید چطوری، فیلمِ شماره 2 رو نگاه کنید.


(یادتون نره که میشه کنترل ها رو توی Page هر وقت که بخواهید جابه جا کنید)
حالا روی دکمه ای که توی Page قرار داره،دوبار کلیک کنید تا به محیط کدنویسی وارد شوید.
یا روی دکمه یکبار کلیک کنید و از پنجره Properties روی عکس "رعد" کلیک کنید و روی Eventـه Click دوبار کلیک کنید. 





فیلمِ شماره سوم رو نگاه کنید.
(برای اینکه دوباره خاصیت های Name، Text و... رو توی Properties نشون بده، روی "آچار"ـه کنارِ "رعد" کلیک کنید)


         private void btn_Click(object sender, RoutedEventArgs e)
        {


        }




این کد توسط ویژوال استودیو نوشته شد، که واسه کلیک کردن هست، اگه کسی روی دکمه کلیک کنه، کدهای داخل این قسمت اجرا میشن.


در کد بالا کلمات void و private نمونه ای از کلمات کلیدی #C هستند. در اصطلاحات برنامه نویسی کلمات کلیدی کلماتی هستند که به ویژوال C#‎ میگویند کارهای خاصی رو انجام دهد. مثلا در اینجا کلمه ی void به ویژوال C#‎ میگوید که تابع تعریف شده هیچ مقداری رو بر نمیگرداند. همه ی کدهایی که شما در بینِ خطوط مربوط به باز شدن آکولاد
( } )  و بسته شدن آن ( { ) بنویسید، تابع رویداد مربوط به دکمه "کلیک کن" را تشکیل میدهد.


حالا کدهای زیر رو توی رویدادِ کلیک بگذارید:


MessageBox.Show("Hello " + txt.Text);


فیلمِ شماره 4 رو نگاه کنید.


تبریک شما اولین برنامه ی ویندوزفونیِ خودتون رو نوشتید.


تمرین: برنامه بسازید که از دو TextBox، یک دکمه و یک TextBlock تشکیل شده باشه، متنِ نوشته شده توسط کاربر رو از textBoxها بگیره و توی TextBlock نشون بده.




دانلود فیلم یک


دانلود فیلم دو


دانلود فیلم سه


دانلود فیلم چهار


دانلود کتاب فصل یک


اگه سوالی، انتقادی، پیشنهادی، نظری چیزی دارید، همینجا به صورت دیدگاه بزارید.


منبع: رامتینک

----------

