Forwarded from Iran Agile
در تیمهای نرمافزاری و استارتاپ ها یکی از سختترین تصمیمات، ساختن یا نساختن یک فیچر یا قابلیت جدید است.
مشتریان یا مدیران یا افراد مختلف ایدههای زیادی به ما میدهند، ولی کدامیک از آنها را باید پیادهسازی کرد؟ و با چه استدلالی؟
این فلوچارت کمک میکند تا بتوانید راحتتر در این خصوص تصمیم بگیرید.
@iranagile
مشتریان یا مدیران یا افراد مختلف ایدههای زیادی به ما میدهند، ولی کدامیک از آنها را باید پیادهسازی کرد؟ و با چه استدلالی؟
این فلوچارت کمک میکند تا بتوانید راحتتر در این خصوص تصمیم بگیرید.
@iranagile
Forwarded from کدهک
جنگ ابری
گزارش مالی مایکروسافت نشان میدهد این شرکت در سال گذشته 38 میلیارد دلار از خدمات ابری سود داشته است.
این در حالی است که سرویس وب آمازون 25.6 میلیارد دلار بوده است و گوگل هم تنها با 8 میلیارد دلار در رتبه ی سوم قرار گرفته است.
سیاستهای جدید مایکروسافت در ارائه خدمات اوپن سورس و پذیرفتن لینکوس به عنوان بخش از اکو سیستم خدمات رسانی ابری باعث جذب مشتریان زیادی شده است.
مایکروسافت در حال حاضر با 56 دیتاسنتر در سراسر دنیا خدمات ابری Azure را عرضه می کند. همچنین تنها شرکتی است که در آفریقا و خاور میانه دیتاسنتر دارد.
منبع : فوربس
گزارش مالی مایکروسافت نشان میدهد این شرکت در سال گذشته 38 میلیارد دلار از خدمات ابری سود داشته است.
این در حالی است که سرویس وب آمازون 25.6 میلیارد دلار بوده است و گوگل هم تنها با 8 میلیارد دلار در رتبه ی سوم قرار گرفته است.
سیاستهای جدید مایکروسافت در ارائه خدمات اوپن سورس و پذیرفتن لینکوس به عنوان بخش از اکو سیستم خدمات رسانی ابری باعث جذب مشتریان زیادی شده است.
مایکروسافت در حال حاضر با 56 دیتاسنتر در سراسر دنیا خدمات ابری Azure را عرضه می کند. همچنین تنها شرکتی است که در آفریقا و خاور میانه دیتاسنتر دارد.
منبع : فوربس
✅ پروژه سورس باز فروش بیمه به صورت Microservices در NET Core.
🔰 تکنولوژی های استفاده شده
.NET Core 2.1
Entity Framework Core
#MediatR
#Marten
#Eureka
#Ocelot
#JWT Tokens
#RestEase
#RawRabbit
#NHibernate
#Polly
#NEST (#ElasticSearch client)
#Dapper
#SignalR
#MicroServices
DynamicExpresso
https://github.com/asc-lab/dotnetcore-microservices-poc
_________________
@IranAspMvc
🔰 تکنولوژی های استفاده شده
.NET Core 2.1
Entity Framework Core
#MediatR
#Marten
#Eureka
#Ocelot
#JWT Tokens
#RestEase
#RawRabbit
#NHibernate
#Polly
#NEST (#ElasticSearch client)
#Dapper
#SignalR
#MicroServices
DynamicExpresso
https://github.com/asc-lab/dotnetcore-microservices-poc
_________________
@IranAspMvc
Forwarded from Software Philosophy
Media is too big
VIEW IN TELEGRAM
Forwarded from Software Philosophy
یکی از کارهای جذذابی (با دو تا ذ) که اخیرا شروع کردم طراحی این دو تا دورهست:
- آموزش زبان فنی برای تیمهای بیزنسی.
- آموزش زبان بیزنس برای تیمهای فنی.
یکی از مشکلات اغلب افرادی که استارتاپ دارن، شرکت دارن و یا تو تیمی هستن که با تیمهای فنی کار میکنه، اینه که زبان مشترکی با تیمهای فنی ندارن. اصطلاحاتی میشنون که ارتباطش رو با موضوع متوجه نمیشن. برای همین همیشه حس ابهام یا حسهای دیگه نسبت به کار با تیمهای فنی دارن.
یه کار جذذاب اینه که به عنوان افراد بیزنسی تیم، حداقل دانش فنی که لازمه تا بتونیم راحتتر با تیمهای فنی تعامل کنیم رو یاد بگیریم. من به کمک دوستانم در مدرسه بازاریابی تهران این دوره رو به همین خاطر طراحی کردیم.
اگر یک بیزنسی هستین و با تیمهای فنی کار میکنین، این دوره تجربه خیلی جذذابی براتون خواهد بود و مطمئنا به پرفورمنس تیمتون خیلی کمک میکنه.
از طرف دیگه، اگر یک برنامهنویس هستید، مطمئن باشید که دنیای بیزنس برای ما برنامهنویسان یک دنیای جذاب و ناشناخته است. دنیایی که که با ادبیاتش آشنا بشیم، ساخت محصول و کار کردن با تیمهای بیزنسی، عوض شدن زمانها، نیازمندیها و خیلی چیزهای دیگه معنیدار میشه و کمک میکنه بتونیم به اتفاق هم راهحلهای بهتری برای مسائل بیزنسی پیدا کنیم. این کاری هست که دوره دوم قراره انجام بده.
اگر یک بیزنسی هستید که دوست دارین زبان تیمهای فنی رو بهتر یاد بگیرید،
اگر یک برنامهنویس هستید که دوست دارین زبان بیزنسی رو بهتر یاد بگیرید،
👈 برای اطلاعات بیشتر و رزرو در دوره با شماره 021-88677808 تماس بگیرید و یا از طریق دایرکت اینستاگرام در تماس باشید:
Instagram.com/tehranmarketing_school
#مهران_داودی (http://ow.ly/GwIl309lFEm)
کانال تلگرام:
@SoftwarePhilosophy
____
- آموزش زبان فنی برای تیمهای بیزنسی.
- آموزش زبان بیزنس برای تیمهای فنی.
یکی از مشکلات اغلب افرادی که استارتاپ دارن، شرکت دارن و یا تو تیمی هستن که با تیمهای فنی کار میکنه، اینه که زبان مشترکی با تیمهای فنی ندارن. اصطلاحاتی میشنون که ارتباطش رو با موضوع متوجه نمیشن. برای همین همیشه حس ابهام یا حسهای دیگه نسبت به کار با تیمهای فنی دارن.
یه کار جذذاب اینه که به عنوان افراد بیزنسی تیم، حداقل دانش فنی که لازمه تا بتونیم راحتتر با تیمهای فنی تعامل کنیم رو یاد بگیریم. من به کمک دوستانم در مدرسه بازاریابی تهران این دوره رو به همین خاطر طراحی کردیم.
اگر یک بیزنسی هستین و با تیمهای فنی کار میکنین، این دوره تجربه خیلی جذذابی براتون خواهد بود و مطمئنا به پرفورمنس تیمتون خیلی کمک میکنه.
از طرف دیگه، اگر یک برنامهنویس هستید، مطمئن باشید که دنیای بیزنس برای ما برنامهنویسان یک دنیای جذاب و ناشناخته است. دنیایی که که با ادبیاتش آشنا بشیم، ساخت محصول و کار کردن با تیمهای بیزنسی، عوض شدن زمانها، نیازمندیها و خیلی چیزهای دیگه معنیدار میشه و کمک میکنه بتونیم به اتفاق هم راهحلهای بهتری برای مسائل بیزنسی پیدا کنیم. این کاری هست که دوره دوم قراره انجام بده.
اگر یک بیزنسی هستید که دوست دارین زبان تیمهای فنی رو بهتر یاد بگیرید،
اگر یک برنامهنویس هستید که دوست دارین زبان بیزنسی رو بهتر یاد بگیرید،
👈 برای اطلاعات بیشتر و رزرو در دوره با شماره 021-88677808 تماس بگیرید و یا از طریق دایرکت اینستاگرام در تماس باشید:
Instagram.com/tehranmarketing_school
#مهران_داودی (http://ow.ly/GwIl309lFEm)
کانال تلگرام:
@SoftwarePhilosophy
____
❇️ در آستانه انتشار نهایی 3 NET Core.
هم اکنون NET Core. 3 تا نسخه پیش نمایش 8 خودش پیش رفته و تقریبا در آستانه انتشار نهاییش هست
تیم NET Core. گفته در حال حاضر قرار نیست دیگه فیچر جدیدی اضافه کنن و بیشتر تمرکزشون رو روی Bugfix و Stability (پایداری) گذاشتن
ماکروسافت هم گفته نسخه های پیش نمایش 7 و 8 رو پشتیبانی رسمی (Go Live) میکنه و میتونین ازشون در Production استفاده کنید. ولی پیشنهاد میشه قبل از استفاده از اون تست های لازم رو انجام بدین
ماکروسافت تاریخ انتشار نهایی NET Core 3. رو ماه سپتامبر (ماه آینده) وعده داده ولی با توجه به اینکه هنوز RC (نسخه Release Condidate) اون منتشر نشده بعید میدونم به سپتامبر برسه و احتمالا میره واسه اکتبر (2 ماه آینده)
@IranAspMvc
هم اکنون NET Core. 3 تا نسخه پیش نمایش 8 خودش پیش رفته و تقریبا در آستانه انتشار نهاییش هست
تیم NET Core. گفته در حال حاضر قرار نیست دیگه فیچر جدیدی اضافه کنن و بیشتر تمرکزشون رو روی Bugfix و Stability (پایداری) گذاشتن
ماکروسافت هم گفته نسخه های پیش نمایش 7 و 8 رو پشتیبانی رسمی (Go Live) میکنه و میتونین ازشون در Production استفاده کنید. ولی پیشنهاد میشه قبل از استفاده از اون تست های لازم رو انجام بدین
ماکروسافت تاریخ انتشار نهایی NET Core 3. رو ماه سپتامبر (ماه آینده) وعده داده ولی با توجه به اینکه هنوز RC (نسخه Release Condidate) اون منتشر نشده بعید میدونم به سپتامبر برسه و احتمالا میره واسه اکتبر (2 ماه آینده)
@IranAspMvc
DotNetZoom
🔰دوره دوره API نویسی اصولی و حرفه ای در ASP.NET Core در این دوره همه نکات مهم و پرکاربرد در API نویسی اصولی و حرفه ای در ASP Core بررسی شده اند. همچنین سعی شده بهترین و محبوب ترین تکنولوژی ها، کتابخانه ها و ابزار ها داخل پروژه استفاده بشه. ونیز Best Practice…
🔰 دوستانی که سراغ کد تخفیف «دوره API نویسی پیشرفته» رو میگرفتند
سایت بیاموز یه تخفیف 45% ایی تا عید غدیر زده با کد GhorbanTaGhadir
تا 3 روز و 4 ساعت دیگه از همین لحظه فرصت داره
توضیحات بیشتر دوره هم تو پستی که Reply کردم هست. اینم لینکش
http://bit.ly/2Xo6NX2
خوش باشید 🌹
سایت بیاموز یه تخفیف 45% ایی تا عید غدیر زده با کد GhorbanTaGhadir
تا 3 روز و 4 ساعت دیگه از همین لحظه فرصت داره
توضیحات بیشتر دوره هم تو پستی که Reply کردم هست. اینم لینکش
http://bit.ly/2Xo6NX2
خوش باشید 🌹
Forwarded from کدهک
آشنایی با Thread Pool
ایجاد کردن Thread جدید فرآیند پر هزینه ای است و لازم است در Kernel و استک تخصیص حافظه صورت گیرد. به دلیل این هزینه ی بالا هیچوقت نباید برای مدیریت درخواستهای مجزا Thread جدید ایجاد کرد.
در اینجا از تکنیک Thread Pool یا استخر Thread استفاده میشود. به این معنی که تعداد زیادی Thread از قبل ساخته شده و آماده ی استفاده قرار می گیرند. در عمل دو نوع Thread درون Thread Pool دات نت وجود دارند :
Worker Thread
I/O Thread
از ترد I/O برای انجامی عملیات های سخت افزاری مانند کار با شبکه و هارد دیسک استفاده میشود که I/O Bound هستند.
ایجاد Threadهای زیاد باعث کمبود حافظه میشود و کم بودن آنها برنامه را کند میکند. ایده آل این است که به تعداد هسته ها Thread داشته باشیم اما در عمل بسیاری از آنها درگیر عملیات های I/O میشوند و هسته بیکار می ماند.
تعداد Thread ها بسته به میزان درخواستها کم و زیاد میشود و برای محاسبه ی آن از الگوریتم Hill Climbing استفاده میشود که Self-Feedback است و خودش را اصلاح میکند. این الگوریتم با کم شدن Throughput تشخیص میدهد که باید Thread بیشتر اضافه شود.
ایجاد کردن Thread جدید فرآیند پر هزینه ای است و لازم است در Kernel و استک تخصیص حافظه صورت گیرد. به دلیل این هزینه ی بالا هیچوقت نباید برای مدیریت درخواستهای مجزا Thread جدید ایجاد کرد.
در اینجا از تکنیک Thread Pool یا استخر Thread استفاده میشود. به این معنی که تعداد زیادی Thread از قبل ساخته شده و آماده ی استفاده قرار می گیرند. در عمل دو نوع Thread درون Thread Pool دات نت وجود دارند :
Worker Thread
I/O Thread
از ترد I/O برای انجامی عملیات های سخت افزاری مانند کار با شبکه و هارد دیسک استفاده میشود که I/O Bound هستند.
ایجاد Threadهای زیاد باعث کمبود حافظه میشود و کم بودن آنها برنامه را کند میکند. ایده آل این است که به تعداد هسته ها Thread داشته باشیم اما در عمل بسیاری از آنها درگیر عملیات های I/O میشوند و هسته بیکار می ماند.
تعداد Thread ها بسته به میزان درخواستها کم و زیاد میشود و برای محاسبه ی آن از الگوریتم Hill Climbing استفاده میشود که Self-Feedback است و خودش را اصلاح میکند. این الگوریتم با کم شدن Throughput تشخیص میدهد که باید Thread بیشتر اضافه شود.
❇️ کیفیت پایین یعنی سرعت پایین 👌
کدی پرفرمنس خوبی داره که قطعا کیفیت خوبی داشته باشه (پیچیدگی کم - خوانایی بالا - تست پذیری - توسعه پذیری و...)
🔰 چندتا از بهترین مقالات Code Quality (معیار های کد با کیفیت)
https://www.perforce.com/blog/sca/what-code-quality-and-how-improve-it
https://www.sealights.io/test-metrics/code-quality-metrics-is-your-code-any-good/
https://www.it-cisq.org/standards/code-quality-standards/
@IranAspMvc
کدی پرفرمنس خوبی داره که قطعا کیفیت خوبی داشته باشه (پیچیدگی کم - خوانایی بالا - تست پذیری - توسعه پذیری و...)
🔰 چندتا از بهترین مقالات Code Quality (معیار های کد با کیفیت)
https://www.perforce.com/blog/sca/what-code-quality-and-how-improve-it
https://www.sealights.io/test-metrics/code-quality-metrics-is-your-code-any-good/
https://www.it-cisq.org/standards/code-quality-standards/
@IranAspMvc
Forwarded from کدهک
نسخه نهایی NET Core 3.0
به زودی پیش نمایش 9 از فریم ورک NET Core 3.0 عرضه میشود. با تغییر سیستم نام گذاری نسخه های دات نت دیگر نسخه ای با نام RC یا Release Candidate معرفی نمیشود و طبق اعلام مدیر فنی این نسخه به عنوان RC قابل استفاده است. به این معنی که دیگر تغییر بزرگی در راه نیست و Breaking Change نخواهیم داشت.
تیم توسعه ی دات نت در حال حاضر تمرکز اصلی خود را روی Blazor گذاشته و عملا کار زیادی روی ASP انجام نمی دهد.
طبق اعلام مایکروسافت نسخه ی نهایی Net Core 3.0 همزمان با کنفرانس NETConf در 23 سپتامبر رسما عرضه میشود که کمتر از یک ماه دیگه است.
تغییرات بزرگ و مهم نسخه 3.0 شامل اضافه شدن WinForm و WPF به Core است. همچنین Blazor به عنوان Web UI از طریق Web Assembly امکان برنامه نویسی #C در مرورگر را فراهم میکند و می تواند جایگزین خوبی برای جاوااسکریپت باشد.
ماه پیش سورس پروژه دات نت در GitHub به
5.0 تغییر نام داده شد که به این معنی است که کار روی نسخه ی بعدی دات نت شروع شده است.
به زودی پیش نمایش 9 از فریم ورک NET Core 3.0 عرضه میشود. با تغییر سیستم نام گذاری نسخه های دات نت دیگر نسخه ای با نام RC یا Release Candidate معرفی نمیشود و طبق اعلام مدیر فنی این نسخه به عنوان RC قابل استفاده است. به این معنی که دیگر تغییر بزرگی در راه نیست و Breaking Change نخواهیم داشت.
تیم توسعه ی دات نت در حال حاضر تمرکز اصلی خود را روی Blazor گذاشته و عملا کار زیادی روی ASP انجام نمی دهد.
طبق اعلام مایکروسافت نسخه ی نهایی Net Core 3.0 همزمان با کنفرانس NETConf در 23 سپتامبر رسما عرضه میشود که کمتر از یک ماه دیگه است.
تغییرات بزرگ و مهم نسخه 3.0 شامل اضافه شدن WinForm و WPF به Core است. همچنین Blazor به عنوان Web UI از طریق Web Assembly امکان برنامه نویسی #C در مرورگر را فراهم میکند و می تواند جایگزین خوبی برای جاوااسکریپت باشد.
ماه پیش سورس پروژه دات نت در GitHub به
5.0 تغییر نام داده شد که به این معنی است که کار روی نسخه ی بعدی دات نت شروع شده است.
📣 اطلاعیه
❇️ آدرس این کانال به DotNetZoom تغییر پیدا کرد و نام و آیکون اون هم به زودی تغییر خواهد کرد ❇️
👉 @DotNetZoom 👈 آدرس جدید کانال
❇️ آدرس این کانال به DotNetZoom تغییر پیدا کرد و نام و آیکون اون هم به زودی تغییر خواهد کرد ❇️
👉 @DotNetZoom 👈 آدرس جدید کانال
❇️ برنامه ASP.NET Core مدیریت پارکینگ مبتنی بر DDD و CQRS و Event Sourcing و ...
✔️ ASP.NET Core
✔️ EntityFramework Core
✔️ Domain Driven Design (#DDD)
✔️ #Microservices
✔️ #RabbitMQ
✔️ #Service_Mesh
✔️ #CQRS
✔️ #Event_Sourcing
✔️ #Eventual_Consistency
✔️ #Docker & #Kubernetes Support
🔰مخزن پروژه :
https://github.com/EdwinVW/pitstop
____________________
@DotNetZoom
✔️ ASP.NET Core
✔️ EntityFramework Core
✔️ Domain Driven Design (#DDD)
✔️ #Microservices
✔️ #RabbitMQ
✔️ #Service_Mesh
✔️ #CQRS
✔️ #Event_Sourcing
✔️ #Eventual_Consistency
✔️ #Docker & #Kubernetes Support
🔰مخزن پروژه :
https://github.com/EdwinVW/pitstop
____________________
@DotNetZoom
GitHub
GitHub - EdwinVW/pitstop: This repo contains a sample application based on a Garage Management System for Pitstop - a fictitious…
This repo contains a sample application based on a Garage Management System for Pitstop - a fictitious garage. The primary goal of this sample is to demonstrate several software-architecture concep...
Forwarded from Moien Tajik 💭
نسخه NET Core 3.0 Preview 9 تو حالت Production Ready رفت و میشه برنامه رو بهش Update کرد. ✅
برای اطمینان ، ماکروسافت سایت خودش رو هم روی این نسخه برد ( فوتر سایت ، قسمت Powered By ).
نسخه GA ( General Availability )l اش هم ، در آخر این ماه Release میشه ✌🏻 :
https://devblogs.microsoft.com/dotnet/announcing-net-core-3-0-preview-9/
تفاوت سرعت نسخه های 2.1 و 2.2 و 3.0 خیلی محسوسه و از لحاظ Performance ای وقتی برنامه بهش آپدیت بشه ، کاملا قابل احساسه که میتونید این Improvement هارو از اینجا بخونید⚡️ :
https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-core-3-0/
برای اطمینان ، ماکروسافت سایت خودش رو هم روی این نسخه برد ( فوتر سایت ، قسمت Powered By ).
نسخه GA ( General Availability )l اش هم ، در آخر این ماه Release میشه ✌🏻 :
https://devblogs.microsoft.com/dotnet/announcing-net-core-3-0-preview-9/
تفاوت سرعت نسخه های 2.1 و 2.2 و 3.0 خیلی محسوسه و از لحاظ Performance ای وقتی برنامه بهش آپدیت بشه ، کاملا قابل احساسه که میتونید این Improvement هارو از اینجا بخونید⚡️ :
https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-core-3-0/
Microsoft
.NET - Build modern apps and powerful cloud services
.NET is a developer platform with tools and libraries for building any type of app, including web, mobile, desktop, games, IoT, cloud, and microservices.
✅ چند ایراد مهم هنگام کار با EF Core که باید بدانید
شاید فک کنین EF Core بعد از نسخه 2.2 و یا حتی الان که دیگه نسخه 3.0 اش هم داره میاد، دیگه به بلوغ حداقلی رسیده باشه. اگه اینطوریه به چندتا مثال زیر دقت کنین
1️⃣ مشکل Select به هنگام Include
وقتی روی یه کوئری Include میزنین قاعدتا باید یه join به کوئری تون اضافه کنه ولی توی نسخه 2.2 به قبل اگه با Profiler چک کنین به جای یک کوئری میاد و 2تا کوئری میزنه!
این مشکل توی نسخه 3.0 (که در حال حاضر پیشنمایش 9 اش هست) برطرف شده.
2️⃣ مشکل Recursive Select برای جداول Self Refrence
فرض کنین یه جدول Category دارید که به خودش ریلیشن داره (Self Refrence هست) در نتیجه navigation property های Parent و Childs رو داره
اگه لازم باشه یک select به صورت recursive بزنین، یعنی همه Category ها رو به همراه بچه هاشون بیاره، اوضاع جالب میشه
توی نسخه 2.2 اگر Include بزنین روی Childs تا زمانی که شرط Where توی کوئری تون نباشه کار میکنه ولی به محض اینکه شرط Where رو بذارین فقط تا یک سطح Childs ها رو میاره و نه بیشتر.
توی نسخه 3.0 (پیشنمایش 9) کلا همینم نمیاره یعنی وقتی Include میزنین چه Where داشته باشه چه نداشته باشه فقط و فقط تا یک سطح از Childs هارو میاره
3️⃣ مشکل GroupBy
توی نسخه 2.2 به قبل، EF Core دستور کوئری GroupBy رو ساپورت نمیکنه (به دستورات TSql ترجمه نمیشه) و اگر از GroupBy استفاده کنین ، درحالت عادی کل رکورد ها رو واکشی میکنه و توی مموری GroupBy رو انجام میده. (قابلیت ClientEvaluation)
اگر هم قابلیت ClientEvaluation رو غیر فعال کرده باشین خطای InvalidOperationException بهتون میده
توی نسخه 3.0 اما GroupBy کلا هیچ جوره جواب نیمده (لازم به ذکره قابلیت ClientEvaluation کلا غیر فعال شده و نیازه به غیرفعال کردن دستیش نیست)
🔹خب دیدین که EF Core هنوز یه سری ایرادات پایه ای داره پس اولا توی این جور کوئری هایی که مثال زدم مراقب باشید
🔸دوما راه حلش فعلا اینه که تا اونجایی رو که EF Core ساپورت میکنه با خودش انجام بدیم و جا هایی که درست کار نمیده، نیازش رو توی مموری با Linq to Object برطرف کنیم
__________________
@DotNetZoom
شاید فک کنین EF Core بعد از نسخه 2.2 و یا حتی الان که دیگه نسخه 3.0 اش هم داره میاد، دیگه به بلوغ حداقلی رسیده باشه. اگه اینطوریه به چندتا مثال زیر دقت کنین
1️⃣ مشکل Select به هنگام Include
وقتی روی یه کوئری Include میزنین قاعدتا باید یه join به کوئری تون اضافه کنه ولی توی نسخه 2.2 به قبل اگه با Profiler چک کنین به جای یک کوئری میاد و 2تا کوئری میزنه!
این مشکل توی نسخه 3.0 (که در حال حاضر پیشنمایش 9 اش هست) برطرف شده.
2️⃣ مشکل Recursive Select برای جداول Self Refrence
فرض کنین یه جدول Category دارید که به خودش ریلیشن داره (Self Refrence هست) در نتیجه navigation property های Parent و Childs رو داره
اگه لازم باشه یک select به صورت recursive بزنین، یعنی همه Category ها رو به همراه بچه هاشون بیاره، اوضاع جالب میشه
توی نسخه 2.2 اگر Include بزنین روی Childs تا زمانی که شرط Where توی کوئری تون نباشه کار میکنه ولی به محض اینکه شرط Where رو بذارین فقط تا یک سطح Childs ها رو میاره و نه بیشتر.
توی نسخه 3.0 (پیشنمایش 9) کلا همینم نمیاره یعنی وقتی Include میزنین چه Where داشته باشه چه نداشته باشه فقط و فقط تا یک سطح از Childs هارو میاره
3️⃣ مشکل GroupBy
توی نسخه 2.2 به قبل، EF Core دستور کوئری GroupBy رو ساپورت نمیکنه (به دستورات TSql ترجمه نمیشه) و اگر از GroupBy استفاده کنین ، درحالت عادی کل رکورد ها رو واکشی میکنه و توی مموری GroupBy رو انجام میده. (قابلیت ClientEvaluation)
اگر هم قابلیت ClientEvaluation رو غیر فعال کرده باشین خطای InvalidOperationException بهتون میده
توی نسخه 3.0 اما GroupBy کلا هیچ جوره جواب نیمده (لازم به ذکره قابلیت ClientEvaluation کلا غیر فعال شده و نیازه به غیرفعال کردن دستیش نیست)
🔹خب دیدین که EF Core هنوز یه سری ایرادات پایه ای داره پس اولا توی این جور کوئری هایی که مثال زدم مراقب باشید
🔸دوما راه حلش فعلا اینه که تا اونجایی رو که EF Core ساپورت میکنه با خودش انجام بدیم و جا هایی که درست کار نمیده، نیازش رو توی مموری با Linq to Object برطرف کنیم
__________________
@DotNetZoom
Telegram
Attach Files
❇️ گوگل قابلیت Lazy-Load را به صورت native در مرورگر Chrome ورژن 76 اضافه کرد
🔸 توسط این قابلیت میتوان load عکس ها را تا زمانی که کاربر به اون قسمت از صفحه اسکرول میکنه به تعویق انداخت
اینطوری همه تصاویر صفحه همون ابتدا load نمشن و زمانی که کاربر به پایین صفحه اسکرول میکنه، عکس هایی که لازمه دیده بشن به صورت خودکار load میشه.
این قابلیت موجب کاهش مصرف پهنای باند، کاهش مصرف memory و افزایش سرعت سایت می شود.
🔹 قبلا برای این کار باید از کتابخانه های third-party استفاده می شد ولی الان به راحتی با اضافه کردن خاصیت loading="lazy" به تگ های img و iframe میتونین این قابلیت رو بهشون اضافه کنین
https://web.dev/native-lazy-loading
🔰 نکته :
1️⃣ برای اینکه ارتفاع صفحه و در نتیجه آن ارتفاع scroll قبل از load شدن تصاویر به هم نریزه باید حتما width و height تگ های img رو مشخص کنین.
✅ برای بقیه مرورگر ها میتونین از کتابخانه های زیر که محبوب ترین کتابخانه های مخصوص این کار هستند استفاده کنین
https://github.com/aFarkas/lazysizes
https://github.com/tuupola/lazyload
https://github.com/ApoorvSaxena/lozad.js
https://github.com/verlok/lazyload
___________________
@DotNetZoom
🔸 توسط این قابلیت میتوان load عکس ها را تا زمانی که کاربر به اون قسمت از صفحه اسکرول میکنه به تعویق انداخت
اینطوری همه تصاویر صفحه همون ابتدا load نمشن و زمانی که کاربر به پایین صفحه اسکرول میکنه، عکس هایی که لازمه دیده بشن به صورت خودکار load میشه.
این قابلیت موجب کاهش مصرف پهنای باند، کاهش مصرف memory و افزایش سرعت سایت می شود.
🔹 قبلا برای این کار باید از کتابخانه های third-party استفاده می شد ولی الان به راحتی با اضافه کردن خاصیت loading="lazy" به تگ های img و iframe میتونین این قابلیت رو بهشون اضافه کنین
<img src="image.png" loading="lazy" alt="…" width="200" height="200">اطلاعات بیشتر
<iframe src="https://example.com" loading="lazy"></iframe>
https://web.dev/native-lazy-loading
🔰 نکته :
1️⃣ برای اینکه ارتفاع صفحه و در نتیجه آن ارتفاع scroll قبل از load شدن تصاویر به هم نریزه باید حتما width و height تگ های img رو مشخص کنین.
<img src="..." loading="lazy" width="200" height="200">2️⃣ در حال حاضر این قابلیت فقط در مروگر Chrome ورژن 76 به بالا ساپورت میشه (و نه در بقیه مرورگر ها)
<img src="..." loading="lazy" style="height:200px; width:200px;">
✅ برای بقیه مرورگر ها میتونین از کتابخانه های زیر که محبوب ترین کتابخانه های مخصوص این کار هستند استفاده کنین
https://github.com/aFarkas/lazysizes
https://github.com/tuupola/lazyload
https://github.com/ApoorvSaxena/lozad.js
https://github.com/verlok/lazyload
___________________
@DotNetZoom
Telegram
Attach Files
Forwarded from Software Philosophy
نوبتی هم باشه نوبت «واچ پارتیه»! 🎂🍰🥂
قراره دور هم جمع بشیم و کنفرانس #DotNetConf رو در یک Watch Party با هم ببینیم.
همونطور که میدونید (یا شایدم ندونید) دوشنبه ۱ مهر کنفرانس #DotNetConf شروع میشه. داتنتکانف یکی مهمترین کنفرانسهایی هست که مایکروسافت توش تکنولوژیهای جدید برنامهنویسی رو معرفی میکنه.
مایکروسافت امکانی رو فراهم کرده که افراد بتونن در سایت کنفرانس یه Watch Party رجیستر کنن و به طور رسمی دور هم جمع بشن و کنفرانس رو لایو با هم ببینین و در مورد موضوعاتش با هم صحبت کنن. همونطور که در نقشه جهانی سایت کنفرانس میبینید ما تو ایران یه Watch Party ثبت کردیم (فعلا تو ایران فقط یکی هست) تا دور هم جمع بشیم و با هم کنفرانس رو ببینیم و در مورد تکنولوژیها صحبت کنیم.
تو کنفرانس امسال نسخه نهایی .Net Core 3.0 ارائه میشه. همچنین در مورد آخریت تغییرات C# 8.0، ASP.NET Core و سرویسهای هیجانانگیز Azure صحبت میشه. همچنین خبرهای جذابی از Blazor در راهه.
قسمتی از کنفرانس رو که انتخاب کردیم واسش واچپارتی برگزار کنیم در مورد موضوعات بالا صحبت میشه و دوشنبه ۱ مهر، از ساعت ۱۹ تا ۲۳:۵۹ هست!
تو فرصتهای خالی بین سخنرانیهای تیم مایکروسافت، ما هم با هم در مورد تکنولوژیهایی که مطرح شده گپ میزنیم.
تو این پارتی «مهران داودی» هم هست تا از ویژگیهای C# 8.0 بگه و تجربش در معماری محصولات روی Azure رو باهامون به اشتراک بذاره.
«یاسر مرادی» هم هست تا تجربش در ASP.NET Core باهامون به اشتراک بذاره.
«صالح یوسفنژاد» هم در مورد Blazor اطلاعاتش رو باهامون به اشتراک میذاره.
برای ثبتنام تو سایت کنفرانس ایران رو پیدا کنید و تو رویداد ثبتنام کنید:
👉 https://www.dotnetconf.net/local-events 👈
و یا مستقیما از طریق سایت ایوند ثبتنام کنید:
http://evnd.co/NZfCK
⏱ چون فرصت کوتاهه و ظرفیت هم محدود، همین الان رجیستر کنید.
#مهران_داودی (http://ow.ly/GwIl309lFEm)
کانال تلگرام:
@SoftwarePhilosophy
___
قراره دور هم جمع بشیم و کنفرانس #DotNetConf رو در یک Watch Party با هم ببینیم.
همونطور که میدونید (یا شایدم ندونید) دوشنبه ۱ مهر کنفرانس #DotNetConf شروع میشه. داتنتکانف یکی مهمترین کنفرانسهایی هست که مایکروسافت توش تکنولوژیهای جدید برنامهنویسی رو معرفی میکنه.
مایکروسافت امکانی رو فراهم کرده که افراد بتونن در سایت کنفرانس یه Watch Party رجیستر کنن و به طور رسمی دور هم جمع بشن و کنفرانس رو لایو با هم ببینین و در مورد موضوعاتش با هم صحبت کنن. همونطور که در نقشه جهانی سایت کنفرانس میبینید ما تو ایران یه Watch Party ثبت کردیم (فعلا تو ایران فقط یکی هست) تا دور هم جمع بشیم و با هم کنفرانس رو ببینیم و در مورد تکنولوژیها صحبت کنیم.
تو کنفرانس امسال نسخه نهایی .Net Core 3.0 ارائه میشه. همچنین در مورد آخریت تغییرات C# 8.0، ASP.NET Core و سرویسهای هیجانانگیز Azure صحبت میشه. همچنین خبرهای جذابی از Blazor در راهه.
قسمتی از کنفرانس رو که انتخاب کردیم واسش واچپارتی برگزار کنیم در مورد موضوعات بالا صحبت میشه و دوشنبه ۱ مهر، از ساعت ۱۹ تا ۲۳:۵۹ هست!
تو فرصتهای خالی بین سخنرانیهای تیم مایکروسافت، ما هم با هم در مورد تکنولوژیهایی که مطرح شده گپ میزنیم.
تو این پارتی «مهران داودی» هم هست تا از ویژگیهای C# 8.0 بگه و تجربش در معماری محصولات روی Azure رو باهامون به اشتراک بذاره.
«یاسر مرادی» هم هست تا تجربش در ASP.NET Core باهامون به اشتراک بذاره.
«صالح یوسفنژاد» هم در مورد Blazor اطلاعاتش رو باهامون به اشتراک میذاره.
برای ثبتنام تو سایت کنفرانس ایران رو پیدا کنید و تو رویداد ثبتنام کنید:
👉 https://www.dotnetconf.net/local-events 👈
و یا مستقیما از طریق سایت ایوند ثبتنام کنید:
http://evnd.co/NZfCK
⏱ چون فرصت کوتاهه و ظرفیت هم محدود، همین الان رجیستر کنید.
#مهران_داودی (http://ow.ly/GwIl309lFEm)
کانال تلگرام:
@SoftwarePhilosophy
___
www.dotnetconf.net
.NET Conf 2025
Join the .NET Conf 2025 free virtual event November 11-13 to learn about the newest developments across the .NET platform, open source, and dev tools. Mark your calendar!
Forwarded from کدهک
آشنایی با Worker Service در NET Core 3.0
فردا همزمان با NETConf 2019 نسخه ی نهایی NET Core 3.0 منتشر میشود. یکی از موارد جدیدی که در این نسخه اضافه شده است قابلیت Background Service است که از طریق قالب پروژه Worker Service در دسترس است.
از Worker Service برای ایجاد سرویس هایی که قرار است برای مدت طولانی در سیستم عامل اجرا شوند استفاده میشود. این نوع اپ ها رابط کاربری ندارند و معمولا برای لوگ کردن اطلاعات یا نمایش وضعیت کلی سیستم در صفحه Terminal مورد استفاده قرار میگیرند.
کاربرد این نوع اپ ها در مواردی است که قصد دارید یک عملیات در پس زمینه همیشه در حال اجرا باشد .
یکی از کاربردهای Worker Service مدیریت پیامهای RabbitMQ است. یا اگر میخواهید پیامک یا ایمیل ها در ساعت زمانبندی شده خارج از پروسه اصلی سایت اجرا شود مناسب است. همچنین از این ابزار برای مونیتور کردن سلامت سرور و دیتابیس استفاده میشود.
در گذشته از برنامه های کنسول یا TopShelf استفاده میشد اما Worker Service ابزاری اختصاصی برای اجرا عملیاتهای بلند مدت فراهم می کند و به راحتی می توان آن را به صورت Windows Service یا Daemon Linux اجرا کرد.
فردا همزمان با NETConf 2019 نسخه ی نهایی NET Core 3.0 منتشر میشود. یکی از موارد جدیدی که در این نسخه اضافه شده است قابلیت Background Service است که از طریق قالب پروژه Worker Service در دسترس است.
از Worker Service برای ایجاد سرویس هایی که قرار است برای مدت طولانی در سیستم عامل اجرا شوند استفاده میشود. این نوع اپ ها رابط کاربری ندارند و معمولا برای لوگ کردن اطلاعات یا نمایش وضعیت کلی سیستم در صفحه Terminal مورد استفاده قرار میگیرند.
کاربرد این نوع اپ ها در مواردی است که قصد دارید یک عملیات در پس زمینه همیشه در حال اجرا باشد .
یکی از کاربردهای Worker Service مدیریت پیامهای RabbitMQ است. یا اگر میخواهید پیامک یا ایمیل ها در ساعت زمانبندی شده خارج از پروسه اصلی سایت اجرا شود مناسب است. همچنین از این ابزار برای مونیتور کردن سلامت سرور و دیتابیس استفاده میشود.
در گذشته از برنامه های کنسول یا TopShelf استفاده میشد اما Worker Service ابزاری اختصاصی برای اجرا عملیاتهای بلند مدت فراهم می کند و به راحتی می توان آن را به صورت Windows Service یا Daemon Linux اجرا کرد.
✅ نگارش نهایی NET Core 3.0. منتشر شد
https://devblogs.microsoft.com/dotnet/announcing-net-core-3-0/
✅ تغییرات ASP.NET Core و Blazor در نگارش نهایی NET Core 3.0.
https://devblogs.microsoft.com/aspnet/asp-net-core-and-blazor-updates-in-net-core-3-0/
✅ نگارش نهایی EF Core 3.0 و EF 6.3 منتشر شد
https://devblogs.microsoft.com/dotnet/announcing-ef-core-3-0-and-ef-6-3-general-availability/
🔰 هم اکنون میتونین نسخه جدید رو از لینک زیر دانلود و نصب کنین
حداقل نسخه مورد نیاز Visual Studio 2019 ورژن (v16.3) می باشد
https://dotnet.microsoft.com/download/dotnet-core/3.0
_________________
@DotNetZoom
https://devblogs.microsoft.com/dotnet/announcing-net-core-3-0/
✅ تغییرات ASP.NET Core و Blazor در نگارش نهایی NET Core 3.0.
https://devblogs.microsoft.com/aspnet/asp-net-core-and-blazor-updates-in-net-core-3-0/
✅ نگارش نهایی EF Core 3.0 و EF 6.3 منتشر شد
https://devblogs.microsoft.com/dotnet/announcing-ef-core-3-0-and-ef-6-3-general-availability/
🔰 هم اکنون میتونین نسخه جدید رو از لینک زیر دانلود و نصب کنین
حداقل نسخه مورد نیاز Visual Studio 2019 ورژن (v16.3) می باشد
https://dotnet.microsoft.com/download/dotnet-core/3.0
_________________
@DotNetZoom