در این مقاله قصد دارم راجعبه یک Extension در دات نت صحبت کنم که خیلی وقتها میتواند بسیار مفید و نجات بخش و همینطور در زمان کارتان تاثیر زیادی بگذارد. خیلی وقتها پیش آمده که داریم با یک سرویس بیرونی ارتباط برقرار میکنیم، اما هنگام فراخوانی کردن، با خطا مواجه میشویم و ما متوجه دلیل خطای رخ داده در آن لحظه نمیشویم. برای خود من بارها پیش آمده که Propertyهای اطلاعات ورودی برای وب سرویس را بصورت Pascal Case داده باشم، ولی سرویس بیرونی فق ...
دات نت 6 به همراه source generatorهای توکاری است که میتوانند کار serialization و deserialization نوع JSON را با کارآیی بسیار بیشتری انجام دهند؛ با آزمایشهایی که این بهبود را در حد 40 درصد سریعتر نسبت به حالت متداول آن نمایش میدهند و ... این مساله بسیار مهم است. از این جهت که این روزها، JSON را در همهجا مشاهده میکنیم؛ در Web APIها، در تنظیمات برنامهها، در ارسال پیامها بین برنامهها و غیره. بنابراین هرگونه بهبودی در زمینهی کارآیی se ...
به همراه دات نت 6، دو ساختار دادهی جدید DateOnly و TimeOnly نیز معرفی شدهاند که امکان کار کردن سادهتر با قسمتهای فقط تاریخ و یا فقط زمان DateTime را میسر میکنند. این دو نوع جدید نیز همانند DateTime، از نوع struct هستند و بنابراین value type محسوب میشوند. در فضای نام System قرار گرفتهاند و همچنین با نوعهای date و time مربوط به SQL Server، سازگاری کاملی دارند. روش استفاده از نوع DateOnly در دات نت 6
نوعهای جدید مع ...
قطعا شرایطی پیش خواهد آمد که شما مجبور شوید دادههایی را به عنوان تنظیمات برنامه در محلی ذخیره کنید و مجددا آنها را فراخوانی کنید. روشهای مختلفی برای این کار وجود دارند که معروفترین و سادهترین راه، استفاده از Settings خود پروژه میباشد. اما این به منزله بهترین راه نیست! در این مطلب قصد داریم تنظیمات برنامه را در یک فایل json، با همان ساختار استانداردش ذخیره و بازیابی کنیم. برای اینکار نیاز به سریالایز و دیسریالایز کردن مدل داریم. اگر ا ...
پیشتر بستهی نیوگتی به نام Microsoft.AspNet.WebApi.Client وجود داشت/دارد که کار آن ارائهی یک سری متد الحاقی کار با JSON، جهت HttpClient است. در نگارش 5 دات نت، تمام این متدهای الحاقی جزئی از دات نت استاندارد شدهاند و برای کار با آنها دیگر نیازی به استفادهی از بستههای نیوگت خاصی نیست. تغییرات API دات نت 5 از دیدگاه افزونههای HttpClient
در اینجا لیست کامل متدهای الحاقی اضافه شدهی به فضای نام جدید و استاندارد Syst ...
MySQL قادر به ایندکس کردن ستونهای JSON نمیباشد. برای حل این مشکل میتوانیم از generated columnها استفاده کنیم. منظور، ایجاد ستونهایی است که مقدارشان به صورت محاسبه شده و براساس ستونهای دیگر میباشد؛ به عنوان مثال جدول کاربران زیر را در نظر بگیرید: CREATE TABLE `Users` (
id int NOT NULL AUTO_INCREMENT,
first_name VARCHAR(255) NOT NULL,
last_name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
gender EN ...
در قسمت قبل توابعی را که برای تغییر دیتای JSON مورد استفاده قرار میگیرند، بررسی کردیم. در ادامه به بررسی روشهای تبدیل یک دیتای غیر JSON به خروجی JSON و بلعکس خواهیم پرداخت. کوئریهایی که تا اینجا نوشتهایم، بر روی یک فیلد از نوع JSON بودند؛ اما این امکان را نیز داریم که از توابع JSON بر روی فیلدهای غیر JSON نیز استفاده کنیم. به عنوان مثال جدول کاربران و بلاگپست را در نظر بگیرید که به این صورت تعریف شدهاند: CREATE TABLE U ...
توابع ایجاد محتوای JSON در قسمت قبل برای ذخیرهسازی محتوای JSON از string literal استفاده کردیم؛ یعنی در واقع همانند یک مقدار رشتهای، فیلد JSON را مقداردهی کردیم: INSERT INTO tableName VALUES (
'{ "name": "User1", "age": 41 }'
);
یک روش دیگر، استفاده از توابع JSON_OBJECT یا JSON_ARRAY میباشد: INSERT INTO tableName VALUES (
JSON_ARRAY(
JSON_OBJECT(
"id", 1,
"name", "User1",
"age", 31,
"skills ...
تا قبل از اضافه شدن دیتاتایپ JSON به صورت توکار در MySQL، دادههای JSON را تنها میتوانستیم با فرمت رشتهای، درون دیتابیس ذخیره کنیم: CREATE TABLE tableName (
jsonData CHAR(250) -- or VARCHAR, TEXT, BLOB
);
INSERT INTO tableName VALUES (
'{ "name": "User1", "age": 41}'
);
SELECT * FROM tableName;
{ "name": "User1", "age": 41}
اما مشکل اینجاست که هیچ نوع اعتبارسنجی بر روی این دیتا صورت نخواهد گرفت؛ هیچ روشی ب ...
معروفترین کتابخانهی کار با JSON در دات نت، Json.NET است که این روزها، جزء جدایی ناپذیر حداقل، تمام برنامههای وب مبتنی بر دات نت میباشد. برای مثال ASP.NET Core 2x/1x و همچنین ASP.NET Web API پیش از NET Core.، به صورت پیشفرض از این کتابخانه برای کار با JSON استفاده میکنند. این کتابخانه 10 سال پیش ایجاد شد و در طول زمان، قابلیتهای زیادی به آن اضافه شدهاست. همین حجم بالای کار صورت گرفته سبب شدهاست که برای مثال شروع به استفادهی از & ...