آدرس فایل در دات نت برای سازگاری با لینوکس و داکر
فریم ورک دات نت cross-platform است و می توانید سایت یا اپ خود را در لینوکس یا در داکر مبنتنی بر لینوکس اجرا کنید. نکته مهم توجه به آدرسی دهی فایلها است که بین ویندوز و لینوکس فرق دارد و می تواند بعد از انتشار روی سرور لینوکس برای شما دردسر ساز شود.
1- از
هیچوقت آدرس فایل ها را با
2- از آدرس دهی نسبی استفاده کنید:
موقعیت فایل را بر اساس محل قرار گرفتن اپلیکیشن مشخص کنید و از آدرس دهی مطلق که به درایو یا مسیر مشخصی روی سیستم عامل اشاره می کند استفاده نکنید. در
3- برای دسترسی به آدرس فولدرهای خاص از Enviroment Variables استفاده کنید:
با کمک Environment.SpecialFolder می توانید به مسیر فولدهایی
فریم ورک دات نت cross-platform است و می توانید سایت یا اپ خود را در لینوکس یا در داکر مبنتنی بر لینوکس اجرا کنید. نکته مهم توجه به آدرسی دهی فایلها است که بین ویندوز و لینوکس فرق دارد و می تواند بعد از انتشار روی سرور لینوکس برای شما دردسر ساز شود.
1- از
Path.Combine
استفاده کنید :هیچوقت آدرس فایل ها را با
+
ترکیب نکنید. آدرس دهی در ویندوز با \
و در لینوکس با /
انجام میشود و تابع Combine در فضای نامی System.IO
می تواند بر اساس سیستم عامل جاری جدا کننده درست را در مسیر فایل قرار دهد. 2- از آدرس دهی نسبی استفاده کنید:
موقعیت فایل را بر اساس محل قرار گرفتن اپلیکیشن مشخص کنید و از آدرس دهی مطلق که به درایو یا مسیر مشخصی روی سیستم عامل اشاره می کند استفاده نکنید. در
ASP.NET Core
می توانید از اینترفیس IWebHostEnvironment استفاده کنید.3- برای دسترسی به آدرس فولدرهای خاص از Enviroment Variables استفاده کنید:
با کمک Environment.SpecialFolder می توانید به مسیر فولدهایی
MyDocuments
یا ApplicationData
در سیستم عامل ویندوز و لینوکس دسترسی داشته باشید.
👍40🔥3
چرا از File-Scoped Namespace استفاده کنیم؟
از
با کمک این قابلیت می توانید فضای نامی را بدون
این قابلیت با حذف یک مرحله فاصله گذاری از نویز تصویری کدنویسی کم می کند و خواندن آن را ساده تر می کند.
بهتر است در کد نویسی از این قابلیت به صورت پیش فرض استفاده کنید و بعد از آپدیت به دات نت 6 کلاس های خود را به این حالت بروز رسانی کنید.
می توانید با Options در Visual Studio برای کلاسهای جدید گزینه پیش فرض را به File-Scoped تغییر دهید.
از
#C
نسخه 10 قابلیت تعریف فضای نامی در فایل اضافه شده است. با کمک این قابلیت می توانید فضای نامی را بدون
{ ... }
و فقط با نوشتن یک خط در بالای فایل تعریف کنید. این قابلیت با حذف یک مرحله فاصله گذاری از نویز تصویری کدنویسی کم می کند و خواندن آن را ساده تر می کند.
بهتر است در کد نویسی از این قابلیت به صورت پیش فرض استفاده کنید و بعد از آپدیت به دات نت 6 کلاس های خود را به این حالت بروز رسانی کنید.
می توانید با Options در Visual Studio برای کلاسهای جدید گزینه پیش فرض را به File-Scoped تغییر دهید.
👍18❤1🔥1
قابلیت Alias any type در سی شارپ 12
قابلیت Alias یا قرار دادن اسم مستعار برای using ها از نسخه اول سی شارپ وجود داشته است. اما از نسخه 12 این قابلیت شامل Type ها هم میشود.
می توانید برای هر Type یک Alias تعریف کنید تا کد شما بیشتر بیانگر کاری باشد که انجام میدهد. مثلا اگر یک int در واقع شمارنده است یا یک String در واقع یک آدرس است می توانید با استفاده از using این موضوع را مشخص کنید.
#Build2023
قابلیت Alias یا قرار دادن اسم مستعار برای using ها از نسخه اول سی شارپ وجود داشته است. اما از نسخه 12 این قابلیت شامل Type ها هم میشود.
می توانید برای هر Type یک Alias تعریف کنید تا کد شما بیشتر بیانگر کاری باشد که انجام میدهد. مثلا اگر یک int در واقع شمارنده است یا یک String در واقع یک آدرس است می توانید با استفاده از using این موضوع را مشخص کنید.
#Build2023
👍25❤6👎1
قابلیت Collection Literals در سی شارپ 12
برای پر کردن ورودی کالکشن ها می توانید بجای استفاده از تایپ اصلی مانند:
در نسخه های قبلی
با قابلیت جدیدتر Collection Literals کد خوانا تر می شود و دیگر حتی نیاز به نوشتن عبارت new نیست.
#Build2023
برای پر کردن ورودی کالکشن ها می توانید بجای استفاده از تایپ اصلی مانند:
new List<int> {1,5,7}از عبارت
[1,5,7]
استفاده کنید.در نسخه های قبلی
#C
می توانستید از نوشتن تایپ صرف نظر کنید مثلا بنویسید:new() {1,5,7}و کامپایلر سی شارپ می توانست با دنبال کردن مسیر اجرا برنامه خودش تشخیص دهد که چه چیزی قرار است new شود. این قابلیت امکان می داد که کد راحت تر قابل تغییر باشد. مثلا اگر بعدا بجای List می خواستید از یک آرایه استفاده کنید لازم نبود هر جا از متد استفاده شده است تغییر کند.
با قابلیت جدیدتر Collection Literals کد خوانا تر می شود و دیگر حتی نیاز به نوشتن عبارت new نیست.
#Build2023
❤29👍12
ویژگی deconstruct در
https://youtu.be/wk8z4TvL5ns
https://www.aparat.com/v/hZ1Ia
#C
میتواند زمانی استفاده شود که میخواهید اجزا یا پراپرتی های یک شی را درون متغیرهای جداگانه استخراج کنید.https://youtu.be/wk8z4TvL5ns
https://www.aparat.com/v/hZ1Ia
❤8👍2
محبوبترین زبان های برنامه نویسی در نظر سنجی Stackoverflow 2023
جاوا و سی شارپ همچنان بالاتر از زبانهایی مانند Go و Rust و PHP قرار دارند.
محبوبترین زبان در بین توسعه دهندگان جونیور پایتون است.
بیشترین رشد در این آمار مربوط به زبان Lua میشود که نسبت به سال قبل 7 پله بالاتر آمده است.
#Stackoverflow2023
جاوا و سی شارپ همچنان بالاتر از زبانهایی مانند Go و Rust و PHP قرار دارند.
محبوبترین زبان در بین توسعه دهندگان جونیور پایتون است.
بیشترین رشد در این آمار مربوط به زبان Lua میشود که نسبت به سال قبل 7 پله بالاتر آمده است.
#Stackoverflow2023
👍9
از بین 57 هزار نفری که در این نظر سنجی شرکت کردند 19 درصد فریم ورک
فریم ورک ASP NET Core همچنان بالاتر از Spring و WordPress و Laravel قرار دارد.
فریم ورک Next.js نسبت به سال قبل 5 پله سعود کرده است.
#stackoverflow2023
ASP NET Core
را به عنوان فریم ورک وب محبوب خود انتخاب کرده اند.فریم ورک ASP NET Core همچنان بالاتر از Spring و WordPress و Laravel قرار دارد.
فریم ورک Next.js نسبت به سال قبل 5 پله سعود کرده است.
#stackoverflow2023
👍12
زبان های مورد تحسین و مطلوب
در نظر سنجی جدید بجای Wanted & Dreaded از مفهوم Admired و Desired استفاده شده است.
میزان علاقه افراد به استفاده از یک تکنولوژی پرسیده میشود(Desired) و با افرادی که از آن تکنولوژی در سال گذشته کار کرده اند و مایل هستند سال بعد هم با آن کار کنند (Admired)مقایسه میشود.
هر چقدر طول این خط کوتاهتر باشد نشان میدهد افرادی که با آن تکونولوژی کار کرده اند علاقه زیادی به استفاده از تکنولوژی در آینده ندارند. در واقع بیشتر Hype بوده تا اینکه در عمل مطلوب باشد.
تکنولوژی هایی که خط بلندتری دارند مانند
#stackoverflow2023
در نظر سنجی جدید بجای Wanted & Dreaded از مفهوم Admired و Desired استفاده شده است.
میزان علاقه افراد به استفاده از یک تکنولوژی پرسیده میشود(Desired) و با افرادی که از آن تکنولوژی در سال گذشته کار کرده اند و مایل هستند سال بعد هم با آن کار کنند (Admired)مقایسه میشود.
هر چقدر طول این خط کوتاهتر باشد نشان میدهد افرادی که با آن تکونولوژی کار کرده اند علاقه زیادی به استفاده از تکنولوژی در آینده ندارند. در واقع بیشتر Hype بوده تا اینکه در عمل مطلوب باشد.
تکنولوژی هایی که خط بلندتری دارند مانند
Rust
و #C
نشان می دهد که افراد پس از استفاده از آنها همچنان علاقمند به ادامه کار با آنها هستند و انتظارات آنها را برآورده کرده است.#stackoverflow2023
👍15
فروش ویژه تابستانه کدهک
با آغاز فصل تابستان می توانید به مدت 3 روز همه دوره های کدهک را با 25 درصد تخفیف تهیه کنید.
کد تخفیف: sum402
برای تهیه دوره ها می توانید به سایت کدهک سر بزنید.
https://codehaks.com/Shop
جهت پشتیبانی یا کسب اطلاعات بیشتر از طریق شماره 09380146555 یا آیدی @codehak در تلگرام تماس بگیرید.
با آغاز فصل تابستان می توانید به مدت 3 روز همه دوره های کدهک را با 25 درصد تخفیف تهیه کنید.
کد تخفیف: sum402
برای تهیه دوره ها می توانید به سایت کدهک سر بزنید.
https://codehaks.com/Shop
جهت پشتیبانی یا کسب اطلاعات بیشتر از طریق شماره 09380146555 یا آیدی @codehak در تلگرام تماس بگیرید.
👍7
Forwarded from کدهک
فصل گمشده در معماری تمیز
بررسی و مقایسه انواع روش های طراحی ساختار پروژه در دات نت
https://youtu.be/oP5w9eiPhEw
بررسی و مقایسه انواع روش های طراحی ساختار پروژه در دات نت
https://youtu.be/oP5w9eiPhEw
👍10❤3
عبارت های لامبدا در سی شارپ متدهای بی نامی هستند که به جای delegate و Expression Tree قرار میگیرند و کد نویسی در سی شارپ را ساده تر می کنند.
https://youtu.be/ZqBT_kC7mOI
https://youtu.be/ZqBT_kC7mOI
👍13
بررسی ساختار درونی کالکشنها و ساخت یک کالکشن اختصاصی در دات نت.
https://www.aparat.com/v/Xr0OU
https://youtu.be/1oJ15J94dRg
https://www.aparat.com/v/Xr0OU
https://youtu.be/1oJ15J94dRg
👍9
حلقه foreach چطور آیتمهای یک آرایه را خوانش می کند؟
➡️ https://aparat.com/v/VJO6k
➡️ https://youtu.be/zmqwwDVe_10
➡️ https://aparat.com/v/VJO6k
➡️ https://youtu.be/zmqwwDVe_10
👍8
در این ویدیو به آموزش انواع کالکشن ها در دات نت می پردازیم. آرایه ها و لیست ها را با هم مقایسه می کنیم. می بینیم IEnumerable و IList و ICollection چه شباهت ها و تفاوت هایی دارند و کاربرد مناسب هر کدام چیست.
https://youtu.be/_s08TMRl4UM
https://youtu.be/_s08TMRl4UM
❤12👍2
دوره رایگان آموزش مبانی
در این دوره به مباحث پایه ای فریم ورک
سپس کار با میان افزارها و نحوه عمل سرور Kestrel آموزش داده میشود و در ادامه نحوه کار با Configuration و Environment را بررسی می کنیم و در انتها به Logging و نحوه مدیریت خطا می پردازیم.
https://codehaks.com/Course/C101
ASP.NET Core
قبل از اینکه کار با MVC را شروع کنید لازم است درباره ساختار درونی فریم ورک ASP.NET Core
بدانید. در این دوره به مباحث پایه ای فریم ورک
ASP.NET Core
می پردازیم. از ساختار پروژه وب شروع می کنیم و به توضیح نحوه کار سیستم تزریق وابستگی می پردازیم. سپس کار با میان افزارها و نحوه عمل سرور Kestrel آموزش داده میشود و در ادامه نحوه کار با Configuration و Environment را بررسی می کنیم و در انتها به Logging و نحوه مدیریت خطا می پردازیم.
https://codehaks.com/Course/C101
🔥9
برگزاری دوره پیشرفته DDD
در این دوره به صورت عملی یک پروژه واقعی را بر اساس Domain Driven Design روی قالب حرفه ای فارسی پیاده می کنیم. برای تهیه دوره از دات نت 8 و سی شارپ 12 استفاده میشود و پروژه روی داکر در سرور ابری منتشر میشود.
پروژه بر اساس معماری تمیز و است و تست واحد و تست Integration برای تمامی بخش ها پیاده می شود. برای قسمتهای Real-Time از SignalR استفاده میشود و بخش هایی هم با Blazor WASM انجام خواهد شد.
ویدیو معرفی دوره:
https://www.aparat.com/v/QgyqY
سر فصل ها:
شروع دوره از 18 شهریور به مدت یک ماه
برای تهیه دوره می توانید به @codehak پیام بدید یا به سایت کدهک مراجعه کنید:
https://codehaks.com/Course/C102
در این دوره به صورت عملی یک پروژه واقعی را بر اساس Domain Driven Design روی قالب حرفه ای فارسی پیاده می کنیم. برای تهیه دوره از دات نت 8 و سی شارپ 12 استفاده میشود و پروژه روی داکر در سرور ابری منتشر میشود.
پروژه بر اساس معماری تمیز و است و تست واحد و تست Integration برای تمامی بخش ها پیاده می شود. برای قسمتهای Real-Time از SignalR استفاده میشود و بخش هایی هم با Blazor WASM انجام خواهد شد.
ویدیو معرفی دوره:
https://www.aparat.com/v/QgyqY
سر فصل ها:
Domain Driven Designپیش نیاز ها: آشنایی با مباحث عمومی ASP NET Core MVC و سی شارپ
Clean Architecture
Unit Of Work/Repository Patterns
Testing
Concurrency Management
SignalR
Blazor WASM
شروع دوره از 18 شهریور به مدت یک ماه
برای تهیه دوره می توانید به @codehak پیام بدید یا به سایت کدهک مراجعه کنید:
https://codehaks.com/Course/C102
🔥7
آموزش کنسل کردن عملیات های طولانی در دات نت
وقتی با متدهای Async در دات نت کار می کنید می توانید با استفاده از شی Cancelation Token کنسل شدن عملیات را پیگیری کنید و سرور را از ادامه کار منصرف کنید تا از فضای سرور بهتر استفاده کنید.
▶️https://www.aparat.com/v/DqVcB
▶️https://youtu.be/5JlICIfk_rA
وقتی با متدهای Async در دات نت کار می کنید می توانید با استفاده از شی Cancelation Token کنسل شدن عملیات را پیگیری کنید و سرور را از ادامه کار منصرف کنید تا از فضای سرور بهتر استفاده کنید.
▶️https://www.aparat.com/v/DqVcB
▶️https://youtu.be/5JlICIfk_rA
👍12🔥3
اجرای عملیات های نا همگام به صورت موازی در پس زمینه
یک برنامه کنسول پیاده می کنیم که تعدادی عکس را به حالت سیاه و سفید تبدیل می کند. ابتدا این کار را برای یک عکس به روش Async انجام می دهیم و سپس همه عکسها به صورت همزمان پردازش می کنیم. در آخر هم عملیات را به پس زمینه کنسول منتقل می کنیم.
▶️ https://aparat.com/v/3OWoY
▶️ https://youtu.be/a8iu9Zn72a8
یک برنامه کنسول پیاده می کنیم که تعدادی عکس را به حالت سیاه و سفید تبدیل می کند. ابتدا این کار را برای یک عکس به روش Async انجام می دهیم و سپس همه عکسها به صورت همزمان پردازش می کنیم. در آخر هم عملیات را به پس زمینه کنسول منتقل می کنیم.
▶️ https://aparat.com/v/3OWoY
▶️ https://youtu.be/a8iu9Zn72a8
❤7👍1