1.01k likes | 1.23k Views
پنچ شنبه 24 تیر ماه سال 1389. سمینار ایجاد و توسعه نرم افزارهای کاربردی تحت وب با استفاده از تکنولوژی های موجود در Microsoft .NET Framework 4. مهندس سعید عاطفی. فریمورک دات نت چیست ؟. فریمورک دات نت چیست ؟.
E N D
پنچ شنبه 24 تیر ماه سال 1389 سمینار ایجاد و توسعه نرم افزارهای کاربردی تحت وب با استفاده از تکنولوژی های موجود در Microsoft .NET Framework 4 مهندس سعید عاطفی
فریمورک دات نت چیست؟ مجموعه ای از کلاس ها ، انواع ، توابع و متدهای از پیش تعریف شده که دریک قالب واحد و در گروه بندی های مجزا در کنار یکدیگر قرار گرفته اند.این کلاسها و متـدها در هنگام نوشتن انواع برنامه ها به ما کـمـک می کنند و مورد نیاز ما می باشند.
فریمورک دات نت • Web Service • Web Forms HTML-based applications • Rich Windows GUI applications(Windows Application) • Rich Internet Applications (RIAs) • Windows console applications لیست برنامه های کاربردی قابل ایجاد
فریمورک دات نت • System.Data • System.IO • System.Threading • System.Xml • … فضای نام های موجود در FCL
فریمورک دات نت • CLR(Common Language Runtime) • CTS(Common Type System) • CLS(Common Language Specification) اجزای اصلی
Common Language Runtime هسته اصلی و مرکزی فریمورک دات نت می باشد و امور مربوط به اجرای کدها را مدیریت می کند. وظیفه اصلی CLR پیدا کردن ،لود کردن و مدیریت نوع های موجود در دات نت می باشد. همچنین مدیریت حافظه،Thread ها و Security Check ها را نیز انجام می دهد.
Common Type System Class Structure Delegate Enumeration Interface
CTS Type Members هر یک از انواع بالا می توانند دارای اعضایی باشند که به آنها Type Member می گویند. constructor, finalizer, static constructor, nested type, operator, method, property, indexer, field, read-only field, constant, event
CTS Data Types انواع داده اي كه هر يك از زبانهاي دات نت موجود است و مي توان با استفاده از آنها اقدام به تعريف متغيير ها نمود.
Common Language Specification CLS مجموعه قوانینی می باشد که در جهت Cross Languaging بکار می رود. یعنی کدی که شما در یک زبان تحت دات نت می نویسید در صورت استفاده در زبان دیگری از دات نت باید از قوانین خاصی پیروی کند. این ویژگی ها و قوانین به نحوی زیر مجموعه قوانین CTS می باشند.
CLR/CTS Common Language Specification C# VB.NET CLS FORTRAN
Common Language Specification قوانین CLS قانون اول : قوانین CLS تنها درمورد آن بخش از یک نوع عمل می کنند که قرار است در خارج از اسمبلی که آن نوع تعریف شده است استفاده شوند.
Common Language Specification نوع UInt32 در صورتیکه به عنوان خروجی متدی قرار داده شود مطابق با CLS نمی باشد. متدهای 1و 2 با نام های مشابه و خروجی های مختلف تعریف شده اند. گرچه در C# این دو نام یکی نیستند ولی اگر این متدها بخواهند در زبانهای دیگری مانند VB.Net که به حروف حساس نیستند استفاده شوند دچار مشکل می شویم.
Common Language Specification مثال2 :
تغییرات فریمورک دات نت از ابتدا تا کنون
Concurrent= Parallel Parallelization
Multithreading اگر شما بخواهید برنامه شما در زمان اجرا به بخشهای کوچکتری تقسیم شود که هر بخش نیز بتواند بصورت همزمان اجرا شود باید از MultiThreading استفاده کنید. CPU بین Thread های مختلف Switch می کند و در بازه های زمانی معینی بخشی از هر Thread را جلو می برد.
استفاده از موازی سازی برای چه برنامه هایی مناسب است؟ Parallelization
Application چیست؟ مجموعه ای از کدها،اشیا و کامپوننت ها که بخش هایی از یک واحد تنها را تشکیل می دهند و برای کار با یکدیگر طراحی شده اند. اگرچه این بخش ها در اسمبلی های مختلف دات نت قرار داده شده باشند یا در ماشین های مختلف نصب شده باشند ، همه کدها به عنوان بخشهایی از یک Application دیده می شوند.
لايه بندي چيست؟ جداسازي كدهاي نوشته شده در برنامه بر اساس Business Logic , User Interface , Data Access را ميتوان لايه بندي ناميد. در لايه بندي ما سعي مي كنيم بر اساس هر يك از موارد بالا كدها را در لايه هاي مربوطه قرار داده و ارتباط بين لايه ها را برقرار نماييم.
انواع جدا سازی کدها Physical Separation Logical Separation
انواع جدا سازی کدها Physical Separation در معماری Tier-Based ما کدها را در اسمبلی هایی مختلفی ذخیره می کنیم.به عنوان مثال می توانیم یک اسمبلی برای Web Project و یک اسمبلی نیز برای Business Codeهای خود داشته باشیم.فایده این روش این است که می توانیم کدهای خود را در سرورهای مختلف در مکان های جفرافیایی خاصی قرار دهیم.
انواع جدا سازی کدها Logical Separation جداسازی در لایه های (Layer) مختلف به معنی جداسازی منطقی کد ها در حالیکه کل برنامه در یک اسمبلی قرار دارد می باشد. ما می توانیم کد های خود را در فولدرهای جداگانه ای که هر کدام معرف یک فضای نام جدا می باشند قرار دهیم و دسته بندی نماییم.
فواید طراحی معماری N-Layer سازماندهی منطقی (Logically) کدها نگهداری و تعمیر و عیب یابی آسانتر استفاده مجدد بهتراز کدها (Code Reuse) شفافیت و خوانا بودن بالای کدها
فواید معماری فیزیکی N-Tier کارایی (Performance) مقیاس پذیری (Scalability) امنیت(Security) قدرت تحمل نقص (Fault Telorance)
فواید معماری فیزیکی N-Tier قدرت تحمل نقص (Fault Telorance) The network feed to your user’s buildings The power feed to your user’s buildings The network feed and power feed to your data center The primary DNS host servicing your domain Your firewall, routers, switches, etc. Your web server Your application server Your database server Your internal LAN
معماری فیزیکی N-Tier موارد زیر باعث کاهش پیچیدگی می شوند App بزرگ و پیچیده باشد. APP ، یکی از APP های به هم مرتبط باشد که اگر باهم ترکیب شوند پیچیده و بزرگ می شوند. محیط ما بزرگ و پیچیده باشد.(توسعه ، پشتیبانی و سایر فاکتورها)
معماری فیزیکی N-Tier موارد زیر باعث افزایش پیچیدگی می شوند APP ، کوچک باشد. APP ، بخشی از یک گروه برنامه های بهم مرتبط نباشد. محیط کاری ما پیچدگی و بزرگی چندانی نداشته باشد.
لایه های استاندارد Interface-Peresentation Business Logic Layer Data Access Layer Service Layer
لایه های استاندارد Interface این لایه به دو بخش تقسیم می شود.یک بخش مربوط به Client است که شامل کدهای JS و... می باشد و بخش دیگر در سمت سرور می باشد که مربوط به نمایش فرم ها و چگونگی نمایش داده ها و خواندن آنها توسط کنترل های موجود در صفحه ، می شود که می تواند Win Form ، WCF Form یا Asp.Net Form و... باشد.
لایه های استاندارد Business Logic Layer این لایه شامل همه الگوریتم های محاسباتی و عملیاتی می باشد که با سایر لایه های Data و Interface در ارتباط است.این لایه شامل بیشترین منطق برنامه می باشد و به همین دلیل آن را Business Logic Layerمی نامند.
لایه های استاندارد وظایف Business Logic Layer Data Validation Business Rules Manipulation Authorization ...
نحوه تقسیم Logic در هر لایه لایه های استاندارد
لایه های استاندارد • نحوه تقسیم Logic در هر لایه
آیا این تقسیم بندی در عمل ممکن است؟ لایه های استاندارد