C# Friends – Telegram
C# Friends
117 subscribers
58 photos
4 videos
29 files
72 links
C#, Asp.Net Core, Blazor & Architecture
Guids, Experiences, Tutorials, News and Codes.
Github: saeedrezayi/mrgrayhat
Contact me: @mrgrayhat
Download Telegram
Channel created
🔸با ذکر نام و یاد خداوند متعال و با سلامی به تمامی دوستان، همکاران و عاشقان برنامه نویسی، شروع فعالیتمان را در این کانال و تحت عنوان دوستداران سی شارپ اغاز مینماییم.
🔹امید است با عنایت خداوند متعال، سخت کوشی و همراهی شما عزیزان این کانال را به مرجعی مفید برای تمامی برنامه نویسان و توسعه دهندگان، جهت رشد و تقویت مهارت و استعدادهای علاقه مندان مبدل نماییم.

"دلیلی وجود ندارد که نتوانید بسیار موفق باشید. و درنهایت اگر کسی به شما برچسب «بااستعداد» زد، به او بگویید که سخت‌کوشی باعث موفقیت‌تان شده است."

📝سعید رضایی، 8 اردیبهشت 1397
خب ابتدا بیایم و رزومه جناب سی شارپ رو بررسی کنیم.🙂

سی شارپ چیه؟
این زبان برپایه سادگی، مدرن بودن، همه منظوره و شئ گرا بودن ساخته شد که یک زبان برنامه نویسی سطح بالاست، بدین معنی که به زبان محاوره ای (انگلیسی) بسیار نزدیک میباشد زبان هایی مانند C و ++C سطح متوسط هستند یعنی ما بین زبان ماشین و زبان محاوره ای ما؛ زبان اسمبلی زبان 0و1 زبان سطح پایین و ماشین هستند و یادگیری آن دشوار میباشد، گرچه همه ی سطوح نامبرده در پایان توسط کامپایلر به زبان صفر و یک یا همان ماشین ترجمه میشوند تا برای کامپیوتر قابل فهم و اجرا شوند.
زبان سی شارپ را اسان تر میتوان درک کرد و آموخت و به دلیل کاربردی بودن آن در تمامی پلتفرم ها مانند ویندوز - وب - اندروید - IOS و ... ، در دانشگاه ها و بعضی مدارس در سطوح بین المللی تدریس میشود.
خوشبختانه در سال های اخیر در کشور عزیزمان هم زبان سی شارپ به سرفصل های دروس دانشگاهی و مدارس نمونه اضافه شده و اشنایی نسل جوان با برنامه نویسی و سی شارپ بسیار بیشتر از قبل شده است.
گرچه سطح اموزش اکثر دانشگاه ها و اساتید، مبتدی و در حد اشنایی با این زبان و نوشتن یک ماشین حساب ساده ختم میشود، اما خوشبختانه اموزشگاه ها، شرکت ها و اساتید مجرب بسیاری در این حوزه فعالیت و مشارکت میکنند. از این رو میتوان نگرش مثبتی برای چندسال آینده جهت رشد سواد اموزشی کشور و شکوفایی استعداد علاقه مندان داشت.
از سال ۲۰۰۲ تاکنون زبان سی شارپ به صورت گسترده ای توسعه پیدا کرده است و شاید توسعه یافته ترین زبان برنامه نویسی باشد. برای همین یادگیری بخش بزرگی از آینده شغلی شما را برای هماهنگی با پیشرفت های فناوری و نیازهای بازار کار را تشکیل میدهد.
سی شارپ از کجا اومده؟
سی شارپ توسط شرکت مایکروسافت در سال 2000 میلادی از خانوادهٔ زبان‌های چارچوب دات‌نت معرفی شد. زبان سی شارپ همچنین از خانواده زبان‌های برنامه‌نویسی سی نیز است.
آندرس هجلزبرگ، طراح زبان برنامه‌نویسی دلفی، سرپرستی تیم طراحان زبان سی شارپ را بر عهده داشت. این زبان دارای دستوری شیءگرا مشابه ++C است و به شدت از زبان‌های جاوا و دلفی تأثیر پذیرفته‌است.
در ابتدا نام این زبان COOL بود که مخفف C like Object Oriented Language بود، هر چند در ژوئیه ۲۰۰۰م، زمانی که مایکروسافت پروژه را عمومی اعلام کرد، اسم آن به سی شارپ تغییر پیدا کرد. (منبع Wikipedia)
تاریخچه کامل و مفید سی شارپ را میتوانید در ویکی پدیا فارسی بخوانید.
https://goo.gl/RJUNFa


کاربرد های سی شارپ چیه؟
سی شارپ در اکثریت زمینه ها مورد اسقبال توسعه دهندگان قرار گرفت. از سی شارپ در صنعت تولید نرم افزار های کامپیوتری تحت دسکتاپ و وب،وب سایت ها، بازی های کامپیوتری، هوش مصنوعی، اپلیکیشن های تلفن های هوشمند(android, ios)، آموزشی و حتی در صنایع دفاعی مورد استفاده قرار گرفته است.
چطور میشه سی شارپ رو یاد گرفت؟

به راحتی! باور نمیکنید؟! همراه من باشید.
چرا سی شارپ؟

سوال خوب و البته بی انتها و پربحثی هست. در تمام دنیا بر سر این موضوع بحث و جدل هست.!
- " چرا {فلان زبان}؟ "
- #C بهتره یا C ؟
- asp.net یا php ؟
- python یا java ؟
و هزاران سوال دیگر ازین قبیل.
در حال تهیه مطلب و دسته بندی هستم.
به زودی به صورت دوره ای مطالبی را منتشر خواهم کرد.
مضمون مطالب آموزشی و کاربردی، نقد و بررسی، معرفی و تکنولوژی های روز، نظرسنجی، مسابقات، تحلیل و برنامه سازی می‌باشد.
یکی از مهمترین نکات یک وب‌سایت خوب، داشتن سرعت بالای Load است، به شکلی که حتی داشتن سرعت بارگیری یک وب سایت حتی بر SEO آن نیز تاثیر گذار است. نکات بسیاری برای افزایش سرعت وب‌سایت وجود دارد که به تجربه توسعه دهنده و میزان اطلاعات وی بستگی دارد.

برخی از مهمترین نکات جهت افزایش سرعت یک وب‌سایت ASP.NET در زیر آمده است:

۱- به‌روز رسانی NET Framework. مربوط به وب‌سایت
ویرایش فعلی فریم ورک سایت خود را بررسی کنید. تنظیم آن به مقدار 4.5 (آخرین ویرایش فعلی) باعث افزایش بهره‌وری و سرعت خواهد شد. NET 4.5. دارای یک Garbage Collector بسیار قدرتمند است که می‌تواند heap‌های بسیار بزرگ را مدیریت کند. از بهینه‌سازی انجام شده دیگر در این نسخه، می توان به بهینه شدن چند هسته‌ای کامپایلر JIT و قابلیت معلق سازی برنامه‌های ASP.NET اشاره کرد. این بهینه‌سازی‌ها نیازی به تغییر کد برنامه ندارند.

- اعمال Caching
۱-۲- از صفت OutputCache برای صفحاتی که پویا نیستند و میزان بازدید آن‌ها زیاد است استفاده کنید. برای استفاده از این صفت در MVC می‌توان آن را به یک Controller به‌خصوص یا کل کلاس Controller اختصاص داد. برای مثال در زیر کنترلر Index برای ۲۰ ثانیه کش شده است:
[OutputCache(Duration = 20, VaryByParam = "None")]
public ActionResult Index(string Id)
{}

۲-۲- سعی کنید عملیات I/O مورد نیاز برای داده‌ها را از دیسک کاهش دهید. به‌جای آن از کش کردن داده‌ها در حافظه‌ی اصلی کمک بگیرید. با این‌کار جلوی بسیاری از عملیات پر‌هزینه مانند کوئری‌های مکرر برای دریافت داده را خواهید گرفت. به علاوه کش کردن داده یک خاصیت مهم دیگر نیز دارد و آن این است که وقتی Data Source موقتا با مشکل مواجه می‌شود داده‌ها از دسترس خارج نمی شوند. دات نت کلاس‌های بسیار خوبی برای استفاده از امکانات کش در ASP.NET فراهم کرده است. این کلاس‌ها در فضای نام System.Runtime.Caching موجودند.

- نگهداری اطلاعات CSS و JavaScript خارج از صفحه
اضافه‌کردن کلاس‌های CSS و یا کدهای جاوا اسکریپت به‌صورت inline در Viewها باعث تولید مجدد آنها در هر بار درخواست صفحه خواهد شد. با این کار شما مزایای کش شدن صفحه را از دست خواهید داد. بنابراین همیشه این کدها را خارج از صفحه مورد استفاده نگهداری کنید و فقط ارجاعات آنها را (link) به صفحه اضافه کنید.

- فشرده سازی فایل
عموما در بیشتر وب‌سایت‌ها درخواست‌های مکرر و زیادی برای فایل‌های استاتیک از وب‌سرور داده می‌شود. این فایل‌ها می‌توانند فشرده شوند تا پهنای باند کمتری در هر درخواست مصرف شود. یک تنظیم بسیار عالی برای این‌کار در IIS 7 و بالاتر وجود دارد:
<configuration>
<system.webServer>
<urlCompression doStaticCompression=true doDynamicCompression=true />
</system.webServer>
</configuration>
به نظر تگ urlCompression کمی برای این‌کار عجیب به‌نظر می‌رسد ولی این تگ واقعا URL را فشرده نمی‌کند. این تگ محتوای اطلاعاتی که قرار است به مرورگر کاربر فرستاده شود را فشرده می‌کند. برای فعال سازی آن کافی است مقادیر ویژگی‌های این تگ به true تنظیم شود تا عمل فشرده سازی انجام شود و پهنای باند استفاده شده کاهش یابد.

۵- بسته‌بندی (Bundling) و کوچک سازی (Minification)
فایل‌های CSS و JavaScripts می‌توانند در یک فایل تکی قرار گیرند. با این‌کار تعداد درخواست‌های Http به وب‌سرور کاهش می‌یابد. همچنین با عملیات Minification بسیار از فضا‌های خالی این‌فایل‌ها حذف می‌شوند و در نتیجه حجم فایل ارسالی کاهش خواهد یافت. ابزار‌های بسیاری در وب برای این‌کار موجود است.

۶- استفاده از CDN
بهتر است فایل‌های جاوا اسکریپت پر استفاده و معروف مانند Jquery را به جای این‌که در یک هاست شخصی قرار دهیم آنها را در CDN بگذاریم. سرورهای CDN برای ارائه فایل‌های استاتیک پراستفاده طراحی شدند و به‌دلیل در نظر گرفتن موقعیت جغرافیایی درخواست کننده و سرعت بالا و پهنای باند بالای سرورهای آنها بسیار سریعتر از هاست شخصی عمل می‌کنند. همچنین احتمال زیادی وجود دارد که مرورگر به طور خودکار فایل‌های JavaScript را با درنظر گرفتن درخواست‌های متعدد با URL یکسان کش کند. یکی از معروف‌ترین سرویس‌های ارائه دهنده CDN، این سایت است.
- کنترل کردن درخواست‌های مربوط به تصاویر

۱-۷- استفاده از تکنیک Image Sprits:
با استفاده از تکنیک می‌توان تعداد زیادی تصویر کوچک را در قالب یک تصویر بزرگ ادغام کرد و سپس با استفاده از دستورات CSS هر قسمت را جداگانه فراخوانی کرد. این کار باعث کاهش تعداد درخواست‌ها از وب‌سرور و افزایش قابل توجه سرعت می‌شود. ابزارهای زیادی برای ایجاد این‌تصاویر و CSS تولیدی وجود دارد.
۲-۷- استفاده از Base64 Data URIs:
با استفاده از این تکنیک شما می‌توانید بدون نیاز به درخواست مستقیم تصویر از وب‌سرور به تصویر خود دست‌پیدا کنید.

۸- ترتیب رندر شدن اسکریپت‌ها
تگ‌های <noscript> را به انتهای هر صفحه منتقل کنید. این کار از این جهت مفید است که مرورگر هنگام رندر صفحه وقتی به تگ <noscript> می‌رسد تا اتمام کامل پردازش آن صبر می‌کند و سپس ادامه می‌دهد. این کار باعث می‌شود محتوای HTML صفحه سریعتر از مابقی بخش‌ها رندر شده و به کاربر نمایش داده شود. البته گاهی اوقات مانند زمانی که فایل‌های CSS به این اسکریپت‌ها نیازمند است؛ امکان انتقال آن‌ها به انتهای صفحه وجود ندارد.

روش دیگر اینکار استفاده از صفت‌های این تگ است:
<noscript src=some.js defer>
</noscript>
استفاده از صفت defer باعث می‌شود اجرای اسکریپت تا پردازش کل صفحه به تعویق بیافتد.
<noscript src=some.js async>
</noscript>
استفاده از صفت async باعث می‌شود اجرای اسکریپت به صورت غیرهمزمان در اولین فرصت انجام شود.

۹- حذف ماژول‌هایHTTP پیش‌فرض ASP.NET
ASP.NET دارای ماژول‌های HTTP بسیاری است که آماده گرفتن درخواست و پردازش هستند، این ماژول‌ها می‌توانند کل Pipeline را تسخیر کنند حتی درصورتی که برای برنامه‌ی شما پیکربندی نشده باشند.
همه‌ی این ماژول‌های پیش‌فرض در یک فایل machine.config در مسیر:
"WINDOWS%\Microsoft.NET\Framework\%VERSION%\CONFIG%"
قرار دارد. بنابراین در صورتی که دارای وب‌سرور اختصاصی هستید برخی از ماژول‌های پیش‌فرض را که استفاده‌ای از آن‌ها را ندارید از این فایل حذف کنید.

۱۰- کامپایل پروژه در حالت Release
همیشه گزینه Build پروژه را درحالت Release قرار دهید. این‌کار باعث می‌شود بسیاری از متادیتا‌ها و اطلاعات اضافی که صرفا جهت Debug برنامه کاربرد دارد از اسمبلی حذف شود و عملیات بهینه‌سازی برای اجرا روی کد نهایی انجام شود.

هرچقدر تجربه‌ی شما در زمینه طراحی و توسعه وب‌سایت و کار با ASP.NET بالاتر برود نکات بیشتری را باید رعایت کنید تا سایت سریعتری داشته باشید. برای رسیدن به این منظور تلاش کنید چون هرکسی می‌تواند با استفاده از یک CMS و یا این ابزارها یک سایت معمولی طراحی کند.

منبع aghamohammadi.ir, microsoft.com
Forwarded from Mr.Grayhat [Saeed.R]
This media is not supported in your browser
VIEW IN TELEGRAM
وقتی که به شما می گویند ماژولی را که کل هفته پیش را رویش کار کرده اید، کنار گذاشته و هرگز از آن استفاده نخواهد شد 😞
Forwarded from Mr.Grayhat [Saeed.R]
This media is not supported in your browser
VIEW IN TELEGRAM
وقتی که رئیستان دنبال شخصی برای رفع سریع مشکلی دشوار می گردد
Forwarded from Mr.Grayhat [Saeed.R]
This media is not supported in your browser
VIEW IN TELEGRAM
وقتی که تیم فروش، موفق به فروش محصول به مشتری می شود.
Forwarded from Mr.Grayhat [Saeed.R]
This media is not supported in your browser
VIEW IN TELEGRAM
وقتی که نسخه بتا را تحویل میدهید و اولین گزارش باگ را دریافت میکنید
Forwarded from Software Philosophy
آیا ترکیب WebAssembly و .Net آینده برنامه‌نویسی front-end است؟ این نام مقاله جدید اسکات هانسلمن است که در آن توضیح می‌دهد چطور .NET Core 2.0 این ایده را امکان پذیر کرده‌است که کدهای front-end را با c# نوشت و به WebAssembly کامپیال کرد. در این مقاله توضیح داده شده که چطور Steve Sanderson (برنامه نویس اصلی فریم‌ورک knockout) در یک پروژه آزمایشی به نام Blazor دقیقا مانند Angular, Knockout و Ember کد نوشته، با این تفاوت که این کد با C# نوشته شده.

مقاله زیر جزئیات نوشتن کد روی WebAssembly را با استفاده از .Net Core و C# شرح داده‌است.

https://www.hanselman.com/blog/NETAndWebAssemblyIsThisTheFutureOfTheFrontend.aspx

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، بر روی لینک زیر کلیک کنید:

http://ow.ly/KVCh30ewRvs

#مهران_داودی (http://ow.ly/GwIl309lFEm)

کانال تلگرام:
@SoftwarePhilosophy

___
Forwarded from Mr.Grayhat [Saeed.R]
بحثی که گزاشتم درباره فریم ورک جدید دات نت core هست بنام Blazor و خیلی جالب و کاربردیه ساده اش میشه کدنویسی سمت کاربر مثل انگولار و ری اکت، با زبان C# ! و البته js هم میشه، من خودم خوشم نمیاد هی آنگولار و ری اکت کار کنم واقعا برای من که خوب بود و پیشنهاد میکنم سرچ کنین
فول استک بنویسین وب رو فقط با html,css,C#.net + signalR