Forwarded from Software Philosophy
هشت نکته در زبان C# که احتمالا آنها را نمیدانید! دو نکته که برای من جالب بود:
۱. در Indexer ها میتوان از params استفاده کرد و چندین پارامتر ورودی استفاده کرد.
۲. بر روی enum ها هم میتوان Extension Method تعریف کرد.
https://damieng.com/blog/2012/10/29/8-things-you-probably-didnt-know-about-csharp
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
۱. در Indexer ها میتوان از params استفاده کرد و چندین پارامتر ورودی استفاده کرد.
۲. بر روی enum ها هم میتوان Extension Method تعریف کرد.
https://damieng.com/blog/2012/10/29/8-things-you-probably-didnt-know-about-csharp
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
DamienG
8 things you probably didn’t know about C# - DamienG
Here’s a few unusual things about C# that few C# developers seem to know about.
Forwarded from Iran .Net
چه تفاوتی بین مفاهیم Asynchronous و Multi Threading وجود دارد؟
تفاوت این دو مفهوم برای خیلی مشخص نیست، با آنکه به کلی متفاوت از هم می باشند.
مفهوم Asynchronous به ماهیت Non-Blocking یک متد یا فرایند اشاره می کند.
به طور ساده، می دانیم که در صورت صدا زدن یک متد، جریان برنامه متوقف می شود. پس از پایان یافتن متد، برنامه مجددا به مسیرِ اجرای خود ادامه خواهد داد. به این نوع از متد ها متدهای Blocking گفته می شود، بدین معنی که فرایند برنامه تا زمانِ اتمام این نوع از متد ها متوقف (بلاک) خواهد شد. اما در موردمتدهای Non-Blocking و یا Asynchronous قضیه فرق می کند و جریانِ اصلی برنامه پس از صدا زدن متد، معطل تمام شدن متد نخواهد ماند و به مسیر خود ادامه خواهد داد. این نوع از متدها معمولا در مورد امور I/O و مواردی که در حوزه سیستم عامل، دیسک و شبکه و پایگاه داده و ... می باشند، مورد استفاده قرار می گیرند.
از سوی دیگر مفهوم Multi Threading به این موضوع اشاره می کند که یک تکه از کد همزمان توسط چند Thread در حال اجرا می باشد. این نوع از اجرا بیشتر در مورد کد هایی استفاده می شوند که به اصطلاح CPU Bound بوده و دارای بار پردازشی زیادی می باشند. با تقسیم بار بین چند پردازنده سعی می کنیم، موجب سریع تر و بهینه تر شدن کد شویم.
http://blog.slaks.net/2014-12-23/parallelism-async-threading-explained/
@irandotnet
تفاوت این دو مفهوم برای خیلی مشخص نیست، با آنکه به کلی متفاوت از هم می باشند.
مفهوم Asynchronous به ماهیت Non-Blocking یک متد یا فرایند اشاره می کند.
به طور ساده، می دانیم که در صورت صدا زدن یک متد، جریان برنامه متوقف می شود. پس از پایان یافتن متد، برنامه مجددا به مسیرِ اجرای خود ادامه خواهد داد. به این نوع از متد ها متدهای Blocking گفته می شود، بدین معنی که فرایند برنامه تا زمانِ اتمام این نوع از متد ها متوقف (بلاک) خواهد شد. اما در موردمتدهای Non-Blocking و یا Asynchronous قضیه فرق می کند و جریانِ اصلی برنامه پس از صدا زدن متد، معطل تمام شدن متد نخواهد ماند و به مسیر خود ادامه خواهد داد. این نوع از متدها معمولا در مورد امور I/O و مواردی که در حوزه سیستم عامل، دیسک و شبکه و پایگاه داده و ... می باشند، مورد استفاده قرار می گیرند.
از سوی دیگر مفهوم Multi Threading به این موضوع اشاره می کند که یک تکه از کد همزمان توسط چند Thread در حال اجرا می باشد. این نوع از اجرا بیشتر در مورد کد هایی استفاده می شوند که به اصطلاح CPU Bound بوده و دارای بار پردازشی زیادی می باشند. با تقسیم بار بین چند پردازنده سعی می کنیم، موجب سریع تر و بهینه تر شدن کد شویم.
http://blog.slaks.net/2014-12-23/parallelism-async-threading-explained/
@irandotnet
#پست_مجدد این پست تا به حال بیش از ۱۱۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
برای شما که علاقه دارید (عجله دارید!) تا امکانات C# 7.0 را همین الان امتحان کنید، قبل از اینکه نسخه نهایی آن منتشر شود، لینک زیر توضیح میدهد که چطور میتوانید در Visual Studio 2015 و یا Visual Studio '15' (نسخه بعدی) نسخه جدید زبان C# را امتحان کنید. با توجه به اینکه کامپایلر جدید این زبان (Roslyn) دیگر Open Source شده، شما میتوانید حتی آخرین نسخه موجود را امتحان کنید.
http://www.c-sharpcorner.com/article/how-to-compile-test-C-Sharp-7-features/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
http://www.c-sharpcorner.com/article/how-to-compile-test-C-Sharp-7-features/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
C-Sharpcorner
How To Compile & Test C# 7 Features
In this article you will learn how to compile & test C# 7 features.
#پست_مجدد این پست تا به حال بیش از ۱۱۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
همیشه یکی از مراحل مهم در توسعه نرمافزار، مرحله Optimization است. در این مرحله معمولا کدها نوشته شده و حال نوبت رفع کندیهایی است که در برنامه وجود دارد. برای این کار باید ابتدا تشخیص دهید چه قسمتهایی از برنامه کند است، یا به طور دقیقتر چه متدهایی و یا دقیقا اجرای چه خطهایی باعث کند شدن برنامه شدهاست. به ابزارهایی که به شما کمک میکنند بتوانید نرمافزار خود را از این لحاظ بررسی کنید Performance Profiler میگویند. از نمونه ابزارهای قوی در این حوزه میتوان به dotTrace و ANZ اشاره کرد. در خود Visual Studio نیز چنین ابزاری به نام Profiler وجود دارد که لینک زیر نحوه استفاده از آن را شرح دادهاست.
https://blogs.msdn.microsoft.com/visualstudioalm/2016/04/28/how-cpu-sampling-works/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
https://blogs.msdn.microsoft.com/visualstudioalm/2016/04/28/how-cpu-sampling-works/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
Microsoft
How CPU Sampling Works
Learn to use Visual Studio, Visual Studio Team Services, Application Insights and Team Foundation Server to decrease rework, increase transparency into your application and increase the rate at which you can ship high quality software throughout the application…
#پست_مجدد این پست تا به حال بیش از ۱۲۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
از جمله تکنولوژیهای جذابی که این روزها به عنوان تکنولوژیهای آینده وب مطرح هستند Angular 2، TypeScript و ASP.NET Core برای ساخت برنامههای Cross-Platform هستند. یکی از جذابیتهای این تکولوژیها این است که تمامی آنها کاملا از ابتدا نوشته شدهاند و با توجه به این که نیازی به پشتیبانی از نسخههای قبل ندارند معماری کاملا نوینی و مدرنی دارند.
این لینک به صورت قدم به قدم آموزش داده است که همین الان چطور میتوانید با این تکنولوژیها برنامه تولید کنید. بنابراین با خواندن این پست و انجام مراحل شما یک محصول کامل خواهید نوشت.
https://chsakell.com/2016/01/01/cross-platform-single-page-applications-with-asp-net-5-angular-2-typenoscript/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
این لینک به صورت قدم به قدم آموزش داده است که همین الان چطور میتوانید با این تکنولوژیها برنامه تولید کنید. بنابراین با خواندن این پست و انجام مراحل شما یک محصول کامل خواهید نوشت.
https://chsakell.com/2016/01/01/cross-platform-single-page-applications-with-asp-net-5-angular-2-typenoscript/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
بهترین راه برای تست کارایی یک نمونهی اولیه واسط کاربری، مشاهده دقیق افرادیست که برای اولین بار از آن استفاده میکنند. با این کار میتوان به راحتی متوجه شد که چه قسمت هایی گیج کننده است، چه قسمت هایی نامفهوم است یا کارایی مناسب را ندارد و از آنها در جهت بهبود طراحی استفاده کرد.
برای انجام این کار با توجه به اینکه کاربر نهایی چه کسی است و چه اهدافی دارد، یک سناریو یا داستان نوشته می شود و کارهایی که شخص باید انجام دهد را مشخص میکند اما در آن به جای اینکه مشخصا از شخص خواسته شود که "کار X را انجام بده!"، یک سناریو طرح میشود که این فضا را به شخص بدهد که کار X را انجام دهد. برای مثال، یک سناریو میتواند این باشد: "شما درحال برنامهریزی سفر به شهر اصفهان از تاریخ ۳ فروردین تا ۶ فروردین هستید و احتیاج دارید که بلیط هواپیمای خود را بخرید. برای انجام این کار به سایت هواپیمایی ماهان می روید.". و متوجه میشویم که کاربر آیکون خرید بلیط را خیلی سخت پیدا کرده است. این آزمایش به طراح نشان میدهد باید طراحی تجربه کاربری را تغییر دهد...
در مقاله ی زیر می توانید با این روش کاملتر آشنا شوید.
https://www.nngroup.com/articles/task-scenarios-usability-testing
#زهره_مرادی
لینکدین:
https://ir.linkedin.com/in/zohre-moradi
کانال تلگرام:
@SoftwarePhilosophy
___
برای انجام این کار با توجه به اینکه کاربر نهایی چه کسی است و چه اهدافی دارد، یک سناریو یا داستان نوشته می شود و کارهایی که شخص باید انجام دهد را مشخص میکند اما در آن به جای اینکه مشخصا از شخص خواسته شود که "کار X را انجام بده!"، یک سناریو طرح میشود که این فضا را به شخص بدهد که کار X را انجام دهد. برای مثال، یک سناریو میتواند این باشد: "شما درحال برنامهریزی سفر به شهر اصفهان از تاریخ ۳ فروردین تا ۶ فروردین هستید و احتیاج دارید که بلیط هواپیمای خود را بخرید. برای انجام این کار به سایت هواپیمایی ماهان می روید.". و متوجه میشویم که کاربر آیکون خرید بلیط را خیلی سخت پیدا کرده است. این آزمایش به طراح نشان میدهد باید طراحی تجربه کاربری را تغییر دهد...
در مقاله ی زیر می توانید با این روش کاملتر آشنا شوید.
https://www.nngroup.com/articles/task-scenarios-usability-testing
#زهره_مرادی
لینکدین:
https://ir.linkedin.com/in/zohre-moradi
کانال تلگرام:
@SoftwarePhilosophy
___
Nielsen Norman Group
Task Scenarios for Usability Testing
Guidelines for usability test tasks: engage participants by writing task scenarios that are realistic, encourage an action, and don't give away how the interface should be used.
#پست_مجدد این پست تا به حال بیش از ۱۴۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
معماری نرمافزاری و سختافزاری سایت StackOverflow در سایت ۲۰۱۶. در این پست Nick Craver یکی از برنامهنویسان سایت StackOverflow حجم بالای ترافیک این سایت را توصیف کرده و توضیح میدهد که در معماری نرمافزاری که برای نوشتن این سایت استفاده شده از چه تکنولوژیهای استفاده شدهاست. از آنجایی که این سایت یکی از محصولات موفق با بار ترافیک بالا است، تکنولوژیهای استفاده شده در این سایت همیشه برای برنامهنویسان جذاب بوده است.
http://nickcraver.com/blog/2016/02/17/stack-overflow-the-architecture-2016-edition/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
http://nickcraver.com/blog/2016/02/17/stack-overflow-the-architecture-2016-edition/
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
Nickcraver
Nick Craver - Stack Overflow: The Architecture - 2016 Edition
This is #1 in a very long series of posts on Stack Overflow’s architecture. Welcome.Previous post (#0): Stack Overflow: A Technical DeconstructionNext post...
مطمئنا برای خیلی از ما پیش آمده است که یک صحفه را طراحی کردهایم و در browser مان همه چیز مرتب و به قاعده است، اما بعد از ریلیز روی سایت از دوستان و اطرافیانتان می شنویم که صفحه به هم ریخته و نامرتب بنظر میرسد.
نگذارید این اتفاق برای شما هم بیافتد. بعد از انجام کار زمان لازم را برای تست صفحه وب خود روی browserهای مختلف بگذارید.
اگر همه browserها را روی رایانه خود نصب ندارید، ابزارهای آنلاینی وجود دارد که می توانید با استفاده از آنها صفحه وب خود را در browserهای مختلف و ورژنهای مختلف آنها تست کنید. از جمله این سایتها:
• The Browser Sandbox
• BrowserShots.org
• CrossBrowserTesting.com
مقاله زیر به شرح این مشکل پرداخته و راه کارهایی را پیشنهاد کرده و مختصر توضیحی از سایت های ذکر شده ارائه کرده است.
http://www.digitalfamily.com/tutorials/test-your-website-in-differen-web-browsers/
#مریم_داودی
لینکدین:
https://www.linkedin.com/in/maryam-davoudi-7913565a
کانال تلگرام:
@SoftwarePhilosophy
___
نگذارید این اتفاق برای شما هم بیافتد. بعد از انجام کار زمان لازم را برای تست صفحه وب خود روی browserهای مختلف بگذارید.
اگر همه browserها را روی رایانه خود نصب ندارید، ابزارهای آنلاینی وجود دارد که می توانید با استفاده از آنها صفحه وب خود را در browserهای مختلف و ورژنهای مختلف آنها تست کنید. از جمله این سایتها:
• The Browser Sandbox
• BrowserShots.org
• CrossBrowserTesting.com
مقاله زیر به شرح این مشکل پرداخته و راه کارهایی را پیشنهاد کرده و مختصر توضیحی از سایت های ذکر شده ارائه کرده است.
http://www.digitalfamily.com/tutorials/test-your-website-in-differen-web-browsers/
#مریم_داودی
لینکدین:
https://www.linkedin.com/in/maryam-davoudi-7913565a
کانال تلگرام:
@SoftwarePhilosophy
___
#پست_مجدد این پست تا به حال بیش از ۱۱۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
اگر میخواهید از Entity Framework Core روی SQLite استفاده کنید، لینک زیر محدودیتهای EF Core را روی آنها توضیح دادهاست. البته بیشتر این محدودیتها به دلیل پشتیبانی نکردن خود SQLite از این عملیات است. برای مثال شما میتوانید برای رفع محدودیتهای Migration در مورد این کارهای خاص از متد Sql(string) استفاده کنید.
http://ef.readthedocs.io/en/latest/providers/sqlite/limitations.html
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
http://ef.readthedocs.io/en/latest/providers/sqlite/limitations.html
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
محاسبات بدون سرور یا «Serverless Computing» مفهومی است که جذابیتهای زیادی را در دنیا نرمافزار ایجاد کردهاست. این مفهوم با تکنولوژی Azure Functions بسیار ملموستر و عملیتر شده و دنیای Micro Service را با امکان جدیدی روبرو کردهاست. شما کافیست Function مورد نظر خود را در بروزر به زبان C# یا JavaScript بنویسید و آن را در Azure هاست کنید. از این به بعد این تابع روی کلاد با Scalability بسیار بالا قابل دسترس است و هر چقدر بار استفاده از آن بالاتر رود به طور خودکار Scaling انجام میشود.
لینک زیر از اسکات هانسلمن، نحوه نوشتن و استفاده از این قابلیت را شرح دادهاست.
http://www.hanselman.com/blog/WhatIsServerlessComputingExploringAzureFunctions.aspx
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
لینک زیر از اسکات هانسلمن، نحوه نوشتن و استفاده از این قابلیت را شرح دادهاست.
http://www.hanselman.com/blog/WhatIsServerlessComputingExploringAzureFunctions.aspx
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Hanselman
What is Serverless Computing? Exploring Azure Functions
There's a lot of confusing terms in the Cloud space. And that's not counting the term 'Cloud.' ;) IaaS (Infrastructure ...
#پست_مجدد این پست تا به حال بیش از ۱۲۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
پروژه Jil یک کتابخانه جذاب برای استفاده به عنوان JSON Serializer است. اگر تا به حال از کتابخانههایی مانند NewtonSoft استفاده کردهاید و دغدغه Performance داشتهاید این کتابخانه میتواند جایگزین مناسبی باشد. جالب است بدانید که کتابخانهای است که برنامهنویسان سایت StackOverflow به دلیل Performance انتخاب کردهاند و در طراحی این سایت از آن استفاده کردهاند.
https://github.com/kevin-montrose/Jil
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
https://github.com/kevin-montrose/Jil
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
GitHub
GitHub - kevin-montrose/Jil: Fast .NET JSON (De)Serializer, Built On Sigil
Fast .NET JSON (De)Serializer, Built On Sigil. Contribute to kevin-montrose/Jil development by creating an account on GitHub.
#پست_مجدد این پست تا به حال بیش از ۱۰۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
اگر در حال توسعه نرمافزار هستید و با مفهوم Source Control آشنایی ندارید، حتما یک جای کار خیلی مشکل دارد! امروزه مفاهیم و ابزارهای سورس کنترل انقدر زیاد و متداول شدهاند که اگر به آن عادت کنید، دیگر حتی بدون آنها نمیتوانید یک پروژه شخصی در خانه بنویسید.
لینک زیر که توسط تیم git (یکی از محبوبترین ابزارهای سورس کنترل) نوشته شدهاست، مفاهیم پایهای را توضیح میدهد.
https://www.atlassian.com/git/tutorials/what-is-version-control
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
لینک زیر که توسط تیم git (یکی از محبوبترین ابزارهای سورس کنترل) نوشته شدهاست، مفاهیم پایهای را توضیح میدهد.
https://www.atlassian.com/git/tutorials/what-is-version-control
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilisophy
___
Atlassian
What is version control | Atlassian Git Tutorial
Version control is the practice of tracking and managing changes to software code. Learn about the benefits of version control systems here.
با استفاده از دستور supports@ در CSS میتوان پشتیبانی مرورگر را در مورد یک ویژگی بررسی کرد. یعنی آن ویژگی در مرورگر مورد نظر کار میکند یا خیر.
معمولا این کار توسط کتابخانههای جاوااسکریپت نظیر Modernizr انجام میشود اما این دستور این امکان را می دهد تا بتوان این آزمایش را در فایل CSS بدون نوشتن کد جاوااسکریپت انجام داد.
اگر علاقمند به استفاده از این ویژگی هستید، لینک زیر را بخوانید.
https://davidwalsh.name/css-supports
#مریم_داودی
لینکدین:
https://www.linkedin.com/in/maryam-davoudi-7913565a
کانال تلگرام:
@SoftwarePhilosophy
___
معمولا این کار توسط کتابخانههای جاوااسکریپت نظیر Modernizr انجام میشود اما این دستور این امکان را می دهد تا بتوان این آزمایش را در فایل CSS بدون نوشتن کد جاوااسکریپت انجام داد.
اگر علاقمند به استفاده از این ویژگی هستید، لینک زیر را بخوانید.
https://davidwalsh.name/css-supports
#مریم_داودی
لینکدین:
https://www.linkedin.com/in/maryam-davoudi-7913565a
کانال تلگرام:
@SoftwarePhilosophy
___
David Walsh Blog
CSS @supports
Firefox, Chrome, and Opera have just recently added support for CSS @supports (CSS) and CSS.supports (JavaScript) to detect browser support for a given style directive.
#پست_مجدد این پست تا به حال بیش از ۱۰۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.