آشنایی با InelliCode
معمولا وقتی در یک پروژه برنامه نویسی می کنید باید به دنبال تابع مورد نظر بگردید. لیست توابع که با ctrl+space باز میشود همیشه بر اساس نام مرتب شده است. اما Intellicode از این پس آنها را بر اساس کاربری مرتب میکند و هنگام تایپ کردن بر اساس پروژه ی جاری کد را تکمیل میکند.
در هر جای پروژه که باشید Intellicode مسیر بعدی را پیش بینی می کند و متغیری که بیشترین هماهنگی را با کد جاری دارد پیشنهاد میدهد. مثلا اگر باید تاریخ و ساعت را به یک تابع وارد کنید خودش به دنبال متغیرهای تاریخ و ساعت کد جاری میگردد و آنها را انتخاب میکند.
از دیگر امکانات این افزونه تولید هوشمند و خودکار فایل editConfig است. این فایل در همه ی ویرایشگرهای کد به عنوان استانداردی برای اعمال قوانین کد نویسی استفاده میشود و تا قبل از این باید دستی تولید میکردید.
همچنین این افزونه می تواند از روی تاریخچه ی تغییرات کد درون git یا TFS تشخصیص دهد که کدام قسمتهای کد باید تغییر کند یا ممکن است عامل بوجود آمدن باگ باشد.
چطور کار میکند ؟
مایکروسافت برای ایجاد این ابزار بیش از 2 هزار پروژه ی سورس باز در github را توسط Machine Learning پردازش کرده و یک سیستم هوش مصنوعی بوجود آورده که به شما کمک میکند کمتر تایپ کنید و باگها را سریعتر پیدا کنید.
برای کسب اطلاعات بیشتر می توانید به آدرس زیر مراجعه کنید :
https://blogs.msdn.microsoft.com/visualstudio/2018/05/07/introducing-visual-studio-intellicode/
برای دانلود افزونه می توانید به آدرس زیر بروید :
https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.VSIntelliCode
این افزونه کاملا رایگان است و روی همه ی نسخه های VS2017 کار میکند.
معمولا وقتی در یک پروژه برنامه نویسی می کنید باید به دنبال تابع مورد نظر بگردید. لیست توابع که با ctrl+space باز میشود همیشه بر اساس نام مرتب شده است. اما Intellicode از این پس آنها را بر اساس کاربری مرتب میکند و هنگام تایپ کردن بر اساس پروژه ی جاری کد را تکمیل میکند.
در هر جای پروژه که باشید Intellicode مسیر بعدی را پیش بینی می کند و متغیری که بیشترین هماهنگی را با کد جاری دارد پیشنهاد میدهد. مثلا اگر باید تاریخ و ساعت را به یک تابع وارد کنید خودش به دنبال متغیرهای تاریخ و ساعت کد جاری میگردد و آنها را انتخاب میکند.
از دیگر امکانات این افزونه تولید هوشمند و خودکار فایل editConfig است. این فایل در همه ی ویرایشگرهای کد به عنوان استانداردی برای اعمال قوانین کد نویسی استفاده میشود و تا قبل از این باید دستی تولید میکردید.
همچنین این افزونه می تواند از روی تاریخچه ی تغییرات کد درون git یا TFS تشخصیص دهد که کدام قسمتهای کد باید تغییر کند یا ممکن است عامل بوجود آمدن باگ باشد.
چطور کار میکند ؟
مایکروسافت برای ایجاد این ابزار بیش از 2 هزار پروژه ی سورس باز در github را توسط Machine Learning پردازش کرده و یک سیستم هوش مصنوعی بوجود آورده که به شما کمک میکند کمتر تایپ کنید و باگها را سریعتر پیدا کنید.
برای کسب اطلاعات بیشتر می توانید به آدرس زیر مراجعه کنید :
https://blogs.msdn.microsoft.com/visualstudio/2018/05/07/introducing-visual-studio-intellicode/
برای دانلود افزونه می توانید به آدرس زیر بروید :
https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.VSIntelliCode
این افزونه کاملا رایگان است و روی همه ی نسخه های VS2017 کار میکند.
Microsoft
Introducing Visual Studio IntelliCode
The official source of product insight from the Visual Studio Engineering Team
مروری بر بیلد 2018
بیش از 50 درصد جلسات امسال درباره ی Azure و قابلیت های آن بود.
هوش مصنوعی هم بخش مهمی از جلسات امسال را در بر گرفت. معرفی قابلیت های سرویس ابری هوش مصنوعی مایکروسافت به نام Cognitive Services در کنار بررسی فریم ورک ML NET تماشاگران بسیاری را به کنفرانس کشاند.
چند جلسه ی کامل به موضوع Fluent Design اختصاص داده شد. این سیستم طراحی جدید مایکروسافت در رقابت با Material Design گوگل معرفی شده است.
تکنولوژی Microsoft Graph و MS 365 که در زمینه ی یکپارچه سازی اطلاعات و امور تجاری است بخش بزرگی از کنفرانس امسال بود و مدیر عامل مایکروسافت هم آنها را به عنوان اهداف اصلی توسعه معرفی کرد.
بخشی از کنفرانس به Blockchain اختصاص داده شده بود. پیش بینی میشود سرمایه گذاری در این زمینه در 5 سال آینده 10 برابر شود.
در برنامه نوسی وب نکته ی جالب توجه کم رنگ بودن Blazor بود. این فریم ورک به صورت حاشیه ای معرفی شد در حالی که همه انتظار داشتند یک جلسه ی اخصاصی داشته باشد. معلوم است که مایکروسافت هنوز تصمیم نگرفته آیا قصد توسعه ی آن را دارد یا نه.
در بسیاری از دموهای امسال از Vue.js استفاده شد. این فریم ورک حداقل در بین برنامه نویسان مایکروسافت طرفداران زیادی دارد.
بیش از 50 درصد جلسات امسال درباره ی Azure و قابلیت های آن بود.
هوش مصنوعی هم بخش مهمی از جلسات امسال را در بر گرفت. معرفی قابلیت های سرویس ابری هوش مصنوعی مایکروسافت به نام Cognitive Services در کنار بررسی فریم ورک ML NET تماشاگران بسیاری را به کنفرانس کشاند.
چند جلسه ی کامل به موضوع Fluent Design اختصاص داده شد. این سیستم طراحی جدید مایکروسافت در رقابت با Material Design گوگل معرفی شده است.
تکنولوژی Microsoft Graph و MS 365 که در زمینه ی یکپارچه سازی اطلاعات و امور تجاری است بخش بزرگی از کنفرانس امسال بود و مدیر عامل مایکروسافت هم آنها را به عنوان اهداف اصلی توسعه معرفی کرد.
بخشی از کنفرانس به Blockchain اختصاص داده شده بود. پیش بینی میشود سرمایه گذاری در این زمینه در 5 سال آینده 10 برابر شود.
در برنامه نوسی وب نکته ی جالب توجه کم رنگ بودن Blazor بود. این فریم ورک به صورت حاشیه ای معرفی شد در حالی که همه انتظار داشتند یک جلسه ی اخصاصی داشته باشد. معلوم است که مایکروسافت هنوز تصمیم نگرفته آیا قصد توسعه ی آن را دارد یا نه.
در بسیاری از دموهای امسال از Vue.js استفاده شد. این فریم ورک حداقل در بین برنامه نویسان مایکروسافت طرفداران زیادی دارد.
سر فصلهای دوره ی آموزشی
ASP Core 2.1 - MVC
HTTP Protocol
Kestrel
Startup
Middlewares
Static Files
Loggign
Views
Razor Engine
Razor pages
Tag Helpers
View Components
Partial Views
Controllers
Routing
Uploading files
Actions
Action Filters
Models
Identity
Entityframe work
Code First
Dependency Injection
ASP Core 2.1 - MVC
HTTP Protocol
Kestrel
Startup
Middlewares
Static Files
Loggign
Views
Razor Engine
Razor pages
Tag Helpers
View Components
Partial Views
Controllers
Routing
Uploading files
Actions
Action Filters
Models
Identity
Entityframe work
Code First
Dependency Injection
آنچه باید درباره ی Core 3.0 بدانید :
این نسخه تا پایان سال جاری میلادی عرضه میشود.
این نسخه از WPF و WinForm پشتیبانی میکند. اما در این حالت فقط روی ویندوز اجرا میشود.
نیاز به نصب دات نت روی سیستم کاربر وجود ندارد و می توان با کپی فولدر آن را در هرجایی اجرا کرد.
می توان پروژه را به یک فایل تکی اجرایی exe تبدیل کرد که مستقل از هر فریم ورکی کار کند. (مانند برنامه های پرتابل)
امکان استفاده از کنترل های UWP درون ویندوز فرم وجود دارد.
سرعت اجرای برنامه های WinForm در Core بیشتر است و آزمایشها اولیه تا دوبرابر بهبود را نشان میدهد.
این نسخه تا پایان سال جاری میلادی عرضه میشود.
این نسخه از WPF و WinForm پشتیبانی میکند. اما در این حالت فقط روی ویندوز اجرا میشود.
نیاز به نصب دات نت روی سیستم کاربر وجود ندارد و می توان با کپی فولدر آن را در هرجایی اجرا کرد.
می توان پروژه را به یک فایل تکی اجرایی exe تبدیل کرد که مستقل از هر فریم ورکی کار کند. (مانند برنامه های پرتابل)
امکان استفاده از کنترل های UWP درون ویندوز فرم وجود دارد.
سرعت اجرای برنامه های WinForm در Core بیشتر است و آزمایشها اولیه تا دوبرابر بهبود را نشان میدهد.
فرق POST و PUT
یک متدی وقتی Safe است که اجرای آن در وضعیت سرور تغییر ایجاد نکند. اصولا متدهای "فقط خواندنی" مانند GET به عنوان Safe شناخته میشوند. (مگر اینکه برنامه نویس به اشتباه روی متد GET تغییراتی در وضعیت سرور اعمال کند!)
یک متد وقتی Idempotent هست که وقتی چند بار پشت سر هم فراخوانی شد نتیجه ی یکسان در سرور بدست آید. متد POST اینگونه نیست. چرا که وقتی یک رکورد را از این طریق به سرور میفرستید در دیتابیس ردیف جدید ایجاد میشود. اگر صد بار اجرا شود صد ردیف جدید خواهید داشت.
اگر با متد PUT رکوردی به سرور ارسال شود طبق استاندارد باید بررسی کنید که آیا رکورد مشابهی در دیتابیس وجود دارد یا خیر و اگر بود باید آن را تغییر دهید (و رکورد جدید در دیتابیس اضافه نکنید) و اگر نبود مجاز هستید که مانند POST ردیف جدید ایجاد کنید. حالا اگر دوباره همان رکورد به سرور ارسال شود وضعیت دیتابیس تغییر نمیکند. پست PUT باید نسبت به اجرای چندباره خنثی عمل کند.
البته اینها فقط استاندارد است و پیاده سازی مکانیزم به عهده ی برنامه نویس می باشد.
یک متدی وقتی Safe است که اجرای آن در وضعیت سرور تغییر ایجاد نکند. اصولا متدهای "فقط خواندنی" مانند GET به عنوان Safe شناخته میشوند. (مگر اینکه برنامه نویس به اشتباه روی متد GET تغییراتی در وضعیت سرور اعمال کند!)
یک متد وقتی Idempotent هست که وقتی چند بار پشت سر هم فراخوانی شد نتیجه ی یکسان در سرور بدست آید. متد POST اینگونه نیست. چرا که وقتی یک رکورد را از این طریق به سرور میفرستید در دیتابیس ردیف جدید ایجاد میشود. اگر صد بار اجرا شود صد ردیف جدید خواهید داشت.
اگر با متد PUT رکوردی به سرور ارسال شود طبق استاندارد باید بررسی کنید که آیا رکورد مشابهی در دیتابیس وجود دارد یا خیر و اگر بود باید آن را تغییر دهید (و رکورد جدید در دیتابیس اضافه نکنید) و اگر نبود مجاز هستید که مانند POST ردیف جدید ایجاد کنید. حالا اگر دوباره همان رکورد به سرور ارسال شود وضعیت دیتابیس تغییر نمیکند. پست PUT باید نسبت به اجرای چندباره خنثی عمل کند.
البته اینها فقط استاندارد است و پیاده سازی مکانیزم به عهده ی برنامه نویس می باشد.
نسخه ی Beta 3 از Flutter SDK عرضه شد.
فریم ورک Flutter برای طراحی رابط کاربری آیفون و اندروید استفاده میشود و در این هفته نسخه ی بتای سوم آن منتشر شد.
گوگل در این نسخه از زبان برنامه نویسی Dart 2 استفاده میکند. این زبان همان جاوا اسکریپت است با قابلیت های بیشتر (چیزی شبیه TypeScript) .
چند سالی میشد که گوگل کار روی این زبان را متوقف کرده بود اما حالا با جلب شدن توجه ها به سمت TypeScript تلاش میکند در این بازار سهمی داشته باشد.
گوگل اعلام کرد با نرم افزار VS Code به عنوان "شهروند درجه ی اول" برخورد میکند و همه ی آپدیت های Flutter را علاوه بر Android Studio در در VS Code هم قرار میدهد.
افزونه ی زبان دارت برای VS Code بیش از 250 هزاربار دانلود شده و هنوز یک هفته نشده آمار دانلود افزونه ی FLutter هم از 11 هزارتا عبور کرده است.
فریم ورک Flutter از یک کد برای تولید رابط کاربری اندروید و آیفون روی GPU استفاده میکند و خروجی آن به صورت ARM محلی است.
فریم ورک Flutter برای طراحی رابط کاربری آیفون و اندروید استفاده میشود و در این هفته نسخه ی بتای سوم آن منتشر شد.
گوگل در این نسخه از زبان برنامه نویسی Dart 2 استفاده میکند. این زبان همان جاوا اسکریپت است با قابلیت های بیشتر (چیزی شبیه TypeScript) .
چند سالی میشد که گوگل کار روی این زبان را متوقف کرده بود اما حالا با جلب شدن توجه ها به سمت TypeScript تلاش میکند در این بازار سهمی داشته باشد.
گوگل اعلام کرد با نرم افزار VS Code به عنوان "شهروند درجه ی اول" برخورد میکند و همه ی آپدیت های Flutter را علاوه بر Android Studio در در VS Code هم قرار میدهد.
افزونه ی زبان دارت برای VS Code بیش از 250 هزاربار دانلود شده و هنوز یک هفته نشده آمار دانلود افزونه ی FLutter هم از 11 هزارتا عبور کرده است.
فریم ورک Flutter از یک کد برای تولید رابط کاربری اندروید و آیفون روی GPU استفاده میکند و خروجی آن به صورت ARM محلی است.