
آموزش معماری نرم افزارهای پیشرفته در دات نت
آموزش معماری نرم افزارهای پیشرفته در دات نت یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته ی آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته ی آموزشی معماری نرم افزارها در دات نت برای دنیای واقعی است که با نام اصلی Architecting Applications for the Real World in .NET از شرکت Pluralsight منتشر شده است.
دات نت چیست؟
داتنت (.NET) یک فریمورک توسعه نرمافزار است که توسط شرکت مایکروسافت ایجاد شده است. این فریمورک ابزارها، کتابخانهها و زبانهای برنامهنویسی مختلفی را در اختیار برنامهنویسان قرار میدهد. داتنت از معماری مبتنی بر کامپوننت (Component-Based) پیروی میکند که امکان ایجاد و استفاده از کامپوننتهای قابل استفاده مجدد را فراهم میکند. این فریمورک از چندین زبان برنامهنویسی مانند سیشارپ (C#)، ویژوال بیسیک (Visual Basic) پشتیبانی میکند.

با استفاده از داتنت، برنامهنویسان قادر خواهند بود تا برنامههای متنوعی را برای پلتفرمهای مختلف مانند ویندوز، وب و موبایل توسعه دهند. داتنت ابزارهایی مانند ویژوال استودیو، کتابخانههای پایه و مدیریت منابع را در اختیار برنامهنویسان میگذارد. با استفاده از داتنت، توسعه برنامههای پویا، قابل اطمینان و امن تراکنشی برای صنعت نرمافزار ممکن میشود.
معماری نرم افزار چیست؟
معماری نرمافزار از کلیدیترین بخشهای تولید نرمافزار مخصوصا نوع تجاری آن است که البته در سالهای اخیر با ایجاد مدلهای کلاسیک تولید نرمافزار به نرمافزارهای عظیم تر محدود شده است.

معماری نرمافزار در واقع انتخاب یک ساختار کلی برای پیادهسازی یک پروژه نرمافزاری بر مبنای مجموعهای از نیازهای کاربری و تجاری یک سیستم نرمافزاری است تا هم بتوان کاربردهای مورد نظر را پیادهسازی کرد و هم بتوان کیفیت نرمافزار، تولید آن و نگهداری آن را نیز بهینه کرد و سرعت بخشید. به عبارتی دیگر: معماری نرمافزار یک برنامه یا سیستم محاسباتی، ساختار یا ساختارهای آن سیستم محاسباتی است که خصوصیات قابل رویت از بیرون، عناصر و ارتباطات بین آنها را نشان میدهد.
انتخاب معماری بر اساس پیچیدگی و نیازهای واقعی نرمافزار
معماری مناسب را نمیتوان تنها با انتخاب یک الگوی مشهور یا تقسیم کد به چند پروژه تعیین کرد؛ پیچیدگی مسئله و تغییر نیازها در طول زمان نیز بر تصمیمها اثر میگذارند. در آموزش Architecting Applications for the Real World in .NET، موضوعاتی مانند معماری کاربردی، مقایسه دو راهکار و اثر زمان بر معماری بررسی میشوند. این مباحث به توسعهدهندگان باتجربه کمک میکنند پیش از انتخاب ساختار نهایی، پیامدهای هر گزینه را ارزیابی کنند. هدف این است که تصمیم معماری با مسئلهای که نرمافزار حل میکند هماهنگ باشد، نه اینکه پیچیدگی غیرضروری به سیستم اضافه شود.
در این مسیر، شناخت سطحبندی معماری و میزان دانهبندی اجزا اهمیت ویژهای دارد. موضوع Fine-Grained و Coarse-Grained به بررسی تفاوت میان اجزای ریزتر و درشتتر مربوط میشود؛ انتخاب میان آنها میتواند بر نحوه ارتباط بخشها و مدیریت تغییرات اثر بگذارد. آموزش همچنین به اصول معماری میپردازد تا رابطه میان ساختار فنی و نیازهای نرمافزار روشنتر شود. برای افرادی که در طراحی سامانههای .NET مسئولیت تصمیمگیری دارند، این مباحث چارچوبی برای مقایسه گزینهها، سنجش هزینه پیچیدگی و انتخاب ساختاری متناسب با اندازه و نیاز پروژه فراهم میکنند.
ارتباط Business Logic، Service و Data Access در .NET
در یک برنامه سازمانی، منطق اصلی کسبوکار نباید بدون بررسی در میان کدهای رابط کاربری یا عملیات پایگاه داده پراکنده شود. این آموزش لایه Business Logic را با رویکردهایی مانند Table Module و Domain Driven Design بررسی میکند و به رابطه آن با Data Access نیز میپردازد. آشنایی با این گزینهها کمک میکند هنگام مدلسازی قواعد دامنه، ساختار مناسبتری انتخاب کنید و مسئولیتها را با دقت بیشتری تفکیک کنید. همچنین مباحث CRUD و Object-Relational Mismatch به چالشهایی میپردازند که هنگام تبدیل مدلهای برنامه به عملیات و ساختارهای دادهای رابطهای به وجود میآیند.
بخشهای مربوط به Service Layer و Presentation Layer نیز به بررسی جایگاه سرویسها و لایه نمایش در معماری میپردازند. یکی از موضوعات مشخص آموزش، تفاوت Web Service و Shared Library است؛ دو گزینهای که از نظر نحوه استفاده و مرز ارتباطی با یکدیگر تفاوت دارند و باید با توجه به نیاز سیستم انتخاب شوند. بررسی اثر Business Logic بر Data Access نیز به درک وابستگی میان قواعد دامنه و نحوه ذخیرهسازی اطلاعات کمک میکند. این آموزش برای توسعهدهندگان پیشرفتهای مناسب است که میخواهند درباره مرز لایهها، مسئولیت اجزا و پیامدهای انتخابهای معماری در برنامههای .NET تصمیمهای سنجیدهتری بگیرند.
سرفصل مطالب آموزش معماری نرم افزارهای پیشرفته در دات نت
فصل اول: معرفی دوره ی آموزشی- مقدمه
- معماری کاربردی
- لیست موارد قابل بررسی
- دو راهکار: کدام بهتر است؟
- تشبیه های مربوط به معماری
- در نظر گرفتن پیچیدگی
- اصل سادگی
- اثر زمان بر روی معماری
- جمع بندی
- مقدمه
- تفاوت Tier و Layer
- Business Logic Layer چیست؟
- روش Transaction Script
- روش Table Module
- روش Active Record
- روش Domain Driven Design
- جمع بندی
- مقدمه
- تشبیه های لایه ی Service
- دانه بندی ریز (Fine) و درشت (Grain)
- چه زمان و کجا از Service Layer استفاده کنیم؟
- تفاوت Web Service و Shared Library
- معرفی DTO
- جمع بندی
- مقدمه
- اصول معماری
- انتخاب لایه ی Presentation مناسب
- جمع بندی
- مقدمه
- تاثیر لایه ی Business Logic بر روی لایه ی Data Access
- وظایف لایه ی DAL
- مباحث CRUD و Object-Relational Mismatch
- مبحث Object Relational Mapping
- الگوی طراحی Repository
- جمع بندی
- مقدمه
- سطوح معماری: سطح 1، سطح 2، سطح 3
- تفاوت سطوح 1 و 3
- جمع بندی







