وب سرویس

درخواست اطلاعات یک کاربر از وب سرور 

در حالتی که کاربر یک صفحه وب را از طریق مرورگر درخواست می کند، درخواست کاربر از پروتکل طریقHTTP که یک پروتکل انتقال است در قالب یک URL به وب سرور(مانند IIS) ارسال می گردد. سرور از طریق پروتکل HTTPدر قالب HTML پاسخ درخواست کاربر را ارسال می کند، که توسط مرورگر تفسیر شده و نمایش داده می شود.

درخواست اطلاعات یک اپلیکیشن از اپلیکیشن دیگر

حالا اگر درخواست اپلیکیشن در قالب یک URL توسط پروتکل HTTP به سرور ارسال گردد(HTTP+=SOAP)، سرور پاسخ را در قالب XML و یا JSON بر می گرداند. 

طراحی مبتنی بر مولفه(component)؟

در این مدل طراحی کدهای پر استفاده در قالب compnent طراحی شده(متنند تقویم شمسی و یا محاسبه مالیات) و در Repository قرار داده می شود تا در پروژه های دیگر  از آن استفاده کرد.

معماری سرویس گرا

معماری (SOA(Service-Oriented architecture الگویی برای طراحی ایجاد می کند که شامل تعدادی اصول مشخص است.

مدل معماری SOA می گوید هر مولفه از سیستم باید یک سرویس باشد و سیستم از چندین سرویس با اتصال سست(Lose Couple) تشکیل شده باشد. سرویس ها به هم اتصال دارند ولی به گونه ی نیست که مجبور بشیم از همه سرویس ها استفاده کنیم.همه این سرویس ها یک اینترفیس دارند که از طریق آن لست که ارتباط برقرار می کند. ارتباط از طریق ارسال پیام است.

برای تحقق SOA از وب سرویس استفاده می شود. وب سرویس مانند IIS توسط وب سرور میزبانی می شود. یک وب سرویس ( WEB SERVICE ) برنامه کاربردی تحت وب است.

معماری مبتنی بر سرویس:

انواع وب سرویس

1-  WCF Service: SOAP

2- WCF Data Service: REST

سرویس ها از طریق URL و درخواست های معمولی HTTP در دسترس قرار می گیرند.

برای استفاده از وب سرویس ها دو راه پیش رو دارید

1- استفاده از WCF و         2- استفاده از Web API

 

(WCF(Windows Communication Foundation 

ابزار توسعه‌ی نرم‌افزار برای توسعه و استقرار سرویس‌ها بر روی ویندوز است. 

چالش خیلی بزرگ در اپلیکیشن های تحت ویندوز سازمانی، امنیت می باشد.

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

 

 

یک فایل SVC شامل قطعه کوچکی از کد است که یک سرویس پایه ارتباطات ویندوز (WCF) را تعریف می کند. در هنگام مراجعه ، فایل سرویس را در پاسخ به داده های دریافتی ، خاص می کند. این سرویس با استفاده از وب سرویس مایکروسافت (IIS) اجرا می شود.

استثنایی ها Outliers

داستان موفقیت نخبگان

اثری از ماکوم گلدول

به نام خداوند مدیر و مدبر

هنگامی که بتوانیم منشاً رقابت های ناعادلانه را پیدا کنیم، می توان فرصت‌های بیشتری برای موفقیت ایجاد کرد.

فرآیندهای که برای شناسایی و شکوفایی استعدادهای افراد به کار می‌بریم، معمولاَ ناموفق و کم بازده هستند و تنها در موارد نادری نتایج آنها رضایت‌بخش است. دلیل این موضوع ایجاد محدودیت های ناعادلانه و غیر منطقی و دسته بندی اشتباه افراد است.

هواپیمایی کره قبل از سال 2000 میلادی سابقه‌ای افتضاح در ایمنی هوایی داشته است. به طوری که نرخ سانحه‌های هوایی آنها در آن زمان 17 برابر میانگین استانداردهای جهانی بود.

در فرهنگ کره‌ای، احترام فردی که مقام کمتری دارد به نظرات کسی که از لحاظ درجه و مقام بالاتر است، یک اصل و قانون نانوشته محسوب می شود(حتی اگر مافوق مرتکب خطا شود).

بنابراین اگر کاپیتان هواپیما مرتکب خطا شود، خدمه‌ی پرواز ممکن است راحت نباشد یا حتی جرات نکند تا این مشکلات را با کاپیتان در میان بگذارند؛ به دلیل این فرهنگ آنها این اجازه را به آنها نمی دهد.

سانحه پرواز 801 هواپیمایی کره در گوآم نمونه تاسف‌باری از چنبن نقص ارتباطی بین خدمه و کاپیتان است. کمک خلبان سعی داشت به کاپیتان بفهماند:«میدان دید بسیار ضعیف است و نمی توانیم با دید خودمان جلو را ببینیم.» اما برای اینکه گستاخی به کاپیتان نکرده باشد و دستود مستقیم نداده باشد جمله‌ی خود را این گونه بیان می کند: «آیا فکر نمی کنید که مقدار باران در این منطقه کمی زیاد است؟» متاسفانه کاپیتان نظر کمک خلبان درباره‌ی آب و هوا را جدی نگرفت و باعث شد که هواپیما قبل از به زمین نشستند به یک تپه برخورد کند!

این سانحه باعث شد که انتقاداتی به فرهنگ«سلسه مراتبی» در کره صورت گیرد و ایراداتی به این فرهنگ وارد شود.

برای بازسازی در این زمینه، هواپیمایی کره یک شرکت آمریکایی را استخدام کرد تا مهارت‌های ارتباطی کارکنانش را ارتقاء بخشد. هم اکنون این شرکت در زمینه‌ی ایمنی هوایی با شرکت‌های دیگر در سطح بین المللی رقابت می‌کند.

ترجمه:بوکاپو

Azure Pipelines در 4 سوال ؟

(زمان مطالعه 8 دقیقه)

1- Azure Piplines چیست؟

Azure Piplines یک سرویس ابری است، که شما می توانید به طور اتوماتیک برای ساخت و تست کدهای پروژه هایتان استفاده کنید و آن را در دسترس سایر کاربران قرار دهید. تقریباً با انواع زبان های برنامه نویسی و انواع پروژه ها کار می کند. Azure Piplines برای تست همیشگی و پایدار کدهای شما از ترکیب یکپارچگی مداوم (CI) و تحویل مداوم (CD) استفاده می کند.

2 - Azure Pipelines چه زبان های برنامه نویسی را پشتیبانی می کند؟ زبان های برنامه نویسی Java, JavaScript, Node.js, Python, .NET, C++, Go PHP, XCode پشتیبانی می کند.

3- برای استفاده از Azure Pipelines چه نیاز دارم؟ سیستم کنترل ورزن ( version control) نیاز دارید مانند GitHub

4- هزینه استفاده از این سرویس چقدر است؟ اگر از پروژه های عمومی(Public) استفاده می کنید ، Azure Piplines رایگان است. برای کسب اطلاعات بیشتر ، ببینید یک پروژه عمومی چیست؟ اگر از پروژه های خصوصی استفاده می کنید ، می توانید هر ماه 1800 دقیقه (30 ساعت) Azure Piplines را به صورت رایگان اجرا کنید.

توضیحات اضافه:

(Continuous Integration)CI: به مراحل ادغام یکپارچه کد ها، بیلد کردن پروژه ها و اجرای unit test ها به صورت اتوماتیک در Azure Pipeline. با اجرای CI، توسعه دهندگان در فواصل کوتاه و با هر بار commit در source control قادر خواهند بود که تغییرات خود را با سایر تغییرات ادغام کنند و یک ارزیابی سریع از آن داشته باشند. با کمک CI می توان شاخه اصلی کد(master) را تمیز و پایدار نگه داشت. در چنین شرایطی توسعه دهندگان ترقیب می شوند تا تغییرات خود را به صورت قطعه های کوچکتر و با تکرار بیشتری در Source Control اعمال کنند. تیم ها از بیلد های اتوماتیک استفاده می کنند تا اطمینان پیدا کنند که باگ ها خیلی زود در چرخه توسعه شناسایی می شوند که منجر می شود برای رفع آن ها هزینه ی کمتری بپردازیم. اجرای تست ها به صورت اتوماتیک در هر بار تغییر در source control منجر به کیفیت پایدار در آن خواهد شد.

تیم ها به وسیله Version Control های مانند GIT، می توانند برای هر ویژگی (feature)، یک شاخه ی کوتاه مدت(branch) از کد در سیستم خودشان بسازند و بعد از تایید یک pull request، تغییراتشان با شاخه اصلی کد ها ادغام شود و سپس آن شاخه را حذف کنند. این کار می تواند بارها تکرار شود. تیم ها می توانند برای branch ها سیاست گزاری کنند تا همیشه مطمئن باشند که معیارهای کیفی لازم در آن رعایت شده است.

امروزه CI به عنوان یک به روش (Best Practice) در توسعه نرم افزار شناخته می شود، تا جاییکه جزئی جدا ناپذیر از روش های چابک تولید نرم افزار شده است. همچنین یکی از ملزومات دواپس (DevOps) و Continuous Delivery نیز می باشد.

ساختن یک جدول از طریق کد نویسی در asp.net core

مراحل ساخت یک جدول در دیتابیس sql از طریق asp.net core

1- ساخت یک کلاس و تعریف فیلدهای جدول: به عنوان مثال کلاس Contact

 public class Contact
    {
        [Key]
        public int ContactId { get; set; }

        [Display(Name = "نام و نام خانوادگی")]
        [Required(ErrorMessage = "لطفا {0} را وارد کنید")]
        [MaxLength(300, ErrorMessage = "{0} نمی تواند بیشتر از {1} کاراکتر باشد.")]
        public string FirstName { get; set; }

        [Display(Name = "موبایل")]
        [Required(ErrorMessage = "لطفا {0} را وارد کنید")]
        [MaxLength(50, ErrorMessage = "{0} نمی تواند بیشتر از {1} کاراکتر باشد.")]
        public string Mobile { get; set; }

        [Display(Name = "ایمیل")]
        [MaxLength(200, ErrorMessage = "{0} نمی تواند بیشتر از {1} کاراکتر باشد.")]
        [EmailAddress(ErrorMessage = "ایمیل وارد شده معتبر نیست")]       
        public string Email { get; set; }

        [Display(Name = "توضیحات پیام ")]
        [Required(ErrorMessage = "لطفا {0} را وارد کنید")]
        public string ContactDescription { get; set; }
    }

2- اضافه کردن کلاس جدول ساخته شده به کلاسی که از DbContext ارث بری کرده است. 

public class EskillContext: DbContext

{

 public DbSet Contacts { get; set; }

}

3- اجرا دستورات زیر در  Package Manager Console

PM> add-migration tbl_contacts

PM> update-database