Forwarded from برنامه نویسی حرفه ای
آشنایی با Design_Pattern
الگوی طراحی Strategy
برای برنامه نویسی حرفهای و اصولی، آشنایی با Design Patternها الزامی است.
در این مطلب ابتدا به تاریخچه و تعریف Design Pattern و سپس به توضیح الگوی strategy پرداخته شده است.
نویسنده: عباس وثوقی
مطالب بیشتر در کانال «برنامه نویسی حرفهای»
@pro_baiat
👇👇👇👇👇
الگوی طراحی Strategy
برای برنامه نویسی حرفهای و اصولی، آشنایی با Design Patternها الزامی است.
در این مطلب ابتدا به تاریخچه و تعریف Design Pattern و سپس به توضیح الگوی strategy پرداخته شده است.
نویسنده: عباس وثوقی
مطالب بیشتر در کانال «برنامه نویسی حرفهای»
@pro_baiat
👇👇👇👇👇
تولید #QrCode (بار کد های 2 بعدی) در دات نت
https://goo.gl/UglOnX
لینک دانلود سورس Sample هایی برای تولید QrCode در Asp.Net Webform & MVC 👇
https://telegram.me/IranAspMvc/220
چند نمونه از بهترین کامپوننت های تولید QrCode :
https://zxingnet.codeplex.com/
https://github.com/zxing/zxing
https://goo.gl/ttaYCF
—---------------—
https://github.com/codebude/QRCoder
https://goo.gl/KyHCXa
—---------------—
https://qrcodenet.codeplex.com/
https://freebarcode.codeplex.com/
—---------------—
https://www.codeproject.com/Articles/20574/Open-Source-QRCode-Library
@IranAspMvc
https://goo.gl/UglOnX
لینک دانلود سورس Sample هایی برای تولید QrCode در Asp.Net Webform & MVC 👇
https://telegram.me/IranAspMvc/220
چند نمونه از بهترین کامپوننت های تولید QrCode :
https://zxingnet.codeplex.com/
https://github.com/zxing/zxing
https://goo.gl/ttaYCF
—---------------—
https://github.com/codebude/QRCoder
https://goo.gl/KyHCXa
—---------------—
https://qrcodenet.codeplex.com/
https://freebarcode.codeplex.com/
—---------------—
https://www.codeproject.com/Articles/20574/Open-Source-QRCode-Library
@IranAspMvc
#ErrorLogger, #Elmah
https://elmah.github.io/img/homeshot.png
ثبت خطا های پروژه با Elmah
اگه از Error Logger Elmah توی پروژه هاتون استفاده نمیکنین ؟! که پیشنهاد می کنیم در اسرع وقت برین و خود کشی کنین. وسلام
توسط الماه براحتی میتونین تمام خطا های رخ داده توی سیتمتون رو ثبت کنین و ایمیل گزارشش رو هم برای برنامه نویس یا ادمین سیستم ارسال کنین.
منابع فارسی :
معرفی ELMAH
https://www.dotnettips.info/post/240/
ثبت استثناهای مدیریت شده توسط ELMAH
https://www.dotnettips.info/post/514/
نکاتی در مورد ELMAH
https://www.dotnettips.info/post/964/
اELMAH و حملات XSS
https://www.dotnettips.info/post/1228/
ثبت جزئیات استثناهای Entity framework توسط ELMAH
https://www.dotnettips.info/post/1951/
منابع انگلیسی :
شروع کار با Elmah
https://goo.gl/X268V8
https://goo.gl/YA24AO
https://goo.gl/aPahd1
ارسال ایمیل به هنگام خطا
https://goo.gl/fSC28S
https://goo.gl/2H2H7d
https://goo.gl/CHJ5zq
مباحث پیشرفته
https://goo.gl/5I0nb2
https://goo.gl/xcroKg
https://goo.gl/bDDeIU
@IranAspMvc
https://elmah.github.io/img/homeshot.png
ثبت خطا های پروژه با Elmah
اگه از Error Logger Elmah توی پروژه هاتون استفاده نمیکنین ؟! که پیشنهاد می کنیم در اسرع وقت برین و خود کشی کنین. وسلام
توسط الماه براحتی میتونین تمام خطا های رخ داده توی سیتمتون رو ثبت کنین و ایمیل گزارشش رو هم برای برنامه نویس یا ادمین سیستم ارسال کنین.
منابع فارسی :
معرفی ELMAH
https://www.dotnettips.info/post/240/
ثبت استثناهای مدیریت شده توسط ELMAH
https://www.dotnettips.info/post/514/
نکاتی در مورد ELMAH
https://www.dotnettips.info/post/964/
اELMAH و حملات XSS
https://www.dotnettips.info/post/1228/
ثبت جزئیات استثناهای Entity framework توسط ELMAH
https://www.dotnettips.info/post/1951/
منابع انگلیسی :
شروع کار با Elmah
https://goo.gl/X268V8
https://goo.gl/YA24AO
https://goo.gl/aPahd1
ارسال ایمیل به هنگام خطا
https://goo.gl/fSC28S
https://goo.gl/2H2H7d
https://goo.gl/CHJ5zq
مباحث پیشرفته
https://goo.gl/5I0nb2
https://goo.gl/xcroKg
https://goo.gl/bDDeIU
@IranAspMvc
DotNetZoom
#ErrorLogger, #Elmah https://elmah.github.io/img/homeshot.png ثبت خطا های پروژه با Elmah اگه از Error Logger Elmah توی پروژه هاتون استفاده نمیکنین ؟! که پیشنهاد می کنیم در اسرع وقت برین و خود کشی کنین. وسلام توسط الماه براحتی میتونین تمام خطا های رخ داده…
#ErrorLogger, #Elmah
https://goo.gl/1YCSsT
ElmahR = ELMAH + SignalR (real time dashboard for error logger)
اگه از Error Logger Elmah توی پروژه هاتون استفاده نمیکنین ؟! که پیشنهاد می کنیم در اسرع وقت برین و خود کشی کنین. وسلام
اما اگه استفاده میکنین، بهتون پیشنهاد میکنم ElmahR رو هم تجربه کنین
پلاگین ElmahR در واقع ترکیب Elmah و SignalR هست که یه داشبورد مدیریتی بهتون میده که وقتی تو سیستم خط رخ بده، در لحظه نوتیفیکیشن اش براتون میاد
و یه آمار کلی به همراه نمودار از خطا های سیستم بهتون میده
و چندین قابلیت دیگه ....
https://bitbucket.org/wasp/elmahr/wiki/Home
https://channel9.msdn.com/Events/aspConf/aspConf/ElmahR-ELMAH-SignalR
https://www.codeproject.com/Articles/377394/ElmahR-equals-ELMAH-plus-SignalR-released
@IranAspMvc
https://goo.gl/1YCSsT
ElmahR = ELMAH + SignalR (real time dashboard for error logger)
اگه از Error Logger Elmah توی پروژه هاتون استفاده نمیکنین ؟! که پیشنهاد می کنیم در اسرع وقت برین و خود کشی کنین. وسلام
اما اگه استفاده میکنین، بهتون پیشنهاد میکنم ElmahR رو هم تجربه کنین
پلاگین ElmahR در واقع ترکیب Elmah و SignalR هست که یه داشبورد مدیریتی بهتون میده که وقتی تو سیستم خط رخ بده، در لحظه نوتیفیکیشن اش براتون میاد
و یه آمار کلی به همراه نمودار از خطا های سیستم بهتون میده
و چندین قابلیت دیگه ....
https://bitbucket.org/wasp/elmahr/wiki/Home
https://channel9.msdn.com/Events/aspConf/aspConf/ElmahR-ELMAH-SignalR
https://www.codeproject.com/Articles/377394/ElmahR-equals-ELMAH-plus-SignalR-released
@IranAspMvc
#WebStoage, #WebSql, #IndexedDb, #Html5
https://goo.gl/u5J9en
تکنیک های ذخیره سازی اطلاعات در مرورگر کاربر
تا قابل از Html5 اپلیکیشن ها مجبور بودند اطلاعات سمت کاربرشون رو توی Cookie ذخیره کنند
که مشکلات خاص خودش رو داشت :
1- محدودیت در حجم ذخیره سازی
2- محدودیت در تعداد کوکی ها
3- امنیت بسیار پایین
4- فقط text قبول میکنه و نوع های complex type رو قبول نمیکنه که باید serialize اش میکردیم
5- مهمتر از همه اینکه به ازای هر درخواست به سرور ارسال میشد و بر میگشت که این ترافیک سایت رو زیاد میکرد
کنسرسیوم جهانی وب w3c برای رفع این مشکل و ذخیره اطلاعات در سمت مروگر تاکنون 3 تکنیک رو تعریف کرده
ا1⃣ - Web SQL
که همون طور که تو لینک زیر میبینین کمترین پشتیبانی رو توسط مرورگر ها داره
https://caniuse.com/#search=sql-storage
آموزش Web SQL:
https://goo.gl/bsmKrM
ا2⃣ - Indexed Database
که پشتیبانی بهتری توسط مرورگر ها داره ولی کامل نیست
https://caniuse.com/#search=indexeddb
آموزش Indexed Database:
https://goo.gl/NxLMgz
یک پروژه ساده افلاین سازی وبسایت با websql و indexeddb
https://goo.gl/9c3qGj
ا3⃣ - Web Storage
که بیشترین پشتیبانی رو توسط مرورگر ها داره
https://caniuse.com/#search=localStorage
آموزش Web Storage:
منابع فارسی:
https://www.dotnettips.info/post/2136/
https://www.dotnettips.info/post/2137/
این لینک هم چندتا از کتابخانه های کاربردی و مفید در رابطه با webstoage رو معرفی کرده
https://www.dotnettips.info/post/2483/
منابع انگلیسی:
https://www.w3schools.com/html/html5_webstorage.asp
https://goo.gl/TbEv5P
https://goo.gl/63yfgY
اینم 3تا پروژه با Web Storage
https://goo.gl/yfaJcn
https://goo.gl/WYRx2L
https://goo.gl/KyTExK
نکته:
اینم یه دیتابیس سمت مرورگر هست که دیتابیس NoSql با کوئری هایی شبیه MongoDb در اختیار ما میگذاره و با هر 3 (websql - indexeddb - localestorage) سازگاری داره
https://www.forerunnerdb.com/
اینم یک دیتابیس in-memory database برای node.js, browser and cordova هست
https://lokijs.org/
@IranAspMvc
https://goo.gl/u5J9en
تکنیک های ذخیره سازی اطلاعات در مرورگر کاربر
تا قابل از Html5 اپلیکیشن ها مجبور بودند اطلاعات سمت کاربرشون رو توی Cookie ذخیره کنند
که مشکلات خاص خودش رو داشت :
1- محدودیت در حجم ذخیره سازی
2- محدودیت در تعداد کوکی ها
3- امنیت بسیار پایین
4- فقط text قبول میکنه و نوع های complex type رو قبول نمیکنه که باید serialize اش میکردیم
5- مهمتر از همه اینکه به ازای هر درخواست به سرور ارسال میشد و بر میگشت که این ترافیک سایت رو زیاد میکرد
کنسرسیوم جهانی وب w3c برای رفع این مشکل و ذخیره اطلاعات در سمت مروگر تاکنون 3 تکنیک رو تعریف کرده
ا1⃣ - Web SQL
که همون طور که تو لینک زیر میبینین کمترین پشتیبانی رو توسط مرورگر ها داره
https://caniuse.com/#search=sql-storage
آموزش Web SQL:
https://goo.gl/bsmKrM
ا2⃣ - Indexed Database
که پشتیبانی بهتری توسط مرورگر ها داره ولی کامل نیست
https://caniuse.com/#search=indexeddb
آموزش Indexed Database:
https://goo.gl/NxLMgz
یک پروژه ساده افلاین سازی وبسایت با websql و indexeddb
https://goo.gl/9c3qGj
ا3⃣ - Web Storage
که بیشترین پشتیبانی رو توسط مرورگر ها داره
https://caniuse.com/#search=localStorage
آموزش Web Storage:
منابع فارسی:
https://www.dotnettips.info/post/2136/
https://www.dotnettips.info/post/2137/
این لینک هم چندتا از کتابخانه های کاربردی و مفید در رابطه با webstoage رو معرفی کرده
https://www.dotnettips.info/post/2483/
منابع انگلیسی:
https://www.w3schools.com/html/html5_webstorage.asp
https://goo.gl/TbEv5P
https://goo.gl/63yfgY
اینم 3تا پروژه با Web Storage
https://goo.gl/yfaJcn
https://goo.gl/WYRx2L
https://goo.gl/KyTExK
نکته:
اینم یه دیتابیس سمت مرورگر هست که دیتابیس NoSql با کوئری هایی شبیه MongoDb در اختیار ما میگذاره و با هر 3 (websql - indexeddb - localestorage) سازگاری داره
https://www.forerunnerdb.com/
اینم یک دیتابیس in-memory database برای node.js, browser and cordova هست
https://lokijs.org/
@IranAspMvc
#EntityFramework, #EFCore, #LazyLoading
همان طور که میدانیم در اِنتیتی فریم ورک، سه روش برای لود نمودنِ اطلاعات مربوط به یک اِنتیتی وجود دارد. به طور کلی، بر اساسِ این نیاز که آیا برای دریافتِ اطلاعاتِ بینِ جداول، باید Join صورت پذیرد یا خیر، نوع واکشی را مشخص میکنیم.
برای این منظور سه الگوی مشترک بین ORM ها به قرار زیر است:
- Eager loading
- Explicit loading
- Lazy loading
بسته به نوع نیاز ممکن است هر یک از روش های فوق مورد استفاده قرار گیرند.
در EF Core هم به صورت مشابه، رویه به همین منوال برقرار است، با این تفاوت که فعلا خبری از Lazy loading نیست و باید به طور واضح، اِنتیتی فریمورک را نسبت به لود دیتای مورد نیاز از طریق include آگاه نمود.
هم چنین واکشی اطلاعات تا چند سطح از طریق متد
فیلم زیر در channel 9 از سری مجموعه های ASP .NET Monsters Episode این قابلیت را به صورت عملی شرح میدهد:
https://channel9.msdn.com/Series/aspnetmonsters/ASPNET-Monsters-Episode-57-Loading-Related-Data-with-Entity-Framework-Core
@IranAspMvc
همان طور که میدانیم در اِنتیتی فریم ورک، سه روش برای لود نمودنِ اطلاعات مربوط به یک اِنتیتی وجود دارد. به طور کلی، بر اساسِ این نیاز که آیا برای دریافتِ اطلاعاتِ بینِ جداول، باید Join صورت پذیرد یا خیر، نوع واکشی را مشخص میکنیم.
برای این منظور سه الگوی مشترک بین ORM ها به قرار زیر است:
- Eager loading
- Explicit loading
- Lazy loading
بسته به نوع نیاز ممکن است هر یک از روش های فوق مورد استفاده قرار گیرند.
در EF Core هم به صورت مشابه، رویه به همین منوال برقرار است، با این تفاوت که فعلا خبری از Lazy loading نیست و باید به طور واضح، اِنتیتی فریمورک را نسبت به لود دیتای مورد نیاز از طریق include آگاه نمود.
var blogs = context.Blogs
.Include(blog => blog.Posts)
.ToList();
هم چنین واکشی اطلاعات تا چند سطح از طریق متد
ThenInclude باید انجام شود و برخلاف EF6 که واکشی چند سطحی در متد include و به وسیله ارسال پارامتر از نوع استرینگ (Include("Posts.Comments")) صورت میگرفت در نسخه ی کور باید از متد ThenInclude استفاده گردد:var blogs = context.Blogs
.Include(blog => blog.Posts)
.ThenInclude(post => post.Comments)
.ToList();
فیلم زیر در channel 9 از سری مجموعه های ASP .NET Monsters Episode این قابلیت را به صورت عملی شرح میدهد:
https://channel9.msdn.com/Series/aspnetmonsters/ASPNET-Monsters-Episode-57-Loading-Related-Data-with-Entity-Framework-Core
@IranAspMvc
Channel 9
ASP.NET Monsters #57: Loading Related Data with Entity Framework Core
Entity Framework Core doesn't support lazy loading yet which means you need to explicitly tell Entity Framework what related data to include when querying for an entity. In today's episode, Monster Da
#AspNetCore, #MVC
ا ASP .NET Core یا MVC5 ؟
با انتشارِ نسخه ی نهاییِ دات نت کور، امکانات، مزایا و پرفرمنس عالی و فوق العاده ی آن از یک طرف و عدم تطابقِ برخی از ابزارها و کتابخانه ها با این فریمورک جدید و همچنین تغییراتِ مکرر و نرسیدن به یک ثباتِ نسبی از طرف دیگر، همواره توسعه دهندگان را برای شروع یک پروژه ی جدید بر سر دو راهیِ انتخاب بین MVC 5 و ASP .NET Core قرار داده است. موضوعی که اخیرا در سایت ها و وبلاگ ها بیشتر به آن پرداخته میشود و سعی می شود با بررسی نقاط قوت و ضعف هر یک، یک تصمیم گیری صحیح را رقم زد.
اما در نهایت کدام گزینه برای توسعه ی یک وب اپلیکیشن جدید، بهتر خواهد بود؟ MVC5 یا ASP .NET Core ؟
این سوالی است که یکی از مخاطبین Jeff Fritz طی ایمیلی از وی پرسیده است و در مورد شروع یک وب اپلیکشن جدید SaaS با یکی از این دو تکنولوژی خواهان انتخاب بهترین گزینه شده است.
در لینک زیر Jeff Fritz با هوشمندی و در نظر گرفتن شرایط مختلف، به این سوال پاسخ میدهد:
https://www.jeffreyfritz.com/2016/08/should-i-use-asp-net-core-or-mvc-5/
@IranAspMvc
ا ASP .NET Core یا MVC5 ؟
با انتشارِ نسخه ی نهاییِ دات نت کور، امکانات، مزایا و پرفرمنس عالی و فوق العاده ی آن از یک طرف و عدم تطابقِ برخی از ابزارها و کتابخانه ها با این فریمورک جدید و همچنین تغییراتِ مکرر و نرسیدن به یک ثباتِ نسبی از طرف دیگر، همواره توسعه دهندگان را برای شروع یک پروژه ی جدید بر سر دو راهیِ انتخاب بین MVC 5 و ASP .NET Core قرار داده است. موضوعی که اخیرا در سایت ها و وبلاگ ها بیشتر به آن پرداخته میشود و سعی می شود با بررسی نقاط قوت و ضعف هر یک، یک تصمیم گیری صحیح را رقم زد.
اما در نهایت کدام گزینه برای توسعه ی یک وب اپلیکیشن جدید، بهتر خواهد بود؟ MVC5 یا ASP .NET Core ؟
این سوالی است که یکی از مخاطبین Jeff Fritz طی ایمیلی از وی پرسیده است و در مورد شروع یک وب اپلیکشن جدید SaaS با یکی از این دو تکنولوژی خواهان انتخاب بهترین گزینه شده است.
در لینک زیر Jeff Fritz با هوشمندی و در نظر گرفتن شرایط مختلف، به این سوال پاسخ میدهد:
https://www.jeffreyfritz.com/2016/08/should-i-use-asp-net-core-or-mvc-5/
@IranAspMvc
Fritz on the Web
Should I Use ASP.NET Core or MVC 5?
I received a question this morning in my email that I thought I would answer here so that everyone can have the benefit of my answer: “I’m planning to build a new web application in a s…
Forwarded from طراحی و توسعه وب
🤔 چطور تو React.js شاخ بشیم و شاخِ Flux رو بشکنیم؟
♨️ https://goo.gl/4uISMT
#Front_end #JS #ReactJS
—
@WEBLY
♨️ https://goo.gl/4uISMT
#Front_end #JS #ReactJS
—
@WEBLY
Forwarded from MyPAD
کاملترین لیست #گروه های برنامه نویسی (سری اول)
🔵 Asp .Net
—---------------------------------------
l✅ گروه تخصصی AspNet MVC
l✅ Asp .Net Developers
l✅ Iran ASP .Net Community
l✅ DNN - Official
🔵 C# & .Net
—---------------------------------------
l✅ C# Tutorial
l✅ Devsharp
l✅ .NET Discussion Group
l✅ .NET Developers
l✅ گروه برنامه نویسی #C
l✅ Xamarin .Net
🔵 SQL Server
—---------------------------------------
l✅ گروه تخصصی Sql Server
l✅ SQL Server
🔵 PHP
—---------------------------------------
l✅ PHP & Frameworks
l✅ PHP Programmers
l✅ لاراول / Laravel
l✅ CodeIgniter
l✅ Symfony Framework
l✅ Yii2 Framework
l✅ Laratalks (Laravel User Group)
l✅ MySQL RDBMS
🔵 WordPress
—---------------------------------------
l✅ Wordpress وردپرس
l✅ WordPress
l✅ چت وردپرس
🔵 Joomla
—---------------------------------------
l✅ گروه طراحان وب جوملا و افزونه های رایگان
l✅ _____جوملا_____
🔵 Html-Css-Javascript
—---------------------------------------
l✅ HTML CSS JAVASCRIPT
l✅ CSS & Frameworks
l✅ گروه طراحی وب(html-css-js-php)
🔵 JavaScript & NodeJs
—---------------------------------------
l✅ Javascript Experts
l✅ JavaScript
l✅ NodeJS and Family
l✅ NodeJS Talk
جهت تکمیل این لیست، لینک های خودتون رو به @mj_ebrahimi ارسال کنید@
@IranAspMvc
🔵 Asp .Net
—---------------------------------------
l✅ گروه تخصصی AspNet MVC
l✅ Asp .Net Developers
l✅ Iran ASP .Net Community
l✅ DNN - Official
🔵 C# & .Net
—---------------------------------------
l✅ C# Tutorial
l✅ Devsharp
l✅ .NET Discussion Group
l✅ .NET Developers
l✅ گروه برنامه نویسی #C
l✅ Xamarin .Net
🔵 SQL Server
—---------------------------------------
l✅ گروه تخصصی Sql Server
l✅ SQL Server
🔵 PHP
—---------------------------------------
l✅ PHP & Frameworks
l✅ PHP Programmers
l✅ لاراول / Laravel
l✅ CodeIgniter
l✅ Symfony Framework
l✅ Yii2 Framework
l✅ Laratalks (Laravel User Group)
l✅ MySQL RDBMS
🔵 WordPress
—---------------------------------------
l✅ Wordpress وردپرس
l✅ WordPress
l✅ چت وردپرس
🔵 Joomla
—---------------------------------------
l✅ گروه طراحان وب جوملا و افزونه های رایگان
l✅ _____جوملا_____
🔵 Html-Css-Javascript
—---------------------------------------
l✅ HTML CSS JAVASCRIPT
l✅ CSS & Frameworks
l✅ گروه طراحی وب(html-css-js-php)
🔵 JavaScript & NodeJs
—---------------------------------------
l✅ Javascript Experts
l✅ JavaScript
l✅ NodeJS and Family
l✅ NodeJS Talk
جهت تکمیل این لیست، لینک های خودتون رو به @mj_ebrahimi ارسال کنید@
@IranAspMvc
#AspNetBoilerplate, #Template, #Architecture, #Framework, #AspNetMvc, #AspNetCore
ASP .NET Boilerplate
یکی از سخت ترین کارها در توسعه ی نرم افزار، آغاز و پایه ریزی یک اپلیکیشن جدید است. پیاده سازی معماری، اضافه نمودن ابزارها و تنظیماتِ مربوطه، پایه ریزی لایه هایِ مختلف و ... همه و همه کارهایی است که برای ایجاد هر اپلیکیشن جدید "تکرار" می کنیم.
بسیاری از شرکت های بزرگ، برای جلوگیری از این تکرار، معمولا با صرفِ زمان و هزینه ی نسبتا زیاد، فریم ورک اختصاصی خود را یکبار می نویسند و به کَرات از آن استفاده می کنند. اما شرکت ها و یا تیم های کوچک که نمی توانند متقبل این هزینه شوند، با کپی کردن بخش های مختلف از اپلیکیشن های موجود، سعی در پایه ریزی و آغاز اپلیکیشن جدید خود می کنند.
خوشبختانه طبق معمول، فریم ورک های از پیش آماده ی بسیار خوبی برای این کار وجود دارد که برخی حتی چند گام فراتر رفته و تمپلیت آغازی برای شروع اپلیکیشن شما را نیز ایجاد می کنند. در این صورت، تنها کاری که باید انجام دهید تعریف entity ها و رعایت قراردادهاست تا به صورت خودکار تمامی لایه ها در دسترس قرار گیرد و تنها دغدغه ی شما کار با UI باشد.
مخصوصا اینکه اگر بدانید این فریم ورک، از آخرین تکنولوژی ها (ASP .NET Core)، بِست پِرَکتیس ها، پرکاربردترن روش های توسعه (Domain Driven Design) ، تزریق وابستگی، معروف ترین ORM ها (EF و NHibernate) ، قابلیت های اعتبارسنجی، ثبت وقایع کاربران، مدیریت خطاها و ... به صورت تو کار بهره میبرد و همچنین امکان انتخاب بین Single-Page (با انگولار) و یا Multi-Page هم دارید.
از دیگر مزایای بسیار مهم این فریم ورک، داشتن راهنما و داکیومنت بسیار غنی برای درک بخش های مختلف و نحوه ی کار با آن است.
لینک زیر سایت اختصاصی این فریم ورک است:
https://www.aspnetboilerplate.com/
مطالب بیشتر برای شروع به کار را نیز می توانید از طریق این لینک مطالعه کنید:
https://www.codeproject.com/Articles/768664/Introduction-to-ASP-NET-Boilerplate
@IranAspMvc
ASP .NET Boilerplate
یکی از سخت ترین کارها در توسعه ی نرم افزار، آغاز و پایه ریزی یک اپلیکیشن جدید است. پیاده سازی معماری، اضافه نمودن ابزارها و تنظیماتِ مربوطه، پایه ریزی لایه هایِ مختلف و ... همه و همه کارهایی است که برای ایجاد هر اپلیکیشن جدید "تکرار" می کنیم.
بسیاری از شرکت های بزرگ، برای جلوگیری از این تکرار، معمولا با صرفِ زمان و هزینه ی نسبتا زیاد، فریم ورک اختصاصی خود را یکبار می نویسند و به کَرات از آن استفاده می کنند. اما شرکت ها و یا تیم های کوچک که نمی توانند متقبل این هزینه شوند، با کپی کردن بخش های مختلف از اپلیکیشن های موجود، سعی در پایه ریزی و آغاز اپلیکیشن جدید خود می کنند.
خوشبختانه طبق معمول، فریم ورک های از پیش آماده ی بسیار خوبی برای این کار وجود دارد که برخی حتی چند گام فراتر رفته و تمپلیت آغازی برای شروع اپلیکیشن شما را نیز ایجاد می کنند. در این صورت، تنها کاری که باید انجام دهید تعریف entity ها و رعایت قراردادهاست تا به صورت خودکار تمامی لایه ها در دسترس قرار گیرد و تنها دغدغه ی شما کار با UI باشد.
مخصوصا اینکه اگر بدانید این فریم ورک، از آخرین تکنولوژی ها (ASP .NET Core)، بِست پِرَکتیس ها، پرکاربردترن روش های توسعه (Domain Driven Design) ، تزریق وابستگی، معروف ترین ORM ها (EF و NHibernate) ، قابلیت های اعتبارسنجی، ثبت وقایع کاربران، مدیریت خطاها و ... به صورت تو کار بهره میبرد و همچنین امکان انتخاب بین Single-Page (با انگولار) و یا Multi-Page هم دارید.
از دیگر مزایای بسیار مهم این فریم ورک، داشتن راهنما و داکیومنت بسیار غنی برای درک بخش های مختلف و نحوه ی کار با آن است.
لینک زیر سایت اختصاصی این فریم ورک است:
https://www.aspnetboilerplate.com/
مطالب بیشتر برای شروع به کار را نیز می توانید از طریق این لینک مطالعه کنید:
https://www.codeproject.com/Articles/768664/Introduction-to-ASP-NET-Boilerplate
@IranAspMvc
CodeProject
Introduction to ASP.NET Boilerplate
ASP.NET Boilerplate is a starting point for new modern web applications using best practices and most popular tools.
#EFCore, #AspNetCore, #EntityFramework
یکی از ویژگی های جالب و البته مفید در نسخه ی جدید اِنتیتی فریمورک (Entity Framework Core) ، اضافه شدن InMemory provider به لیست پروایدرهای آن است. بدین معنی که اِنتیتی فریمورک این قابلیت را دارد که با دیتابیسِ درون حافظه ای نیز کار کند.
با استفاده از این پروایدر میتوانیم بدون تغییرِ کد های برنامه و یا ایجاد کانتکست جدا، برای واحدهای مختلف نرم افزارِ خود، تست های کاربردی بنویسیم.
لینک زیر از این قابلیت در یک برنامه ASP .NET Core API بهره برده است و نشان داده که پس از تستِ متدهای مورد نیاز از طریق دیتابیسِ درون حافظه ای و آماده شدن نرم افزار، فقط با تغییر یک خط کد، امکان سوویچ به پروایدرهای دیگر و یک دیتابیس واقعی مانند SQL Server وجود دارد.
https://stormpath.com/blog/tutorial-entity-framework-core-in-memory-database-asp-net-core
اما در روشی بهتر و مخصوصا در سناریوهایی که نیاز به نوشتن آزمون های واحد (unit testing) برای اجزاء مختلف نرم افزار وجود دارد، برای استفاده از این پروایدر، کافی است در کلاس کانتکست، یک سازنده با پارامتر ورودی
در این صورت میتوان برای هر کلاس و یا متدِ تست، دیتابیس درون حافظه ای خود را نیز داشت و کنترل بهتری برای تعیین محدوده ی آن دیتابیس اعمال نمود.
https://docs.efproject.net/en/latest/miscellaneous/testing.html
@IranAspMvc
یکی از ویژگی های جالب و البته مفید در نسخه ی جدید اِنتیتی فریمورک (Entity Framework Core) ، اضافه شدن InMemory provider به لیست پروایدرهای آن است. بدین معنی که اِنتیتی فریمورک این قابلیت را دارد که با دیتابیسِ درون حافظه ای نیز کار کند.
با استفاده از این پروایدر میتوانیم بدون تغییرِ کد های برنامه و یا ایجاد کانتکست جدا، برای واحدهای مختلف نرم افزارِ خود، تست های کاربردی بنویسیم.
لینک زیر از این قابلیت در یک برنامه ASP .NET Core API بهره برده است و نشان داده که پس از تستِ متدهای مورد نیاز از طریق دیتابیسِ درون حافظه ای و آماده شدن نرم افزار، فقط با تغییر یک خط کد، امکان سوویچ به پروایدرهای دیگر و یک دیتابیس واقعی مانند SQL Server وجود دارد.
https://stormpath.com/blog/tutorial-entity-framework-core-in-memory-database-asp-net-core
اما در روشی بهتر و مخصوصا در سناریوهایی که نیاز به نوشتن آزمون های واحد (unit testing) برای اجزاء مختلف نرم افزار وجود دارد، برای استفاده از این پروایدر، کافی است در کلاس کانتکست، یک سازنده با پارامتر ورودی
DbContextOptions<TContext> قرار داده و در زمانِ ایجادِ کانتکست، در متدهایِ تست، نوع پروایدر را InMemory تعیین کرد. در این صورت میتوان برای هر کلاس و یا متدِ تست، دیتابیس درون حافظه ای خود را نیز داشت و کنترل بهتری برای تعیین محدوده ی آن دیتابیس اعمال نمود.
https://docs.efproject.net/en/latest/miscellaneous/testing.html
@IranAspMvc
Stormpath User Identity API
Tutorial: Using Entity Framework Core as an In-Memory Database for ASP.NET Core - Stormpath User Identity API
Rapidly prototype and test new ideas for your REST API with Entity Framework Core as your ASP.NET Core in-memory database.
#Xamarin, #CSharp, #Template, #Project
بعد از خرید زامارین توسط مایکروسافت، علاوه بر رایگان و سورس باز شدن این محصول، همانطور که پیش بینی می شد، بهبودهای خوبی نیز از نظر کیفیت و امکانات در آن حاصل شد و فراگیریِ بیش از پیش را برای آن رقم زد. به گونه ای که بسیاری از توسعه دهندگان و کارشناسان، آینده ی بهتری را نیز طی سالهای آتی برای آن پیش بینی می کنند.
این عوامل سبب شده است تا توجه توسعه دهندگانِ بیشتری جلبِ این محصول شود و در نتیجه ی آن، منابع غنی تر و نیز پروژه های سورس بازِ بیشتری برای آن توسعه یابد. موضوعی که شاید تا چند ماهِ گذشته، یکی از علل ملامت این محصول توسط منتقدان بود، یعنی کمبود سورس های آماده جهت تسریع در امر توسعه.
البته هنوز هم این منابع در قیاس با فراوانیِ منابع و کدهای های نِیتیو و مختصِ پلتفرم ها ( مانند جاوا و سوئیفت)، قابلیت رقابت را ندارد، اما در مقابلِ مزایای عمده ای که در اختیار برنامه نویس می گذارد و ذخیره ی زمانی و نیروی انسانی و نیز آینده ی درخشان آن، میتوان از این ضعف نیز چشم پوشید.
یکی از اقدامات خوبی که در این راستا صورت گرفته، توسعه ی چند اپلیکیشنِ سورس باز و با امکانات متداول و عمومی است تا بسیاری از نیازهای ابتدایی و مشترک توسعه دهندگان را پوشش دهد. سورس کدِ این اپلیکیشن ها در گیت هاب قرار گرفته و نه تنها برای آموزش بلکه برای توسعه ی پروژه های مشابه، آغازی سریع را رقم خواهد زد.
لینک زیر به معرفی اجمالیِ این پروژه ها و خصوصیات و امکانات آنها می پردازد. همچنین امکان دانلود پروژه ها و یا مطالعه و مرور کدها در گیت هاب وجود دارد.
نکته ی جالبِ توجه اینکه در بخش اطلاعات فنی، میزان اشتراک کدها هنگام توسعه با Xamarin.Forms به صورت درصدی برای هر پروژه مشخص شده و همانطور که انتظار می رود، بسته به نوع اپلیکیشن این مقدار متفاوت است و در یکی از پروژه ها (پروژه ی My Shoppe) این مقدار به 100% رسیده است!
https://goo.gl/aB3tQu
@IranAspMvc
بعد از خرید زامارین توسط مایکروسافت، علاوه بر رایگان و سورس باز شدن این محصول، همانطور که پیش بینی می شد، بهبودهای خوبی نیز از نظر کیفیت و امکانات در آن حاصل شد و فراگیریِ بیش از پیش را برای آن رقم زد. به گونه ای که بسیاری از توسعه دهندگان و کارشناسان، آینده ی بهتری را نیز طی سالهای آتی برای آن پیش بینی می کنند.
این عوامل سبب شده است تا توجه توسعه دهندگانِ بیشتری جلبِ این محصول شود و در نتیجه ی آن، منابع غنی تر و نیز پروژه های سورس بازِ بیشتری برای آن توسعه یابد. موضوعی که شاید تا چند ماهِ گذشته، یکی از علل ملامت این محصول توسط منتقدان بود، یعنی کمبود سورس های آماده جهت تسریع در امر توسعه.
البته هنوز هم این منابع در قیاس با فراوانیِ منابع و کدهای های نِیتیو و مختصِ پلتفرم ها ( مانند جاوا و سوئیفت)، قابلیت رقابت را ندارد، اما در مقابلِ مزایای عمده ای که در اختیار برنامه نویس می گذارد و ذخیره ی زمانی و نیروی انسانی و نیز آینده ی درخشان آن، میتوان از این ضعف نیز چشم پوشید.
یکی از اقدامات خوبی که در این راستا صورت گرفته، توسعه ی چند اپلیکیشنِ سورس باز و با امکانات متداول و عمومی است تا بسیاری از نیازهای ابتدایی و مشترک توسعه دهندگان را پوشش دهد. سورس کدِ این اپلیکیشن ها در گیت هاب قرار گرفته و نه تنها برای آموزش بلکه برای توسعه ی پروژه های مشابه، آغازی سریع را رقم خواهد زد.
لینک زیر به معرفی اجمالیِ این پروژه ها و خصوصیات و امکانات آنها می پردازد. همچنین امکان دانلود پروژه ها و یا مطالعه و مرور کدها در گیت هاب وجود دارد.
نکته ی جالبِ توجه اینکه در بخش اطلاعات فنی، میزان اشتراک کدها هنگام توسعه با Xamarin.Forms به صورت درصدی برای هر پروژه مشخص شده و همانطور که انتظار می رود، بسته به نوع اپلیکیشن این مقدار متفاوت است و در یکی از پروژه ها (پروژه ی My Shoppe) این مقدار به 100% رسیده است!
https://goo.gl/aB3tQu
@IranAspMvc
Xamarin
Build Apps Quickly using Prebuilt App Templates - Xamarin
Xamarin’s app builder comes with prebuilt mobile app templates. Save time and start building your next app using Xamarin’s collection of prebuilt apps.
#Audit , #ActionFilter , #AspNetMvc , #AOP , #Interceptor , #IoC
امروزه در بسیاری از سیستم های نرم افزاری و وب سایت ها، مخصوصا سیستم هایی که اطلاعات حساسی را نگهداری می کنند، ثبت فعالیت ها و وقایعِ کاربران از اهمیت بالایی برخوردار است. اینکه چه کاربرانی و در چه زمان هایی وارد سیستم شده اند، به چه مکان هایی از سیستم رفته اند، چه عملیاتی را در سیستم انجام داده اند و .... . البته ثبت همه ی این موارد در تمام سیستم ها لازم نیست و بسته به میزانِ حساسیتِ سیستم، حجم این لاگ ها می تواند متغیر باشد.
روش های مختلفی برای پیاده سازیِ ثبت وقایع کاربران در سیستم وجود دارد، اما شاید اولین موردی که برای پیاده سازی به چشم بیاید، تکراری بودنِ این عملیات در بخش های مختلفِ سیستم است. اگر با برنامه نویسی AOP یا Aspect oriented programming آشنایی داشته باشید، می دانید که برای جلوگیری از پراکندگی و نوشتن کدهای تکراری، بهتر است که به صورت یک ماژول واحد با این قسمت برخورد شود، و به عبارت دیگر، کدهای این بخش در یک aspect مستقل ارائه و استفاده شوند. پیاده سازی آن نیز عموما از طریق تزریق وابستگی ها و Interceptor ها صورت می پذیرد، خبر خوب اینکه اگر از ASP .NET MVC استفاده می کنید، خوشبختانه این قابلیت به صورت توکار وجود دارد و "اکشن فیلترها" همان نقش Interceptor های AOP رو بازی می کنند، چون میدانیم کار نهاییِ این فیلترها نیز تزریق کدهایی است که باید پیش و پس از اجرای یک اکشن متد، اجرا شوند.
بنابراین تنها کاری که برای این منظور باید انجام شود، تعریف یک اکشن فیلترِ سفارشی و مزین کردن اکشن ها و یا کنترلر هایی است که میخواهیم وقایع آن ها ثبت شود. اطلاعاتی که میتوانیم به ازای هر اکشن ثبت کنیم نیز شامل نام کاربری، نام کنترلر و اکشن ملاقات شده، مدت زمان اجرای هر اکشن، آدرس آی پی و ... می باشد.
مقاله های زیر به صورت مفصل به پیاده سازی این موارد می پردازید. سورس کد آن نیز برای دانلود موجود است.
Part1: https://rion.io/2013/03/03/implementing-audit-trails-using-asp-net-mvc-actionfilters/
Part2: https://rion.io/2013/04/15/creating-advanced-audit-trails-using-actionfilters-in-asp-net-mvc/
این لینک نیز سورس کدِ اکشن فیلتر سفارشی Audit (ذکر شده در مقاله ی فوق) است که با جزئیات کامل آن میتوانید مشاهده و استفاده نمایید.
https://github.com/rionmonster/Advanced-Auditing/blob/7e46ece14e0241ec2ca34ec5fa42d71bb48e3b2a/Advanced%20Auditing/Models/AuditingModels.cs
@IranAspMvc
امروزه در بسیاری از سیستم های نرم افزاری و وب سایت ها، مخصوصا سیستم هایی که اطلاعات حساسی را نگهداری می کنند، ثبت فعالیت ها و وقایعِ کاربران از اهمیت بالایی برخوردار است. اینکه چه کاربرانی و در چه زمان هایی وارد سیستم شده اند، به چه مکان هایی از سیستم رفته اند، چه عملیاتی را در سیستم انجام داده اند و .... . البته ثبت همه ی این موارد در تمام سیستم ها لازم نیست و بسته به میزانِ حساسیتِ سیستم، حجم این لاگ ها می تواند متغیر باشد.
روش های مختلفی برای پیاده سازیِ ثبت وقایع کاربران در سیستم وجود دارد، اما شاید اولین موردی که برای پیاده سازی به چشم بیاید، تکراری بودنِ این عملیات در بخش های مختلفِ سیستم است. اگر با برنامه نویسی AOP یا Aspect oriented programming آشنایی داشته باشید، می دانید که برای جلوگیری از پراکندگی و نوشتن کدهای تکراری، بهتر است که به صورت یک ماژول واحد با این قسمت برخورد شود، و به عبارت دیگر، کدهای این بخش در یک aspect مستقل ارائه و استفاده شوند. پیاده سازی آن نیز عموما از طریق تزریق وابستگی ها و Interceptor ها صورت می پذیرد، خبر خوب اینکه اگر از ASP .NET MVC استفاده می کنید، خوشبختانه این قابلیت به صورت توکار وجود دارد و "اکشن فیلترها" همان نقش Interceptor های AOP رو بازی می کنند، چون میدانیم کار نهاییِ این فیلترها نیز تزریق کدهایی است که باید پیش و پس از اجرای یک اکشن متد، اجرا شوند.
بنابراین تنها کاری که برای این منظور باید انجام شود، تعریف یک اکشن فیلترِ سفارشی و مزین کردن اکشن ها و یا کنترلر هایی است که میخواهیم وقایع آن ها ثبت شود. اطلاعاتی که میتوانیم به ازای هر اکشن ثبت کنیم نیز شامل نام کاربری، نام کنترلر و اکشن ملاقات شده، مدت زمان اجرای هر اکشن، آدرس آی پی و ... می باشد.
مقاله های زیر به صورت مفصل به پیاده سازی این موارد می پردازید. سورس کد آن نیز برای دانلود موجود است.
Part1: https://rion.io/2013/03/03/implementing-audit-trails-using-asp-net-mvc-actionfilters/
Part2: https://rion.io/2013/04/15/creating-advanced-audit-trails-using-actionfilters-in-asp-net-mvc/
این لینک نیز سورس کدِ اکشن فیلتر سفارشی Audit (ذکر شده در مقاله ی فوق) است که با جزئیات کامل آن میتوانید مشاهده و استفاده نمایید.
https://github.com/rionmonster/Advanced-Auditing/blob/7e46ece14e0241ec2ca34ec5fa42d71bb48e3b2a/Advanced%20Auditing/Models/AuditingModels.cs
@IranAspMvc
Rion.IO
Implementing Audit Trails using ASP.NET MVC ActionFilters
Accountability is always important, especially when dealing with systems that contain sensitive data. It can often be helpful to have an audit trail that will allow you to go back and retrace the steps that a user took, what they saw, where they went and…
#AngularJs #Angular2 #Tutorial
معرفی Angular 2 به زبان ساده و روان. آغازی مناسب برای تازه کاران.
یکی از بهترین ویدئوها در رابطه انگیولار 2 :
https://www.youtube.com/watch?v=_-CD_5YhJTA
@IranAspMvc
معرفی Angular 2 به زبان ساده و روان. آغازی مناسب برای تازه کاران.
یکی از بهترین ویدئوها در رابطه انگیولار 2 :
https://www.youtube.com/watch?v=_-CD_5YhJTA
@IranAspMvc
YouTube
Angular 2 Tutorial for Beginners: Learn Angular 2 from Scratch | Mosh
🔥Get the COMPLETE COURSE (60% OFF - LIMITED TIME): https://programmingwithmosh.com/courses/angular
Angular 2, now Angular 4, is a very hot topic. This Angular 2 tutorial teaches you the fundamentals of Angular.
SUBSCRIBE FOR MORE VIDEOS!
https://www…
Angular 2, now Angular 4, is a very hot topic. This Angular 2 tutorial teaches you the fundamentals of Angular.
SUBSCRIBE FOR MORE VIDEOS!
https://www…
#Xamarin , #Ionic , #Infographic
اینفوگرافیک جالب مقایسه بین زامارین و آیونیک
منیع:
https://goo.gl/Q1K7rP
@IranAspMvc
اینفوگرافیک جالب مقایسه بین زامارین و آیونیک
منیع:
https://goo.gl/Q1K7rP
@IranAspMvc