Channel: Software Philosophy
ساخت یک MCP Server ساده با سیشارپ
اگه برنامهنویس #داتنت هستین، تو این پست توضیح داده که چطور با #سیشارپ میتونین یه MCP Server بالا بیارین و توی Cursor تستش کنین.
اگر نمیدونین MCP چیه، یه چورایی همون معادل REST API دنیای وب، در هوش مصنوعیه. یعنی سیستمهای مختلف امکانات هوشمصنوعی خودشون رو از این طریق در اختیار بقیه سیستمهای هوشمصنوعی قرار میدن.
مفهوم MCP از اونجایی خیلی مهمه که میتونه همون نقشی که ظهور API ها در دنیای وب باعث گسترش یک عالمه اینتگریشن شد، همون نقش رو میتونن MCP ها هم بازی کنن و باعث رشد خیلی زیاد محصولات هوشمصنوعی باشیم.
تو این پست قدم به قدم اول یه پروژه داتنتی ساده درست کرده و بعد کدهای مربوط به MCP رو نوشته و در آخر هم نشون داده که چطور میتونین این MCP رو با Cursor تست کنین.
https://dev.to/mehrandvd/create-an-mcp-server-with-net-and-c-251p
https://dev.to/mehrandvd/create-an-mcp-server-with-net-and-c-251p
#مهران_داودی (لینکدین - بلاگ)
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
کانال تلگرام:
@SoftwarePhilosophy
______
اگه برنامهنویس #داتنت هستین، تو این پست توضیح داده که چطور با #سیشارپ میتونین یه MCP Server بالا بیارین و توی Cursor تستش کنین.
اگر نمیدونین MCP چیه، یه چورایی همون معادل REST API دنیای وب، در هوش مصنوعیه. یعنی سیستمهای مختلف امکانات هوشمصنوعی خودشون رو از این طریق در اختیار بقیه سیستمهای هوشمصنوعی قرار میدن.
مفهوم MCP از اونجایی خیلی مهمه که میتونه همون نقشی که ظهور API ها در دنیای وب باعث گسترش یک عالمه اینتگریشن شد، همون نقش رو میتونن MCP ها هم بازی کنن و باعث رشد خیلی زیاد محصولات هوشمصنوعی باشیم.
تو این پست قدم به قدم اول یه پروژه داتنتی ساده درست کرده و بعد کدهای مربوط به MCP رو نوشته و در آخر هم نشون داده که چطور میتونین این MCP رو با Cursor تست کنین.
https://dev.to/mehrandvd/create-an-mcp-server-with-net-and-c-251p
https://dev.to/mehrandvd/create-an-mcp-server-with-net-and-c-251p
#مهران_داودی (لینکدین - بلاگ)
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
کانال تلگرام:
@SoftwarePhilosophy
______
DEV Community
Create an MCP Server with .NET and C#
In this post, I'll show you how to create a simple MCP Server and test it in Cursor. For this...
انواع عددی صحیح (Integral Numeric Types) در سی شارپ
#csharp_for_beginners
در زبان برنامهنویسی C#، انواع عددی صحیح (Integral Numeric Types) برای نمایش اعداد صحیح به کار میروند. این انواع دادهای بهعنوان نوعدادههای مقداری (Value Types) شناخته میشوند و از عملیاتهای حسابی، منطقی بیتی، مقایسهای و تساوی پشتیبانی میکنند
▫️در C#، انواع دادهای عددی صحیح شامل موارد زیر هستند:
نوع sbyte: از مقدار ۱۲۸- تا ۱۲۷ را در ۸ بیت ذخیره میکند و معادل
نوع byte: از مقدار ۰ تا ۲۵۵ را در ۸ بیت ذخیره میکند و معادل
نوع short: از مقدار ۳۲۷۶۸- تا ۳۲۷۶۷ را در ۱۶ بیت ذخیره میکند و معادل
نوع ushort: از مقدار ۰ تا ۶۵۶۳۵ را در ۱۶ بیت ذخیره میکند و معادل
نوع int: از مقدار -2,147,483,648 تا 2,147,483,647 را در 32 بیت ذخیره میکند و معادل
نوع uint: از مقدار ۰ تا ۴,۲۹۴,۹۶۷,۲۹۵ را در ۳۲ بیت ذخیره میکند و معادل
نوع long: از مقدار -9,223,372,036,854,775,808 تا 9,223,372,036,854,775,807 را در 64 بیت ذخیره میکند و معادل
نوع ulong: از مقدار ۰ تا ۱۸,۴۴۶,۷۴۴,۰۷۳,۷۰۹,۵۵۱,۶۱۵ را در ۶۴ بیت ذخیره میکند و معادل
نوع nint: اندازهای وابسته به پلتفرم دارد (در سیستمهای ۳۲ بیتی، ۳۲ بیت و در سیستمهای ۶۴ بیتی، ۶۴ بیت است) و معادل
نوع nuint: مانند
این انواع دادهای برای ذخیره اعداد صحیح استفاده میشوند و بسته به نیاز حافظه و محدوده مقادیر مورد نظر انتخاب میشوند
مقادیر پیشفرض: مقدار پیشفرض برای تمامی انواع عددی صحیح، صفر (
حداقل و حداکثر مقادیر: هر نوع دادهای دارای ویژگیهای
انواع با اندازه وابسته به پلتفرم: انواع
انواع بدون مرز: برای نمایش اعداد صحیح با اندازه نامحدود، میتوان از ساختار
🔗 مطلب کامل را در این لینک میتوانید مطالعه کنید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
کانال تلگرام:
@SoftwarePhilosophy
______
#csharp_for_beginners
در زبان برنامهنویسی C#، انواع عددی صحیح (Integral Numeric Types) برای نمایش اعداد صحیح به کار میروند. این انواع دادهای بهعنوان نوعدادههای مقداری (Value Types) شناخته میشوند و از عملیاتهای حسابی، منطقی بیتی، مقایسهای و تساوی پشتیبانی میکنند
▫️در C#، انواع دادهای عددی صحیح شامل موارد زیر هستند:
نوع sbyte: از مقدار ۱۲۸- تا ۱۲۷ را در ۸ بیت ذخیره میکند و معادل
System.SByte
در .NET است.نوع byte: از مقدار ۰ تا ۲۵۵ را در ۸ بیت ذخیره میکند و معادل
System.Byte
است.نوع short: از مقدار ۳۲۷۶۸- تا ۳۲۷۶۷ را در ۱۶ بیت ذخیره میکند و معادل
System.Int16
است.نوع ushort: از مقدار ۰ تا ۶۵۶۳۵ را در ۱۶ بیت ذخیره میکند و معادل
System.UInt16
است.نوع int: از مقدار -2,147,483,648 تا 2,147,483,647 را در 32 بیت ذخیره میکند و معادل
System.Int32
است.نوع uint: از مقدار ۰ تا ۴,۲۹۴,۹۶۷,۲۹۵ را در ۳۲ بیت ذخیره میکند و معادل
System.UInt32
است.نوع long: از مقدار -9,223,372,036,854,775,808 تا 9,223,372,036,854,775,807 را در 64 بیت ذخیره میکند و معادل
System.Int64
است.نوع ulong: از مقدار ۰ تا ۱۸,۴۴۶,۷۴۴,۰۷۳,۷۰۹,۵۵۱,۶۱۵ را در ۶۴ بیت ذخیره میکند و معادل
System.UInt64
است.نوع nint: اندازهای وابسته به پلتفرم دارد (در سیستمهای ۳۲ بیتی، ۳۲ بیت و در سیستمهای ۶۴ بیتی، ۶۴ بیت است) و معادل
System.IntPtr
میباشد.نوع nuint: مانند
nint
، اندازهای وابسته به پلتفرم دارد و معادل System.UIntPtr
است.این انواع دادهای برای ذخیره اعداد صحیح استفاده میشوند و بسته به نیاز حافظه و محدوده مقادیر مورد نظر انتخاب میشوند
مقادیر پیشفرض: مقدار پیشفرض برای تمامی انواع عددی صحیح، صفر (
0
) است.حداقل و حداکثر مقادیر: هر نوع دادهای دارای ویژگیهای
MinValue
و MaxValue
است که به ترتیب حداقل و حداکثر مقدار قابلپذیرش را نشان میدهند.انواع با اندازه وابسته به پلتفرم: انواع
nint
و nuint
به اندازه پلتفرم وابسته هستند؛ یعنی در فرآیندهای ۳۲ بیتی بهصورت ۳۲ بیتی و در فرآیندهای ۶۴ بیتی بهصورت ۶۴ بیتی عمل میکنند.انواع بدون مرز: برای نمایش اعداد صحیح با اندازه نامحدود، میتوان از ساختار
System.Numerics.BigInteger
استفاده کرد.🔗 مطلب کامل را در این لینک میتوانید مطالعه کنید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
کانال تلگرام:
@SoftwarePhilosophy
______
Docs
Integral numeric types
Learn the range, storage size, and uses for each of the integral numeric types.
ساخت برنامههای Mixed Reality و 3D با Unity
ساختن برنامههایی که با دنیای واقعی مرتبط هستند یکی از قسمتهای هیجانانگیز برنامهنویسی است.
یکی از معروفترین ابزارها برای ساخت چین برنامههایی Unity هست.
کاربرد اصلی Unity ساخت بازی است. بازیهایی که هم در کامپیوتر، و هم در محیطهایی مثل VR/AR Headsets قابل اجرا هستند.
با اینکه کاربرد اصلی Unity ساخت بازی است، ولی از آن برای ساخت برنامههای Enterprise ی که نیاز به محیطهای 3D و Mixed Reality هم استفاده میشود. مثلا نمایش وضعیت دستگاههای یک کارخانه، یا وضعیت هواپیماها در یک فرودگاه.
این ویدئو، در مورد ساخت چین برنامههایی صحبت میکند و توضیح میدهد که چگونه میتوان با Unity برای این نوع مسائل برنامهبنویسی کرد.
آخرای این ویدئو کوه کلیمانجارو رو توی اتاق خونش رندر میکنه!
و بعدش نشون میده که چطور مغز انسان رو تو اتاق و جلوی چشمش لود میکنه و این نوع برنامهها چه کمکهای بزرگی به علم پزشکی میکنن.
🔗 ویدئو را میتوانید اینجا ببینید.
#مهران_داودی (لینکدین - بلاگ)
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
کانال تلگرام:
@SoftwarePhilosophy
______
ساختن برنامههایی که با دنیای واقعی مرتبط هستند یکی از قسمتهای هیجانانگیز برنامهنویسی است.
یکی از معروفترین ابزارها برای ساخت چین برنامههایی Unity هست.
کاربرد اصلی Unity ساخت بازی است. بازیهایی که هم در کامپیوتر، و هم در محیطهایی مثل VR/AR Headsets قابل اجرا هستند.
با اینکه کاربرد اصلی Unity ساخت بازی است، ولی از آن برای ساخت برنامههای Enterprise ی که نیاز به محیطهای 3D و Mixed Reality هم استفاده میشود. مثلا نمایش وضعیت دستگاههای یک کارخانه، یا وضعیت هواپیماها در یک فرودگاه.
این ویدئو، در مورد ساخت چین برنامههایی صحبت میکند و توضیح میدهد که چگونه میتوان با Unity برای این نوع مسائل برنامهبنویسی کرد.
آخرای این ویدئو کوه کلیمانجارو رو توی اتاق خونش رندر میکنه!
و بعدش نشون میده که چطور مغز انسان رو تو اتاق و جلوی چشمش لود میکنه و این نوع برنامهها چه کمکهای بزرگی به علم پزشکی میکنن.
🔗 ویدئو را میتوانید اینجا ببینید.
#مهران_داودی (لینکدین - بلاگ)
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
کانال تلگرام:
@SoftwarePhilosophy
______
YouTube
On .NET Live - .NET in 3D
One of our favorite things about .NET is how it runs pretty much everywhere. In this week's episode, community MVP Joost van Schaik joins us to talk about making 3D apps for various headsets, including Quest, Magic Leap 2, HoloLens, and more!
⌚ Chapters:…
⌚ Chapters:…
میدونستین راز ساختن محصولات #ai روی #dotnet در مفاهیم IChatClient و Microsoft.Extentions.AI است؟
فردا تو این لایو لیندکین قراره در مورد اینا صحبت کنم.
میبینمتون.
#cs_internship
#مهران_داودی (لینکدین - بلاگ)
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
کانال تلگرام:
@SoftwarePhilosophy
______
فردا تو این لایو لیندکین قراره در مورد اینا صحبت کنم.
میبینمتون.
#cs_internship
#مهران_داودی (لینکدین - بلاگ)
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
کانال تلگرام:
@SoftwarePhilosophy
______
Linkedin
TDD OpenAI with .NET | LinkedIn
In this live session, we will explore the AI abstractions in Microsoft.Extensions.AI and create a simple chatbot using IChatClient in a test-driven manner. First, we will write tests that fail, and then we will modify our IChatClient to pass them.
#Dubai…
#Dubai…
متدها در سیشارپ
#csharp_for_beginners
متدها در زبان برنامهنویسی C# بلوکهایی از کد هستند که مجموعهای از دستورات را در بر میگیرند. اجرای این دستورات با فراخوانی متد و ارائه آرگومانهای مورد نیاز صورت میگیرد. در C#، هر دستور اجرایی در زمینه یک متد انجام میشود. به عنوان مثال، متد Main نقطه ورود هر برنامه C# است که توسط محیط اجرای مشترک زبان (CLR) هنگام شروع برنامه فراخوانی میشود.
امضای متدها
متدها در یک کلاس، ساختار یا اینترفیس با مشخص کردن سطح دسترسی (مانند public یا private)، اصلاحکنندههای اختیاری (مانند abstract یا sealed)، نوع بازگشتی، نام متد و هر پارامتر مورد نیاز تعریف میشوند. این اجزا با هم امضای متد را تشکیل میدهند. توجه داشته باشید که نوع بازگشتی بخشی از امضای متد برای اهداف سربارگذاری متد محسوب نمیشود، اما در تعیین سازگاری بین یک نماینده (delegate) و متدی که به
آن اشاره میکند، مهم است.
فراخوانی متدها
پارامترها و آرگومانها
تعریف متد مشخص میکند که چه پارامترهایی با چه نامها و نوعهایی مورد نیاز است. هنگام فراخوانی متد، مقادیر مشخصی به نام آرگومان برای هر پارامتر ارائه میشود. این آرگومانها باید با نوع پارامتر سازگار باشند، اما نام آرگومان در کد فراخوانی لزوماً نباید با نام پارامتر در تعریف متد یکسان باشد.
🔗 مطلب کامل را در این لینک میتوانید مطالعه کنید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
کانال تلگرام:
@SoftwarePhilosophy
______
#csharp_for_beginners
متدها در زبان برنامهنویسی C# بلوکهایی از کد هستند که مجموعهای از دستورات را در بر میگیرند. اجرای این دستورات با فراخوانی متد و ارائه آرگومانهای مورد نیاز صورت میگیرد. در C#، هر دستور اجرایی در زمینه یک متد انجام میشود. به عنوان مثال، متد Main نقطه ورود هر برنامه C# است که توسط محیط اجرای مشترک زبان (CLR) هنگام شروع برنامه فراخوانی میشود.
امضای متدها
متدها در یک کلاس، ساختار یا اینترفیس با مشخص کردن سطح دسترسی (مانند public یا private)، اصلاحکنندههای اختیاری (مانند abstract یا sealed)، نوع بازگشتی، نام متد و هر پارامتر مورد نیاز تعریف میشوند. این اجزا با هم امضای متد را تشکیل میدهند. توجه داشته باشید که نوع بازگشتی بخشی از امضای متد برای اهداف سربارگذاری متد محسوب نمیشود، اما در تعیین سازگاری بین یک نماینده (delegate) و متدی که به
آن اشاره میکند، مهم است.
فراخوانی متدها
برای فراخوانی یک متد، پس از نام شیء، یک نقطه، نام متد و پرانتزها را اضافه میکنیم. آرگومانها در داخل پرانتزها قرار میگیرند و با کاما از هم جدا میشوند. به عنوان مثال، اگر کلاسی به نام Motorcycle با متدهایی مانند StartEngine، AddGas و Drive داشته باشیم، میتوانیم آنها را به صورت زیر فراخوانی کنیمTestMotorcycle moto = new TestMotorcycle();
moto.StartEngine();
moto.AddGas(15);
moto.Drive(5, 20);
double speed = moto.GetTopSpeed();
Console.WriteLine("My top speed is {0}", speed );
پارامترها و آرگومانها
تعریف متد مشخص میکند که چه پارامترهایی با چه نامها و نوعهایی مورد نیاز است. هنگام فراخوانی متد، مقادیر مشخصی به نام آرگومان برای هر پارامتر ارائه میشود. این آرگومانها باید با نوع پارامتر سازگار باشند، اما نام آرگومان در کد فراخوانی لزوماً نباید با نام پارامتر در تعریف متد یکسان باشد.
🔗 مطلب کامل را در این لینک میتوانید مطالعه کنید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
کانال تلگرام:
@SoftwarePhilosophy
______
Docs
Methods - C#
A method in C# is a code block that contains a series of statements. A program runs the statements by calling the method and specifying arguments.
نگاهی کمی فلسفیتر به MCP
مفهوم MCP بحث داغ این روزهای دنیای هوش مصنوعی است.
با نگاهی خاص میتوان گفت که MCP میتواند همان تاثیری را در دنیای هوشمصنوعی بگذارد که REST بر دنیای وب گذاشت.
در این مقاله جالب که به مقایسه این دو تکنولوژی و کارکردهایشان پرداخته، مفهوم Discovery را هم بررسی کرده که در حال حاضر بخشی از استاندارد REST نیست ولی MCP این فیچر را دارا است.
به نظرم من نقطه نظر نویسنده این مقاله در این مورد خیلی جالب است. قبلا هم در دنیای وب تکنولوژیها و پروتکلهایی وجود داشت که Discovery هم داشتند، ولی از آنجایی که معمولا هیچ برنامهنویسی از آن ویژگیها استفاده نمیکرد زیاد مورد استقبال قرار نگرفت.
ولی در دنیای هوشمصنوعی، ایجنتهای هوشمصنوعی استفاده بسیار زیادی از این ویژگی میکنند.
🔗 پیشنهاد میکنم حتما این مقاله جذاب رو بخونین.
#مهران_داودی (لینکدین - بلاگ)
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
کانال تلگرام:
@SoftwarePhilosophy
______
مفهوم MCP بحث داغ این روزهای دنیای هوش مصنوعی است.
با نگاهی خاص میتوان گفت که MCP میتواند همان تاثیری را در دنیای هوشمصنوعی بگذارد که REST بر دنیای وب گذاشت.
در این مقاله جالب که به مقایسه این دو تکنولوژی و کارکردهایشان پرداخته، مفهوم Discovery را هم بررسی کرده که در حال حاضر بخشی از استاندارد REST نیست ولی MCP این فیچر را دارا است.
به نظرم من نقطه نظر نویسنده این مقاله در این مورد خیلی جالب است. قبلا هم در دنیای وب تکنولوژیها و پروتکلهایی وجود داشت که Discovery هم داشتند، ولی از آنجایی که معمولا هیچ برنامهنویسی از آن ویژگیها استفاده نمیکرد زیاد مورد استقبال قرار نگرفت.
ولی در دنیای هوشمصنوعی، ایجنتهای هوشمصنوعی استفاده بسیار زیادی از این ویژگی میکنند.
🔗 پیشنهاد میکنم حتما این مقاله جذاب رو بخونین.
#مهران_داودی (لینکدین - بلاگ)
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
کانال تلگرام:
@SoftwarePhilosophy
______
twitchard.github.io
MCP: REST reborn?
How the web departed from its original vision, and how MCP might bring it back
مقدمهای بر کلاسها در سی شارپ
#csharp_for_beginners
در زبان برنامهنویسی C#، کلاسها (Classes) به عنوان یکی از اصلیترین ساختارهای برنامهنویسی شیءگرا عمل میکنند. کلاسها در C# قالبی برای ایجاد اشیاء (Objects) هستند و شامل دادهها (فیلدها و خصوصیات) و رفتارها (متدها) میشوند.
در این مقاله، مفهوم کلاس در C#، نحوه تعریف آن، انواع اعضای کلاس، اصول شیءگرایی مرتبط و مفاهیم پیشرفته بررسی خواهند شد.
۱. تعریف کلاس در C#
در C#، کلاس با استفاده از کلمه کلیدی class تعریف میشود. یک کلاس میتواند شامل متغیرها، خصوصیات، متدها و رویدادها باشد. در ادامه یک نمونه ساده از کلاس آورده شده است:
۲. ایجاد شیء از کلاس
برای استفاده از کلاس، باید یک نمونه (Object) از آن ایجاد کنیم:
در این کد:
• یک شیء myCar از کلاس Car ساخته شده است.
• مقادیر فیلدهای آن مقداردهی شدهاند.
• متد DisplayInfo برای نمایش اطلاعات خودرو فراخوانی شده است.
۳. فیلدها، خصوصیات و متدها
فیلدها (Fields)
فیلدها متغیرهایی هستند که دادههای کلاس را نگهداری میکنند. در مثال قبل، Brand، Model و Year فیلد بودند.
خصوصیات (Properties)
خصوصیات راهی استاندارد برای دسترسی ایمن به دادههای کلاس هستند. به جای استفاده مستقیم از فیلدها، میتوان از property استفاده کرد:
#csharp_for_beginners
در زبان برنامهنویسی C#، کلاسها (Classes) به عنوان یکی از اصلیترین ساختارهای برنامهنویسی شیءگرا عمل میکنند. کلاسها در C# قالبی برای ایجاد اشیاء (Objects) هستند و شامل دادهها (فیلدها و خصوصیات) و رفتارها (متدها) میشوند.
در این مقاله، مفهوم کلاس در C#، نحوه تعریف آن، انواع اعضای کلاس، اصول شیءگرایی مرتبط و مفاهیم پیشرفته بررسی خواهند شد.
۱. تعریف کلاس در C#
در C#، کلاس با استفاده از کلمه کلیدی class تعریف میشود. یک کلاس میتواند شامل متغیرها، خصوصیات، متدها و رویدادها باشد. در ادامه یک نمونه ساده از کلاس آورده شده است:
public class Car
{
public string Brand;
public string Model;
public int Year;
public void DisplayInfo()
{
Console.WriteLine($"Brand: {Brand}, Model: {Model}, Year: {Year}");
}
}
۲. ایجاد شیء از کلاس
برای استفاده از کلاس، باید یک نمونه (Object) از آن ایجاد کنیم:
class Program
{
static void Main()
{
Car myCar = new Car();
myCar.Brand = "Toyota";
myCar.Model = "Corolla";
myCar.Year = 2022;
myCar.DisplayInfo();
}
}
در این کد:
• یک شیء myCar از کلاس Car ساخته شده است.
• مقادیر فیلدهای آن مقداردهی شدهاند.
• متد DisplayInfo برای نمایش اطلاعات خودرو فراخوانی شده است.
۳. فیلدها، خصوصیات و متدها
فیلدها (Fields)
فیلدها متغیرهایی هستند که دادههای کلاس را نگهداری میکنند. در مثال قبل، Brand، Model و Year فیلد بودند.
خصوصیات (Properties)
خصوصیات راهی استاندارد برای دسترسی ایمن به دادههای کلاس هستند. به جای استفاده مستقیم از فیلدها، میتوان از property استفاده کرد:
public class Car
{
private string brand;
public string Brand
{
get { return brand; }
set { brand = value; }
}
}
استفاده از property باعث افزایش امنیت و کنترل بیشتر بر روی دادهها میشود.
متدها (Methods)
متدها وظایف خاصی را در کلاس انجام میدهند. در مثالهای قبل، DisplayInfo() یک متد بود که اطلاعات را چاپ میکرد.
🔗 مطلب کامل را در این لینک میتوانید مطالعه کنید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
کانال تلگرام:
@SoftwarePhilosophy
______
پشتیبانی از عملگر LeftJoin در NET 10.
در نسخه جدید NET 10.، پشتیبانی بومی از عملگر
قبل از NET 10.:
در نسخههای قبلی EF Core، برای استفاده از عملیات
مثال کد قبل از NET 10.:
پس از اضافه شدن LeftJoin در NET 10.:
با معرفی متد
مثال کد پس از NET 10.:
مزایای استفاده از LeftJoin در NET 10.:
- سادگی و خوانایی بیشتر: به جای استفاده از ترکیب پیچیدهی متدها، میتوانید با یک متد ساده به راحتی
- عملکرد بهتر: به دلیل بهینهسازیهای داخلی در EF Core، عملیات
- کاهش پیچیدگی کد: به جای کدهای طولانی و پیچیده، میتوانید کدهای سادهتری بنویسید که فهم آنها برای سایر برنامهنویسان راحتتر است.
🔗 برای مطالعه بیشتر میتوانید به این لینک مراجعه نمایید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#هوتن_همتی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
________
در نسخه جدید NET 10.، پشتیبانی بومی از عملگر
LeftJoin
در LINQ به این فریمورک اضافه شده است. این تغییر مهم در زمان نوشتن کوئریها در Entity Framework Core (EF Core) به شما کمک میکند تا کد سادهتری بنویسید و از پیچیدگیهای قبلی که نیازمند استفاده از ترکیب چندین متد مانند SelectMany
و GroupJoin
بود، رهایی یابید.قبل از NET 10.:
در نسخههای قبلی EF Core، برای استفاده از عملیات
LeftJoin
نیاز به ترکیب چندین متد پیچیده بود. در این روش، ابتدا با استفاده از GroupJoin
دادهها را به هم پیوند میدادیم، سپس از SelectMany
و DefaultIfEmpty
برای شبیهسازی رفتار LeftJoin
استفاده میکردیم.مثال کد قبل از NET 10.:
var query = students
.GroupJoin(
departments,
student => student.DepartmentID,
department => department.ID,
(student, departmentList) => new { student, subgroup = departmentList })
.SelectMany(
joinedSet => joinedSet.subgroup.DefaultIfEmpty(),
(student, department) => new
{
student.student.FirstName,
student.student.LastName,
Department = department.Name ?? "[NONE]"
});
پس از اضافه شدن LeftJoin در NET 10.:
با معرفی متد
LeftJoin
در NET 10.، نوشتن کوئریها بسیار سادهتر و خواناتر شده است. دیگر نیازی به استفاده از ترکیب چندین متد نخواهید داشت، بلکه میتوانید به راحتی از این متد جدید استفاده کنید.مثال کد پس از NET 10.:
var query = context.Students
.LeftJoin(
context.Departments,
student => student.DepartmentID,
department => department.ID,
(student, department) => new
{
student.FirstName,
student.LastName,
Department = department.Name ?? "[NONE]"
});
مزایای استفاده از LeftJoin در NET 10.:
- سادگی و خوانایی بیشتر: به جای استفاده از ترکیب پیچیدهی متدها، میتوانید با یک متد ساده به راحتی
LeftJoin
را انجام دهید.- عملکرد بهتر: به دلیل بهینهسازیهای داخلی در EF Core، عملیات
LeftJoin
به شکل بهینهتری در پایگاه داده اجرا میشود.- کاهش پیچیدگی کد: به جای کدهای طولانی و پیچیده، میتوانید کدهای سادهتری بنویسید که فهم آنها برای سایر برنامهنویسان راحتتر است.
🔗 برای مطالعه بیشتر میتوانید به این لینک مراجعه نمایید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#هوتن_همتی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
________
GitHub
core/release-notes/10.0/preview/preview1/efcore.md at main · dotnet/core
.NET news, announcements, release notes, and more! - dotnet/core
🔶 امشب ساعت ۸:۳۰ تو این لایو یوتیوب قراره در مورد مفاهیم LLM و روشهای برنامهنویسی باهاشون در داتنت صحبت کنیم، و در نهایت هم نحوه ساختن و استفاده کردن از MCP ها رو بررسی کنیم.
#dotnet #csharp #openai #llm #azure #mcp
#cs_internship
https://www.youtube.com/live/c75VZWa_wbU
کانال تلگرام:
@SoftwarePhilosophy
____
#dotnet #csharp #openai #llm #azure #mcp
#cs_internship
https://www.youtube.com/live/c75VZWa_wbU
کانال تلگرام:
@SoftwarePhilosophy
____
YouTube
LLMs + MCP in C#!
Let's see how we can use MCP servers/clients in our .NET applications!
Here Mehran and I will discuss about LLMs and MCP in C#!
Mehran's LinkedIn:
https://www.linkedin.com/in/mehrandvd
🎙️ New to streaming or looking to level up? Check out StreamYard and…
Here Mehran and I will discuss about LLMs and MCP in C#!
Mehran's LinkedIn:
https://www.linkedin.com/in/mehrandvd
🎙️ New to streaming or looking to level up? Check out StreamYard and…
نوع داده char در زبان سیشارپ
#csharp_for_beginners
در زبان برنامهنویسی #C، نوع دادهای char نمایانگر یک واحد کد UTF-16 یونیکد است که معمولاً به عنوان یک کاراکتر UTF-16 شناخته میشود. کلمه کلیدی char در #C معادل ساختار System.Char در .NET است.
ویژگیهای کلیدی نوع char:
محدوده مقادیر: از U+0000 تا U+FFFF
اندازه: 16 بیت
مقدار پیشفرض: \0 یا U+0000
عملگرهای پشتیبانیشده برای char:
مقایسهای: مانند == و !=
افزایشی و کاهشی: مانند ++ و --
عملگرهای حسابی و بیتی: این عملگرها بر روی کد پوینتهای مربوطه عمل کرده و نتیجه را به صورت مقدار int ارائه میدهند.
تبدیل نوع char:
تبدیل ضمنی به انواع عددی: char به طور ضمنی قابل تبدیل به انواع عددی صحیح مانند ushort، int، uint، long، ulong، nint و nuint است. همچنین، به انواع عددی اعشاری مانند float، double و decimal نیز قابل تبدیل است.
تبدیل صریح از انواع دیگر به char: تبدیل از سایر انواع به char به
صورت صریح انجام میشود.
مثالهایی از مقداردهی به char:
🔗 مطلب کامل را در این لینک میتوانید مطالعه کنید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
کانال تلگرام:
@SoftwarePhilosophy
______
#csharp_for_beginners
در زبان برنامهنویسی #C، نوع دادهای char نمایانگر یک واحد کد UTF-16 یونیکد است که معمولاً به عنوان یک کاراکتر UTF-16 شناخته میشود. کلمه کلیدی char در #C معادل ساختار System.Char در .NET است.
ویژگیهای کلیدی نوع char:
محدوده مقادیر: از U+0000 تا U+FFFF
اندازه: 16 بیت
مقدار پیشفرض: \0 یا U+0000
عملگرهای پشتیبانیشده برای char:
مقایسهای: مانند == و !=
افزایشی و کاهشی: مانند ++ و --
عملگرهای حسابی و بیتی: این عملگرها بر روی کد پوینتهای مربوطه عمل کرده و نتیجه را به صورت مقدار int ارائه میدهند.
تبدیل نوع char:
تبدیل ضمنی به انواع عددی: char به طور ضمنی قابل تبدیل به انواع عددی صحیح مانند ushort، int، uint، long، ulong، nint و nuint است. همچنین، به انواع عددی اعشاری مانند float، double و decimal نیز قابل تبدیل است.
تبدیل صریح از انواع دیگر به char: تبدیل از سایر انواع به char به
صورت صریح انجام میشود.
مثالهایی از مقداردهی به char:
var chars = new[]
{
'j',
'\u006A', // استفاده از توالی فرار یونیکد
'\x006A', // استفاده از توالی فرار هگزادسیمال
(char)106, // تبدیل عدد صحیح به char
};
Console.WriteLine(string.Join(" ", chars)); // خروجی: j j j j
🔗 مطلب کامل را در این لینک میتوانید مطالعه کنید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
کانال تلگرام:
@SoftwarePhilosophy
______
Docs
The char type - C# reference
Learn about the built-in character type in C#
قابلیتهای جدید Data Annotations در دات نت ۸
در نسخه جدید NET 8.، ویژگیهای Data Annotations پیشرفتهای قابل توجهی داشتهاند. این ویژگیها، کدنویسی معتبرسازی دادهها را بسیار سادهتر و تمیزتر کرده است. در ادامه به صورت گام به گام این ویژگیهای جدید را بررسی میکنیم:
۱. ویژگی Length
این Annotation برای مشخص کردن حداقل و حداکثر طول رشته استفاده میشود.
در مثال بالا:
- مقدار
- مقدار
---
۲. ویژگی Range با پارامترهای Exclusive
ویژگی
در این مثال:
- مقدار
---
۳. ویژگی AllowedValues
این Annotation مقادیر مجاز برای یک خصوصیت را مشخص میکند.
در اینجا، تنها مقادیر
---
۴. ویژگی DeniedValues
برای مشخص کردن مقادیری که غیرمجاز هستند استفاده میشود.
در این مثال، مقادیر
---
۵. ویژگی Base64String
برای معتبرسازی اینکه مقدار یک رشته به صورت
این اطمینان را ایجاد میکند که
🔗 برای مطالعه بیشتر میتوانید به این لینک مراجعه نمایید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#هوتن_همتی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
__________
در نسخه جدید NET 8.، ویژگیهای Data Annotations پیشرفتهای قابل توجهی داشتهاند. این ویژگیها، کدنویسی معتبرسازی دادهها را بسیار سادهتر و تمیزتر کرده است. در ادامه به صورت گام به گام این ویژگیهای جدید را بررسی میکنیم:
۱. ویژگی Length
این Annotation برای مشخص کردن حداقل و حداکثر طول رشته استفاده میشود.
[Length(2, 30)]
public string Name { get; set; }
[Length(2, 255)]
public string Description { get; set; }
در مثال بالا:
- مقدار
Name
باید حداقل ۲ و حداکثر ۳۰ کاراکتر داشته باشد.- مقدار
Description
باید حداقل ۲ و حداکثر ۲۵۵ کاراکتر داشته باشد.---
۲. ویژگی Range با پارامترهای Exclusive
ویژگی
Range
حالا قابلیت مشخص کردن مقادیر انحصاری را نیز دارد.[Range(1, 1000, MinimumIsExclusive = true, MaximumIsExclusive = false)]
public decimal Price { get; set; }
در این مثال:
- مقدار
Price
باید بزرگتر از ۱ (به دلیل MinimumIsExclusive = true
) و کوچکتر یا مساوی ۱۰۰۰ (به دلیل MaximumIsExclusive = false
) باشد.---
۳. ویژگی AllowedValues
این Annotation مقادیر مجاز برای یک خصوصیت را مشخص میکند.
[AllowedValues("S", "M", "L", "XL", "XXL")]
public string Size { get; set; }
در اینجا، تنها مقادیر
S
, M
, L
, XL
, XXL
برای Size
قابل قبول هستند.---
۴. ویژگی DeniedValues
برای مشخص کردن مقادیری که غیرمجاز هستند استفاده میشود.
[DeniedValues("Electronics", "Computers")]
public string Category { get; set; }
در این مثال، مقادیر
Electronics
و Computers
برای Category
ممنوع هستند.---
۵. ویژگی Base64String
برای معتبرسازی اینکه مقدار یک رشته به صورت
Base64
باشد استفاده میشود.[Base64String]
public string Image { get; set; }
این اطمینان را ایجاد میکند که
Image
حاوی یک رشته معتبر Base64
است.🔗 برای مطالعه بیشتر میتوانید به این لینک مراجعه نمایید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#هوتن_همتی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
__________
Docs
System.ComponentModel.DataAnnotations Namespace
Provides attribute classes that are used to define metadata for ASP.NET MVC and ASP.NET data controls.
آشنایی با آرایهها در زبان سیشارپ
#csharp_for_beginners
در زبان برنامهنویسی سیشارپ، آرایهها یکی از ساختارهای دادهای پایه هستند که به برنامهنویسان اجازه میدهند مجموعهای از مقادیر با نوع یکسان را در یک ساختار ذخیرهسازی کنند. استفاده از آرایهها باعث سازماندهی بهتر دادهها و دسترسی سریعتر به اطلاعات میشود. در این مقاله به معرفی انواع آرایهها، نحوه تعریف و استفاده از آنها در سیشارپ میپردازیم.
تعریف آرایه
آرایه در سیشارپ شیئی است که شامل عناصر متعددی از یک نوع مشخص میباشد. هنگام تعریف آرایه، باید نوع دادهای عناصر و تعداد آنها را مشخص کنیم. بهعنوان مثال:
در این مثال، یک آرایه از اعداد صحیح تعریف شده که میتواند پنج مقدار را در خود جای دهد. اندیسگذاری آرایهها در سیشارپ از صفر شروع میشود؛ یعنی اولین عنصر در اندیس ۰ قرار دارد.
مقداردهی اولیه به آرایه
میتوان هنگام تعریف آرایه، مقداردهی اولیه نیز انجام داد:
در این حالت، نیازی به تعیین اندازه آرایه نیست، زیرا بر اساس تعداد مقادیر دادهشده مشخص میشود.
انواع آرایهها در سیشارپ
زبان سیشارپ از چند نوع آرایه پشتیبانی میکند:
۱. آرایههای یکبعدی
رایجترین نوع آرایه است که فقط یک بُعد دارد:
۲. آرایههای چندبعدی
این نوع آرایهها مانند ماتریسها میتوانند بیش از یک بُعد داشته باشند:
۳. آرایههای دندانهدار (Jagged Arrays)
آرایههایی از آرایهها هستند؛ یعنی هر عنصر خود میتواند یک آرایه مجزا باشد، حتی با طول متفاوت:
دسترسی به عناصر آرایه
برای دسترسی یا تغییر مقدار یک عنصر از آرایه، از اندیس آن استفاده میکنیم:
🔗 مطلب کامل را در این لینک میتوانید مطالعه کنید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
کانال تلگرام:
@SoftwarePhilosophy
______
#csharp_for_beginners
در زبان برنامهنویسی سیشارپ، آرایهها یکی از ساختارهای دادهای پایه هستند که به برنامهنویسان اجازه میدهند مجموعهای از مقادیر با نوع یکسان را در یک ساختار ذخیرهسازی کنند. استفاده از آرایهها باعث سازماندهی بهتر دادهها و دسترسی سریعتر به اطلاعات میشود. در این مقاله به معرفی انواع آرایهها، نحوه تعریف و استفاده از آنها در سیشارپ میپردازیم.
تعریف آرایه
آرایه در سیشارپ شیئی است که شامل عناصر متعددی از یک نوع مشخص میباشد. هنگام تعریف آرایه، باید نوع دادهای عناصر و تعداد آنها را مشخص کنیم. بهعنوان مثال:
csharpCopyEditint[] numbers = new int[5];
در این مثال، یک آرایه از اعداد صحیح تعریف شده که میتواند پنج مقدار را در خود جای دهد. اندیسگذاری آرایهها در سیشارپ از صفر شروع میشود؛ یعنی اولین عنصر در اندیس ۰ قرار دارد.
مقداردهی اولیه به آرایه
میتوان هنگام تعریف آرایه، مقداردهی اولیه نیز انجام داد:
csharpCopyEditstring[] names = { "Ali", "Sara", "Reza" };
در این حالت، نیازی به تعیین اندازه آرایه نیست، زیرا بر اساس تعداد مقادیر دادهشده مشخص میشود.
انواع آرایهها در سیشارپ
زبان سیشارپ از چند نوع آرایه پشتیبانی میکند:
۱. آرایههای یکبعدی
رایجترین نوع آرایه است که فقط یک بُعد دارد:
csharpCopyEditdouble[] prices = new double[10];
۲. آرایههای چندبعدی
این نوع آرایهها مانند ماتریسها میتوانند بیش از یک بُعد داشته باشند:
csharpCopyEditint[,] matrix = new int[3, 4]; // یک ماتریس ۳ در ۴
۳. آرایههای دندانهدار (Jagged Arrays)
آرایههایی از آرایهها هستند؛ یعنی هر عنصر خود میتواند یک آرایه مجزا باشد، حتی با طول متفاوت:
csharpCopyEditint[][] jaggedArray = new int[2][];
jaggedArray[0] = new int[3];
jaggedArray[1] = new int[5];
دسترسی به عناصر آرایه
برای دسترسی یا تغییر مقدار یک عنصر از آرایه، از اندیس آن استفاده میکنیم:
csharpCopyEditnumbers[0] = 10;
Console.WriteLine(numbers[0]);
🔗 مطلب کامل را در این لینک میتوانید مطالعه کنید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
کانال تلگرام:
@SoftwarePhilosophy
______
Docs
The array reference type - C# reference
Store multiple variables of the same type in an array data structure in C#. Declare an array by specifying a type or specify Object to store any type.
ابزار string visualizer در ویژوال استودیو
یکی از دم دستترین امکانات #visualstudio ابزار string visualizer است. به محض اینکه موس روی متغیری قرار بگیره، این ابزار مقدار string اون متغییر رو نشون میده.
خب تا اینجا که چیزی نیست!
ابزار string visualizer یه امکان مفید و بسیار کاربردی داره که شاید تا به حال خیلی بهش دقت نکرده باشید. شما میتونید نوع string visualizer خودتون رو از قسمت string manipulation انتخاب کنید. مثلا اگه مقدارش یه JWT بود، میتونید مقدار Decode شده JWT رو مشاهده کنید.
🔗 برای مطالعه بیشتر میتوانید به این لینک مراجعه نمایید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#حامد_حاجیلو (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
______
یکی از دم دستترین امکانات #visualstudio ابزار string visualizer است. به محض اینکه موس روی متغیری قرار بگیره، این ابزار مقدار string اون متغییر رو نشون میده.
خب تا اینجا که چیزی نیست!
ابزار string visualizer یه امکان مفید و بسیار کاربردی داره که شاید تا به حال خیلی بهش دقت نکرده باشید. شما میتونید نوع string visualizer خودتون رو از قسمت string manipulation انتخاب کنید. مثلا اگه مقدارش یه JWT بود، میتونید مقدار Decode شده JWT رو مشاهده کنید.
🔗 برای مطالعه بیشتر میتوانید به این لینک مراجعه نمایید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#حامد_حاجیلو (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
______
Docs
String Visualizer (Text, XML, HTML, JSON) - Visual Studio (Windows)
View strings with the built-in String Visualizer dialog box while you are debugging in Visual Studio.
نوع دادهی bool در زبان برنامهنویسی سیشارپ
#csharp_for_beginners
در زبان برنامهنویسی سیشارپ، نوع دادهای bool یک نوع دادهی پایهای (Built-in Type) است که فقط میتواند یکی از دو مقدار true یا false را بپذیرد. این نوع داده نقش مهمی در کنترل جریان برنامه، تصمیمگیریها، حلقهها و بسیاری از عملیات منطقی ایفا میکند.
تعریف bool
در سیشارپ، bool یک کلمه کلیدی است که معادل کاملتر نوع System.Boolean از فضای نام System میباشد. این یعنی وقتی از bool استفاده میکنید، در واقع با یک شی از نوع System.Boolean کار میکنید:
مقادیر مجاز
یک متغیر از نوع bool تنها میتواند دو مقدار زیر را داشته باشد:
• true (صحیح)
• false (نادرست)
تلاش برای مقداردهی دیگر به یک متغیر bool باعث خطای کامپایلر خواهد شد.
کاربردهای رایج bool
نوع bool به طور گستردهای در عبارات شرطی مانند if، حلقههای while و do-while، و همچنین در اپراتورهای منطقی به کار میرود:
در این مثال، برنامه براساس مقدار متغیر isLoggedIn تصمیم میگیرد که چه پیامی نمایش داده شود.
عملیات منطقی روی bool
بر روی متغیرهای bool میتوانید عملیات منطقی انجام دهید، مثل:
• && (AND منطقی)
• || (OR منطقی)
• ! (NOT منطقی)
🔗 مطلب کامل را در این لینک میتوانید مطالعه کنید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
کانال تلگرام:
@SoftwarePhilosophy
______
#csharp_for_beginners
در زبان برنامهنویسی سیشارپ، نوع دادهای bool یک نوع دادهی پایهای (Built-in Type) است که فقط میتواند یکی از دو مقدار true یا false را بپذیرد. این نوع داده نقش مهمی در کنترل جریان برنامه، تصمیمگیریها، حلقهها و بسیاری از عملیات منطقی ایفا میکند.
تعریف bool
در سیشارپ، bool یک کلمه کلیدی است که معادل کاملتر نوع System.Boolean از فضای نام System میباشد. این یعنی وقتی از bool استفاده میکنید، در واقع با یک شی از نوع System.Boolean کار میکنید:
bool isActive = true;
bool isComplete = false;
مقادیر مجاز
یک متغیر از نوع bool تنها میتواند دو مقدار زیر را داشته باشد:
• true (صحیح)
• false (نادرست)
تلاش برای مقداردهی دیگر به یک متغیر bool باعث خطای کامپایلر خواهد شد.
کاربردهای رایج bool
نوع bool به طور گستردهای در عبارات شرطی مانند if، حلقههای while و do-while، و همچنین در اپراتورهای منطقی به کار میرود:
bool isLoggedIn = true;
if (isLoggedIn)
{
Console.WriteLine("Welcome back!");
}
else
{
Console.WriteLine("Please log in.");
}
در این مثال، برنامه براساس مقدار متغیر isLoggedIn تصمیم میگیرد که چه پیامی نمایش داده شود.
عملیات منطقی روی bool
بر روی متغیرهای bool میتوانید عملیات منطقی انجام دهید، مثل:
• && (AND منطقی)
• || (OR منطقی)
• ! (NOT منطقی)
bool hasUsername = true;
bool hasPassword = false;
if (hasUsername && hasPassword)
{
Console.WriteLine("Login successful.");
}
else
{
Console.WriteLine("Missing username or password.");
}
🔗 مطلب کامل را در این لینک میتوانید مطالعه کنید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
کانال تلگرام:
@SoftwarePhilosophy
______
Docs
bool type - C# reference
Learn about the built-in boolean type in C#
چرا میگن «C# is Java done right»؟
هر دو زبان جاوا و سیشارپ زبانهای خیلی قدرتمندی هستن و در پروژههای بزرگی استفاده میشن.
از طرفی باید قبول کرد که از لحاظ syntax، زبان سیشارپ پیشرفتهتر و خوشدستتر است.
این ویدئو ویژگیهای مهمی که در سیشارپ بهتر پیادهسازی شدن و باعث میشه زبان مدرنتری حساب بشه رو توضیح میده.
از معروفترین تفاوتها، پیادهسازی ناقص Generic ها در جاوا و پیادهسازی خوبش در سیشارپ است.
ویژگی Property و Async/Await هم یکی از ویژگیهای خیلی مهمه که مدتهاست در سیشارپ وجود داره.
همینطور LINQ ویژگی خیلی جذابیه که پیادهسازی مشابهش تو جاوا هم خیلی دیرتر اضافه شد، و هم اینکه به خوشدستی پیادهسازی سیشارپ نیست.
🔗 تو این ویدئوی کوتاه این تفاوتها رو خیلی واضحتر و لذتبخشتر توضیح داده.
نظر شما در مورد این دو تا زبان چیه؟
#java #csharp #dotnet
#مهران_داودی (لینکدین - بلاگ)
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
کانال تلگرام:
@SoftwarePhilosophy
______
هر دو زبان جاوا و سیشارپ زبانهای خیلی قدرتمندی هستن و در پروژههای بزرگی استفاده میشن.
از طرفی باید قبول کرد که از لحاظ syntax، زبان سیشارپ پیشرفتهتر و خوشدستتر است.
این ویدئو ویژگیهای مهمی که در سیشارپ بهتر پیادهسازی شدن و باعث میشه زبان مدرنتری حساب بشه رو توضیح میده.
از معروفترین تفاوتها، پیادهسازی ناقص Generic ها در جاوا و پیادهسازی خوبش در سیشارپ است.
ویژگی Property و Async/Await هم یکی از ویژگیهای خیلی مهمه که مدتهاست در سیشارپ وجود داره.
همینطور LINQ ویژگی خیلی جذابیه که پیادهسازی مشابهش تو جاوا هم خیلی دیرتر اضافه شد، و هم اینکه به خوشدستی پیادهسازی سیشارپ نیست.
🔗 تو این ویدئوی کوتاه این تفاوتها رو خیلی واضحتر و لذتبخشتر توضیح داده.
نظر شما در مورد این دو تا زبان چیه؟
#java #csharp #dotnet
#مهران_داودی (لینکدین - بلاگ)
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
کانال تلگرام:
@SoftwarePhilosophy
______
YouTube
C# is Java done right
Java devs don't want to hear this, but C# is Java done right... supposedly. That's what people are saying. But why? Why do people think C# is Java done right? That's what we go over in this video. Enjoy!
Also note, I'm a Java 8 dev. I try my best to keep…
Also note, I'm a Java 8 dev. I try my best to keep…
بررسی کامل انواع عددی صحیح (Integral Numeric Types) در زبان سی شارپ
#csharp_for_beginners
در زبان برنامهنویسی سی شارپ، انواع دادهای عددی صحیح (Integral Numeric Types) برای نمایش اعداد صحیح بدون قسمت اعشاری استفاده میشوند. این انواع دادهای بخش جداییناپذیری از عملیات ریاضی، شمارش، محاسبه شاخص آرایهها، و کنترل جریان برنامه هستند. در این مقاله با جزئیات کامل انواع دادهای صحیح، ویژگیها، تفاوتها و کاربردهای آنها آشنا خواهیم شد.
دستهبندی انواع عددی صحیح
انواع عددی صحیح در سی شارپ به دو دسته اصلی تقسیم میشوند:
۱. انواع علامتدار (Signed): میتوانند اعداد منفی و مثبت را نمایش دهند.
۲. انواع بدون علامت (Unsigned): فقط اعداد مثبت و صفر را پشتیبانی میکنند.
در جدول زیر، لیستی از انواع دادهای صحیح در سی شارپ به همراه ویژگیهای کلیدی آنها آمده است:
ویژگیهای عمومی انواع عددی صحیح
تمامی انواع بالا ویژگیهای مشترک زیر را دارند:
• نوع مقدار (Value Type): برخلاف کلاسها، این نوعها مستقیماً مقدار را نگهداری میکنند، نه اشاره به آن.
• مقدار پیشفرض: برای همه این نوعها مقدار پیشفرض برابر صفر (0) است.
• ثابتهای MinValue و MaxValue: هر نوع دارای دو ثابت برای نمایش کمترین و بیشترین مقدار قابل نگهداری است.
• پشتیبانی از عملیات ریاضی: از جمله +, -, *, /, %، عملیات بیتی مانند &, |, ^, ~، عملیات مقایسهای مثل <, >, ==, !=، و عملیات شیفت <<, >>.
انواع nint و nuint
این دو نوع در نسخههای جدید سی شارپ معرفی شدهاند و برای سناریوهایی مناسباند که اندازه نوع باید متناسب با معماری سیستم (32 یا 64 بیت) باشد، مانند کار با اشارهگرها یا توابع سطح پایین سیستم عامل. این نوعها بهترتیب معادل با IntPtr و UIntPtr در .NET هستند.
استفاده از لیترالهای عددی
تبدیل نوع (Type Conversion)
هنگام تبدیل میان انواع عددی صحیح، باید به موارد زیر توجه کرد:
• تبدیل ضمنی (Implicit): زمانی که داده از نوع کوچکتر به نوع بزرگتر تبدیل میشود (مثلاً int به long)، بدون نیاز به دستور خاص.
• تبدیل صریح (Explicit): در حالت معکوس (مثلاً long به int)، به تبدیل صریح یا cast نیاز است و ممکن است دقت از بین برود.
🔗 مطلب کامل را در این لینک میتوانید مطالعه کنید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
کانال تلگرام:
@SoftwarePhilosophy
______
#csharp_for_beginners
در زبان برنامهنویسی سی شارپ، انواع دادهای عددی صحیح (Integral Numeric Types) برای نمایش اعداد صحیح بدون قسمت اعشاری استفاده میشوند. این انواع دادهای بخش جداییناپذیری از عملیات ریاضی، شمارش، محاسبه شاخص آرایهها، و کنترل جریان برنامه هستند. در این مقاله با جزئیات کامل انواع دادهای صحیح، ویژگیها، تفاوتها و کاربردهای آنها آشنا خواهیم شد.
دستهبندی انواع عددی صحیح
انواع عددی صحیح در سی شارپ به دو دسته اصلی تقسیم میشوند:
۱. انواع علامتدار (Signed): میتوانند اعداد منفی و مثبت را نمایش دهند.
۲. انواع بدون علامت (Unsigned): فقط اعداد مثبت و صفر را پشتیبانی میکنند.
در جدول زیر، لیستی از انواع دادهای صحیح در سی شارپ به همراه ویژگیهای کلیدی آنها آمده است:
sbyte - 8 بیت
byte - 8 بیت
short - 16 بیت
ushort - 16 بیت
int - 32 بیت
uint - 32 بیت
long - 64 بیت
ulong - 64 بیت
nint - 32 یا 64 بیت (وابسته به معماری)
nuint - 32 یا 64 بیت (وابسته به معماری)
ویژگیهای عمومی انواع عددی صحیح
تمامی انواع بالا ویژگیهای مشترک زیر را دارند:
• نوع مقدار (Value Type): برخلاف کلاسها، این نوعها مستقیماً مقدار را نگهداری میکنند، نه اشاره به آن.
• مقدار پیشفرض: برای همه این نوعها مقدار پیشفرض برابر صفر (0) است.
• ثابتهای MinValue و MaxValue: هر نوع دارای دو ثابت برای نمایش کمترین و بیشترین مقدار قابل نگهداری است.
• پشتیبانی از عملیات ریاضی: از جمله +, -, *, /, %، عملیات بیتی مانند &, |, ^, ~، عملیات مقایسهای مثل <, >, ==, !=، و عملیات شیفت <<, >>.
انواع nint و nuint
این دو نوع در نسخههای جدید سی شارپ معرفی شدهاند و برای سناریوهایی مناسباند که اندازه نوع باید متناسب با معماری سیستم (32 یا 64 بیت) باشد، مانند کار با اشارهگرها یا توابع سطح پایین سیستم عامل. این نوعها بهترتیب معادل با IntPtr و UIntPtr در .NET هستند.
استفاده از لیترالهای عددی
در سی شارپ میتوان از لیترالها برای مقداردهی مستقیم استفاده کرد. بهعنوان مثال:int a = 100;
uint b = 100u;
long c = 100L;
ulong d = 100UL;
تبدیل نوع (Type Conversion)
هنگام تبدیل میان انواع عددی صحیح، باید به موارد زیر توجه کرد:
• تبدیل ضمنی (Implicit): زمانی که داده از نوع کوچکتر به نوع بزرگتر تبدیل میشود (مثلاً int به long)، بدون نیاز به دستور خاص.
• تبدیل صریح (Explicit): در حالت معکوس (مثلاً long به int)، به تبدیل صریح یا cast نیاز است و ممکن است دقت از بین برود.
int x = 123;
long y = x; // تبدیل ضمنی
long a = 1000L;
int b = (int)a; // تبدیل صریح
🔗 مطلب کامل را در این لینک میتوانید مطالعه کنید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
کانال تلگرام:
@SoftwarePhilosophy
______
Docs
Integral numeric types
Learn the range, storage size, and uses for each of the integral numeric types.
آشنایی با کلاسها در زبان برنامهنویسی سی شارپ
#csharp_for_beginners
در زبان برنامهنویسی سی شارپ، کلاسها (Classes) یکی از اصلیترین اجزای برنامهنویسی شیءگرا هستند. کلاسها ساختارهایی هستند که به برنامهنویس اجازه میدهند اشیاء (Objects) را تعریف کرده و رفتار و دادههای آنها را سازماندهی کنند. این مفهوم به ما کمک میکند تا برنامههایی ماژولار، قابل نگهداری و قابل گسترش بنویسیم.
تعریف کلاس
یک کلاس در سی شارپ مانند یک الگو یا قالب است. این قالب ویژگیها (Properties) و رفتارها (Methods)یی را تعریف میکند که یک شیء از آن کلاس میتواند داشته باشد. برای مثال، اگر بخواهیم یک کلاس به نام Car تعریف کنیم، میتوانیم ویژگیهایی مانند Color یا Speed و رفتارهایی مانند Drive() یا Stop() برای آن مشخص کنیم.
مثال سادهای از تعریف کلاس:
ایجاد نمونه (Instance)
برای استفاده از یک کلاس، باید از آن نمونهسازی کنیم. این نمونه یک شیء واقعی از کلاس است که میتوان از آن در برنامه استفاده کرد:
سازندهها (Constructors)
سازندهها متدی خاص در کلاس هستند که هنگام ایجاد یک شیء جدید فراخوانی میشوند. آنها معمولاً برای مقداردهی اولیه به ویژگیهای شیء استفاده میشوند:
و استفاده از آن:
دسترسی و سطح دسترسی
کلمات کلیدی مانند public، private، و protected تعیین میکنند که اعضای کلاس از کجا قابل دسترسی هستند. به طور پیشفرض، اعضای کلاس private هستند، یعنی فقط از داخل خود کلاس قابل دسترسیاند.
وراثت (Inheritance)
یکی از ویژگیهای قدرتمند کلاسها، وراثت است. یک کلاس میتواند از کلاس دیگری ارثبری کند و ویژگیها و رفتارهای آن را به ارث ببرد
🔗 مطلب کامل را در این لینک میتوانید مطالعه کنید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
کانال تلگرام:
@SoftwarePhilosophy
______
#csharp_for_beginners
در زبان برنامهنویسی سی شارپ، کلاسها (Classes) یکی از اصلیترین اجزای برنامهنویسی شیءگرا هستند. کلاسها ساختارهایی هستند که به برنامهنویس اجازه میدهند اشیاء (Objects) را تعریف کرده و رفتار و دادههای آنها را سازماندهی کنند. این مفهوم به ما کمک میکند تا برنامههایی ماژولار، قابل نگهداری و قابل گسترش بنویسیم.
تعریف کلاس
یک کلاس در سی شارپ مانند یک الگو یا قالب است. این قالب ویژگیها (Properties) و رفتارها (Methods)یی را تعریف میکند که یک شیء از آن کلاس میتواند داشته باشد. برای مثال، اگر بخواهیم یک کلاس به نام Car تعریف کنیم، میتوانیم ویژگیهایی مانند Color یا Speed و رفتارهایی مانند Drive() یا Stop() برای آن مشخص کنیم.
مثال سادهای از تعریف کلاس:
public class Car
{
public string Color;
public int Speed;
public void Drive()
{
Console.WriteLine("Driving...");
}
}
ایجاد نمونه (Instance)
برای استفاده از یک کلاس، باید از آن نمونهسازی کنیم. این نمونه یک شیء واقعی از کلاس است که میتوان از آن در برنامه استفاده کرد:
Car myCar = new Car();
myCar.Color = "Red";
myCar.Drive();
سازندهها (Constructors)
سازندهها متدی خاص در کلاس هستند که هنگام ایجاد یک شیء جدید فراخوانی میشوند. آنها معمولاً برای مقداردهی اولیه به ویژگیهای شیء استفاده میشوند:
public class Car
{
public string Color;
// سازنده
public Car(string color)
{
Color = color;
}
}
و استفاده از آن:
Car myCar = new Car("Blue");
دسترسی و سطح دسترسی
کلمات کلیدی مانند public، private، و protected تعیین میکنند که اعضای کلاس از کجا قابل دسترسی هستند. به طور پیشفرض، اعضای کلاس private هستند، یعنی فقط از داخل خود کلاس قابل دسترسیاند.
وراثت (Inheritance)
یکی از ویژگیهای قدرتمند کلاسها، وراثت است. یک کلاس میتواند از کلاس دیگری ارثبری کند و ویژگیها و رفتارهای آن را به ارث ببرد
public class Vehicle
{
public void Start() => Console.WriteLine("Starting...");
}
public class Car : Vehicle
{
public void Drive() => Console.WriteLine("Driving...");
}
🔗 مطلب کامل را در این لینک میتوانید مطالعه کنید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
کانال تلگرام:
@SoftwarePhilosophy
______
Docs
Les classes dans le système de types C#. - C#
Découvrez les types de classes, comment utiliser les classes et comment créer de nouvelles déclarations de types de classes pour votre application.
کار با دادههای JSON در SQL Server
فرمت JSON یک فرمت سبک و محبوب برای تبادل و ذخیره دادههای بدون ساختار است. از SQL Server 2016 به بعد، قابلیتهای بومی برای پردازش JSON در SQL Server، Azure SQL Database، Azure SQL Managed Instance، Azure Synapse Analytics و SQL Database در Microsoft Fabric وجود دارد. این یعنی ترکیبی از انعطاف NoSQL و قدرت دیتابیسهای رابطهای!
قابلیتهای کلیدی:
- استخراج مقادیر:
۱. قابلیت
۲. قابلیت
۳. قابلیت
۴. قابلیت
- تبدیل JSON به ردیفها:
- با
- نوع داده json:
- در SQL Server 2025 برای ذخیرهسازی و پردازش بهینهتر معرفی شده است.
- فرمتبندی خروجی به JSON:
- با
- ساخت اشیاء و آرایهها:
- توابع
کاربردها:
- سادهسازی مدلهای داده پیچیده
- مدیریت دادههای IoT، لاگها و REST API
- ذخیره JSON در ستونهای
---
تابع JSON_OBJECTAGG در Transact-SQL
این تابع به شما کمک میکند از دادههای SQL (ستونها، مقادیر یا نتایج تجمیعی) شیء JSON بسازید. زوجهای کلید/مقدار را دریافت میکند و خروجی استاندارد تحویل میدهد.
ویژگیها:
- استفاده در SELECT:
- قابل ترکیب با
- ساخت آرایههای JSON:
- برای آرایه به جای شیء، از
- دسترسی:
- در Azure SQL Database، Azure SQL Managed Instance (با Always-up-to-date) و Fabric Data Warehouse در دسترس است.
مثالهای کدی
مثال ۱: ساخت شیء JSON از دادههای یک جدول
فرض کنید جدولی به اسم
خروجی نمونه:
مثال ۲: ترکیب با GROUP BY برای دادههای تجمیعی
فرض کنید جدولی به اسم
خروجی نمونه:
‼️برای دیدن نمونه مثال و مطالعه بیشتر به لینکهای زیر مراجعه کنید:
🔗لینک اول
🔗لینک دوم
🔗لینک سوم
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#هوتن_همتی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
_______
فرمت JSON یک فرمت سبک و محبوب برای تبادل و ذخیره دادههای بدون ساختار است. از SQL Server 2016 به بعد، قابلیتهای بومی برای پردازش JSON در SQL Server، Azure SQL Database، Azure SQL Managed Instance، Azure Synapse Analytics و SQL Database در Microsoft Fabric وجود دارد. این یعنی ترکیبی از انعطاف NoSQL و قدرت دیتابیسهای رابطهای!
قابلیتهای کلیدی:
- استخراج مقادیر:
۱. قابلیت
ISJSON
: بررسی صحت فرمت JSON ۲. قابلیت
JSON_VALUE
: استخراج مقادیر اسکالر ۳. قابلیت
JSON_QUERY
: استخراج اشیاء یا آرایهها ۴. قابلیت
JSON_MODIFY
: ویرایش مقادیر JSON - تبدیل JSON به ردیفها:
- با
OPENJSON
دادههای JSON را به جدول تبدیل کنید. - نوع داده json:
- در SQL Server 2025 برای ذخیرهسازی و پردازش بهینهتر معرفی شده است.
- فرمتبندی خروجی به JSON:
- با
FOR JSON
نتایج کوئری را به فرمت JSON تبدیل کنید. - ساخت اشیاء و آرایهها:
- توابع
JSON_OBJECTAGG
و JSON_ARRAYAGG
برای تولید ساختارهای JSON. کاربردها:
- سادهسازی مدلهای داده پیچیده
- مدیریت دادههای IoT، لاگها و REST API
- ذخیره JSON در ستونهای
NVARCHAR
با امکان ایندکسگذاری ---
تابع JSON_OBJECTAGG در Transact-SQL
این تابع به شما کمک میکند از دادههای SQL (ستونها، مقادیر یا نتایج تجمیعی) شیء JSON بسازید. زوجهای کلید/مقدار را دریافت میکند و خروجی استاندارد تحویل میدهد.
ویژگیها:
- استفاده در SELECT:
- قابل ترکیب با
GROUP BY
یا GROUPING SETS
. - ساخت آرایههای JSON:
- برای آرایه به جای شیء، از
JSON_ARRAYAGG
استفاده کنید. - دسترسی:
- در Azure SQL Database، Azure SQL Managed Instance (با Always-up-to-date) و Fabric Data Warehouse در دسترس است.
مثالهای کدی
مثال ۱: ساخت شیء JSON از دادههای یک جدول
فرض کنید جدولی به اسم
Employees
داریم با ستونهای EmployeeID
و Name
. میخواهیم یک شیء JSON بسازیم که EmployeeID
کلید و Name
مقدار باشد.SELECT JSON_OBJECTAGG(EmployeeID, Name) AS EmployeeJson
FROM Employees;
خروجی نمونه:
{
"1": "Ali Rezaei",
"2": "Sara Ahmadi",
"3": "Mohammad Hosseini"
}
مثال ۲: ترکیب با GROUP BY برای دادههای تجمیعی
فرض کنید جدولی به اسم
Orders
داریم با ستونهای CustomerID
و OrderAmount
. میخواهیم برای هر مشتری مجموع سفارشات را به صورت JSON برگردانیم.SELECT CustomerID,
JSON_OBJECTAGG(OrderID, OrderAmount) AS OrderSummary
FROM Orders
GROUP BY CustomerID;
خروجی نمونه:
[
{"CustomerID": 101, "OrderSummary": {"Order1": 500, "Order2": 750}},
{"CustomerID": 102, "OrderSummary": {"Order3": 300}}
]
‼️برای دیدن نمونه مثال و مطالعه بیشتر به لینکهای زیر مراجعه کنید:
🔗لینک اول
🔗لینک دوم
🔗لینک سوم
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#هوتن_همتی (لینکدین)
کانال تلگرام:
@SoftwarePhilosophy
_______
Microsoft News
Announcing the General Availability (GA) of JSON data type & JSON aggregates…
We are excited to announce the General Availability of the native JSON data type and JSON aggregates.
Forwarded from فلسفه دیزاین
طراحی، توسعه و انتشار یک وباپ با استفاده از هوش مصنوعی
هوش مصنوعی در حال تغییر نحوهی طراحی و توسعهی وباپلیکیشنهاست و اکنون میتوان کل فرآیند را از ایده تا انتشار تنها با کمک ابزارهای مبتنی بر هوش مصنوعی انجام داد. این تحول به طراحان و توسعهدهندگان اجازه میدهد تا بدون نیاز به مهارتهای عمیق برنامهنویسی، اپلیکیشنهایی حرفهای ایجاد کنند. در این مقاله، سه مرحلهی کلیدی برای طراحی، توسعه و انتشار یک وباپ تنها با استفاده از هوش مصنوعی بررسی شده است.
اولین مرحله، ایجاد یک ایده و طراحی رابط کاربری با استفاده از ابزارهای هوش مصنوعی مانند Figma و Uizard است. این ابزارها میتوانند از طریق توصیف متنی یا تصاویر ورودی، طرحهای اولیه را ایجاد کنند و به کاربران کمک کنند تا بدون نیاز به مهارت طراحی پیچیده، یک رابط کاربری مناسب بسازند. برخی از این ابزارها همچنین امکان پیشنهاد تغییرات و بهینهسازی طراحی را بر اساس بهترین شیوههای UX ارائه میدهند.
پس از طراحی، مرحلهی توسعه آغاز میشود که در آن هوش مصنوعی میتواند کدهای موردنیاز را تولید کند. ابزارهایی مانند ChatGPT (با قابلیت کدنویسی)، GitHub Copilot و Replit به کاربران امکان میدهند تا کدهای HTML، CSS، و JavaScript را تنها از طریق دستورات متنی ایجاد کنند. این فرایند باعث کاهش نیاز به دانش عمیق کدنویسی شده و توسعهی وباپلیکیشنها را برای افراد بیشتری قابلدسترس میکند.
پس از تولید کد، گام بعدی تست و بهینهسازی اپلیکیشن است. ابزارهای تست خودکار مبتنی بر هوش مصنوعی مانند Testim و Applitools میتوانند به سرعت باگها و مشکلات احتمالی را شناسایی کنند. این ابزارها، با استفاده از یادگیری ماشینی، میتوانند پیشنهاداتی برای بهبود عملکرد، امنیت و سازگاری وباپ ارائه دهند. این مرحله از اهمیت ویژهای برخوردار است، زیرا کیفیت محصول نهایی را تضمین میکند.
در نهایت، فرآیند انتشار و میزبانی وباپ نیز میتواند بهطور کامل توسط ابزارهای هوش مصنوعی انجام شود. پلتفرمهایی مانند Vercel و Netlify امکان استقرار خودکار را فراهم کرده و میتوانند بهینهسازیهایی مانند بارگذاری سریعتر صفحات و بهبود عملکرد سئو را پیشنهاد دهند. علاوه بر این، برخی ابزارهای هوش مصنوعی میتوانند توصیههایی برای ارتقای تجربهی کاربری و بهبود تعاملات کاربران ارائه کنند.
این تحول نشان میدهد که هوش مصنوعی نه تنها فرآیند طراحی و توسعه را سریعتر و آسانتر کرده، بلکه دسترسی به توسعهی وب را برای افراد بیشتری ممکن ساخته است. در گذشته، ساخت یک وباپلیکیشن نیاز به تیمهای تخصصی داشت، اما امروزه افراد میتوانند با ترکیب ابزارهای هوش مصنوعی، بهتنهایی یک محصول کامل را از ابتدا تا انتها توسعه دهند.
در حالی که این فناوری فرصتهای بزرگی ایجاد کرده است، همچنان چالشهایی مانند وابستگی بیش از حد به هوش مصنوعی، محدودیتهای سفارشیسازی و نیاز به کنترل کیفی انسانی وجود دارد. با این حال، آیندهی طراحی و توسعهی وباپلیکیشنها به وضوح به سمت خودکارسازی بیشتر حرکت میکند و طراحان و توسعهدهندگانی که از این ابزارها به درستی استفاده کنند، میتوانند بهرهوری خود را به طرز چشمگیری افزایش دهند.
🔗 برای مطالعه کامل مقاله میتوانید به این لینک مراجعه کنید.
(مدت زمان مطالعه: ۴ دقیقه)
گردآورنده: فاطمه حیدری
#طراحی_محصول
#AI
@Dexign فلسفه دیزاین
______
هوش مصنوعی در حال تغییر نحوهی طراحی و توسعهی وباپلیکیشنهاست و اکنون میتوان کل فرآیند را از ایده تا انتشار تنها با کمک ابزارهای مبتنی بر هوش مصنوعی انجام داد. این تحول به طراحان و توسعهدهندگان اجازه میدهد تا بدون نیاز به مهارتهای عمیق برنامهنویسی، اپلیکیشنهایی حرفهای ایجاد کنند. در این مقاله، سه مرحلهی کلیدی برای طراحی، توسعه و انتشار یک وباپ تنها با استفاده از هوش مصنوعی بررسی شده است.
اولین مرحله، ایجاد یک ایده و طراحی رابط کاربری با استفاده از ابزارهای هوش مصنوعی مانند Figma و Uizard است. این ابزارها میتوانند از طریق توصیف متنی یا تصاویر ورودی، طرحهای اولیه را ایجاد کنند و به کاربران کمک کنند تا بدون نیاز به مهارت طراحی پیچیده، یک رابط کاربری مناسب بسازند. برخی از این ابزارها همچنین امکان پیشنهاد تغییرات و بهینهسازی طراحی را بر اساس بهترین شیوههای UX ارائه میدهند.
پس از طراحی، مرحلهی توسعه آغاز میشود که در آن هوش مصنوعی میتواند کدهای موردنیاز را تولید کند. ابزارهایی مانند ChatGPT (با قابلیت کدنویسی)، GitHub Copilot و Replit به کاربران امکان میدهند تا کدهای HTML، CSS، و JavaScript را تنها از طریق دستورات متنی ایجاد کنند. این فرایند باعث کاهش نیاز به دانش عمیق کدنویسی شده و توسعهی وباپلیکیشنها را برای افراد بیشتری قابلدسترس میکند.
پس از تولید کد، گام بعدی تست و بهینهسازی اپلیکیشن است. ابزارهای تست خودکار مبتنی بر هوش مصنوعی مانند Testim و Applitools میتوانند به سرعت باگها و مشکلات احتمالی را شناسایی کنند. این ابزارها، با استفاده از یادگیری ماشینی، میتوانند پیشنهاداتی برای بهبود عملکرد، امنیت و سازگاری وباپ ارائه دهند. این مرحله از اهمیت ویژهای برخوردار است، زیرا کیفیت محصول نهایی را تضمین میکند.
در نهایت، فرآیند انتشار و میزبانی وباپ نیز میتواند بهطور کامل توسط ابزارهای هوش مصنوعی انجام شود. پلتفرمهایی مانند Vercel و Netlify امکان استقرار خودکار را فراهم کرده و میتوانند بهینهسازیهایی مانند بارگذاری سریعتر صفحات و بهبود عملکرد سئو را پیشنهاد دهند. علاوه بر این، برخی ابزارهای هوش مصنوعی میتوانند توصیههایی برای ارتقای تجربهی کاربری و بهبود تعاملات کاربران ارائه کنند.
این تحول نشان میدهد که هوش مصنوعی نه تنها فرآیند طراحی و توسعه را سریعتر و آسانتر کرده، بلکه دسترسی به توسعهی وب را برای افراد بیشتری ممکن ساخته است. در گذشته، ساخت یک وباپلیکیشن نیاز به تیمهای تخصصی داشت، اما امروزه افراد میتوانند با ترکیب ابزارهای هوش مصنوعی، بهتنهایی یک محصول کامل را از ابتدا تا انتها توسعه دهند.
در حالی که این فناوری فرصتهای بزرگی ایجاد کرده است، همچنان چالشهایی مانند وابستگی بیش از حد به هوش مصنوعی، محدودیتهای سفارشیسازی و نیاز به کنترل کیفی انسانی وجود دارد. با این حال، آیندهی طراحی و توسعهی وباپلیکیشنها به وضوح به سمت خودکارسازی بیشتر حرکت میکند و طراحان و توسعهدهندگانی که از این ابزارها به درستی استفاده کنند، میتوانند بهرهوری خود را به طرز چشمگیری افزایش دهند.
🔗 برای مطالعه کامل مقاله میتوانید به این لینک مراجعه کنید.
(مدت زمان مطالعه: ۴ دقیقه)
گردآورنده: فاطمه حیدری
#طراحی_محصول
#AI
@Dexign فلسفه دیزاین
______
Medium
Designing, developing, and deploying a web app entirely using AI
Take an idea and get it to production in three simple steps.
آموزش گامبهگام دیباگ برنامههای C# در VS Code
#csharp_for_beginners
۱. معرفی ویدیویی
• این قسمت از مجموعه، مخصوص رفع مشکلات دیباگی که قبلاً ایجاد شدهاند در VS Code برای پروژههای سیشارپ است.
۲. مروری بر شرایط خطا
• تمرکز بر Conditional Breakpoints (نقاط توقف شرطی) است؛ زمانی مفید که میخواهید در شرایط خاصی اجرای برنامه متوقف شود.
• در ویدیو، نشان داده میشود که چگونه این شرطها گاهی به درستی کار نمیکنند (مثلاً خطاهایی که باعث نمیشوند نقطه توقف فعال شود یا شرایط نادیده گرفته میشود).
۳. تنظیم دقیق Breakpointها
• توضیح گامبهگام نحوه افزودن یک Breakpoint شرطی با وارد کردن یک شرط مثل x == 5.
• نمایش اینکه چطور میتوان شرط را اصلاح یا حذف کرد تا دوباره قابلاستفاده شود.
۴. اشکالات رایج
• ممکن است VS Code یا اکستنشنی که استفاده میکنید، شرط را نادیده بگیرد یا اجرا را ادامه دهد.
• روشهایی برای رفع این مشکل بررسی میشود، از جمله بهروزرسانی اکستنشن، تغییر پیکربندی launch.json، و راهاندازی مجدد جلسه دیباگ.
۵. ابزارهای کمکی و دیباگ پیشرفته
• اشاره به ویژگیهایی مثل Watch (مشاهده متغیرها) و Call Stack برای درک بهتر وضعیت اجرا.
• نمایش اینکه چطور Breakpoint را در کدی فعال کنیم که در چند مسیر اجرا ممکن است قابل رسیدن باشد.
۶. نکات پایانی
• توصیه به آزمایش Breakpointهای شرطی در سناریوهای سادهتر قبل از اعمال در کد پیچیده.
• تشویق به مطالعه مستندات VS Code و مراجع مایکروسافت برای رفع خطاهای ناشی از ناسازگاری نسخه یا پیکربندی اشتباه
🔗 ویدئوی کامل را اینجا مشاهده کنید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
کانال تلگرام:
@SoftwarePhilosophy
______
#csharp_for_beginners
۱. معرفی ویدیویی
• این قسمت از مجموعه، مخصوص رفع مشکلات دیباگی که قبلاً ایجاد شدهاند در VS Code برای پروژههای سیشارپ است.
۲. مروری بر شرایط خطا
• تمرکز بر Conditional Breakpoints (نقاط توقف شرطی) است؛ زمانی مفید که میخواهید در شرایط خاصی اجرای برنامه متوقف شود.
• در ویدیو، نشان داده میشود که چگونه این شرطها گاهی به درستی کار نمیکنند (مثلاً خطاهایی که باعث نمیشوند نقطه توقف فعال شود یا شرایط نادیده گرفته میشود).
۳. تنظیم دقیق Breakpointها
• توضیح گامبهگام نحوه افزودن یک Breakpoint شرطی با وارد کردن یک شرط مثل x == 5.
• نمایش اینکه چطور میتوان شرط را اصلاح یا حذف کرد تا دوباره قابلاستفاده شود.
۴. اشکالات رایج
• ممکن است VS Code یا اکستنشنی که استفاده میکنید، شرط را نادیده بگیرد یا اجرا را ادامه دهد.
• روشهایی برای رفع این مشکل بررسی میشود، از جمله بهروزرسانی اکستنشن، تغییر پیکربندی launch.json، و راهاندازی مجدد جلسه دیباگ.
۵. ابزارهای کمکی و دیباگ پیشرفته
• اشاره به ویژگیهایی مثل Watch (مشاهده متغیرها) و Call Stack برای درک بهتر وضعیت اجرا.
• نمایش اینکه چطور Breakpoint را در کدی فعال کنیم که در چند مسیر اجرا ممکن است قابل رسیدن باشد.
۶. نکات پایانی
• توصیه به آزمایش Breakpointهای شرطی در سناریوهای سادهتر قبل از اعمال در کد پیچیده.
• تشویق به مطالعه مستندات VS Code و مراجع مایکروسافت برای رفع خطاهای ناشی از ناسازگاری نسخه یا پیکربندی اشتباه
🔗 ویدئوی کامل را اینجا مشاهده کنید.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
کانال تلگرام:
@SoftwarePhilosophy
______
YouTube
Debugging C# Apps in VS Code [Pt 5] | C# and .NET Development in VS Code for Beginners
View full playlist: https://aka.ms/dotnet/beginnervideos/youtube/vscode
Get Started with .NET in VS Code: https://aka.ms/dotnet/get-started/vscode
This video will show how you can easily start debugging your code in VS Code using the C# Dev Kit extension.…
Get Started with .NET in VS Code: https://aka.ms/dotnet/get-started/vscode
This video will show how you can easily start debugging your code in VS Code using the C# Dev Kit extension.…
HTML Embed Code: