در این ویدیو به معرفی سایت ساز Hugo می پردازیم. مراحل نصب اون رو انجام میدیم و باهاش یک وبلاگ پیاده می کنیم.
https://tinyurl.com/codehaks-hugo
https://tinyurl.com/codehaks-hugo
هسته ی مرکزی دات نت با عنوان Common Language Runtime یا CLR شناخته میشود.
این هسته شامل کدهای Garbage Collection و Just In Time Compiler میشود و رابط بین برنامه های دات نت و سیستم عامل است.
بخش بزرگی از سورس CLR با زبان سی شارپ نوشته شده است اما برای کدهای GC و JIT و بعصی موارد دیگر از ++C و Assembly نیز استفاده شده است.
سورس CLR باز است و می توانید از Github دانلود کنید.
این هسته شامل کدهای Garbage Collection و Just In Time Compiler میشود و رابط بین برنامه های دات نت و سیستم عامل است.
بخش بزرگی از سورس CLR با زبان سی شارپ نوشته شده است اما برای کدهای GC و JIT و بعصی موارد دیگر از ++C و Assembly نیز استفاده شده است.
سورس CLR باز است و می توانید از Github دانلود کنید.
دیزاین پترنها روشهایی از قبل طراحی شده برای حل مسائل عمومی نرم افزار هستند. در حالی که اهمیت و کاربرد این مفاهیم در برنامه نویسی انکار ناپذیر است اما به نظر میرسد تاکید بیش از حدی روی آن وجود دارد. بر خلاف باور عمومی استفاده از آنها همیشه به سود شما نیست.
https://tinyurl.com/y5xrwer8
https://tinyurl.com/y5xrwer8
عمل Boxing در سی شارپ زمانی اتفاق می افتد که یک Value Type را به Reference Type تبدیل می کنید.
معمولا در پی هر Boxing نیاز به Unboxing وجود دارد که در آن اطلاعات درون Heap به Stack منتقل میشود.
این عمل باعث میشود بخشی از حافظه ی Heap برای نگه داری اطلاعات Stack مورد استفاده قرار گیرد و در نتیجه پرفورمنس را پایین می آورد.
معمولا در پی هر Boxing نیاز به Unboxing وجود دارد که در آن اطلاعات درون Heap به Stack منتقل میشود.
این عمل باعث میشود بخشی از حافظه ی Heap برای نگه داری اطلاعات Stack مورد استفاده قرار گیرد و در نتیجه پرفورمنس را پایین می آورد.
کنفرانس Build مایکروسافت تا ساعتی دیگر آغاز به کار می کند.
کنفرانس بیلد به بررسی آخرین فن آوری های مایکروسافت در حوزه ی مهندسی نرم افزار و توسعه وب می پردازد.
انتظار میرود نسخه جدید NET Core هم طی امروز عرضه شود.
پخش زنده و مستقیم :
https://tinyurl.com/y3wwm897
کنفرانس بیلد به بررسی آخرین فن آوری های مایکروسافت در حوزه ی مهندسی نرم افزار و توسعه وب می پردازد.
انتظار میرود نسخه جدید NET Core هم طی امروز عرضه شود.
پخش زنده و مستقیم :
https://tinyurl.com/y3wwm897
مایکروسافت اعلام کرد نسخه ی بعدی دات نت ورژن 5 خواهد که در سال 2020 منتشر میشود.
این نسخه ی به صورت یکپارچه شامل NET Core و Mono می شود و قرار است برنامه نویسی WPF و Windows Form را شامل شود.
هدف اصلی مایکروسافت این است که همه ی نسخه های موجود دات نت را ترکیب کند و یک پلتفرم واحد ارائه کند. این یکپارچه سازی می تواند فرآیند پیاده سازی نرم افزار بر پایه ی دات نت را بسیار ساده تر کند.
دات نت 5 در ادامه ی دات نت کور بوده و به صورت متن باز توسعه داده خواهد شد.
این نسخه ی به صورت یکپارچه شامل NET Core و Mono می شود و قرار است برنامه نویسی WPF و Windows Form را شامل شود.
هدف اصلی مایکروسافت این است که همه ی نسخه های موجود دات نت را ترکیب کند و یک پلتفرم واحد ارائه کند. این یکپارچه سازی می تواند فرآیند پیاده سازی نرم افزار بر پایه ی دات نت را بسیار ساده تر کند.
دات نت 5 در ادامه ی دات نت کور بوده و به صورت متن باز توسعه داده خواهد شد.
Forwarded from اِسکیلی Skilly (مهدی کرامتی)
✅ معرفی ورژن 2 Windows Subsystem for Linux (به اختصار WSL 2)
ماکروسافت در یک اقدام جالب، کرنل لینوکس (ورژن 4.19 - آخرین ورژن پایدار و LTS) رو به طور کامل به ویندوز منتقل کرد.
در نتیجه امکان اجرای کانتینر های Docker به صورت Native در آن وجود دارد و دیگر نیازی به VM برای اجرای کانتینر ها بر روی Windows نیست!
همچنین ماکروسافت ادعا کرده در این روش، زمان boot time لینوکس و میزان رم مصرفی کاهش پیدا کرده و نیز عملیات I/O filesystem افزایش پرفرمنس داشته است.
این یه حرکت بزرگ است و اولین باری هست که کرنل لینوکس به عنوان بخشی از ویندوز قرار می گیرد.
این قابلیت، اواخر امسال همراه با اپدیت ویندوز 10 به نام (Codename 19H2) عرضه خواهد شد.
اطلاعات بیشتر :
https://devblogs.microsoft.com/commandline/shipping-a-linux-kernel-with-windows
@barnamenevis_org
ماکروسافت در یک اقدام جالب، کرنل لینوکس (ورژن 4.19 - آخرین ورژن پایدار و LTS) رو به طور کامل به ویندوز منتقل کرد.
در نتیجه امکان اجرای کانتینر های Docker به صورت Native در آن وجود دارد و دیگر نیازی به VM برای اجرای کانتینر ها بر روی Windows نیست!
همچنین ماکروسافت ادعا کرده در این روش، زمان boot time لینوکس و میزان رم مصرفی کاهش پیدا کرده و نیز عملیات I/O filesystem افزایش پرفرمنس داشته است.
این یه حرکت بزرگ است و اولین باری هست که کرنل لینوکس به عنوان بخشی از ویندوز قرار می گیرد.
این قابلیت، اواخر امسال همراه با اپدیت ویندوز 10 به نام (Codename 19H2) عرضه خواهد شد.
اطلاعات بیشتر :
https://devblogs.microsoft.com/commandline/shipping-a-linux-kernel-with-windows
@barnamenevis_org
موتور پردازش اطلاعات Apache Spark که در Big Data کاربرد دارد و با Scala بر پایه ی Java نوشته شده است توسط مایکروسافت برای دات نت سازگار شده است.
از این پس برای استفاده از Spark نیاز به استفاده از پایتون یا Scala نیست و می توانید مستقیما از دات نت استفاده کنید.
همانطور که در نمودار دیده میشود پرفورمنس دات نت سریعتر از نسخه ی پایتون است.
موتور Spark برای پردازش اطلاعات با حجم بالا کاربرد دارد و معمولا در فضای ابری از آن استفاده میشود.
از این پس برای استفاده از Spark نیاز به استفاده از پایتون یا Scala نیست و می توانید مستقیما از دات نت استفاده کنید.
همانطور که در نمودار دیده میشود پرفورمنس دات نت سریعتر از نسخه ی پایتون است.
موتور Spark برای پردازش اطلاعات با حجم بالا کاربرد دارد و معمولا در فضای ابری از آن استفاده میشود.
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
❇️ ساخت برنامه های ویندوزی توسط React Native
🔸ماکروسافت در یک اقدام جالب، پروژه ای به نام "React Native for Windows" ایجاد کرده که توسط آن میتوان با React Native برنامه های UWP با پرفرمنس بالا برای Windows 10 ساخت
🔹در نسخه فعلی (current)، کامپیوننت های ویندوز با زبان سی شارپ برای استفاده در React Native نوشته شده اند ولی در نسخه جدید (vnext)، ماکروسافت بسیاری از کامپوننت های ویندوز را به زبان C++ برای React Native در جهت افزایش پرفرمنس باز نویسی کرده
🔸برنامه های ساخته شده با این تکنولوژی، همانند UWP توانایی اجرا بر روی تمامی دیوایس هایی که از ویندوز 10 پشتیبانی میکنند را دارد مانند HoloLens, Xbox, PC
و...
ریپازیتوری گیتهاب :
https://github.com/Microsoft/react-native-windows
_______________
@IranAspMvc
🔸ماکروسافت در یک اقدام جالب، پروژه ای به نام "React Native for Windows" ایجاد کرده که توسط آن میتوان با React Native برنامه های UWP با پرفرمنس بالا برای Windows 10 ساخت
🔹در نسخه فعلی (current)، کامپیوننت های ویندوز با زبان سی شارپ برای استفاده در React Native نوشته شده اند ولی در نسخه جدید (vnext)، ماکروسافت بسیاری از کامپوننت های ویندوز را به زبان C++ برای React Native در جهت افزایش پرفرمنس باز نویسی کرده
🔸برنامه های ساخته شده با این تکنولوژی، همانند UWP توانایی اجرا بر روی تمامی دیوایس هایی که از ویندوز 10 پشتیبانی میکنند را دارد مانند HoloLens, Xbox, PC
و...
ریپازیتوری گیتهاب :
https://github.com/Microsoft/react-native-windows
_______________
@IranAspMvc
هنگامی که با کد Unmanaged کار می کنید همیشه احتمال دارد با Memory Leak مواجه شوید.
منظور از Unmanaged کدی است که توسط زبانهایی مثل ++C نوشته شده و حافظه ی آن به صورت خودکار پاکسازی نمی شود.
نشت حافظه یا Memory Leak زمانی اتفاق می افتد که کد Unmanaged به هر دلیلی حافظه ی خود را پاکسازی نمیکند و در نتیجه با گذشت زمان کد شما کندتر میشود.
در سی شارپ برای پاکسازی حافظه Unmanaged از کلمه ی کلیدی Using استفاده میشود. از نسخه ی 8.0 به بعد دیگر نیاز نیست برای Using از Code Block استفاده شود. هرجا متغیری با استفاده از Using تعریف شود در انتهای متد پاکسازی حافظه ی آن به صورت خودکار انجام میشود.
منظور از Unmanaged کدی است که توسط زبانهایی مثل ++C نوشته شده و حافظه ی آن به صورت خودکار پاکسازی نمی شود.
نشت حافظه یا Memory Leak زمانی اتفاق می افتد که کد Unmanaged به هر دلیلی حافظه ی خود را پاکسازی نمیکند و در نتیجه با گذشت زمان کد شما کندتر میشود.
در سی شارپ برای پاکسازی حافظه Unmanaged از کلمه ی کلیدی Using استفاده میشود. از نسخه ی 8.0 به بعد دیگر نیاز نیست برای Using از Code Block استفاده شود. هرجا متغیری با استفاده از Using تعریف شود در انتهای متد پاکسازی حافظه ی آن به صورت خودکار انجام میشود.
سرویس ثبت و مدیریت Package به GitHub اضافه شد.
گیتهاب ساعاتی پیش در یک سمینار آنلاین اعلام کرد که سرویس ثبت پکیج برای NPM و Maven و Nuget و Docker راه اندازی کرده که فرآیند انتشار و آپدیت پکیج روی این پلتفرم ها را از درون GitHub ممکن میکند.
با این سرویس کد سازندگان پکیج مستقیم روی پلتفرم هدف بارگذاری میشود و به راحتی قابل آپدیت است.
این سرویس در حال حاضر نسخه ی Beta است و قرار است سایر سرویس های پکیج هم به آن اضافه شود.
این سرویس جایگزین NPM یا Nuget نیست بلکه دسترسی و استفاده از آنها را ساده میکند.
گیتهاب ساعاتی پیش در یک سمینار آنلاین اعلام کرد که سرویس ثبت پکیج برای NPM و Maven و Nuget و Docker راه اندازی کرده که فرآیند انتشار و آپدیت پکیج روی این پلتفرم ها را از درون GitHub ممکن میکند.
با این سرویس کد سازندگان پکیج مستقیم روی پلتفرم هدف بارگذاری میشود و به راحتی قابل آپدیت است.
این سرویس در حال حاضر نسخه ی Beta است و قرار است سایر سرویس های پکیج هم به آن اضافه شود.
این سرویس جایگزین NPM یا Nuget نیست بلکه دسترسی و استفاده از آنها را ساده میکند.
در Identity از دو متد برای احراز هویت کاربر استفاده میشود:
متد IsSignedIn احراز هویت را فقط بر اساس کوکی ذخیره شده در مرورگر بررسی می کند.
متد IsAuthenticated همه ی روشهای احراز هویت را شامل میشود و فرقی نمیکند که کاربر از Cookie یا Token یا روش دیگری وارد حساب کاربری شده باشد.
اگر اکشنی دارید که فقط در مرورگر اجرا میشود می توانید از IsSignedIn استفاده کنید. اما اگر برنامه ی شما با Web API یا اپ گوشی کار میکند یا از Single Page App استفاده می کند بهتر است از IsAuthenticated استفاده کنید.
متد IsSignedIn احراز هویت را فقط بر اساس کوکی ذخیره شده در مرورگر بررسی می کند.
متد IsAuthenticated همه ی روشهای احراز هویت را شامل میشود و فرقی نمیکند که کاربر از Cookie یا Token یا روش دیگری وارد حساب کاربری شده باشد.
اگر اکشنی دارید که فقط در مرورگر اجرا میشود می توانید از IsSignedIn استفاده کنید. اما اگر برنامه ی شما با Web API یا اپ گوشی کار میکند یا از Single Page App استفاده می کند بهتر است از IsAuthenticated استفاده کنید.
پکیج صفحه بندی در ASP.NET Core به صورت TagHelper
نصب از Nuget
Install-Package Codehaks.Pagination
سورس و راهنما :
https://github.com/codehaks/Codehaks.Pagination
نصب از Nuget
Install-Package Codehaks.Pagination
سورس و راهنما :
https://github.com/codehaks/Codehaks.Pagination
چه زبانهایی در 2019 یاد نگیریم؟
به گزارش Codementor در سال 2019 زبانهای Elm و CoffeeScript و Erlang و Perl بدترین گزینه ها برای انتخاب زبان برنامه نویسی هستند.
این لیست بر مبنای میزان محبوبیت زبان و سرعت رشد استفاده از آن و جامعه ی برنامه نویسان است. مثلا تعداد برنامه نویسان Lua در حال حاضر بیشتر از بازار کار موجود آن برآورد میشود به همین دلیل یادگیری Lua به برنامه نویسان توصیه نمی شود.
زبانهایی مثل Goو Swift و #C در انتهای لیست قرار دارند به این معنی که گزینه های خوبی برای یادگیری هستند.
همچنین در این لیست Java و JavaScript را مشاهده نمی کنید. از آنجایی که این زبانها سالهاست برای پیاده سازی بسیاری از پروژه ها مورد استفاده قرار گرفته همیشه گزینه های خوبی برای یادگیری به شمار می آیند.
نکته ی مهم رشد ناگهانی زبان برنامه نویسی Dart است در حالی که سال گذشته این زبان در صدر لیست بود امسال به مدد حمایت ها و تبلیغات Google دوباره به میدان بازگشته است.
به گزارش Codementor در سال 2019 زبانهای Elm و CoffeeScript و Erlang و Perl بدترین گزینه ها برای انتخاب زبان برنامه نویسی هستند.
این لیست بر مبنای میزان محبوبیت زبان و سرعت رشد استفاده از آن و جامعه ی برنامه نویسان است. مثلا تعداد برنامه نویسان Lua در حال حاضر بیشتر از بازار کار موجود آن برآورد میشود به همین دلیل یادگیری Lua به برنامه نویسان توصیه نمی شود.
زبانهایی مثل Goو Swift و #C در انتهای لیست قرار دارند به این معنی که گزینه های خوبی برای یادگیری هستند.
همچنین در این لیست Java و JavaScript را مشاهده نمی کنید. از آنجایی که این زبانها سالهاست برای پیاده سازی بسیاری از پروژه ها مورد استفاده قرار گرفته همیشه گزینه های خوبی برای یادگیری به شمار می آیند.
نکته ی مهم رشد ناگهانی زبان برنامه نویسی Dart است در حالی که سال گذشته این زبان در صدر لیست بود امسال به مدد حمایت ها و تبلیغات Google دوباره به میدان بازگشته است.