تقلب Zeus:
از اونجایی که این مطلب رو دوست عزیزی نوشتن که خوره دنیای کامپیوتر و نرمافزار هستند ؛ لازمه برای درک بهتر کاربردهای احتمالی در دنیای نرمافزار یه سری تقلب به دوستان الکترونیکی و سختافزاری برسونم شاید باعث بشه که فلسفه و کاربرد این مساله رو بهتر نشون بده. به احتمال خیلی زیاد اسم سی شارپ ( #C ) به گوشتون آشنا باشه ! توی ایران اغلب افرادی که دستشون به کیبورد خورده خودشون رو برنامهنویس میدونن و اغلب مسلط به زبان برنامهنویسی سی شارپ هم هستند ! هیچ کسی منکر این قضیه نیست که دات نت واقعا برنامهنویسی برای پلتفرم ویندوزی رو ساده کرده ؛ اونقدر ساده که حتی مادربزرگها هم کدنویس شده اند 🙂 حالا فرض کنید این مقدار از راحتی رو توی دنیای متن باز لینوکس داشته باشید ؛ واقعا وسوسه کننده است ؛ شاید شما هم قبلا رزبری رو تهیه کرده باشید به امید این که بتونید روش برنامه خودتون رو بریزید اما کار کردن با لینوکس و سرکله زدن با GCC شما رو خسته کرده باشه و کلا قیدش رو زده باشید ! این مقاله دقیقا بدرد شما میخوره ؛ چون به سادگی قادر خواهید بود برنامه دلخواه خودتون رو با استفاده از دات نت کُور ( Net Core. ) بر روی هر نوع برد لینوکسی که دوست دارید بنویسید. این که ماکروسافت پا به عرصه متن باز گذاشته ؛ واقعا جای تامل داره ؛ چرا میگیم ماکروسافت پا به عرصه متن باز گذاشته ؛ دقیقا بخاطر همین فعالیت های اخیرش در خصوص متن باز منتشر کردن سورس ها ، نمونش ویژوال استودیو کد ؛ یا دات نت کُور و… Net Core. هنوز از رابط گرافیکی (GUI) پیشتیبانی نمیکنه البته قراره توی ورژن سوم GUI هم بهش اضافه بشه ؛ ولی خوب کی اهمیت میده هنوز خیلی کارها هست که میشه انجام داد ؛ دعوتتون میکنم که این مقاله و قسمت های بعدی رو مطالعه کنید.ندای وظیفه
برای شروع نبرد اول باید جنگجویان رو معرفی کنیم.نقشه حمله
نقشه ساده است، یه پروژه خیلی مقدماتی مینویسیم و روی رزبری پای اجرا میکنیم، و وقتی دشمن هنوز درگیر حمله اولیه است، ضربه نهایی رو بهش وارد میکنیم!حمله
طبیعتاً اولین گام انتخاب برد مناسبه، از اونجایی که ما زبان برنامهنویسی .Net Core رو انتخاب کردیم حتماً باید رزبری پای ۲ یا ۳ رو داشته باشیم، امکان نصب .Net Core روی رزبری پای ۱ یا زیرو نیست. من یه برد رزبری پای ۳ از بچههای سیسوگ قرض گرفتم! اینجا میتونید لیست بعضی از سیستم عاملهایی که میشه نصب کرد رو ببینید، ما Raspbian Stretch Lite رو انتخاب کردیم، چون هم حجم کمتری داره و هم سبکتره و طبیعتاً منابع و انرژی کمتری مصرف میکنه. هرچند ممکنه نداشتن واسط گرافیکی برای بعضیها خوشایند نباشه، شما میتونید سیستم عامل محبوب خودتون رو دانلود کنید.نصب سیستم عامل روی رزبری
اول فایل فشرده رو از سایت دانلود کنید، اگه خیلی از کامند زدن خوشتون نمیاد میتونید از نرمافزار Etcher استفاده کنید که برای لینوکس، ویندوز و مک نسخه قابل نصب داره. کار کردن باهاش هم اینقدر آسونه که نیازی به توضیح نیست، فایل رو انتخاب میکنید، درایو MicroSD رو پیدا میکنید و تمام. اگه هم دوست ندارید نرمافزار اضافه نصب کنید، توی لینوکس میتونید از این دستور استفاده کنید:1 | lsblk |
1 | sudo dd bs=4M if=2018-11-13-raspbian-stretch-lite.img of=/dev/mmcblk0 status=progress conv=sync |
1 | sudo raspi-config |
ابزار دم دستی برای اسکرین شات گرفتن تو اون محیط پیدا نکردم!
خیلی ساده گزینه Network Options رو انتخاب کنید، اگه بردتون Wi-Fi رو پشتیبانی میکنه که عالیه، اسم شبکه و کلمه عبورش رو وارد کنید و تمام، اگه هم از شبکه داخلی استفاده میکنید که آی پی رو مشخص کنید و تمام. (پیشنهاد میکنم اگه از کاراکترهای ویژه مثل # تو کلمه عبورتون استفاده کردید اول مطمئن بشید که کارکاتر درست رو وارد میکنید چون ممکنه کیبوردها مثل هم نباشند) رزبری رو فعلاً همینجا رهاش میکنیم و میریم سراغ پروژه.پروژه چی شد؟
البته واضح و مبرهن است که ما اینجا قرار نیست آموزش برنامه نویسی .Net Core رو قرار بدیم. اگه علاقه داشته باشید میتونید اینجا روی گیت هاب من سورس کامل پروژه رو ببینید. فعلاً توی این قسمت از حمله، تغییر چندانی توی پروژه ایجاد نکردیم، این چند خط رو کمی توضیح میدیم:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | namespace rpi.Controllers { [Produces("application/json")] [Route("")] [ApiController] public class DataController : ControllerBase { [HttpGet] public async Task<IActionResult> SayHello() { return Ok("Hi from pi!!"); } } } |
1 | dotnet publish -c Release -r linux-arm |
1 | ./rpi |
ورود به دنیای سی شارپ شاید راحت باشه و خیلی سریع بتونید HelloWorld بنویسید اما در این مرحله کسی برنامه نویس نیست. دنیای دات نت هم پیچیدگی ها و ریزه کاری هایی داره که دیگه مادربزرگ شما نمیتونه پیشروی کنه در اون.
نوشتن کد سی شارپ روی رزبری از نظر ماجراجویی ارزش داره. اما به درد کار اجرایی و عملیاتی نمی خوره. حتی اگر رزبری پای 4 با 4 گیگابایت رم هم داشته باشیم بازهم دات نت راه حل خوبی نیست. ما سخت افزار خوب می خریم که کار سطح بالا انجام بدیم نه از ابزارهای سنگین استفاده کنیم.
🙂 فکر میکنم مثالی که دوستمون مطرح کرده بیشتر به این خاطره که نشون بده دات نت چقدر کار برنامه نویسی رو ساده کرده ! که کسی هم نمیتونه منکرش بشه
در خصوص مطلب کاربردی بودن خیلی برمیگرده به کاری که میخواد انجام بشه و نگاهی که ما به سیستم داریم !!
سلام خدمت نویسنده عزیز.
من نمیدونم این مرز بندی های مندرآوردی رو کی درست کرده!؟ اون الکترونیکی که شما ازش حرف میزدین سال 1980 دیگه از بین رفت! اولا، الان هر الکترونیکی ای که برنامه نویسی بلد نباشه بدرد لای جرز دیوار میخوره. چون الان دیگه میکروکنترلر ها و میکرو کامپیوتر ها (همینی که شما باهاش نقشه حمله کشیدید) بخش اعظمی از کار ما الکترونیکی ها با اونا انجام میشه. دوما، وجود برنامه نویس ذاتا بخاطر وجود الکترونیکی هست و بهتره مخلوق همیشه شکرگذار خالقش باشه و بهش احترام بزاره و باهاش سر جنگ نداشته باشه.
سلام
کامنت جالبی بود!
البته همونطور که توی متن هم اشاره شده میدونیم که دوستان الکترونیک و سخت افزاری از C یا ++C برای کد نویسی هاشون استفاده می کنند، اما مقدار تسلطی که به این زبان های فوق العاده دارند و مدل کد نویسی شون فقط اونقدر هست که کارشون رو راه بندازه و تقریبا به اون از لحاظ فنی نمیشه گفت برنامه نویسی! هرچند اینجا منظور ما برنامه نویسی با زبان های سطح بالا بوده.
در مورد نکته بامزه دومتون هم مثل اینه که ادعا کنیم تفنگ های امروزی مدیون اون سنگی هست که قابیل تو سر هابیل زد یا برعکس!
بیشتر در مور .net core که اینچه چی هست و باهاش چه کارها میشه انجام داد
آیا زبان برنامه نویسیه یا فریم ورکه
.net core یک فریم ورک هست و زبان برنامه نویسی اون #C.
به طور معمول برای ساختن API ها برای استفاده توی سایر نرم افزارها استفاده میشه اما توی رزبری پای کارهای جالب دیگه هم میشه باهاش کرد!
ما که چیزی سر در نیاوردیم
لطفا در این زمینه برای علاقه متدان آموزش هایی ارائه بدید یا حد اقل منابع آموزش معرفی کنید
باتشکر
توی کدوم قسمت ابهام داشتید دوست عزیز؟ شاید بتونم بهتر کمک کنم
اگه مربوط به کد نویسی .Net Core میشه ابهامتون خوب یکم مبحث طولانیه اما اگه توی نصب سیستم عامل یا درک کلی مقاله ابهامی وجود داره بفرمایید.