استفاده از متودهای async بصورت sync
در صورتی که در مواقع خاص نیاز داشتید که از متودهای async بصورت sync استفاده کنید، بهترین راه استفاده بصورت زیر است. در این روش از .ConfigureAwait(false).GetA...
در صورتی که در مواقع خاص نیاز داشتید که از متودهای async بصورت sync استفاده کنید، بهترین راه استفاده بصورت زیر است. در این روش از .ConfigureAwait(false).GetA...
یکی از کتابخانههای مناسب برای نوشتن Integration Test در Net core کتابخانه Testcontainers است. توسط این کتابخانه میتوانید به راحتی از سرویس استفاده کننده ما...
یکی از قابلیتهای گیتهاب امکان انتشار مستقیم کتابخانههای نوشته شده بطور مثال برای .net است که توسط آن میتوانید nuget package خود را منتشر کنید. بدین منظور ...
یکی از ابزارهایی که برای Load Test در .Net وجود دارد، ابزار NBomber است. docs NBomber
برای استفاده از Captcha در فرمهای خود اگر قصد دارید که خودتان کپچا را بسازید میتوانید از این کد استفاده کنید. توسط این کلاس شما میتوانید یک عکس کپچا با مش...
یکی از امکانات خوب ویندوز که نیاز شما به نصب شبیهسازهایی مانند VirtualBox را بینیاز میکند ابزاری به اسم Sandbox است که توسط ابزار Hyper-V خود ویندوز کار م...
در صورتی که از Nginx استفاده کرده باشید و در داخل آن از proxy برای انتقال درخواستها به آدرس دیگر استفاده شده باشد، مقدار X-Forwarded-For در این حالت بطور پی...
فرض کنید پروژه Angular خود را در سروری با اسم st-server-s2 هاست کردهاید و در داخل این پروژه چند api از سرور دیگری با اسم st-backend-s2 فراخوانی میکنید. دست...
اگر از محصولات شرکت Jetbrains مانند Rider برای کدنویسی فرانت استفاده میکنید، احتمالا با مشکل طول کشیدن Index شدن پروژه و همچنین آمدن موارد Package ها در بخ...
در صورتی که در Google Sheet نیاز داشتید در صورت Add/Update/Delete متوجه تغییرات بشوید کافی است از اسکریپت زیر استفاده کنید. بدین منظور از سربرگ Extensions گز...
از ابزارهای خوبی که برای Trace سیستم وجود دارد میتوان به APM اشاره کرد. یکی از مشکلاتی که UI این ابزار در Kibana وجود دارد، کامل نبودن بخش Search آن است. بط...
در بعضی مواقع نیاز دارید که فقط ترافیک بعضی از سایتها از پروکسی عبور کند و نمیخواهید تمام ترافیک سیستم عامل خود و یا تمام سایتها را از پروکسی عبور دهید. د...
گاهی مواقع نیاز دارید تا چند پیاده سازی از یک Interface داشته باشید و با توجه به اینکه در کدام بخش برنامه هستید نوع مختلفی از آن را استفاده کنید. بطور مثال ی...
یکی از موارد مهم استفاده از ترنزکشن در .Net دقت کردن به استفاده از متود async / await در داخل آن است. بطور مثال کد زیر را در نظر بگیرید:
یکی از موارد مهم که در استفاده از کافکا باید به آن دقت کرد، کانفیگ اولیه اتصال به آن است که جلوی بسیاری از مشکلات آینده را میگیرد. در این بخش این کانفیگها ...
یکی از مواردی که در C# باید به آن دقت کرد این است که مقدار پیشفرض برای Enum برابر با 0 است و حتی اگر مقدار صفر در Enum نباشد باز مقدار گفته شده را میتواند ...
یکی از موارد کاربردی در DataGrip بخش Live Template میباشد که توسط آن میتوانید یک کلید خاص تعریف کنید تا با نوشتن آن بقیه موارد بصورت خودکار نوشته شود. بطور...
در صورتی که میخواهید در بیلدهای خود فقط بعضی از پروژهها بیلد شوند و بطور مثال نیازی به بیلد پروژههای تست ندارید میتوانید به صورت زیر عمل کنید:
توسط کتابخانه Testcontainers به راحتی میتوانید یک نسخه از بیشتر موارد مثل Redis, Sql, Kafka, RabbitMQ را بالا بیاورید و پروژه نوشته شده را تست کنید تا از کا...
بعضی مواقع بطور مثال در زمان نوشتن Integration Test نیاز است بدون اینکه دیتا را در جدولی که به آن کلید خارجی داریم Insert کنیم، فقط در جدلی که به آن نیاز هست...
در زمانهای که میخواهید یک SP را در دیتابیس فراخوانی کنید در بیشتر مواقع نیاز است پارامترهای خود را به آن پاس بدهید. در Dapper برای این کار DynamicParamet...
در تستهای IntegrationTest در مواقعی که نیاز دارید ارتباط با دیتابیس را بررسی کنید در زمانهایی که نیاز به تغییر ConnectionString وجود دارد توسط کد زیر میتو...
در زمان نوشتن تستها بعضی مواقع امکان بررسی اینکه متود خطا برمیگرداند وجود ندارد و فقط در داخل خود متود لاگ زده میشود. بطور مثال در سناریوهایی که پیامها ا...
فرض کنید برای خواندن پیامها از صف Kafka از کدی مشابه زیر استفاده کردهاید که پیامها بعد از دریافت توسط delegate و Event به کلاس دیگری داده میشود.
یکی از مشکلات عجیبی که زمان کار کردن با Git ممکن است مواجه شوید، عدم نمایش فایل تغییر کرده در بخش Change ها است. بطور مثال فایل X را تغییر دادهاید و میخواه...
اگر از محصولات Jetbrains برای کدنویسی استفاده کرده باشید احتمالا به مشکل خطا نشان دادن برای کلمات فارسی برخورد کردهاید. بصورت پیشفرض فقط زبان انگلیسی در ای...
برای اطمینان بیشتر از اینکه در یک Pull Request تمام موارد مهم بررسی شدهاند، میتوانید یک CheckList به توضیحات آن اضافه کنید تا افراد قبل از زدن پولریکوست آ...
اگر پروژه Net Core خود را بروی Docker Container از نوع Linux هاست کرده باشید، به احتمال زیاد با این مشکل مواجه میشوید که زمانی که در کد خود استفاده میکنید ...
بصورت پیشفرض خطاهای دیتابیسی از نوع DbUpdateException بازگردانده میشوند. اگر نیاز دارید که جزئیات خطا را متوجه شوید تا بتوانید در رابطه با آن تصمیم بگیرید ...
یکی از خوبیهای استفاده از EntityFrameworkCore در برنامه این است که بدون نیاز به تغییر خاصی در کد و با کمترین کار میتوانید دیتابیس سیستم خود را تغییر دهید و...
یکی از ابزارهای مفید برای مانیتور سیستم در Production برای اطمینان از صحت انجام کارها، ابزار healthCheck است. برای اضافه کردن این ابزار به Worker Service ها ...
اگر میخواستید فایلهای خود را از LF به CRLF و یا برعکس تغییر دهید میتوانید از دستورات زیر استفاده کنید:
Application Performance Monitoring یا به اختصار APM وظیفه نظارت بر کد شما را دارد که توسط آن میتوانید هر بخش از کد خود را مانیتور کنید و بطور مثال خطاها یا ...
```csharp using Utf8Json;
در صورتی که در کد خود کلاسی دارید که از IDisposable ارثبری کرده باشد :
یکی از امکانات خوب گوگل برای مدیریت کارها، Google Task و Google Keep است که توسط آنها میتوانید راحتتر کارهای خود را مدیریت کنید. اگر قصد استفاده از نسخه وب...
قبلا در مطلبی دیزاین پترن Singleton معرفی شده بود:
فرض کنید که در سیستم خود از RabbitMQ برای ارتباط بین سیستمها استفاده میکنید و در قسمتی چند Consumer دارید که پیامها را از روی یک صف میخواند. اگر تعدادی پ...
یکی از سریعترین کتابخانه ها برای Serializer Json کتابخانهای به اسم Utf8Json است که البته ورژن جدیدتر آن MessagePack است که جایگزین قبلی شده است. طبق تستها...
اگر در برنامه خود نیاز دارید که خطهای تکراری در یک فایل را پیدا کنید میتوانید از کد زیر استفاده کنید.
یکی از انواع Dependency LifeTime که در .net Core وجود دارد Scoped است که در طول یک Request Web معتبر است. فرض کنید میخواهید این طول عمر را خودتان شبیه سازی ...
یکی از سایتهای خوب برای گوش دادن به آهنگ، سایت اسپاتیفای است. در نسخه رایگان این سایت بعد از هر چند آهنگ چند دقیقه تبلیغات پخش میشود. اگر میخواهید این تبل...
اگر حریم خصوصی برای شما مهم است و دوست دارید شبکههای اجتماعی سایتهایی که مشاهده میکنید را ردیابی کنند، این افزونه کار شما را بسیار راحت میکند. همچنین توس...
یکی از پروژههای خوب که برای پیاده سازی Api GateWay وجود دارد، پروژه Ocelot است که تقریبا تمام امکانات مورد نیاز شما را فراهم میکند.
برای یکی از پروژههای شخصی نیاز به ویرایش فایل PSD توسط کد بود تا نیاز به ویرایش دستی آن فایل و خروجی گرفتن از آن نباشد. بدین منظور با کتابخانه Aspose.PSD آش...
Github دارای API های مختلف برای راحتسازی کارها است. فرض کنید میخواهید لیست پروژههایی که به آنها stars دادهاید را بصورت یک لیست داشته باشید.
اگر پروژه شما دارای فایل web.config است و برای محیطهای مختلف آن فایلی مانند web.Prod.config تعریف کردهاید و همچنین از Azure PipeLine برای CI/CD استفاده می...
یکی از پارامترها که شاید بیشتر مواقع به آن دقت نکرد باشید، ANSI_NULLS است. بیشتر مواقع که یک کوئری را بصورت خودکار توسط ابزارها میسازید مقدار آن و همچنین مق...
در یکی از مطالب قبلی وبلاگ چگونگی ارسال پیامها به DeadLetter آموزش داده شد:
اگر در دیتابیس خود جدولی دارید که ستون آن Identity نیست و باید بصورت دستی وارد شود، برای فعال کردن این قابلیت در EntityFrameWork کافی است موارد زیر را به کان...
در محیط تست و سیستم Local اگر نیاز داشتید که CORS مرورگر را غیر فعال کنید میتوانید از دستور زیر برای اجرای آن استفاده کنید:
برای تست در دسترس بودن یک Port خاص توسط سرور دیگر آسانترین راه استفاده از دستور telnet در CMD است که بصورت زیر میتوانید از آن استفاده کنید:
توسط کوئری زیر میتوانید مواردی که در یک جدول بیشتر از یکبار تکرار شدهاند را پیدا کنید. ابتدا توسط Group By مواردی که میخواهیم تکراری بودن را بر روی آنها ت...
از کتابخانههایی که برای Tracing, Monitoring وجود دارد میتوان به OpenTelemetry و AppMetrics اشاره کرد. کتابخانه دوم طبق تجربه کاربرد بیشتری دارد و کار کردن ...
گاهی مواقع نیاز دارید تا در زبانهای برنامه نویسی بطور مثال سیشارپ یک مدل را به مدل دیگری تبدیل کنید. یکی از پلاگینهایی که این کار را راحت میکند AutoMappe...
یکی از قابلیتهای کاربردی RabbitMQ امکان ارسال پیامهای به خطا خورده به یک صف دیگر برای پردازش یا داشتن لاگ از پیامهای پردازش نشده است. بطور مثال فرض کنید پ...
فرض کنید در یک تراکنش بانکی نیاز دارید که در صورت به خطا خوردن بخشی از کد، تمام موارد انجام شده هم به حالت قبل برگردند. بطور مثال اگر انتقال پول به خطا خورد ...
در یکی از پروژههای شرکت نیاز به انتقال تمام دیتا دیتابیس به یک دیتابیس جدید بود. برای انجام این کار بعد از بررسی کوئریهای مختلف به کوئری زیر رسیدیم. از راه...
در یکی از پروژهها نیاز به انتقال تمام اطلاعات جداول به دیتابیس جدید بود که در انجام این کار که در مطلب قبلی کلیات آن گفته شد به چند خطا هم برخورد کردیم. خطا...
یکی از نکاتی که در زبان C# در زمان استفاده از Round باید دقت کنید، تفاوت عملکرد اعدادی که به 5 ختم میشوند با دیگر زبانها یا Excel است. بطور مثال در اکسل عد...
با نرمافزار زیر میتوانید جزئیات را مشاهده کنید. برای پیدا کردن Domain هم به بخش زیر بروید و بخش Full device name را مشاهده کنید.البته دقت کنید که بخش Devic...
یکی از بهترین افزونهها برای مسدود کردن تبلیغات در مرورگرهای مختلف مانند Chrome و Edge افزونه UBlock است که امتیازهای بالاتری نسبت به AdBlock هم دارد و بهتر ...
بصورت پیشفرض در حالت AutoComplete نرم افزار DataGrip اسکیما جدول مورد نظر اضافه نمیشود و در صورت زدن کلید Tab فقط جدول مورد نظر اضافه میشود.
گاهی مواقع نیاز است که خروجی کوئری شما با توجه به شرایط مختلف ترتیب متفاوتی داشته باشید. بطور مثال فرض کنید میخواهید لیست سفارشات بورس بر روی یک قسمت خاص را...
با منتشر شدن ورژنهای جدیدتر .Net Core SDK / Runtime و نصب آنها بر روی سیستم، پس از مدتی حجم زیادی از درایو C اشغال میشود که دلیل آن باقی ماندن ورژنهای قدی...
در صورتی که نیاز داشتید تا لیست تمام نرم افزارهای نصب شده بر روی سیستم عامل ویندوز خود را بدست بیاورید، میتوانید از تکه کد زیر استفاده کنید.
یکی از ابزارهای خوب که جدیدا معرفی شده است و توسط هوش مصنوعی کدزنی را بسیار آسانتر میکند، ابزاری به اسم copilot است که توسط github ارائه شده که بر پایه AI ب...
فرض کنید برای دیباگ یا در دسترس بودن امکانات بیشتر یک Agent که با .Net Core نوشته شده است در حالت پابلیش شده میخواهید قسمتی به کد اضافه کنید. بطور مثال اگر ...
در تکنولوژیهای قدیمی مانند wcf اگر بخواهید به یک متود که خروجی آن زیاد است ریکوست بزنید، با خطا زیر مواجه میشود.
برای جلوگیری از استفاده تمام منابع cpu در زبانهای برنامهنویسی میتوان از تابع Thread.Sleep استفاده کرد که منابع را از ترد جاری میگیرد. این تابع ورودی یک ع...
برای فراخوانی یک متود از نوع Task دو روش زیر را میتوان استفاده کرد که در این مطلب به توضیح تفاوت آنها میپردازیم. تفاوت اصلی این دو متود در انتشار خطا یا ex...
بصورت پیشفرض در صورتی که از Bulk در دیتابیس استفاده کنید، Constraint جدول مورد نظر قبل از عمل Insert پاک شده و پس از اتمام بصورت اتومات ساخته میشوند. پس با...
فرض کنید اینترنت محل کار شما قطع شده است و توسط آن فقط به موارد داخلش شبکه دسترسی دارید، از طرفی برای انجام کارهای خود نیاز به اینترنت خارج از شرکت هم دارید....
بصورت پیش فرض امکان استفاده از شرط IF در بخش WHERE یک کوئری وجود ندارد و اگر نیاز به بررسی شرط در حالتهای مختلف داشتید، باید از ترفندهای مختلف استفاده کنید....
فرض کنید نیاز دارید که مقادیر مختلف را از یک List پاک کنید، البته با توجه به حالتهای مختلف پاک کردن این موارد متفاوت است. یکی از راهها استفاده از Func است ...
اگر نیاز داشتید که تمام سطرهای یک ستون خاص در دیتابیس را به صورت یک خروجی درآورید، شبیه به قابلیت Concat در زبان های برنامه نویسی، میتوانید از کوئری زیر است...
در .Net core با معرفی Minimal API, Controllers, Razor Pages, gRPC, Health checks و دیگر موارد، Route های سیستم افزایش پیدا کردهاند و با بزرگ شدن پروژه نیاز ...
فرض کنید 2 جدول دارید که میخواهید اطلاعات یکی از آنها را با توجه به جدول دوم آپدیت کنید. یا به زبان دیگر این 2 جدول با یکدیگر کلید خارجی دارند و میخواهید ف...
آخرین بار که از طریق نرم افزار EaseUS Partition Master حجم درایو C را افزایش دادم، پس از ریست سیستم یک درایو جدید با نام Z هم به سیستم اضافه شده بود که امکان...
گاهی مواقع که نیاز به انتقال فایلهای پروژه و یا فشرده سازی آنها است، برای کاهش حجم پاک کردن فولدرهای bin و obj از حجم نهایی میکاهد. توسط کد زیر میتوانید ا...
توسط کامپایلر C# که با عنوان Roslyn بازنویسی شده است. قابلیت افزونهپذیری به آن اضافه شده است که به شما قابلیت بررسی بیشتر کدها در زمان کامپایل و صادر کردن خ...
در صورتی که از Dapper برای پاس دادن مقادیر DateTime2 به دیتابیس و یا فراخوانی SP استفاده میکنید، حواستان باشد که Dapper بصورت پیشفرض مقدار Millisecond را د...
یکی از ابزارهای مفید برای چک کردن اتصال به دیتابیسی که در سرورهای دیگر قرار دارد، UDL یا Universal Data Link است که توسط آن حتی سطح دسترسی یوزر مورد نظر را ه...
یکی از مشکلاتی که در زمان کار با Service ها در ویندوز ممکن است با آن روبرو شوید، Stop نشدن سرویس مورد نظر است. یکی از راههای سریع برای توقف سرویس مورد نظر ا...
فرض کنید برنامهای که نوشتهاید در محیط لوکال به درستی کار میکند و فقط زمانی که آن را پابلیش میدهید، در زمان اجرا با خطا مواجه میشود. یکی از قابلیتهای خو...
در یکی از بخشهای جدا سازی و حرکت به سوی ماکروسرویس، نیاز بود تا از صحت عملکرد سیستم اطمینان حاصل کنیم. برای این کار سورسهای سیستم را در یک سرور دیگر اجرا ک...
از ویژگیهای خوب SQL Server وجود داشتن فانکشنها و آبجکتهای مختلف برای راحتسازی کارها است. بطور مثال دو شی زیر که از نوع Dynamic Management Views هستند، بر...
یکی از قابلیتهای کاربردی در SQL Server امکانی با اسم CDC است که به شما قابلیت دانستن تغییرات بر روی یک جدول خاص را میدهد. فرض کنید در برنامهای که بصورت Mi...
روشهای مختلفی برای تزریق وابستگیها وجود دارد که در لینک زیر میتوانید درباره آنها مطالعه کنید:
نکته مهم : زمانی که نمیدانید با exception اتفاق افتاده چه کاری میتوانید بکنید، آن را catch نکنید متن بالا به این معنی است که اگر در متودی که بطور مثال برای...
در صورتی که میخواهید یک Enum را به یکی API که بصورت HTTPGET است، پاس بدهید، حواستان باشد که بصورت پیش فرض معتبر بودن ورودی آن بررسی نمیشود. بطور مثال کد زی...
فرض کنید موارد استفاده از سرویسهایی که دارید را میخواهید در یک پروژه بزرگ پیدا کنید که این پروژه خود شامل زیرپروژه های مختلف است. جستجو عادی به ازای هر سرو...
X = (sign) m * r^e
از افزونههای خوب برای یادگیری زبان و ترجمه کلمات برای مروگرهای بر پایه chromium میتوان به E Joy اشاره کرد. توسط این افزونه تمام موارد مورد نیاز برای ترجمه ...
فرض کنید که شما یک API از نوع GET دارید و میخواهید آن را در قسمتی از کد خود فراخوانی کنید. اما مقادیری که میخواهید به آن پاس بدهید در اتریبوتهای یک کلاس ذ...
بهینهسازی دیتابیس و کوئریها یکی از موارد مهم در دیتابیس است تا بتوان از منابع موجود بصورت بهینه استفاده کرد. یکی از روشها برای دانستن کوئریهای زمانبر بر...
یکی از مواردی که در زمان طراحی دیتابیس باید رعایت شود، بحث نامگذاری درست آیتمها است. بصورت پیشفرض SQL SERVER نامهای پیشفرض بطور مثال برای کلید داخلی، کلی...
از ابزارهایی که برای مدیریت پروژه استفاده میشود، Git است که کاربردهای زیادی دارد. در زمانهایی که تعداد افرادی که بر روی یک پروژه کار میکنند زیاد میشود، ن...
گاهی مواقع یک فایل را به اشتباه پاک میکنید و یا نیاز دارید بدانید یک فایل در چه زمانی پاک شده و محتویات آن نیز چه بوده است. در این مواقع اگر از گیت استفاده ...
این دستور کوتاه شده X <= Id AND X >= Id2 است که برای برقرار شدن شرط بین دو مقدار کاربرد دارد. بطور مثال در مواردی که میخواهید یک گزارش بین دو تاریخ را...
گاهی مواقع نیاز است تا یک متغیر را توسط دستور SELECT مقداردهی کنید و از آن متغیر در کدهای خود استفاده کنید. راحت ترین راه کوئری زیر است که فقط یک مورد را مقد...
این تابع که از نوع Window Function است، برای دریافت اولین سطر در حالت Ordered Partition استفاده میشود.
در این بخش از مجموعه آموزشهای طراحی سیستم، میخواهیم سایت bit.ly را که یک سایت کوتاه کننده لینک است را با یکدیگر مقایسه کنیم.
این دستور در واقع یک result set را از نوع موقت ایجاد میکند که به آن Common Table Expression یا CTE نیز میگویند. روش کلی استفاده از آن بصورت زیر است:
در زمان استفاده از SubQuery ها باید حواستان به قلمرو دید باشد. بصورت کلی تمام ستونهای جدول اول در بخش دو دردسترس نیست.
شی Synonym در دیتابیس در واقع یک نام جایگزین برای اشیا دیگر است که نکته مهم در آن این است که این شی میتواند در یک دیتابیس و حتی سرور دیگر باشد. پس با این ام...
این دستور شبیه به WHERE عمل میکند با این تفاوت که دستور HAVING میتواند همراه با aggregate functions استفاده شود. این دستور بیشتر مواقع همراه با GROUP BY اس...
در دیتابیس فانکشنهای موجود به 2 صورت Scalar و Table-Value هستند که در این مطلب تفاوت آنها را بیان میکنیم.
SELECT TOP 100 AVG(Quantity) AS Quantity, MAX(Price) AS Price FROM [dbo].Decision;
قبل از شروع این مطلب نیاز است که ابتدا با CROSS بیشتر آشنا شویم. روش استفاده از این نوع JOIN بصورت زیر است:
برای انجام عملیات بر روی تمام آیتم های یک لیست، روش های مختلفی وجود دارد که تفاوت هایی با هم دارند. یکی از مهمترین موارد در زمانهایی است که شما میخواهید ی...
```c# using System; using System.Text;
یکی از ویژگیهایی که Entity Framework Core دارد، قابلیت لاگ کردن کوئری نهایی است که به دیتابیس ارسال میشود. توسط این امکان میتوانید حالت های مختلف را امتحا...
```sql CREATE TABLE Grades ( [Student] NVARCHAR(50), [Subject] NVARCHAR(50), [Marks] INT ) GO
گاهی مواقع برای مواردی که بسیار کم تغییر میکنند و همچنین تعداد آنها نیز کم است، بجای استفاده از دیتابیس از Enum ها میتوان استفاده کرد. بطور مثال برای جنسیت...
یکی از کتابخانه هایی که کار تبدیل مدل ها در برنامه نویسی را راحت میکند، کتابخانه Automapper است که با استفاده از آن دیگر لازم نیست Atribute های یک مدل را بص...
در زبان برنامه نویسی .net کالکشن های مختلفی وجود دارد که دارای کاربردهای متفاوت هستند و استفاده درست از آنها، باعث جلوگیری از به وقوع پیوستن مشکلات در آینده ...
یکی از کتابخانه های کاربردی در .net کتابخانه Automapper است که در زمان های مپ کردن دیتا کاربرد فراوان دارد. روش استفاده پیشفرض از این کتابخانه بصورت زیر است ...
یکی از امکانات خوب دیتابیس SQL Server امکان پاس دادن لیست به عنوان ورودی به یک stored procedure است که کار شما را برای مواقعی که نیاز به پاس دادن تعداد زیادی...
در بعضی مواقع شما نیاز دارید که فقط یک Commit را از یک Branch به یک Branch دیگر منتقل کنید و نمیخواهید تمام تغییرات آن برنچ را با برنچ خود Merge کنید. برای ...
اسکیما در دیتابیس ها یک شی دربرگیرنده دیگر شیء ها است که بیشتر برای مرتب سازی جداول و دیگر اشیا استفاده میشود. گاهی مواقع نیاز دارید تا اسکیما جدولی را که ا...
گاهی مواقع برای تست کردن فانکشن نوشته شده در دیتابیس، نیاز به فراخوانی آن توسط دستورهای SQL دارید. روش فراخوانی stored procedure ها بسیار راحت است و توسط دست...
یکی از موارد مهم در زبان های برنامه نویسی بحث Transaction ها میباشد. در بعضی موارد تمام مواردی که میخواهید بصورت یک ترنزکشن انجام شوند، بر روی یک سیستم نیس...
یکی از کتابخانه هایی که برای انتقال پیام بین سیستم های مختلف وجود دارد، Rabbitmq هست. یکی از قابلیت های مفید این Message Broker قابلیت Clustering هست که در ز...
یکی از امکانات جالبی که در git موجود هست که من هم تازه باهاش آشنا شدم، امکانی به اسم Submodules هست. این ویژگی به شما این امکان رو میده که کدهای خود رو به پر...
یکی از ویژگی های خوب گیت هاب که استفاده زیادی داره و این سایت هم با استفاده از آن ساخته شده، فایل md یا markdown هست. توسط این قابلیت میتوانید فایل های متنی ...
یکی از تغییراتی که در ویندوز 10 ایجاد شد، معرفی استفاده از Fluent design بود که ظاهر ویندوز را نسبت به نسخه های قبلی تغییر زیادی داد. بیشتر نرم افزارهای منتش...
این الگو در زمان هایی کاربرد دارد که شما یک کار را میخواهید انجام بدهید که بیشتر قسمت های آن یکسان است اما بعضی از قسمت های آن دارای تفاوت است.
یکی از الگوهای طراحی که در برنامه نویسی کاربرد داره، الگویی با اسم Chain Of Responsibility هستش. این الگو در زمان هایی کاربرد داره که یک سری عملیات رو بصورت...
یکی از کتابخونه های خیلی خوب برای لاگ کردن، کتابخونه ای به اسم serilog هستش. توسط این کتابخونه تقریبا میتونید تمام کارهایی که مربوط به لاگ کردن هستش رو انجام...
یکی از دیزاین پترن هایی که کاربرد زیادی در برنامه نویسی داره، دیزاین پترن Singleton هستش. این پترن زمان هایی کاربرد داره که ما فقط به یه Instance از کلاس دار...
یکی از ابزارهای خوب ماکروسافت برای مدیریت سرورها، ابزاری به اسم Windows Admin Center هستش، توسط این ابزار میتونید سرورهای مختلف روی شبکه رو کنترل کنید و حتی ...
با بزرگ شدن پروژه و گسترش اون، به تبع اطلاعات بدست اومده بصورت نمایی زیاد میشه و دیگه با ابزارهای قبلی نمیشه این حجم از اطلاعات رو پردازش کرد. بطور مثال اگه ...
یکی از افزونه های خوبی که برای مروگرهای بر پایه Chromium وجود داره، افزونه Dark Reader هستش. با استفاده از این افزونه میتونید تم تاریک رو در داخل همه سایت ها...
یکی از کتابخانه های خوب برای نوشتن سرویس GRPC کتابخونه ای با اسم protobuf-net.Grpc هست که قابلیت Code First رو به شما میده و لازم نیست اول فایل proto رو بساز...
گاهی مواقع در SP های نوشته شده شما نیاز به دریافت یک لیست دارید. بطور مثال میخواهید فقط مطالبی که در چند دسته بندی خاص هستند را دریافت کنید. برای این کار میت...
یکی از دستورات مفیدی که در SQL Server وجود داره، دستوری به اسم merge هست که کاربردهای مفید زیادی داره. مثلا وقتی میخواید اطلاعات یه جدول رو با جدول دیگه ای س...
کاهی مواقع برای دیباگ کردن برنامه های نوشته نیاز به دانستن تمام ترافیک عبوری از سیستم هست. یکی از ابزارهایی که برای این کار استفاده میشه Fiddler هست که به شم...
گاهی مواقع در زمان نوشتن یک SP در دیتابیس شما نیاز به استفاده از یک پارامتر ورودی دارید که مقدار Null نیز میتواند داشته باشد و از این متغیر میخواید در قسمت w...
یک از مشکلاتی که wcf داره، عدم امکان فراخوانی ساده اون داخل مرورگر،شبیه به rest api هست. هرچند که تکنولوژی wcf قدیمی شده اما بعضی مواقع نیاز به استفاده از او...
بعضی مواقع اتفاق میافته که یه فایل رو اشتباه داخل Git کامیت میکنید یا بنا به دلایلی میخواید فایل خاصی رو از تاریخچه گیت پاک کنید برای انجام این کار ابتدا بای...
گاهی مواقع به پاک سازی یا پیدا کردن آیتم های خاصی در یک فایل نیاز هست بطور مثال میخواید تمام style ها رو از یک فایل html پاک کنید. اگه فایل هم حجم زیادی داشت...
برای نصب و استفاده از دیتابیس Redis در ویندوز راه های مختلفی وجود داره که راحت ترین اونها استفاده از داکر هستش دلیل این کار هم این هست که ردیس بصورت مستقیم ف...
داده های هم شکل و مشابه، در زمان ویرایش یا ذخیره سازی، با کارایی بیشتری قالب مدیریت هستند. در زبان .net و دیگر زبان های برنامه نویسی، کالکشن یا مجموعه های مخ...
بعضی مواقع نیاز هست تا اطلاعات یک پروژه در گیتهاب رو بدست آورد. بطور مثلا قبل از clone کردن یک پروژه میخوایم حجم کل پروژه رو بدست بیاریم روش انجام این کار ...
یکی از خوبی های لینوکس این هست که دستتون برای شخصی سازی خیلی باز هست بطور مثال برای نرم افزار VLC چون صفحه لپ تاپ 4K بود، از تم هایی که خودش داشت نمیتونستم ...
یکی از مشکلاتی که خیلی وقت من رو گرفت، مشکل سیاه شدن صفحه بعد از روشن شدن یا بعد از حالت sleep یا suspend بود تقریبا بیشتر راه هایی که داخل اینترنت بود رو ا...
اگه میخواستید برای صفحه ورود لینوکس که بطور پیشفرض در اوبونتو رنگ بنفش داره، عکس یا رنگ دیگه ای قرار بدید، میتونید آموزش زیر رو دنبال کنید اول از همه پکیج ز...
یکی از مشکلاتی که در لینوکس افراد باهاش روبرو میشن، مشکل درایور کارت گرافیک هستش. در بیشتر مواقع مشکل خاصی نیست ولی اگه مثل من از لپ تاپ با دو تا کارت گرافی...
وقتی از چندتا سیستم عامل استفاده میکنید، در زمان روشن کردن سیستم صفحه ای نشون داده میشه تا بتونید سیستم عامل خودتون رو انتخاب کنید بطور پیش فرض این صفحه ظاه...
نوبتی هم باشه، نوبت مشکلاتی هستش که با خود سیستم عامل لینوکس پیدا کردم بعد از حل کردن مشکلاتی که به برنامه نویسی مربوط میشد، میخواستم مطالب رو در وبلاگ منتش...
در قسمت های قبل ما تونستیم پیش نیازهای برنامه نویسی رو نصب و کانفیگ کنیم. حالا نوبت اجرا کردن پروژه هستش برای اجرا برنامه هم نیاز به دیتابیس هست، بعد از نصب...
اگه قسمت های قبل رو دنبال کرده باشید، میدونید که چندتا مشکل ساده رو حل کردیم و تونستیم سیستم رو بالا بیاریم همه چی خوب پیش میرفت و من از همین تعجب میکردم، ا...
اگه قسمت قبل رو مطالعه کرده باشید، اطلاع دارید که ما تونستیم لینوکس رو کامل نصب کنیم از کارهایی که بعد از نصب هر سیستم عاملی نیاز هست، نصب نرم افزارهای مورد...
یه مدتی بود که می خواستم یه تجربه جدید یاد بگیرم و چیز جدیدی رو امتحان کنم، همچنین سیستم عامل ویندوز هم یکم واسم کند شده بود. یه چند باری هم خواسته بودم لین...
توی تغییری که لازم بود در دیتابیس بدیم، نیاز بود که یه ستون جدید به جدول اضافه بشه که مقدارش GUID بود پس نوعش رو Unique در نظر گرفته بودیم این فیلد میتونست...
در قسمتی از پروژه ای که در حال نوشتن بودم و میخواستیم Fail Over رو بر روی قسمتی از سیستم پیاده سازی کنیم تا سیستم بصورت اتومات بتونه بعد از به خطا خوردن و یا...
آخرین مشکلی که باهاش روبرو شدم و یه مدتی وقتم رو گرفت، مشکلی با این مضمون بود که وقتی توسط تگ select در html مقدارش تو فایل ts نمیومد نمونه کدی که استفاده ک...
شروع سیستم بورس اطلاعات رو در بستر Socket به کارگزارها ارسال میکنه یکی از این اطلاعات که مقدار ریت بالایی هم داره، سرخط های بازار هست که افراد معمولی فقط 5 ...
در پروژه ای که مدتی پیش روش کار میکرد، نیاز به وارد کردن دیتا تست زیادی بود که بعد از انجام پروژه هم پاک شدن، بعد از انجام پروژه متوجه شدن حجم درایو C خیلی ک...
اگه داخل پروژه های Open Source که داخل گیتهاب منتشر شدن، شرکت میکنید، یکی از اولین مشکل هایی که باهاش روبرو میشید، آپدیت کردن پروژه فرک شده از پروژه اصلی هست...
در یکی از پروژه هایی که با فریم ورک Vuejs در حال نوشتن بودم و نیاز بود تا یک تم html به vue تبدیل شود، نیاز داشتم تا فایل های js قالب رو داخل پروژه استفاده ک...
یکی از امکاناتی که گیتهاب در اختیار برنامه نویسان قرار میده، امکان ایجاد یک سایت رایگان با دامنه شخصی هستش، بطور مثال: mhkarami97.github.io که قسمت اول اون...
برای یکی از پروژه های شخصی که میخواستم داخل github page هم منتشر کنم، با مشکل پیدا نشدن فایل های استاتیک و خطای 404 روبرو میشدم با توجه به اینکه قبلا هم برا...
در یکی از پروژ هایی که در حال انجامشون بودم، در قسمتی نیاز به استفاده از یک سرویس بصورت زیر بود:
یکی از مشکلاتی که افراد در زمان کار با http client در زبان برنامه نویسی .net مواجه می شوند، سخت بودن نسبی مدیریت آن و همچنین نیاز به نوشتن کدهای زیاد برای کا...
این اولین مطلب من هست و مقدمه ای بر مطالبی هست که قراره در آینده بنویسم، در این وبلاگ قراره درباره مشکلات و چالش هایی که در زمان کار باهاشون روبرو میشم رو بن...