ru
Feedback
کدهک

کدهک

Открыть в Telegram

آموزشگاه تخصصی دات نت https://codehaks.com لینکدین : https://www.linkedin.com/in/codehaks یوتیوب: https://www.youtube.com/@codehaksfa ارتباط با مدیر : Admin: @codehak Email: ghods.hakim@hotmail.com call: 09380146555

Больше
1 820
Подписчики
Нет данных24 часа
-17 дней
-1030 день
Архив постов
آموزش RabbitMQ و پیاده سازی الگوی Messaging در این ویدیو به معرفی RabbitMQ می پردازیم و نحوه استفاده از آن را در NET Core. بر
آموزش RabbitMQ و پیاده سازی الگوی Messaging در این ویدیو به معرفی RabbitMQ می پردازیم و نحوه استفاده از آن را در NET Core. بررسی می کنیم. از RabbitMQ به عنوان Message Broker استفاده میشود که میتواند پیامها را درون صف نگه دارد و به ترتیب در اختیار سایر سرویس ها قرار دهد. این ابزار در پیاده سازی Distributed System ها و میکروسرویس ها کاربرد زیادی دارد. https://codehaks.com/go/fpw

متدهای جنریک در سی شارپ https://youtu.be/eP1WyWp2psc
متدهای جنریک در سی شارپ https://youtu.be/eP1WyWp2psc

✅ 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 اینم مثل همون اولی میمونه و کلی قابلیت و بهبود باحال و کاربردی به صفحات ریپازیتوری اضافه میکنه و کار کردن با اونها رو خیلی راه دست تر 🔸به شخصه این لیست جز باید های منه و خیلی سال هست که ازشون استفاده میکنم و بسیار راضی ام. واسه دیدن اطلاعات بیشتر در مورد قابلیت هاشون حتما لینک هاشون رو ببینید. در ضمن این افزونه ها برای روی مروگر Chrome هستند و قاعدتا روی Edge هم قابل نصب هستند __________________ @DotNetZoom

در این ویدیو به معرفی دیتابیس PostgreSQL می پردازیم و در یک پروژه ASP NET Core برای ذخیره اطلاعات Identity استفاده می کنیم. h
در این ویدیو به معرفی دیتابیس PostgreSQL می پردازیم و در یک پروژه ASP NET Core برای ذخیره اطلاعات Identity استفاده می کنیم. https://youtu.be/g653GWxtdiE

چگونه از یک کلاس به عنوان Configuration استفاده کنیم؟ https://youtu.be/IL5WP1XvOrM
چگونه از یک کلاس به عنوان Configuration استفاده کنیم؟ https://youtu.be/IL5WP1XvOrM

برنامه نویسان Clojure بالاترین حقوق را دریافت می کنند. به طور کلی زبان های Functional سطح درآمدی بیشتری دارند.
برنامه نویسان Clojure بالاترین حقوق را دریافت می کنند. به طور کلی زبان های Functional سطح درآمدی بیشتری دارند.

از بین رای بیش از 55 هزار نفر فریم ورک Net Core محبوب ترین فریم ورک انتخاب شده است.
از بین رای بیش از 55 هزار نفر فریم ورک Net Core محبوب ترین فریم ورک انتخاب شده است.

طبق نظرسنجی Stack overflow در ۲۰۲۱ برای پنجمین سال متوالی Redis محبوب ترین دیتابیس انتخاب شده است. همچنین امسال PostgreSql از
طبق نظرسنجی Stack overflow در ۲۰۲۱ برای پنجمین سال متوالی Redis محبوب ترین دیتابیس انتخاب شده است. همچنین امسال PostgreSql از MongoDb عبور کرد و در جایگاه دوم قرار گرفت.

✅ ساخت چت روم با 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

دسترسی آسان و سریع به تنظیمات درون سیستم و اپلیکیشن از بایدهای یک فریم ورک تحت وب است. در ASP NET Core می توانید از IConfigur
دسترسی آسان و سریع به تنظیمات درون سیستم و اپلیکیشن از بایدهای یک فریم ورک تحت وب است. در ASP NET Core می توانید از IConfiguration برای اینکار استفاده کنید. https://youtu.be/2EwUOB6IPMw

معرفی ویژگی Records در C# 9.0: کار با داده‌های تغییر ناپذیر 🔸 کار کردن با داده‌های تغییر ناپذیر بسیار قدرتمند است، اغلب منجر به باگ‌های کمتری می‌شود، و شما را مجبور می‌کند تا اشیا را تبدیل به اشیای جدید کنید به جای اینکه اشیای موجود را اصلاح کنید. توسعه دهندگان #F به این عادت کرده‌اند، زیرا #F همه چیز را به طور پیش‌فرض به عنوان تغییرناپذیر در نظر می‌گیرد. حالا شما انواع تغییر ناپذیر را در C# ۹.۰ نیز دارید، یا به اصطلاح انواع record نامیده می‌شود. Records کار با داده‌های تغییر ناپذیر در #C را برای شما آسان‌تر می‌کند. ❇️ از طریق لینک زیر می‌توانید ترجمه مقاله‌ای از Thomas Claudius Huber که به بررسی این ویژگی و جزییات بیشتر پرداخته مطالعه کنید: #سپهر_اسلامی https://vrgl.ir/1zp5a _____________ @DotNetZoom

مقایسه Eager Loading با Lazy Loading در EF Core 5.0 https://youtu.be/pWiXfx7b4-M
مقایسه Eager Loading با Lazy Loading در EF Core 5.0 https://youtu.be/pWiXfx7b4-M

برنامه نویسی برداری در دات نت و آشنایی با SIMD https://youtu.be/s9AKgcw6Gf0
برنامه نویسی برداری در دات نت و آشنایی با SIMD https://youtu.be/s9AKgcw6Gf0

تزریق وابستگی با تاخیر در ASP NET Core با کمک AutoFac https://youtu.be/b7SEJRzOpSU
تزریق وابستگی با تاخیر در ASP NET Core با کمک AutoFac https://youtu.be/b7SEJRzOpSU

❇️ نکاتی در مورد کار با PDF در دات نت و برترین کتابخانه های آن کتابخونه های کار با pdf به 2 دسته کلی تقسیم میشن 🔸دسته اول کتابخونه هایی هستند که باهاشون میشه فایل های PDF رو خوند، محتواشو Extract کرد، Edit کرد و یا فایل جدید ساخت از معروف ترین این کتابخونه ها میشه به ترتیب به موارد زیر اشاره کرد ✔️iTextSharp ✔️iTextSharp.LGPLv2.Core ✔️itext7 ✔️PdfSharpCore معروف ترین شون iTextSharp هست که فقط NET Framework Full. رو پشتیبانی میکنه اما وحید نصیری یه نسخه port شده ازش رو برای NET Core. رو براش درست کرده به نام iTextSharp.LGPLv2.Core همچنین کتابخونه itext7 که توسط سازنده iTextSharp توسعه داده شده و به عنوان نسخه بعدی iTextSharp و با پشتیبانی از NET Core. اون رو توسعه داده و توصیه میکنه از itext7 استفاده کنین. 🔹دسته دوم کتابخونه هایی هستند که میتونن محتوای یه صفحه html (شامل المان ها و css ها و ...) رو به صورت PDF رندر کنن و خروجی PDF ازشون بگیرن از جمله معروف ترین این کتابخونه ها میشه به ترتیب به موارد زیر اشاره کرد ✔️DinkToPdf ✔️itext7.pdfhtml ✔️Rotativa.AspNetCore ✔️Wkhtmltopdf.NetCore طرز کار همشونم به این صورته که اینا معمولا wrapper ایی بر روی کتابخانه wkhtmltopdf هستند که کارش Render کردن خروجی html به pdf هست و پشت صحنه هم از موتور Qt WebKit استفاده میکنن که یک Browser Engine سورس باز هست 🔸اکثر مواقع نیاز برنامه نویسا همین دسته دوم هست. معمولا میخوان از گزارشاتشون خروجی pdf بگیرن که دسته دوم گزینه راحت تری هست چرا که اینجا ما دیگه با یه صفحه html+css سرو کار داریم و خیلی راحت میتونیم هر فرم و جدولی رو که بخوایم طراحی کنیم و وقتی از خروجی html ایی اون مطمئن شدیم اون رو به pdf تبدیل کنیم دسته اول معمولا کاربرد خاص تری دارند. مثلا اگه بخواین فایل pdf تون رو بخونین، محتواش رو پردازش یا ویرایش کنین یا مثلا ساخت صفحاتتون رو خیلی سفارشی سازی کنین باید از کتابخونه های دسته اول استفاده کنین یه سری کتابخونه قدرتمند دیگه هم هستند مثل Aspose و Syncfusion ولی چون اونا پولی هستند و نسخه رایگانشون محدودیت داره تو لیست نیاوردمشون _______________ @DotNetZoom

در زبان سی شارپ کامپایلر Roslyn وظیفه ی Parse کردن و اعلام خطاهای Syntax را به عده دارد. در ادامه بهینه سازی انجام میدهد و کد
در زبان سی شارپ کامپایلر Roslyn وظیفه ی Parse کردن و اعلام خطاهای Syntax را به عده دارد. در ادامه بهینه سازی انجام میدهد و کد میانی یا Intermediate Language را تولید می کند. این همان فایل dll یا exe برنامه ی شماست. سپس در هنگام اجرا بسته به اینکه از چه پردازنده ای استفاده می کنید Just In Time Compiler دات نت که به RyuJIT معروف است شروع به کار میکند و در لحظه اجرای برنامه کد ماشین را تولید می کند. استفاده از JIT کمک می کند برنامه به سخت افزار وابستگی مستقیم نداشته باشد و مجبور نباشیم برای هر سیستم عامل و سخت افزار جدا فایل جداگانه ای تولید کنیم. در بعضی برنامه ها برای بالا بردن پرفورمنس از دستورات برداری استفاده میشود. چنانچه پردازنده از این دستورات پشتیبانی نکند برنامه خیلی کندتر از حالت بدون بردار اجرا میشود. یکی از مشکلاتی که RyuJIT حل میکند بهینه سازی SIMD است. این ابزار می تواند بر اساس قابلیت های پردازنده کدهای برداری را به کدهای معمولی تبدیل کند تا حداکثر پرفورمنس بدست آید.

اجرای چند عملیات Async به صورت همزمان https://youtu.be/d-CpJeeHF4s
اجرای چند عملیات Async به صورت همزمان https://youtu.be/d-CpJeeHF4s

بهبود SEO سایت های AspNet Core توسط کتابخانه SeoTags به کمک قابلیت Structred Data و JSON-LD قابلیت Structured Data یکی از مباحث پیشرفته SEO هست که با تعریف ساختار صفحه به موتور های جستجو کمک میکنه محتوای صفحه شما رو بهتر متوجه بشن و نمایش بدن. نمونه نمایش نتایج در صفحه سرچ گوگل این موضوع رو میتونین از این لینک مشاهده کنین. همانطور که میبینین بعضی موارد به صورت rich result نمایش داده میشوند. گوگل داکیومنت کاملی در مورد پیاده سازی Structured Data داره که از این لینک میتونین مشاهده کنین. پیاده سازی این قابلیت توسط یکی از سه روش زیر انجام میشه 1- روش JSON-LD 2- روش Microdata 3- روش RDFa روش اول یعنی JSON-LD روش پیشنهادی گوگل هست و در اون محتوای صفحه به صورت json در قالب استاندارد Schema.org درون یک تگ script از نوع application/ld+json تعریف میشه. که در این لینک میتونین نمونه پیاده سازیش رو برای یک product مشاهده کنین. در روش های Microdata و RDFa هم محتوای صفحه در قالب attribute هایی بر روی تگ های html نشانه گذاری میشن. داکیومنت گوگل یک قسمت از نحوه پیاده سازی این مورد برای مثال های پرکاربرد از جمله Article و Product و Book و ... نیز ارائه کرده. حالا کتابخانه SeoTags از JSON-LD هم پشتیبانی میکنه و علاوه بر تولید تمام تگ های SEO برای سایت شما، محتوای JSON-LD رو هم خروجی میده. داکیومنت استفاده از این کتابخانه برای تولید تگ های meta و link و... در اینجا مشاهده کنید. و نمونه استفاده از قابلیت JSON-LD رو هم در اینجا و اینجا مشاهده کنید. https://mjebrahimi.github.io/SeoTags/ __________________ @DotNetZoom

بررسی نقش کلمه کلیدی await در برنامه نویسی Async در دات نت و ASP NET Core https://youtu.be/4sscBQdVrfI
بررسی نقش کلمه کلیدی await در برنامه نویسی Async در دات نت و ASP NET Core https://youtu.be/4sscBQdVrfI

مفهوم Expression Tree در دات نت میشه گفت یکی از advanced ترین قسمت های دات نت، مفهوم Expression Tree و کلاس Expression هست که یه جورایی قلب IQueryable رو هم تشکیل میده شاید نهایت استفاده افراد، کار با <<Expression<Func برای شرط های predicate بر روی متد Where و یا selector برای متد Select باشه ولی Expression خیلی بزرگتر از اینهاست 🔸درواقع مفهوم Expression Tree به مجموعه از از node ها در قالب یک ساختار درختی گفته میشه که هر node اون، خود یک Expression هست. اما خود Expression چیه؟ درواقع هر Expression یک operation (عملیات) برنامه نویسی رو بیان میکنه. توسط کلاس Expression در دات نت میتوان برای هر عملیات برنامه نویسی یک expression ساخت. 🔹به عنوان مثال: - تعریف یک variable (متغیر)، constant یا parameter (پارامتر ورودی متد) - انتصاب یک مقدار به یک variable یا parameter - جمع، تفریق، ضرب، تقسیم و... کردن دو مقدار - تعریف یک شرط (if/else) یا سویچ (switch) منطقی - تعریف یک حلقه (for یا while) - بازگرداندن (return کردن) خروجی متد - فراخوانی یک متد، پاس دادن پارامتر های ورودی و گرفتن مقدار خروجی - و... اکثر کار هایی که شما توسط کد نویسی میتونین انجام بدین 🔸فرق expression با کد نویسی معمولی برای operation های برنامه نویسی اینه که توسط Expression میتوان یک ساختار (data structure) قابل توصیف برای کد ها ایجاد کرد. در نتیجه میتوان از روی این ساختار قابل توصیف، کار های متفاوت و خلاقانه ای انجام داد. مثلا میشه از روی ساختار کد هامون Transpilation انجام بدیم و کوئری (مثلا SQL) معادل اون رو تولید کرد. 🔹در واقع هنگامی که شما یک عبارت lambda رو به یکی از متد های linq که ورودی <Expression<Func داره پاس میدین، پشت صحنه به هنگام Compile یک LambdaExpression از روی عبارت lambda شما ساخته میشه و اون هست که به متد شما پاس داده میشه. چرا؟ چون که ساختار کد شما رو لازم داره تا بتونه از روی اون Transpilation انجام بده و کوئری (مثلا SQL) معادل اون رو تولید کنه. (این مثال رو ببینید) 🔸یا حتی میتوان به کمک Transpilation، از روی یک expression یک عبارت readable (خوانا) جهت توصیف کاری که قراره انجام بده تولید کرد. همانند کاری که کتابخانه ReadableExpressions کرده و توسط افزونه ویژوال استادیو ReadableExpressions.Visualizers این امکان رو میده که به هنگام دیباگ بتونین یک readable view از روی expression هاتون ببینید 🔹کار دیگه ای که توسط Expression میشه انجام داد. تولید کد IL (مخفف Intermediate Language) از روی اون هست. مثلا شما نمیتونین توسط Reflection حتی، یک متد جدید (شامل مجمومه ای از operation ها) ایجاد کنین ولی توسط Expression میتونین به جای اینکه کد شما به هنگام compile تبدیل به IL بشه، اون رو به هنگام run-time (در زمان اجرای برنامه) از روی همون expression (که یک ساختار قابل توصیف از یک تیکه کد هست) به کد IL تبدیل کنین یا اصطلاحات Emit کنین (بیرون بدین) در نتیجه میتونین به هنگام run-time کد جدید تولید کنین و این همون تکنیکی هست که کتابخانه های Object Mapper از جمله AutoMapper و Mapster و... از اون استفاده میکنن 🔸گفتم Emit، جا داره از Reflection.Emiit هم یادی بکنیم که پایه ای ترین روش برای تولید کد IL در زمان run-time هست و میشه Expression رو به عنوان یک wrapper روی Reflection.Emit محسوب کرد که کار با اون رو ساده تر میکنه. هرچند کار هایی میشه با Reflection.Emit انجام داد که توسط Expression Tree نمیشه انجام داد (و بلعکس) پس اینجا به هیچ عنوان جایگزین هم نیستند بلکه فقط توی تولید کد IL وجه مشترک دارند. 🔰 جمع بندی قابلیت Expression Tree یک قابلیت پیشرفته هست و نیاز اکثر افراد نمیشه ولی مزایای غیر قابل چشم پوشی ایی رو به ما میده که حرفه ای ها میتونین کار جالبی باهاش بکنن. توسط این قابلیت که یکی از جذاب ترین امکانات دات نت هست میتونین کار های جالبی انجام بدین از جمله: 1️⃣ گردش روی node ها و فهمیدن ساختار کد (MetaProgramming) 2️⃣ ترجمه کد ها به یک زبان دیگر (Transpilation) 3️⃣ تولید کد IL از روی اون (Code Generation) 💎در آخر یکی از بهترین مقالاتی که این مفهوم رو به خوبی به همراه مثال توضیح داده مقاله زیر هست که پیشنهاد میکنم حتما بخونین https://tyrrrz.me/blog/expression-trees ____________________ @DotNetZoom