DotNetZoom
2.98K subscribers
342 photos
18 videos
36 files
606 links
DotNetZoom
💎 Everything about .NET

ارتباط با مدیر و تبلیغات آگهی استخدام:
@mjebrahimi

لینک گروه ASPNET Core:
https://t.iss.one/+ufG25x7lVFgyYTNk
Download Telegram
میزان عیدی سال 1397
خیلی ها از نحوه محاسبه و میزان عیدی و سنوات پایان سالشون خبر ندارن و نمیدونن چقدر باید بگیرن

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

✔️میزان عیدی برابر با حقوق 2 ماه کاری شماست ولی حداقل و حداکثر داره
🔸حداقل عیدی برابر است با 2,222,538 تومان و
🔹حداکثر عیدی برابر است با 3,333,807 تومان

مثلا :
اگه حقوقتون 1 میلیون باشه، عیدی تون میشه 2,222,538 تومن
اگه حقوقتون 1.5 میلیون باشه، عیدی تون میشه 3 میلیون تومن
اگه حقوقتون 2 میلیون باشه، عیدی تون میشه 3,333,807 تومن

✔️ پس میزان عیدی شما میشه 2برابر حقوق ماهیانه شما به شرطی که توی رنج حداقل و حداکثر باشه که در غیراین صورت همون میزان های حداقل و حداکثر محاسبه میشن

✔️ اکثر شرکتا فقط حداقل میزان عیدی رو لحاظ میکنن، حتی اگه میزان عیدی شما بیشتر از حداقل باشه! که در این صورت شما باید اعتراض کنین

✔️ سنوات رو دقیقش رو اطلاعی ندارم ولی ظاهرا اون هم برابر با 1 حقوق کامل هست (اینکه حداقل یا حداکثر داره یا نه رو نمیدونم، اگه کسی میدونه بگه تا اصلاح کنم)

✔️ در بهترین حالت باید عیدی و سنوات رو آخر ماه بهمن بدهند ولی معمولا این اتفاق نمی افته و آخر اسفند میدن

✔️ به عنوان نکته آخر اینکه این میزان عیدی و سنوات یک سال کامل هست و در صورتی که کمتر از یک سال کارمند اون شرکت هستین به میزان تعداد ماه هایی که بودین حساب میشه
مثلا اگه 5 ماهه که استخدام شدین، میزان عیدی و سنوات تون تقسیم بر 12 و ضرب در 5 میشه و اینطور نیست که اصلا چیزی بهتون تعلق نگیره

@IranAspMvc
معرفی کتابخانه CacheManager

این کتابخانه تمامی ابزار های لازم برای فرایند #Caching را یکپارچه کرده و در اختیار ما میگذاره.

در واقع با استفاده از این کتابخانه میتونین از بهترین ابزار های کش رو درکنار هم به راحتی استفاده کنین و هر موقع که خواستین، هر کدوم از اونا رو با یه کانفیگ ساده تغییر بدین. مثلا روش کشینگ تون رو از MemoryCache به Redis تغییر بدین

قابلیت ها :
🔹امکان استفاده از کش پروایدر های مختلف InMemory مانندMemoryCache و System.Runtime.Caching
🔸امکان استفاده از کش پروایدر های مختلف Distributed مانند Memcached، Redis و Couchbase
🔹امکان استفاده از ابزار های Serialization مانند : Binary، Json ، Bond و ProtoBuf گوگل که جز سریع ترین هاست
🔸لاگ تمامی عملیات ها بر اساس Logging موجود در NET Core
🔹قابلیت اعمال تنظیمات بر اساس Configuration موجود در NET Core و App/Web.config و نیز کد نویسی
🔸 امکان فراخوانی متد ها به هنگام رخ داد (Event) های مختلف مانند OnGet, OnAdd, OnRemove و...
🔹قابلیت استفاده از کش های چند لایه ای
🔸مدیریت خودکار مباحث Expiration در کش های چند لایه
🔹قابلیت Sync کردن دیتا ها در کش های چند لایه
🔸امکان ثبت گزارشات (Statistics) و معیار های پرفرمنسی (Performance Counters)

همچنین این کتابخانه ضمن رعایت نکات پرفرمنسی و Best Practice های کشینگ، امکان استفاده ایمن و یکپارچه برای ما فراهم میکنه

https://github.com/MichaCo/CacheManager

در حال حاضر این کتابخونه و کتابخونه EasyCaching که قبلا معرفی کردیم، بهترین کتابخانه های Cache Integration هستند
@IranAspMvc
DotNetZoom
🔰دوره دوره API نویسی اصولی و حرفه ای در ASP.NET Core در این دوره همه نکات مهم و پرکاربرد در API نویسی اصولی و حرفه ای در ASP Core بررسی شده اند. همچنین سعی شده بهترین و محبوب ترین تکنولوژی ها، کتابخانه ها و ابزار ها داخل پروژه استفاده بشه. ونیز Best Practice…
مدیر سایت بیاموز زحمت کشیدن طی یک حرکت انقلابی، آتش زدن به آموزش بنده 😑😅
به مناسبت عید نوروز، کد تخفیف 51 درصدی ارائه کردند
با همون dotnetzoom میتونین با 51% تخفیف دوره ها رو تهیه کنین✌️
❇️ نحوه ساخت اپلیکیشنهای Real-time تحت وب با ASP NET Core SignalR (زبان اصلی زیر نویس دار)

[02:10] - Quick introduction to SignalR
[06:06] - Targeting clients
[10:51] - Leveraging the Hub protocol
[12:18] - SignalR Transports
[13:55] - Hosting SignalR in a background service
[16:22] - Azure SignalR Service
[18:22] - The SignalR Java client on Android
[22:34] - Streaming with SignalR

https://channel9.msdn.com/Shows/On-NET/Real-time-web-applications-with-ASPNET-Core-SignalR
_______________
@IranAspMvc
معرفی EFSecondLevelCache.Core
در سری #معرفی_اکستنشن_های_کاربردی_EFCore

توسط این کتابخانه میتونین کش سطح دوم (second level caching) رو روی EF Core فعال کنین. در واقع میتونین نتیجه کوئری هاتون رو کش کنین تا دفعه بعد، به جای دیتابیس، از کش خونده بشه.
این کتابخانه توسط وحید نصیری عزیز، مدیر سایت dotnettips.info نوشته شده است.

🔸این کتابخانه برای مدیریت Caching اش از کتابخانه CacheManager استفاده میکنه که فوق العاده قدرتمند و انعطاف پذیر هست و قبلا معرفیش کردیم.

🔹در حال حاضر این کتابخانه محبوبترین و سپس کتابخانه EntityFrameworkCore.Cacheable که قبلا معرفی کردیم جز بهترین کتابخانه های کش سطح دوم برای EF Core هستند.

🔸مزیت این کتابخانه نسبت به اون، اینه که از async هم پشتیبانی میکنه. مثال :
var products = context.Products.Include(x => x.Tags).Cacheable().FirstOrDefault();

🔹مزیت دیگه اش اینه که به صورت خودکار بحث اعتبار سنجی کش (اصطلاحا Invalidation یا Revalidation) رو به صورت خودکار مدیریت میکنه به این صورت که به محض تغییر یه entity یعنی (insert, update, delete)، آیتم های مربوط به اون رو از کش حذف میکنه تا توی کوئری بعدی بروز رسانی بشه.

https://github.com/VahidN/EFSecondLevelCache.Core/
_______________
@IranAspMvc
نمودارهای اولیه و نتایج خام نظر سنجی بزرگ کار و زندگی برنامه نویسان و مدیران سیستم ایران در سال ۱۳۹۷

به نقل از وبلاگ جادی (jadi.net) :
خب دوستان، بعد از یک‌ماه تقریبا ۳۰۰۰ نفر فرم نظر سنجی سالانه کار و زندگی برنامه نویسان و مدیران سیستم رو پر کردن و نتایج آماده انتشاره. این نظر سنجی سالانه می تونه در طول زمان کلی به کمک ما بیاد و در نبود یک سندیکا، حداقلی از اینکه چقدر باید حقوق بگیرم یا چه شرایطی باید از یک محیط کار بخوایم رو بهمون نشون بده. همچنین با سبک زندگی و خیلی چیزهای همدیگه آشنا می شیم و می‌بینیم بقیه چه چیزهایی بلدن و کجاها کار می کنن و احتمالا مسیری برای پیشرفت خودمون پیدا می کنیم. پس با تشکر از همه ۲۹۵۷ نفری که پرسشنامه رو پر کردن، اول به این نمودارها نگاهی می کنیم و بعدش اون آخر، فایل اصلی رو می ذاریم تا اگر کسی خواست، تحلیل خودش رو بده. منم در طول عید سعی می کنم چند تحلیل روی دیتاها انجام بدم و سعی کنیم روابط آماری بینشون رو کمی کشف کنیم. شما هم اگر کار جالبی روی دیتاها کردین خوشحال می شم بهم (وبلاگ جادی) معرفی کنین تا توی همین سری ها اضافه اش کنم. اما اولین مطلب،‌ منطقا آمار ابتدایی است.

https://jadi.net/2019/03/iran-programmers-results/
البته سایت جادی فیلتره و اگه فیلتر شکن ندارین میتونین نتایج رو به صورت PDF از لینک زیر دانلود کنین
https://bit.ly/2Tg9Ux2
_______________
@IranAspMvc
Forwarded from Software Philosophy
♨️ یک تغییر بزرگ: حذف دستور new از زبان‌های C# و Java ⁉️

بالاخره پس از مذاکرات و صحبت‌های زیاد در یک اقدام هماهنگ خالقان C# و Java تصمیم گرفتند دستور new را از این زبان‌ها حذف کنند. این تصمیم به این دلیل گرفته شد که از نظر طراحان این زبان‌ها همه Object Instantiation ها همیشه باید از طریق Dependency Injection انجام شود و اصولا در یک برنامه خوب برنامه‌نویس نباید خودش یک شی را ایجاد کند.

// Not a valid code anymore. 
Person p = new Person();

// New dependency injection syntax.
Person p = new.Resolve<Person>();

این تصمیم اولین تصمیم هماهنگ شده و همزمان بین تیم‌های توسعه زبان Java و C# است و Anders Hejlsberg و James Gosling هر دو در مورد این تصمیم بسیار خوشحالند.

با توجه به اینکه این تصمیم در روز اول آوریل (۱۳ فروردین) گرفته شد و نسخه Visual Studio 2019 نیز در همین روز منتشر شد، این تغییر در نسخه جدید C# 8.0 اعمال شده و باید از مدل جدید آن استفاده کنید.
در جاوا هم طبق برنامه‌ریزی این ویژگی در Java 15 اضافه خواهد شد که در سال ۲۰۲۵ ریلیز خواهد شد.

برای اطلاعات بیشتر می‌توانید مقاله‌ای که در این مورد در لینک زیر نوشته شده‌است را بخوانید.

۱۳ بدرتان مبارک!

https://mehrandvd.me/2019/04/01/a-huge-change-in-java-and-c/

https://fa.wikipedia.org/wiki/%D8%AF%D8%B1%D9%88%D8%BA_%D8%A7%D9%88%D9%84_%D8%A2%D9%88%D8%B1%DB%8C%D9%84

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

https://ow.ly/6RyP30ojWAP

#مهران_داودی (https://ow.ly/GwIl309lFEm)

کانال تلگرام:
@SoftwarePhilosophy

___
رمزنگاری خودکار فیلدها در EF Core
بعلاوه بررسی قابلیت HasConversion و ValueConverter در EF Core

🔸مقاله زیر قابلیت جالبی (و البته خاصی) رو به نام ValueConverter ها در EF Core 2.1 (به بالا) معرفی میکنه، توسط این قابلیت دیتا های شما قبل از اینکه وارد دیتابیس بشه (مثلا Add و Update و...) این امکان رو به شما میده که تغییرش بدین؛ مثلا مقادیر enum تون رو به جای اینکه عددش توی دیتابیس ذخیره بشه، متن string اش ذخیره بشه.
این کار پشت صحنه و به صورت خودکار انجام میشه و نیازی نیست توی کد هاتون خودتون هندل اش کنین.

🔹همچنین موقع واکشی کردن اطلاعات، قبل از اینکه دیتا به دست شما برسه این امکان رو به شما میده که تغییرش بدین، مثلا همون متن string رو به enum مربوطه تبدیل کنین. این کار هم به صورت خودکار انجام میشه و نیازی نیست توی کوئری هاتون کد اضافه تری بنویسین.

🔸حالا وحید نصیری عزیز با استفاده از این ترفند اومده یه مثال زده. اومده یه ValueConverter نوشته که کارش Encrypt کردن متون قبل از Insert شدن و Decrypt کردن اون به هنگام واکشی هست. در نتیجه متون شما توی دیتابیس رمزنگاری شده ذخیره میشه، ولی وقتی توی برنامه کوئری میزنین، متن عادی (رمزگشایی شده) رو مشاهده میکنین.

🔹البته این صرفا یک مثال (خلاقانه) هست و به نظرم راه بهینه ای واسه رمزنگاری اطلاعات دیتابیس نباشه، توی SQLServer راه های اصولی تری مخصوص این قضیه وجود داره

https://www.dotnettips.info/post/3015
_______________
@IranAspMvc
🔰بررسی نتایج کلیدی نظرسنجی Stackoverflow 2019 (قسمت اول)

چند روز پیش نتایج نظرسنجی Stackoverflow 2019 منتشر شد
این نظرسنجی که بزرگترین و معتبر ترین نظرسنجی دلوپر هاست، نتایج جالبی داشته که مهمترین نتایج کلیدیش رو با هم بررسی خواهیم کرد

محبوب ترین Framework ها:

🔸 فریمورک NET Core با 77% محبوبیت، محبوب ترین فریمورک شناخته شده است
این محبوبیت به معنای پر استفاده ترین نیست و به معنی دوست داشتنی ترین است، یعنی میزان علاقه به این فریمورک ها را نشان میدهد
درواقع اکثر افرادی که از این فریمورک ها استفاده میکنند راضی بوده و علاقمند به ادامه کار با آنها هستند
پس از آن Torch/PyTorch (فریمورک یادگیری عمیق پایتون) و Flutter (فریمورک گوگل برای توسعه اپ های موبایل به صورت Cross-platform) به ترتیب با اختلاف کمی جز محبوب ترین فریمورک ها هستند

🔹 از بین فریمورک های معروف، Cordova و Xamarin جز کم محبوبیت ترین ها شناخته شده است
به این معنی که کسانی که با این فریمورک ها برنامه نویسی میکنند، علاقه کمی به ادامه کار با اینها را دارند.
پس اگر از اینها استفاده میکنید یا تصمیم به یادگیری آنها دارید، شاید لازم باشه یه تجدید نظری بکنین

محبوب ترین Database ها:

🔸 دیتابیس های Redis (برای سومین سال متوالی) و PostgreSQL و Elasticsearch به ترتیب با 71 و 69 و 63 درصد محبوب ترین دیتابیس ها شناخته شده اند و اکثر افراد علاقمند به ادامه کار با آنها هستند
دیتایس SQL Server نیز با 57% محبوبیت در میانه جدول قرار دارد!

🔹 در نقطه مقابل دیتابیس ها Couchbase و Oracle و Cassandra و MySQL به ترتیب جز کم محبوبیت ترین ها هستند و استفاده کنندگان، به ادامه کار با آنها علاقمند نیستند
با این اوصاف میشه گفت دوره پادشاهی این دیتابیس ها به پایان رسیده و در آینده نیز بیشتر خواهد رسید

محبوب ترین پلفرم ها :

🔸 بعد از Linux (که بدیهی هست) Docker و Kubernetes به ترتیب با 77 و 76 درصد جز محبوب ترین پلتفرم ها شناخته شده اند
اگر هنوز به استفاده از اینها رو نیاوردید، مطمئن باشید آینده از آن شما نیست!

🔹 در نقطه مقابل با کمال تعجب WordPress کم محبوبیت ترین پلتفرم بوده! و این شاید زنگ خطری برای وردپرس کاران باشد
وردپرس هم اکنون هم پر استفاده ترین CMS دنیاست ولی کم محبوب بودن به معنی علاقمند نبودن به ادامه استفاده از اون هست، یعنی کاربرانش راضی نیستند و احتمالا در آینده استفاده ازش کاهش پیدا میکنه

محبوب ترین محیط کدنویسی:

🔸 برای دومین سال متوالی Visual Studio Code با 50.7% محبوب ترین ابزار کد نویسی شناخته شد و پس از آن Visual Studio و NotePad++ به ترتیب با 31 با 30 درصد در صدر جدول قرار داشتند
این آمار بیشتر مربوط به برنامه نویسای وب بوده ولی برای برنامه نویسان موبایل هم، Visual Studio Code با اختلاف کمتر از 1 درصد در جایگاه دوم و پس از Android Studio قرار داد

محبوب ترین سیستم عامل کدنویسی:

🔹 سیستم عامل Windows با اختلاف زیاد و با 47 درصد محبوبیت در صدر قرار دارد و پس از آن مک و لینوکس به ترتیب با 26 و 25 درصد در جایگان دوم و سوم
بر کسی پوشیده نیست که لینوکس بهترین سیستم عمل برای سرور بوده و هست ولی دلیل نمیشه برای محیط توسعه هم بهترین باشه، اینجاست که به این نتیجه میرسیم که هر چیز باید در جای خودش استفاده بشه

پر درآمد ترین زبان ها:

🔸 زبان Clojure به طور میانگین با 90 هزار دلار درآمد سالانه، گران قیمت ترین زبان برنامه نویسی است و پس از آن F# و Go با درآمد سالانه 80 هزار دلار درجایگان بعدی قرار دارند

🔹 زبان C# نیز به طور میانگین، با درآمد سالانه 59 هزار دلار تقریبا در میانه جدول قرار دارد

🔸 زبان های Java و C و Assembly با درآمد سالانه 52 هزار دلار و زبان های HTML/CSS و JavaScript به ترتیب با 55 و 56 هزار دلار جز زبان های ارزان دنیا هستند
لازم به ذکره این نتایج مربوط به میانگین آمار جهانی بوده و در آمریکا تا حد زیادی متفاوت است

🔹 و در آخر زبان PHP با حدود 42 هزار دلار درآمد سالانه، کمترین درآمد رو داره
به نحوی که حتی توی لیست اصلی جا نشده ولی توی نمودار پایینای صفحه هست

https://insights.stackoverflow.com/survey/2019
_______________
@IranAspMvc
🔰بررسی نتایج کلیدی نظرسنجی Stackoverflow 2019 (قسمت دوم)

🔸 بیش از نیمی از برنامه نویس ها، آخرین تغییر شغلیشون مال 2 سال گذشته بوده این یعنی اینکه معمولا نمیشه برنامه نویسا رو بیشتر از 2 سال یه جا نگه داشت
این نیاز به تنوع و تغییر شرکت دادن، توی برنامه نویسا خیلی معمول هست، دلیلشم اینه که برنامه نویسا معمولا دنبال یادگیری و چالش های جدید هستند و قاعدتا بعد یه مدت، چالش ها و فرصت های یادگیری یه تموم میشه و جذابیتش رو براشون از دست میده

🔹 57 درصد برنامه نویسا بهترین محیط برای کار کردن رو "اداره" میدونن و 33 درصدشونم "خونه"
به عنوان یه صاحب تجربه توی این بحث میتونم بگم شاید کار کردن توی خونه برای تنوع و یا کوتاه مدت مفید باشه ولی برای بلند مدت اصلا مناسب نیست
از معایبش میشه به کاهش بهره وری در بلند مدت و نیز کاهش شور و نشاط و سطح روابط اجتماعی به دلیل در ارتباط نبودن (یا کم بودن) با همکاران و دوستان هست

🔸 بیش نیمی از توسعه دهندگان (54 درصد) از تکنولوژی های Container ایی (مانند داکر) به ترتیب برای محیط های Development و Testing و Production خود استفاده می کنند

🔹 80 درصد توسعه دهندگان، از تکنولوژی های Blockchain ایی استفاده (یا پیاده سازی) نمی کنند و از اون افراد باقی مانده که اکثرا هندی هستند، 12 درصدشون برای مباحث غیر مالی (Non-currency) بهره میبرند

🔸 در کل اکثر برنامه نویسای دنیا (برعکس ایران متاسفانه) برای پروژه های خودشون از Unit Test می نویسند و نکته جالبش اینجاست که اکثر افرادی که در اینگونه شرکت ها (که Unit Test استفاده میکنند) استخدام هستند، کمی رضایت شغلی بیشتری دارند

🔹 اکثر برنامه نویسا برای تمرکز موقع کد نویسی ترجیح میدند آهنگ گوش کنند
گوناگونی سبک موزیک ها زیاده ولی به عنوان محبوب ترین ها میتوان به سبک های Rock، Metal، Electronic و نیزآهنگ های Classic و بدون کلام اشاره کرد
خلاصه که اگه خواستی بببینی طرف برنامه نویسه یا نه، ببین موقع کد نویسی موزیک گوش میده یا نه :))

🔸 بیشتری ساعت کاری برنامه نویسا مربوط به کشور های اروپای شرقی، هند و آمریکا هست که معمولا بیشتر از 44 ساعت در هفته کار می کنند و همین عامل نشون میده اونجا جای من نیست! :))

https://insights.stackoverflow.com/survey/2019
___________
@IranAspMvc
Forwarded from کدهک
ویدیو :

مقایسه عملکرد متدهای Sync و Async در ASP NET Core

https://tinyurl.com/y57t4u33
🔰 بررسی نکات کلیدی نظرسنجی Stackoverflow 2019 (قسمت سوم)

🔸 حدود 65% برنامه نویسا یک بار یا بیشتر در سال توی پروژه های Open Source مشارکت (Contribute) می کنند
این نکته، اهمیت Contributing رو به خوبی نشون میده تا جایی که توی خارج یکی از مهمترین ترین عوامل اعتبار رزومه، همین میزان فعالیت های اوپن سورسی شخص هست
متاسفانه میزان Contribute برای پروژه های سی شارپی نسبت به زبان های دیگه مثل JavaScript و PHP و Java و ... خیلی کمتره و یکی از دلایل مهمش (به غیر از کم بودن پروژه های اوپن سورسی سی شارپی نسبت به بقیه زبان ها) اینه که ما سی شارپی ها هنوز فرهنگ اوپن سورسی بدرستی برامون جا نیافتاده
برعکس برنامه نویسای جاوااسکرپیت که هر ریپازیتوری دم دستشون میاد Star میدن، اکثر ما سی شارپی ها حتی نمیدونیم چطوری باید تو گیتهاب امتیاز(Star) بدیم! اگرم بدونیم هم یه جوری دستمون میلرزه انگار از ارث بابامون کم میکنه!

🔹 نزدیک به 70% برنامه نویسا، مدرک/تحصیلات کارشناسی و کارشناسی ارشد دارند و 62% هم تحصیلات دانشگاهی مرتبط دارند
اماااااا با اوضاع دانشگاه های ما (که خودتون بهتر میدونین ولازم به توضیح نیست، مخصوصا برای برنامه نویسی !) اگر جز این درصد ها نیستید به نظرم انتخاب درستی کردین 👍

🔸 یادگیری خودآموز با 85% و گذراندن دوره های آموزشی آنلاین با 60% محبوب ترین روش های یادگیری در بین برنامه نویسان هست
نتیجه ای که میشه از این مورد گرفت، اهمیت بسیار بالای یادگیری زبان انگیسی برای ما ایرانی ها، با توجه به کمبود آموزش های بروز و حرفه ای به زبان فارسی توی ایران هست (یعنی واقعا از نون شب بهمون واجب تره!)

🔹 91% برنامه نویسا مرد هستند. با توجه به نظرسنجی جادی، این آمار توی ایران هم همین حدوداست (89%)
متاسفانه میزان مشارکت بانوان در این حوزه به دلایل نا معلومی بسیار پایینه! بازم جای تقدیر داره که با 2 درصد اختلاف، از میانگین آمار جهانی بالاتریم!

🔸 در کل میزان مشارکت زنان کم بوده ولی یه نکته جالب اینکه میزان مشارکت زنان توی حوزه هایی مانند Data Science و Deep/Machine Learning و Design و Front-end Developer نسبت به حوزه هایی مانند و SysAdmin و Db Admins و DevOps بیشتر بوده

🔹 طبق یه تحلیل دیگه بر اساس جنسیت و میزان سابقه کار
50% برنامه نویسای مرد زیر 10 سال و 50% دیگشون بیشتر از 10 سال سابقه کار دارند
در حالی که 67% برنامه نویسای زن زیر 10 سال و تنها 33 درصدشون بیش از 10 سال سابقه کار دارند
این اکثر برنامه نویسای زن تا 10 سال سابقه کار دارند ولی بعد از 10، خیلی سریع تر از مردا ریزش پیدا کرده و ترک کار میکنن!

🔸 67% برنامه نویسا بین 20 تا 34 ساله هستند، که بیشتریشون هم 25 تا 29 ساله هستند (27%)
این یعنی "سن طلایی" برنامه نویسی بین 20 تا 34 سال، بعدش معمولا وارد سمت های دیگه مثل (مشاوره، مدیر پروژه/محصول و... میشن)
به توجه به چندتا آمار دیگه هم شاید بشه گفت که عمر مفید برنامه نویسی، کلا 15 سال هست، بعدش دیگه موتور تون مثل قبل کار نمیکنه!
پس اگه توی این رنج سنی هستین، بیشترین استفاده رو بکنین و اگر دارین به 35 سالگی یا 15 سال کاری نزدیک میشین بهتره کم کم به فکر تغییر سمت یا شغل باشین

🔹 اکثر برنامه نویسای هند و اروپای شرقی، جوان تر و کم تجربه هستند
در حالی که اکثر برنامه نویسای استرالیا، اروپای غربی و آمریکا، مسن تر و با تجربه تر هستند
پس اگه قصد مهاجرت به این کشور ها رو دارین بدونین که کجا ها بیشترین رقیب رو دارید (و شایدم بیشترین فرصت پیشرفت به دلیل همکار بودن با ادمای با تجربه)

🔸 شبکه های اجتماعی Reddit و YouTube بیشترین استفاده را در بین برنامه نویسا داره و Facebook جایگاه چهارم رو به خودش اختصاص داده
این در حالیه که برخلاف برنامه نویسا، مردم عادی بیشتر از Facebook استفاده میکنن و Reddit اصلا توی 10 تای برتر شون هم نیست. (خاصیم دیگه، عادی نیستیم! :دی)

🔹 60% برنامه نویسا، ارتباط حضوری و face-to-face رو ترجیح میدن
28% شون ارتباط آنلاین و چت رو ترجیح میدن
و تنها 11% شون ترجیح میدن کلا ارتباطی با بقیه برقرار نکنن
برنامه نویسا معمولا آدم های درونگرایی هستند، این درونگرایی (برعکس تصور بسیاری) خیلی هم خوبه، درونگرا ها توانایی هایی منحصر به فردی دارن از جمله ذهنی متفکر، تحلیلگر و دقیق و همین عامل باعث شده ما درونگرا ها به شدت مناسب این شغل باشیم
ولی خیلی خیلی مهمه که این درونگرایی باعث تضعیف روابط اجتماعی و یا بد تر از اون، ناتوانی در ارتباط با افراد نشه. پس باید حواسمون رو جمع کنیم که توی درونگرایی افراط نکنیممممم

https://insights.stackoverflow.com/survey/2019
_______________
@IranAspMvc
🔰 بررسی نکات کلیدی نظرسنجی Stackoverflow 2019 (قسمت چهارم-آخر)

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

پر استفاده ترین زبان ها:

🔸 بعد از Javascript (که برای هفتمین سال متوالی پر استفاده ترین بوده) و HTML/CSS و SQL که در جایگاه دوم و سوم هستند، میرسیم به مهم هاش:
- زبان Python با 41.7% امیتاز در جایگاه 4 ام
- زبان Java با 41.1% امتیاز در جایگاه 5 ام
- زبان C# با 31% امتیاز در جایگاه 7 ام
- زبان PHP هم با 26% امتیاز در جایگاه 8 ام قرار داره

🔹 در مقایسه با پارسال
پایتون با 3 درصد افزایش از Java زده جلو و Java با 4 درصد کاهش ، جای خودش رو به اون داده. امروزه، پایتون بیشترین رشد استفاده را در بین زبان های دیگه داره ونیز از نظر محبوبیت، جایگاه دوم رو داره (بعد از Rust)
حالا که بحث محبوبیت شد جا داره بگم زبان Rust با 83درصدمحبوبیت (با 5% افزایش نسبت به پارسال) محبوب ترین زبان شناخته شده
بر خلاف افزایش 7درصدی محبوبیت زبان سی شارپ، استفاده از این زبان، 3 درصد کاهش پیدا کرده!
همچنین بر خلاف افزایش 4درصدی محبوبیت PHP، استفاده از این زبان با 4 درصد کاهش رو برو بوده

پراستفاده ترین فریمورک وب:

🔸 بعد از jQuery که با 48% امیتاز جایگاه اول رو داره، فریمورک React با 31% امیتاز رتبه دوم و Angular با 30% امیتاز رتبه سوم رو کسب کردند. (فریمورک Vue هم 15% امتیاز)
نسبت به سال قبل، React رشد داشته و جایگاهشون توی جدول با Angular عوض شده
طبق این آمار، از لحاظ میزان استفاده توی دنیا، Angular و React، تقریبا با هم برابر هستند ولی Vue خیلی عقب تره. (البته طبق آمار سایت های دیگه React پر استفاده تر از Angular هست)

پر استفاده ترین فریمورک:
اینجا برداشته همه فریمورک های back و front و موبایل و gaming و ... رو در کنار هم مقایسه کرده و انگار که قیمه ها رو ریخته باشه تو ماستا، نتایج قابل تفکیک و مقایسه دقیقی ازش در نمیاد

🔹بعد از NodeJs که با امیتاز 50% (برای چندین سال متوالی) در صدر جدول قرار داره، دات نت و دات نت کور به ترتیب با 37% و 23% امیتاز، در جایگاه دوم و سوم قرار دارند (که خب خوش به حال دات نتی ها)

🔸اما در مورد مقایسه میزان استفاده از Xamarin و React Native و بقیه رقیب هاش مثل Cordova و Flutter
توی قسمت اول که از نظر محبوبیت مقایسه کردیم، دیدیم که Flutter نسبت به بقیه خیلی محبوب تر بود ولی اینجا از لحاظ میزان استفاده نسبت به بقیه کمترینه (البته جدیدترین هم هست)
- اول React Native با 10% امیتاز
- بعد Cordova با 7% امیتاز
- و بعدش Xamarin با 6% امیتاز
- و در آخر Flutter با 3% امتیاز

🔹 محض اطلاع اونایی که عشق Deep Learning هستند، TensorFlow با 10% امتیاز پر استفاده تر از Torch/PyTorch با 3.3% امیتاز هست (یعنی 3 برابر اختلاف)
و باز هم این نتایج، بر خلاف نتایج میزان محبوبیت بود که در اون Torch/PyTorch محبوب تره

پر استفاده ترین دیتابیس:

🔸 دیتابیس MySQL با امیتاز 54% و با اختلاف نسبتا زیاد، پر استفاده ترین هست
بعدش PostgreSQL با 34% در جایگاه دوم و سپس SQL Server با 32% در جایگاه سوم
دیتابیس Oracel خدابیامرز هم با 16.5% امتیاز در جایگاه 8 ام

🔹 درمقایسه با پارسال، میزان استفاده از MySQL حدود 4% کاهش داشته، میزان استفاده از SQL Server هم 9% کاهش پیدا کرده
در عوض دیتابیس های PostgreSQL با حدود 2% رشد، SQLite حدود 12%، دیتابیس Oracel حدود 5% و MariaDB (نسل بعدی MySQL) نزیک 3% رشد رو به همراه داشتند

🔰 نتیجه گیری:
پس همونطور که مشاهده کردین، آمار میزان استفاده، نتایج متفاوتی نسبت به میزان محبوبیت داره.
همونطور که گفتیم، میزان محبوبیت داره به آینده اشاره میکنه، ولی نه آینده خیلی نزدیک (شاید 3 تا 5 سال طول بکشه تا محبوب ترین ایتم الان بشه پر استفاده ترین آیتم اون موقع)

▪️ پس اگه بازار کار الان رو میخواین و دوست دارین خوب پول در بیارین، بچسبین به پر استفاده ترین ها
▪️اگه روی آینده تون میخواین سرمایه گذاری کنین، بچسبین به محبوب ترین ها
▪️و اگه میخواین هم خدا رو داشته باشین هم خرما رو و کمترین ریسک رو بکنین، بچسبین به اونایی که هم پر استفاده هستند و هم محبوب.

تاماااامممم
امیدوارم لذت برده باشین و براتون مفید واقع شده باشه، منم خداییش خیلی زحمت کشیدم واسه این 4تا پست، پس بی زحمت با ذکر یک صلوات بلند پسند، روح منو شاید کنین 😉🙃

@IranAspMvc
🔥 داغ ترین خبر های دنیای دات نت🔥

ا NET Core 3.0 Preivew 4 منتشر شد
https://devblogs.microsoft.com/dotnet/announcing-net-core-3-preview-4/

ا ASP.NET Core 3.0 Preivew 4 منتشر شد
https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-core-3-0-preview-4/

ا Entity Framework 3.0 Preivew 4 منتشر شد
https://devblogs.microsoft.com/dotnet/announcing-entity-framework-core-3-0-preview-4/

ا NET Framework 4.8 منتشر شد
https://devblogs.microsoft.com/dotnet/announcing-the-net-framework-4-8/

ا Blazor از حالت آزمایشی خارج شد
https://devblogs.microsoft.com/aspnet/blazor-now-in-official-preview/

به زودی جزئیاتشون رو با هم بررسی خواهیم کرد✌️
@IranAspMvc
دوره API نویسی اصولی و حرفه ای در ASP.NET Core

در این دوره همه نکات مهم و پرکاربرد در API نویسی اصولی و حرفه ای در ASP Core بررسی شده اند.
همچنین سعی شده بهترین و محبوب ترین تکنولوژی ها، کتابخانه ها و ابزار ها داخل پروژه استفاده بشه.
ونیز Best Practice های پرفرمنسی و امنیتی بعلاوه تکنیک های پرکاربرد را بررسی و در قالب یک معماری حرفه ای و اصولی استفاده می کنیم.

برای دیدن سرفصل ها و دموی دوره به لینک زیر مراجعه کنید

🔹کد تخفیف 20 درصدی : dotnetzoom
🔸لینک خرید دوره
https://bit.ly/2Xo6NX2
خب دوستان مدت زمان 2ماه گذشته و الان جامعه آماری مناسبی واسه رای گیری در مورد دروه قبلی داریم.
حالا به نظرتون دوره API نویسی حرفه ای، خوب بود؟
لطفا فقط کسانی که دوره رو تهیه کردند رای بدن تا آمار واقعی بدست بیاد 🌹
Final Results
48%
👌 عالی
34%
👍 متوسط
18%
👎ضعیف
Forwarded from Software Philosophy
و بالاخره Blazor از نسخه آزمایشی خارج شد!

پروژه Blazor داستان جذابی دارد. حدود دو سال پیش Steve Sanderson یک پروژه تفریحی به نام Blazor در گیت‌هاب خود درست کرد و شروع به آزمایش ایده خود کرد.
اگر مدت زیادی است که در دنیای JavaScript هستید حتما نام فریم‌ورک محبوب knockout.js را شنیده‌اید. این فریم‌ورک یکی از فریم‌ورک‌های کوچک و سبک بایندینگ است که هنوز هم در خیلی از محصولات استفاده می‌شود. خالق این پروژه نیز Steve Sanderson بود!

ایده Steve این بود: اجرای کدهای C# روی مرورگر با استفاده از WebAssembly و استفاده از Razor و اجرای آن روی مرورگر. بنابراین ترکیب Razor و Browser شد نام پروژه: Blazor. با زبان خیلی ساده می‌توان گفت Blazor قرار است یک فریم‌ورک مانند Angular یا React باشد ولی با زبان C#!
تنها پس از چند ماه این پروژه شخصی او توجه بسیاری را به خود جلب کرد تا حدی که مایکروسافت تصمیم گرفت این پروژه را به عنوان یک پروژه آزمایشی به ASP.NET GitHub Organization اضافه کند. در زمان نوشتن این مطلب این ریپو ۷۹۰۰ استار دارد.

امروز همزمان با ریلیز ASP.NET Core 3.0 Preview 4 این پروژه از حالت آزمایشی درآمد و رسما به دات‌نت کور اضافه شد. یک تصمیم مهم تغییر نام Razor Component به Server-side Blazor بود. بنابراین از این به بعد Blazor یک مدل واحد نوشتن برنامه‌های سمت کلاینت است با چندین مدل هاست شدن:
- Server-side Blazor: runs on the server via SignalR
- Client-side Blazor: runs client-side on WebAssembly

جالب است بدانید که شرکت‌های DevExpress، Telerik و Syncfusion شروع به ساختن کامپوننت‌های Blazor کرده‌اند و همین الان محصولاتی روی آن ساخته‌اند.

لینک زیر حاوی اطلاعات جزئی‌تری از برنامه ریلیز و امکانات این محصول است.

https://devblogs.microsoft.com/aspnet/blazor-now-in-official-preview/

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

https://ow.ly/Pnh030ouEX5


#مهران_داودی (https://ow.ly/GwIl309lFEm)

کانال تلگرام:
@SoftwarePhilosophy


___
🔰 چند نکته از NET Core SDK و Visual Studio

🔸 برای استفاده از ورژن های پیش نمایش (preview) دات نت کور در Visual Studio 2019 باید گزینه "Use Previews of the .NET Core SDK" را از مسیر زیر فعال کنید
Tools -> Options -> Projects and Solutions -> .NET Core -> Use Previews of the .NET Core SDK.
تنظیم بالا در ورژن های بعدی VS 2019 به مسیر زیر انتقال می یابد
Tools -> Options -> Environment -> Preview Features

🔹 اگر از ورژن های NET Core 3 SDK استفاده کنید نسخه زبان سی شارپ مورد استفاده در پروژه به صورت پیشفرض 8 خواهد بود

🔹 ورژن های زیر از NET Core SDK بر روی Visual Studio 2017 کار نمی کند زیرا به MSBuild ورژن 16 نیاز دارد که با VS 2017 سازگاری ندارد و با Visual Studio 2019 اوکی هست
- ورژن های 2.2.2xx مانند 2.2.203
- ورژن های 2.1.6xx مانند 2.1.603
- ورژن های 3.0.1xx مانند 3.0.100

🔸 برای استفاده از آخرین آپدیت NET Core SDK 2.2 قابل نصب بر روی Viusal Studio 2017 باید حتما از ورژن 2.2.106 استفاده کنید

🔹 برای استفاده از آخرین آپدیت NET Core SDK 2.1 قابل نصب بر روی Viusal Studio 2017 باید حتما از ورژن 2.1.506 استفاده کنید

🔸 اگر با Visual Studio Code و یا JetBrains Rider کار کنید، هیچگاه متوجه وجود مسائل بالا نخواهید شد!
دلیلش اینه که هر نسخه از ویژوال استادیو ورژن MSBuild خودش رو داره و وقتی ما دکمه F5 رو میزنیم پروژه ها رو با اون build میکنه، در صوتی که اگر با دستور dotnet build توی command line بیلد میکرد هیچ مشکلی نداشت
از طرفی هر نسخه SDK یه range از عدد ورژن های MSBuild ایی که پشتیبانی میکنه رو تو خودش داره، ویژوال استادیو هم چک میکنه ببینه اون ورژن MSBuild لازم رو داره یا نه که اگه نه خطا میده
اما IDE های دیگه مثل VS Code و Rider از خودشون MSBuild ندارن و F5 رو میزنیم، پروژه رو با دستور dotnet build توی cmd بیلد میکنه، پس مشکلی نخواهند داشت

اطلاعات بیشتر:
https://github.com/dotnet/announcements/issues/108
_______________
@IranAspMvc
در راستای اجرای WinForms بر روی NET Core 3.0، ماکروسافت کنترل Chart را به NET Core 3.0 منتقل کرد

آدرس ریپازیتوری گیتهاب :
https://github.com/dotnet/winforms-datavisualization
نمونه Sample ها
https://github.com/dotnet/winforms-datavisualization/tree/master/sample/ChartSamples
آدرس پکیج :
https://www.nuget.org/packages/System.Windows.Forms.DataVisualization/

نکته: دیزاینر بصری (visual) برای تنظیم Chart فوق در Visual Studio 2019 هنوز در حال توسعه بوده و تکمیل نشده است لذا باید برای تغییر تنظیمات آن به صورت دستی کد نویسی کنید یا اینکه ابتدا تنظیم آن را در یک پروژه NET Framework انجادم دهید و سپس کد آن را به پروژه NET Core ایی خود منتقل کنید
@IranAspMvc
پروژه gRPC ؛ نسل بعدی RESTful !

قبل از اینکه ببینیم gRPC چیه بهتره بدونم اصلا RPC چیه؟ RPC که مخفف Remote Procedure Call هست یه پروتکل واسه فراخوانی یه سرویس از یه برنامه داخل یه برنامه دیگه هست. یعنی برنامه A برای اینکه یه فانکشنی داخل برنامه B روی بتونه فراخوانی کنه از این پروتکل استفاده میکنه

پروژه gRPC درواقع یک فریمورک RPC سریع و قدرتمند هست که توسط گوگل و همکاری چندتا از شرکت های بزرگ دنیا درست شده.
توسط این فریمورک، کلاینت میتونه با سرور ارتباط برقرار کنه، یه API رو فراخوانی کنه و دیتای لازم بینشون رد و بدل بشه، چیزی مشابه RESTful ولی خیلی سریع تر، بهینه تر و ایمن تر؛ به دلایل زیر:

🔸 پروتکل gRPC به صورت پیشفرض واسه سریالایز کردن اطلاعات و پیام هایی که رد و بدل میشه از ProtocolBuffer استفاده میکنه که یه مکانیزم فوق سریع و قدرتمند برای سرایلایز کردن دیتا هست (یه کتابخانه با همین نام توسط گوگل نوشته شده و wrapper دات نتیش هم اسمش protobuf-net هست)
فرمت اطلاعات توی ProtocolBuffer به صورت باینری هست و از این بابت حجم اطلاعات کاهش پیدا میکنه در نتیجه اطلاعات قبل از ارسال فشرده میشن و ترافیک کمتر و درنتیجه سرعت بیشتری رو خواهیم داشت

🔹 یکی دیگه از خوبی های gRPC اینه که Schema (ساختار) متد های قابل فراخوانی سمت سرور به همراه پارامتر های ورودی و خروجی و ساختارشون رو برای کلاینت مشخص میکنه (مثل فایل swagger.json توی پروتکل Open API و ابزار Swagger)
یعنی کلاینت دقیقا میدونه چه کلاس ها و چه متد های در سمت سرور برای فراخوانی وجود داره و هر متد هم چه پارامتر هایی میگیره، ساختارشون چیه و چه خروجی ایی میده

🔸 نکته مثبت دیگه ای که داره اینکه قابلیت Bi-directional Streaming داره، یعنی در عین حال که کلاینت داره به سرور جریانی از داده ها (Stream) رو ارسال میکنه، همون لحظه سرور هم میتونه جریانی از داده ها رو برای کلاینت ارسال کنه (ارسال و دریافت همزمان اطلاعات) و این یعنی "ارتباط کاملا دو طرفه Stream ایی"

🔹 همچنین gRPC از پروتکل HTTP2 استفاده میکنه که هم سریعتر و هم ایمن تر از ورژن های قبلی HTTP هست

🔸 این پروتکل ارتباطی کاملا مستقل از زبان برنامه نویسی سمت کلاینت و سرور عمل میکنه درنتیجه مثلا کلاینت شما میتونه با Java نوشته بشه و سرور شما با سی شارپ یا هر زبان دیگه

اطلاعات بیشتر:
https://grpc.io
https://github.com/grpc/grpc
_______________
@IranAspMvc
🔰 سوال یکی از دوستان و جواب کامل مهندس کرامتی درباره تاریخچه این تکنولوژی ها 👍

«سلام اقای کرامتی سوالی برای پیش اومده که دقیقا فرق بین web api ، signalr و gRPC در چیە ؟
و من چطور کاربرد اونارو توی پروژم تشخیص بدم ؟؟؟»
@IranAspMvc