Project Perseus

پرسیوس چیست؟

به زبان ساده، پرسیوس (Perseus) یک چارچوب کاری شخصی جهت تولید نرم افزارهای کاربردی مبتنی بر .NET می باشد. هدف از طراحی پرسیوس، سرعت بخشیدن به روند تولید نرم افزارهای داده پردازی مبتنی بر وب در مقیاس کوچک و متوسط بوده و سازگار با ASP.NET Web Forms 2.0+ توسعه یافته و در پیاده سازی آن سعی شده، اصول پیشنهادی مایکروسافت در طراحی معماری با ساختار 3 لایه، تا حد امکان اعمال گردد.

پروژه پرسیوس در سال 2008 آغاز گردید و همچنان در حال توسعه و تکامل می باشد. پرسیوس در ابتدا مبتنی بر Microsoft .NET 3.5 تولید گردید و در سال 2010، اندکی پس از نشر Microsoft .NET 4.0 به این نسخه ارتقاء یافت. در ابتدای سال 2013 نیز نسخه جدید آن، مبتنی بر Microsoft .NET 4.5+ تولید گردید که حاوی تغییرات اساسی بود. مهم ترین این تغییرات، افزودن اسمبلی جدیدی مبتنی بر JavaScript است که در واقع چارچوب کاری مبتنی بر امکانات پردازشی مرورگرها بوده و جهت تسهیل توسعه نرم افزارهای مبتنی بر وب بوجود آمده است. در سال 2015 نیز اسمبلی دیگری به این مجموعه اضافه گردید که شامل امکاناتی مبتنی بر چارچوب Bootstrap 3.x می باشد. پرسیوس در سال 2017 بازنشسته گردید و جای خود را به نسل بعدی آن Perseus Core داد. این برگه صرفاً حاوی اطلاعات مربوط به پرسیوس (بازنشسته) می باشد.

پرسیوس شامل 4 اسمبلی می باشد:

  • Perseus.Fx.dll
  • Perseus.Fx.Web.UI.Toolkit.dll
  • Perseus.js
  • Perseus.Fx.Web.UI.Bootstrap.dll

Perseus Core

پس از ارائه Microsoft .NET Core 2.x در سال 2017، بخش عمده ای از کدهای چارچوب Perseus مبتنی بر زیرساخت جدید مجددا بازبینی و/یا بازنویسی شدند. از آن زمان، توسعه چارچوب قدیمی متوقف و چارچوب جدید مبتنی بر امکانات زیرساخت جدید، جایگزین آن گردید. در حال حاضر، چارچوب جدید در سه حوزه «هسته»، «منطق کار» و «پوسته» مبتنی بر Microsoft .NET 7.x در حال توسعه و نگهداری میباشد. بخش پوسته آن بطور ویژه مبتنی بر فن‌آوری Blazor تولید گردیده است.

Perseus.Fx.dll

این اسمبلی از 5 فضای نام کاربردی تشکیل شده است:

  1. Perseus.Fx.Business

    این فضای نام شامل مجموعه کلاسهایی جهت توسعه لایه عملیات پردازش منطقی (Business Logic Layer) می باشد و امکانات زیر را به صورت مستقل از پیاده سازی لایه های زیرین، ارائه می نماید:

    • ذخیره بازیابی (C.R.U.D) منطقی به شیوه ای کاملا شئ گرا و با قابلیت انقیاد (Binding) دوطرفه به رابط کاربری
    • امکان اعتبار سنجی (Validation) سفارشی
    • روالهای پردازش خطا (Error Handling Routines)
    • امکان ثبت وقایع (Logging)
    • کنترل همروندی (Concurrency) عملیات

    در صورتی که لایه دستیابی به داده ها (Data Access Layer) با استفاده از تکنولوژی ADO.NET Entity Framework 4.0+ تولید شده باشد، امکان عملیات ذخیره و بازیابی (C.R.U.D) فیزیکی نیز بدون نیاز به کدنویسی پشتیبانی می شود.

  2. Perseus.Fx.Communications

    این فضای نام فعلاً فقط شامل کلاسهایی است که روال پردازش و ارسال رایانامه (Email) را سهولت می بخشند.

  3. Perseus.Fx.Drawing

    این فضای نام شامل روالهای توسعه دهنده (Extension Method) متنوعی می باشد که جهت پردازش تصاویر 2 بُعدی کاربرد دارند.

  4. Perseus.Fx.Extensions

    این فضای نام شامل کلاسهایی ایستا (Static) و روالهای توسعه دهنده (Extension Method) متنوعی می باشد که پردازش انواع داده های پایه مثل حروف، رشته ها، اعداد، تاریخ و ... را در هنگام توسعه مولفه های نرم افزاری پیچیده، سهولت می بخشند.

  5. Perseus.Fx.Web

    این فضای نام شامل مجموعه کلاسها و کنترلهای وب سفارشی گوناگونی میباشد که روند توسعه لایه نمایش (Presentation Layer) را تا حد قابل توجهی سهولت می بخشد. برخی از این کنترلها مبتنی بر تکنولوژی Microsoft AJAX تولید شده اند. این کنترلها در مجموع شامل 3 دسته می باشند:

    • کنترلهای استاندارد ASP.NET که سفارشی شده و با افزودن قابلیتهای ویژه ای، به کنترلهای غنی تری تبدیل گشته اند.
    • کنترلهای ترکیبی که از یک یا چند کنترل استاندارد و اندکی خلاقیت تشکیل شده اند.
    • کنترلهای کاملا جدید که بر اساس نیاز و با صرف کمی وقت و خلاقیت توسعه یافته اند.

    این فضای نام همچنین شامل کلیه منابع مورد استفاده در ساخت کنترلهای مذکور می باشد. کلیه فایلهای حاوی کد JavaScript، برگه های CSS، تصاویر و ... که در تولید کنترلهای وب سفارشی استفاده شده اند در این فضای نام جاسازی و بسته بندی شده اند.

* در تولید فرم ارسال پیام این سایت از برخی کنترلهای و منابع موجود در این اسمبلی استفاده شده است.

Perseus.Fx.Web.UI.Toolkit.dll

این اسمبلی شامل مجموعه کنترلهای سفارشی شده ای است که در تولید آنها از برخی کنترلهای مجموعه AJAX Control Toolkit استفاده شده. به دلیل وابستگی AJAX Control Toolkit به منابع تولیدی یا اجرایی سنگین، این بخش از چارچوب، در قالب یک اسمبلی مجزا بسته بندی گردیده تا بخش اصلی Perseus نسبت به هیچ ابزار جانبی ای وابسته نباشد.

* در تولید فرم ارسال پیام این سایت از برخی کنترلهای این اسمبلی استفاده شده است.

Perseus.js

این اسمبلی مجموعه ای است از کدهای JavaScript و برگه های CSS که به صورت مستقل از تکنولوژی و زیرساخت و بر اساس امکانات مرورگرهای نوین و استاندارد (سازگار با Internet Explorer 9+) توسعه یافته اند. این امکانات به توسعه دهندگان وب اجازه می دهد تا برخی امور برنامه نویسی مبتنی بر مرورگر را با سهولت انجام دهند.

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

Perseus.Fx.Web.UI.Bootstrap.dll

این اسمبلی شامل مجموعه ای از کنترلهایی است که بر اساس عناصر تشکیل دهنده چارچوب بصری Bootstrap 3.x توسعه یافته اند. در حال حاضر این اسمبلی هنوز در حال توسعه می باشد. فعلا شاخص ترین بخشِ آن، کنترلهای توسعه فرمهای اطلاعاتی می باشد.

ریشه نام «پرسیوس» از کجاست؟

Perseus

پاسخ به این سوال کمی پیچیده است...

«پرسیوس»، پهلوان دو رگه (نیمه خدا - نیمه انسان)، فرزند خدای خدایان «زئوس» و نیای پهلوان معروف، «هرکول»، از اساطیر یونان باستان است. در دانش اخترشناسی نیز نام صورتی فلکی است در آسمان نیمکره شمالی زمین.

در زبان پارسی، شبیه ترین واژه به آن، واژه «پارسا» است که هم به معنی «پرهیزکار» و هم به معنی «اهل سرزمین پارس» بکار برده می شود. اگر واژه «پارسا» را به زبان یونانی بیان کنید، چیزی شبیه به «پرسیوس» تلفظ می شود و اگر «پرسیوس» با الفبای لاتین نوشته شود، بخشی از آن (Perse...)، یاد آور نام لاتین شهر پارسه (Persia) یا همان پرسپولیس پایتخت شاهنشاهی (امپراطوری) پارس است.

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