نظرات مطالب
خودکارسازی فرآیند نگاشت اشیاء در AutoMapper
ممنونم. مشکل قبل حل شد.
خطایی صادر میکندبا این عنوان:
اگر دو فیلد IsApplied , Qty هم در متد CreateMappings بصورت دستی map کنم خطایی صادر نمیشود. در صورتیکه قبلا با اتوماتیک مپ میشدند. آیا تغییری در AutoMapperRegistry نیاز هست؟
اگر ویومدل من بدینصورت باشه
public class MyViewModel : IHaveCustomMappings { public int SchedulerId { get; set; } public bool IsApplied { get; set; } public int Qty { get; set; } public void CreateMappings(IMapperConfigurationExpression configuration) { configuration.CreateMap<DomainModels.Models.Scheduler, MyViewModel>() .ForMember(dest => dest.SchedulerId, opt => opt.MapFrom(src => src.Id)); } }
Unmapped members were found. Review the types and members below. Add a custom mapping expression, ignore, add a custom resolver, or modify the source/destination type For no matching constructor, add a no-arg ctor, add optional arguments, or map all of the constructor parameters
اشتراکها
معرفی NET Core 3 Local Tools.
نظرات مطالب
ObservableCollection در Entity Framework
- در مورد Tracking یک مطلب جداگانه در سایت هست. Tracking API همان ObservableCollection نیست. Tracking API در سایر ORMها نامی به شکل سطح اول کش دارد (first level caching).
- با توجه به اینکه برای بررسی کارهای شخصی و کتابخانههای مستقل، نیاز به کد کامل هست، بهتر است به مقاله زیر مراجعه کرده و جزئیات کار خودتان را با آن مقایسه کنید:
«Implementing Undo/Redo feature for DbContext of Entity Framework»
- با توجه به اینکه برای بررسی کارهای شخصی و کتابخانههای مستقل، نیاز به کد کامل هست، بهتر است به مقاله زیر مراجعه کرده و جزئیات کار خودتان را با آن مقایسه کنید:
«Implementing Undo/Redo feature for DbContext of Entity Framework»
Elemental.JsonResource
Json Resource file support in C# projects.
This provides an alternative to using resx files to defined resources in C# projects. The benefits over resx are:
- human readable file format (try writing resx xml from scratch without documentation)
- generated C# code doesn't get included in project/source control
- Doesn't require modifying the .csproj (adding a single resx file will add ~12 lines to your csproj file)
- Doesn't require Visual Studio to function. (resx files don't work in VS Code for example)
نظرات اشتراکها
Kendo UI Q1 2015 منتشر شد
ریز تغییرات آن همیشه در این آدرسها منتشر میشوند:
- نسخهی اصلی: http://www.telerik.com/support/whats-new/kendo-ui/release-history
- محصور کنندهی ASP.NET MVC آن: http://www.telerik.com/support/whats-new/aspnet-mvc/release-history
- نسخهی اصلی: http://www.telerik.com/support/whats-new/kendo-ui/release-history
- محصور کنندهی ASP.NET MVC آن: http://www.telerik.com/support/whats-new/aspnet-mvc/release-history
در این قسمت نگاهی دقیقتر به فایلهای سرآیند ، فضای نام ، ویژگیهای زبان
++C و برخی قوانین برنامه نویسی ++C خواهیم داشت و همچنین در مورد اولین پروژه توضیحات جامعتری ارائه میکنیم .
یک برنامه مجموعه ای از دستورات است که توسط کامپیوتر اجرا میگردد ، برنامه نویسان برای نوشتن این دستورات از زبانهای برنامه نویسی استفاده میکنند ، برخی از این زبانها مسقیما قابل فهم توسط کامپیوتر بوده و برخی نیاز به ترجمه دارند . زبانهای برنامه نویسی را میتوان به سه دسته تقسیم نمود :
1 - زبانهای ماشین
2 - زبانهای اسمبلی
3 - زبانهای سطح بالا
زبانهای ماشین :
زبانی که مستقیما و بدون نیاز به ترجمه قابل فهم توسط کامپیوتر میباشد . هر پردازنده یا processor زبان خاص خود را دارد !... در نتیجه تنوع زبان ماشین بستگی به انواع پردازندههای موجود دارد و اگر دو کامپیوتر دارای پردازندههای یکسان نباشتد ، زبان ماشین آنها با یکدیگر متفاوت و غیر قابل فهم برای دیگری میباشد . زبان ماشین وابسته به ماشین یا Machine independent میباشد . تمامی دستورات در این زبان توالی از 0 و 1 میباشند . برنامههای اولیه را با این زبان مینوشتند در نتیجه نوشتن برنامه سخت و احتمال خطا داشتن در آن زیاد بود . ار آنجا که نوشتن برنامه به این زبان سخت و فهم برنامههای نوشته شده به آن دشوار بود ، برنامه نویسان به فکر استفاده از حروف بجای دستورات زبان ماشین افتادند ( پیدایش زبان اسمبلی )
زبانهای اسمبلی :
به زبانی که دستورات زبان ماشین را با نمادهای حرفی بیان میکند، زبان اسمبلی (Assembley Language) میگویند . چون این زبان مستقیما قابل فهم برای کامپیوتر نیست باید قبل از اجرا آن را به زبان ماشین ترجمه کرد ، به این مترجم اسمبلر گفته میشود . برنامههای نوشته شده به این زبان قابل فهم برای برنامه نویس بود اما از آنجا که به ازای هر دستور زبان ماشین یک دستور زبان اسمبلی داشتیم از حجم برنامهها کاسته نشد ! .. بعلاوه چون زبان اسمبلی همانند زبان ماشین از دستورات پایه ای و سطح پایین استفاده میکرد نوشتن برنامه با این زبان هم سخت و مشکل بود . لذا اهل خرد به فکر ابداع نسلی از زبانهای بهتر بودند (پیدایش زبانهای سطح بالا)
زبانهای سطح بالا :
زبانهای سطح بالا قابل فهم بودند و این امکان را داشتند تا چند دستور زبان ماشین یا اسمبلی را بتوان در قالب یک دستور نوشت ( منظور توابع کتابخانه ای در ++C/C) . پس هم فهم ، هم نوشتن برنامه در این زبانها راحت و هم تعداد خطوط کد کمتر شد . این زبانها به زبانهای برنامه نویسی سطح بالا یا High-Level Programming Language معروفند . البته برنامه نوشته شده در این زبان نیز برای کامپیوتر قابل فهم نبوده و باید به زبان ماشین ترجمه شوند ، این وظیفه بر عهده کامپایلر میباشد . اولین زبانهای برنامه نویسی سطح بالا مانند FORTRAN ، COBOL ، PASCAL و C میباشند . زبان برنامه نویسی ++C تکامل یافته زبان C میباشد .
هر یک از زبانهای برنامه نویسی سطح بالا یک روش برنامه نویسی را پشتیبانی میکند به طور مثال زبان C و PASCAL از روشهای برنامه نویسی ساخت یافته ای و پیمانه ای و زبانهای مانند ++C و JAVA از روش برنامه سازی شی گرا یا Object Oriented Programming یا به اختصار (OOP) استفاده میکنند . زبان ++C چون زبان C را بطور کامل در بر دارد پس از هر سه روش برنامه نویسی ساخت یافته و پیمانه ای و شی گرا استفاده میکند .
تا اینجا با تاریخچه ای از زبانها و مراحل تکامل آنها آشنا شدیم . حال ویژگیها و دلایل استفاده از زبان ++C را مرور میکنیم :
زبان C در سال 1972 توسط دنیس ریچی طراحی شد . زبان C تکامل یافته زبان BCPL است که طراح آن مارتین ریچاردز میباشد ، زبان BCPL نیز از زبان B مشتق شده است که طراح آن کن تامسون بود . (خداوند روح دنیس ریچی را همچون هوگو چاوز با مسیح بازگرداند ! ...) .
از این زبان برای نوشتن برنامههای سیستمی ، همچون سیستم عامل ، کامپایلر ، مفسر ، ویرایشگر ، برنامههای مدیریت بانک اطلاعاتی ، اسمبلر استفاده میکنند .
زبان C برای اجرای بسیاری از دستوراتش از توابع کتابخانه ای استفاده میکند و بیشتر خصوصیات وابسته به سخت افزار را به این توابع واگذار میکند لذا نرم افزار تولید شده با این زبان به سخت افزار خاصی بستگی ندارد و با اندکی تغییرات میتوانیم نرم افزار مورد نظر را روی ماشینهای متفاوت اجرا کنیم ، در نتیجه برنامه نوشته شده با C قابلیت انتقال (Portability) دارند . بعلاوه کاربر میتواند توابع کتابخانه ای خاص خودش را بنویسد و از آنها در برنامه هایش استفاده کند .
برنامههای مقصدی که توسط کامپیلرهای C ساخته میشود بسیار فشرده و کم حجمتر از برنامههای مشابه در سایر زبانهاست ، این امر باعث افزایش سرعت اجرای آنها میشود .
++C که از نسل C است تمام ویژگیهای ذکر شده بالا را دارد ، علاوه بر آن شی گرا نیز میباشد . برنامههای شی گرا منظم و ساخت یافته اند و قابل آپدیت هستند و به سهولت تغییر و بهبود مییابند و قابلیت اطمینان و پایداری بیشتری دارند .
تحلیل اولین پروژه :
در اولین پروژه کد فوق را بکار بردیم ، حال به شرح دستورات آن میپردازیم .
یک برنامه مجموعه ای از دستورات است که توسط کامپیوتر اجرا میگردد ، برنامه نویسان برای نوشتن این دستورات از زبانهای برنامه نویسی استفاده میکنند ، برخی از این زبانها مسقیما قابل فهم توسط کامپیوتر بوده و برخی نیاز به ترجمه دارند . زبانهای برنامه نویسی را میتوان به سه دسته تقسیم نمود :
1 - زبانهای ماشین
2 - زبانهای اسمبلی
3 - زبانهای سطح بالا
زبانهای ماشین :
زبانی که مستقیما و بدون نیاز به ترجمه قابل فهم توسط کامپیوتر میباشد . هر پردازنده یا processor زبان خاص خود را دارد !... در نتیجه تنوع زبان ماشین بستگی به انواع پردازندههای موجود دارد و اگر دو کامپیوتر دارای پردازندههای یکسان نباشتد ، زبان ماشین آنها با یکدیگر متفاوت و غیر قابل فهم برای دیگری میباشد . زبان ماشین وابسته به ماشین یا Machine independent میباشد . تمامی دستورات در این زبان توالی از 0 و 1 میباشند . برنامههای اولیه را با این زبان مینوشتند در نتیجه نوشتن برنامه سخت و احتمال خطا داشتن در آن زیاد بود . ار آنجا که نوشتن برنامه به این زبان سخت و فهم برنامههای نوشته شده به آن دشوار بود ، برنامه نویسان به فکر استفاده از حروف بجای دستورات زبان ماشین افتادند ( پیدایش زبان اسمبلی )
زبانهای اسمبلی :
به زبانی که دستورات زبان ماشین را با نمادهای حرفی بیان میکند، زبان اسمبلی (Assembley Language) میگویند . چون این زبان مستقیما قابل فهم برای کامپیوتر نیست باید قبل از اجرا آن را به زبان ماشین ترجمه کرد ، به این مترجم اسمبلر گفته میشود . برنامههای نوشته شده به این زبان قابل فهم برای برنامه نویس بود اما از آنجا که به ازای هر دستور زبان ماشین یک دستور زبان اسمبلی داشتیم از حجم برنامهها کاسته نشد ! .. بعلاوه چون زبان اسمبلی همانند زبان ماشین از دستورات پایه ای و سطح پایین استفاده میکرد نوشتن برنامه با این زبان هم سخت و مشکل بود . لذا اهل خرد به فکر ابداع نسلی از زبانهای بهتر بودند (پیدایش زبانهای سطح بالا)
زبانهای سطح بالا :
زبانهای سطح بالا قابل فهم بودند و این امکان را داشتند تا چند دستور زبان ماشین یا اسمبلی را بتوان در قالب یک دستور نوشت ( منظور توابع کتابخانه ای در ++C/C) . پس هم فهم ، هم نوشتن برنامه در این زبانها راحت و هم تعداد خطوط کد کمتر شد . این زبانها به زبانهای برنامه نویسی سطح بالا یا High-Level Programming Language معروفند . البته برنامه نوشته شده در این زبان نیز برای کامپیوتر قابل فهم نبوده و باید به زبان ماشین ترجمه شوند ، این وظیفه بر عهده کامپایلر میباشد . اولین زبانهای برنامه نویسی سطح بالا مانند FORTRAN ، COBOL ، PASCAL و C میباشند . زبان برنامه نویسی ++C تکامل یافته زبان C میباشد .
هر یک از زبانهای برنامه نویسی سطح بالا یک روش برنامه نویسی را پشتیبانی میکند به طور مثال زبان C و PASCAL از روشهای برنامه نویسی ساخت یافته ای و پیمانه ای و زبانهای مانند ++C و JAVA از روش برنامه سازی شی گرا یا Object Oriented Programming یا به اختصار (OOP) استفاده میکنند . زبان ++C چون زبان C را بطور کامل در بر دارد پس از هر سه روش برنامه نویسی ساخت یافته و پیمانه ای و شی گرا استفاده میکند .
تا اینجا با تاریخچه ای از زبانها و مراحل تکامل آنها آشنا شدیم . حال ویژگیها و دلایل استفاده از زبان ++C را مرور میکنیم :
زبان C در سال 1972 توسط دنیس ریچی طراحی شد . زبان C تکامل یافته زبان BCPL است که طراح آن مارتین ریچاردز میباشد ، زبان BCPL نیز از زبان B مشتق شده است که طراح آن کن تامسون بود . (خداوند روح دنیس ریچی را همچون هوگو چاوز با مسیح بازگرداند ! ...) .
از این زبان برای نوشتن برنامههای سیستمی ، همچون سیستم عامل ، کامپایلر ، مفسر ، ویرایشگر ، برنامههای مدیریت بانک اطلاعاتی ، اسمبلر استفاده میکنند .
زبان C برای اجرای بسیاری از دستوراتش از توابع کتابخانه ای استفاده میکند و بیشتر خصوصیات وابسته به سخت افزار را به این توابع واگذار میکند لذا نرم افزار تولید شده با این زبان به سخت افزار خاصی بستگی ندارد و با اندکی تغییرات میتوانیم نرم افزار مورد نظر را روی ماشینهای متفاوت اجرا کنیم ، در نتیجه برنامه نوشته شده با C قابلیت انتقال (Portability) دارند . بعلاوه کاربر میتواند توابع کتابخانه ای خاص خودش را بنویسد و از آنها در برنامه هایش استفاده کند .
برنامههای مقصدی که توسط کامپیلرهای C ساخته میشود بسیار فشرده و کم حجمتر از برنامههای مشابه در سایر زبانهاست ، این امر باعث افزایش سرعت اجرای آنها میشود .
++C که از نسل C است تمام ویژگیهای ذکر شده بالا را دارد ، علاوه بر آن شی گرا نیز میباشد . برنامههای شی گرا منظم و ساخت یافته اند و قابل آپدیت هستند و به سهولت تغییر و بهبود مییابند و قابلیت اطمینان و پایداری بیشتری دارند .
تحلیل اولین پروژه :
در اولین پروژه کد فوق را بکار بردیم ، حال به شرح دستورات آن میپردازیم .
#include <iostream>
دستوراتی که علامت # پیش از آنها قرار میگیرد ، دستورات راهنمای پیش پردازنده هستند . این
خط یک دستور پیش پردازنده است که توسط پیش پردازنده و قبل از شروع کامپایل
، پردازش میشود . این کد فایل iostream را به برنامه اضافه میکند . کتابخانه
استاندارد ++C به چندین بخش تقسیم شده است و هر بخش فایل سرآیند خود را
دارد . دلیل قرار گرفتن این دستور در ابتدای برنامه این است که ، پیش از
استفاده از هر تابع و فراخوانی کردن آن در برنامه ، کامپایلر لازم است
اطلاعاتی در مورد آن تابع داشته باشد . در خط کد بالا فایل سرآیند
iostream استفاده نمودیم زیرا شامل توابع مربوط به I/O ( ورودی / خروجی ) میباشد .
دستور فوق بخشی از هر برنامه ++C است ، main تابع اصلی هر برنامه ++C است
که شروع برنامه از آنجا آغاز میشود . کلمه int در ابتدای این خط ، مشخص
میکند که تابع main پس از اجرا و به عنوان مقدار برگشتی (;return 0) یک
عدد صحیح باز میگرداند .
دستور فوق یک رشته را در خروجی استاندارد که معمولا صفحه نمایش میباشد
ارسال میکند . std یک فضای نام است . فضای نام محدوده ای است که چند
موجودیت در آن تعریف شده است . مثلا موجودیت cout در فضای نام std در فایل
سرآیند iostream تعریف شده است .
در زبان ++C هر دستور به ; (سیموکالن) ختم میشود .
int main() { return 0; }
std::cout<<"Hello world ...\n";
در زبان ++C هر دستور به ; (سیموکالن) ختم میشود .
بازخوردهای دوره
نگاهی به SignalR Hubs
«عیب یابی و دیباگ برنامههای SignalR»
خصوصا قسمت «بهترین راه برای مشاهده ریز جرئیات خطاها، ذکر سطر ذیل در کدهای سمت کلاینت جاوا اسکریپتی برنامه است:
و سپس مراجعه به کنسول developers مرورگر برای بررسی خطاهای لاگ شده.»
$.connection.hub.logging = true;