کدهک
1.92K subscribers
1.3K photos
7 videos
1 file
680 links
آموزشگاه تخصصی دات نت

https://codehaks.com

لینکدین :
https://www.linkedin.com/in/codehaks

یوتیوب:
https://www.youtube.com/@codehaksfa

ارتباط با مدیر :
Admin: @codehak
Email: ghods.hakim@hotmail.com
call: 09380146555
Download Telegram
موتور ElasticSearch به شما امکان میدهد حجم بالایی از اطلاعات را در سریعترین زمان ممکن ذخیره ،جستجو و پردازش کنید.
آشنایی با Elasticsearch

با استفاده از ElasticSearch می توانید اطلاعات با حجم بالا را با سرعت زیاد جستجو کنید.

این ابزار دارای یک دیتابیس اسنادی است که اطلاعات را طبقه بندی می کند و با الگوریتم های پیشرفته در سریعترین زمان ممکن جستجو می کند. لازم نیست عبارت ها دقیق باشند بلکه این ابزار می تواند جستجوهایی مانند گوگل را انجام دهد.

می توانید دیتابیس های جاری را به آن وصل کنید. در واقع معمولا از ES به عنوان دیتابیس کمکی جهت جستجو استفاده می شود. اگرچه قابلیت استفاده مستقیم هم دارد. همه چیز در ElasticSearch درون یک وب سرویس انجام می شود.

اگر اطلاعات زیادی دارید که نیاز به جستجو مداوم دارند ES می تواند راه گشا باشد. یکی از بهترین قسمتهایی که ES خودش را نشان می دهد در تجزیه و تحلیل اطلاعات لوگ است. لوگها معمولا اطلاعات وسیعی دارند و برای استخراج آمار در آنها نیاز به کوئری های سنگین داریم که ES به خوبی از عهده ی آن بر می آید.

این ابزار با Java پیاده شده و برای اجرای آن یا باید Docker داشته باشید یا از JVM استفاده کنید. از ES معمولا در کنار ابزاری مانند Kibana و Logstash استفاده می شود. این ابزار سورس باز است و رایگان عرضه می شود اما برای پشتبانی های بعدی هزینه دریافت می کند.
پیش نمایش دوم ASP Core 2.1 منتشر شد.
نسخه ی ASP Core 2.1 - Preview 2 منتشر شد.

مهمترین تغییر در Preview 2 نسبت Preview 1 جایگزین شدن Libuv با WebSockets است.

مایکروسافت مدتها تلاش می کرد وابستگی فریم ورک ASP Core به Libuv را از بین ببرد. اما با توجه به پرفورمنس بالای Libuv اینکار ممکن نبود.

این کار با سه هدف انجام شد :

1- هرجا WebSockets کار می کند Kestrel هم کار میکند و دیگر نیاز به بیلد کردن مجدد پروژه برای Libuv نیست.
2- امکان بیلد کردن خودکار پروژه ی Kestrel با Libuv وجود نداشت.
3- توسعه ی WebSockets و تبدیل آن به بخشی از محیط دات نت کور.

البته این اختیار به برنامه نویسان داده شده است که بجای WebSockets از Libuv استفاده کنند و برای اینکار کافی است پکیج مربوط به آن را نصب کنند.

نسخه ی بعدی RC1 است و تا یک ماه دیگر منتشر خواهد شد. نسخه ی نهایی 2.1 از ابتدای تابستان عرضه می شود و دارای پشتیبانی سه ساله خواهد بود.
Forwarded from کدهک
کتابخانه libuv پلتفرمی برای اجرای برنامه ها به صورت Async است و Kestrel از آن به عنوان موتور پایه استفاده میکند.
موتور بازی سازی Unity در نسخه ی بعدی با CoreCLR پیاده می شود. تست های اولیه خبر از بهبود 2 تا 10 برابری سرعت اجرای Unity در CoreCLR می دهد.
در تست سرعت هنوز Libuv آمار بهتری نشان میدهد اما تیم ASPCore با توجه به یکپارچه سازی محیط پروژه تصمیم به مهاجرت از آن گرفت.
نیک کریور مدیر سیستم های Stackoverflow در وبلاگش آماری از وضعیت یک روز عادی در سرورهای این وبسایت مربوط به سال 2016 ارائه کرده است. این سایت با ASPNET پیاده شده و از Redis استفاده میکند.
در معماری میکرو سرویس هر بخش از سایت به صورت یک سرویس و دیتابیس مستقل پیاده میشود. این سرویس با ارسال پیام داده های خودش را با سایر سرویس ها به اشتراک می گذارد.
آشنایی با معماری میکرو سرویس

وقتی سایت به اندازه ی کافی بزرگ میشود دیگر نمی توان آن را بایک دیتابیس و سرور مدیریت کرد. اول اینکه تهیه ی سرورهای قویتر هزینه را به صورت توانی افزایش میدهد. دوم وقتی برای سرور مشکلی پیش آید همه ی سایت از کار می افتد. سوم اینکه در توانایی یک سرور همیشه محدودیت وجود دارد و از یک جایی به بعد قابل بهبود نیست.

در معماری میکرو سرویس هر بخش از سایت به صورت یک سایت و دیتابیس مستقل پیاده میشود. این سایت معمولا با استفاده از وب سرویس و پیام با سایر سایتها در ارتباط است و داده های خودش را با آنها به اشتراک می گذارد.

آپدیت کردن میکرو سرویس ها ساده تر است. هر میکرو سرویس سرور خودش را دارد و می تواند با زبان برنامه نویسی و دیتابیس خودش کار کند. از آنجا که همه ی زبان های برنامه نویسی قابلیت ارسال پیام متنی دارند ترکیب کردن بهترین تکنولوژی ها برای رسیدن به حداکثر بازدهی امکان پذیر است.

مثلا یک سرور می توانید از Nodejs و دیتابیس MongoDb برای ذخیره سازی لیست کالا استفاده کند و سرور دیگر با ASP Core و SQL Server اطلاعات کاربران را با استفاده از Identity مدیریت می کند.

با این روش یک تیم می تواند به صورت مجزا روی هر بخش کار کند و نگرانی از بابت مخطل کردن دیگر سرورها نداشته باشد. در هر زمان می توان جای یک تکنولوژی را با تکنولوژی دیگر عوض کرد بدون اینکه بقیه ی سیستم دچار مشکل شود. اگر سرویسی به دلیل وجود باگ یا حملات هکری از کار بیوفتد بقیه ی سیستم کار خودش را ادامه می دهد.
بر مبنای قانون جف بزوس (مدیر آمازون ) نباید تیم برنامه نویسی بزرگتر از آن باشد که نتوان همه ی گروه را با دو پیتزا سیر کرد!
روزلین کامپایلر سورس باز #C و VB است که به صورت پکیج به پروژه اضافه می شود و می توان از آن برای تحلیل و تولید کد استفاده کرد.
آشنایی با کاربردهای Roslyn

برای مدتها کامپایبر یک جعبه ی سیاه بود که کدهای شما را می گرفت و فایل exe تولید می کرد. اما مایکروسافت این رویه را با Roslyn عوض کرد. کامپایبر جدید سی شارپ سورس باز است و می توانید از آن به صورت پکیج کنار پروژه ی اصلی استفاده کنید.

سورس باز بودن این امکان را میدهد که ببینید در پشت زمینه ی ترجمه ی کدهای #C چه می گذرد.

با پکیج روزلین می توانید سورس کدها را آنالیز کنید. از VS 2015 چراغ کوچکی که به شما نکاتی درباره ی کد نویسی گوش زد می کند با روزلین نوشته شده است. بسیاری از پلاگین های ویژوال استودیو با استفاده از Roslyn کدها را تحلیل می کنند که خودش کمک بزرگی به برنامه نویسان است.

با روزلین می توانید قوانین خاصی برای شرکت خود طراحی کنید و آن را روی کدهای همه ی برنامه نویسها اعمال کنید. مثلا شرط کنید که نام متغیرهای نباید دارای زیر خط باشد و باید با حروف کوچک شروع شود. یا هیچ متغیری با مقدار null تعریف نشود. این قوانین به صورت زنده هنگام کد نویسی روی پروژه اعمال میشود.

وقتی می خواهید با T4 کد Generate کنید با Roslyn می توانید کدهای پروژه را بخوانید و خروجی توابع و اتریبیوت های یک متد را پیدا کنید. ببینید یک کلاس از چه کلاسهایی ارث بری کرده و چند بار به آن ارجا داده شده است.
Forwarded from کدهک
در ASP Core یک سیستم تزریق وابستگی کم حجم و ساده پیاده شده است که نیاز به استفاده از سایر IoC ها از قبیل StructureMap و Ninject یا AutoFac را از بین میبرد. به طور کلی می توان به سه روش کلاسها (سرویسها) را در این فریم ورک تزریق کرد.

1- حالت Transient
در این روش سرویس در هربار که فراخوانی شود ایجاد میشود.

2- حالت Scoped
در این روش سرویس به ازای هر Request تنها یکبار ایجاد میشود.

3- حالت Singleton
در این روش سرویس تنها در اولین فراخوانی ایجاد میشود و در دفعات بعد از همان سرویس استفاده میشود.
کنترلر ها در ASP Core به صورت Scoped تزریق می شوند تا اطلاعات یک HttpContext برای هر Request بازخوانی شود.
در ASPCore بجای HTML Helper از Tag Helper استفاده می شود. تگ هلپر درون تگ های HTML کد نویسی می شود و کد را خواناتر می کند.
با نرم افزار فیدلر می توانید ترافیک HTTP مونتیور و دستکاری کنید. از این ابزار برای تست سایت و وب سرویس نیز استفاده میشود.