Software Philosophy
3.45K subscribers
160 photos
41 videos
1.54K links
چکیده‌ای از مفاهیم به روز مهندسی نرم افزار برای مهندسین نرم‌افزار.
معماری نوین نرم‌افزار، تکنولوژی‌های برنامه نویسی جدید
Download Telegram
این همه انواع Messaging Service روی Azure؟ چه خبره؟

اگر از سرویس Cloud مایکروسافت یا همان Microsoft Azure برای طراحی و معماری Solution های خود استفاده می‌کنید، روزی خواهد رسید که به یک Service Bus نیاز خواهید داشت. سرویس باس، سرویسی است که در معماری به شما کمک می‌کند برنامه‌های مختلف سیستم که نیاز دارند با هم ارتباط داشته باشند را به هم متصل کنید. معمولا اگر این اتصال از طریق database polling صورت پذیرد در مقیاس بالا بسیار هزینه‌بر و پیچیده می‌شود. به همین دلیل استفاده از «باس» بسیار پر کاربرد است.
در Azure سه نوع سرویس به این منظور تعبیه شده که هر کدام کاربردهای تخصصی خود را دارند:
- Event Grid
- Event Hub
- Service Bus

برای درک تفاوت این سرویس‌ها ابتدا باید تفاوت مفهوم Event و Message را در Azure بدانید که در مقاله زیر توضیح داده شده‌است. اما کاربرد هر یک را می‌توان به این صورت خلاصه گفت:
- Event Grid:
انتشار رویدادها و Reactive Programming، مثلا عکس‌العمل نشان دادن به تغییر وضعیت‌ها در دیتا

- Event Hub:
کار با stream های سنگین دیتا. برای کار و مدیریت میلیون‌ها رویداد در ثانیه در Big data pipleline طراحی شده.

- Service Bus:
انتقال پیام (Message) بین سیستم‌های Enterprise.

مستند زیر این مفاهیم را با جزئیات کامل‌تری شرح می‌دهد.

https://docs.microsoft.com/en-us/azure/event-grid/compare-messaging-services

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

https://ow.ly/fhwz30nWt1e

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

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


___
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
معرفی پروژه DNTFrameworkCore

پروژه که نه بهتره بگیم یه فریمورک یا زیرساخت آماده واسه سایت هاتون هست که کلی امکانات و Best Practice رو تو خودش پیاده کرده و کارتون خیلی راحت میشه✌️

https://github.com/rabbal/DNTFrameworkCore

از امکانات این فریمورک میشه موارد زیر اشاره کرد :
🔹سبک و سریع (نکات پرفرمنسی رعایت شده)
🔸دارای معماری اصولی و توسعه پذیر
🔹پشتیبانی از طراحی چند مستاجری (Multi Tenancy)
🔸اعتبارسنجی خودکار
🔹مدیریت تراکنش ها
🔸پشتیبانی از آزمون واحد و کاملا تست پذیر
🔹و...

حتی اگه قصد استفاده ازشو ندارین، مرور و بررسی کد هاش خیلی میتونه آموزنده و مفید باشه و بهتون ایده بده
🌟 راستی یادتون نره Star هم بدین به ریپازیتوریش 😉

توضیحات بیشتر :
https://www.dotnettips.info/newsarchive/details/14242
_______________
@IranAspMvc
Forwarded from Iran Agile
معمولا ما برای چندین سال لیستی از آیتم‌ها رو در بک‌لاگ نگه می‌داریم، اما مبادا که یه دونه از اونا رو پاک کنیم. همین میشه که همیشه یه لیست چند صفحه ای از اقلام بک لاگ داریم که یا کسی از اون آیتم چیزی یادش نمیاد یا دیگه پیاده سازیش، دردی رو از مشتری دعوا نمی‌کند. آخر سالی وقت خوبی هست که این بک‌لاگ را حسابی تمیزکاری کنیم و حداقل نصف آن را دور بریزیم 😉

https://bit.ly/2STfrtg

@iranagile
#پست_مجدد این پست تا به حال نزدیک به ۳۴۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
تئوری اسب مرده!

این تئوری یکی از جذاب‌ترین تئوری‌هایی است که در این مدت خواندم. یک تئوری که کاربردهای وسیعی در استارتاپ‌ها، مدیریت یک تیم و حتی مدیریت یک کشور دارد. فارغ از معنی عمیق این تئوری، طنزی که در بیان این تئوری وجود دارد خیلی آن را قابل فهم‌تر می‌کند.

یک ضرب‌المثل قدیمی هندی می‌گوید: اگه دیدین سوار یه اسب مرده هستید، بهترین استراتژی اینه که پیاده شین.

در حالی که معمولا استراتژی‌های پیشرفته‌تری در دولت‌ها، شرکت‌ها، سیستم‌های آموزشی و ... استفاده می‌شود. این استراتژی‌ها حتما برای شما هم آشنا هستند:

- یه شلاق سنگین‌تر بخریم!
- سوارکار رو عوض کنیم!
- یک کمیته تشکیل بدیم تا اسب رو بررسی کنیم!
- کشورهای دیگر رو ببینیم که تو فرهنگشون چطوری با اسب مرده سوارکاری می‌کنن!
- استانداردهای زنده موندن رو پایین بیاریم تا این اسب هم زنده محسوب بشه!
- در طبقه‌بندی جدید اسب‌ها، این اسب رو در دسته «زنده آسیب‌دیده» قرار بدیم!
- با افرادی قرارداد ببندیم که سوارکاری اسب رو انجام بدن!
- چند اسب مرده دیگه رو هم با هم افسار بزنیم تا سرعت بیشتر بشه!
- پول بیشتری خرج کنیم و به اسب مهارت‌های لازم رو آموزش بدیم تا کاراییش بیشتر بشه!
- تحقیق کنیم ببینیم تاثیر یک سوارکار لاغرتر روی بالارفتن سرعت اسب چقدره!
- قانونی وضع کنیم که به اسب‌های مرده غذا ندهیم. این از لحاظ اقتصادی بسیار به صرفه است و باعث می‌شه این اسب‌ها حتی از بقیه اسب‌ها بیشتر به نفع اقتصاد باشند!
- مستند «معیارهای کارایی اسب» رو بازنویسی کنیم که قاعدتا شامل این اسب هم می‌شه، تا خودش متوجه بشه!
- اسب مرده رو به یک پست مدیریتی ارتقا بدیم!

مفهومی که هنگام خواندن این ضرب‌المثل تداعی می‌شود، مفهوم Root Cause است. اغلب مشکلاتی که در اطراف ما وجود دارد دارای دلایل واضح و سطحی است که غالبا منجر به حل آن مشکل نمی‌شود. از طرفی، اگر تلاش کنید برای یک مشکل عمیق فکر کنید و به Root Cause آن برسید، مشکلات به طور عجیبی حل می‌شوند و حتی با حل یک مشکل، مشکلات دیگری نیز خود به خود حل می‌شوند.

در پست زیر از بلاگم در مورد این مفهوم صحبت کردم.

https://mehrandvd.me/2018/06/27/the-dead-horse-theory/


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

https://ow.ly/AGJa30kQv8N

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

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


___
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
خلاصه‌ای از دوره‌ی ASP.NET Core Fundamentals آقای اسکات آلن از سایت Pluralsight

واسه کسایی که دنبال آموزش متنی جامع ASP Core میگردن، خوبه 👌
https://github.com/SirwanAfifi/aspdotnet-core-fundamentals
لینک دانلود PDF :
https://bit.ly/2XaEhs2
_______________
@IranAspMvc
#پست_مجدد این پست تا به حال نزدیک به ۸۶۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
لطفا پروسه هندل شدن یک اینونت توسط DOM را بدانید!
وقتی یک ایونت اتفاق می‌افتد در وهله اول از المنت ریشه به پایین مورد بررسی قرار می‌گیرد تا المنتی که ایونت روی آن اتفاق افتاده پیدا شود. این مرحله Capturing phase نام دارد.

در وهله دوم المنت پیدا شده به عنوان المنت target نگه داشته می‌شود. این مرحله Target phase نامیده می‌شود.

و در وهله آخر ایونت اتفاق افتاده به سمت بالا، یعنی المنت‌های پدر حرکت کرده و ایونت‌های مربوطه روی آنها را raise می‌کند که اصطلاحا به آن Bubbleing phase گفته می‌شود.

در مواقع لازم می‌توان از event.stopPropagation و event.stopImmadiatePropagation برای جلوگیری از Bubbling phase استفاده کرد.

لینک زیر شرح کاملی از پروسه و نحوه استفاده از دو متد گفته شده را ارائه می‌دهد:

https://javascript.info/bubbling-and-capturing

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


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

___
روانشناسی برای بیزنس - تحلیلی بر شخصیت من

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

این مفاهیم در دنیای استارتاپ‌ها و تیم‌های برنامه‌نویسی خیلی کاربردی هستن و می‌تونه تاثیر زیادی روی موفقیت کسب و کار بذاره.

حالا مدرسه بازاریابی تصمیم گرفته در یه دوره فشرده ۳ روزه (روزی ۸ ساعت) در عید (۷،۸،۹ فروردین) این دوره رو با عنوان «تحلیلی بر شخصیت من» برگزار کنه.

https://www.instagram.com/tehranmarketing_school/

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

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


___
Forwarded from tehran marketing school
کمپ های آموزشی 3 روزه مدرسه بازاریابی تهران / نوروز 98

* 3 روز برای یک سال *

24 ساعت آموزش فشرده
علمی - عملی

کمپ تحلیلی بر شخصیت من

9-8-7 فروردین

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


📞 برای ثبت نام و اطلاعات بیشتر میتوانید با شماره زیر تماس بگیرید:
02188677808
و یا به اینستاگرام زیر پیام دهید👇
https://www.instagram.com/tehranmarketing_school/

🔸مکان برگزاری کلاس ها, تهران, محدوده میدان ونک است


@tehran_marketing
♨️ یک تغییر بزرگ: حذف دستور 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://ow.ly/MldR30ojXpI

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

https://ow.ly/6RyP30ojWAP

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

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

___
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
🔰 بررسی تغییرات جدید NET Core 3.0 Preview 3

تاکنون تاریخ دقیقی واسه انتشار ورژن نهایی NET Core 3.0 اعلام نشده بود و فقط توی Roadmap اش نوشته بود تا پایان فصل اول سال 2019 ولی الان ماکروسافت اعلام کرده در نیمه دوم سال 2019 منتشر خواهد شد که تاریخ دقیق اون توی کنفرانس Build 2019 ماکروسافت اعلام خواهد شد
از طرفی Visual Studio 2019 که هفته پیش نسخه RC یش هم منتشر شد و ماکروسافت اعلام کرده نسخه نهاییش در تاریخ 2 ماه April منتشر میشه
با توجه به اخبار، خیلی انتظار میرفت که ورژن نهایی NET Core 3.0 همراه با ورژن نهایی VS منتشر بشه که خب ظاهرا قضیه کنسله

و اما بریم سراغ تغییرات جدید :

🔸امکان Upgrade شدن نسخه های SDK :
اولین تفاوتی که بهش میخوریم اینه که از این پس، نسخه های SDK Installer روی ورژن های patch قبلی Upgrade میشن. به این معنی که با نصب نسخه های جدید، پچ قبلی همون نسخه (که قسمت feature bands مشترکی داشته) حذف شده و سپس نسخه جدید نصب میشه
قسمت feature bands همون قسمت صدگان آخر ورژن هست. مثلا با نصب ورژن 3.0.101، نسخه قبلی اون یعنی 3.0.100 حذف میشه (چون فیچر بند های یکسانی دارند) ولی با نصب 3.0.200، نسخه 3.0.101 حذف نمیشه (چون فیچر بند های متفاوتی دارند)
این باعث میشه تعداد SDK های نصبی روی کامپیوتر شما کاهش پیدا کنه و الکی فضای ها هاردتون با نسخه های بی مصرف پر نشه

🔹بهبود قابلیت Memory Limits برای Docker :
توسط این قابلیت میتونین منابع داکر رو برای برنامه تون محدود کنین مثلا بگین فقط 100 مگابایت حافظه مموری در اختیار برنامه تون بذاره، این قابلیت مخصوصا برای اجرای NET Core روی دیوایس های IOT کاربرد داره
این قابلیت قبلا هم بوده ولی الان بهبود داده شده و توضیحاتش مفصله .پس اطلاعات بیشترش رو میتونین از لینک خود ماکروسافت بخونین

🔸ارائه Container Image های ماکروسافت در MCR
ماکروسافت یه Container Registry به نام Microsoft Container Registry یا به اختصار MCR راه اندازی کرده (چیزی مشابه DockerHub ولی نه دقیقا مثل اون؛ درواقع فقط یه مخزنی هست واسه Image هاش)
2 3 هفته پیش ریپازیتوری نسخه های nightly شو از DockerHub به MCR انتقال داد و الان هم ریپازیتوری نسخه های NET Core رو به MCR منتقل کرده
اطلاعات بیشتر در لینک ماکروسافت

🔹بهبود قابلیت های Index و Range موجود در سی شارپ 8
این قابلیت نیاز به توضیح نداره با یه مثال متوجه میشین
int[] nums = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
دستور 1^ یعنی اولی از آخر
int lastNum = nums[^1]; // 10
دستور 6..2 یعنی آیتم های 2 تا 6 این آرایه
int[] subsetNums = nums[2..6]; // {3, 4, 5, 6}
این قابلیت توی Preview 1 اومد ولی فقط واسه آرایه های عددی بود. الان این قابلیت واسه Span، Memory، Array و String امکان پذیر شده

🔸دیگر تغییرات :
تغییرات دیگه ای از جمله بهبود هایی در مورد پیشتبانی بهتر از EF, WPF, WinFroms و... در NET Core 3.0 هم انجام شده که از توضیحاتش صرف نظر می کنیم

جهت اطلاعات بیشتر لینک زیر رو مطالعه کنین
https://devblogs.microsoft.com/dotnet/announcing-net-core-3-preview-3/
___________
@IranAspMvc
البته من، مهران داودی با یک واو هستم!
خوشحالم که در رویداد in-Tech به عنوان مربی در کنار تیم‌ها هستم.
در این سه روز آخر هفته به تیم‌ها کمک می‌کنم بیزنس‌هاشون رو خلق کنن و با هم تجربه ترکیب مهارت‌های فنی و توانایی‌های بیزنسی رو لمس کنیم. در کنارش با هم در مورد تکنولوژی‌های جدید هم گپ می‌زنیم.

https://swwomen.ir
❇️ یادش بخیر روزی که تلگرام فیلتر شد.
🔆 گفتیم می‌مانیم و ماندید، بیشتر هم شدیم.
Forwarded from Software Philosophy
مقایسه ایران با مایکروسافت ۱۰ سال پیش! تلگرام را فیلتر کنیم؟

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

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

از این لحاظ رویکرد ما خیلی شبیه مایکروسافت ۱۰ سال پیش است. مایکروسافتی که با دنیای open-source مخالف بود و سعی در نادیده گرفتن آن داشت تا جایی که به مرز حذف از بازار برنامه‌نویسی رسید. ولی آنها فهمیدند، خود را تغییر دادند، اوپن‌سورس بودن را درک کردند. به جای مقابله با آن شروع به استفاده از مزایای آن کردند و اکنون فعال‌ترین open-souce community در github هستند. و آرام آرام در حال بازگشت به بازار.

اگر تلگرام را تهدید می‌بینیم، به خاطر این است که «باز بودن« یا «open-source بودن» را تهدید می‌بینیم و باید به حال آن فکری کنیم. با فیلتر کردن ابزار، این طرز فکر از بین نمی‌رود، فقط تبدیل به حالت جنگجویانه‌ترش می‌شود و فیلتر کننده را از بین می‌برد.

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

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

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

https://mehrandvd.me

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

https://ow.ly/wJ6i30jn1B4

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

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


___
در معماری نرم افزار گاهی نیاز است الگوهایی که دارای بیشترین قابلیت تست و همچنین نسبت به تغییرات خارجی دچار کمترین تغییرات هستند مورد استفاده قرار بگیرند . معماری Hexagonal(یا Ports and Adapter) یکی از این الگوهاست که مکانیزم‌هایی را برای تحقق این هدف بر مبنای تفکر DDD بیان می‌کند . لینک زیر در خصوص این معماری توضیحات مناسبی را ارائه می‌دهد :

https://blog.ndepend.com/hexagonal-architecture/

#شهریار_انتظام (https://ow.ly/qDN430nPiCg)

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

___
Forwarded from Iran Agile
🧩 داستانهای تحول چابک: این بار مایکروسافت.

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

https://bit.ly/2JHhMYR

@iranagile
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
🔰بررسی تغییرات جدید ASP.NET Core 3.0 Preview 3.0

🔸بهبود های Razor Components
قابلیت Razor Components این امکان رو بهمون میده که کامپوننت های UI سمت کاربر رو در سمت سرور بنویسیم توی پیش نمایش قبلی هم توی همین کانال در موردش صحبت کردیم. کلا چیز خیلی باحالیه و ظاهرا آینده خوبی داره؛ ماکروسافتم حسابی پشتش رو گرفته

توی این ورژن بهبود هایی در موردش انجام شده که مهمترین اونا :
1- قالب پیشفرض پروژه های Razor Component قبلا شامل 2تا پروژه توی یه سلوشن بود که الان شده یک پروژه که روی ASP Core هاست شده فقط

2-پسوند فایل های Razor Component قبلا .cshtml بود ولی الان شده .razor (درسته که توی هردوشون با Razor کد مینویسیم ولی کامپایلشون متفاوته). البته الان هم میشه با کانفیگ به حالت قبل برش گردوند

3- یکپارچه سازی Razor Component ها با قابلیت Endpoint Routing که خب بحثت مفصله

4- طرز رندر شدن Razor Component ها به این صورت که اول محتوای اون کامپوننت سمت سرور رندر میشه و به صورت html به مروگر کلاینت ارسال میشه. بعد اتصال SignalR برقرار میشه و محتوای اون رو بروزرسانی و interactive (قابل تعامل) میکنه
خوبی این روش اینه که اولا این کامپیوننت ها برای کاربرانی با سرعت کم سریع تر لود میشه و دوما چون کامپوننت ها به صورت html ایی رندر میشن، عملا توسط موتور های جستجو مثل گوگل قابل Crawrl و ایندکس گذاری میشن. دقیقا اون مشکل Server Side Redering که برای فریمورک های SPA هست رو برطرف کرده

5- امکان اضافه کردن و استفاده از Razor Component ها درون Razor Class Library ها

6- بهبود امکان Event Handling در Razor Component ها
توسط نوع EventCallback میتونین واسه Razor Component هاتون event های سمت سروری رو هندل کنین. مثلا یه button سمت کلاینت ایجاد کنین که onClick اش، یه متد سمت سروری رو صدا میزنه. تازه هم از متد های sync معمولی و هم از متد های async پشتیبانی میکنه
نمونه کدش رو پیشنهاد میکنم از لینک خود ماکروسافت ببینین

7- امکان اعتبار سنجی سمت کلاینت و سرور در Razor Component ها
توسط این امکان میتونین اعتبار سنجی هاتون رو بر اساس Data Annotation ها، هم سمت سرور و هم سمت کلاینت انجام بدین
بازم بهتره نمونه کدش رو توی لینک ماکروسافت ببینین

🔹امکان Runtime compilation
در راستای ایجاد یک framework مشترک برای ASP NET Core چندتا از پکیج ها حذف شدن از جمله (EF Core - Newtonsoft.Json و Roslyn) در نتیجه امکان Runtime compilation که به Roslyn وابسته است به صورت پیشفرض حذف شده از NET Core 3.0 ولی با افزودن یه پکیج و یه متد توی سرویس ها میتونین فعال اش کنین

🔸قالب جدیدی به نام Worker Service
توی تپملیت پروژه های قابل ایجاد، یه قالب جدیدی اضافه شده به نام Worker Service که توسط اون میتونین وظایف پس زمینه طولانی (long-running) رو انجام بدین که توی ویندوز، توسط Windows Service و توی لینوکس توسط Linux Daemon انجام میشه

🔹قالب پروژه Angular به Angular 7 اپدیت شد
به زودی و پیش از انتشار نسخه نهایی ASP NET Core ، این قالب به Angular 8 آپدیت خواهد شد

🔸امکان احراز هویت در قالب پروژه های SPA مانند Angular و React
امکان احراز هویت توسط Identity Server انجام میشه ولی با اضافه شدن یه سری اکسنشن متد، طرز کار باهاش خیلی ساده تر میشه و از این پس میتونین به راحتی توی پروژه های Angular تون ازش استفاده کنین
بازم بهتره نمونه کدش رو توی لینک ماکروسافت ببینین

🔹امکان استفاده از SignalR با Endpoint Routing
قابلیت Endpoint Routing که توضیحش مفصله و مزایای زیادی (که یکیش پرفرمنسی) هست رو داره. مزیت دیگه ای که اینجا به دردمون میخوره اینه که به جای اینکه شما Routing هاتون رو برای MVC، RazorPages و SignalR سر جاهای خاص خودشون و جدا از هم تعریف کنین، توسط این قابلیت میتونین، یکجا و درکنار هم دیگه تعریفشون کنین که خب مدیریتش رو هم ساده تر میکنه. مثال :
app.UseRouting(routes =>
{
routes.MapRazorPages();
routes.MapHub<ChatHub>("hubs/chat");
});
🔸اضافه شدن قابلیت Long Polling به SDK کلاینتی SignalR واسه Java
تعریفش معلومه دیگه... توضیح نمیخواد

🔹اضافه شدن قالب پروژه gRPC
این قالب امکان ایجاد سرویس های gRPC را توسط یک فریمورک gRPC را فراهم میکنه. خود gRPC یک فریمورک remote procedure call یا به اختصار RPC هست که با همکاری گوگل ساخته شده است
در کل خودمم از این قسمت چیز زیادی سردر نیاوردم. اگه کسی بلده، لطفا تقلب برسونه :دی

جهت اطلاعات بیشتر لینک زیر رو مطالعه کنین
https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-core-3-0-preview-3/
________________
@IranaAspMvc
#پست_مجدد این پست تا به حال نزدیک به ۸۸۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
تقویم شمسی برای Xamarin

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

کنترل BitDatePicker که نحوه استفاده از آن در مقاله زیر توضیح داده‌شده‌است ویژگی‌های خیلی جذابی دارد که احتمالا تجربه کار شما با Xamarin را شیرین‌تر می‌کند. امکانات این کنترل عبارتند از:

• پشتیبانی از تمامی Calendar System هایی که noda time ساپورت می‌کند؛ اعم از شمسی، قمری، میلادی و ...
• پشتیبانی از تمامی Locale هایی که net. پشتیبانی می‌کند؛ اعم از فارسی، عربی، انگلیسی و ...
• قابلیت ارائه Template سفارشی شده برای UI
• سازگار شده با MVVM


https://www.dotnettips.info/post/2955/%D8%AA%D9%82%D9%88%DB%8C%D9%85-%D8%B4%D9%85%D8%B3%DB%8C-%D8%AF%D8%B1-xamarin-forms

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

https://ow.ly/npYc30nopkk

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

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


___
#پست_مجدد این پست تا به حال نزدیک به ۱۰۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.