Web appOpen in Telegram
DDotNetZoom

DotNetZoom

@DotNetZoom · channel · Tech · indexed since 2026-07-20
2 826subscribers
1 010posts in the index
A
Ali
Photo
click to show
✅ داشبورد مدیریت تسک ها برای Quartz .NET کتابخانه Hangfire (مشابه Quartz) که قدرتمند ترین ابزار برای تسک های زمان بندی شده هست دارای داشبوردی برای مدیریت و نظارت بر تسک ها هست ولی کتابخانه Quartz .NET فاقد چنین داشبوردی هست 🔰اگر از Quartz برای تسک های زمان بندی شده خودتون استفاده میکنین میتونین از 2 کتابخونه کمکی زیر برای بهره مندی از یک داشبورد مدیریتی نظارتی استفاده کنین 🔸کتابخانه Quartzmin https://github.com/jlucansky/Quartzmin 🔹کتابخانه CrystalQuartz https://github.com/guryanovev/CrystalQuartz ___________________ @DotNetZoom
56 · 3.1K ·
A
Ali
Link
click to show
❇️ اهمیت Side-effect Free و Idemponency در کدنویسی برنامه نویسی Functional Programming (به اختصار FP) در تعریف، یک Paradigm (پارادایم) برنامه نویسی هست که در اون برنامه ها به کمک ترکیب توابع ساخته میشن. (چه تعریف گنگ و غیر ملموسی!) از اونجایی که "پارادایم" کلمه غیر ملموسی هست و اگر اولین بارتون باشه که اون رو میشنوین احتمال زیاد مفهومش رو متوجه نمیشین اینطور تعریفش میکنم: پارادایم برنامه نویسی یعنی یک روش یا رویکرد برنامه نویسی. این رویکرد مفاهیم مختلفی رو داخل خودش داره که اینجا نمیخوام واردشون بشم. چیزی که اینجا میخوام روش تاکید کنیم 3 مفهوم زیر هست: 1- Side-effect Free 2- Idempotent 3- Pure Functions 🔸مفهوم Side-effect Free این مفهوم به این اشاره میکنه که یه تابع (متد) نباید "تاثیر جانبی" روی بقیه قسمت های برنامه داشته باشه. خب این یعنی چی؟ کی ما تاثیر جانبی رو بقیه میذاریم؟ وقتی متد ما یک shared state تغییر رو بده. shared state به معنی متغیر/مقدار ایی هست که بین چندین تابع یا قسمت مختلف برنامه مشترک هست. پس در واقع وقتی یک تابع، متغیری یا مقداری را که بین چندین تابع یا قسمت های مختلف برنامه مشترک هست رو "تغییر" بده یعنی side-effect اتفاق افتاده در کنار این مفهوم، مفهوم دیگری نیز وجود داره به نام Avoiding Shared State که تاکید میکنه از ایجاد و استفاده از shared state ها خودداری کنیم. وجود shared state خواسته یا ناخواسته باعث بروز side-effect میشه. پس خودداری از اون باعث میشه به side-effect نیز برنخوریم یا کمتر بر بخوریم 🔹مفهوم Idempotent این مفهوم به این امر اشاره میکنه که زمانی توابع ما Idempotent هستند که اگر اونها رو هرچند بار هم با مقادیر ورودی ثابت و مشابه فراخوانی کنیم همیشه نتیجه یا خروجی یکسان و ثابتی داشته باشه مثلا تابعی که یک مقدار Random رو برمیگردونه Idempotent نیست چرا که هربار نتیجه اش متفاوته؛ همینطور تابعی که DateTime.Now رو برمیگردونه. مثال کاربردیش توی دنیای واقعی، متدی میشه که وظیفه حذف یک رکورد رو داره. به این صورت که (مثلا از EF استفاده میکنه و) ابتدا رکورد رو با id مورد نظر واکشی میکنه سپس اون رو به متد Remove میده و SaveChanges فراخوانی میشه خب بار اولی که این متد رو با id برابر با 100 فراخوانی کنیم اون سطح حذف میشه ولی بار دومی که
41 · 3.7K ·
م
محمد جواد ابراهیمی
Photo
click to show
❇️ در گوگل چگونه کار میکنند؟ گپ‌وگفت میان احسان آراسته از علی بابا و کیانوش مختاریان از گوگل آکادمی علی‌بابا، در سری برنامه‌‌های علی‌باباتاک پلاس، به بیان چالش‌ها و تجربیات دنیای کار می‌پردازه. این برنامه از این سری برنامه‌ها، یک گپ‌وگفت است میان احسان آراسته، راهبر ارشد فنی علی‌بابا و کیانوش مختاریان، مهندس ارشد نرم‌افزار و مدیر-رهبر فنی شرکت گوگل. در این گپ‌وگفت قرار است درباره چالش‌های تولید نرم‌افزار در گوگل بشنویم و گریزی هم به مباحثی مثل کار تیمی، منابع انسانی، مواجهه با شکست و خلاقیت بزنیم. 🔸زمان: شنبه ۶ شهریور، ساعت ۱۹:۰۰ تا ۲۰:۳۰ 🔸ثبت نام رایگان از طریق لینک زیر: https://evnd.co/u3DT3 ____________________ @DotNetZoom
62 · 4.8K ·
م
محمد جواد ابراهیمی
Link
click to show
✅ معرفی ویژگی Records در C# 9.0: کار با داده‌های تغییر ناپذیر 🔸 کار کردن با داده‌های تغییر ناپذیر بسیار قدرتمند است، اغلب منجر به باگ‌های کمتری می‌شود، و شما را مجبور می‌کند تا اشیا را تبدیل به اشیای جدید کنید به جای اینکه اشیای موجود را اصلاح کنید. توسعه دهندگان #F به این عادت کرده‌اند، زیرا #F همه چیز را به طور پیش‌فرض به عنوان تغییرناپذیر در نظر می‌گیرد. حالا شما انواع تغییر ناپذیر را در C# ۹.۰ نیز دارید، یا به اصطلاح انواع record نامیده می‌شود. Records کار با داده‌های تغییر ناپذیر در #C را برای شما آسان‌تر می‌کند. ❇️ از طریق لینک زیر می‌توانید ترجمه مقاله‌ای از Thomas Claudius Huber که به بررسی این ویژگی و جزییات بیشتر پرداخته مطالعه کنید: #سپهر_اسلامی https://vrgl.ir/1zp5a _____________ @DotNetZoom
63 · 5.4K ·
A
Ali
Link
click to show
✅ لاگ کردن جزئیات Request ها به کمک Serilog و ActionFilter بعضی وقتا پیش میاد لازم دارید اطلاعات هر درخواست ورودی Action هامون رو به همراه جزئیات کاملشون رو جهت عیب یابی یا بررسی های آتی ثبت و Log کنیم در اینجا یک نمونه پروژه آماده کردم که این کار رو به راحتی قرار دادن یک اتریبیوت [LogRequest] بر روی اکشن های مورد نظر انجام میده یا میتونین روی Controller یا به صورت Global ثبت اش کنین تا همه اکشن ها رو Log کنه 🔸طرز کارش به این صورته که در درون ActionFilter مذکور (LogRequest)، جزئیات لازم رو قبل و بعد از اجرا شدن Action مورد نظر Log میکنه (بنا بر نیازتون میتونین هر دیتای دلخواه دیگه ای رو هم از request و response بهش اضافه کنین) و نهایتا برای ذخیره سازی لاگ ها هم از Serilog و از SqlServer به عنوان Sinks استفاده میکنه (در صورت دلخواه میتونین تو هر Storage/Sink دیگه ای ذخیره کنین) 🔹مسلما لاگ کردن همه درخواست ها میتونه سربار داشته باشه و شخصا پیشنهاد نیمکنم همیشه و همه جا ازش استفاده کنین ولی نکته ای که در مورد Sink های Serilog وجود داره اینه که اکثرا از Async و PeriodicBatching استفاده میکنن به این صورت که در بازه های زمانی Log ها رو به صورت Bulk ایی Insert میکنن (اونم به صورت Async که Thread ایی رو بلاک نکنن) در نتیجه از نظر پرفرمنسی در حالت بهینه ای کار میکنن 🔰از جمله جزئیاتی که در هر درخواست Log میکنه: 1- آدرس URL درخواستی به همراه مقادیر QueryString 2- مقادیر Header های Request و Response 3- مقادیر ارسالی از سمت کاربر (آرگومان های Action) 4- وضعیت ModelState به همراه Error Message ها در صورت وجود 5- مقادیر Routing بسته به Route مچ شده 6- مقادیر شی User.Identity از جمله Claim ها، Name و IsAuthenticated 7- مقدار IP Address کاربر 8- مقدار Url Referrer (آدرس هدایت کننده قبلی به این صفحه) 9- مدت زمان پردازش درخواست جاری (Elapsed Time) و زمان ثبت درخواست 10- جزئیات Exception در صورت وقوع خطا 11- وضعیت Http Status Code درخواست 12- و... https://github.com/dotnetzoom/RequestLogger-AspNetCore ____________________ @DotNetZoom
69 · 3.4K ·
A
Ali
Link
click to show
❇️ معرفی 20 کتاب برتر برای برنامه نویسان (فارغ از نوع تکنولوژی) اگه اهل کتابخوندن هستین لیست زیر برترین و محبوبترین کتابهای برنامه نویسی هست که برای هر برنامه نویس فارغ از استک و نوع تکنولوژیش مفید هست 1- Clean Architecture 2- Clean Code 3- The Clean Coder 4- The Pragmatic Programmer 5- Patterns of Enterprise Application Architecture 6- Head First Design Patterns 7- Design Patterns: Elements of Reusable Object-Oriented Software 8- Working Effectively with Legacy Code 9- Refactoring: Improving the Design of Existing Code 10- Domain-Driven Design: Tackling Complexity in the Heart of Software 11- Patterns, Principles, and Practices of Domain-Driven Design 12- Domain-Driven Design Distilled 13- Implementing Domain-Driven Design 14- Test Driven Development 15- Growing Object-Oriented Software, Guided by Tests 16- Working Effectively with Unit Tests 17- The Art of Unit Testing 18- BDD in Action 19- Soft Skills 20- Code Complete 🔰من لینک آمازون کتاب ها رو قرار دادم و بهتره که حامی قانون کپی رایت باشیم هرچند اونایی که میخوان رایگان دانلود کنن به هرحال راهشو بلدن ____________________ @DotNetZoom
179 · 3.3K ·
م
محمد جواد ابراهیمی
Link
click to show
✅ ساخت چت روم با Blazor Web Assembly و SignalR قسمت اول: ساخت سرور در این مقاله دو قسمتی قصد داریم که با قابلیت Real Time Communication در SignalR و Blazor Web Assembly یک چت روم اپلیکیشن بسازیم ابتدا به سراغ ساخت سرور می رویم و در آن به ساخت دیتابیس و جداول مورد نیاز، بررسی Identity و شخصی سازی جداول Identity ، تنظیمات مربوط به JWT ، ایجاد Access Tokenو استفاده از آن در SignalR می پردازیم. سپس Chat Hub و متد های مورد نظر برای Event های مختلف مانند هنگامی که پیام جدیدی دریافت میشود، یا هنگامی که کاربری آنلاین میشود و یا هنگامی که کاربر در حال تایپ است را پیاده سازی میکنیم #بابک_طارمی https://vrgl.ir/cKLqV _________ @DotNetZoom
85 · 3.8K ·
م
محمد جواد ابراهیمی
Link
click to show
توسعه برنامه های Cross Platform اگر قصد پیاده سازی برنامه Cross Platform در دات نت را دارید می توانید از Xamarin استفاده کنید. اما قبل از شروع، احتمالا به دنبال این هستید که برای این کار چه راهی مناسب‌تر است. در این مقاله بین سه گزینه Xamarin, React Native, Ionic بررسی هایی انجام شده است و شما می‌توانید با توجه به شرایط خود، شرایط تیم، دانش برنامه نویسی خودتان و ... گزینه مورد نظر را انتخاب کنید. گزینه های دیگری نیز وجود دارد که با توجه به نحوه مقایسه سه مورد ذکر شده در مقاله جاری، حتی می‌توانید آن‌ها را نیز با یکدیگر مقایسه کنید. در نهایت اگر تصمیمتان Xamarin بود می‌توانید از این کتاب رایگان که توسط خود مایکروسافت ارائه شده است استفاده کنید. مایکروسافت این کتاب را به صورت خلاصه و با نوشتاری سلیس و روان ارائه کرده است. در نهایت برای بالا بردن کیفیت پروژه‌های Xamarin خود می‌توانید از سری آموزش‌های توسعه برنامه‌های Cross Platform با Xamarin Forms & Bit Framework استفاده کنید. #زامارین #xamarin ⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید. #حامد_حاجیلو (لینکدین) کانال تلگرام: @SoftwarePhilosophy ________
25 · 3.1K ·
م
محمد جواد ابراهیمی
Link
click to show
✅ ساخت چت روم با Blazor Web Assembly و SignalR قسمت دوم: ساخت کلاینت در این قسمت قصد داریم به ادامه ساخت چت روم بوسیله Blazor web assembly بپردازیم. در این مقاله به مباحثی مانند: SignalR Client پیاده سازی لاگین و رجیستر کاربر نحوه استفاده از local storage برای ذخیره و خواندن اطلاعاتی مانند JWT Token نحوه تنظیم SignalR Client برای استفاده از JWT Token هندل کردن رویداد های SignalR سمت Client نحوه ارتباط با web api و فرستادن JWT Token به آن آشنایی با تایمر جداسازی کد از UI در Blazor مبحث Dependecy Injection استفاده از Toaster Component در Blazor آشنایی با event های پرکاربرد در Blazor خواهیم پرداخت #بابک_طارمی https://vrgl.ir/kByMS _________ @DotNetZoom
64 · 4.9K ·
م
محمد جواد ابراهیمی
Photo
click to show
طبق نظرسنجی Stack overflow در ۲۰۲۱ برای پنجمین سال متوالی Redis محبوب ترین دیتابیس انتخاب شده است. همچنین امسال PostgreSql از MongoDb عبور کرد و در جایگاه دوم قرار گرفت.
31 · 3.3K ·
A
Ali
Link
click to show
✅ 10 افزونه برتر که یک Github-باز باید اونا رو داشته باشه 1️⃣ Enhanced GitHub کاربردی ترین و پر فیچر ترین افزونه گیتهاب که کلی قابلیت و بهبود رو به صفحات گیتهاب شما اضافه میکنه و کارکردن با اون رو خیلی راحت تر (این یکی جزء باید های منه) 2️⃣ GitHub Hovercard یه افزونه باحال و فوق العاده مفید که باعث میشه وقتی موس تون رو روی لینک یه issue یا commit یا repo یا user میگیرین، یه پیش نمایش از اون به صورت hover card نمایش داده بشه 3️⃣ File Icons for GitHub and GitLab یه افزونه خیلی باحال که کنار فایل های ریپازیتوری، آیکون مخصوص بهش رو نمایش میده 4️⃣ Octotree یه افزونه باحال و کاربردی که میاد فایل ها و فولدر های ریپازیتوری تون رو به صورت درختی (tree) نمایش میده (مثل پنجره Solution Explorer در VS) 5️⃣ GitHub Isometric Contributions یه افزونه باحال که میاد و Contribution Graphs یا همون نمودار مشارکت های شخص رو به صورت 3 بعدی و ملموس تر نشون میده 6️⃣ Sourcegraph یه افزونه کاربردی که امکان Go to definition و Find references رو به کد های ریپازیتوری اضافه میکنه و توسطش میتونین ببینین کجا این کلاس یا متد تعریف شده و کجا های دیگه ازش استفاده شده 7️⃣ GitHub Writer این افزونه به شما این امکان رو میده که موقع نوشتن متن Issue و Pull Request و Comment بتونین از امکانات یک rich-text editor (مانند CKEditor) استفاده کنین 8️⃣ Git History Browser Extension یه افزونه باحال که به شما این امکان رو میده بتونین تاریخچه تغییرات و Commit های یه فایل رو به شکلی زیبا تر و ملموس تر ببینین. 9️⃣ GitZip for github بعضی وقتا لازم میشه صرفا یه سری فایل یا پوشه خاص رو از یه مخزن دانلود (نه کل مخزن رو که ممکنه خیلی حجیم باشه). این افزونه کاربردی به شما اجازه میده که Folder یا File هایی از یک ریپازیتوری گیتهاب رو به دلخواه در قالب یک فایل Zip دانلود کنین 🔟 Refined GitHub اینم مثل همون اولی میمونه و کلی قابلیت و بهبود باحال و کاربردی به صفحات ریپازیتوری اضافه میکنه و کار کردن با اونها رو خیلی راه دست تر 🔸به شخصه این لیست جز باید های منه و خیلی سال هست که ازشون استفاده میکنم و بسیار راضی ام. واسه دیدن اطلاعات بیشتر در مورد قابلیت هاشون حتما لینک هاشون رو ببینید. در ضمن این افزونه ها برای روی مروگر
63 · 3.6K ·
م
محمد جواد ابراهیمی
Link
click to show
❇️ دیباگ بهتر در Visual Studio با 3 ترفند بعضی وقتا پیش میاد که خطا تو کد هاتون رخ میده ولی Exception ایی نشون داده نمیشه. یا جزئیات کاملی از علت خطا در Exception رخ داده نشون داده نمیشه و... در اینجا میخوایم با اعمال 3 تنظیم در Visual Studio، بتونیم خطا ها رو بهتر Debug کنیم مراحل زیر رو انجام بدید تا به هنگام وقوع Exception، اجرای کد سر همون خطی که exception اصلی رخ داده متوقف بشه و علت رو پیدا کنید و نیز جزئیات بیشتری از خطا ها براتون نمایش داده بشه 1️⃣ از پنجره Exception Settings توی VisualStudio گزینه زیر رو به صورت کامل تیک بزنید Common Language Runtime Exceptions این باعث میشه "هر" نوع خطایی رخ بده Exception اش رو ببینیم 2️⃣ وارد تنظیمات VS بشین و از "غیر فعال" بودن گزینه Enable Just My Code اطمینان پیدا کنید Tools > Options > Debugging > General این باعث میشه هر خطایی (نه صرفا در کد های شما) حتی در library های دیگه رخ بده Exception اش رو ببینیم (اطلاعات بیشتر) 3️⃣ وارد تنظیمات VS بشین و از "فعال" بودن گزینه Suppress JIT optimization اطمینان پیدا کنید Tools > Options > Debugging > General این باعث میشه JIT Optimization انجام نشه و جزئیات و اطلاعات بیشتری از Exception ها نمایان بشن در نهایت کدتون رو اجرا کنید در این صورت اگر هر Exception ایی رخ بده نمایش داده میشه و بعد میتونین توسط Call Stack سلسله مراتب متد های فراخوانی کننده رو ببینید و متوجه بشید علت اصلی خطا کجاست 🔰نکته: وقتی تنظیمات بالا رو انجام میدید بعضی وقتا ممکنه Exception هایی که در کد های داخلی خود Framework و کتابخانه های BCL دات نت رخ میده و حتی Exception های "هندل شده" هم الکی نمایش داده بشه. که میتونید اون ها رو رد کنید و در نظر نگیرید یا توی پنجره Exception Settings (ترفند اول) راست کلیک کنین و گزینه "Restore Defaults" رو بزنین 🔰توی لینک زیر میتونین تکنیک های بیشتری رو هم ببینین 7 Debugging Techniques you should know in C# .NET ____________________ @DotNetZoom
94 · 4.6K ·
م
محمد جواد ابراهیمی
Photo
click to show
ما در Khanoumi.com به یک Devops Engineer در تیم مون نیاز داریم خیلی خوب میشه که تجربه کار در تیم هایی با تعداد کاربر آنلاین بالا داشته باشه و یه Team Player خوب باشه شرح نیازمندی های ما به شکل زیر هست : - تعامل با تیم توسعه - تسلط بر مفاهیم لود بالانس و HA - تجربه عملیاتی Swarm یا Kubernetes - تسلط بر Gitlab و CI/CD - توانایی استقرار Automation - مهارت برنامه نویسی یا Scripting - تسلط بر سرویس های مانیتورینگ و TSDB - تسلط بر سرویس های Queuing - آشنایی با مفاهیم میکرو سرویس - آشنایی با متدولوژی چابک - آشنایی با توزیع‌های لینوکس به خصوص Ubuntu و Debian - آشنایی با وب‌سرورها - تسلط به محیط Bash و Shell Scripting - آشنایی با مفاهیم امنیتی سرورهای لینوکسی - تسلط بر ابزارهای Deploy مانند Gitlab-CI, Ansible, Vagrant, Jenkins و .. - مسلط به داکر - مسلط به کوبرنتیز - دانش قوی در زمینه نصب CI/CD - دانش کار با سیستم های نظارت در صورتی که دوست دارید هم تیمی ما باشید حتما رزومه تون رو از طریق لینک زیر ارسال کنید و یا به خود من در لینکدین یا تلگرام پیام بدین https://lnkd.in/eH969_JU
30 · 4.8K ·
م
محمد جواد ابراهیمی
Photo
click to show
کنفرانس NET. Conf هر سال خبرهای هیجان‌انگیزی داره. امسال هم NET. خبر های خوب و جذابی داره که قراره ۱۸ تا ۲۰ آبان برگزار بشه. ما در «کانال فلسفه نرم‌افزار» به همراه بچه‌های «ملک‌رادار» تصمیم گرفتیم که دور هم جمع شویم و امسال این کنفرانس رو با هم ببینیم و در مورد فیچرهای جدید هم گپ و گفتی داشته باشیم. این دورهمی به صورت Watch party و روی Microsoft Teams برگزار می‌شود. پس اگر شما هم دوست دارید این رویداد رو تنها نبینید خوشحال می‌شیم با ما همراه بشید. برای شرکت در این Watch Party روی این لینک کلیک کنید تا وارد گروه تلگرامی که برای هماهنگی درست کردیم بشید. من (مهران داودی) هم به همراه بچه‌های این کانال هم تو این دورهمی هستیم.
18 · 3.7K ·
محمد جواد ابراهیمی
Photo
click to show
نسخه نهایی NET 6.0 منتشر شد. نسخه 6.0 دات نت به صورت طولانی مدت پشتیبانی میشود (LTS) و توسعه دهندگان می توانند تا سه سال بدون مهاجرت به نسخه بعدی همچنان آپدیت های آن را دریافت کنند. به همراه این نسخه سی شارپ 10 و اف شارپ 6 هم منتشر شده است. به گفته مایکروسافت این نسخه سریعترین نسخه دات نت تا به امروز است و می توانید از همین حالا شروع به استفاده از آن کنید. با توجه به پایان پشتیبانی دات نت 5 در چند ماه آینده پروژه های دات نت 5 باید هرچه سریعتر به نسخه 6 آپدیت شوند. میتوانید نسخه جدید را از لینک زیر دانلود کنید یا Visual Studio را به آخرین نسخه آپدیت کنید. https://dotnet.microsoft.com/download
27 · 4K ·
م
Link
click to show
همه چیز در مورد NET Core 6. دیروز نسخه رسمی NET Core 6. به همراه نسخه رسمی Visual Studio 2022 ارائه شد. در واقع شما می‌توانید با نصب ویژوال استودیو همزمان NET Core 6. را هم نصب کنید. اما موضوع این پست و سوال اصلی اینجاست که چه اتفاقاتی در NET Core 6. افتاده و آپدیت ها چه چیز هایی هستند؟ بررسی فیچر های جدیدی که با NET Core 6. ارائه شده: 1 - Looking inside ConfigurationManager in .NET 6 2 - Comparing WebApplicationBuilder to the Generic Host 3 - Exploring the code behind WebApplicationBuilder 4 - Building a middleware pipeline with WebApplication 5 - Supporting EF Core migrations with WebApplicationBuilder 6 - Supporting integration tests with WebApplicationFactory in .NET 6 7 - Analyzers for ASP.NET Core in .NET 6 8 - Improving logging performance with source generators 9 - Source generator updates: incremental generators ⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید. #حامد_حاجیلو (لینکدین) کانال تلگرام: @SoftwarePhilosophy ________
58 · 6K ·
م
محمد جواد ابراهیمی
Link
click to show
اضافه شدن قابلیت Temporal Table به EF Core 6 ➖ مایکروسافت در سال 2016 قابلیت Temporal Table که با نام System-Versioned نیز شناخته می‌شود را به SQL Server اضافه کرد. ➖ این قابلیت امکان این را فراهم می‌کند که تغییرات مربوط به دیتا‌های هر جدول را ذخیره سازی کنیم. ➖ این امکان برای مانیتورینگ و همچنین برگرداندن داده‌های حذف شده مفید است ولی باید در نظر داشت که این امکان باعث بالارفتن سریع حافظه دیتابیس می‌شود. ➖ مایکروسافت در آخرین ورژن EF Core یعنی EF Core 6 این قابلیت را فراهم کرده‌است که به واسطه EF هم بتوانیم از این قابلیت SQL استفاده کنیم. برای این که جدول مورد نظر از این ویژگی برخوردار باشد باید توسط Fluent Api این کار را انجام دهیم: modelBuilder .Entity<Product>() .ToTable("Products", b => b.IsTemporal()); جهت کسب اطلاعات بیشتر در مورد این ویژگی و نحوه استفاده از آن می‌توانید از این لینک استفاده کنید. ⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید. #حامد_حاجیلو (لینکدین) کانال تلگرام: @SoftwarePhilosophy ________
52 · 6.4K ·
م
محمد جواد ابراهیمی
Link
click to show
انتقال داده ها به واسطه Azure Service Bus امروزه سرعت انتقال داده‌ها از اهمیت بالایی برخوردار است. برای مثال فرض کنید پروژه شما شامل ۲ اپلیکیشن مجزا از هم است که هر دوی آنها از یک دیتابیس مشترک برای داده‌های خود استفاده می‌کنند. اپلیکیشن ۱ بر روی داده‌ها تغییراتی انجام می‌دهد و اپلیکیشن ۲ از این تغییرات استفاده می‌کند. در حالت عادی اپلیکیشن ۲ برای استفاده از داده‌هایی که قبلا توسط اپلیکیشن ۱ لود شده بود بایستی یک بار دیگر کوئری‌ای بر روی دیتابیس بزند و دیتاها را مجدد لود کند. اما این روش دوباره کاری است و بهینه نیست. یک راه حل بهتر استفاده از message broker ها است. تعریف خیلی ساده آن هم مفهوم صف است. یک صف (Queue) که خارج از اپلیکیشن‌های ما قرار دارد. برای مثال Apache Kafka٬RabbitMQ٬Google Cloud Pub/Sub و ... از جمله معروف‌ترین message broker موجود هستند. یکی از بهترین message broker های موجود٬ Azure Service Bus است. این سرویس قابلیت‌هایی فراتر از یک صف معمولی دارد، که از جمله مهمترین آنها می‌توانیم به قابلیت جلوگیری از ارسال داده‌های تکراری و استفاده چندین subscriptions از یک topic را نام ببریم. البته به صورت پیشفرض (پلن رایگان) از Topic نمیتوانیم استفاده کنیم و صرفا از همان مفهوم Queue می‌شود استفاده کرد. در این ویدیو نحوه استفاده از Azure Service Bus آموزش داده شده است. ⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید. #حامد_حاجیلو (لینکدین) کانال تلگرام: @SoftwarePhilosophy ________
44 · 7.9K ·
م
محمد جواد ابراهیمی
Link
click to show
امکانات LINQ در NET 6. ✅ ۱- امکان مشخص کردن مقدار پیش‌فرض در OrDefault* var item1 = list1.FirstOrDefault(i => i == 4, -1); // -1 var item2 = list2.SingleOrDefault(i => i == "Item2", "Not found"); // Not found ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ✅۲- متدهای جدید با مدل By*: - MinBy - MaxBy - DistinctBy - ExceptBy - IntersectBy - UnionBy List<Product> products = new() { new() { Name = "Product1", Price = 100 }, new() { Name = "Product2", Price = 5 }, new() { Name = "Product3", Price = 50 }, }; Product theCheapestProduct = products.MinBy(x => x.Price); Product theMostExpensiveProduct = products.MaxBy(x => x.Price); Console.WriteLine(theCheapestProduct); // Output: Product { Name = Product2, Price = 5 } Console.WriteLine(theMostExpensiveProduct); // Output: Product { Name = Product1, Price = 100 } ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ✅۳- متد کاربردی Chunk : IEnumerable<int> numbers = Enumerable.Range(1, 505); IEnumerable<int[]> chunks = numbers.Chunk(100); foreach (int[] chunk in chunks) { Console.WriteLine($"{chunk.First()}...{chunk.Last()}"); } // Output: // 1...100 // 101...200 // 201...300 // 301...400 // 401...500 // 501...505 ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ✅۴- تابع Zip int[] numbers = { 1, 2, 3, 4, }; string[] months = { "Jan", "Feb", "Mar" }; string[] seasons = { "Winter", "Winter", "Spring" }; var test = numbers.Zip(months).Zip(seasons); foreach ((int, string, string) zipped in numbers.Zip(months, seasons)) { Console.WriteLine($"{zipped.Item1} {zipped.Item2} {zipped.Item3}"); } ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ✅۵- پشتیبانی از Index در تابع ElementAt : IEnumerable<int> numbers = new int[] { 1, 2, 3, 4, 5 }; int last = numbers.ElementAt(^0); Console.WriteLine(last); // 5 ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ✅۶- پشتیبانی از Range در تابع Take : var taken1 = numbers.Take(2..4); ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ✅۷- جلوگیری از شمارش تایپ‌های غیر Enumerable: numbers.TryGetNonEnumeratedCount(out int count) ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ https://raygun.com/blog/linq-net-6-improvements/ ⁉️ برای بحث و تبادل نظر فنی د
160 · 10.5K ·

An open public feed from the search index ChatCrawler — “Google for public Telegram”; refreshed as the venue is crawled. Times are UTC.

Public content only, official Telegram API. About · FAQ · What we do not do · Remove a page · Catalog · Search · How we count