امکان خروجی اکسل از گزارشات سیستم، یکی از بایدهای بیشتر سیستمهای اطلاعاتی میباشد؛ یکی از چالشهای اصلی در تولید این نوع خروجی، افزایش مصرف حافظه متناسب با افزایش حجم دیتا میباشد. از آنجاییکه بیشتر راهکارهای موجود از جمله ClosedXml یا Epplus کل ساختار را ابتدا تولید کرده و اصطلاحا خروجی مورد نظر را بافر میکنند، برای حجم بالای اطلاعات مناسب نخواهند بود. راهکار برای خروجی CSV به عنوان مثال خیلی سرراست میباشد و میتوان با چند خط کد، ...
فرض کنید یک صفحهی Blazor SSR، از سه کامپوننت منوی سمت راست، محتوای اصلی صفحه و فوتر سایت که به همراه متنی است، تشکیل شدهاست. منوی سمت راست، به همراه لینکهاییاست که آمار آنها را نیز نمایش میدهد و این اطلاعات را از بانک اطلاعاتی، به کمک EF-Core دریافت میکند. فوتر صفحه، سال شروع به کار و نام برنامه را از بانک اطلاعاتی دریافت میکند و محتوای اصلی صفحه نیز از بانک اطلاعاتی دریافت میشود. پس از تکمیل این سه کامپوننت مجزا، اگر برنامه را ا ...
در فضایی که همواره هیچ تضمینی وجود ندارد که درخواست ارسال شدهی به یک API، همواره مسیر خود را همانطور که انتظار میرود طی کرده و پاسخ مورد نظر را در اختیار ما قرار میدهد، بیشک تلاش مجدد برای پردازش درخواست مورد نظر، به دلیل خطاهای گذرا، یکی از راهکارهای مورد استفاده خواهد بود. تصور کنید قصد طراحی یک مجموعه API عمومی را دارید، بهنحوی که مصرف کنندگان بدون نگرانی از ایجاد خرابی یا تغییرات ناخواسته، امکان تلاش مجدد در سناریوهای مختلف مشکل ...
از نوع دادهای decimal در SQL Server، بیشتر برای انجام کارهای تجاری و ذخیرهی قیمتها و مبالغ استفاده میشود؛ جائیکه اعداد و ارقام خیلی سریع بزرگ میشوند و گاهی از اوقات ممکن است به همراه اعشار هم باشد. اما ... کار با آنها در SQL Server نیازمند نکات ویژهای است که اگر ندید گرفته شوند، محاسبات نادرستی را سبب خواهند شد! مفهوم تعریف نوع decimal پیشفرض در SQL Server
فرض کنید از EF پیش از EF Core استفاده میکنید که ب ...
همواره حذف و به روز رسانی تعداد زیادی رکورد توسط EF، بسیار غیربهینه و کند بودهاست؛ از این جهت که یکی از روشهای انجام اینکار، کوئری گرفتن از رکوردهای مدنظر جهت حذف، سپس بارگذاری آنها در حافظه و در آخر حذف یکی یکی آنها بودهاست: using var dbContext = new MyDbContext();
var objectToDelete = await dbContext.Objects.FirstAsync(o => o.Id == id);
dbContext.Objects.Remove(objectToDelete);
await dbContext.SaveChangesAsync();
د ...
اگر برنامههای مبتنی بر SQL Server خود را به EF 7.0 ارتقاء دهید، در حین اجرای برنامه، به خطای زیر برخواهید خورد: A connection was successfully established with the server, but then an error occurred during the login process.
(provider: SSL Provider, error: 0 - The certificate chain was issued by an authority that is not trusted.)
علت اینجا است که پروایدر SQL Server مخصوص EF 7.0، از نگارش جدید Microsoft.Data.SqlClient استفا ...
فرض کنید میخواهید برای یک پروژه، امکانی را درنظر بگیرید که بتوان برای تمامی رکوردهای موجودیتهای (Entity) آن پروژه، زمان ساخته شدن و به روزرسانی، به صورت خودکار ثبت شود. کار با تعریف یک کلاس پایه به شکل زیر شروع میشود: public class BaseEntity
{
public DateTimeOffset CreatedDate { get; set; }
public DateTimeOffset UpdatedDate { get; set; }
} سپس برای اینکه کار مقداردهی، به صورت خودکار انجام گیرد، ...
مقدمه
همانطور که میدانید، Blazor دارای یک سیستم لاگ گیری توکار است که میتوان از آن توسط تزریق ILogger در کامپوننتها بهره برد. این سیستم لاگ گیری در زمان توسعهی نرم افزار، در قالب یک کنسول، لاگها را به توسعه دهنده نشان میدهد. اما پس از تولید و پابلیش اپلیکیشن، دیگر این کنسول وجود ندارد. برای ذخیرهی لاگها در یک فایل متنی بر روی سرور هاست، میتوان از Serilog بهره برد که روش ...
postgres یک بانک اطلاعاتی متن باز، قدرتمند و relational میباشد که پس از 30 سال توسعهی فعال، به کارآیی بالا، قابل اطمینان بودن و قدرتمند بودن شهرت دارد. همچنین در بنچمارکهای مربوط به وبسایت techempower نیز استفاده از این پایگاه داده در کنار asp.net core باعث شدهاست تا جایگاه خوبی کسب شود. علاوه بر این ویژگیها، انعطاف نوع دادهها (data type) سبب تفاوت بین رقبا شده است. برای مثال فرض کنید که یک جدول به اسم Blog و قصد ذخیره تگهای مقا ...
فرض کنید در برنامهی خود «کیف پولی» را طراحی کردهاید که بر اساس آن، کاربر میتواند خرید کند. این کیف پول، از Id کاربر و موجودی فعلی او تشکیل میشود: CREATE TABLE accounts (
user_id INTEGER PRIMARY KEY,
balance INTEGER NOT NULL
);
و برای مثال موجودی فعلی کاربر 1، مقدار 300 است: INSERT INTO accounts(user_id, balance)
VALUES (1, 300);
اکنون کوئریهای متداول زیر را که از یک read و سپس update تشکیل شدهاند، درنظ ...