نظرات مطالب
ASP.NET MVC #21
یک سری از مجوز‌های سورس باز به این شکل هستند. نمونه دیگر آن LGPL است. مثلا NHibernate مجوز LGPL دارد. به این معنا که مجاز هستید از آن به شکل بایناری (یعنی فایل‌های dll کامپایل شده آن) در هر نوع پروژه تجاری، غیرتجاری، باز، بسته ... بدون محدودیت استفاده کنید. اما اگر سورس آن‌ها را مستقیما به پروژه خود اضافه و کامپایل کنید، نیاز است تا سورس کارتان را هم ارائه دهید.
نظرات مطالب
نقدی بر کتاب «مرجع کامل entity framework 4.1»
چون عموما تیم‌های سورس باز، از لشگر مستند ساز و مستند نویس مایکروسافت محروم هستند.
برای مثال یادم هست زمانیکه سیلورلایت 5 بتا ارائه شد (چند وقت قبل)، همان روز حدود بالای 30 مقاله‌ی بلند بالا در مورد تازه‌های محصولی که دقیقا همان روز در یک کنفرانس برای اولین بار معرفی شده، مطلب منتشر شد. خوب ... این یک لشگر سازماندهی شده است. رقابت کردن با این‌ها سخت است.
شما فکر می‌کنید کسانی که کتاب‌های بعدی سیلورلایت 5 را منتشر می‌کنند از کجا مطالب خودشون رو تامین می‌کنند؟ همین 30 تا مقاله رو کنار هم قرار می‌دهند با نگارش خودشون منتشر می‌کنند. راحت میشه نصف یک کتاب.
NHibernate هم به همین صورت، این لشگر مستند ساز رو نداره. به علاوه خیلی اشتباه است اگر تصور کنید NHibernate همان Hibernate جاوا است. خیلی اضافات در NHibernate به دلیل پیشرفت‌های زبان‌های دات نتی وجود دارد که در Hibernate نیست (همین مباحث static reflection ، lambda expression ، LINQ و غیره). خلاصه اینکه NHibernate فقط یک معادل یک به یک، یکی از کتابخانه‌ها‌ی معروف جاوا نیست. شاید نگارش اول آن اینطور بوده.

ضمنا فعلا شما همین کتاب EF 4.1 رو بخرید! اگر به چاپ دوم رسید یعنی می‌شود به انتشار کتاب‌های مشابه امیدوار شد!
نظرات مطالب
نقدی بر کتاب «مرجع کامل entity framework 4.1»
یه سوال
چرا کتابهای زیادی در مورد Hibernate منتشر شده اما کتابهای NHibernate به تعداد انگشتان یک دست هم نمی رسه؟
در مورد چاپ کتاب NHibernateتوی ایران هم فکر کنم کسی به جز شما این دانش رو (حداقل برای چاپ کتاب)نداشته باشه و دست خودتونو می بوسه!
نظرات مطالب
استفاده از فیلدهای XML در NHibernate
سلام.
من nHibernate بلد نیستم اما قسمتی که درباره فرم ساز ها صحبت کردید جالب بود.
این فرم سازی که شما ازش صحبت کردید User Mode بود حالا اگر فرم سازی بخواهیم توسعه بدیم که Developer Mode باشه نظرتون چیه؟
مثلا از روی یک Table فرم خام رو صورت Html در بیاورد.
نظرات مطالب
استفاده از اسمبلی‌های دات نت 2 در یک پروژه دات نت 4
- یک نکته‌ی دیگر:
اگر حین کار با NHibernate و SQLite در یک برنامه‌ی دات نت 4 به خطای "Could not create the driver from NHibernate.Driver.SQLite20Driver" برخوردید، راه حل همان مورد فوق است (اضافه کردن useLegacyV2RuntimeActivationPolicy به فایل کانفیگ برنامه).
نظرات مطالب
لیستی از بانک‌های اطلاعاتی قابل استفاده در دات نت
کار با NHibernate سخته، Wizard برای Generate کردن Mapping دیتابیس نداره و همه چیز را خودمان باید تولید کنیم، ولی ابزار هایی مثل OpenAccess همه چیزهارو خودشان تولید میکنند واز Forward Mappingو Reverse Mapping هم پشتیبانی می کنند و کلی زمان تولید کد رو کم می کنند.
نظرات مطالب
آشنایی با NHibernate - قسمت چهارم
روابط یک به چند و چند به چند رو در طی مقالات این سری توضیح دادم. باید وقت بگذارید این‌ها را مطالعه کنید (مواردی مانند one-to-many و many-to-many و غیره که ذکر شده به همین دلیل است).
یا اینکه می‌تونید از ابزار استفاده کنید: NHibernate Mapping Generator
نظرات مطالب
آشنایی با NHibernate - قسمت دوم
سلام
آقای نصیری عزیز

من هم مثل شما از Resharper به عنوان اجرا کننده های تست های NUnit استفاده می کنم ولی من در تست های Pass شده مثل شما Log مربوط به NHibernate رو نمی بینم فقط تست های fail رو میبینم. مخواستم ببینم تنظیم خواصی داره؟ اگه لطفا کنید راهنمایی کنید ممنون میشم.
نظرات مطالب
مزیت‌های استفاده از رویه‌های ذخیره شده؛ واقعیت یا توهم؟!
منم با آقای محبی موافقم.با این تفاوت که LINQ رو NHibernate ترجیح میدم.

با SP ها درسته که تقرایبا کار ها مدیریت بهتری دارن ولی مثلا زمانی که لازم باشه SP رو تغییر بدید باید خیلی چیز ها باز بینی بشن.

این مشکل وقتی با DataSet ها کار می کنی بیشتر هم میشه.

موفق باشید
نظرات مطالب
تفاوت بین Interface و کلاس Abstract در چیست؟
بله درست می‌فرمائید .
منتها پیاده سازی الگوی Repository فریم ورک Abp پر است از  ترکیب استفاده از Interface و Abstract !
در نظر بگیرید اگر بخواهیم رویکردی داشته باشیم تا از این الگو در انواع Orm‌ها و یا انواع دیتابیس‌ها استفاده کنیم استفاده از این رویکرد درست نیست؟
سناریوی زیر رو در نظر بگیرید :
public interface IRepositoryBase<TEntity> : IReadOnlyRepositoryBase<TEntity>
    where TEntity : class, IEntity
{
    Task<TEntity> InsertAsync([NotNull] TEntity entity);
    Task InsertManyAsync([NotNull] IEnumerable<TEntity> entities);
    Task<TEntity> UpdateAsync([NotNull] TEntity entity);
    Task UpdateManyAsync([NotNull] IEnumerable<TEntity> entities);
    // Todo InsertOrUpdate(TEntity entity);
    Task DeleteAsync([NotNull] TEntity entity);
    Task DeleteManyAsync([NotNull] IEnumerable<TEntity> entities);

}

public interface IRepositoryBase<TEntity, TKey> : IRepositoryBase<TEntity>, IReadOnlyRepositoryBase<TEntity, TKey>
    where TEntity : class, IEntity<TKey>
{
    Task DeleteAsync(TKey id);  //TODO: Return true if deleted
    Task DeleteManyAsync([NotNull] IEnumerable<TKey> ids);


}

مثلا در لایه MyFrameWork.Infratructure.EfCore  یه پیاده سازی پیش فرض از این اینترفیس‌ها در کلاس abstract EfCoreRepositoryBase داشته باشیم تا نخواهیم در کلاس‌های Repository بیزینس دامین مون هر سری یک سری متد‌ها رو پیاده سازی کنیم ؟ مثلا در IUserRepository