fa
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 821
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-17 روز
-1030 روز
آرشیو پست ها
آشنایی با xUnit و نحوه پیاده سازی تست واحد در دات نت https://tinyurl.com/cdhks-xunt
آشنایی با xUnit و نحوه پیاده سازی تست واحد در دات نت https://tinyurl.com/cdhks-xunt

🔈🤑 تخفیف 40% کلیه پکیج های آموزش ویدئویی برنامه نویس - ویژه روز برنامه نویس کد تخفیف: DevDay1399 تاریخ انقضای کد تخفیف فوق: یکشنبه، 23 شهریور 99، ساعت 12 شب لازم به ذکر است قیمت پکیج های آموزشی نیز جهت رفاه حال شما عزیزان کاهش یافته است، بدین صورت که پس از اعمال کد تخفیف فوق، قیمت هر یک از پکیج های ASP.NET MVC و ASP.NET Core و Angular 8 مبلغ 90.000 تومان، قیمت پکیج سی شارپ سطح 1 مبلغ 60.000 تومان، و پکیج های آموزش مفاهیم وب مبلغ 30.000 تومان خواهد بود. همچنین، آموزش های ارائه شده در پکیج های آموزش ASP.NET Core، بدون هیچ تغییری در ASP.NET Core 3.1 نیز قابل استفاده است. با تقدیم احترام #مهدی_کرامتی #تخفیف @barnamenevis_net @barnamenevis_org

شروع کار با SignalR Core در این مجموعه 8 قسمتی و در 30 دقیقه به آموزش برنامه نویسی Real-time در ASP NET Core می پردازیم. تماش
شروع کار با SignalR Core در این مجموعه 8 قسمتی و در 30 دقیقه به آموزش برنامه نویسی Real-time در ASP NET Core می پردازیم. تماشا در یوتیوب : https://tinyurl.com/cdhks-signalr-core

❇️ مجموعه آموزش های Microservices در NET Core. اگر در اینترنت به دنبال آموزش های Microservices گشته باشین متوجه میشین که اکثر
❇️ مجموعه آموزش های Microservices در NET Core. اگر در اینترنت به دنبال آموزش های Microservices گشته باشین متوجه میشین که اکثر مقالات یا به صورت کلی و عمومی هستند (نه مختص دات نت) و یا برای زبان های دیگه اند و در نهایت اونایی هم مختص دات نت باشن به صورت پراکنده در فضای اینترنت پخش شده اند علاوه بر این، مبحث Microservices دارای موضوعات متعدد و بزرگی هست و نمیشه اون رو با یک یا چند مقاله جسته و گریخته یاد گرفت واسه همین به یک سری آموزش نیاز دارید. همچنین بعد از یادگیری مفاهیم پایه این مبحث، بهترین چیزی که میتونه شما رو بر روی این موضوع مسلط کنه، بررسی سورس نمونه پروژه های واقعی که بر پایه Microservices و NET Core. نوشته شده اند هست 🔰ریپازیتوری زیر سعی کرده بهترین آموزش های Microservices که مختص NET Core. هستند رو گردآوری کنه و در پایان لیستی از پروژه های سورس باز گیتهاب که با این معماری نوشته شده اند رو جمع آوری کنه اگر علاقمند به یادگیری Microservices در NET Core. هستید این بهترین منبع رایگانی هست که میتونه به شما کمک کنه https://github.com/mjebrahimi/Awesome-Microservices-NetCore __________ @DotNetZoom

آشنایی با Git در Visual Studio در این مجموعه ویدیو ها به معرفی ابزار و قابلیت های Git در Visual Studio می پردازیم و نحوه استف
آشنایی با Git در Visual Studio در این مجموعه ویدیو ها به معرفی ابزار و قابلیت های Git در Visual Studio می پردازیم و نحوه استفاده از آن را در ASP NET Core بررسی می کنیم. https://codehaks.com/go/pra

3️⃣1️⃣ سطح معلومات خود رو مدام افزایش دهید، توانایی درک مسائل و حل آن‌ها بسیار مهم است. 4️⃣1️⃣ به‌روز رسانی ابزار‌ها را جدی بگیرید و مدام مستندات مراجع رو مطالعه کنید. 5️⃣1️⃣ زبان‌های برنامه‌نویسی را ابزار‌های موجود در جعبه ابزار خود بدانید و از هر کدام در جای مناسب استفاده کنید. 6️⃣1️⃣ شکرگزار باشید و از تلاش منصرف نشوید، من قبلاً در مقالات و کتاب‌های خود به این موضوع اشاره کرده‌ام، زمانی که خسته شده‌اید و احساس می‌کنید توان ادامه ندارید، در این لحظه شک نکنید، که شما به موفقیت بسیار نزدیک شده‌اید. #نکته #پند #توصیه #نکات #مشاوره #رایگان #برنامه‌نویس #برنامه‌نویسی #مشتری #اصول [ @KambizAsadzadeh ]

یکی از مشکلاتی که این روز‌ها بسیار دیده می‌شود، این است که چگونه باید قیمت بدیم و چطور با مشتری برخورد کنیم! برنامه‌نویس حرفه‌ای و واقعی هیچ‌گاه پشت تلفن و با یک جلسه ملاقات هزینه و زمان برای انجام پروژه را مشخص نمی‌کند. بر خلاف انتظاری که مشتری از شما دارد، به هیچ عنوان نباید هزینه‌های زمانی و مالی را بدون تجزیه تحلیل اولیه بیان کنید. چرا که اگر مشتری شما واقعاً مصمم در انجام پروژه‌ای باشد که هدفمند است، در این صورت حتماً از شما انتظار یاری و مشاروهٔ را خواهد داشت. بنابراین توصیه می‌کنم، شدیداً به این نکته توجه داشته باشید که به هیچ عنوان در ملاقات اولیه و یا حتی در پشت تلفن قیمت و زمان برای پروژهٔ پیشنهادی از طرف مشتری ارائه نکنید. این نشان‌گر این است که شما به اندازهٔ کافی به زمان، مهارت و تخصص خود مطمئن نیستید. پیشنهاد می‌شود هر پروژه‌ای که به شما پیشنهاد شد، آن رو در یک زمان مناسب بررسی و مواردی که فکر می‌کنید نیاز است مشتری در جریان آن قرار بگیرد را به زبان ساده‌تر به او انتقال دهید. 1️⃣ ابتدا نیاز مشتری را به خوبی درک کنید، در قدم بعدی بررسی زمانی و سپس بررسی روش‌ها و ابزار‌هایی که قرار است در توسعهٔ پروژه مورد استفاده برار بگیرد را برای خودتان مشخص کنید. 2️⃣ مهارت خود را همراه با دانش، اطلاعاتِ تکیه بر تجربیات خود برای پیاده‌سازیِ پروژهٔ پیشنهادی مرور کرده و آن را بر اساس نتیجهٔ حاصل شده ارزیابی کنید. 3️⃣ زمانی را که در طی چند ساعت، روز، هفته و ماه نیاز دارید به طور تقریبی و نزدیک به واقعیت محاسبه کنید. (زمان از نظر مشتری بسیار مهم است، او انتظار دارد در زمانی که شما طی کرده‌اید به نتیجه برسد). 4️⃣ قیمت را به صراحت و جدی برای مشتریِ خود مشخص کنید (مشخص کردن قیمت ترسی ندارد و شما باید واقعیت را بیان کنید) مهم نیست که مشتری چه واکنشی نشان خواهد داد. شما واقعیت را بیان کنید (بیان کردن واقعیت یعنی یک قدم برای تعریف ارزش برنامه‌نویسی به طرف مقابل) تا دیگر فرصتی برای بی ارزش کردن کار شما وجود نداشته باشد. 5️⃣ اگر مشتری با شنیدن هزینهٔ پیشنهادی شما جهت انجام کار شروع به مثال آوردن از برنامه‌نویسانی کرد که متخصص در این حوزه نیستند، مطمئن شوید که او ارزش پروژهٔ خود را به خوبی نمی‌داند. (اگر مشتری شخصیت انتقاد پذیری داشته باشد، می‌توانید او را قانع کنید که کاملاً در اشتباه است) در غیر این صورت نباید در مورد هزینه‌ها اصرار و تأکید داشته باشد، چرا که هزینه‌ها بر اساس نیاز‌ها و معیار های واقعی مطرح می‌شوند. 5️⃣ تخفیف در برنامه‌نویسی در قدم اول معنی ندارد! در همان لحظه که احساس می‌کنید مشتریِ شما بیشتر به فکر هزینه است تا به فکر کیفیت، شک نکنید که در نهایت رضایت دو جانبه‌ای وجود نخواهد داشت! چون این قرارداد یک طرفه و صرفاً بر اساس هزینه‌ها بسته می‌شود. 6️⃣ به مشتری اطمینان خاطر بدهید که پروژهٔ او در بهترین حالت ممکن تولید خواهد شد! اگر بتوانید و اگر مهارت شما در حدی باشد که محصولی مشابه محصولات استاندارد و جهانی بسازید شک نکنید که موفق خواهید شد. تأکید می‌کنم مشتری در قدم اول هیچ کاری با کد‌های شما ندارد و صرفاً منتظر نتیجه‌ای است که باید ببیند و آن را حس و درک کند. 7️⃣ مشاوره را در هر مرحله از توسعهٔ پروژه در نظر بگیرید، سعی کنید نظرات مشتری را در مباحث تجربه‌کاربری گوش بدهید، اما اجازه ندهید در مورد مباحث فنی نظری را ارائه کنند! مگر دلایل قانع کننده و اساسی که در شرایط خاص توسط مشاورین فنی در پروژه‌های بزرگ و اساسی پیشنهاد می‌شود. 8️⃣ در صورتی که در داخل یک تیم کار می‌کنید، تعامل تنها روش ممکن برای موفقیت است! بحث و جدال با هم‌تیمی‌ها هیچ فایده‌ای به جز نا رضایتی نخواهد داشت. 9️⃣ اگر با مشکلاتی مواجه می‌شوید که باعث می‌شود شما کم کاری کنید آن را باید مدیریت کنید! نگذارید مشتری شما احساس کند که هر موقع حوصله داشتید روی پروژهٔ او کار می‌کنید. بنابراین برای حفظ ارزش‌ها و درک برای احترام‌های متقابل حتماً از برنامهٔ زمان‌بندی شده برای مشتری خود ارائه کنید. 0️⃣1️⃣ عقد قرارداد و تفاهم نامه در رابطه با عدم افشای اطلاعات مهم است! اگر می‌خواهید حرفه‌ای باشید و با شما حرفه‌ای رفتار شود همیشه خودتان پیش قدم برای عقد قرارداد‌های تضمین شده برای دو طرف را باشید. 1️⃣1️⃣ سعی کنید پروژه‌ای که واقعاً آن را دوست ندارید را انجام ندهید! برنامه‌نویسی باید همراه با لذت باشد، در غیر این صورت کار بر روی آن بسیار خسته‌کننده خواهد بود که باعث ناراحتی و مشکلات احتمالی خواهد شد؛ بنابراین سعی کنید توسعهٔ پروژه برای شما جذاب و لذت‌ بخش باشد. 2️⃣1️⃣ برنامه‌نویسی شغل بسیار موثر و سطح بالایی در این دوره زمانه است، بنابراین طوری رفتار کنید که در شأن آن هستید و قدر آن را بدانید. [ @KambizAsadzadeh ]

آیا در همه پروژه هایی که برنامه نویس ها اینقدر به خودشان زحمت میدن لایه بندی ها و پیاده سازی الگوهایی مثل Unit of Work و Repository و ... میدن و در حین انجامش کلی درگیری های مختلف پیدا می کنند، آیا وجود این همه لایه و دردسرهای تحمیلی حاصله ضرورت داره؟
Anonymous voting

آموزش MongoDb در ASP.NET Core قسمت دوم در این قسمت به ادامه پیاده سازی پروژه می پردازیم و قابلیت ویرایش و حذف را به آن اضافه
آموزش MongoDb در ASP.NET Core قسمت دوم در این قسمت به ادامه پیاده سازی پروژه می پردازیم و قابلیت ویرایش و حذف را به آن اضافه می کنیم. https://codehaks.com/go/mng2

بهینه سازی GC در دات نت در سی شارپ پاکسازی حافظه به عهده GC است. در این ویدیو به بررسی اثر منفی استفاده از Large Object Heap
بهینه سازی GC در دات نت در سی شارپ پاکسازی حافظه به عهده GC است. در این ویدیو به بررسی اثر منفی استفاده از Large Object Heap در پرفورمنس می پردازیم و سعی می کنیم از آن دوری کنیم. https://codehaks.com/go/loh

آموزش MongoDb در ASP.NET Core - قسمت اول دیتابیس MongoDb از نوع NoSQL است که اطلاعات را صورت اسناد ذخیره می کند. این دیتابیس
آموزش MongoDb در ASP.NET Core - قسمت اول دیتابیس MongoDb از نوع NoSQL است که اطلاعات را صورت اسناد ذخیره می کند. این دیتابیس در سالهای اخیر محبوبیت زیادی پیدا کرده و در بسیاری از پروژه های کوچک و بزرگ مورد استفاده قرار گرفته است. در این مجموعه به آموزش پیاده سازی وب سایت ASP.NET Core روی دیتابیس MongoDb می پردازیم. https://codehaks.com/go/mng1

استفاده از پروکسی داخل پروژه های دات نت Framework Full https://goo.gl/4JbeYW خب وقتی پروکسی سرور خودتون رو راه انداختین باید کاری کنین که تمام درخواست های وبسایت شما (مثلا درخواست ارسال نوتیفیکشن تلگرام) از طریق پروکسی سرور شما ارسال بشه نه توسط خود وبسایتتون (یعنی Default Proxy پروژه تون رو عوض کنین) تو NetFramework Full به صورت زیر عمل میکردیم WebRequest.DefaultWebProxy = new WebProxy("http://127.0.0.1:9050", BypassOnLocal: true) { UseDefaultCredentials = true }; - فیلد BypassOnLocal مشخص میکنه که درخواست های local (محلی) از طریق پروکسی عبور نکنه و مستقیما ارسال بشه. - توسط خاصیت BypassList و BypassArrayList میشه لیستی از ادرس هایی رو مشخص کرد که برای درخواست اونها اون ها پروکسی استفاده نشه. - خاصیت UseDefaultCredentials مشخص میکنه که از Credentials پیشفرض استفاده کنه که در حالت عادی یعنی Username و Password جهت احراز هویت پروکسی سرور ارسال نمیشه. - اگه پروکسی سروو شما دارای Username و Password باشه باید اون رو داخل خاصیت Credentials شی WebProxy ست کنین. WebRequest.DefaultWebProxy = new WebProxy("http://127.0.0.1:9050", BypassOnLocal: true) { Credentials = new NetworkCredential("username", "password") }; ست کردن مقدار WebRequest.DefaultWebProxy باعث میشه پروکسی پیشفرض پروژه تغییر کنه و از این به بعد تمام درخواست ها (به جز Local به دلیل Bypass در این مثال) از طریق پروکسی ارسال و دریافت بشه. همچنین مشابه تنظیمات بالا رو میتونین از طریق WebConfig به صورت زیر انجام بدین <configuration> <system.net> <defaultProxy> <proxy proxyaddress="http://127.0.0.1:9050" bypassonlocal="true" usesystemdefault="true"/> </defaultProxy> </system.net> </configuration> اما این روش (DefaultProxy) باعث میشه درخواست های کل سیستم از طریق پروکسی ارسال و دریافت بشه درصورتی که نیاز دارین فقط برای یک درخواست خاص (مثل ارسال نوتیفیکیشن توسط api تلگرام) از پروکسی استفاده کنین و نه تمام درخواست ها باید به صورت زیر عمل کنین WebProxy proxy = new WebProxy("http://127.0.0.1:9050",true); WebRequest request = WebRequest.Create("http://www.contoso.com"); request.Proxy = proxy; _______________ @DotNetZoom

دوره آموزش کار با Collection ها در سی شارپ و ASP NET Core پخش در یوتوب : https://kutt.it/rJvT82
دوره آموزش کار با Collection ها در سی شارپ و ASP NET Core پخش در یوتوب : https://kutt.it/rJvT82

آشنایی با ZeroMQ در این ویدیو به معرفی ZeroMQ می پردازیم و نحوه استفاده از آن را در NET Core بررسی می کنیم. برای استفاده از ا
آشنایی با ZeroMQ در این ویدیو به معرفی ZeroMQ می پردازیم و نحوه استفاده از آن را در NET Core بررسی می کنیم. برای استفاده از این ابزار باید پکیچ NetMQ را به پروژه دات نت اضافه کنید و سپس می توانید از ZeroMQ برای ارسال پیام بین چند سرویس یا اپلیکیشن استفاده کنید. https://codehaks.com/go/pju

ارتباط با اکسل در دات نت در این ویدیو به آموزش نحوه کار با COM Interop در dot NET Core می پردازیم. با استفاده از Component Ob
ارتباط با اکسل در دات نت در این ویدیو به آموزش نحوه کار با COM Interop در dot NET Core می پردازیم. با استفاده از Component Object Model میتوانید محیط اکسل را از طریق کد سی شارپ کنترل کنید. ورکبوک جدید ایجاد کنید. درون سلولها محتوایی بنویسید و به صورت فایل ذخیره کنید. https://codehaks.com/go/kve

در این ویدیو یک پروژه ی دمو با دیتابیس RavenDB در ASP Core پیاده می کنیم. https://tinyurl.com/y5z3ak2n
در این ویدیو یک پروژه ی دمو با دیتابیس RavenDB در ASP Core پیاده می کنیم. https://tinyurl.com/y5z3ak2n

افزایش امنیت JWT توسط Refresh Token در ASP NET Core وقتی از Jwt واسه احراز هویت برنامه تون استفاده میکنین سوالی که پیش میاد اینه که زمانی که توکن کاربر Expire (منقضی) شد چی میشه؟! 1️⃣ آیا باید کاربر رو Logout کنیم و ازش بخوایم دوباره لاگین کنه؟ اگه وسط یه عملیات مهم باشه چی؟! همه چی از دست میره که! 🤔 2️⃣ شایدم باید مدت زمان توکن رو زیاد کنیم، مثلا 1 سال !! تا دیر به دیر منقضی بشه. که این عملا بدترین راه حل ممکن هست چرا که اگه توکن به سرقت بره، هکر تا یک سال میتونه هر کاری میخواد با توکن طرف (هویتش) بکنه 😕 3️⃣ یا اینکه یوزر و پسورد طرف رو بگیریم سمت خودمون ذخیره کنیم (مثلا توی localStorage توی وب) و هر موقع توکن اش منقضی شد، زیر پوستی خودمون یوزر پس طرف رو بفرستیم و توکن جدید بگیریم؟! اینم که ضعف امنیتی داره چون یوزر و پس طرف در معرض خطره 🤨 🔰پس راه حل چیه؟ 🔸راه حل استفاده از Refresh Token هست. به این صورت که وقتی طرف برای بار اول میخواد احراز هویت بشه، یوزر و پس اش رو به ما میده و ما 2تا توکن بهش میدیم. یکی access_token که همون Jwt هست و دیگری یک refresh_token که عملا یه متن رندم (مثلا یه Guid) هست این رفرش توکن (guid) توی دیتابیس ما ذخیره شده که به ازای چه کاربری و چه access_token ایی هست، در نتیجه وقتی طرف access_token اش منقضی میشه به جای اینکه لازم باشه 2مرتبه یوزر و پس برای ما بفرسته، با فرستادن refresh_token میتونه یه توکن جدید (شامل یه access_token جدید + یه refresh_token جدید) دریافت کنه که اینطوره ضریب امنیت بالا میره (چون یوزر پس اشو نمیفرسته) 🔹ضمن اینکه هر بار گرفتن access_token توسط refresh_token ، اون access_token قبلی رو غیرفعال میکنه، پس اگر access_token به سرقت بره، با Revoke کردنش توسط refresh_token، غیر قابل استفاده میشه و باز هم ضریب امنیت بالاتر میره 🔸این عملیات هم سمت فرانت یا کلاینت باید پشت پرده و زیر پوستی انجام بشه تا کاربر اصلا متوجه logout و login شدن مجددش نشه. مثلا توی Angular توسط HttpIncerceptor میتونیم قبل از Api Call ها چک کنیم که اگر access_token مون منقضی شده، ابتدا توسط refresh_token، یه توکن جدید بگیریم و بعد Api Call مون رو انجام بدیم 🔰خیلی از دوستان هم میپرسن مدت زمان انقضای access_token و refresh_token چقدر باید باشه؟ 🔹هیچ بایدی وجود نداره و همه جوره زمان میدن بهش. درکل چیزی که مهمه اینه که مدت زمان access_token باید کم باشه و مدت زمان refresh_token بیشتر. مثلا شخصا ترجیح میدم مدت زمان access_token بین 5 دقیقه تا نهایتا 1 ساعت باشه و مدت زمان refresh_token بین 1 هفته تا نهایتا 1 ماه باشه 🔸هرچی کمتر باشه ضریب امنیت بیشتر میشه ولی تعداد ریکوئستا به سرور هم بیشتر میشه البته یه مشکلی که هنگام استفاده از RefreshToken پیش میاد اینه که اگه کاربر توی مدت زمان refresh_token با سایت هیچ تعاملی نداشته باشه که توکن جدید دریافت کنه، مثلا بیشتر از 1 ماه به سایت ما سر نزنه، بعدش کلا logout میشه و باید دوباره توسط User و Pass لاگین کنه (که خب به نظرم منطقی هم هست) ❇️ از بین مقاله های زیادی که برای RefreshToken در ASP Core هست؛ این2تا رو براتون گلچین کردم که خیلی خوب توضیح دادند و اصولی پیاده سازی کردند 1️⃣ https://bit.ly/2ZZ2JwT 2️⃣ https://bit.ly/2ZWTk9o ___________ @DotNetZoom

آموزش RabbitMQ و پیاده سازی الگوی Messaging در این ویدیو به معرفی RabbitMQ می پردازیم و نحوه استفاده از آن را در NET Core. بر
آموزش RabbitMQ و پیاده سازی الگوی Messaging در این ویدیو به معرفی RabbitMQ می پردازیم و نحوه استفاده از آن را در NET Core. بررسی می کنیم. از RabbitMQ به عنوان Message Broker استفاده میشود که میتواند پیامها را درون صف نگه دارد و به ترتیب در اختیار سایر سرویس ها قرار دهد. این ابزار در پیاده سازی Distributed System ها و میکروسرویس ها کاربرد زیادی دارد. https://codehaks.com/go/fpw

با استفاده از ابزار Health Checks در ASP NET Core می توانید سلامتی اپلیکیشن خود را به دیگر سرویس ها اطلاع دهید. این ابزار امک
با استفاده از ابزار Health Checks در ASP NET Core می توانید سلامتی اپلیکیشن خود را به دیگر سرویس ها اطلاع دهید. این ابزار امکان میدهد مواردی مانند اتصال به اینترنت، بالا بودن سرور دیتابیس یا دسترسی به سرویس پیامک و ... را چک کنیم و در صورت وجود مشکل به دیگران اطلاع دهیم. https://codehaks.com/go/tpk

در بسیاری از پروژه های وب نیاز به نمایش Select داریم که داده های آن از دیتابیس خوانده میشود. در این ویدیو به نحوه پیاده سازی
در بسیاری از پروژه های وب نیاز به نمایش Select داریم که داده های آن از دیتابیس خوانده میشود. در این ویدیو به نحوه پیاده سازی آن در ASP .NET Core و Razor Page آشنا میشویم. https://codehaks.com/go/pzo