#AspMvc, #CMS, #Orchard, #MvcForum, #NopCommerce
سه سیستم که پیشنهاد میشود(نکته مهم: متن باز بودن این سه سیستم هستش):
Orchard -> وب سایت
MvcForum -> فروم
NopCommerce -> فروشگاه
جریان اختراع چرخ رو که میدونید... همون.
در زیر سه لینک مخزن قرار گرفته است:
https://github.com/OrchardCMS/Orchard
https://github.com/YodasMyDad/mvcforum
https://github.com/nopSolutions/nopCommerce/releases/
@IranAspMvc
سه سیستم که پیشنهاد میشود(نکته مهم: متن باز بودن این سه سیستم هستش):
Orchard -> وب سایت
MvcForum -> فروم
NopCommerce -> فروشگاه
جریان اختراع چرخ رو که میدونید... همون.
در زیر سه لینک مخزن قرار گرفته است:
https://github.com/OrchardCMS/Orchard
https://github.com/YodasMyDad/mvcforum
https://github.com/nopSolutions/nopCommerce/releases/
@IranAspMvc
#JsTree, #TreeView, #Plugin, #AspMvc
نمایش ساختار درختی با jsTree در Asp Mvc
https://www.jstree.com/jstree.png
یکی از بهترین پلاگین های نمایش ساختار درختی jsTree بوده (jstree.com) که قابلیت های زیر را دارا می باشد
Checkbox - ContextMenu - DragAndDrop - Search , ....
آموزش و اطلاعات بیشتر :
Use jsTree in Asp Mvc
https://goo.gl/sJP5Oz
Lazy-loading with jsTree in Asp Mvc
https://goo.gl/z1MPKc
jsTreeWrapper for Asp Mvc
https://jstreemvcwrapper.codeplex.com/
jsTree Sample using Asp Mvc
https://jstresample.codeplex.com
@IranAspMvc
نمایش ساختار درختی با jsTree در Asp Mvc
https://www.jstree.com/jstree.png
یکی از بهترین پلاگین های نمایش ساختار درختی jsTree بوده (jstree.com) که قابلیت های زیر را دارا می باشد
Checkbox - ContextMenu - DragAndDrop - Search , ....
آموزش و اطلاعات بیشتر :
Use jsTree in Asp Mvc
https://goo.gl/sJP5Oz
Lazy-loading with jsTree in Asp Mvc
https://goo.gl/z1MPKc
jsTreeWrapper for Asp Mvc
https://jstreemvcwrapper.codeplex.com/
jsTree Sample using Asp Mvc
https://jstresample.codeplex.com
@IranAspMvc
#DataGenerator, #TestData
تولید داده های آزمایشی برای تست کارایی
https://www.mockaroo.com/
https://www.generatedata.com/
@Iran Asp Mvc
تولید داده های آزمایشی برای تست کارایی
https://www.mockaroo.com/
https://www.generatedata.com/
@Iran Asp Mvc
Mockaroo
Mockaroo - Random Data Generator and API Mocking Tool | JSON / CSV / SQL / Excel
A free test data generator and API mocking tool - Mockaroo lets you create custom CSV, JSON, SQL, and Excel datasets to test and demo your software.
#SqlServer, #SqlProfiler
با Sql Profiler میتونین کوئری های اجرا شده روی Sql Server رو مشاهده کنین.
فرقی نمیکنه این کوئری ها دستی اجرا شده. یا توی sp یا توسط linq، توی profiler لاگ میشه
اینم آموزش استفاده ازش
https://www.mssqltips.com/sqlservertutorial/272/profiler-and-server-side-traces/
https://blog.sqlauthority.com/2009/08/03/sql-server-introduction-to-sql-server-2008-profiler-2/
@IranAspMvc
با Sql Profiler میتونین کوئری های اجرا شده روی Sql Server رو مشاهده کنین.
فرقی نمیکنه این کوئری ها دستی اجرا شده. یا توی sp یا توسط linq، توی profiler لاگ میشه
اینم آموزش استفاده ازش
https://www.mssqltips.com/sqlservertutorial/272/profiler-and-server-side-traces/
https://blog.sqlauthority.com/2009/08/03/sql-server-introduction-to-sql-server-2008-profiler-2/
@IranAspMvc
Journey to SQL Authority with Pinal Dave
SQL SERVER - Introduction to SQL Server 2008 Profiler - Complete - Journey to SQL Authority with Pinal Dave
Introduction SQL Server Profiler is a powerful tool that is available with SQL Server since a long time; however, it has mostly been underutilized by DBAs.
#AspMvc, #EntityFramework, #CodeFirst, #Project, #Sample, #Source,
سورس چندین پروژه مختلف که با Asp Mvc و EF و ... نوشته شده در زیر هست.
مرور کد هاش رو به همه پیشنهاد میدم. خیلی مفیده و میتونه بهتون ایده بده
سورس پروژه فروشگاه اینترنتی با AspMVC - EF CodeFirst
https://www.dotnettips.info/projects/details/22
https://github.com/rabbal/My-Golden-City-Shop
طراحی فریمورک برای کار با Asp.net MVC و EF به صورت NTier
https://www.dotnettips.info/projects/details/23
https://github.com/rabbal/Mvc5
سورس پروژه سیستم مدیریت سوابق آموزشی با Asp Mvc
https://www.dotnettips.info/projects/details/27
https://github.com/rabbal/Decision
سورس پروژه سامانه برگزاری مسابقات ورزشی با ASP.NET MVC و AngularJS
https://www.dotnettips.info/projects/details/26
https://github.com/MehdiSaeedifar/SportsSystem
سورس سیستم مدیریت محتوای IRIS
https://www.dotnettips.info/projects/details/13
https://github.com/MehdiSaeedifar/iriscms
سورس پروژه فروشگاه اینترنتی (الکترونیک) با معماری سه لایه
https://www.dotnettips.info/projects/details/2
@IranAspMvc
سورس چندین پروژه مختلف که با Asp Mvc و EF و ... نوشته شده در زیر هست.
مرور کد هاش رو به همه پیشنهاد میدم. خیلی مفیده و میتونه بهتون ایده بده
سورس پروژه فروشگاه اینترنتی با AspMVC - EF CodeFirst
https://www.dotnettips.info/projects/details/22
https://github.com/rabbal/My-Golden-City-Shop
طراحی فریمورک برای کار با Asp.net MVC و EF به صورت NTier
https://www.dotnettips.info/projects/details/23
https://github.com/rabbal/Mvc5
سورس پروژه سیستم مدیریت سوابق آموزشی با Asp Mvc
https://www.dotnettips.info/projects/details/27
https://github.com/rabbal/Decision
سورس پروژه سامانه برگزاری مسابقات ورزشی با ASP.NET MVC و AngularJS
https://www.dotnettips.info/projects/details/26
https://github.com/MehdiSaeedifar/SportsSystem
سورس سیستم مدیریت محتوای IRIS
https://www.dotnettips.info/projects/details/13
https://github.com/MehdiSaeedifar/iriscms
سورس پروژه فروشگاه اینترنتی (الکترونیک) با معماری سه لایه
https://www.dotnettips.info/projects/details/2
@IranAspMvc
#RestSharp, #HttpApi
Simple REST and HTTP API Client for .NET
کار با Api های Http در سی شارپ
خیلی وقتا میخوایم توی دات نت از Api سرویس های دیگه که به صورت Rest و تحت Http هستند استفاده کنیم.
مثلا Request هایی با متد (Get, Post, Delete, Put, Head, ...) به سرور ارسال کنیم و مثلا Response اون که به صورت Json هست رو بخونیم و ...
در حالت عادی باید از کلاس WebClient یا WebRequest , WebResponse استفاده کنیم که کد نویسی اون کمی سخت و دارای محدودیت هایی هست
پروژه RestSharp در سایت (https://restsharp.org/) که به صورت سورس باز در آدرس زیر قابل دسترسی است همین کار رو ساده کرده و براحتی می تونین از Api های Rest و Http توی دات نت استفاده کنین
https://github.com/restsharp/RestSharp
آموزش:
Part1
https://goo.gl/scOzSq
Part2
https://goo.gl/uvqilO
@IranAspMvc
Simple REST and HTTP API Client for .NET
کار با Api های Http در سی شارپ
خیلی وقتا میخوایم توی دات نت از Api سرویس های دیگه که به صورت Rest و تحت Http هستند استفاده کنیم.
مثلا Request هایی با متد (Get, Post, Delete, Put, Head, ...) به سرور ارسال کنیم و مثلا Response اون که به صورت Json هست رو بخونیم و ...
در حالت عادی باید از کلاس WebClient یا WebRequest , WebResponse استفاده کنیم که کد نویسی اون کمی سخت و دارای محدودیت هایی هست
پروژه RestSharp در سایت (https://restsharp.org/) که به صورت سورس باز در آدرس زیر قابل دسترسی است همین کار رو ساده کرده و براحتی می تونین از Api های Rest و Http توی دات نت استفاده کنین
https://github.com/restsharp/RestSharp
آموزش:
Part1
https://goo.gl/scOzSq
Part2
https://goo.gl/uvqilO
@IranAspMvc
GitHub
GitHub - restsharp/RestSharp: Simple REST and HTTP API Client for .NET
Simple REST and HTTP API Client for .NET. Contribute to restsharp/RestSharp development by creating an account on GitHub.
#EntityFramework, #EFCore, #First_level_cache
می دانیم در EF، هر entity پس از لود شدن، در کش سطح اول خود ذخیره میشود و از آن موقع به بعد، هر زمانیکه EF یک کوئری جهت بازگرداندن آن اِنتیتی اجرا کند، همیشه اِنتیتی ذخیره شده در کش واکشی میشود و EF هیچ تلاشی برای فهمیدن اینکه آیا آن داده ی کش شده با مقدار واقعیِ اجرایِ آن کوئری برابر است یا خیر نمیکند. به عبارت دیگر، اگر شما از طریق فرآیند دیگری دیتابیس را به روز کرده باشید، EF متوجه این قضیه نخواهد شد و این باعث ایجاد ناهماهنگی و مشکل خواهد شد.
اما در چنین سناریوهایی راه حل چیست؟
راه حل این است که در مواقعی که میدانیم داده ی مورد نظر از طریق فرآیند دیگری نیز قابل تغییر است و میخواهیم اِنتیتی کش شده را از دیتابیس لود کنیم، باید ابتدا آن را از طریق Detach کردن از کش سطح اول پاک کنیم و پس از آن با استفاده از متد Reload و به صورت صریح آن را دوباره لود نماییم.
MyEntity e = ...;
ctx.Entry(e).State = EntityState.Detached;
ctx.Entry(e).Reload();
قابل ذکر است که در EF Core متد Reload وجود ندارد و باید به طریق دیگری این مشکل رفع گردد.
منبع :
https://weblogs.asp.net/ricardoperes/entity-framework-pitfalls-entity-refresh
می دانیم در EF، هر entity پس از لود شدن، در کش سطح اول خود ذخیره میشود و از آن موقع به بعد، هر زمانیکه EF یک کوئری جهت بازگرداندن آن اِنتیتی اجرا کند، همیشه اِنتیتی ذخیره شده در کش واکشی میشود و EF هیچ تلاشی برای فهمیدن اینکه آیا آن داده ی کش شده با مقدار واقعیِ اجرایِ آن کوئری برابر است یا خیر نمیکند. به عبارت دیگر، اگر شما از طریق فرآیند دیگری دیتابیس را به روز کرده باشید، EF متوجه این قضیه نخواهد شد و این باعث ایجاد ناهماهنگی و مشکل خواهد شد.
اما در چنین سناریوهایی راه حل چیست؟
راه حل این است که در مواقعی که میدانیم داده ی مورد نظر از طریق فرآیند دیگری نیز قابل تغییر است و میخواهیم اِنتیتی کش شده را از دیتابیس لود کنیم، باید ابتدا آن را از طریق Detach کردن از کش سطح اول پاک کنیم و پس از آن با استفاده از متد Reload و به صورت صریح آن را دوباره لود نماییم.
MyEntity e = ...;
ctx.Entry(e).State = EntityState.Detached;
ctx.Entry(e).Reload();
قابل ذکر است که در EF Core متد Reload وجود ندارد و باید به طریق دیگری این مشکل رفع گردد.
منبع :
https://weblogs.asp.net/ricardoperes/entity-framework-pitfalls-entity-refresh
weblogs.asp.net
Entity Framework Pitfalls: Entity Refresh
After an entity is loaded by Entity Framework, it gets stored in its first level cache. After that, whenever EF executes a query that returns this entity, identified by its primary key, EF always …
Forwarded from طراحی و توسعه وب
توجه ❗️
زیاد هستند افرادی که با EF کار میکنند ! ولی فقط کار میکنند ؛ نه از پشت صحنه خبر دارند نه از کارایی کوئری های نازی که مینویسند که در نهایت این دوستان باعث میشوند که DBA های عزیز ، از Developer هایی که با EF کار میکنند به خوبی یاد کنند 😄
مسیر راه مربوط به کار با ORM مشهور Entity Framework :
https://www.dotnettips.info/learningpaths/details/2
همین الان شروع کنید ✅😊
#Entity_Framework #ORM #LearningPaths
@Webly
زیاد هستند افرادی که با EF کار میکنند ! ولی فقط کار میکنند ؛ نه از پشت صحنه خبر دارند نه از کارایی کوئری های نازی که مینویسند که در نهایت این دوستان باعث میشوند که DBA های عزیز ، از Developer هایی که با EF کار میکنند به خوبی یاد کنند 😄
مسیر راه مربوط به کار با ORM مشهور Entity Framework :
https://www.dotnettips.info/learningpaths/details/2
همین الان شروع کنید ✅😊
#Entity_Framework #ORM #LearningPaths
@Webly
#Bootstrap, #Popover, #Plugin
نمایش Ajax ای یک Partial View در Popover بوت استرپ 3
https://goo.gl/vPS6qo
#IranAspMvc
نمایش Ajax ای یک Partial View در Popover بوت استرپ 3
https://goo.gl/vPS6qo
#IranAspMvc
#EntityFramework #Performance #SpeedUp
راه های افزایش سرعت و پرفرمنس Entity Framework
—------------------------------
این باعث میشه که ChangeTracker غیر فعال بشه و برای مواقع Select نمایشی به درد میخوره.
db.Configuration.AutoDetectChangesEnabled = false;
—------------------------------
این درستور هم اخر کوئری هاتون میتونین بنویسید. کار همین بالایی رو انجام میده
db.Users.Select(p => p).AsNoTracking();
—------------------------------
این درستور Validation اعتبارسنجی توکار EF رو غیر فعال میکنه. زمانی از این استفاده کنین که از صحت اطلاعاتتون مطمئن هستید.
db.Configuration.ValidateOnSaveEnabled = false;
—------------------------------
استفاه از Skip و Take جهت صفحه بندی هم باید حواستون باشه
—------------------------------
دونستن فرق بین IQueryable و IEnumerable و اینکه چگونه ازشون استفاده کنیم هم خیلی مهمه (نکته : تمامی فیلتر های where رو قبل از .ToList انجام بدید)
https://www.dotnettips.info/Post/473
—------------------------------
فقط فیلد هایی که نیاز دارین رو توی Select بیارین نه همه فیلد ها
db.Users.Select(p => new { p.Id, p.Username, p.Fullname });
—------------------------------
از چندین dbContext استفاده نکنیم. از الگوی One Context Per Request استفاده کنیم.
—------------------------------
استفاده به جا از Eager loading و Lazy loading هم خیلی مهمه
https://www.dotnettips.info/post/840
—------------------------------
در تراکنش های بالا هر از چندگاهی Context مون رو Dispose کنیم و یا Context جدید ایجاد کنیم. به دلیل ذخیره شدن تمام تراکنش ها در حافظه در تراکنش های بالا با مشکل کمبود حافظه و کندی سرعت مواجه میشوید
—------------------------------
برای افزودن تعداد رکور بالا به صورت همزمان بهتره از BulkInsert استفاده کنین
چندین پلاگین برای اینکار وجود داره. از جمله :
EntityFramework.BulkInsert
EntityFramework.Extended
EntityFramework.Utilities
که بهترین اون ها EntityFramework.BulkInsert هست
https://goo.gl/hXxLvI
—------------------------------
منابع :
https://goo.gl/QW2CBW
https://goo.gl/1ACSwA
https://goo.gl/15ArJO
@IranAspMvc
راه های افزایش سرعت و پرفرمنس Entity Framework
—------------------------------
این باعث میشه که ChangeTracker غیر فعال بشه و برای مواقع Select نمایشی به درد میخوره.
db.Configuration.AutoDetectChangesEnabled = false;
—------------------------------
این درستور هم اخر کوئری هاتون میتونین بنویسید. کار همین بالایی رو انجام میده
db.Users.Select(p => p).AsNoTracking();
—------------------------------
این درستور Validation اعتبارسنجی توکار EF رو غیر فعال میکنه. زمانی از این استفاده کنین که از صحت اطلاعاتتون مطمئن هستید.
db.Configuration.ValidateOnSaveEnabled = false;
—------------------------------
استفاه از Skip و Take جهت صفحه بندی هم باید حواستون باشه
—------------------------------
دونستن فرق بین IQueryable و IEnumerable و اینکه چگونه ازشون استفاده کنیم هم خیلی مهمه (نکته : تمامی فیلتر های where رو قبل از .ToList انجام بدید)
https://www.dotnettips.info/Post/473
—------------------------------
فقط فیلد هایی که نیاز دارین رو توی Select بیارین نه همه فیلد ها
db.Users.Select(p => new { p.Id, p.Username, p.Fullname });
—------------------------------
از چندین dbContext استفاده نکنیم. از الگوی One Context Per Request استفاده کنیم.
—------------------------------
استفاده به جا از Eager loading و Lazy loading هم خیلی مهمه
https://www.dotnettips.info/post/840
—------------------------------
در تراکنش های بالا هر از چندگاهی Context مون رو Dispose کنیم و یا Context جدید ایجاد کنیم. به دلیل ذخیره شدن تمام تراکنش ها در حافظه در تراکنش های بالا با مشکل کمبود حافظه و کندی سرعت مواجه میشوید
—------------------------------
برای افزودن تعداد رکور بالا به صورت همزمان بهتره از BulkInsert استفاده کنین
چندین پلاگین برای اینکار وجود داره. از جمله :
EntityFramework.BulkInsert
EntityFramework.Extended
EntityFramework.Utilities
که بهترین اون ها EntityFramework.BulkInsert هست
https://goo.gl/hXxLvI
—------------------------------
منابع :
https://goo.gl/QW2CBW
https://goo.gl/1ACSwA
https://goo.gl/15ArJO
@IranAspMvc
.NET Tips
تفاوت بین IQueryable و IEnumerable در حین کار با ORMs
متد زیر را که یکی از اشتباهات رایج حین استفاده از LINQ خصوصا جهت Binding اطلاعات است، در نظر بگیرید:IQueryable GetCustomers()این متد در حقیقت هیچ چیزی را Get نمیکند! نام اصلی آن GetQueryableCustomers و یا GetQueryObjectForCustomersاست.IQueryable قلب LINQ…
#MaterialDesign, #Bootstrap
بهترین تم های متریال دیزاین که بر پایه بوتسترپ طراحی شده اند
https://cdn.drivenlocal.com/wp-content/uploads/2015/10/Material-design.jpg
https://materializecss.com/
https://mdbootstrap.com/
https://materializecss.com/
https://fezvrasta.github.io/bootstrap-material-design/
@IranAspMvc
بهترین تم های متریال دیزاین که بر پایه بوتسترپ طراحی شده اند
https://cdn.drivenlocal.com/wp-content/uploads/2015/10/Material-design.jpg
https://materializecss.com/
https://mdbootstrap.com/
https://materializecss.com/
https://fezvrasta.github.io/bootstrap-material-design/
@IranAspMvc
#MaterialDesign, #جالب
نمونه صفحه 404 با طراحی متریال Material
https://codepen.io/rennan/pen/ACBKu
@IranAspMvc
نمونه صفحه 404 با طراحی متریال Material
https://codepen.io/rennan/pen/ACBKu
@IranAspMvc
#XSS, #Security
مقابله با حملات XSS در AspNet (یک بار برای همیشه)
https://www.acunetix.com/wp-content/uploads/2013/08/Diagram-Describing-Blind-XSS-Attack.gif
حملات XSS که مخفف Cross Site Scripting هست به معنی تزریق اسکریپت غیر مجاز توسط هکر توی صفحه ای که توسط دیگران دیده میشه
حالا این حمله کی اتفاق می افته؟ مثلا وقتی هکر بتونه توی قسمت ثبت نظرات مقداری کد جاواسکریپتی یا ... تزریق کنه که مثلا کار این کد کرش کردن صفحه یا دزدین کوکی های کاربر هست.
حالا هر کاربری که بیاد و نظرات روببینه، کد های تزریق شده توسط هکر روی مرورگر اون کاربر اجرا میشه و به ... میره
خود AspNet به صورت پیشفرض جلوی هرگونه تزریق رو توی input های صفحه میگیره.
ولی از طرفی وقتی یک text editor مثل ckeditor یا tiny mce میگذاریم توی صفحه برای ارسال نظر، واسه اینکه امکان ارسال تگ های html باشه باید خاصیت AllowHtml روبه Property مورد نظر بدین یا خاصیت ValidateInput اون Action رو برابر false قرار بدین
در این صورت در ارسال تگ های html و script از سمت کاربر به سرور هیچ محدودیتی اعمال نمیشه.
خب بعضی جا ها خوبه مثلا موقع ثبت نظر باید بتونه تگ های html وارد بشه ولی فقط بعضی از تگها مثل <b> ، <i> ، <br/> و .. (ولی تگ هایی مثل style - script و یا iframe نباید مجاز باشه)
برای حل این مشکل ماکرسافت کتابخانه سورس بازی رو ارائه کرده که در آدرس زیر می بینید
https://wpl.codeplex.com/
با استفاده از این library میتونین تگ های html و script ها رو حذف کنین. و یا یک سری تگ ها رو مجاز و بقیه تگ ها رو غیر مجاز اعلام کنین.
و برای اینکه خیال خودتون رو از این حمله راحت کنین بهتره این آموزش رو هم مطالعه کنین
https://goo.gl/bI7K17
@IranAspMvc
مقابله با حملات XSS در AspNet (یک بار برای همیشه)
https://www.acunetix.com/wp-content/uploads/2013/08/Diagram-Describing-Blind-XSS-Attack.gif
حملات XSS که مخفف Cross Site Scripting هست به معنی تزریق اسکریپت غیر مجاز توسط هکر توی صفحه ای که توسط دیگران دیده میشه
حالا این حمله کی اتفاق می افته؟ مثلا وقتی هکر بتونه توی قسمت ثبت نظرات مقداری کد جاواسکریپتی یا ... تزریق کنه که مثلا کار این کد کرش کردن صفحه یا دزدین کوکی های کاربر هست.
حالا هر کاربری که بیاد و نظرات روببینه، کد های تزریق شده توسط هکر روی مرورگر اون کاربر اجرا میشه و به ... میره
خود AspNet به صورت پیشفرض جلوی هرگونه تزریق رو توی input های صفحه میگیره.
ولی از طرفی وقتی یک text editor مثل ckeditor یا tiny mce میگذاریم توی صفحه برای ارسال نظر، واسه اینکه امکان ارسال تگ های html باشه باید خاصیت AllowHtml روبه Property مورد نظر بدین یا خاصیت ValidateInput اون Action رو برابر false قرار بدین
در این صورت در ارسال تگ های html و script از سمت کاربر به سرور هیچ محدودیتی اعمال نمیشه.
خب بعضی جا ها خوبه مثلا موقع ثبت نظر باید بتونه تگ های html وارد بشه ولی فقط بعضی از تگها مثل <b> ، <i> ، <br/> و .. (ولی تگ هایی مثل style - script و یا iframe نباید مجاز باشه)
برای حل این مشکل ماکرسافت کتابخانه سورس بازی رو ارائه کرده که در آدرس زیر می بینید
https://wpl.codeplex.com/
با استفاده از این library میتونین تگ های html و script ها رو حذف کنین. و یا یک سری تگ ها رو مجاز و بقیه تگ ها رو غیر مجاز اعلام کنین.
و برای اینکه خیال خودتون رو از این حمله راحت کنین بهتره این آموزش رو هم مطالعه کنین
https://goo.gl/bI7K17
@IranAspMvc
#SEO, #MetaTag
مثال کامل استفاده از MetaTag های "og" ا (open graph protocol) جهت افزایش SEO سایت
https://github.com/niallkennedy/open-graph-protocol-examples
@IranAspMvc
مثال کامل استفاده از MetaTag های "og" ا (open graph protocol) جهت افزایش SEO سایت
https://github.com/niallkennedy/open-graph-protocol-examples
@IranAspMvc
#EntityFramework, #Repostiry, #UnitOfWork
فایده الگوی Repository (مخزن) جدا سازی لایه ی منطق (Bl) توی پروژه است. یعنی اینکه منطق پروژتون وابسته به ORM یا روش خاصی نیست و توی ریپوسیتوری میتونین اون رو تغییر بدین و توی کل پروژه هم تاثیری نگذاره
فایده الگوی UnitOfWork (واحد کار) جدا سازی Context پروژه است. یعنی ایکه دیگه مثلا حتما الزامی به استفاده از dbContext EF توی پروژه نیست و هروقت خواستین میتونین context رو توی IUnitOfWork عوض کنین و توی پروژه هم تاثیری نگذاره
این که توی پروژه ای که EF استفاده میکنیم، الگوی Repistory یا UnitOfWork رو استفاده بکنیم یا نه. همیشه بین علما اختلاف نظر بوده و هست. و البته بیشتر بر میگرده به نیاز های سیستم تون در آینده...
اینم بگم که عدم استفاده از repostiry و unitofwork در EF (باز هم با توجه به اختلاف نظر علما) اشکالی نداره
اطلاعات بیشتر
https://www.thereformedprogrammer.net/is-the-repository-pattern-useful-with-entity-framework/
@IranAspMvc
فایده الگوی Repository (مخزن) جدا سازی لایه ی منطق (Bl) توی پروژه است. یعنی اینکه منطق پروژتون وابسته به ORM یا روش خاصی نیست و توی ریپوسیتوری میتونین اون رو تغییر بدین و توی کل پروژه هم تاثیری نگذاره
فایده الگوی UnitOfWork (واحد کار) جدا سازی Context پروژه است. یعنی ایکه دیگه مثلا حتما الزامی به استفاده از dbContext EF توی پروژه نیست و هروقت خواستین میتونین context رو توی IUnitOfWork عوض کنین و توی پروژه هم تاثیری نگذاره
این که توی پروژه ای که EF استفاده میکنیم، الگوی Repistory یا UnitOfWork رو استفاده بکنیم یا نه. همیشه بین علما اختلاف نظر بوده و هست. و البته بیشتر بر میگرده به نیاز های سیستم تون در آینده...
اینم بگم که عدم استفاده از repostiry و unitofwork در EF (باز هم با توجه به اختلاف نظر علما) اشکالی نداره
اطلاعات بیشتر
https://www.thereformedprogrammer.net/is-the-repository-pattern-useful-with-entity-framework/
@IranAspMvc
#Alert, #Plugin, #jQuery
پلاگین زیبا جهت نمایش پیام
https://craftpip.github.io/jquery-confirm/
@IranAspMvc
پلاگین زیبا جهت نمایش پیام
https://craftpip.github.io/jquery-confirm/
@IranAspMvc
#ClockPicker, #TimePicker, #Plugin,
پلاگین زیبا برای انتخاب زمان با تم Bootstrap
https://weareoutman.github.io/clockpicker/
@IranAspMvc
پلاگین زیبا برای انتخاب زمان با تم Bootstrap
https://weareoutman.github.io/clockpicker/
@IranAspMvc