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
#Utility
متد کمکی نام دهی فایل ها در سرور جهت ذخیره سازی

کلاس زیر که حاوی دو Extension Method هست بهتون در نام دهی فایل های اپلودی از کاربر به سمت سرور جهت ذخیره سازی کمک میکنه
مواردی که در نام گزاری باید رعایت شود.
1- تکراری نبودن نام ها جهت جلوگیری از overwrite شدن فایل ها
2- بهتره نام خود فایل استفاده بشه بجای اینکه از یک عدد یا متن random مثل GUID استفاده بشه (توی سئو تاثیر داره)
3- جهت نظم بیشتر فایل ها بهتره در پوشه های جداگانه سال/ماه/روز ذخیره بشه
متد کمکی کلاس زیر همه این موارد رو مدیریت میکنه و در صورت تکراری بود به سبک نام گذاری ویندوز یک (عدد) بهش اضافه میکنه
مثال:
/Images/1394/11/19/test.jpg
/Images/1394/11/19/test (2).jpg

طرز استفاده ازش هم به این صورته
GetFileName("yourFilename", "pathToSave", ["stringFormatOfDate"])
مثال —---------------—
GetFileName("test.jpg", "uploadfiles/post/images")
خروجی:
\uploadfiles\post\images\1394\11\19\test.jpg
پیشرفته تر —---------
GetFileName("test.jpg", "uploadfiles/post/images", "yy/MM")
خروجی:
\uploadfiles\post\images\94\11\test.jpg

خروجی هم که میده Absolute Path هست و مناسب و آماده ذخیره سازی فایل در این آدرس

@IranAspMvc
چه مقدار از امکانات #VisualStadio 2015 را می شناسید ؟
https://goo.gl/FKKfPK

Languages :
C# - VB NET - F#
C++
ASP NET
HTML
JavaScript - EcmaScript 6 support
CSS
LESS - SASS
JSON
Node.js
PHP
Python
CoffeeScript
TypeScript
Othere : YAML - Dart - Markdown - Windows PowerShell

Client Side Frameworks :
Apache Cordova
Angular js
React js
Bootstrap CSS
Aurelia
Knockout js
Othere : Backbone - Durandal - Ionic - Ember - Breeze

Package Managers :
NuGet - Bower - npm

Task runners :
Grant - Gulp

Testing :
Unit Test - UI Test
Performance Test - Load Test

====================
https://webtooling.visualstudio.com/languages/

@IranAspMvc
#ImageMagick
کار با تصاویر در دات نت (Convert, Compress, Resize, Crop Images)
https://goo.gl/68LgDx

چندی پیش در مورد بهینه و فشرده سازی تصاویر برای استفاده در وب صبحت کردیم.
یکی از بهترین و بزرگترین کتابخانه های کار با تصاویر Image Magick می باشد
https://www.imagemagick.org/
که لایبرری تحت دات نت آن Magick .Net نام دارد
https://magick.codeplex.com/
و که توسط این کتابخانه که بیش از 100 نوع فرمت تصویری را پشتیبانی میکند میتوان کار های زیر را با تصاویر انجام داد
Convert : تبدیل فرمت تصاویر,
Compress : فشرده و بهینه سازی تصاویر,
Resize : تغییر سایز تصاویر,
Crop : برش تصاویر
Flip, Mirror, Rotate, Distort, Shear and transform images, Adjust image colors, Apply various special effects, Draw text, Lines, polygons, Ellipses
فانکشن های این کتابخانه از طریق Command Line در درسترس و قابل استفاده بوده و علاوه بر آن برای بیش از 18 زبان برنامه نویسی از جمله دات نت، لایبرری منتشر کرده است
این کتابخانه سورس باز بوده و در آدرس مخزن کد زیر قرار دارد
https://github.com/ImageMagick/ImageMagick
آموزش استفاده در دات نت :
https://goo.gl/tWB2D1
آموزش تغییر سایز (resize) کردن تصاویر در دات نت
https://goo.gl/NKPYUg

@IranAspMvc
#EntityFramework, #CodeFirst, #Relation
رفع مشکل کلید خارجی در EntityFramework CodeFirst به هنگام ایجاد Relation

توی Entity Framework Code First وقتی از Navigation Property ها استفاده میکنین در واقع ef میفهمه که یک Relation بر قرار کردید. و خودش فیلدی برای Foreingkey با نام زیر در جدول اضافه میکنه
yourfield_ID
حال اگر خودتون به صورت دستی خصوصتی در کلاس مورد نظر به عنوان کلید خارجی تعریف کردید. حتما باید برای EF مخشص کنید که این Property همان Foreignkey مربوط به Relation شماست تا دیگر خود EF فیلدی را به عنوان Foriegnkey در جدول اضافه نکند
برای مشخص کردن کلید خارجی در EF 2 راه دارید.
1- استفاده از ForeignKey Attribute مثال :
public class Books
{
public int CategoryId { get; set; } //Foreign key
[ForeignKey("CategoryId")]
public Category Category { get; set; }
}
2- استفاده از Fluetn Api مثال :
modelBuilder.Entity<Book> ()
.HasRequired(p => p.Category)
.WithMany(p => p.Books)
.HasForeignKey(p => p.CategoryId);
نکته اینکه کد های fluent api باید در متد OnModelCreating نوشته شود.

@IranAspMvc
#GoogleMap, #Leaflet, #CkEditor
استفاده از گوگل مپ در ویرایشگر متنی تحت وب CkEditor
https://goo.gl/KrD0iP

یکی از بهترین و کامل ترین پلاگین های کار با GoogleMap پلاگین Leaflet می باشد. و مزیت اون سازگاری کامل با موبایل هست
https://leafletjs.com/
این کتابخانه سورس باز بوده و در آدرس زیر دردسترس است
https://github.com/Leaflet/Leaflet
و اما همین پلاگین رو برای ویرایشگر متنی CkEditor نوشته شده و این امکان رو به شما میده که داخل ckeditor مپ جدید ای ایجاد کنین
https://ckeditor.com/addon/leaflet
نمونه:
https://www.ranelpadon.com/sites/all/libraries/ckeditor/plugins/leaflet/demo/index.html

@IranAspMvc
#Bootstrap #Foundation #Skeleton

مقایسه 3 فریمورک bootstrap, foundation, skeleton

https://responsive.vermilion.com/compare.php

@IranAspMvc
#Concurrency , #EntityFramework
چه کسی زودتر ظرف میوه را بر می دارد ؟! (همزمانی / Concurrency)
https://www.codeproject.com/KB/aspnet/6WaysLock/1a.JPG

یکی از مواردی که در پروژه های بزرگ حائز اهمیت است مبحث Concurrency یا همزمانی می باشد
فرض کنید دو نفر همزمان از یک حساب بانکی می خواهند پول برداشت کنند و موجودی 200 تومان است
هر دو کارت بانکی خود را وارد کرده و موجودی 200 تومان را مشاهده میکنند. اولی 200 تومان برداشت میکند. و دومی نیز درخواست برداشت 200 تومان از حساب را انجام میدهد
در اینجا باید شرطی گذاشت که اگر موجودی همچنان 200 تومان هست اجازه برداشت به دومی صادر شود و اگر موجودی فعلی 0 شده اجازه برداشت صادر نشود. که در غیر این صورت سیستم بانکی 200 تومان ضرر خواهد کرد.
اگر بخواهیم فنی بررسی کنیم. برنامه نویس ما، برای ویرایش حساب بانکی، علاوه بر آیدی حساب، موجودی فعلی که درزمان ویرایش وجود داشته را به سمت سرور پاس میدهد که در صورت صحت هر دو شرط عملیات آپدیت وانجام شود.
اینجاست شرط عملیات ما صرفا بر پایه آیدی نبوده و شامل پارامتر های دیگری نیز می شود.
مشابه همین مثال در ویرایش همزمان یک پست در یک وبسایت ممکن است رخ دهد
برای حل این مشکل (همزمانی) باید از روش بالا که توضیح داده شد. و یا روش دیگری که Entity Framework تعبیه کرده است به نام RowVersion استفاده کرد
در این روش یک ستون به نام RowVersion که نوع آن byte[] است به جدول شما اضافه میشود. که این فیلد به صورت افزایشی و غیر تکراری به طور خودکار توسط EF مقدار دهی شود
در واقع با هر بار اپدیت این فیلد مقدار جدیدی میگیرد. نشان میدهد که مقادیر این سطر تغییر یافته است. پس به شخص دیگری که در حال آپدیت کردن همین سطر است هشدار میدهد که شخص دیگری همزمان با شما این سطر را ویرایش کرده است. دیگر اجازه ویرایش نمیدهد. همچنین میتوان مقادیر جدید را به شخص نشان داد و یا اینکه چه کسی آن را ویرایش کرده است

آموزش :
https://goo.gl/3LvklT
https://goo.gl/qekRho

@IranAspMvc
Forwarded from Iran .Net
Forwarded from Iran .Net
تیم ASP.NET انقلابی به پا کرده اند. آخرین پلتفرم آن ها (ASP.NET Core) در تست های این تیم توانسته است تعداد 1.15 میلیون درخواست را در یک ثانیه مدیریت کرده و پاسخ دهد.
این در صورتی است که نسخه ASP.NET 4.6، بر روی همان سخت افزار تنها توانسته است 0.05 میلیون درخواست را در ثانیه پاسخ دهد.
این یعنی چیزی در حدود 2300 درصد افزایش قدرت پاسخگوییِ پلتفرم محبوب ما! 👍
#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