مقایسه ای کامل و بی نقص در مورد پرفرمنس انواع IoC Container های دات نت
https://github.com/danielpalme/IocPerformance
لینک زیر هم منبعی برای مقایسه محبوبیت IoC Container هاست
https://dotnet.libhunt.com/categories/1810-ioc
منبع : @one_programmer
@IranAspMvc
https://github.com/danielpalme/IocPerformance
لینک زیر هم منبعی برای مقایسه محبوبیت IoC Container هاست
https://dotnet.libhunt.com/categories/1810-ioc
منبع : @one_programmer
@IranAspMvc
GitHub
GitHub - danielpalme/IocPerformance: Performance comparison of .NET IoC containers
Performance comparison of .NET IoC containers. Contribute to danielpalme/IocPerformance development by creating an account on GitHub.
#زنگ_تفریح
پروسه تولید نرم افزار 😂😂
۱- برنامه نویس کدهایی رو تولید میکنه که فکر میکنه کدها عاری از هر نوع خطا و باگی است .
۲- محصول تست میشه و ۲۰ تا باگ پیدا میشه .
۳- برنامه نویس ۱۰ تا از اون خطاها رو حل میکنه و برای بخش تست نرم افزار هم توضیح میده که اون ۱۰ تای دیگه واقعا باگ نیستند .
۴- بخش تست در هنگام تست محصول ۵ تا باگ دوباره از اون ۱۰ تایی که حل شده بود پیدا میکنه و علاوه بر اون ۱۵ تا باگ جدید دیگه
۵- مرحله ۳و۴ سه بار تکرار میشه .
۶-بخش فروش به برنامه نویس ها و تسترها فشار میاره که زودباشید نرم افزار رو ارایه کنید و این گونه میشه نرم افزار به دست کاربر میرسه .
7-کاربر 137 تا باگ جدید پیدا میکنه .
8-برنامه نویس های اصلی تولید این محصول باهاشون تسویه میشه و همشون از کار برکنار میشند .
9-تیم برنامه نویسی جدید تقریبا تمام اون 137 تا باگ رو رفع میکنند اما باعث به وجود اومدن 456 تا باگ جدید میشند.
10-شرکت مجبور میشه از یه شرکت دیگه برنامه نویس قرض کنه تا این 738 تا باگ رو رفع بکنند .
11-برنامه نویس خبره که از اون یکی شرکت اومده این کدها رو قبول نداره و میگه باید از اول بنویسه .
12-برنامه نویس کدهایی رو تولید میکنه که فکر میکنه کدها عاری از هر نوع خطا و باگی است .
و این جریان ادامه دارد…😂😂😂
@IranAspMvc
پروسه تولید نرم افزار 😂😂
۱- برنامه نویس کدهایی رو تولید میکنه که فکر میکنه کدها عاری از هر نوع خطا و باگی است .
۲- محصول تست میشه و ۲۰ تا باگ پیدا میشه .
۳- برنامه نویس ۱۰ تا از اون خطاها رو حل میکنه و برای بخش تست نرم افزار هم توضیح میده که اون ۱۰ تای دیگه واقعا باگ نیستند .
۴- بخش تست در هنگام تست محصول ۵ تا باگ دوباره از اون ۱۰ تایی که حل شده بود پیدا میکنه و علاوه بر اون ۱۵ تا باگ جدید دیگه
۵- مرحله ۳و۴ سه بار تکرار میشه .
۶-بخش فروش به برنامه نویس ها و تسترها فشار میاره که زودباشید نرم افزار رو ارایه کنید و این گونه میشه نرم افزار به دست کاربر میرسه .
7-کاربر 137 تا باگ جدید پیدا میکنه .
8-برنامه نویس های اصلی تولید این محصول باهاشون تسویه میشه و همشون از کار برکنار میشند .
9-تیم برنامه نویسی جدید تقریبا تمام اون 137 تا باگ رو رفع میکنند اما باعث به وجود اومدن 456 تا باگ جدید میشند.
10-شرکت مجبور میشه از یه شرکت دیگه برنامه نویس قرض کنه تا این 738 تا باگ رو رفع بکنند .
11-برنامه نویس خبره که از اون یکی شرکت اومده این کدها رو قبول نداره و میگه باید از اول بنویسه .
12-برنامه نویس کدهایی رو تولید میکنه که فکر میکنه کدها عاری از هر نوع خطا و باگی است .
و این جریان ادامه دارد…😂😂😂
@IranAspMvc
#زنگ_تفریح
انکدر جالب کد های جاواسکریپت JSFuck
https://www.jsfuck.com/
طرز کارش به این صورته که فقط از 6 کاراکتر
برای رمزنگاری کد ها استفاده میکنه
و کد انکریپت شده روی هر مرورگری و یا nodejs هم قابل اجراست
منبع : @ProgrammingTip
@IranAspMvc
انکدر جالب کد های جاواسکریپت JSFuck
https://www.jsfuck.com/
طرز کارش به این صورته که فقط از 6 کاراکتر
"[]()!+"
برای رمزنگاری کد ها استفاده میکنه
و کد انکریپت شده روی هر مرورگری و یا nodejs هم قابل اجراست
منبع : @ProgrammingTip
@IranAspMvc
Jsfuck
JSFuck - Write any JavaScript with 6 Characters: []()!+
JSFuck is an esoteric and educational programming style based on the atomic parts of JavaScript. It uses only six different characters to execute code.
Forwarded from یادداشت های یه برنامه نویس (Mohsen Rajabi)
@one_programmer
خبر خوبی که دیروز منتشر شد این بود که NET Core 2.0 منتشر شد
از 13 هزار api تو نسخه 1.1 به 30 هزار api تو نسخه 2.0 رسیده.
از لحاظ performance هم از نسخه 1.1 بهتر عمل کرده
https://blogs.msdn.microsoft.com/dotnet/2017/08/14/announcing-net-core-2-0/
در کنار متشر شدن این نسخه، پروژه های دیگه هم مثل
Entity Framework .net core 2.0
.Net Standard 2.0
Visual Studio 15.3
هم منتشر شدن.
@one_programmer
خبر خوبی که دیروز منتشر شد این بود که NET Core 2.0 منتشر شد
از 13 هزار api تو نسخه 1.1 به 30 هزار api تو نسخه 2.0 رسیده.
از لحاظ performance هم از نسخه 1.1 بهتر عمل کرده
https://blogs.msdn.microsoft.com/dotnet/2017/08/14/announcing-net-core-2-0/
در کنار متشر شدن این نسخه، پروژه های دیگه هم مثل
Entity Framework .net core 2.0
.Net Standard 2.0
Visual Studio 15.3
هم منتشر شدن.
@one_programmer
.NET Blog
Announcing .NET Core 2.0 | .NET Blog
.NET Core 2.0 is available today as a final release. You can start developing with it at the command line, in your favorite text editor, in Visual Studio 2017 15.3, Visual Studio Code or Visual Studio for Mac. It is ready for production workloads,
ابزاری قدرتمند و رایگان جهت مانیتورینگ، ردیابی درخواست ها، خطا یابی و... وبسایت های .Net و Java
https://bit.ly/2w4NaWY
1- ثبت استثنا های رخ داده با جزئیات کامل
2- ثبت کوئری های اجرا شده بر روی دیتابیس
3- ارائه پیشنهاد در جهت رفع ایرادات و افزایش پرفرمنس
4- ردیابی عملیات انجام شده در یک درخواست وبسایت
وبسایت
https://stackify.com/prefix/
دمو :
https://demo.prefix.io/
@IranAspMvc
https://bit.ly/2w4NaWY
1- ثبت استثنا های رخ داده با جزئیات کامل
2- ثبت کوئری های اجرا شده بر روی دیتابیس
3- ارائه پیشنهاد در جهت رفع ایرادات و افزایش پرفرمنس
4- ردیابی عملیات انجام شده در یک درخواست وبسایت
وبسایت
https://stackify.com/prefix/
دمو :
https://demo.prefix.io/
@IranAspMvc
Forwarded from صرفا جهت اطلاع برنامهنویسان
@programming_tips
〰〰〰〰〰〰〰
#bootstrap
🔶🔷تغییر صفحه اول سایت بوت استرپ به ظاهری جدید و اعلام رسمی نسخه 4 بوت استرپ
goo.gl/rJdkro
〰〰〰〰〰〰〰
#bootstrap
🔶🔷تغییر صفحه اول سایت بوت استرپ به ظاهری جدید و اعلام رسمی نسخه 4 بوت استرپ
goo.gl/rJdkro
Forwarded from یادداشت های یه برنامه نویس (Mohsen Rajabi)
@one_programmer
Entity Framework Core 2.0 vs. Dapper performance benchmark, querying SQL Azure tables
@one_programmer
https://koukia.ca/entity-framework-core-2-0-vs-dapper-net-performance-benchmark-querying-sql-azure-tables-7696e8e3ed28
@one_programmer
Entity Framework Core 2.0 vs. Dapper performance benchmark, querying SQL Azure tables
@one_programmer
https://koukia.ca/entity-framework-core-2-0-vs-dapper-net-performance-benchmark-querying-sql-azure-tables-7696e8e3ed28
@one_programmer
Medium
Entity Framework Core 2.0 vs. Dapper performance benchmark, querying SQL Azure tables
While the .Net Core 2.0 is still being baked (Preview 3 is out now!), I thought I’d give the Entity Framework Core 2.0 a try and do a…
اگر استخدام مهندسین مکانیک هم مثل مهندسین کامپیوتر می بود...
@IranAspMvc
@IranAspMvc
#Angular #Angular_CLI #AspNet #AspNetMVC
یکپارچه سازی Angular 4 CLI با پروژه های ASP.Net MVC 5 در ویژوال استودیو حرفه ای
پس از بازنویسی نگارش اولیه ی انگیولار، بهبودهای بسیار گسترده ای از جمله افزایش سرعت بارگذاری و اجرای کدها و نیز ساختار بهتر و ساده تر در آن به جود آمد که سبب شد توسعه دهندگان بیشتری به استفاده از این فریم ورک قدرتمند ترغیب شوند. اما این پایان ماجرا نبود و تیم انگیولار با معرفی برنامه ی خط فرمانی Angular CLI ، چند قدم فراتر رفته و کار ایجاد و مدیریت برنامه، کامپایل ماژول ها و کدهای تایپ اسکریپت و فرآیند بیلد و استقرار آن را به این برنامه محول کرد و سبب شد توسعه ی سریعتر و تجربه ی لذت بخش تری را برای توسعه دهندگان انگیولار فراهم آورد.
تنها نکته ی چالش برانگیزِ استفاده از این ابزار قدرتمند برای توسعه دهندگان دات نت این است که به دلیل وابستگی آن به webpack و اینکه به گونه ای طراحی شده که در زمان توسعه به صورت مستقل عمل کند، استفاده از آن در یک پروژه ی ASP.Net MVC و در ویژوال استودیو حرفه ای به شکل معمول و آسانِ خود میسر نیست و نیازمند برپایی تدارکات و تنظیماتی می باشد. البته اگر از پروژه های جدید ASP.NET Core و نیز محیط توسعه ی Visual Studio Code استفاده میکنید، با توجه به وجود NET Core CLI. که چیزی شبیه به خط فرمان Angular-CLI است، سازگاری بیشتری خواهید داشت. اما اگر به دلایل مختلف هنوز مجبور به استفاده از پروژه های قدیمی ASP.Net MVC 5 هم هستید، جای نگرانی نیست و لینک زیر گام به گام مراحلی که باید جهت یکپارچه سازی Angular CLI با پروژه ی ASP.Net MVC 5 خود طی کنید را شرح داده است. در ضمن اگر به دنبال نمونه ی یک پروژه ی واقعی و با ساختار خوب از Angular 4 هستید، پیشنهاد میکنم حتما پروژه ی موجود در این مقاله را دریافت و مطالعه نمایید:
https://www.codeproject.com/Articles/1193423/Integrating-the-Angular-CLI-With-Visual-Studio
@IranAspMvc
یکپارچه سازی Angular 4 CLI با پروژه های ASP.Net MVC 5 در ویژوال استودیو حرفه ای
پس از بازنویسی نگارش اولیه ی انگیولار، بهبودهای بسیار گسترده ای از جمله افزایش سرعت بارگذاری و اجرای کدها و نیز ساختار بهتر و ساده تر در آن به جود آمد که سبب شد توسعه دهندگان بیشتری به استفاده از این فریم ورک قدرتمند ترغیب شوند. اما این پایان ماجرا نبود و تیم انگیولار با معرفی برنامه ی خط فرمانی Angular CLI ، چند قدم فراتر رفته و کار ایجاد و مدیریت برنامه، کامپایل ماژول ها و کدهای تایپ اسکریپت و فرآیند بیلد و استقرار آن را به این برنامه محول کرد و سبب شد توسعه ی سریعتر و تجربه ی لذت بخش تری را برای توسعه دهندگان انگیولار فراهم آورد.
تنها نکته ی چالش برانگیزِ استفاده از این ابزار قدرتمند برای توسعه دهندگان دات نت این است که به دلیل وابستگی آن به webpack و اینکه به گونه ای طراحی شده که در زمان توسعه به صورت مستقل عمل کند، استفاده از آن در یک پروژه ی ASP.Net MVC و در ویژوال استودیو حرفه ای به شکل معمول و آسانِ خود میسر نیست و نیازمند برپایی تدارکات و تنظیماتی می باشد. البته اگر از پروژه های جدید ASP.NET Core و نیز محیط توسعه ی Visual Studio Code استفاده میکنید، با توجه به وجود NET Core CLI. که چیزی شبیه به خط فرمان Angular-CLI است، سازگاری بیشتری خواهید داشت. اما اگر به دلایل مختلف هنوز مجبور به استفاده از پروژه های قدیمی ASP.Net MVC 5 هم هستید، جای نگرانی نیست و لینک زیر گام به گام مراحلی که باید جهت یکپارچه سازی Angular CLI با پروژه ی ASP.Net MVC 5 خود طی کنید را شرح داده است. در ضمن اگر به دنبال نمونه ی یک پروژه ی واقعی و با ساختار خوب از Angular 4 هستید، پیشنهاد میکنم حتما پروژه ی موجود در این مقاله را دریافت و مطالعه نمایید:
https://www.codeproject.com/Articles/1193423/Integrating-the-Angular-CLI-With-Visual-Studio
@IranAspMvc
Codeproject
Integrating the Angular 4 CLI With Visual Studio Professional & Visual Studio Code
پیش نمایشی از قابلیت های سی شارپ 8
https://www.erikheemskerk.nl/c-sharp-7-2-and-8-0-uncertainty-awesomeness/
@IranAspMvc
https://www.erikheemskerk.nl/c-sharp-7-2-and-8-0-uncertainty-awesomeness/
@IranAspMvc
#دانستی
✅ آیا میدانستید سرعت Add کردن در List سریع تر از HashSet است
✅ آیا میدانستید سرعت کوئری زدن بر روی HashSet سریع تر از کوئری زدن بر روی List است؟
✅ آیا میدانستید سرعت واکشی داده بر اساس [index] به شدت سریع تر از ElementAt(index) است؟
✅ آیا میدانستید سرعت متد Contains در HashSet به شدت سریع تر از Contains در List است؟
✅ آیا میدانستید سرعت متد Find در List سریع تر از متد FirstOrDefault است؟
✅ آیا میدانستید سرعت پروپرتی Count در List از سرعت متد Count() بسیار بیشتر است؟ و در نتیجه آن نوشتن list.Count > 0 سریع تر از list.Any عمل می کند؟
@IranAspMvc
✅ آیا میدانستید سرعت Add کردن در List سریع تر از HashSet است
✅ آیا میدانستید سرعت کوئری زدن بر روی HashSet سریع تر از کوئری زدن بر روی List است؟
✅ آیا میدانستید سرعت واکشی داده بر اساس [index] به شدت سریع تر از ElementAt(index) است؟
✅ آیا میدانستید سرعت متد Contains در HashSet به شدت سریع تر از Contains در List است؟
✅ آیا میدانستید سرعت متد Find در List سریع تر از متد FirstOrDefault است؟
✅ آیا میدانستید سرعت پروپرتی Count در List از سرعت متد Count() بسیار بیشتر است؟ و در نتیجه آن نوشتن list.Count > 0 سریع تر از list.Any عمل می کند؟
@IranAspMvc
#دانستنی
✅ آیا میدانستید در HashSet و SortedSet نمی توان شی تکراری Add کرد؟
✅ آیا میدانستید در SortedList و SortedSet و SortedDictionary به دلیل مرتب سازی حین افزودن ، کند تر از سایر Collection ها مثل List و Dictionary است؟
✅ آیا میدانستید Dictionary و HashSet و HashTable و ... برای فهمیدن تکراری بودن یا نبودن یک شی به هنگام افزودن از مقایسه Hash آنها استفاده می کنند؟
و به همین دلیل (مقایسه Hash مقادیر) به هنگام کوئری زدن به شدت سریع عمل میکنند ؟
✅ آیا میدانستید Collection های Generic (مثل List<> و Dictionary<> و ...) از Collection های Non-Generic (مثل Array و ArrayList و Hashtable) به دلیل عدم نیاز به Boxing و Unboxing از سرعت بیشتر و مصرف حافظه کمتری برخوردار هستند؟
✅ آیا میدانستید در میان Collection های معمول، فقط ArrayList و Hashtable هستند که قابلیت thread-safe بودن را دارا هستند (یعنی در آن واحد، دو ترد نمی توانند به آن اضافه یا حذف کنند)
* نکته : بهتر است برای Collection های thread-safe از انواع داخل فضای نامی System.Collections.Concurrent استفاده کنید
✅ آیا میدانستید Hashtable نیز مانند SortedDictionary در حین افزودن مقادیر را مرتب سازی میکند ولی با ترتیب برعکس آن؟ (اولی نزولی - دومی صعودی)
@IranAspMvc
✅ آیا میدانستید در HashSet و SortedSet نمی توان شی تکراری Add کرد؟
✅ آیا میدانستید در SortedList و SortedSet و SortedDictionary به دلیل مرتب سازی حین افزودن ، کند تر از سایر Collection ها مثل List و Dictionary است؟
✅ آیا میدانستید Dictionary و HashSet و HashTable و ... برای فهمیدن تکراری بودن یا نبودن یک شی به هنگام افزودن از مقایسه Hash آنها استفاده می کنند؟
و به همین دلیل (مقایسه Hash مقادیر) به هنگام کوئری زدن به شدت سریع عمل میکنند ؟
✅ آیا میدانستید Collection های Generic (مثل List<> و Dictionary<> و ...) از Collection های Non-Generic (مثل Array و ArrayList و Hashtable) به دلیل عدم نیاز به Boxing و Unboxing از سرعت بیشتر و مصرف حافظه کمتری برخوردار هستند؟
✅ آیا میدانستید در میان Collection های معمول، فقط ArrayList و Hashtable هستند که قابلیت thread-safe بودن را دارا هستند (یعنی در آن واحد، دو ترد نمی توانند به آن اضافه یا حذف کنند)
* نکته : بهتر است برای Collection های thread-safe از انواع داخل فضای نامی System.Collections.Concurrent استفاده کنید
✅ آیا میدانستید Hashtable نیز مانند SortedDictionary در حین افزودن مقادیر را مرتب سازی میکند ولی با ترتیب برعکس آن؟ (اولی نزولی - دومی صعودی)
@IranAspMvc
منابع تحقیقات بالا 👆
https://net-informations.com/faq/general/dictionary-list.htm
https://net-informations.com/faq/general/dictionary.htm
https://www.dotnetcurry.com/csharp/1362/hashset-csharp-with-examples
https://www.c-sharpcorner.com/blogs/benchmarking-list-vs-dictionary-vs-hashset-vs-sortedset
https://blog.bodurov.com/Performance-SortedList-SortedDictionary-Dictionary-Hashtable/
https://theburningmonk.com/2011/03/hashset-vs-list-vs-dictionary/
https://net-informations.com/faq/general/dictionary-list.htm
https://net-informations.com/faq/general/dictionary.htm
https://www.dotnetcurry.com/csharp/1362/hashset-csharp-with-examples
https://www.c-sharpcorner.com/blogs/benchmarking-list-vs-dictionary-vs-hashset-vs-sortedset
https://blog.bodurov.com/Performance-SortedList-SortedDictionary-Dictionary-Hashtable/
https://theburningmonk.com/2011/03/hashset-vs-list-vs-dictionary/
Net-Informations
C# Dictionary Versus List Lookup Time
The Dictionary is based on a hash table, that means it uses a hash lookup, which is a rather efficient algorithm to look up things, on the other hand, a list you have to go element by element until it finds the result from beginning to the result each time
#دانستنی #نکات_آموزشی #Tips
✅ نتیجه گیری تحقیقات در مورد انواع شمارشی در دات نت که در مجموع، رعایت آنها باعث افزایش سرعت و مصرف کمتر حافظه در برنامه شما می شود
https://goo.gl/zsU61V
1⃣ در List حتما از متد Find به جای FirstOrDefault استفاده کنید.
2⃣ در لیست حتما از پروپرتی Count به جای متد Count() استفاده کنید. (زیرا این پروپرتی ready-made است و نیاز به محاسبه مجدد تعداد ندارد)
3⃣ در لیست حتما از list.Count > 0 به جای متد Any() استفاده کنید.
4⃣ در لیست حتما از [index] به جای ElementAt(index) استفاده کنید.
5⃣ حتی المقدور از Collection های Generic (مانند List<> و HashSet<> و ...) به جای Non-Generic (مانند HashTable و ArrayList و ...) استفاده کنید. (زیرا نیاز به boxing/unboxing ندارد)
6⃣ اگر سرعت به هنگام افزودن برایتان مهم است از List استفاده کنید و اگر سرعت در هنگام کوئری زدن برایتان مهم است از HashSet استفاده کنید.
7⃣ حتی المقدور برای مدیریت مشکل همزمانی (thread-safty) از Collection های موجود در فضای نامی System.Collections.Concurrent به جای روش های دیگر (مثل lock(obj) { ... }) استفاده کنید.
8⃣ حتی المقدور در استفاده از Linq to object عملیات Ordering را «قبل» از Where قرار «ندهید»، زیرا کوئری را بشدت کند می کند. (در linq to sql تفاوتی نمیکند)
9⃣ اگر واقعا به Collection های Sorted مثل (SortedList و SortedDictionary) نیاز ندارید، از انواع مشابه و unOrderd آنها استفاده کنید، زیرا کند تر هستند
🔟 و در آخر نکته ای حاصل از تجربیاتم :
فرض کنید در متد A، اطلاعاتی از دیتابیس را واکشی کرده و در قالب نوع List<> به متد B باز می گردانید؛ سپس متد B کوئری و فیلتری بر روی این اطلاعات زده و باز هم نتیجه را در قالب نوع List<> به متد C باز میگرداند؛ به همین ترتیب در 5 متد مختلف، 5 خروجی فیلتر شده از نتیجه متد قبل را در قالب List<> باز میگردانید.
در این صورت حداقل 5 بار متد ToList برای تبدیل کوئری IEnumerable به List<> استفاده شده است.
با توجه به هزینه بر بودن متد ToList از لحاظ سرعت و مصرف حافظه، بهتر است حتی المقدور، خروجی این 5 متد همان IEnumerable باشد و در مرحله آخر و فقط زمانی که الزاما نیاز به List داشتید، متد ToList را بر روی نتایج صدا بزنید.
@IranAspMvc
✅ نتیجه گیری تحقیقات در مورد انواع شمارشی در دات نت که در مجموع، رعایت آنها باعث افزایش سرعت و مصرف کمتر حافظه در برنامه شما می شود
https://goo.gl/zsU61V
1⃣ در List حتما از متد Find به جای FirstOrDefault استفاده کنید.
2⃣ در لیست حتما از پروپرتی Count به جای متد Count() استفاده کنید. (زیرا این پروپرتی ready-made است و نیاز به محاسبه مجدد تعداد ندارد)
3⃣ در لیست حتما از list.Count > 0 به جای متد Any() استفاده کنید.
4⃣ در لیست حتما از [index] به جای ElementAt(index) استفاده کنید.
5⃣ حتی المقدور از Collection های Generic (مانند List<> و HashSet<> و ...) به جای Non-Generic (مانند HashTable و ArrayList و ...) استفاده کنید. (زیرا نیاز به boxing/unboxing ندارد)
6⃣ اگر سرعت به هنگام افزودن برایتان مهم است از List استفاده کنید و اگر سرعت در هنگام کوئری زدن برایتان مهم است از HashSet استفاده کنید.
7⃣ حتی المقدور برای مدیریت مشکل همزمانی (thread-safty) از Collection های موجود در فضای نامی System.Collections.Concurrent به جای روش های دیگر (مثل lock(obj) { ... }) استفاده کنید.
8⃣ حتی المقدور در استفاده از Linq to object عملیات Ordering را «قبل» از Where قرار «ندهید»، زیرا کوئری را بشدت کند می کند. (در linq to sql تفاوتی نمیکند)
9⃣ اگر واقعا به Collection های Sorted مثل (SortedList و SortedDictionary) نیاز ندارید، از انواع مشابه و unOrderd آنها استفاده کنید، زیرا کند تر هستند
🔟 و در آخر نکته ای حاصل از تجربیاتم :
فرض کنید در متد A، اطلاعاتی از دیتابیس را واکشی کرده و در قالب نوع List<> به متد B باز می گردانید؛ سپس متد B کوئری و فیلتری بر روی این اطلاعات زده و باز هم نتیجه را در قالب نوع List<> به متد C باز میگرداند؛ به همین ترتیب در 5 متد مختلف، 5 خروجی فیلتر شده از نتیجه متد قبل را در قالب List<> باز میگردانید.
در این صورت حداقل 5 بار متد ToList برای تبدیل کوئری IEnumerable به List<> استفاده شده است.
با توجه به هزینه بر بودن متد ToList از لحاظ سرعت و مصرف حافظه، بهتر است حتی المقدور، خروجی این 5 متد همان IEnumerable باشد و در مرحله آخر و فقط زمانی که الزاما نیاز به List داشتید، متد ToList را بر روی نتایج صدا بزنید.
@IranAspMvc
امروز روز افراد باهوش و زیرکی هست که خودشون میگن برای ادامه زندگی فقط به سه چیز احتیاج دارن: code,coffee,sleep
روز جهانی برنامه نویس مبارک 🌹🌸🌺🎉
@IranAspMvc
روز جهانی برنامه نویس مبارک 🌹🌸🌺🎉
@IranAspMvc
#Angular #Extension #VSCode
6 افزونه ی بسیار مفید و ضروری VSCode برای توسعه دهندگان Angular
با گسترش و فراگیر شدنِ برنامه های مبتنی بر Angular در محیط VSCode، افزونه ها(Extensions) ی متعدد و زیادی جهت سهولت در امر توسعه، تهیه و در دسترس قرار گرفتند. انتخاب و نصب این افزونه ها تا حد زیادی بر حسب سلیقه و نوع نیاز انجام می شود. اما در یک رده بندی کلی و عمومی، شاید بتوان 6 افزونه ی زیر را جزو کاربردی ترین آن ها دانست:
1- افزونه TypeScript Hero
اگر شما نیز به دنبال راهی برای افزودنِ اتوماتیکِ ایمپورت ها در فایل های تایپ اسکریپت هستید و همچنین مرتب سازی یا حذف ایمپورت های استفاده نشده برایتان از اهمیت برخوردار است، این افزونه مناسب برای شماست. البته این تنها بخش کوچکی از امکانات این افزونه مانند قابلیت code completion و ... می باشد:
https://goo.gl/f4t1BC
2- افزونه Angular Language Service
از طریقِ این افزونه، قابلیتِ auto-completion فیلدهای تعریف شده در کامپوننت را در تمپلیت HTML خود خواهید داشت:
https://goo.gl/GerGJH
3- افزونه Bracket Pair Colorizer
همان طور که از نام آن پیداست کار این افزونه، تطبیقِ براکت ها از طریق تمایز رنگ آنهاست:
https://goo.gl/cD3DUa
4- افزونه Move TS
کار این افزونه ی مفید، تغییر مکانِ فایل های تایپ اسکریپت و نیز فولدرهای حاوی آن و به روز رسانی ایمپورت های مرتبط با آن است. این افزونه به خصوص زمانی کاربرد دارد که به دلیل بزرگ شدن یکی از ماژول های موجود در پروژه، مجبور به شکستن آن به ماژول های کوچکتر و در نتیجه، انتقال فایل و فولدر های آن هستید:
https://goo.gl/svH4bs
5- افزونه Material Icon Theme
این افزونه دارای تعداد زیادی آیکون های متریال دیزاین برای VSCode می باشد:
https://goo.gl/HgSDAj
6- افزونه Angular TypeScript Snippets
این افزونه ی مفید تعداد زیادی code snippet آماده برای تولید سریع کدها مانند ایجاد کامپوننت، دایرکتیو، سرویس و ... را فراهم میکند. هر چند بسیاری از این موارد توسط برنامه ی خط فرمانی Angular CLI نیز امکان پذیر است، اما این افزونه شامل مواردِ بسیارِ دیگری از جمله snippet هایی برای تولید کدهای HTML نیز می باشد:
https://goo.gl/QfXzkf
منبع و توضیحاتِ کاملِ موارد فوق را میتوانید از طریق لینک زیر مطالعه نمایید:
https://goo.gl/LovRde
@IranAspMvc
6 افزونه ی بسیار مفید و ضروری VSCode برای توسعه دهندگان Angular
با گسترش و فراگیر شدنِ برنامه های مبتنی بر Angular در محیط VSCode، افزونه ها(Extensions) ی متعدد و زیادی جهت سهولت در امر توسعه، تهیه و در دسترس قرار گرفتند. انتخاب و نصب این افزونه ها تا حد زیادی بر حسب سلیقه و نوع نیاز انجام می شود. اما در یک رده بندی کلی و عمومی، شاید بتوان 6 افزونه ی زیر را جزو کاربردی ترین آن ها دانست:
1- افزونه TypeScript Hero
اگر شما نیز به دنبال راهی برای افزودنِ اتوماتیکِ ایمپورت ها در فایل های تایپ اسکریپت هستید و همچنین مرتب سازی یا حذف ایمپورت های استفاده نشده برایتان از اهمیت برخوردار است، این افزونه مناسب برای شماست. البته این تنها بخش کوچکی از امکانات این افزونه مانند قابلیت code completion و ... می باشد:
https://goo.gl/f4t1BC
2- افزونه Angular Language Service
از طریقِ این افزونه، قابلیتِ auto-completion فیلدهای تعریف شده در کامپوننت را در تمپلیت HTML خود خواهید داشت:
https://goo.gl/GerGJH
3- افزونه Bracket Pair Colorizer
همان طور که از نام آن پیداست کار این افزونه، تطبیقِ براکت ها از طریق تمایز رنگ آنهاست:
https://goo.gl/cD3DUa
4- افزونه Move TS
کار این افزونه ی مفید، تغییر مکانِ فایل های تایپ اسکریپت و نیز فولدرهای حاوی آن و به روز رسانی ایمپورت های مرتبط با آن است. این افزونه به خصوص زمانی کاربرد دارد که به دلیل بزرگ شدن یکی از ماژول های موجود در پروژه، مجبور به شکستن آن به ماژول های کوچکتر و در نتیجه، انتقال فایل و فولدر های آن هستید:
https://goo.gl/svH4bs
5- افزونه Material Icon Theme
این افزونه دارای تعداد زیادی آیکون های متریال دیزاین برای VSCode می باشد:
https://goo.gl/HgSDAj
6- افزونه Angular TypeScript Snippets
این افزونه ی مفید تعداد زیادی code snippet آماده برای تولید سریع کدها مانند ایجاد کامپوننت، دایرکتیو، سرویس و ... را فراهم میکند. هر چند بسیاری از این موارد توسط برنامه ی خط فرمانی Angular CLI نیز امکان پذیر است، اما این افزونه شامل مواردِ بسیارِ دیگری از جمله snippet هایی برای تولید کدهای HTML نیز می باشد:
https://goo.gl/QfXzkf
منبع و توضیحاتِ کاملِ موارد فوق را میتوانید از طریق لینک زیر مطالعه نمایید:
https://goo.gl/LovRde
@IranAspMvc
Visualstudio
TypeScript Hero - Visual Studio Marketplace
Extension for Visual Studio Code - Additional toolings for typescript
.Net Core C# vs PHP7 #مقایسه
اینو بفرستین واسه php کارا 😝😝😝
https://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=csharpcore&lang2=php
@IranAspMvc
اینو بفرستین واسه php کارا 😝😝😝
https://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=csharpcore&lang2=php
@IranAspMvc
سیمرغ بلورین بهترین #کپی_کار محتوا (نگیم دزد محتوا)
تعلق میگیره بهههه
دوست عزیزمون @yaserFashami
که حتی با تذکر هم راضی به ذکر منبع نشدند
اینم کانالشون که متاسفانه ما تنها قربانی اون نیستیم و از خیلی کانال های دیگه هم کپی کاری میکنه
@yaserFashamiChannel
به نظرم بهتره مالکیت معنوی رو از خودمون شروع کنیم
مخصوصا ما برنامه نویسا که از کپی شدن محصولاتمون همیشه گله میکنیم
تعلق میگیره بهههه
دوست عزیزمون @yaserFashami
که حتی با تذکر هم راضی به ذکر منبع نشدند
اینم کانالشون که متاسفانه ما تنها قربانی اون نیستیم و از خیلی کانال های دیگه هم کپی کاری میکنه
@yaserFashamiChannel
به نظرم بهتره مالکیت معنوی رو از خودمون شروع کنیم
مخصوصا ما برنامه نویسا که از کپی شدن محصولاتمون همیشه گله میکنیم
#news
زبان برنامه نویسی کریستال که به تازگی توسعه داده شده
و ادعا میکنه در عین سادگی سینتکس (مثل Ruby)، سرعت C رو داره !
https://crystal-lang.org/
مخزن سورس
https://github.com/crystal-lang/crystal
@IranAspMvc
زبان برنامه نویسی کریستال که به تازگی توسعه داده شده
و ادعا میکنه در عین سادگی سینتکس (مثل Ruby)، سرعت C رو داره !
https://crystal-lang.org/
مخزن سورس
https://github.com/crystal-lang/crystal
@IranAspMvc
The Crystal Programming Language
Crystal is a general-purpose, object-oriented programming language. With syntax inspired by Ruby, it’s a compiled language with static type-checking. Types are resolved by an advanced type inference algorithm.