کدهک
1.92K subscribers
1.3K photos
7 videos
1 file
679 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
پکیج Windows Compatibility

فریم ورک ASP Core 2.1 دارای بیش از 30 هزار API است اما هنوز بخشی از کتابخانه های قدیمی دات نت به آن اضافه نشده است. دلیل اصلی آن هم پشتیبانی از سایر سیستم عامل هاست. مثلا کتابخانه های مربوط به Registery فقط در ویندوز کاربرد دارد و لینوکس و مک چنین سیستمی ندارند.

پکیج Windows Compatibility پشتیبانی از حدود 20 هزار API قدیمی دات نت را به core اضافه میکند. با این کتابخانه منتقل کردن پروژه های قدیمی ASP MVC به ASP Core راحت تر میشود. مثلا بسیاری از سایتها برای ویرایش عکس از Drawing استفاده می کنند و حالا می توانند بدون تغییر کد این بخش مستقیما به ASP Core مهاجرت کنند.

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

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

نسخه ی Preview این پکیج در آدرس زیر قابل دسترسی است.

https://www.nuget.org/packages/Microsoft.Windows.Compatibility/2.0.0-preview2-26406-04
در ASP Core می توانید وابستگی ها را بجای سازنده کلاس درون اکشن(متد) تزریق کنید. برای اینکار کافی است از FromServices استفاده کنید.
کاربردهای Action Injection

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

سیستم تزریق وابستگی که در خود ASP Core طراحی شده به شما امکان میدهد از روش Action Injection نیز استفاده کنید.

از آنجا که کنترلر در هر Request جدید دوباره نمونه سازی می شود هر چه از میزان وابستگی های سازنده کم کنیم کارایی سیستم افزایش میبابد.

در بعضی موارد از یک وابستگی فقط برای یک یا دو اکشن درون کنترلر استفاده می کنیم. اینجاست که می توانیم با Action Injection مستفیما آن درون متد مورد نظر تزریق کنیم و از بار سازنده کم کنیم.
موسسه ی owasp.org به تازگی لیستی از بالاترین ریسک های امنیتی تا پایان سال 2017 ارائه کرده است. هنوز هم Injection تهدید اصلی وبسایتهای اینترنتی است.
نگاهی به owasp top 10

موسسه ی owasp هر 4 سال یکبار لیستی از مهمترین تهدیدات امنیتی اینترنت منتشر میکند. در مقایسه با 2013 هنوز هم Injection و Broken Authentication رتبه های اول و دوم خود را حفظ کرده اند. اما حملات XSS از رتبه ی سوم به هفتم نزول پیدا کرده است.

منظور از Injection دستکاری اطلاعات ارسالی به سرور است. هکر اطلاعات ارسالی را به نحوی تغییر میدهد که وقتی در سرور خوانده میشود رفتار آن را تغییر دهد. معمول ترین حمله دستکاری کوئری های SQL است که به راحتی روی سایتهایی که ORM ندارند کار میکند.

منظور از Broken Authentication سیستم تشخیص هویت غیر استاندارد است. بسیاری از برنامه نویسان خودشان دست به کار پیاده سازی این بخش میشوند و تصور می کنند تنها با قرار فرم ثبت نام سایت ایمن شده است اما هک کردن چنین سیستمهایی به راحتی صورت میگیرد. عدم وجود CAPTCHA و محدود نکردن دفعات خطای ورود دست هکر ها را برای Brute-force باز می گذارد.

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

تجربه ی هک شدن پیامرسان سروش نشان میدهد که وقتی ازرش اطلاعات یک سایت بالا میرود جزئی ترین مسائل می تواند منجر به تهدیدهای امنیتی مهم شود. یک اتفاق کوچک می تواند یک کسب و کار بدون پشتوانه را از هستی نابود کند.
سال گذشته در آمد مایکروسافت از سرویس ابری 56 درصد رشد داشت و برای اولین بار آمازون را پشت سر گذاشت. در همین مدت IBM هم خود را به جمع بالانشین ها رسانده و با آمازون رقابت تنگاتنگی دارد.
👍1
محبوبیت سرویس های ابری

وقتی از سرویس ابری استفاده میکنید بر مبنای میزان ترافیک هزینه پرداخت می کنید. هر مقدار که ترافیک سایت بالا میرود منابع بیشتری به سایت اختصاص داده میشود . هیچوقت سایت شما از دسترس خارج نمی شود. حتی لازم نیست پشت سیستم باشید و کاری انجام دهید. هر نوع تغییر در میزان دیسک ، رم یا هسته ی سرور با یک کلیک اتفاق می افتد.

فضاهای ابری از همه ی تکنولوژی ها پشتیبانی می کنند. فرقی نمیکند که لینوکس باشد یا ویندوز یا نوع دیتابیس چیست. فقط کافی است که سرویس مورد نظر را انتخاب کنید تا بتوانید شروع به کد نویسی کنید.

سرویس های ابری یکی از دلایل رشد سریع Docker و ابزاری مانند Kubernetes است و خودش یک بازار جدید را بوجود آورده است.

با سرویس ابری حفظ و نگه داری سایت ساده میشود و هزینه ی DevOps به مقدار چشمگیری کاهش پیدا میکند. برای توسعه ی سخت افزاری دیگر نیاز به متخصصین امنیت و شبکه ندارید.

ساتیا نادلا مدیر عامل مایکروسافت به خوبی ارزش سرویس های ابری را متوجه شد و در حال حاضر منابع زیادی را صرف سرویس ابری مایکروسافت یا همان Azure می کند. این بازار که برای مدتها در اختیار آمازون بود حالا یک سردمدار جدید دارد.
پروژه Hello world با حداقل تنظیمات

وقتی یک پروژه ی ASP Core ایجاد می کنید حجم زیادی از تنظیمات به صورت پیشفرض به پروژه اضافه میشود. برای اینکه ساده ترین و سبکترین حالت الگوی MVC را در ASP Core پیاده کنید باید کمی به عقب برگردید و بعضی از دستورات را دستکاری کنید.

روش انجام این مراحل در پست زیر شرح داده شده است.

https://codehaks.github.io/2017/08/31/Bare-Minimum-Hello-world.html
سرویس هوش مصنوعی مایکروسافت از طریق یک API قابلیتهایی نظیر تشخیص عکس ، تبدیل صدا به متن و جستجوی پیشرفته عرضه میکند.
سرویس هوش مصنوعی

هوش مصنوعی علاوه بر آنکه برنامه نویسی پیچیده ای دارد نیاز به حجم بسیار زیادی از اطلاعات دارد تا با تحلیل آن بتواند موارد جدید را تشخیص دهد. نگهداری و پردازش این حجم عظیم اطلاعات در سرورهای شخصی غیر ممکن است.

سرویس هوش مصنوعی مایکروسافت با ارائه ی یک API از طریق وب امکان استفاده از هوش مصنوعی را برای برنامه نویسان فراهم میکند.

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

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

سرویس دانش می تواند یک متن را دریافت کند و بر اساس آن یک سیستم پرسش و پاسخ ایجاد کند.

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

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

حتی خود مایکروسافت هم SDK مربوط به هوش مصنوعی خود به نام CNTK را فقط برای زبان پایتون عرضه کرده است.

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

به طور کلی رشد علوم داده و هوش مصنوعی دلیل اصلی محبوبت پایتون و R محسوب میشود.
امسال برای اولین بار پایتون زبان #C را در لیست محبوبترین تکنولوژی ها پشت سر گذاشت. سال قبل پایتون از PHP پیشی گرفته بود. (آمار Stackoverflow)
تنها 18% از اپهای آیفون بعد از گذشت یک هفته از زمان نصب همچنان مورد استفاده قرار میگیرند. در مورد اندروید این میزان 17% است. (Adjust)
بزرگترین شرکت اتوبوسرانی هندوستان redBus با سویچ کردن به ASP Core هزینه ی سرورهای ابری خود در آمازون را تا نصف کاهش داده است. میانگین تاخیر پاسخدهی به 250 میلی ثانیه رسیده و پیک CPU هم 25 درصد است.
تکنولوژی GraphQL یک زبان گزارش گیری است که توسط فیسبوک ابداع شده و می تواند داده های وب سرویس را قبل از دریافت فیلتر کند.
آشنایی با GraphQL

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

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

با GraphQL لازم نیست حجم زیادی از داده را از وب سرویس دریافت کنید و سپس فیلتر کنید. همچنین این ابزار قابلیت join کردن و تهیه ی گزارشهای تو در تو را هم دارد.

هرچند فیسبوک کتابخانه هایی برای استفاده در محیط #C و جاوا اسکریپت تهیه کرده اما GraphQL تنها یک ساختار و یک روش عرضه ی اطلاعات است و شرکتها می توانند آن را به شیوه ی مورد علاقه ی خود پیاده کنند.
در حمله D-DOS با ایجاد ترافیک بالا روی سرورهای یک سایت آن را از کار می اندازند. در این روش ، حمله از چندین محل مجزا صورت میگیرد و امکان تشخیص و بستن همهی آی پی های مهاجم به سرعت امکانپدیر نیست.