Forwarded from DotNetZoom (محمد جواد ابراهیمی)
🔰 بررسی تغییرات جدید NET Core 3.0 Preview 5
توی این نسخه که همزمان با کنفرانس Microsoft Build 2019 منتشر شد شاهد تغییرات کم ولی مهمی هستیم.
🔸بهبود های WPF و Windows Forms
توی این نسخه پرفرمنس Startup (اجرای اولیه) این دو تکنولوژی به لطف قابلیتی به نام AOT Compilation افزایش پیدا کرده
ما 2 روش کامپایل داریم:
یکی حالت معمولی که کد رو به یک زبان میانی (توی دات نت بهش IL یا CIL هم میگن) کامپایل میکنه، در واقع DLL های خروجی پروژه ها شامل کد های IL یا همون Intermediate Language هستند و توسط Just-In-Time (به اختصار JIT) اجرا میشن
روش دوم که پرفرمنس خیلی بیشتری داره اسمش هست Ahead-Of-Time (یا به اختصار AOT) که کد ها رو نه به یک زبان میانی، بلکه مستقیما به کد ماشین (Native) تبدیل میکنه
در این روش کد ها مستقیما بر روی سیستم عامل اجرا میشن و شامل کد های Optimize شده برای همون سیستم عامل هستند
حالا یه چیز جدیدی به نام Runtime دیگه برای NET Core هم هست به نام CoreRT که برای همین AOT Compilation کاربرد داره و دیگه نهایت سرعته و قراره به عنوان بخشی از NET 5. منتشر بشه. [بعدا در موردش صحبت خواهیم کرد]
🔹بهبود های کلاس SqlClient
این کلاس، جز کلاس های پایه ADO.NET هست و کارش دسترسی به دیتابیس SQL Server هست و توی ORM ها از جمله EF/EF Core و Dapper هم از همین کلاس استفاده شده
این کلاس جز کلاس های پایه NET Framework و Core بوده (داخل اسمبلی System.Data.dll) و به صورت Package جدا گانه نیست به همین خاطر هر موقع فیچر های جدیدی بهش اضافه میشد باید صبر میکردیم تا آپدیت جدید دات نت بیاد تا بتونیم ازش استفاده کنیم
ولی الان ماکروسافت اون رو به یه پکیج جداگانه به نام Microsoft.Data.SqlClient منتقل کرده تا بتونه سریع تر براش آپدیت بده. همین الان بهبود هایی بهش اضافه شده و قراره در کنار توسعه دات نت کور، این پکیچ هم توسعه و بهبود داده بشه
کلاس قبلی (System.Data.SqlClient) قرار نیست حذف بشه و بروزرسانی های مهم رو دریافت خواهد کرد پس نگران تغییر نباشید ولی برای استفاده از کلاس جدید :
اگه از این کلاس به صورت مستقم (به روش ADO.NET) استفاده کردید به راحتی با نصب این پکیج و تغییر به namespace مورد نظر میتونین ازش استفاده کنین ولی اگه از ORM هایی مثل EF Core یا Dapper استفاده میکنین باید صبر کنین تا این ORM ها هم از این پکیج جدید استفاده کنن
🔸پابلیش تک فایلی یا (Single EXEs)
از این پس میتونین خروجی پروژه هاتون رو به صورت یک فایل تکی پابلیش بگیرید. دیگه لازم نیست کلی فایل رو توی سیستم مشتری کپی کنین
این فایل به صورت self-extracting خواهد بود و تمام DLL ها و فایل های مورد نیازش (Dependencies) رو داخل خودش Embed کرده و موقع اجرا، فایل ها رو تو یه مسیر Temp کپی میکنه و Load شون میکنه
🔹بهبود های JSON Serializer
قبلا در مورد JSON Serializer داخلی فوق سریع توی NET Core 3.0 Preview 2 صحبت کردیم. اینبار اما یه سری بهبود و تغییرات دیزاینی تو پیاده سازیش داشته که خیلی کاربردی نیست پس ازش میگذریم [اطلاعات بیشتر]
🔸تغییرات Index و Range
توی سی شارپ 8 شاهد قابلیت جدید و باحالی به نام index و range بودیم که توی NET Core 3 هم کم کم پیاده سازی شد ولی الان ماکروسافت تصمیم گرفته بر اساس فیدبک های کامیونتی یه سری تغییر در این رابطه انجام بده
این تغییرات و مثال هاش کمی طولانیه و اینجا جا نمیشه. [اطلاعات بیشتر]
🔹تغییرات دیگه ای هم بوده که زیاد مهم نیستند یا خیلی تخصصی اند
اطلاعات بیشتر :
https://devblogs.microsoft.com/dotnet/announcing-net-core-3-0-preview-5/
_______________
@IranAspMvc
توی این نسخه که همزمان با کنفرانس Microsoft Build 2019 منتشر شد شاهد تغییرات کم ولی مهمی هستیم.
🔸بهبود های WPF و Windows Forms
توی این نسخه پرفرمنس Startup (اجرای اولیه) این دو تکنولوژی به لطف قابلیتی به نام AOT Compilation افزایش پیدا کرده
ما 2 روش کامپایل داریم:
یکی حالت معمولی که کد رو به یک زبان میانی (توی دات نت بهش IL یا CIL هم میگن) کامپایل میکنه، در واقع DLL های خروجی پروژه ها شامل کد های IL یا همون Intermediate Language هستند و توسط Just-In-Time (به اختصار JIT) اجرا میشن
روش دوم که پرفرمنس خیلی بیشتری داره اسمش هست Ahead-Of-Time (یا به اختصار AOT) که کد ها رو نه به یک زبان میانی، بلکه مستقیما به کد ماشین (Native) تبدیل میکنه
در این روش کد ها مستقیما بر روی سیستم عامل اجرا میشن و شامل کد های Optimize شده برای همون سیستم عامل هستند
حالا یه چیز جدیدی به نام Runtime دیگه برای NET Core هم هست به نام CoreRT که برای همین AOT Compilation کاربرد داره و دیگه نهایت سرعته و قراره به عنوان بخشی از NET 5. منتشر بشه. [بعدا در موردش صحبت خواهیم کرد]
🔹بهبود های کلاس SqlClient
این کلاس، جز کلاس های پایه ADO.NET هست و کارش دسترسی به دیتابیس SQL Server هست و توی ORM ها از جمله EF/EF Core و Dapper هم از همین کلاس استفاده شده
این کلاس جز کلاس های پایه NET Framework و Core بوده (داخل اسمبلی System.Data.dll) و به صورت Package جدا گانه نیست به همین خاطر هر موقع فیچر های جدیدی بهش اضافه میشد باید صبر میکردیم تا آپدیت جدید دات نت بیاد تا بتونیم ازش استفاده کنیم
ولی الان ماکروسافت اون رو به یه پکیج جداگانه به نام Microsoft.Data.SqlClient منتقل کرده تا بتونه سریع تر براش آپدیت بده. همین الان بهبود هایی بهش اضافه شده و قراره در کنار توسعه دات نت کور، این پکیچ هم توسعه و بهبود داده بشه
کلاس قبلی (System.Data.SqlClient) قرار نیست حذف بشه و بروزرسانی های مهم رو دریافت خواهد کرد پس نگران تغییر نباشید ولی برای استفاده از کلاس جدید :
اگه از این کلاس به صورت مستقم (به روش ADO.NET) استفاده کردید به راحتی با نصب این پکیج و تغییر به namespace مورد نظر میتونین ازش استفاده کنین ولی اگه از ORM هایی مثل EF Core یا Dapper استفاده میکنین باید صبر کنین تا این ORM ها هم از این پکیج جدید استفاده کنن
🔸پابلیش تک فایلی یا (Single EXEs)
از این پس میتونین خروجی پروژه هاتون رو به صورت یک فایل تکی پابلیش بگیرید. دیگه لازم نیست کلی فایل رو توی سیستم مشتری کپی کنین
این فایل به صورت self-extracting خواهد بود و تمام DLL ها و فایل های مورد نیازش (Dependencies) رو داخل خودش Embed کرده و موقع اجرا، فایل ها رو تو یه مسیر Temp کپی میکنه و Load شون میکنه
🔹بهبود های JSON Serializer
قبلا در مورد JSON Serializer داخلی فوق سریع توی NET Core 3.0 Preview 2 صحبت کردیم. اینبار اما یه سری بهبود و تغییرات دیزاینی تو پیاده سازیش داشته که خیلی کاربردی نیست پس ازش میگذریم [اطلاعات بیشتر]
🔸تغییرات Index و Range
توی سی شارپ 8 شاهد قابلیت جدید و باحالی به نام index و range بودیم که توی NET Core 3 هم کم کم پیاده سازی شد ولی الان ماکروسافت تصمیم گرفته بر اساس فیدبک های کامیونتی یه سری تغییر در این رابطه انجام بده
این تغییرات و مثال هاش کمی طولانیه و اینجا جا نمیشه. [اطلاعات بیشتر]
🔹تغییرات دیگه ای هم بوده که زیاد مهم نیستند یا خیلی تخصصی اند
اطلاعات بیشتر :
https://devblogs.microsoft.com/dotnet/announcing-net-core-3-0-preview-5/
_______________
@IranAspMvc
.NET Blog
Announcing .NET Core 3.0 Preview 5 | .NET Blog
Today, we are announcing .NET Core 3.0 Preview 5. It includes a new Json serializer, support for publishing single file executables, an update to runtime roll-forward, and changes in the BCL. If you missed it, check out the improvements we released in .NET…
Forwarded from فلسفه دیزاین
که آسان مینمود اول ولی …
انتقال از مرحله دیزاین به مرحله توسعه نقطه عطفی در روند پیشبرد هر پروژه است. کلید موفقیت این انتقال، ارتباط و هماهنگی بین دیزاینر و توسعهدهندگان است که در اغلب موارد یکی از چالشهای اصلی هر تیم فعال در این زمینه است.
در این انتقال عدم ارتباط و بدفهمی در نیت طراحی را میتوان از مشکلات شناخته شدهای دانست که باعث ایجاد استرسهای بیمورد در تمامی اعضای تیم میشود.
حال این سوال مطرح میشود که یک دیزاینر چه کاری میتواند انجام دهد تا این انتقال هر چه سریعتر و باکیفیتتر صورت گیرد؟ یا بطور کلی چه مواردی را در این انتقال باید در نظر بگیرد.
هنگامی که طرحی به توسعهدهنده تحویل داده میشود، چندین لایه اطلاعاتی وجود دارد که باید منتقل شود. علاوه بر Mockups و Specs ،Assets، باید Interactions، Copy و Checklist را نیز به اشتراک گذاشت. تمامی این اطلاعات زوایای مختلفی از راهکار دیزاین شده را به توسعهدهنده نشان میدهد. تمامی این موارد را در قالب یک مستند میتوان “Design Handoff Document" نامید. این مستند جامع و کاملیست از اطلاعات و عناصری که به توسعهدهندهها در تحلیل و فهم درست دیزاین کمک کرده، همچنین باعث تسریع در کار آنها میشود. که این اتفاق کیفیت توسعه و برنامهنویسی را ارتقا میبخشد.
امروز آنچه در این مقاله میخوانید، مروری کلی بر کارآمدترین روشهای موجود برای دیزاینرها و تیمهای توسعه است تا در نتیجه آن بتوانند به بهترین هماهنگی و خروجی برسند.
مقاله امروز را از دست ندهید:
http://bit.ly/dxgn496
(زمان حدودی مطالعه، ۱۰ دقیقه)
نویسنده: نیما حکیمرابط
#Handoff #تعامل #توسعه
@Dexign فلسفه دیزاین
ــــــــ
انتقال از مرحله دیزاین به مرحله توسعه نقطه عطفی در روند پیشبرد هر پروژه است. کلید موفقیت این انتقال، ارتباط و هماهنگی بین دیزاینر و توسعهدهندگان است که در اغلب موارد یکی از چالشهای اصلی هر تیم فعال در این زمینه است.
در این انتقال عدم ارتباط و بدفهمی در نیت طراحی را میتوان از مشکلات شناخته شدهای دانست که باعث ایجاد استرسهای بیمورد در تمامی اعضای تیم میشود.
حال این سوال مطرح میشود که یک دیزاینر چه کاری میتواند انجام دهد تا این انتقال هر چه سریعتر و باکیفیتتر صورت گیرد؟ یا بطور کلی چه مواردی را در این انتقال باید در نظر بگیرد.
هنگامی که طرحی به توسعهدهنده تحویل داده میشود، چندین لایه اطلاعاتی وجود دارد که باید منتقل شود. علاوه بر Mockups و Specs ،Assets، باید Interactions، Copy و Checklist را نیز به اشتراک گذاشت. تمامی این اطلاعات زوایای مختلفی از راهکار دیزاین شده را به توسعهدهنده نشان میدهد. تمامی این موارد را در قالب یک مستند میتوان “Design Handoff Document" نامید. این مستند جامع و کاملیست از اطلاعات و عناصری که به توسعهدهندهها در تحلیل و فهم درست دیزاین کمک کرده، همچنین باعث تسریع در کار آنها میشود. که این اتفاق کیفیت توسعه و برنامهنویسی را ارتقا میبخشد.
امروز آنچه در این مقاله میخوانید، مروری کلی بر کارآمدترین روشهای موجود برای دیزاینرها و تیمهای توسعه است تا در نتیجه آن بتوانند به بهترین هماهنگی و خروجی برسند.
مقاله امروز را از دست ندهید:
http://bit.ly/dxgn496
(زمان حدودی مطالعه، ۱۰ دقیقه)
نویسنده: نیما حکیمرابط
#Handoff #تعامل #توسعه
@Dexign فلسفه دیزاین
ــــــــ
Medium
A Guide to Successful Design Handoffs
A comprehensive walkthrough to help Designers handoff their designs effectively. Also includes a few tips & tricks to simplify the process.
خرمشهر را اسکات هانسلمن آزاد کرد!!
چند روزی بود که دنیای نرمافزار اوپن سورس ایران دچار کابوس شده بود! شهر آرمانی دنیای اوپنسورس، جایی که همه آزادانه سورسهای خود را به اشتراک میگذارند، یعنی GitHub به علت تحریمها برای ایرانیان محدود شده بود.
خرمشهر در فارسی یعنی شهری که همه در اون خوش و خرم هستند و در ادبیات تاریخی ما نماد جایی هست که به زور میخواستند بگیرنش، بی شباهت به گیتهاب نیست!
خبر جذذاب (با تو تا ذ!) این بود که اسکات هانسلمن امروز فارسی توییت کرد «خسته نباشید!» اما چه ربطی داره!؟
ظاهرا تعداد زیادی برنامهنویس ایرانی که در توییتر با اسکات هانسلمن در این مورد صحبت کردن باعث شدن که صحبتی بین اسکات و «نات فریمن» مدیر عامل گیتهاب شکل بگیره و در حال حاضر این امکان فراهم شده که برنامهنویسانی که ریپازیتوری خصوصی داشتن بتونن پابلیکش کنن و به کدهاشون دسترسی پیدا کنن.
نات فریمن در توییتی توضیح داده که: «فعلا تونستیم کاری کنیم که افراد بتونن ریپازیتوریهاشون رو پابلیک کنن تا بهش دسترسی داشته باشن، طبق فهم ما از قانون فعلا نمیتونیم کار بیشتری کنیم...» و در توییتی دیگه نوشته: «ما این کار رو نکردیم چون میخواستیم، این کار رو کردیم چون مجبور شدیم...»
و در آخر اینکه لامصب اسکات هانسلمن، فارسی هم میخواد صحبت کنه فلوئنت صحبت میکنه!
لینک توییتهای ذکر شده:
https://twitter.com/shanselman/status/1155240674301624321
https://twitter.com/natfriedman/status/1155311124687945728
https://twitter.com/natfriedman/status/1155311125967171585
https://twitter.com/mehrandvd/status/1155385194657935360
#مهران_داودی (http://ow.ly/GwIl309lFEm)
کانال تلگرام:
@SoftwarePhilosophy
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، دکمه پایین را بزنید. 👇👇
چند روزی بود که دنیای نرمافزار اوپن سورس ایران دچار کابوس شده بود! شهر آرمانی دنیای اوپنسورس، جایی که همه آزادانه سورسهای خود را به اشتراک میگذارند، یعنی GitHub به علت تحریمها برای ایرانیان محدود شده بود.
خرمشهر در فارسی یعنی شهری که همه در اون خوش و خرم هستند و در ادبیات تاریخی ما نماد جایی هست که به زور میخواستند بگیرنش، بی شباهت به گیتهاب نیست!
خبر جذذاب (با تو تا ذ!) این بود که اسکات هانسلمن امروز فارسی توییت کرد «خسته نباشید!» اما چه ربطی داره!؟
ظاهرا تعداد زیادی برنامهنویس ایرانی که در توییتر با اسکات هانسلمن در این مورد صحبت کردن باعث شدن که صحبتی بین اسکات و «نات فریمن» مدیر عامل گیتهاب شکل بگیره و در حال حاضر این امکان فراهم شده که برنامهنویسانی که ریپازیتوری خصوصی داشتن بتونن پابلیکش کنن و به کدهاشون دسترسی پیدا کنن.
نات فریمن در توییتی توضیح داده که: «فعلا تونستیم کاری کنیم که افراد بتونن ریپازیتوریهاشون رو پابلیک کنن تا بهش دسترسی داشته باشن، طبق فهم ما از قانون فعلا نمیتونیم کار بیشتری کنیم...» و در توییتی دیگه نوشته: «ما این کار رو نکردیم چون میخواستیم، این کار رو کردیم چون مجبور شدیم...»
و در آخر اینکه لامصب اسکات هانسلمن، فارسی هم میخواد صحبت کنه فلوئنت صحبت میکنه!
لینک توییتهای ذکر شده:
https://twitter.com/shanselman/status/1155240674301624321
https://twitter.com/natfriedman/status/1155311124687945728
https://twitter.com/natfriedman/status/1155311125967171585
https://twitter.com/mehrandvd/status/1155385194657935360
#مهران_داودی (http://ow.ly/GwIl309lFEm)
کانال تلگرام:
@SoftwarePhilosophy
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، دکمه پایین را بزنید. 👇👇
X (formerly Twitter)
Scott Hanselman 🌮 (@shanselman) on X
خسته نباشید
#پست_مجدد این پست تا به حال بیش از ۳۱۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
با ایجاد هر تکنولوژی در دنیای نرم افزار ، انبوهی از قابلیتهای جدید ایجاد میشود که به توسعه دهندگان این امکان را میدهند تا برنامههایی با قابلیتهای بالا و کد کمتر ایجاد کنند . در لینک زیر 20 کتابخانه مبتنی بر .netcore معرفی شده است که هر برنامه نویسی ممکن است به آنها نیاز داشته باشد.
https://codinginfinite.com/best-top-dot-net-core-useful-libraries-open-source/
#شهریار_انتظام (http://ow.ly/qDN430nPiCg)
کانال تلگرام:
@SoftwarePhilosophy
___
https://codinginfinite.com/best-top-dot-net-core-useful-libraries-open-source/
#شهریار_انتظام (http://ow.ly/qDN430nPiCg)
کانال تلگرام:
@SoftwarePhilosophy
___
Coding Infinite
Best 20 dot Net Core Libraries Every Developer should know
In this article, I'm listing down some of the most useful but not very commonly used .Net Core Libraries that every developer needs to know.
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
✅ معرفی ML.NET 1.0
🔸همزمان با کنفرانس Microsoft Build نسخه 1.0 ML.NET منتشر شد. ML.NET فریمورک سورس باز و کراس پلتفرم برای یادگیری ماشین مخصوص دات نت هست.
🔹توسط ML.NET میتونین به زبان های C# و F# برای سناریو های مختلفی از جمله تجزیه و تحلیل احساسات، طبقه بندی متون، تشخیص آنومالی (ناهنجاری)، پیش بینی و تخمین، سیستم های توصیه گر (recommendations) و... برنامه های مدل سازی یادگیری ماشین چند سکویی (قابل اجرا بر روی Linux, Mac و Windows) ایجاد کنید.
مثال های کار با ML.NET رو میتونین در ریپازیتوری زیر مشاهده کنین
https://github.com/dotnet/machinelearning-samples
🔸این فریمورک توسط واحد تحقیقاتی ماکروسافت توسعه داده شده و هم اکنون در برنامه های مختلفی از جمله Windows ،Azure ،Bing, Office, PowerBI و نیز سازمان های مختلفی داره استفاده میشه
🔹همچنین قابلیت انعطاف پذیری و گسترش پذیری بالایی داشته و ازفریمورک های مطرح دیگه مانند TensorFlow و Accord.Net و ONNX (فرمت مدل های یادگیری عمیق) پشتیبانی میکنه
🔸از مزایای این فریمورک میتوان به موارد زیر اشاره کرد
- قابلیت AutoML : که وظیفه آن انتخاب هوشمند الگوریتم و ساده/هوشمند سازی فرایند مدل سازی هست
- ابزار Model Builder : یک ابزار UI برای ساخت مدل های ML توسط AutoML
- ابزار ML.NET CLI : یک ابزار command line برای کار با ML.NET و AutoML
اطلاعات بیشتر :
https://devblogs.microsoft.com/dotnet/announcing-ml-net-1-0/
https://devblogs.microsoft.com/cesardelatorre/what-is-ml-net-1-0-machine-learning-for-net/
_______________
@IranAspMvc
🔸همزمان با کنفرانس Microsoft Build نسخه 1.0 ML.NET منتشر شد. ML.NET فریمورک سورس باز و کراس پلتفرم برای یادگیری ماشین مخصوص دات نت هست.
🔹توسط ML.NET میتونین به زبان های C# و F# برای سناریو های مختلفی از جمله تجزیه و تحلیل احساسات، طبقه بندی متون، تشخیص آنومالی (ناهنجاری)، پیش بینی و تخمین، سیستم های توصیه گر (recommendations) و... برنامه های مدل سازی یادگیری ماشین چند سکویی (قابل اجرا بر روی Linux, Mac و Windows) ایجاد کنید.
مثال های کار با ML.NET رو میتونین در ریپازیتوری زیر مشاهده کنین
https://github.com/dotnet/machinelearning-samples
🔸این فریمورک توسط واحد تحقیقاتی ماکروسافت توسعه داده شده و هم اکنون در برنامه های مختلفی از جمله Windows ،Azure ،Bing, Office, PowerBI و نیز سازمان های مختلفی داره استفاده میشه
🔹همچنین قابلیت انعطاف پذیری و گسترش پذیری بالایی داشته و ازفریمورک های مطرح دیگه مانند TensorFlow و Accord.Net و ONNX (فرمت مدل های یادگیری عمیق) پشتیبانی میکنه
🔸از مزایای این فریمورک میتوان به موارد زیر اشاره کرد
- قابلیت AutoML : که وظیفه آن انتخاب هوشمند الگوریتم و ساده/هوشمند سازی فرایند مدل سازی هست
- ابزار Model Builder : یک ابزار UI برای ساخت مدل های ML توسط AutoML
- ابزار ML.NET CLI : یک ابزار command line برای کار با ML.NET و AutoML
اطلاعات بیشتر :
https://devblogs.microsoft.com/dotnet/announcing-ml-net-1-0/
https://devblogs.microsoft.com/cesardelatorre/what-is-ml-net-1-0-machine-learning-for-net/
_______________
@IranAspMvc
#پست_مجدد این پست تا به حال بیش از ۲۵۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
و بالاخره... اینم از سخنرانی تدکس من: «پروژه یک من جدید!».
تو تدکس در مورد نرونهای آینهای صحبت کردم و اینکه چطور این قسمت عجیب از مغز میتونه کمک کنه کارهای عجیبی رو انجام بدیم. کارهایی که به نظر خیلی نشدنی میان!
یکی از چیزهایی که انتقالش خیلی سخته، انتقال درده! خیلی سخته یه یکی توضیح بدی چطور درد میکنه! یه مفهوم بیربط دیگه هم هست که به نظر همینقدر سخته: انتقال مهارتهای کار تیمی! تو این TEDx Talk توضیح دادم که چطور یه قسمت از مغزمون به نام Mirror Neurons (که خیلی هم غافلیم ازش) میتونه کمک کنه این کارهای خیلی سخت رو، به حتی بدون صحبت کردن انجام بدیم!
یه قسمت از کلیپ هست که پام با محکککم میخوره به یه صندلی که تو صحنه هست که تو فیلم خیلی واضح نیفتاده. این رو گفتم که اون وسط نگین چی شد یه هو!
لینک ویدئوی کامل در صفحه رسمی تدکس در یوتیوب: https://www.youtube.com/watch?v=DfTuWdPV6JU
در صورت باز نشدن، این ویدئو در آپارات هم آپلود شده.
تو تدکس در مورد نرونهای آینهای صحبت کردم و اینکه چطور این قسمت عجیب از مغز میتونه کمک کنه کارهای عجیبی رو انجام بدیم. کارهایی که به نظر خیلی نشدنی میان!
یکی از چیزهایی که انتقالش خیلی سخته، انتقال درده! خیلی سخته یه یکی توضیح بدی چطور درد میکنه! یه مفهوم بیربط دیگه هم هست که به نظر همینقدر سخته: انتقال مهارتهای کار تیمی! تو این TEDx Talk توضیح دادم که چطور یه قسمت از مغزمون به نام Mirror Neurons (که خیلی هم غافلیم ازش) میتونه کمک کنه این کارهای خیلی سخت رو، به حتی بدون صحبت کردن انجام بدیم!
یه قسمت از کلیپ هست که پام با محکککم میخوره به یه صندلی که تو صحنه هست که تو فیلم خیلی واضح نیفتاده. این رو گفتم که اون وسط نگین چی شد یه هو!
لینک ویدئوی کامل در صفحه رسمی تدکس در یوتیوب: https://www.youtube.com/watch?v=DfTuWdPV6JU
در صورت باز نشدن، این ویدئو در آپارات هم آپلود شده.
YouTube
Mirroring Neurons: A "NEW ME" can change the world! | Mehran Davoudi | TEDxYouth@Tehran
We are living in the most strange country of the world. We have everything to be the best, but still we are not! Far far away, just because of one thing! We have the majority types of mines, majority types of planets and… Lack of "one thing" stops us from…
Forwarded from فلسفه دیزاین
نکتههایی درباره ارائه بهتر
به عنوان یک دیزاینر، در هر سطحی که باشید، یک روزی احساس نیاز به ارائه کارهایتان به افراد تیم، مدیرتان یا صاحب آن کسبوکار پیدا میکنید. چه موضوع ارائه شما روند طراحی یک باتن باشد و چه روند طراحی UX یک پروژه بینالمللی، شما باید پیامتان را به بهترین وجه ممکن برسانید.
طبیعتا سادهترین گزینه ممکن این است که از اول مسیر، شروع کنید با نرمافزار مورد علاقهتان به طراحی اسلایدها. اما این یکی از اشتباهترین کارهای ممکن در مساله طراحی یک پرزنتیشن میباشد.
جالب است بدانید پرزنتیشنها هم پروژههای مخصوص به خودشان هستند، نیاز به تفکر زیاد، اسکچ روی کاغذ و حتی پروتوتایپ دارند. یادمان نرود که در هر حالت هدف ما به عنوان دیزاینر، انتقال درست مفاهیم به مخاطب است.
مقالهای که امروز برای شما آماده کردیم، درباره روش طراحی پرزنتیشنی موثر و زیباست. خانوم «Sierre Wolfkostin» »، طراح محصول در کمپانی Domino’s از چالشهایی که یک طراح باید برای طراحی یک پرزنتیشن با آنها دست و پنجه نرمکند میگوید. عواملی مانند «ایدهپردازی» ، «ساخت پروتوتایپ» ، «تست پرزنتیشن»، «دریافت بازخوردها» و تکرار دوباره تمام این مراحل تا رسیدن به بهترین نتیجه ممکن.
حالا چگونه باید پرزنتیشنهای خود را ارزیابی کنیم؟
طبیعتا یکی از مهمترین بخشهای یک پرزنتیشن، مخاطبان آن هستند، و هدف یک پرزنتیشن، رساندن یک یا چند پیام مهم به مخاطبان میباشد.
از عوامل مهمی که در طراحی و ارائه یک پرزنتیشن باید مورد توجه باشد میتوان به موراد زیر اشاره کرد:
۱- داستانی جذاب تعریف کنید. حتی اگر موضوع پرزنتیشن درباره یک مساله درونسازمانی خستهکننده باشد.
۲- روی اسلایدها، شروع خوبی داشته باشید، محصول یا موضوع خود را درست و محکم معرفی کنید.
۳- با کمک اسلایدها و قدرت کلام، به مخاطبانتان بفهمانید چرا راهحلی که در دست دارید، یا محصولی که طراحی کردید، برای کسبوکار آنها مهم است؟
۴- درباره روندی که تا به امروز طی کردید تا به این راهحل رسیدید کاملا توضیح بدهید.
۵- یک پروتوتایپ آماده کنید و ارائه کنید.
۶- و در آخر حتما تاکید داشته باشید موردی که دربارهاش صحبت میکنید چرا برای رونق کسبوکار آنها مهم است و چه ارزشی برای بهبود کیفتش دارد.
این مقاله را از دست ندهید:
http://bit.ly/dxgn502
(زمان حدودی مطالعه، ۸ دقیقه)
نویسنده: آرش اصغری
@Dexign فلسفه دیزاین
#تجربه_کاربری #ارائه #پرزنتیشن
ـــــــ
به عنوان یک دیزاینر، در هر سطحی که باشید، یک روزی احساس نیاز به ارائه کارهایتان به افراد تیم، مدیرتان یا صاحب آن کسبوکار پیدا میکنید. چه موضوع ارائه شما روند طراحی یک باتن باشد و چه روند طراحی UX یک پروژه بینالمللی، شما باید پیامتان را به بهترین وجه ممکن برسانید.
طبیعتا سادهترین گزینه ممکن این است که از اول مسیر، شروع کنید با نرمافزار مورد علاقهتان به طراحی اسلایدها. اما این یکی از اشتباهترین کارهای ممکن در مساله طراحی یک پرزنتیشن میباشد.
جالب است بدانید پرزنتیشنها هم پروژههای مخصوص به خودشان هستند، نیاز به تفکر زیاد، اسکچ روی کاغذ و حتی پروتوتایپ دارند. یادمان نرود که در هر حالت هدف ما به عنوان دیزاینر، انتقال درست مفاهیم به مخاطب است.
مقالهای که امروز برای شما آماده کردیم، درباره روش طراحی پرزنتیشنی موثر و زیباست. خانوم «Sierre Wolfkostin» »، طراح محصول در کمپانی Domino’s از چالشهایی که یک طراح باید برای طراحی یک پرزنتیشن با آنها دست و پنجه نرمکند میگوید. عواملی مانند «ایدهپردازی» ، «ساخت پروتوتایپ» ، «تست پرزنتیشن»، «دریافت بازخوردها» و تکرار دوباره تمام این مراحل تا رسیدن به بهترین نتیجه ممکن.
حالا چگونه باید پرزنتیشنهای خود را ارزیابی کنیم؟
طبیعتا یکی از مهمترین بخشهای یک پرزنتیشن، مخاطبان آن هستند، و هدف یک پرزنتیشن، رساندن یک یا چند پیام مهم به مخاطبان میباشد.
از عوامل مهمی که در طراحی و ارائه یک پرزنتیشن باید مورد توجه باشد میتوان به موراد زیر اشاره کرد:
۱- داستانی جذاب تعریف کنید. حتی اگر موضوع پرزنتیشن درباره یک مساله درونسازمانی خستهکننده باشد.
۲- روی اسلایدها، شروع خوبی داشته باشید، محصول یا موضوع خود را درست و محکم معرفی کنید.
۳- با کمک اسلایدها و قدرت کلام، به مخاطبانتان بفهمانید چرا راهحلی که در دست دارید، یا محصولی که طراحی کردید، برای کسبوکار آنها مهم است؟
۴- درباره روندی که تا به امروز طی کردید تا به این راهحل رسیدید کاملا توضیح بدهید.
۵- یک پروتوتایپ آماده کنید و ارائه کنید.
۶- و در آخر حتما تاکید داشته باشید موردی که دربارهاش صحبت میکنید چرا برای رونق کسبوکار آنها مهم است و چه ارزشی برای بهبود کیفتش دارد.
این مقاله را از دست ندهید:
http://bit.ly/dxgn502
(زمان حدودی مطالعه، ۸ دقیقه)
نویسنده: آرش اصغری
@Dexign فلسفه دیزاین
#تجربه_کاربری #ارائه #پرزنتیشن
ـــــــ
Invisionapp
How to crush your next business presentation as a designer | Inside Design Blog
<p>Stories, themes, and 3 other things to keep in mind when assembling a design presentation.</p>
آیا شما با Git کار میکنید؟
آیا کد شما Commit شده اما Push نشده است؟
آیا کد در یک Branch مشترک Push شده است؟
آیا یک Merge اشتباها Push شده است؟
احتمالا با خواندن مقاله زیر مشکلتان برطرف میشود:
https://dev.to/vorahsa/fixing-mistakes-with-git-27a5
#شهریار_انتظام (http://ow.ly/qDN430nPiCg)
کانال تلگرام:
@SoftwarePhilosophy
___
آیا کد شما Commit شده اما Push نشده است؟
آیا کد در یک Branch مشترک Push شده است؟
آیا یک Merge اشتباها Push شده است؟
احتمالا با خواندن مقاله زیر مشکلتان برطرف میشود:
https://dev.to/vorahsa/fixing-mistakes-with-git-27a5
#شهریار_انتظام (http://ow.ly/qDN430nPiCg)
کانال تلگرام:
@SoftwarePhilosophy
___
DEV Community
Fixing Mistakes with git
How to roll back accidental changes with git, grouped by what happened and how far the changes ended up
#پست_مجدد این پست تا به حال بیش از ۴۰۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
با ایجاد هر تکنولوژی در دنیای نرم افزار ، انبوهی از قابلیتهای جدید ایجاد میشود که به توسعه دهندگان این امکان را میدهند تا برنامههایی با قابلیتهای بالا و کد کمتر ایجاد کنند . در لینک زیر 20 کتابخانه مبتنی بر .netcore معرفی شده است که هر برنامه نویسی ممکن است به آنها نیاز داشته باشد.
https://codinginfinite.com/best-top-dot-net-core-useful-libraries-open-source/
#شهریار_انتظام (http://ow.ly/qDN430nPiCg)
کانال تلگرام:
@SoftwarePhilosophy
___
https://codinginfinite.com/best-top-dot-net-core-useful-libraries-open-source/
#شهریار_انتظام (http://ow.ly/qDN430nPiCg)
کانال تلگرام:
@SoftwarePhilosophy
___
Coding Infinite
Best 20 dot Net Core Libraries Every Developer should know
In this article, I'm listing down some of the most useful but not very commonly used .Net Core Libraries that every developer needs to know.
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
🔰 معرفی Deno.js (شاید جایگزین Nodejs !)
سال قبل در کنفرانس JSConf 2018 خالق Nodejs از ساخت آن اظهار پشیمانی کرد و در مورد تعدادی از مشکلات آن ارائه داشت
https://www.youtube.com/watch?reload=9&v=M3BM9TB-8yA
سپس ماه قبل در کنفرانس JS Fest 2019، محصول جدیدی به نام Deno.js را ارائه کرد که مشابه Nodejs یک Runtime جاوااسکریپت بر فراز موتور V8 کروم است ولی با زبان های Rust و TypeScript نوشته شدهاست.
https://github.com/denoland/deno
https://deno.land/
_______________
@IranAspMvc
سال قبل در کنفرانس JSConf 2018 خالق Nodejs از ساخت آن اظهار پشیمانی کرد و در مورد تعدادی از مشکلات آن ارائه داشت
https://www.youtube.com/watch?reload=9&v=M3BM9TB-8yA
سپس ماه قبل در کنفرانس JS Fest 2019، محصول جدیدی به نام Deno.js را ارائه کرد که مشابه Nodejs یک Runtime جاوااسکریپت بر فراز موتور V8 کروم است ولی با زبان های Rust و TypeScript نوشته شدهاست.
https://github.com/denoland/deno
https://deno.land/
_______________
@IranAspMvc
Forwarded from Iran Agile
تجربه و نمونه عملی پیاده سازی اسکرام گسترده با چارچوب LeSS در صنعت بیمه آلمان
http://bit.ly/2M2YqxQ
@iranagile
http://bit.ly/2M2YqxQ
@iranagile
Forwarded from فلسفه دیزاین
۱۰ قدم تا طراحی تعاملی بهتر
برای رسیدن به یک هدف، ابتدا لازم است آن هدف را بشناسیم. برای برقراری ارتباط بهتر بین یک محصول و انسان، نیازمند روشی از طراحی به نام طراحی تعاملی (Interaction Design) هستیم.
اجازه بدهید موضوع را به این شکل توضیح دهم، یک صندلی اداری را در نظر بگیرید:
حالت اوّل- صندلی را میتوان بلند کرد. پرتاب کرد. روی زمین کشید و یا برعکسش کرد.
حالت دوّم- چرخهای آن نشاندهندهی این هستند که میتوان صندلی را حرکت داد. دستهها نشاندهندهی این هستند که تو میتوانی دستانت را روی آن تکیه دهی. و در نهایت شکل کلّی آن نمایانگر آنست که قابل نشستن است.
دونالد نورمن، پروفوسور و نویسندهی کتاب The Design of Everyday Things برای حالت اوّل عنوان Affordance را آورده که به معنای چیزهایی که اشیاء، قابلیت انجام آن را دارند؛ و برای حالت دوّم نام Signifier میآورد به معنای چیزهایی که اشیاء، وظیفهی انجام آن را دارند.
طراحی تعاملی یعنی همین دقّت و ریزبینیهایی که طراحان تعاملی در کوشش ساخت آن هستند؛ یعنی شناخت انواع یک رابطه و ایجاد یک نوع معنادار آن بین محصول و انسان. این مهم، نیازمند ساختار و رفتار ویژهای است که در مقالهی امروز به بررسی قدم به قدم آن میپردازیم.
روشی در دنیای دیزاین که نه تنها دنیای کاری شما را متحول میکند بلکه زندگی شخصیتان نیز پیشرفت قابل توجّهی خواهد کرد.
http://bit.ly/dxgn506
نویسنده: حسین میرزاده
#طراحی_تعاملی #روش_شناسی #دونالد_نورمن
@Dexign فلسفه دیزاین
___
برای رسیدن به یک هدف، ابتدا لازم است آن هدف را بشناسیم. برای برقراری ارتباط بهتر بین یک محصول و انسان، نیازمند روشی از طراحی به نام طراحی تعاملی (Interaction Design) هستیم.
اجازه بدهید موضوع را به این شکل توضیح دهم، یک صندلی اداری را در نظر بگیرید:
حالت اوّل- صندلی را میتوان بلند کرد. پرتاب کرد. روی زمین کشید و یا برعکسش کرد.
حالت دوّم- چرخهای آن نشاندهندهی این هستند که میتوان صندلی را حرکت داد. دستهها نشاندهندهی این هستند که تو میتوانی دستانت را روی آن تکیه دهی. و در نهایت شکل کلّی آن نمایانگر آنست که قابل نشستن است.
دونالد نورمن، پروفوسور و نویسندهی کتاب The Design of Everyday Things برای حالت اوّل عنوان Affordance را آورده که به معنای چیزهایی که اشیاء، قابلیت انجام آن را دارند؛ و برای حالت دوّم نام Signifier میآورد به معنای چیزهایی که اشیاء، وظیفهی انجام آن را دارند.
طراحی تعاملی یعنی همین دقّت و ریزبینیهایی که طراحان تعاملی در کوشش ساخت آن هستند؛ یعنی شناخت انواع یک رابطه و ایجاد یک نوع معنادار آن بین محصول و انسان. این مهم، نیازمند ساختار و رفتار ویژهای است که در مقالهی امروز به بررسی قدم به قدم آن میپردازیم.
روشی در دنیای دیزاین که نه تنها دنیای کاری شما را متحول میکند بلکه زندگی شخصیتان نیز پیشرفت قابل توجّهی خواهد کرد.
http://bit.ly/dxgn506
نویسنده: حسین میرزاده
#طراحی_تعاملی #روش_شناسی #دونالد_نورمن
@Dexign فلسفه دیزاین
___
Medium
10 Steps to Interaction Design (IxD)
Are you transitioning from visual design, psychology or computer science or any other field (chemical engineering in my case) into Interaction design (IxD), UX or HCI? Then this post is for you. If…
Software Philosophy
Photo
یکی از کارهای جذذابی (با دو تا ذ) که اخیرا شروع کردم طراحی این دو تا دورهست:
- آموزش زبان فنی برای تیمهای بیزنسی.
- آموزش زبان بیزنس برای تیمهای فنی.
یکی از مشکلات اغلب افرادی که استارتاپ دارن، شرکت دارن و یا تو تیمی هستن که با تیمهای فنی کار میکنه، اینه که زبان مشترکی با تیمهای فنی ندارن. اصطلاحاتی میشنون که ارتباطش رو با موضوع متوجه نمیشن. برای همین همیشه حس ابهام یا حسهای دیگه نسبت به کار با تیمهای فنی دارن.
یه کار جذذاب اینه که به عنوان افراد بیزنسی تیم، حداقل دانش فنی که لازمه تا بتونیم راحتتر با تیمهای فنی تعامل کنیم رو یاد بگیریم. من به کمک دوستانم در مدرسه بازاریابی تهران این دوره رو به همین خاطر طراحی کردیم.
اگر یک بیزنسی هستین و با تیمهای فنی کار میکنین، این دوره تجربه خیلی جذذابی براتون خواهد بود و مطمئنا به پرفورمنس تیمتون خیلی کمک میکنه.
از طرف دیگه، اگر یک برنامهنویس هستید، مطمئن باشید که دنیای بیزنس برای ما برنامهنویسان یک دنیای جذاب و ناشناخته است. دنیایی که که با ادبیاتش آشنا بشیم، ساخت محصول و کار کردن با تیمهای بیزنسی، عوض شدن زمانها، نیازمندیها و خیلی چیزهای دیگه معنیدار میشه و کمک میکنه بتونیم به اتفاق هم راهحلهای بهتری برای مسائل بیزنسی پیدا کنیم. این کاری هست که دوره دوم قراره انجام بده.
اگر یک بیزنسی هستید که دوست دارین زبان تیمهای فنی رو بهتر یاد بگیرید،
اگر یک برنامهنویس هستید که دوست دارین زبان بیزنسی رو بهتر یاد بگیرید،
👈 برای اطلاعات بیشتر و رزرو در دوره با شماره 021-88677808 تماس بگیرید و یا از طریق دایرکت اینستاگرام در تماس باشید:
Instagram.com/tehranmarketing_school
#مهران_داودی (http://ow.ly/GwIl309lFEm)
کانال تلگرام:
@SoftwarePhilosophy
____
- آموزش زبان فنی برای تیمهای بیزنسی.
- آموزش زبان بیزنس برای تیمهای فنی.
یکی از مشکلات اغلب افرادی که استارتاپ دارن، شرکت دارن و یا تو تیمی هستن که با تیمهای فنی کار میکنه، اینه که زبان مشترکی با تیمهای فنی ندارن. اصطلاحاتی میشنون که ارتباطش رو با موضوع متوجه نمیشن. برای همین همیشه حس ابهام یا حسهای دیگه نسبت به کار با تیمهای فنی دارن.
یه کار جذذاب اینه که به عنوان افراد بیزنسی تیم، حداقل دانش فنی که لازمه تا بتونیم راحتتر با تیمهای فنی تعامل کنیم رو یاد بگیریم. من به کمک دوستانم در مدرسه بازاریابی تهران این دوره رو به همین خاطر طراحی کردیم.
اگر یک بیزنسی هستین و با تیمهای فنی کار میکنین، این دوره تجربه خیلی جذذابی براتون خواهد بود و مطمئنا به پرفورمنس تیمتون خیلی کمک میکنه.
از طرف دیگه، اگر یک برنامهنویس هستید، مطمئن باشید که دنیای بیزنس برای ما برنامهنویسان یک دنیای جذاب و ناشناخته است. دنیایی که که با ادبیاتش آشنا بشیم، ساخت محصول و کار کردن با تیمهای بیزنسی، عوض شدن زمانها، نیازمندیها و خیلی چیزهای دیگه معنیدار میشه و کمک میکنه بتونیم به اتفاق هم راهحلهای بهتری برای مسائل بیزنسی پیدا کنیم. این کاری هست که دوره دوم قراره انجام بده.
اگر یک بیزنسی هستید که دوست دارین زبان تیمهای فنی رو بهتر یاد بگیرید،
اگر یک برنامهنویس هستید که دوست دارین زبان بیزنسی رو بهتر یاد بگیرید،
👈 برای اطلاعات بیشتر و رزرو در دوره با شماره 021-88677808 تماس بگیرید و یا از طریق دایرکت اینستاگرام در تماس باشید:
Instagram.com/tehranmarketing_school
#مهران_داودی (http://ow.ly/GwIl309lFEm)
کانال تلگرام:
@SoftwarePhilosophy
____
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
✅ حرفه ای ترین سلوشن Logging در NETCore. با استفاده از Serilog و ElasticSearch و Kibana
#PerformanceTuning
کتابخانه های مختلفی برای لاگ کردن خطا ها در دات نت وجود داره، از جمله Elmah، NLog, Log4net و ...
کتابخانه Elmah بهترین انتخاب برای پروژه های کوچک و متوسطه، کار باهاش راحته و پنل ساده ای هم داره، ولی توی پروژه های بزرگ که تعداد لاگ ها خیلی زیاد میشه، دیگه Elmah جوابگو نیست، هم به خاطر سرعت کمش نسبت به بقیه کتابخانه ها و هم به خاطر پنل ضعیف اش که حتی یه سرچ هم نداره
در این شرایط راه های مختلفی هست مثل استفاده از سرویس های نگهداری لاگ Cloud-based مثل setry.io , elmah.io و ...
راه حل بعدی استفاده از برنامه های مدیریت لاگ مثل Seq هستند که بر خلاف مورد قبلی، یک سرویس خارجی نیست و روی سرور خودتون لاگ ها رو نگهداری میکنه و داشبورد قدرتمندی برای سرچ و کوئری گرفتن در اختیارتون میذاره (ولی پولیه)
🔰 راه حل حرفه ای تر و البته رایگان، استفاده از Serilog و ElasticSearch و Kibana هست
🔸دیتابیس ElasticSearch در واقع یک دیتابیس NoSql و یک Search Engine (موتور جستجو) سورس باز و فوق سریع (بر پایه Lucene) هست که قابلیت جستجو و کوئری زدن زدن (به صورت full text search) با سرعت و قدرت بالا رو داره از اون برای نگهداری لاگ ها استفاده خواهیم کرد
🔹پنل Kibana هم یه پلاگین داشبور سورس باز و قدرتمند با امکانات زیاد برای نمایش اطلاعات دیتابیس Elastic هست و از اون برای نمایش خطا ها و جستجو کردن و نمودار گرفتن استفاده می کنیم
🔸 کتابخانه Serilog هم میشه گفت بهترین کتابخانه Logging هست. نسبت به NLog جدید تره و طراحی مدرن تری داره و میزان رشد محبوبیتش هم بیشتره؛ پس میشه گفت از NLog هم بهتره (البته خیلی اختلاف ندارند)
این کتابخونه قابلیت های زیادی داره که به لطف پلاگین های زیادی که برای Serilog وجود داره (اصطلاحا بهش میگن Sinks) براش فراهم شده و از لحاظ پرفرمنسی هم از NLog سریع تره.
🔹 تنها نکته مهم، استفاده از روش Structred Logging نسبت به حالت معمولی است. شاید فکر کنید دو دستور زیر هیچ تفاوتی نمیکنه!
ولی عملکرد این دو یکسان نبوده و خط دوم که به صورت Structred هست اطلاعات را به صورت جداگانه ضبط و ثبت میکنه درنتیجه در کنار متن خطا، یک فیلد به نام username با مقدار Ali نیز ذخیره میکنه که کار جستجو و کوئری زدن رو راحت تر میکنه
مقالات آموزش این سلوشن :
https://bit.ly/2EAjpTh
https://bit.ly/2EBUYFc
https://bit.ly/2X7g1Xn
https://bit.ly/2Exvs3C
مخزن نمونه کد :
https://github.com/thecarlo/elastic-kibana-netcore-serilog
___________
@IranAspMvc
#PerformanceTuning
کتابخانه های مختلفی برای لاگ کردن خطا ها در دات نت وجود داره، از جمله Elmah، NLog, Log4net و ...
کتابخانه Elmah بهترین انتخاب برای پروژه های کوچک و متوسطه، کار باهاش راحته و پنل ساده ای هم داره، ولی توی پروژه های بزرگ که تعداد لاگ ها خیلی زیاد میشه، دیگه Elmah جوابگو نیست، هم به خاطر سرعت کمش نسبت به بقیه کتابخانه ها و هم به خاطر پنل ضعیف اش که حتی یه سرچ هم نداره
در این شرایط راه های مختلفی هست مثل استفاده از سرویس های نگهداری لاگ Cloud-based مثل setry.io , elmah.io و ...
راه حل بعدی استفاده از برنامه های مدیریت لاگ مثل Seq هستند که بر خلاف مورد قبلی، یک سرویس خارجی نیست و روی سرور خودتون لاگ ها رو نگهداری میکنه و داشبورد قدرتمندی برای سرچ و کوئری گرفتن در اختیارتون میذاره (ولی پولیه)
🔰 راه حل حرفه ای تر و البته رایگان، استفاده از Serilog و ElasticSearch و Kibana هست
🔸دیتابیس ElasticSearch در واقع یک دیتابیس NoSql و یک Search Engine (موتور جستجو) سورس باز و فوق سریع (بر پایه Lucene) هست که قابلیت جستجو و کوئری زدن زدن (به صورت full text search) با سرعت و قدرت بالا رو داره از اون برای نگهداری لاگ ها استفاده خواهیم کرد
🔹پنل Kibana هم یه پلاگین داشبور سورس باز و قدرتمند با امکانات زیاد برای نمایش اطلاعات دیتابیس Elastic هست و از اون برای نمایش خطا ها و جستجو کردن و نمودار گرفتن استفاده می کنیم
🔸 کتابخانه Serilog هم میشه گفت بهترین کتابخانه Logging هست. نسبت به NLog جدید تره و طراحی مدرن تری داره و میزان رشد محبوبیتش هم بیشتره؛ پس میشه گفت از NLog هم بهتره (البته خیلی اختلاف ندارند)
این کتابخونه قابلیت های زیادی داره که به لطف پلاگین های زیادی که برای Serilog وجود داره (اصطلاحا بهش میگن Sinks) براش فراهم شده و از لحاظ پرفرمنسی هم از NLog سریع تره.
🔹 تنها نکته مهم، استفاده از روش Structred Logging نسبت به حالت معمولی است. شاید فکر کنید دو دستور زیر هیچ تفاوتی نمیکنه!
logger.Debug("UserName is : Ali");
logger.Debug("UserName is : {username}", "Ali");
ولی عملکرد این دو یکسان نبوده و خط دوم که به صورت Structred هست اطلاعات را به صورت جداگانه ضبط و ثبت میکنه درنتیجه در کنار متن خطا، یک فیلد به نام username با مقدار Ali نیز ذخیره میکنه که کار جستجو و کوئری زدن رو راحت تر میکنه
مقالات آموزش این سلوشن :
https://bit.ly/2EAjpTh
https://bit.ly/2EBUYFc
https://bit.ly/2X7g1Xn
https://bit.ly/2Exvs3C
مخزن نمونه کد :
https://github.com/thecarlo/elastic-kibana-netcore-serilog
___________
@IranAspMvc
#پست_مجدد این پست تا به حال بیش از ۱۲۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
شاید برای شما هم تا کنون پیش آمده باشد که در یک وب سایت با اشکال هندسی روبرو شوید که در #CSS تولید شده اند، یا حتی بخواهید در وب سایت خود این اشکال جالب را قرار دهید. یکی از شکلهای پرتکرار در وب سایتها، مثلث است که از آن در ایجاد انواع مختلف مثلث، جهتنما (فلش) و یا حتی جهتدار کردن اشکال دیگر استفاده میگردد.
لینک زیر به صورت بسیار مختصر و مفید، به همراه یک انیمیشن عالی، به توضیح نحوه ایجاد آن می پردازد:
https://bit.ly/1GzOIaN
همچینن در زیر، لینک یک تولید کننده مثلث در کد #CSS آورده شده است که بعد از مطالعه لینک بالا می توانید به راحتی از آن در طراحی های خود استفاده نمایید.
https://bit.ly/2W9NzDf
#محمدرضا_حاج_بابایی (http://ow.ly/PnEY30oq1sK)
کانال تلگرام:
@SoftwarePhilosophy
___
لینک زیر به صورت بسیار مختصر و مفید، به همراه یک انیمیشن عالی، به توضیح نحوه ایجاد آن می پردازد:
https://bit.ly/1GzOIaN
همچینن در زیر، لینک یک تولید کننده مثلث در کد #CSS آورده شده است که بعد از مطالعه لینک بالا می توانید به راحتی از آن در طراحی های خود استفاده نمایید.
https://bit.ly/2W9NzDf
#محمدرضا_حاج_بابایی (http://ow.ly/PnEY30oq1sK)
کانال تلگرام:
@SoftwarePhilosophy
___
CSS-Tricks
CSS Triangle
HTML You can make them with a single div. It's nice to have classes for each direction possibility. CSS The idea is a box with zero width and height. The