آشنایی با معماری میکرو سرویس
وقتی سایت به اندازه ی کافی بزرگ میشود دیگر نمی توان آن را بایک دیتابیس و سرور مدیریت کرد. اول اینکه تهیه ی سرورهای قویتر هزینه را به صورت توانی افزایش میدهد. دوم وقتی برای سرور مشکلی پیش آید همه ی سایت از کار می افتد. سوم اینکه در توانایی یک سرور همیشه محدودیت وجود دارد و از یک جایی به بعد قابل بهبود نیست.
در معماری میکرو سرویس هر بخش از سایت به صورت یک سایت و دیتابیس مستقل پیاده میشود. این سایت معمولا با استفاده از وب سرویس و پیام با سایر سایتها در ارتباط است و داده های خودش را با آنها به اشتراک می گذارد.
آپدیت کردن میکرو سرویس ها ساده تر است. هر میکرو سرویس سرور خودش را دارد و می تواند با زبان برنامه نویسی و دیتابیس خودش کار کند. از آنجا که همه ی زبان های برنامه نویسی قابلیت ارسال پیام متنی دارند ترکیب کردن بهترین تکنولوژی ها برای رسیدن به حداکثر بازدهی امکان پذیر است.
مثلا یک سرور می توانید از Nodejs و دیتابیس MongoDb برای ذخیره سازی لیست کالا استفاده کند و سرور دیگر با ASP Core و SQL Server اطلاعات کاربران را با استفاده از Identity مدیریت می کند.
با این روش یک تیم می تواند به صورت مجزا روی هر بخش کار کند و نگرانی از بابت مخطل کردن دیگر سرورها نداشته باشد. در هر زمان می توان جای یک تکنولوژی را با تکنولوژی دیگر عوض کرد بدون اینکه بقیه ی سیستم دچار مشکل شود. اگر سرویسی به دلیل وجود باگ یا حملات هکری از کار بیوفتد بقیه ی سیستم کار خودش را ادامه می دهد.
وقتی سایت به اندازه ی کافی بزرگ میشود دیگر نمی توان آن را بایک دیتابیس و سرور مدیریت کرد. اول اینکه تهیه ی سرورهای قویتر هزینه را به صورت توانی افزایش میدهد. دوم وقتی برای سرور مشکلی پیش آید همه ی سایت از کار می افتد. سوم اینکه در توانایی یک سرور همیشه محدودیت وجود دارد و از یک جایی به بعد قابل بهبود نیست.
در معماری میکرو سرویس هر بخش از سایت به صورت یک سایت و دیتابیس مستقل پیاده میشود. این سایت معمولا با استفاده از وب سرویس و پیام با سایر سایتها در ارتباط است و داده های خودش را با آنها به اشتراک می گذارد.
آپدیت کردن میکرو سرویس ها ساده تر است. هر میکرو سرویس سرور خودش را دارد و می تواند با زبان برنامه نویسی و دیتابیس خودش کار کند. از آنجا که همه ی زبان های برنامه نویسی قابلیت ارسال پیام متنی دارند ترکیب کردن بهترین تکنولوژی ها برای رسیدن به حداکثر بازدهی امکان پذیر است.
مثلا یک سرور می توانید از Nodejs و دیتابیس MongoDb برای ذخیره سازی لیست کالا استفاده کند و سرور دیگر با ASP Core و SQL Server اطلاعات کاربران را با استفاده از Identity مدیریت می کند.
با این روش یک تیم می تواند به صورت مجزا روی هر بخش کار کند و نگرانی از بابت مخطل کردن دیگر سرورها نداشته باشد. در هر زمان می توان جای یک تکنولوژی را با تکنولوژی دیگر عوض کرد بدون اینکه بقیه ی سیستم دچار مشکل شود. اگر سرویسی به دلیل وجود باگ یا حملات هکری از کار بیوفتد بقیه ی سیستم کار خودش را ادامه می دهد.
آشنایی با کاربردهای Roslyn
برای مدتها کامپایبر یک جعبه ی سیاه بود که کدهای شما را می گرفت و فایل exe تولید می کرد. اما مایکروسافت این رویه را با Roslyn عوض کرد. کامپایبر جدید سی شارپ سورس باز است و می توانید از آن به صورت پکیج کنار پروژه ی اصلی استفاده کنید.
سورس باز بودن این امکان را میدهد که ببینید در پشت زمینه ی ترجمه ی کدهای #C چه می گذرد.
با پکیج روزلین می توانید سورس کدها را آنالیز کنید. از VS 2015 چراغ کوچکی که به شما نکاتی درباره ی کد نویسی گوش زد می کند با روزلین نوشته شده است. بسیاری از پلاگین های ویژوال استودیو با استفاده از Roslyn کدها را تحلیل می کنند که خودش کمک بزرگی به برنامه نویسان است.
با روزلین می توانید قوانین خاصی برای شرکت خود طراحی کنید و آن را روی کدهای همه ی برنامه نویسها اعمال کنید. مثلا شرط کنید که نام متغیرهای نباید دارای زیر خط باشد و باید با حروف کوچک شروع شود. یا هیچ متغیری با مقدار null تعریف نشود. این قوانین به صورت زنده هنگام کد نویسی روی پروژه اعمال میشود.
وقتی می خواهید با T4 کد Generate کنید با 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
در این روش سرویس تنها در اولین فراخوانی ایجاد میشود و در دفعات بعد از همان سرویس استفاده میشود.
1- حالت Transient
در این روش سرویس در هربار که فراخوانی شود ایجاد میشود.
2- حالت Scoped
در این روش سرویس به ازای هر Request تنها یکبار ایجاد میشود.
3- حالت Singleton
در این روش سرویس تنها در اولین فراخوانی ایجاد میشود و در دفعات بعد از همان سرویس استفاده میشود.
چرا فیدلر را نصب کنم ؟
در سال 2003 اریک لارنس که مشغول کار روی Internet Explorer بود برای تست پروژه نیاز به ابزاری داشت تا بتواند سریع و راحت درخواستهای HTTP را در مرورگر بررسی کند. در نهایت تصمیم گرفت یک برنامه ی ساده با #C درست کند که بعدا تبدیل به Fiddler شد.
فیلدر در حال حاضر توسط شرکت Telerik خریداری شده و خود اریک لارنس هم در تیم امنیتی Chrome مشغول است.
نرم افزار Fiddler کاملا رایگان است و بعد از نصب به صورت یک Proxy عمل می کند و می تواند تمام ترافیک عبور کننده از مرورگر را لوگ کند.می توانید در آن کد نویسی کنید. در این روش مانند Middle man عمل میکند و درخواستها را قبل از ارسال به سرور و پاسخها را قبل از رسیدن به کلاینت تغییر می دهد.
با فیدلر می توانید یک Request با داده های مورد نیاز شبیه سازی کنید و به سایت خودتون یا هر سایت دیگری که در اینترنت هست ارسال کنید. با این تکنیک می توانید رفتار سایت به خصوص وب سرویس را تست کنید.
در مقایسه با ابزاری مانند Postman می توان گفت فیلدر امکانات بسیار بیشتری دارد اما محیط کاری آن پیچده تر است. می توانید برای آن افزونه نویسی کنید یا کتابخانه ی آن را درون پروژه های سی شارپ مستقیما استفاده کنید.
در سال 2003 اریک لارنس که مشغول کار روی Internet Explorer بود برای تست پروژه نیاز به ابزاری داشت تا بتواند سریع و راحت درخواستهای HTTP را در مرورگر بررسی کند. در نهایت تصمیم گرفت یک برنامه ی ساده با #C درست کند که بعدا تبدیل به Fiddler شد.
فیلدر در حال حاضر توسط شرکت Telerik خریداری شده و خود اریک لارنس هم در تیم امنیتی Chrome مشغول است.
نرم افزار Fiddler کاملا رایگان است و بعد از نصب به صورت یک Proxy عمل می کند و می تواند تمام ترافیک عبور کننده از مرورگر را لوگ کند.می توانید در آن کد نویسی کنید. در این روش مانند Middle man عمل میکند و درخواستها را قبل از ارسال به سرور و پاسخها را قبل از رسیدن به کلاینت تغییر می دهد.
با فیدلر می توانید یک Request با داده های مورد نیاز شبیه سازی کنید و به سایت خودتون یا هر سایت دیگری که در اینترنت هست ارسال کنید. با این تکنیک می توانید رفتار سایت به خصوص وب سرویس را تست کنید.
در مقایسه با ابزاری مانند Postman می توان گفت فیلدر امکانات بسیار بیشتری دارد اما محیط کاری آن پیچده تر است. می توانید برای آن افزونه نویسی کنید یا کتابخانه ی آن را درون پروژه های سی شارپ مستقیما استفاده کنید.
الگوریتم Key Stretching
یکی از روشهای معمول هک Password امتحان کردن عبارتهای مختلف است. به این تکنیک Brute-Force هم گفته می شود.
معمولا کاربرها رمزهای عبور ساده ای انتخاب می کنند و هکر می تواند با استفاده از نرم افزار حجم بالایی از عبارتها را در زمان کوتاه تست کند.
الگوریتم Key Stretching با استفاده از کلمه ی عبور و Salt که یک عبارت رندوم است یک هش درست میکند. سپس این کار را دوباره تکرار میکند تا جایی که هش تولید شده به حداقل استاندارد برسد .
برگرداندن هر مرحله هش و پیدا کردن رمز عبور در این روش حداقل به چند ثانیه وقت نیاز دارد که عمل Brute-force را بسیار کند می کند.
یکی از روشهای معمول هک Password امتحان کردن عبارتهای مختلف است. به این تکنیک Brute-Force هم گفته می شود.
معمولا کاربرها رمزهای عبور ساده ای انتخاب می کنند و هکر می تواند با استفاده از نرم افزار حجم بالایی از عبارتها را در زمان کوتاه تست کند.
الگوریتم Key Stretching با استفاده از کلمه ی عبور و Salt که یک عبارت رندوم است یک هش درست میکند. سپس این کار را دوباره تکرار میکند تا جایی که هش تولید شده به حداقل استاندارد برسد .
برگرداندن هر مرحله هش و پیدا کردن رمز عبور در این روش حداقل به چند ثانیه وقت نیاز دارد که عمل Brute-force را بسیار کند می کند.
اجرای کدهای سی شارپ به صورت آنلاین
با استفاده از ابزار جدید مایکروسافت می توانید کدهای سی شارپ را به صورت یک برنامه ی کنسول در مرورگر اجرا کنید.
برای دسترسی به این سرویس می توانید به آدرس زیر مراجعه کنید :
https://try.dot.net
همچنین راهنمای استفاده در https://try.dot.net/docs موجود است.
با استفاده از ابزار جدید مایکروسافت می توانید کدهای سی شارپ را به صورت یک برنامه ی کنسول در مرورگر اجرا کنید.
برای دسترسی به این سرویس می توانید به آدرس زیر مراجعه کنید :
https://try.dot.net
همچنین راهنمای استفاده در https://try.dot.net/docs موجود است.