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

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

لینک گروه ASPNET Core:
https://t.iss.one/+ufG25x7lVFgyYTNk
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
#زنگ_تفریح
تعارف من و دوستم واسه گرفتن پروژه 😂😂😂
@IranAspMvc
#اطلاعات_عمومی
https://goo.gl/rqVHxG

ا1⃣ Lucene یه سرچ انجین هست که توسط جاوا نوشته شده
ا2⃣ Solr یه سرچ فریمورک هست که بر روی Lucene نوشته شده و از Elastic قدیمی تره
ا3⃣ Elastic Search یه سرچ فریمورک دیگه هست که اونم بر روی Lucene نوشته شده و در جهت بهبود و رفع کم و کاستی های Solr نوشته شده
همشونم با جاوا هستند
مقایسه کامل Solr و Elastic
https://solr-vs-elasticsearch.com/

آموزش Lucene.Net برای استفاده Lucene Search Engine در دات نت
https://www.dotnettips.info/learningpaths/details/18

منابع :
https://en.wikipedia.org/wiki/Apache_Lucene
https://lucene.apache.org/core/

https://en.wikipedia.org/wiki/Apache_Solr
https://lucene.apache.org/solr/

https://en.wikipedia.org/wiki/Elasticsearch
https://www.elastic.co/products/elasticsearch

https://stackoverflow.com/questions/15704644/difference-between-solr-and-lucene
https://stackoverflow.com/questions/10213009/solr-vs-elasticsearch

کانال تخصصی AspMvc
@IranAspMvc
#SEO #UrlRewrite #UrlFirendly #WebForm #درخواستی_کاربر
https://goo.gl/enm9yj

توی وب فرم واسه تغییر url های سایت به url های کاربر پسند یا همون seo friendly که یکی از الزامات SEO نیز هست روش های زیادی وجود داره که اصطلاحا بهش میگن url rewrite

1⃣ روش اول : استفاده از پکیج Microsoft.AspNet.FriendlyUrls
آموزش :
https://goo.gl/614yzi
https://goo.gl/F9Jz0R
مثال :
https://github.com/devcurry/friendly-urls-webforms

2⃣ روش دوم : استفاده از UrlRouting خود Asp که از ورژن 3.5 به بعد به دات نت اضافه شد
https://goo.gl/eK0NMg
مثال :
https://goo.gl/y1skpl

3⃣ روش سوم : استفاده از ماژول UrlRewriteModule در IIS (که ملزم IIS 7 به بالا و نصب بودن این ماژول روی iis هست)
آموزش :
https://goo.gl/Q1gYN1
دانلود ماژول :
https://goo.gl/4hdeQz (x64)
https://goo.gl/XGXXAn (x86)

4⃣ روش های دیگر :
https://www.urlrewriting.net/
https://www.isapirewrite.com/
مقالات دیگر :
https://www.iis.net/learn/extensions/url-rewrite-module

@IranAspMvc
#Learning #Resources #Video
https://goo.gl/oO8h0h

یکی از سوالات و درخواست هایی که به صورت مکرر از طرف توسعه دهندگانِ تازه کار مطرح می شود، درخواستِ معرفی منابع و مراجع مفید برای آغاز یادگیری است.

اگر شما نیز جزو آن دسته از توسعه دهندگانی هستید که به تازگی وارد دنیای شیرین و جذاب برنامه نویسی شده اید و با انرژی و انگیزه ی زیاد و البته هدفی مشخص(!) قصد پیشرفت در این مسیرِ پر پیچ و خم را دارید، بعد از تعیین گرایش و یافتن حوزه ی مورد علاقه ی خود، در قدم اول باید منابع خوب و متناسب با نیاز را شناسایی و نسبت به یادگیری اقدام نمایید.

متاسفانه و یا خوشبختانه ماهیت این حرفه، تعدد تکنولوژی ها و نیز سرعت بالای تغییر و تحولات، این نیاز را حتی برای توسعه دهندگان با تجربه نیز ایجاد کرده است که از هر زمانِ آزاد برای یادگیری و به روز نمودنِ دانش خود استفاده نمایند. بنابراین آگاهی از انواع منابع و مراجعِ خوب و به روز میتواند برای عموم توسعه دهندگان در تمامی سطوح امری ضروری باشد.

اگر یکی از روش های خوب برای یادگیریِ زبان و یا تکنولوژی های جدید را آموزش های آنلاین و ویدئویی بدانیم، در چند سال اخیر خوشبختانه تعداد سایت های ارائه دهنده ی این آموزش ها رو به افزایش است. چند نمونه از معروف ترین و بهترین منابع آنلاین به قرار زیر است:

ا Pluralsight
اغراق نیست اگر این سایت را یکی از بهترین سایت های آموزش آنلاین موجود بدانیم. حضور چهره های معروف و با سابقه همچون جولی لِرمن(اِنتیتی فریم ورک) ، جان پاپا(اَنگیولار) و ... به عنوان مدرسان این سایت از مزیت های عمده ی آن است. هر چند استفاده از آموزش های این سایت رایگان نیست ولی توسعه دهندگان مایکروسافت که عضو برنامه ی Visual Studio Dev Essentials باشند، می توانند به مدت 3 ماه از آموزش های آن به صورت رایگان استفاده کنند.
https://www.pluralsight.com/

ا Lynda
لیندا نیز از منابعی است که دارای آموزش های خوب و به روزی است و به مباحث زیاد و متنوعی پرداخته است. هرچند لیندا را رقیبی برای پلورال سایت می دانند و کیفیت بالای آموزش های آن، تصدیق کننده ی این موضوع است، اما برخی آموزش های آن، به بیان جزئیات کمتری پرداخته و برای درکِ عمیقِ بعضی مباحث، پلورال سایت گزینه ی مناسب تری است.
https://www.lynda.com

ا uDemy
از دیگر منابع بسیار ارزشمند و گسترده در تمامی حوزه ها سایت یودمی است. این سایت نیز از آموزش ها و مدرسان خوبی برخوردار است و طی سال های اخیر طرفداران زیادی در سطوح مختلف از مبتدی تا پیشرفته پیدا کرده است.
https://www.udemy.com/

اCode School
کُد اِسکول را برادر کوچک pluralsight میدانند. هر چند منابع آن نسبت به پلورال سایت بسیار محدود تر است، اما آموزش های خوبی را در حوزه ی تکنولوژی های وب ارائه کرده است.
https://www.codeschool.com/

ا Microsoft Virtual Academy
شاید کمتر توسعه دهنده ای باشد که در حوزه ی دات نت فعالیت کند و با آکادمی مجازی مایکروسافت و آموزش های رایگان و عالی آن آشنا نباشد. ولی خب همان طور که از نام آن پیداست این آموزش ها مختص اکوسیستم مایکروسافت است و منابع آن به نسبت محدودتر هستند.
https://mva.microsoft.com

سایر سایت های آموزش آنلاین:
* Khan Academy
* Udacity
* edX

لینک زیر علاوه بر معرفی منابع آنلاین ذکر شده، به شرح انواع دیگر منابع و مراجع به صورت کامل پرداخته که مطالعه و بررسی آن به خصوص برای تازه کاران بسیار توصیه می شود:

https://rion.io/2016/11/04/hello-world-learning-resources-for-new-and-potential-developers/

@IranAspMvc
#EF , #EntityFramework , #LazyLoading , #EagerLoading

مساله ی Select N+1 چیست و چطور باعث کاهش کارایی ORM می شود؟

استفاده از تکنولوژی های جدید به همان اندازه که میتواند به کمک توسعه دهنده بیاید و یک کدنویسیِ راحت و لذت بخش را برای وی رقم بزند، به همان اندازه هم در اثر دانش کم و استفاده ی نادرست می تواند مخرب باشد، مخصوصا اگر موضوعِ تکنولوژی، ارتباط مستقیمی با پرفرمنس و کارایی برنامه ی شما داشته باشد.

یکی از مشکلات و خطاهای رایج در استفاده از EF، خطای select n+1 است، که به وفور در کدهای توسعه دهندگانِ ناوارد یافت می شود. به این معنی که شما به جای اجرای یک کوئری، n+1 کوئری را اجرا میکنید و در نتیجه ی آن، n+1 رفت و برگشت به بانک اطلاعاتی خواهید داشت! و این مشکل به دلیل فعال بودن خاصیت lazy loading و اجرای حلقه روی مجموعه ای از داده ها که دارای رابطه ی master-detail هستند، اتفاق می افتد. به عنوان مثال تصور کنید یک کلاس Department داریم و هر دپارتمان هم تعدادی Course دارد:

public class Department

    {

        ....

        public virtual ICollection<Course> Courses { get; set; }

    }


public class Course

    {

        ....

        public virtual Department Department { get; set; }

    }


در این صورت، با اجرای حلقه ی زیر و فعال بودن خاصیت lazy loading مشکل select n+1 به وجود می آید:

using (var context = new SchoolEntities())

{

  foreach (var department in context.Departments)

  {

    foreach (var course in department.Courses)

    {

      Console.WriteLine("{0}: {1}", department.Name, course.Title);

    }

  }

}


بنابراین، در حالتی که با تعداد بالایی داده رو به رو باشیم، استفاده ی نادرست از lazy loading به شدت روی پرفرمنس تاثیر گذار است. راه حل این مشکل استفاده از متد Include برای اعمالِ جوینِ بین جدوال است، تا اطلاعاتِ موجودیت های مرتبط به صورت همزمان و از طریق Eager loading واکشی شوند:

using (var context = new SchoolEntities())

{

  foreach (var department in context.Departments.Include("Courses"))

  {

    foreach (var course in department.Courses)

    {

      Console.WriteLine("{0}: {1}", department.Name, course.Title);

    }

  }

}


در این حالت فقط یک رفت و برگشت به بانک اطلاعاتی خواهیم داشت و EF خودش Join لازم را برای واکشیِ اطلاعاتِ مرتبط، در پشت صحنه انجام می دهد.

اطلاعات بیشتر:
https://www.codeproject.com/Articles/102647/Select-N-Problem-How-to-Decrease-Your-ORM-Perfor

@IranAspMvc
Forwarded from سکان آکادمی
تفسیر آیه ی ویل للمطففین از کتاب الهی در حوزه ی توسعه ی نرم افزار
یکی از چیزهایی که در قرآن مجید به کرات نسبت به آن هشدار داده شده و شدیداً مورد تقبیح قرار گرفته است چیزی است تحت عنوان کم فروشی تا جایی که یک سوره ی کامل به نام «مطففین» به این مبحث اختصاص داده شده است. جالب است وقتی صحبت از کم فروشی به میان می آید، خیلی از افراد به فکر بقالی، قصابی، لبنیات فروشی و سایر مشاغل مشابه می‌افتند که سر و کارشان با ترازو است و مثلاً اگر شما یک کیلو گوشت بخرید اما در عمل وزنی معادل با 980 گرم دریافت کرده باشید، فروشنده مرتکب فعل حرام «کم فروشی» شده است. آنچه در این مقاله قصد داریم مورد بررسی قرار دهیم این است که آیا در دنیای توسعه ی نرم‌افزار و برنامه نویسی نیز می‌توان کم فروشی کرد یا خیر! که در این مقاله قصد داریم با ذکر مثال‌هایی از دنیای واقعی، این قضیه را اثبات کنیم. با سکان آکادمی همراه باشید.

https://ow.ly/BtkK3067Bl7
شاید جالب باشه براتون که بدونین سایت StackExChange و خانواده اون مثل سایت بزرگ StackOverFlow با چه تکنولوژی و سخت افزاری ساخته شده
https://goo.gl/gHy5eQ
@IranAspMvc
زبان برنامه نویسی ترامپ اسکریپت

https://jadi.net/2016/11/trump-script/


انتخاب ترامپ پیامدهای متنوعی داشته، از جمله در دنیای برنامه نویسی. یه آدم خوش ذوق با شعار Make Python Great Again اومده و زبونی درست کرده که *با موهای طلایی ترامپ* هماهنگه. بعد از نصب کافیه فایل رو با پسوند tr ذخیره کنید و با دستور TRUMP اجراش کنین. بعضی از قواعد برنامه نویسی اینها هستن:

- هیچ عدد اعشاری نمی تونین استفاده کنین. فقط اعداد صحیح! آمریکا با هیچ چیز نصفه و نیمه کار نداره
- همه اعداد باید از ۱ میلیون بزرگتر باشن، ترامپ با اعداد کوچیک کار نداره
- هیچ دستور ایمپورتی پشتیبانی نمی شه، همه چیز باید در داخل ساخته بشه
- به جای عبارت های منسوج True و False، از Fact و Lie استفاده میکنیم
- تنها اسامی مشهور آمریکایی بخصوص سیاستمدارها میتونن به عنوان اسامی متغیرها استفاده بشن
- همه برنامه ها باید با عبارت America is great تموم بشن
- ترامپ اسکریپت روی ویندوز اجرا نمی شه چون ترامپ به PC اعتقاد نداره
- ترامپ اسکریپت روی محصولات اپل اجرا نخواهد شد مگر اینکه اول موافقت کنه اطلاعات رایکال های اسلامی رو به ترامپ بده
- حروف بزرگ و کوچیک مهم نیستن
- اگر کامپیوتر در چین باشه، برنامه اجرا نمی شه. قرار نیست چینی ها تکنولوژی های آمریکا رو بدزدن
- در صورتی که از فلگ Wall— استفاده بشه، کامپیوترها داخل مکزیک هم نخواهند تونست ترامپ اسکریپت ها رو اجرا کنن
- با روت اجرا نخواهد شد چون آمریکا برای بزرگ بودن نیاز به کمک کسی نداره. ما فقط به ترامپ نیاز داریم.

برای دیدن بقیه سینتکس میتونین به ریپوزیتوری گیت هاب ترامپ اسکریپت سر بزنین ولی همینجا میتونین یک برنامه ساده ترامپ اسکریپت رو ببینین:


What are we in this country
Hillary speaks nothing but lies
But look at me I came to this election to make guys
believe again
believe in fact
if, all of us real lies the light; : say "VOTE TRUMP" !
but I know we should be free
else the result will be bad: all the work of George
Washington was for nothing
so this election say "Hello World" say "TRUMP FOR PRESIDENT"!
America is great.

و البته یادتون باشه که ترامپ علاقه چندانی به توضیح مشکلاتش نداره پس اگر مشکلی پیش بیاد، انتظار نداشته باشین بشینه باهاتون حرف بزنه. دیباگ کردن ترامپ اسکریپت خودش یه بازی جالبه!
بزرگترین سوپر گروه تخخصی ASP NET MVC
پرسش و پاسخ
اشتراک گذاری مطالب مفید

https://telegram.me/joinchat/BEv5CT1bY6uZDh2rtrq-og

@IranAspMvc
آموزش تعاملی و عملی #Git

https://try.github.io

@IranAspMvc
https://listjs.com/

Perfect library for adding search, sort, filters and flexibility to tables, lists and various HTML elements. Built to be invisible and work on existing HTML.

@IranAspMvc
This media is not supported in your browser
VIEW IN TELEGRAM
انیمیشن های Loading زیبا توسط CSS3
https://cssload.net/

انیمیشن های Loading زیبا به صورت GIF و APNG
https://preloaders.net/

@IranAspMvc
#Project, #AspMvc
https://goo.gl/0x3lZk

#پروژه بدست آوردن آمار بازدید وب سایت در ASP.NET MVC
امکانات پروژه
- افراد آنلاین
- بازدید امروز
- بازدید کل از زمان راه اندازی پروژه
- بازدید یونیک
- درصد استفاده از مرورگرها
- درصد استفاده از سیستم عامل ها

دمو :
https://ws.csspro.ir/
مخزن :
https://github.com/saeed-m/WebSiteStatistics

@IranAspMvc
از چه تکنولوژی هایی در پروژه ی بعدی خود استفاده کنیم؟؟

هر روز یک فریم ورک جدید، یک تکنولوژی جدید، یک تحول عظیم.... کدام را یاد بگیریم؟ دات نت یا دات نت کور؟ انگیولار یا ری اکت؟ دیزاین پترن ها چطور؟

تصمیم گیری همیشه از سخت ترین کارهاست، مخصوصا وقتی گزینه های موجود و مشابه، سر به فلک می گذارد! اگر برای انتخاب و آغاز یادگیریِ یک تکنولوژی، دلایلِ کافی و روشن وجود نداشته باشد، در نهایت ممکن است با اتلاف زمان و هزینه ی زیاد به نتیجه ی مطلوب منجر نشود و شما را در ادامه ی راه سرد و بی انگیزه و مجبور به انصراف از ادامه ی مسیر نماید. بنابراین بهتر است این انتخاب با دقت بیشتری صورت پذیرد. انتخاب یک تکنولوژی با در نظر گرفتن فاکتورهایی مانند داشتن زمینه ی قبلی در آن تکنولوژی یا تکنولوژی های مشابه، میزان منابع و رفرنس های موجود و در دسترس برای تسهیل در امر یادگیری و کمک گرفتن از آنها در صورت نیاز و ... همه میتواند در این انتخاب موثر باشد. مقاله ی زیر رعایت چند گام را برای رقم زدن یک انتخاب صحیح، توصیه می کند:

https://jonhilton.net/2016/11/24/not-sure-what-to-learn-next/

@IranAspMvc
#SqlServer, #Storage
ذخیره‌سازی فایل در دیتابیس
با چه روشی انجام شود؟
varbinary?
file table?
...
حجم اطلاعات زیاد هستش
روش بهینه برای ذخیره‌سازی چه روشی ست؟
برای نگهداری دادهای LOB یعنی CLOB ها و BLOB ها روش‌های مختلفی وجود داره.
تعریف BLOB: مخفف Binary Large Object هست مانند Image
تعریف CLOB: مخفف Character Large Obeject هست مانند Text
اولین روش این هستش که ما مستقیماً داده رو در خود SQL در قالب یک فیلد از نوع VarBinary- XML-Nvarchar(MAX) و... ذخیره کنیم. اولین قوت این روش این هستش که کنترل مواردی مانند امنیت، جستجو، پشتیبانی Backup، عملیات مربوط به تراکنش و لغو آن و ... بر عهده خود SQL می‌باشد
اما نقاط ضعف این روش:
افزایش حجم LOGT - محدودیت حجم ۲ گیگابایت - وجود Fragmentation - استفاده زیاد از Buffer pool و Ram سیستم و ...
یکی از روش‌های رایج دیگر نگهداری فایل، خارج از دیتابیس می‌باشد. که معمولاً اصل فایل (مثلاً تصویر) رو در یک پوشه خاص ذخیره می‌کنند و آدرس اون رو در یک فیلد از نوع Varchar یا Nvarchat نگهداری می‌کنند. در این روش کاهش Fragmentation - عدم استفاده از Buffer Pool - افزایش حجم ذخیره‌سازی به اندازه دیسک و ... جزو مزیت‌ها می‌باشد
نقاط ضعف این روش:
در این روش SQL هیچ کنترلی روی این فایل نداره. مثلاً در زمان بک آپ گیری از دیتابیس، از این پوشه بک آپی گرفته نمی شه و کنترل مواردی مانند امنیت و تراکنش‌ها بر عهده SQL نمی‌باشد. به دلیل درگیری بین SQL و NTFS، دارای کد نویسی پیچیده می‌باشد و ....
و
اما یکی از روش‌های بسیار مناسب Filestream می‌باشد که از نسخه 2008 ارائه شد و مزیت‌های دو روش اشاره شده دارا می‌باشد. راه‌اندازی FileStream نیازمند تنظیمات سطح سرور و سطح Instance می‌باشد.
در ادامه به یک سؤال مهم جواب می‌دهیم:
چه زمانی برای ذخیره‌سازی اطلاعات از Filestream استفاده کنیم؟؟
پاسخ:
در تئوری گفته شده است که برای داده‌های با حجم بیش از یک مگابایت اما در عمل برای داده‌های با حجم بیش از ۲۵۶KB و برای داده‌های با حجم کمتر از ۲۵۶KB نوع Nvarchar (MAX) مناسب‌تر می‌باشد.

و اما ساختار دیگری که می‌توان از آن برای نگهداری فایل‌ها استفاده کرد File Table می‌باشد که از نسخه ۲۰۱۲ معرفی شد. در واقع متوان به این صورت گفت که File Table از همکاری بین File Stream و نوع داده‌ای Hierachy ایجاد شده است. در واقع با ایجاد FileTable ارتباط بین SQL, Ntfs رو برقرار کرده‌ایم. به این معنا که با حذف فایل از SQL، اطلاعات این فایل از NTFS نیز حذف می‌شود و با تغییر محل فایل در SQL، این تغییر مکان در NTFS نیز اعمال می‌شود.

محسن بندامیر
@Mohsen_Ban
کانال تخصصی SqlServer
@SQLSERVER_professional

آشنایی با قابلیت FileStream اس کیوال سرور
https://www.dotnettips.info/post/331/
https://www.dotnettips.info/post/332/
https://www.dotnettips.info/post/333/

کانال تخصصی AspNet MVC
@IranAspMvc
#زنگ_تفریح

"موزیک برای برنامه نویس ها" نام سایتی است که درآن انواع موزیک های مناسب جهت افزایش تمرکز در حین برنامه نویسی وجود دارد

https://musicforprogramming.net/

@IranAspMvc
Why Visual Studio Code?

Best of Visual Studio Code: Features, Plugins, Acting Like Atom and Sublime
https://goo.gl/P3j6Lg

Download Now
https://code.visualstudio.com/

@IranAspMvc From @webly
#email #Template #DotNet
https://goo.gl/3jhTwA

امروزه شاید کمتر سایتی باشد که از تبادلاتِ ایمیلی برای تعامل با کاربران و یا مشتریان خود استفاده نکند. از جمله موارد نیاز به ارسال ایمیل که تقریبا به جزء لاینفک اکثریت وب سایت ها تبدیل شده است، نیاز به ارسال تاییدیه ی آدرس ایمیل وارد شده از طرف کاربر و یا تنظیم مجدد رمز عبور است.

برای طراحیِ قالب HTML این ایمیل ها، نمونه های آماده ی خوب و زیادی وجود دارد که از جمله ی آن می توان به قالب ایمیل متن باز و کاملا رسپانسیو responsive-html-email-template اشاره کرد:

https://github.com/leemunroe/responsive-html-email-template

کتابخانه ی MailBody نیز یک کتابخانه ی دات نتی برای تولید این ایمیل ها از طریق fluent interface است که بر مبنای همین قالب است. این کتابخانه، از فریم ورک های .net framework 4.5 و نیز dotnet core 1.0 به طور کامل پشتیبانی می کند و نحوه ی استفاده از آن بسیار آسان است.

https://github.com/doxakis/MailBody

@iranAspMvc