نظرات مطالب
طراحی گردش کاری با استفاده از State machines - قسمت سوم
- مورد استفاده در هر شرکتی با بیش از یک نفر کارمند.
مانند گردش کاری درخواست:
  1. مساعده
  2. مرخصی
  3. ماموریت
  4. تائید ساعات کاری
  5. درخواست و تائید تشکیل یک جلسه
  6. پر کردن و تائید تایم شیت
و ... تمام کارهای یک سازمان یا شرکت
-  هدف آشنایی بصری شما با نحوه حل مسایل چند مرحله‌ای که در ابتدا ساده به نظر می‌رسند، اما 10 مرحله که به آن اضافه شود، مدیریت آن به روش‌های متداول طاقت فرسا خواهد شد.
- وجود این تصاویر، تولید کننده کد و امثال آن صرفا برای ساده کردن توضیح انبوهی متن، به همراه روشی برای حل آن بود.
نظرات مطالب
EF Code First #12
- باید از الگوی Service locator استفاده کنید در این موارد خاص فناوری‌های قدیمی که برای تزریق وابستگی‌ها طراحی نشده‌اند. پیشنیاز این بحث دوره «بررسی مفاهیم معکوس سازی وابستگی‌ها و ابزارهای مرتبط با آن » است.
- ضمن اینکه الان با بودن ASP.NET Web API که هم با وب فرم‌ها سازگار است و هم با MVC، دلیلی برای استفاده از وب متدهای استاتیک عهد عتیق وجود ندارد. ASP.NET Web API طوری طراحی شده تا تزریق وابستگی‌ها در آن ممکن و آزمون پذیری آن بالا باشد.
اشتراک‌ها
آموزش عملی UI

آموزش عملی  html, css,javascript,jquery , ...

در این سایت آموزش کامل و بصورت عملی برای طراحی یک صفحه وب داده میشود که سطح پیشرفت شما را نیز نمایش می‌دهد و درآخر با توجه به تمرین هایی که انجام داده اید یک سایت طراحی می‌کنید. البته نه به صورت حرفه ای ولی برای افرادی که UI ضعیفی دارند مناسب است.

آموزش عملی  UI
اشتراک‌ها
ساخت برنامه های پویای Blazor به کمک فریم ورک Octane

Octane فریم ورکی است جهت ساخت برنامه‌های Modular در Blazor. به کمک این برنامه می‌توانید صفحات مورد نظر خود را طراحی کرده و به وب سایت خود اضافه کنید. لینکی جهت نمایش بعضی از قابلیتهای آن در یوتیوب نمایش .

ساخت برنامه های پویای Blazor به کمک فریم ورک Octane
اشتراک‌ها
با پلیمر احساس متفاوتی از طراحی المان های وب داشته باشید

شرکت گوگل جدیدا محصولی به نام Polymer ارائه کرده است که میتواند برای نوسع دهندگان وب مفید و لذتبخش باشد. این طراحی همانند sdk می‌باشد که با آن میتوانید کنترل‌های اختصاصی‌تری بسازید و المان‌های پیش فرض جالبی دارد.

با پلیمر احساس متفاوتی از طراحی المان های وب داشته باشید
نظرات مطالب
EF Code First #12
توضیحات بالا برای برنامه‌های وب بهینه شده. در آنجا در Application_EndRequest به صورت خودکار کانکشن بسته میشه (با کد ObjectFactory.ReleaseAndDisposeAllHttpScopedObjects  که نوشته شد).
در برنامه‌های ویندوزی این مدیریت رو باید خودتون دستی انجام بدید و چنین مکانیزمی در آن طراحی نشده.
نظرات مطالب
اجرای وظایف زمان بندی شده با Quartz.NET - قسمت دوم

- تولید درخواست به یک سایت کار سختی نیست. از این سرویس‌هایی که مدام سایت رو ping می‌کنند زیاد هست. مثل سرویس‌های فید خوان. مثل سایت‌هایی که بررسی می‌کنند سایت شما آپ است یا داون.

- نه الزاما. سرویس task scheduler ویندوز همیشه در حال اجرا است؛ دقیق و منظم. این سرویس می‌تونه خیلی راحت یک فایل exe معمولی یا حتی یک فایل bat رو در زمان‌های مشخصی اجرا کنه. برای کارهای مدیریت سیستم زیاد ازش استفاده می‌شه.

نظرات مطالب
خلاصه‌ای در مورد وضعیت فعلی MySQL
اکثر سایت‌هایی که مشاهده می‌کنید (و عموما بر مبنای PHP هستند) مثل فوروم‌ها، وبلاگ‌ها و غیره، سورس باز هستند و یا مجوز GPL دارند یا احتمالا هم خانواده‌اند و مشکلی نخواهند داشت. در غیراینصورت اگر کار نهایی تجاری و سورس بسته باشد و شخصی هم گزارش بدهد و هاست هم در کشوری باشد که مسایل کپی رایت را رعایت می‌کند، سایت را معلق می‌کنند، به علاوه سایر مسایل قانونی مرتبط.
مطالب
متد جدید Order در دات نت 7
دات نت 7 به همراه دو متد جدید Order و OrderDescending است که مرتب سازی مجموعه‌های ساده را انجام می‌دهند.


روش متداول مرتب سازی مجموعه‌های ساده تا پیش از دات نت 7

فرض کنید لیستی از اعداد را داریم:
var numbers = new List<int> { -7, 1, 5, -6 };
تا پیش از دات نت 7 با استفاده از متدهای OrderBy و OrderByDescending موجود به همراه LINQ، امکان مرتب سازی صعودی و نزولی این لیست وجود دارد:
var sortedNumbers1 = numbers.OrderBy(n => n);
var sortedNumbers2 = numbers.OrderByDescending(n => n);
که در اینجا ذکر پارامتر keySelector ضروری است:
public static IOrderedEnumerable<TSource> OrderBy<TSource,TKey>(
   [NotNull] this IEnumerable<TSource> source,
   [NotNull] Func<TSource,TKey> keySelector)
هرچند می‌شد طراحی آن ساده‌تر باشد و حداقل برای مجموعه‌های ساده، نیازی به ذکر آن نباشد.


روش جدید مرتب سازی مجموعه‌های ساده در دات نت 7

دات نت 7 به همراه دو متد جدید Order و OrderDescending است که دیگر نیازی به ذکر پارامتر keySelector ذکر شده را ندارند:
var sortedNumbers3 = numbers.Order();
var sortedNumbers4 = numbers.OrderDescending();
و امضای آن‌ها به صورت زیر است:
public static IOrderedEnumerable<T> Order<T>(this IEnumerable<T> source)
public static IOrderedEnumerable<T> OrderDescending<T>(this IEnumerable<T> source)
که در حقیقت دو متد الحاقی جدید قابل اعمال بر روی انواع و اقسام IEnumerableها هستند.


در مورد سایر مجموعه‌های پیچیده چطور؟

فرض کنید کلاس User را:
public class User
{
   public string Name { set; get; }
   public int Age { set; get; }
}
 به همراه لیستی از آن تعریف کرده‌ایم:
List<User> users = new()
                           {
                               new User { Name = "User 1", Age = 34 },
                               new User { Name = "User 2", Age = 24 },
                           };
سؤال: آیا اگر متد Order را بر روی این لیست فراخوانی کنیم:
var orderedUsers = users.Order();
برای مثال این مجموعه بر اساس نام و سن مرتب خواهد شد؟ که پاسخ آن خیر است و همچنین استثنائی را صادر می‌کند بر این مبنا که باید کلاس User، اینترفیس IComparable را پیاده سازی کند تا بتوان آن‌ها را مقایسه کرد؛ برای مثال چیزی شبیه به تغییرات زیر:
public class User : IComparable<User>
{
    public string Name { set; get; }
    public int Age { set; get; }

    public int CompareTo(User? other)
    {
        if (ReferenceEquals(this, other))
        {
            return 0;
        }

        if (ReferenceEquals(null, other))
        {
            return 1;
        }

        var nameComparison = string.Compare(Name, other.Name, StringComparison.Ordinal);
        if (nameComparison != 0)
        {
            return nameComparison;
        }

        return Age.CompareTo(other.Age);
    }
}
که در یک چنین مواردی شاید بهتر باشد از همان متد OrderBy پیشین استفاده کرد که الزامی به پیاده سازی اینترفیس IComparable را ندارد:
var orderedUsers2 = users.OrderBy(user => user.Name).ThenBy(user => user.Age);
نظرات مطالب
فلسفه وجودی بخش finally در try catch چیست؟
دوست عزیزم. من این رو به عنوان یک مثال ساده برای درک مفهوم مورد بحث نوشتم و نخواستم خیلی برای افرادی که تازه سی شارپ رو شروع می‌کنند پیچیده باشه. قواعدی که شما فرمودید کاملا درست هست. متشکرم.