DotNetZoom
2.95K subscribers
342 photos
18 videos
36 files
606 links
DotNetZoom
💎 Everything about .NET

ارتباط با مدیر و تبلیغات آگهی استخدام:
@mjebrahimi

لینک گروه ASPNET Core:
https://t.iss.one/+ufG25x7lVFgyYTNk
Download Telegram
#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
#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
#Loadding

مجموعه ای از Loading های زیبا و مدرن

https://tobiasahlin.com/spinkit/

@IranAspMvc
#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
#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
کانال دانستنی های دات نت
https://telegram.me/IranDotNet
#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
Forwarded from طراحی و توسعه وب
توجه ❗️

زیاد هستند افرادی که با 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
#SEO

یک سایت خوب برای آنالیز سایت شما از لحاظ SEO

https://seolisa.ir/

@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
#MaterialDesign, #جالب

نمونه صفحه 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
#SEO, #MetaTag

مثال کامل استفاده از 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
#Alert, #Plugin, #jQuery

پلاگین زیبا جهت نمایش پیام

https://craftpip.github.io/jquery-confirm/

@IranAspMvc
#ClockPicker, #TimePicker, #Plugin,

پلاگین زیبا برای انتخاب زمان با تم Bootstrap

https://weareoutman.github.io/clockpicker/

@IranAspMvc